2165697876927651243511574166136476465921816427444837741966266896745583161338397628294524265384368745144357514812884272314626323655312583472372935528473471362734215391533648175652426879427199274144163458186569214331274316943679231218281192958485311596669793595241389286358416246412131767434159785248861159917125539522964712377561329169236164327361423585725256446926488133767136947975164555341959928642365228623322664886235632113629547431438633976894125968247266562947817536389537524723791976457562537921473861415394321926184622624697219268696188236311412462128379789188575113616699931646578514414515293469446686342739351712551388633667554779633114873324686651654428712217219541792419832816732953445581968858593649724326666533118233312172612666491849793925594221671152542559759936422531696995982557694196599313935888676213212522837211571123229799389281299518364185934622628469286364711981932239312218651277254393782535357319413146995917827673751868611391686335515583926312564547771614792724964287123598248155792544111532987568573197332232422528855899521645388923691264894152391388516751741746181393443779479418782828345392519517117361644353835658917417561126972114835275634778336981198922274492786695793746941871722468253626992125214316244456761757221984221223768844948179953565375532421234328419443773974491685192377124512281133958142225763281493485774912641943713184917465651438256826623472272396575477416485581933289285991776444891445851874637318825929434639985658252724929864555555172151624145371634275814135185785489212912718513843273677453719335289337746982797945426498561694699877483322466963755135652952481196499196616836898488784547571877592185998779487289736167775984254964449521871129582576232873171736137519174879515741129568222759242664358138643746226369358166495672163944396983533227277527979381697243982592736762684971771184679893138525973929223217111894743775255646133195549732159664738417546445144886113357138192547234922274981217131665187233993497112873896651742239191477327179462923627758254892298895262944366259256416977531691451729411911319646825521582442121146137537651891759375846948939926177441872529235211211197786948359194117163794731221653354628886432522782368799135743132357753688729933518862244117988435982775737575313682775493358852733757819125837591263119135173371788948662794437475869964564914553145953813563795788147755583991676375215571962714598458124435845445767482177818224551263896962732828961818531356921126411448388992351743384322883318553189518434697898741239676161695851982866728413624881767935731445737652518644987555381627695695153999137291659719234263721867493417195439868999132621623346442697587242268486771624755972563337267654341976622992897792987863158844919542162243881818426244152489258993635392467922579826875244315243753631742917155377414168463528197621863598442947278958449553657664117553811477972977729372313965284561445613711259926216594935526977894612491523727749116132385516741583332793188495575578696551635149821981629458186571757592726141165267959264852243931926178736456736182388844674222158557928972149366419133243887577624788113427129333643937987387378646523227231451615424326275911574825571188896795712378456543739987497919265132431197367131463368155851391928228286825724811527114156465629647188363358967748152895332124973239243923877625965616768372117731181592551366299531126546339593724721834727957981417887849214145992486187882114621273123679653827795919163326427964242217262914932396747785427737976685673557657997739391566935369932662197581166516764336723318577365833447848116689311176551642675658144423837732423469235583844592532484515677519968428715251664178478119361456768382563798284322565636863864563811174771872823634773199164917387377683153241241962112556826421947252721711955159334911116628451966893329668248543721539553819188136612745382448379634392443511397964948461994511489486968596581626924194783378486525439485671292261385758831526396457553593318273556752979139467762686424982336472649614792368579721163459847218836221759172995674753541311123397398612442826899734837238339199525491487796618897522242892338414788646681247444258831226252273364172124122472932299885339894847548284152913494179693653674717124542668355119913174231982122221715614916323915297634351151153794614189569922293663822534153752324824655147114311589186697126441995355566178253679172678737691669551481624834486186119527388828811194724395846254787788928167295222318899842627321545992119765324779294376315732623128351829651955381252629563498951714397536531824615216455685986721341326555269889171811318749377266625286982324882454469242691153474156722577779812479554921578247346123674651213763671171266542331273726982737829882329528235499446917998745166663849416885996635767895828358942189674652837843892814276228919349653831594228783641427944954861966332112264482435423189832419594596767359374119861876485834294123752119848124393736334181415631539564622713591632165368591543194227681552568496528117414535613285393567854494292891354837585883434429451578882173285262512156631976178681571335163156499374841467644657819249885961676628429119558826334131879331376413577129233827134617678239843111118112856488426331912611764499727976328139539737487882994197231111613247645673649223877587165546181765432268535324621246914513289448229163467267392811293864476983814214528861275625932396151459926145978856576759155745882596922199259287327771599347632912272642833972381941831386474664933552313428886673931418774216946919499472853812693282844766298547956471976653613845763738271841189792453473169363491581316836267569669882741136157956422991877522295179587289357777484913896548675271251174454372773812891228588147992812987591671751815552867833662554732428436925181593915431455585613155481594733722499652881748515798992895184364115766752293867172487195544114831638122877411552955211439335563481277273175813754696229285169214295535688493351354781552945331742896242735919499197118784632682314688751991864317133751168137619313173926128151367258915226768415549354582115337132469336672547428564335357363482494148335472734578664846185179639341488972789688988224475214161852524784332821542986117899914738313138741765492534992885625267875644665835752387332822217254281738122919891287627565673948115872542563176938732228817716243293157131269597892791569292314917334568762956277395257127963795679494259174214636434319996815528436185897475597336448447173966172114121736557713321826736468536324214579776893143498893471691993153183785262936877385412369785325266811254235959982672264135568571154262122469633784685457813741127733563413412755549873151932341231493171659392244645119333234483747884724869974393311375511285848183951176698874865988431396939972445172232273567917389771262237556131856112464188844434252738545391967721747257475162322152169181324873125235433357834152272551246737789216575191826325867428128484117941453226262218688385493129449972479587766522456641922867379946939752146411818257284543945874242147511383976747869617114994373265811142854892225629689232184328512992136519864534232228545893154372164423839433477242242668733621349348628734948977418928919649677831528129586239564267177137934385231874341945393828265242134162968778479459612625633873241634572143915168636587724765621753477139124273149448137688965497968178657942353858231246837612242669939849855921351194841856226974716359743452491172625433728366211268717355787815412942494936371181155589774252674221341894517914546669245195674819681612224892842825162269954328943637298932496452254316679454468331171417539726531314523191231963836254129952161243523145494811456271148377591842371462224829914918833576259992572892658455715195875181155182446462869638688319782349991181597623245569616883916973194145327441314263245358424751541363926757297842171239117121362465944295291199245848534649556852452274991349667255831324588683929923456978555737253145759813244394132291663922365951425464765445739994692772633854859832145371728592312659392522589712657672462391769754852857515915784881533493495423543836999466728615979974971471637683631964696939918111839299387517255346917931152312269393846119895234783462339894521451672957535224784433644951819376843317919111792273566546256387323364858419213569426284562355664978979544522284414722289888134484263667564637711793453419959411327348812946194183391672954675393648439559676378122418759865919291678993454665115853852966813444947523867293285471771414283196942393554961211571422632758925371325333935834512926919451897616612694421484576169217386694184994796649913327213112541693824175142647945485115176449995149313132697718151116468141626942644231765321255318984787459547872215335493691424958424759997317825669648923248112193969282461497388322757994923739958974355769293615712356778729275388164291956241953494728143133799413341665339115242326994752458434471334689331326434211131146432541614115517518198873856274355251426319362575125745847525619914757642149742987437769347873792683591614671755742824323743229764947693575321771891861488581443477992887932299474123817137441474836475646591997653462995318438846117399295374867613511265175837221712991821252239156381694261291383266328711552721947281733576932363413471939371299145519647678454487296614657831463895285591329519733256194643364872174644774127987674966125332632849917338374633385577124613615465328933531269931232626899656573782637272724723599226184686882919123317856724967637523254273533575235992342649969214631637871171962148841317268631319537776551183929434517188884584159336331158619761276287618172894433971115249533931197397252674821252553732916894474566936231668316637142547221961941925963595725597667869397216439676619836334714538763841987652198274836327634248861537746778813587455331724812988937422892846897661262423418136261784647863234213872125459314992157693999395926754444644145315271173914724319854642492812521529911584354793481264883498987459222826675266879791925981385852442196683663881667654328111952151721112289739322994936827582896178792997996178893311238667194232562746775745151776943964932269218974841533112548687828543673935342311478961419639953777145971537475893466684527539363839199389451465458756134653275513832638928863185743962751325398479763929662126976661418465841226897541158224131291353114545591637745316531861266594415718729754674925173531659938987399523963483185668738537597969721832136174421128331489885265232747431279184266168716318745863223834543781439456111977885714697724782274139699233672537457281485198434654285831516589844812417856414178692717417964981131184784868588252735672338941544388195942122844841427781838937238715619895768556945573115691529574135331316495914479451265118649222766454543474476623179956134334126477225778367642463269811647375727175585924752428977213611411347311581555266698836765616531177864928651728564578127719249734546971742876818299535493465619146421442959484449195466258135664793555945685899721625553945271546633927237686173613567396691699855263832895128437348912919547489527419723627514677313429529871245928621252896644721257578287751924239681254528335125264788953635841215181997329619865672641716654741676222377522719962868975783366964322327937835994522455114726572124623749513176982673775428472454962214211527169778527658231632556676794193259192533799121999798866312993353959597947578857344852921524961166919945257334328371414212995736118639333277641652475598153547613651516412868913733884964535319249988644847682397669335699732527642387298362356537461947679772797819741833351478228291385872371843679724137142321371373642682892693424277916524348753269261159473666477987638816941148722731918676121336337256143549171715325218688398854659142122152947579728587971529511817491949219948196934463384838511383331825211687817263624622114161535364589194864748184199594784543862223919843289166611746462239951186133423751558794159675724619198323149665795215198997928527413545122639577393821625285268652322553778582232299156915283736468796579653542727139194446773237315746711377666126647667869296583141238797292942964992565691689237253225979692517382141569747257758583921522983551661522919773814723832516996658512118352144114922754454213431981398575224893499373433994787853665711118693924231438253363373842227132745231824129114132691398578153576314157318715729962247948312435738438465299546725114367115249643484363222712143153716268433792425229682926191464718597222814879965243786251459714211849774723582779971791263622129172441771649933613844336386336527789588545168178767489523462192728373535566121118418472427227694239142114536432819412749725944693411593278914233999955234748642915161565235595525355634772233311749733641134183153521785485783295262891321817679932239559354147129629554149179256255953111811811555179896348877832457484383421184315156437451695493136651569684268777295286662723475523757877542693223186414959298772712378544854641768547331795814993517522774863485339233138225938476212949155261947863213323471825489515291439243348285946996975479142879325833368883972251226819764672566693249961881924784895242335835141133293955346733427235722343774338293825345577929257264785293411229246567951424865224989124491829973916315927256743531674142912989227629366563249414497449219486922857236623861775835749888668655884232664129364739787185725231521826383862118921763713552793964851332182413765511892147531422116478987239355643967842791885912858188629323423829981662931262564715563157249625296841356922157279823893129597552655852454949138493382639463958668439361563693663886188129581597891932448866337539755691474196651653524624542836647992797528174467531642537488811656364319831836925798465934146287345141264776631458638279124914324287693885835339915246895913151553318664334143581927249194171691169397544571921124661699812984959141874229767621462444244133299562181226444676738385356927677997514517551237769898481172753634574936942415424248574922735582136636311739512764917499294863617796456979158391886652219611648775342794421859294832543315673626932693251751638181171722212759982621218366235865483521176319389123481215599474749466973688596397965911618469564453589588224895134257343793161834536353173858732931118671938595917352513462156194789571282912522366478639423739961675279969937618242432797791468411548581649134421741697682868977167161473976547117513278135325152947387978181393237397792265973253643749418615256362159434496798893737914854873281737325356839461918683895977613794544139275749478538911263987261751315249994616458991453866766886285235796688841558539881141325426512656335235896627125435329288634854213311513294117124837946631745116424455467673326157128218469833562453492755527581529714218239967747714922763728249717615717147925929592813949718943639362859889772344232356715669864714577192769633817814766961562339524965914629637399198698659527134785438395639465995185644724332311993148919722597573326564694432884994958969368858264835261594282768599333159955461614671111679246634165434221394858228218689265768116267922142524918292424853668641177844871325435575747973261218612469393969327353544478968676444633599152753273887756488646218646379813354397383338922249486363929368355179668826399886659145422651365593725173523518819925168918274123362527229636934767119843327585381935429712443154821112255598466283955643629725781312921222254751782644174496412916787998274731794155651246117455579918517442919296124999592757485745236142463181938429426677348314615492552685388831793743145935486556826497498264511813869859592356649856634283413122233598477881132993855967295815675631474262548765934136891262129241594779958277117989243823676734898256724943273483392222929676238472583946418613636866287926859319311358365854886173932366953992789125215322518255862388195832366736521467731182937155248223531954534587815136753236816879942852135246128943286645894426995736781626268994345326236843599117791244515614151494779699428993445386843747362952989125369935516599588785639451433748989713356267763115722331936449211376563264379535671682675273663583241861936615896457263938719564815566831119573417724757229738734924574629471595843948225935762999179429473513643223944152558938343296388563627381741416963393516895964145238323651437363599331342576169651119995273252882242827399599467453585979219171223212491135339194646724129913682766567574917431365924351388383255343972692125257267934526694364936723749414821377893852783191554592241415881254718411822424297552761298553258112389585588168157358246128463624513312454125979753468884474262463569399135439923128522521335711411294494881211263729432342253563642932173844873367296495279889264954818775527483563732224726182259934298185354152979997555464291155991155587999571433565748192858593734428727563544359216381372662222365284973344259219576125592468356181822816492291526527266697421955184737243698536486385575542151668939553798179196118896698595546526151456735777854799694983684121379383952823279122763443783297378377177592612765752651181461472856131242644532378512191453172357136585533151178765653379364146443392373592467584879898456738458444241878218481952511569118413655992539465988915233571253645479283959269314941236597766478517926918947382238462589248552379166933762972223859655842247317573169522168647515195232861418167448253491882732753929651258721814979866862751498744866483234159137562355168295178958579725253834925245528236771851255855726356527646392515582973183682242446231263195519373241971884929488857937478443573924169272232727961264289168835314672292592632784282364332163915666232119677171472323192738942357526216334199179631932963951273989869614247655124196448455999424594439376553284124272616335558574513586695611543969194294198728316446161599964194119796193849485736583627155892379675212332883115525737543551925939686369545116724915798955113942349646177725148567244883126412472198854796549937337941981849451657944937293884857252232819748841337341667117195733698322622577669745778932979921595477135817599231493925846323413779296412462968581488254163244137657659519161122748496591111857379548382152421258572854537427986886177835587217359862441343594293732243912293146314385257821731643357856466261274925293983481355688451112635338643915282827261312628981785481367263873422639717756682529923948612934577939285326559251835297981244546461662984339229694595997928348297318477553721787279635848991457881693921189372294111254271779879473372234978759192541863464551533484732936612354836176119336665355326382131798713954585272199519151744799423279945943237427816653294816825848943178171814929636124497232926314865139351399294877548136979171797363998532252929312751248423346792274515714746771991459897957731188971812271624755394393365782623784511527793586395356888948383118746875927764141942276174167492538266993279128288965812225517347541913234848321834372433671275578414994622236237623172349477191317183221151794133344857816469325894137955873278366819448914331357324273114694925217325482179152286557584639485166833957456749399639757762697231611863413879669631586445444427121234854129298535266834631926521792713874796812536462234573597227133288835717126683846476344612522213261489563554578588788645273561754521123518563319449186565564776252518578169681612474718754197182932293496792628925342189371242559175156822142249224417647675211937872327145971654579645252799437571568263569131664791913684411296376734847597999297431278737948894177235223881421486144543847763179539997539451232164751139572827941787211219161914636635125742711338997881699229281814699427334413517647145226311688556433384773974537261296339967184248294115922896256429465957991515156126789758455299434348357837618989684986865263455618476147765873559392913615112162479979988278421826446815628629521731142399162993412125886792819692494695699566225693935115483696576671387454674972368213113163235891133364963794328113451699922374614158125863695352479311221332459422591522131384483589166857199136548288177718871715493699186335838117339735753489763427235266443636256282782783774548134376671168194883421694872875911497316623242341426824127342973629834273367282261234346621111756657729284454587818393748625539347737583411384566997945917996117232356748764327591865672792482165313885229196415191836159411166531891557888249747717966622982595434338176559439284346725424846365338224568542591558683811852796481669833374943444488256988964363674536241941516543332845133934247186945622184385541353223488183298229341974735727472485391412221332977913649639125224867919469122636551191591352458337353226186352619616951825632349831162585543772254192954582488738235675164679373895681372922462919184823684431927131416946863347336417426136526111265523743616942339541115979538146132822913926129897183313265199791861917961119461326466656638288917262631393515364976411363646998316752113933823777254641144799986249483395367556183298197341991697984711313726221217263112485524719684969262519493456622721645768332694922523466728651813519212354167659358122549656626285761356288373247436156361966959748632875179565827628585284821512726519112186415635194931219991557424695595941925988946761259179745782889369745685629126661194969732961996792693318652225294152854291748165369131635234896674476613847955574438756617425949897727233173917839518435299126223357987912371811222228895455593253291374565575463632188563691326621148922339722247934975323955177112831479317649962593819494478265255221494465149925244552425361521181681868295893689314615965663331671553169894459578435349467823295324543236577939696176795514372633991163217744844988236664884415991227619693684953128957371466642862292481419918324418539676355315442315782138262314942221162483541758656841296887264117657221767999561931241275341799179979224246222592292559735646225536253862398442249621841137511956338257321662919417129376935623289458162162289792629699314826362615573179127333591942917128425743651346252278447584345292995833453218522535949218263444968393341595341195216247351478858345384117856243618115227963395412169268925136196982493973177651751164275134159287918143987576723645593228413511584659558822833213121724269996643168797939629593255435717753195144772232858127973238529723829832474936838171171454542862556542474828377944226158261223223984451481215691919395819567534471284487937958269968992251583196444262919527136346444391597234518173888924469523679392326264185416399214613915838231152562851661465485793861511544728893483754419616672431586482775771289635449435753164495532147664153416766295334593925247462394448458258324952612599532192119596347498378179625823847229898134924975243592678882896439478259254127782139912814511181154631661133355872169291327783385219746782214539927821652254474924974773411227634444279213633471574259218451115823186586955378171269118347659552399863786127375396287628366712927982839791412947162916486224146839546762711297792424575341155759615269736252559254748368463114173564798728622456433748391312369337156161255678254277673932944699843971799727356372454645395156217338345158773226117384254992115445829695731139888295411595271423646711433751427843849725225372346265425892584546519918383416424777563364928427579645252752515145262974127915566275657314464747715891367182765868582367156446593483711145233912175533216129696934394126228224581447857415942967922161975972571235932647983648341865395172932258676914464718466272176945951354287358566324284792671541454477219657238411311938461459529636464247511671366539351917332986767362952277489675117291475169768887769871424641656422345483181483437333993972234312817261375412239726889112942556465742713545259813549936181568121385791143677448261721569593222262716913139634729543315655392736692148229672644212166277121959362454187422852772185621238699443696644563464731269941885848764349173468782647725123144583384474299472936978924424975819257828545176772531782137926461188797651722571274225883856662333549565465776981587623155269321189698257142639881492712214415442639518549814411386177895647529658395165648986735924755539969431145913267242615965595759819936922513983739423521155887864551816542466743232319791943855941812923869759114467374858321373811425126186824447443295648524773481874467777899234436994914998776555997558861126286843434439277395549253259429818797543316667688112945962323734268477144675754244316936725451486295231154683268615922117477932697924448598929957745842838778793783955325227515283295187932391856324491218733129196326769391376791882861717875932415478313838982483665934922434495368482488931494268835649777876914934624189986135588158837185817314543317926764258265845286581993992961698852361271719815398774937191321651614932789742441418742468114996655131565785479869966345711872865154664338931949549818629715293213792455835235858864652312522538523197799769247237241211269213576733479341732384979989531298569813832375561619396811448492636333388911318856192393267557566522434928227392917526632992475578612485262667888411662657736641563854881979327226668345471369569422293911682322239981957634598959772231322856118713271265517118276982716535632257658983848331834489446543982921357343929681119537784894725452853544533347192392314224446724443557392264693532778161631692784438667345745895356251354497993935582822395734531831875513527769284214389698722282797543683591896441633866282283845546879726396613551743217484597517539913343346838122228272383741635154743497622472867478538364385492733155812211222971286927143528498693829328714668276874223694928584354457186592712826386126313762163759283239165924885191765773823493577527352432573725814927935942881913775279347473184579731179677985231714588435572821139363539835177696967881657911261887794872127384283382843432146144563712425135294534589461747483752266662314762632773317692791229264846159836275216934634872567956291545648192172971415835866478635156418746142117855246962821453761522438158455237987167313683583697588735582392183227415154654487636333341916599325992415892615694219494233365627427342218341912921417947684387116892543619216379362175281573511295589724442835115257347986296768179197131292219879791752358816895688787384348345873854838735539366352742493832123318354741223618983293541339645862492579237931954871757723951148183152225643782791975553413146172613986893386535755596264438139334991939457732295243948662964829628428824277956272553326891718355731286236245221133926474331159894449491845583356656334174958229187814292344827418327285883459232122653818653175198216479133185552934262716546886352163515241615437264995297448779212822514915391194162713641538489174814563432498839723766474169782543427798812925173562522659929979618753787731484482449268363269522419167434241256293558831799285142513138598182886649376424167314424242181627533398987876198912888173493556888722114363244271434182488911266165851441914489659419278859766487597399946599346715491592987189267495778174612994146657927748932522857397686139721294277595241616953363922776236625429353777343623954268952987447586144955517246286644843312293887947453284369931532913616535776961673347686718751654878213349196261197975477927476211996279942551572192183915961443668277169795515138783244398776988526973435123424447484951197368811567435233389216863159432696767857162294738151188312426683262444512812433219835191365949153461154997189543721975243971834742512121556533793654462291714746899259659684127514595313575312266946325914928154499295129327928792811291799972299628661348632749375417787118437824286927453685279758559346272193355594553456862367963697296852181472373445666124559745979126361998996872356261749119876851122331496194715316352196854427751675331387891939932494858971754119581753427943755822266922177694247326158453425927471645428883644834442354219378481492432922373546528939682736119228288981154621821441438318356281344388237752398996494614445811179666887212817686726386382594525446251884432869913132964329912493536342891584542215719286468156356544576538872549124913726937473253725856613953579941759447281589631931264753621784465342462317651169512632114674975928513217825921642651319973283984386277617396294789269762972291111248896219295893365625987679182149343943184138963782312984856598919647274213448593527315664593311441652274381634671136725755181954967669576486242522831726318644138665463387364331462552168695454854752445317147193448496935966967733333223175141144811397134734748135232766284572733323315756144679895323671161461397654473493893858866296486661841137115851994297414867927815979489541943996215537653299471444331869936635665217866535392134638189393127366915243289552125616438592641425227116612453378191274159213128214824417339788563929214591461178384569323114783821129153433574847441668214977158819961848395496122443297188369912772769758481159317185426561637452744236159623211274672954399362183442518269311121725992159723412381939484136112249138181133834461527899256213342642292515431512815911691263664173743938238144751446919143177481246172829336178317192338941123931771836733733455726268317233691332653292172257424329228518151796636911682993731414937948546547255632974595674658932281648863818317741598281839427441353694821413389674479355935347492777587582694357596255766672318917158372145729255229676156166119692244641122936781897185158613462226489861837356292369958911765957495584957388669896664248852696226416191754396351159318244494384744424962847569327249946632784857661968661134385482339399424916683937913837327657244742482446323726279941841657861812154123385241963199358924421126943651715933166284189312918298938864999517325313329637211289639714956328178577697245555684315933783219442573939135382597312761474953545374265861955645624334535494245338429614377876778196365163462628441689323466796182427626878723538721416694448493365866697878895146814576212998452696427154131797788756163375416543867725772575474813369844439799858378287585444614275986239418116461261369747894641856593915777432736395579461977345749369845589291656745327259892464231581322188721393946228169214798842794539716323886586256145276478189216224865377547357791783939353235462448937732458237216915969491716532575861515352868618712465147592682659424339246341625117411942667824668368491955951346114221257482794314913561397881129494889156991379149712445798622132756469885186359589168341355352457924661233839937439244316557474743483512542922162653859296488671415449332214223875724464426385739678866796276947911414434299561789565574978988443174861672868193385181916537118851716681278518695263835698689428326325924486339192534985165369648281759174991113523748839142931626926591199259529756675236826429692642461479289255686345399961333818525151963678859566179464232291153454432338569631979121765398124968679723611432917182195994929639443621169543689779538641934482622336979798444419843321152645321691562957655972176668655468684551576411375284245166325823125198276641686296137994249566763749422597253658821451679356122725985936447771291993774367864445343329969221893566265451225148173365528934493461395797944574177196331941934951799369676285664354988747121927421126637429442527527123325953372247752553828982894454987392169321173244613256491329462412449377999796395114272779388424613592554562744121695841138892531241934832113187492764553794192967394393627588841823779356462249696117819243712898255353697695125167462832845938753395151171151522381282161773632217554229434933752153362914844392523841238755291835784543524834344546437247593387885211485131627592933292213845455134397572998185937525251413212752573729316759834661128347643478136297351449334159884814453397127816376663678335795762722752823727915798311849844616214961722178127921389169886284325461132126278136619913211474461553913484132748762649192339756125949391539939185229512842356322398167214931165482732781868115956118162232125883219337834161877388686246361221997371714312933783475412674258966158145987131598177224793354326624866989925277212476669697364315454153522394926965473315292363844338189695123642429262352151151838452493152375513151414964625678213945722494591998742917578446633857389267777472835684813949586252869225112187982199789922788223427371565655421718637861249665885265353525771437939953112279656441547889358161963269783532932925617341547934254216311321769686621647695855271826186224144339118737753437321263522683563173197846361212717172967361347426589166184686798875243574724798752334348297729482724811969752587447992632452593143167542534866581518464824232731114918539385491261862928524137866291552485949132168663115853178653515871715571943414292383543939474339177625278524766241692666989353162393784197238968667616722193722181571828197952455872934353876127448326832268181471476542645414295786963779723865462111576114953721973677726564795661572941841616799329414951616761114348891247997635249215324794664522233713842555223469778625289331837367394532421164423634771937419424259676831822463887162173518379546691691135698542128324819379851626365983969621121286763442578371932165653549364114758364416436269159859187851772129395362677352575262197945568977518249479674811557855161866768444329644618125613256351377632449643767127373836535263444155584479587545265395852125935556615842145714389727239637717961492345836965499682794533632963374439873644191744321669238179117917176392678596416737472872336569766546228288127112767963136928579659973519128148954431262953119528891924615714394188583516599854489252659596336611442637296533612875373585739952237272183111538589274939119871131991985247369536291463576922252224348234744514188626337431339691581345111562439358579133722183745156146115265179227652955213677857424368856233737926618235432698854554124537122697412574448331384589343429281295617325812388146366674687845951415774335631856475715275425648546383423489746981423523286893312231681865714637444735184658118464112441421974159871917529357957574648924379837898178759161842495633229242966324979378379148424298317996425686967843412573289959623284467747129258541528914648742459332671544193217322635145497712932833587614175218992997955374711318777228945227788184153322956134128521312728332189712529241448525913552331934837246166157537726199766693742623377473853545846241528967362579224474396639377587495227962153321841933472655423532748729264683591831846624439864692532591756624133986188913279611983345719972635947183968122559185986394784219655774314695873341536456679952454512723947967389993971998958252222219937339548182364726491874515892932545153452616562912987959565126667682689496829694579883121111771757267241852547324682662538912649193322521548521965359153475645643763437844158479184188241134237251213733151958424624854557682684462513271357714583143418191276413376156342472545975713226831244663732129882656637364883413397132917167911978414598193675357161238455984285175148526258986917283381244363221718941683784143626728797492979638862553531173136673935121295227665157561197842222155742129686661519438847252722336121289592237647281912122776264649283267658422114289312776375546977755757732381674723623169529297628239562984352438316793586172466779733112882538456459214199693241421645653222885379354246298696737312524235314721242378784149496251681336556839166199458793789315758279899769133843461715371812774324762534868254774244976361638156257549685726972816457122832328924941874943492422897163333144689684637993315398536767524416712974642144671924729281376183938982846453481499865488376542216898441947267358176531361239592812941371517711961253944583345332155272726786314683225439449787651732197668757459623199337522517411695682815322548829932731883784632321425621353757312632272819936214786832191116579953217511391997574542685339334655223121528926777574286474781899926271933115338461387265424389382865891756954465796411717658915987174174253579461383496974198212882737956534851458535856777325282867438341941683818517881978951512596828236463352941125352688655221752784117635734119881698538126973699541415665323765916638368561329963982963977597847312245789568321755672982454453322972837926248344125632315286615174535131526676231818621558817441621269469513519949741438494258331253735228351624986661283756953924581491129282647265964533635186686758377347543232963773871251315856274824381852314324562698111945372388615165285467894841629857495393195982445143371341397783522924454541141942828925243695382474842438623671464547144464512514558924338394452468485755482488463712952349761331687137274212672922866937727952957941583511214467431592556241977655117364124579342597846451271335351142211751884213631459131941664828743757182571694141436717228738182218671757378745938361236917197989223481552231425978822311192391752254849916561531796743956643869419616336788987759517997326139376786735189481429962985147216712262641914361758111931337389845431348132855737126586367539788696566176226416158871282538167618723416218943483324551319442227455685438292892496912265145134915456637256664267134876624951895842341159812133334271325536945611663855667253663545256226335441517871993868631671114796434223241442492853315757343362157219963292238178315589459662954937967346654874678552761862342964383237145133272756146576615118422574431114826251387734413595255842558982199482542315594175881419653615446467591297176152213272224332814119897491197129119667967688753533636185332476296971752793662216962212251641389944629939422521936618462235226689849132236637539423467982166885826112615375794629969366194984144521437517488937462953689633579898222254169778753499784417362178356822525968859271992915183641627988112978129259766921915217513123792245583212124344288841316943887416955432591323618811898518541425942961291858141644458614271989711657126422982813661899441643367796924274943618516723443425139876923227393441419798987285328279561951263336434791957812546953851575562573661835513541236352664623264392635956881485628975192329552265161865948718384185799287171829593441346128494457694127412983684385171262511389199958254537711639225551871516181697797384899873193594627914986659715459397382635996581519417249623374628317138745171933996478348916723856732422376526477822491334672548194271931198419141326218986168612424113598755687163571136653219156236314356754565549144186717454428111433171984382681311124159281816492387955419553941331391286364745846634514888591117432771641932314525889248119294861634179933669785923978732517497489884956373349698341992326732533362558659653256514256169122954288161151559275316113551333393838675941942613113652493556559417187414347478745338993341475613454751911115844934488471423967367459165225738969951828184561739962357115351764351932128179717943426251232931832331937938932894633319573233564949579717941187228614773967329432199463482758216853348387143465172354756326658117356223113469677318746249763863768598737286684735479698975379482132111131932111863115374377972522267146879148117291542136932815639993145739228523517235495616537215185266917686459399825278853998373248393596219399372875546275982721287429199158434351659751673947151628468475324135169676293379288542329194477962446433833917751554821166685118593794955231446991554333414631365256513889654649116686399225122874667918433858426443474655159861351618517187169528216129136931322241654773948259434867284891916133173736962254999437979445894752739344522861657355231131988243891472151133227135364962155295786589632698443533458297831246124786537474611212831766356279242513788251487255399196986118754741447834846474234138449811548287779155586767829896451459573549259621566844546717912312338382525683133388339892882868181337892483923445795456589156837284635892299179595818771238224435415897812655272129538877269476187332748378689573891747533533321384411891325128136421241897345573428324116849277289276383898191124972423829292527236153911831236245233668712598695455796463297535324474352924434877652785417557325749795169737961798697116825716214773327692553374399474574427464666557858291424141858321593536826792344857697363617647393347899823246813346314675849766862416461798776272832785343156218822675156169587252387849143479813389861276893439627767294629563913286812354254554974724823424981991968432364488647131648524652321148537542466211215111391276438386147372939341527268256763851959949536815411692169124458354756484121258964119227389199713668895116268742264875468832841359557125347493879665438257959233935579251327262983488395351241329518529931858961164822769756955989785742828626283739349881275268767941393684628927854136474327241712617211988411571465576223817862527436327693277651792812858633472811635754115447314537563566529495683895414738676824956249828553697834323464438254392418751892637254462853285556836151242712925266327176441582549313587347349813436976473994498523658542591213751782381757526466961773762124852828743697116132364974792947255745373523813796962638922198537444935536488786722415272547115755366863396454445833815255998755997883796654734948956616316767584995919372259181946234331293973549474775486825185452118216693848772181389849779924746545117352641576547354972661359686492427314262258193674474291427138778759713928369811428534876158599189552459332428313938881826747325936674619847651749465292753192511845932144222473335649233599568352593883659735473448889247553882646469595467213368932471374716813644991561819656233356848334388738257391237991963137341225535956566612487119553985414357943598697652551128317913522163362697747494363854116661339291826134628215238546545679549234599768251629791712398262595527623393224712821112142753341453869992487661946466342195997962223533611186914338734115629432771278645668414859549721714787957477336538739641828898841934658829693828949494153871681775397538926157523314923123764492355797251281423574176442829986472365365393918312276515588447916574261482176144994972959392398827338448323421664836525834759868918536271222773836543527843277397915999451214199255971337669271258954861879744485315312758315447263726835983591969692446782199112114931972839536725557635554498287574778217534256936873761745326432528124389329427869974158211699681153196945678768649265711294358683828589465875576513949344421833581923312916625198221867793458998183661561597574223861136894671911628515987181156637378338212116569869246881361192549149574198693383836531638238329639889412292848218514949324715892678521147441825138519864925369979471315131392666853351441153125652598733995272812595139953199668186281262382496299352389317821515188877855549474112165575941452189986752832751994357681676498295359555858265845437198585311281151176432739499985997757696869568665114886712646427598592875529458715169191838224628178685842897343768397172171935943654649752928921615296125374217442495382573123584335632626229732928568935288348728147343931711737138648276719239342811592879965649734626251482454976862361337927248887921821529634157341915331962277522174223373747752671897759734661645276699282492712361226229651273149813282614964436347914272411763434825622185223768919661588469122796534356191212663215714143248224646332335818891859317682632947775582417126984848157171946696157239733725426259927995342965191997492689683519899243761741846869712627264846857973822222167329837331161436593384441773498636865469798499229549397186758892664224789273192248137265983339932751621159154943626981999443524464486242817955461499494763144576367266623434371425574543942798637168386238258675749314932787264236832692172836414244775299563868691622569227638516456624266116511431465828171185531264714738345371993214961737482967313418732695339321446751948622194186971919962424932388147236592742793221712162345696223835493243439573384666278577266774744757145166531431372995188795388223638559681786596794879329167125496823446977153589232181822221776319149415999836512943422878593949981256796241927817217859527218242346549381295473678943863762512674964757389764568971986649151259834564639269213749555124627693167468167838265271755282948165954496931838368737946236493595164168429652155268922748376971981798831134336829516995911358925573137516329196599678729721599747129692747736176212835724554613628289112443921199848865225993811728762928493625311497981978332141752913885853652181112821252312264525751552894496937344758313453587952484378992954414712381776269175738669723586866968993117778311199182886438273243256491229255623624496564497224925349755531181681392997694113617918245914152386657761366182229134375222254836599928384695688891281889483682593831928641721231695451936178526574337367129159969571447842951127454492546535275482214579953293654259612655958212839575295418954931867229345527535991341352433342747227584541124525232118467579762669663411742351473983527489944468689751962445424723546632845834883394796341495837445481424827729156657112832879281162388384484939386288676671147533172353451134264742122259699469858665323511841615132727785973561658423342835437727253272836584683873521324592895674919785865369129558243556347319543827912243819433317981391144694134954979854592173135824399825548146133764977322211358733684971879482631796573841494626749614419427233574346138157537118358247415149125563814331199951352654552937857522516473886672332863293137374272494834682759199284537393287147553653219253993326511433931443452835872528422956324569867428759755862659276533936377623792361486217822959988492357243761626689459141282161196945488339774725243347459429362498761964394842144388666214467566946177219789151161613511588555199394342119584538397521364324339843185236586745924257442327345892775166189585323286985289724925598751345971449264532516455873173878291866199128952117288955114288923655675492974615665665823369681535242423827187912394357968275252311795997683697274485547849399273525788925123136278393128354121797213725657128386661365962827335128654323941176924953218964634434235875828944933416427724579738963183954893796285649193876482273641186249622135621131289473562245946347715597341462416619176828232975445877654486837758117416235412633837453848473971119129822213578158555839193459237714791692938272358882814179839384876134237645312118449179627856729576448255595286446231572323635147419239541619922131994949913546524439448957618522739768158886879443453172659373942697135869179989969365459776411622278111185216415213198583996667121719158752242931681161685494372562979182129919295297689627799939325923534922522523696927994693266357347544217415768914525661213681361838633821963163221578839169632384666912143472299486433752215769932792393824791226131126516277832263298292613484784898895389457746372633461413936724483248641786567331597554547944132197393231879931878187228921477613644322961547684243399229753754311629852192378997821639122849113261154377165955597533181613713582193352111855845271857211771475679145938152787117365647533276967575755159222581375917968713739925925127126792686428355913742772145256487129718298188962312987111974616792615191847265466966617586193982316335147825736265261491681445162942681755911812754781378339495127946413822439643515947574138912659433873516271569391721868182178179754754529511252485531834158254178352272845685239988657442386693428388243315318614858419532919771275316634837174184988866984177169617937124952512124393817151114255489446943344262453883942124414722159216558228418192187512375262181678162829742612487587223164457467815974569596712791975626684828298657459781788352915158269143651985377434469111121959512311935691969396134423181713859572929435939211616915215192538781333462264753861435314942134477169118336117365524946521666488372935612495648962615122312359177331914264319652999182932673879579999245332729446722663624152582741233559812187466938657984279643864198694521711496979346166147939628659623671766654788586171796812116676452847215171993415227998131743768893843361766292173466877982341147657663132523373682486456815539577886736245286326238698832593546495273754933389966119395354823986942611243578883118697438713459583471351459889874513235454731213895168149439332126843827683626382578879381747417435453576223465189241299956972156552629968686758993772559345768876965352669257348789995835681789227715147941537215852265956415261796661886777921621664356483739121427993118874484151396814999679456287958457462247717845898462318322824395214376532224783925267349796239655445651676151295247243882223975911944952169232914733776584727141323863723568292988866892472756953613172576743891358382944674247811659169826417362443599264367889457997128161269573432686945972932813343222793768235769541294844857394511417751834485892237761363336237911843915713281111178835659148648769554929651728543823699331143148171856596388383118289754285663361442242958626322489414992674755351877294443715752432419174134175294745148273581626239764513928622849912227257126146267211794274412155596886536615928215724247668311635759436748549256539761175616432113935399474249843114752484996669763395575548528374933418239396861464449728453468324358811539326584733493646948623932857124981835231933865985179292624448578297142186871856791548243768416678245684264641393613266419862876574511569215653482458331714516677219456656235273823474438341936512423888226159451339144756764969321354845685315535265231765378789621399716678551943884576764137717969398217313548735795583271614378525677229948295388596646629396774229464514987468355261262612463837367574199578253958133695682211621323642751964212529489266999618526475557186568452631146353359915121766516362835721943814739522631198843697684159836261351884742936222612267484228499998872311643382437912251428774955831695388589833179623166692333473436265384724949468366617283541348722373173922642391968826247693719613471146794656476485122886186616656588737584714344531617289972176125621137171255991159295322621317158427882354817434992451213536732285999618626452135642986199378514227229557656188333362544466565533822965588733914914585746163478617591836897121469332139594664163163674145811248314452886321752418811592259652371129632719348812251633881668235877968288762575418123217634629562624682683197112915493863792817462374253311455776215953935813485197696669826218497552232247792962764914748425492133476999491982546577627328433145235474798523723114886749894448157177368191615477554586971189286797378195958198583925324832384279882561512763415267142243143474142367396176537217179233648842912177171175178752439391629312324414939138392347618842346272831851988175754891969653678589484391139887692362546539927188418247756938665266538875816982998625885945938732155156762425336534821862133643374963349315211883654346895394798672547961931197171589854434589646199198314167989158692354281178817879149414819142214742237194425795173839259329614671979888143216261371514493227123136167744344645133223133876875722349492296362969916337622441152314375651982537478781891381688773232945144289486313313534251335541175776927594542149729317427111787911427263374164462962224481924298533333689629844942437651925181628658157657511944928678548132838731372514948438885729856599245955718919395553779318833783583893512238158313461943634985237489278231895352689481826284167416978529641259295341733134724428632191794198994499227155342299455255827162915637145323721842333368588795655383849135926728243731542452381641721687745555446271278519217341126315642583494311615426426261252897239684843397597771293553224117776167263422141245429152657945763295568331651499668291434428915146434629114976751135895193845786952348843755191348644297676726151121351672918568437497589372791851759512635687411144366871915729948739568274823832578362955941468282463914522389175113431735813266684617178757613362863926839642342757294132293635355312281231248525161465724993627613293339268984244169656594812264167677677285231354635679999932372582423271955778691395994985283936411349841819472256876151191414251529748442298984811387499244474988325565278993984376847628478558954912755145952344749874617923711594467965711941675735194132112715219926388281848546769376251912822622237945326395594367874873231162151884843287638329562152251747294839434272678438616689549421115772431841739995739732544835588319824931212134868184517148345879771684993844888416755299751417598963368125425851574426381137352984433238247435332324981178445274998131163618599218783235514499422134338148546542455391112997913974164724281239536814787423319129952347182979778558893842215428462358655393656745416783833695379748777449392485741924912748417167173736234776539674682375232749689888411339311163415795261915318545425916749829875674983654482415135479382724232468922534882493374297377141899611561168181584955122535584981642166114159993682289929854654368641152214467125264374171328755542245196556747217231313737363236851393135722949756115866821828286825453411931181922313326848668367946417165522535234532614494922468755927184498994245356993567216332183165184326995566719633888484581333215135145579395754432916319928711318829563253319124635525735195435374884296964915242375335472116233689522913842964213888128749442691986227956169658825884335285294286175724744829221955312495325222835612894684226748645417485516956457371484618993555416223518465352581211956151221824285899265842392646323142424715274665816623231655852151665945313126458429629932916568638235483566831671256613994927853599651934259253292153213168874372478542992288271977286596321326293528117211379372591924323563117594662747988828894581355916441235369812954885373678743644912843145936266253781397669246232627129518556925129667653962852963341692753121174239919231235853741423264119598983947568759194981971293449914946869511323751195576393161743889466623153488177674937463654251232823557415162719433994313737342184611244485418673165233368359578318275969283514268559225555276164789181334251573457382634544928297138515544932185155435997422989696625378865241822865165615117553359954116737562643452135396246652765924154396745139631574482222916133144687445758567451639346659898859361395843842638316419866543684676673443662958743886484176654474672476228439441833413757381259416632793897669855936736443974264266395289461691242965856469486621196962185554664823256437799699546876312815153877321822568932859744228383763519544221874532273155745682845332744868672426375153219127168364614327319583751952554351378619545295418947446328824864667225651172245573146212548713665923411761412479971541957282211557994121888338991964252999442239751331757912695113197332624861761566429838393573449772768455861731396211668675123787684227796754763514161658535967931419434386513759728313465827492422518777663983999415542766461739729214798192143389446244958912719371298162921512862434351431611898568732688654985215519543223388117121952762742768825416513513182345246114652823832427386716559296168397938913825954531463641936639995852745461954525214254332673549895448144551959382193893932258389298597448252499563223552218328197839418124735283984427978921718778611611861246911272716595398761466824596772653145617714352911625277549861383874969363862187982459864318738449174213946761511492172735233136243492296171895397929379347444965512723229145935737182867535895521912134871916953313723246677435344613222223234544379523983889741796423812455782974147817146777885171135462662252651394482172969912791729532349152923559435813246515753291966111647317198664166491569817311882566433661633862237839591543375363614758555138513747383711849782674282116394829514166358341641933489552343146793726865284658412163757327671371612718345221232954634963657836585686761598115949433395269743179869936862336453848141553785173418756967514111952166362437764793749885399514521147668946323356181191993867919734324526674838735318223147596798462361522395686622998163156634368177482512518684231865171535491481899431553415139545872736961284557321911494848492218763434441131771221343577943149891339687436411956792964259721648822472698262654514272861287154934328549571967871478392852668846546597199269532316368331277111962783441777184361483785656943225916199238477288869956414895998519989122486949963814572351111453313818354118255214755778596634167966565395521295789629236881662223957995823254272661636119898233736797532456143915845588873212719329736816571472614111876966571127916372333413829682256847818725736588631184662349779542175934235677155332772463514996934144375334773231184316578898788592782659331963157593421635439648428861324748335128153497132611816919927242618158455346473836331231395598194516987593622933814987687933929873895218848525545566193195647322628622426661163736384733499353143211221988942185863214377282134996881977885239189653281422129691518895684742958985336937233661989633441833818265141252579654886437743498665597139488719439611254887227447418123873499154655684864545477331554458925824155936823937273877536176741624294586256853923459393721857284639999116158832759276955946453934341313279724311169718169248463184211144572378875383126171292247393842412552781715132468689913132856899918561479127146968838443876834199812145115353498914312613158834214766966641723581119399259229537263577886799295588336637435877399133977142678254796392287521418828444422799512789632155928372852943963213382659821155781886539612922875563365653397575414613511644213177283143463615891997763623976867676554717725998717686946821292568143695749643579379872487285885458577579791373972836631785822423396346918976552844644554659493323115658745972964548432284843424121358679541254367431919342863881816415954462877545497534811413569566626189643812516417324564519932917491728191222421987216148926218395285523987134586521347978391122686885368916144836974118684191738148681767865517244546756774496382236287389311448688547823712976145469487473688263574938879411921656164928438176452857946545883215733774474627684873564417586535331422124785244312584729392387592114612112371338321234132458386236156194622529183772732227976157682285413273453515748479365284366163425831242263545936335365216535588577524142431467551912636425613929173138426414367562661979242766286442522493311697225945464635264679532454996481274641488324362791298221649525458493764554694853172553245715864149257274863772547687175371155718851693159328921297722273762173817573768632246173492512212645223342296136236269338543273242587326322333372953573765674353877375736862885436516327693668344976869715165615759551893984537366655759947259616523947156575571113941365493239128992435492648653221451964439484483942188275822153979743721756887431216967411817942295619363216756153215388596782359435142686925361384471322112174666147144467431439936131855783729491391429819179498348168365911917916994926136597736349915112148153164245952547658428691994539214547932759221757945716864522122974471745293575635585425969179257926114551176774623371498868899963216647247726387293296861214851919718272663614949933928159421916715353351311342332152759911747319464612427368517437174572113213449218177294961625288991279852421534864499436316643998621218258225892121564833252263531533123714948751777823924559985111392183498163673982144413916613363266946239522625166122822958321455161193919189864542517926463544752565695543642381841272917162827645614468747237225641945213649256614243577313819271937384983671142275527716595467314481942765959625129944533447511991341852674965839347913744785357261781176142535879553366179136332427532445933283686396712733963584351614263252592861843547611679367561771925454831419431257899387379345539899878641627551941878375144575932642253211362845123634992539948929635312421454496126423189117232154329128482833526228616197844171135618265152951853259743191926571461441816317959565981616644986235364996213561221371891471254621325164382236537395416226556439572932165143826634692734437779494221742952673611244427211391471673828283826981253784522677728587565621927916113531199253935595921258866138313536772494234326412171958676598881196599921546173475119539872997452328437652474992797581638789427493253957277391768431335513541385648485266173668511875141426237842372974784218889546838493151696334341656772712179765534846839374321384517599686295586951181992729223239183257863142781249327663999959731699842323441716416652286441823731926743427531168481426215978265953323566197239561574719291171174214176448821487472129285428113692818855811269285929711916366233348113814453811723184657688524494333245665972158713372642748568964921139564497913872861564566216647618127364742193535183274346331564448621582685884563414668174386266355271185592925181725154178734894665998423921982471618237994939365173288841617264984565731875296729612185358564914158577972788493228481548776765699763255584558442284735492745135135454688231289879947767369716526591475673597862141211762932841858552552819255695758613791355324428476512358211173741212756338133619439223674256437143181858151284856398743639468248535228348673389298396967521682211154853448781291334131157555721172444667254919576966693356764764588229726717366841773217135156571774373311948365296194353975259335487241568154853154749232352424732144985341797351121814534276298834896656433247612112926347242132943882214259339552776329661129541319536596223573939832685652493149797493679126239962858733712764412557196676992288816969176213665347513238463826513398468958868244361167412536622696684957931711111765582413477283637161236761181796172419296885138432212393329113659443177518446184671894443542678768747753653833325399186871154754182555941838382759391928726816536856255475735274156464223422385834652152998419531193638182612326297333776982381563538871233829151339573734294467367399383973223666992595975395168227187617481521571186824394818852981215211532829317411992918724378317873126273638453853757616663549771846439437475724391445841739681125686165859655321388376611556543653668551616771498475663542945889422717676942682359322197699391675534657782213166535888676763596898361181742748438919212514871375958989142458816148725134643348653925837136225365281951481817722313898273253692611754978797394645555269251717929383153314154492416219398321419974394417951645554267735452278715536729145811924942872413613937849186388971795376682515653453391463143419529186458685965592535982258666574419441858142118126824744644285711148549787545566711382763593785173138243236242333854435554471815338822458235652924922432992896711557819792512898184298367199162648253831597142836919117251539223745451863481347763231988944421415543735851219228674366188996886847125613299149369869743184946532237397923615347735751716478878413798923554351645397422993982712376828217983437159725741912226873664146276114261817773457529534556122649947272644483914697671649948728149898912484522417498567128389142973751372782631825857781565681675691912583119959946595929944595677724756441196988815771159617121148891445187356625714891547693432164851128889773247582266362242678446345988613463113514941352213342285344248457544649518752558142662112597988691347161316154816176771913435575545186631796773942328771355136455363216849228524894576223413356315572682167212696781645775146531293238448923526554326592496863674189961163457857854233966177511954476934825144843343781555772199896141829354992672518649418533835911493351947666143957227254733369222782913834917726322286493626129323757635582252165334235589941643317735737538937939342282659734595172699169441448911293189299648911891775189693785712345759881871992951358478812395753156433365842122641175933425161653874828237197882146816512518489667253461839122591437431528485564498956258925624671313139328743978812815178249116811813921478549493592455463993712271218116971854467646132227749164533868411519746257727255133892385172243298869852881571865212283932833136527632535687254939364318433424544413974141988656332266818955477994826452518215921319533588182991148646685669989485411532877254827118872621225622348346626631176545254797234342359373429114166544522238263284219291297371923294135534921498256446883585345175873784765239858614831398733829195665633396344662642535671666764126136725413268316975233529919494376194784431174842539597852962491445248144238289717631364149887782722227541655612554635429826159324612476245162699843473838554154433989568658361496391449357265712772382983939249133517181978711322174975914425754627978789431939924123478697537236568298936247175357313942719942752998529889651416749117754232878275941372222317155849464564855534299795158451549461966188598631585343494331779151324178765289529289594165136355933191542331663225191638513225553513242811225131677289645354774927133124796464513794479258991281968869159997443278893412316475454175872942152953782194691984988219135199899817198598194425623184721492538639243225167971237528778175675727346357634341388966518243844728715717867584533697213343159764948845986196766299686991214158236642169219393329359216536941639149633274663113576368393442888569647139572519394835446432149491657993834933116597177171588968531638263459857813474175427424631219813995276161266119961379889273844583963415533948184132232642351452311951125534576896745821662357284627992911434268739943992356953374778236273324282819336766517531118361195625627983723677147864837153675816896841974624335611793797586288163152595453676615599238588866195778441364637112376554751243418248366943224475651374415973479227451539698111349126712411272886861731329178195189123486919282943984363954119354677164166319781357951227315277153424713644953732156345916329833259284495275985139679238397945316373559197968338629695733995218323735166577713658166579635835913597617285711128146834716225187467934972673827336636229672273523988825175318113574867286914473614311847439481268242672127229853635313149712912856294271537722263356881587383189756321239222391689291352124744655992525156877263566693618619172323977573389496287573943143127634155553187111456564341981772867329766665447524968942639618462886234854791445269678162189495314581462257666255227817715616536551962935798128893685836481635539583334877755364466491657657228665598126469642148385351933244998896913443812764263287262627826992895322793516784481871212151132775136646399137553497147211952691928818639534267923623589768263615731234364439227268967424272113616817169573186795894129944823261489122967515369817189312335198364915248259921869664487254748166576724346448655712723191588371797316151759274427328294291873771351623234864796983863453611126566134861123954793484474596324856236948293268724875658346532335732694874277288244764727551662736648242846275662529135956372185752913247364934458265698473864271295617174648611884898731191496568356115512685422875249542746876591339293431636396856321699261975688415426242316616676511169773938165913582183811314391495855468313938853145277761399114181264454279651481472112998414439693346593818638324259664347789971683529986169427771945844432253751627461795235148675247291371136252979581245825687134424453889572254335976122394739697231811651253633624563548268736547587168662287111441591544134832885695492371327277921386783391714539581138294133347171382181263273821452679815328396112216274399487657456124377721931646699249562444462289772451387421851521494442841777866397925436282889628115371415626983779594692491194897695928835456374997532433931652461787226619327356226282276126731148855421243817469546153857654213967163689411898352472661787392373253132387416632795453628164549745437113471391917385494931924465562657389328415421729149726358573116644483959815994636815186328555411969929742713226322937362142542399732749862955225797911886318575556446859954194966687942928659218452232854784531449687174767239493711373998255273522568317932622267339524628917625132673752133224751182243322374446549316562581371796323795682831123715144352877339625661737262443569495557446441826841227479252432245537781851472167435824612118373636136387858214247822447941821873335665619791663715749146451628527565338144819553358717237838657117447323366116759141925854758792754139758546597464195413942192133736876134168738739178398347339249598215974466981561178913368333987648898982929453679993324265827615223276673217458611421674126161124237136862324641147735311691681117248753533823152793162224171882385522728772884942818361243873496664719481278817112128653551637742538111914654518733817738293792241488142417392464391377663565425498775221396881532527498688859215845183182342944548423892648312597518563636415875665655973214347981136526866532764915599188798611564667354371361995981925585567589422267119723563986623969354162977232386629229359177433712475129285282913121514167272222515634257985638646127597179993284859423582226134392617199538929614948355248192523421178211289496154288692124373986257641984513499161379838176278951166391868329253875648443534738329224346133218116767444871144629725191532858865582653952667849614881976126496183379885139595132929244925234225361317521232589641187197454699823417978161471763952366994937512541782447889692432339296432647184984734615111261362122418688385616669938521938957829328262199914564998845915648912579649138136224825332118579314171519798824388171354856877474475292972667959347711472437367368222547457677895259474773265936423666664555983313832178218358446157435294848329292653431394351895876344617318822618782159717228814373348851587656247692695919242161121338523569785771586876414646577737739748978963747321884448396283835152213679339139994565171318953244366665224915936585391155657766136827136945661375339626586913427448139593966123928951226488432247923682987528849757116723939827369946562681692723373462471866818558612352291935473213925193521153763133527794566624627487689136281166621162238725841394833987355747129828914698738415219757879481434657622891173496124521164397139555639275337878323836376914585471981993892719439432175552956982245746398315898816646599719297651264368776467222225516539686584288915753141252339752717776321884581931179538345869415198892563154558432861396842521328436552938124934321786434189648345536697914823532437916433268399484776488865138128564518314735176838976299413196488692437259717692723221647912282571474726258327294282954623285494644614142297788479853849318645818413235483194356699796675675617374352338596517868944667258195836692538992322246466914539911471522455648736232646921298339161156166437378311624995596979974954535335455997837487159872634263948743823647232663718972345634365263231322559833665514974297435998949471841782855243584861761749562233962928237554141448181778975735822472399887764278893729988673172811648459792276988322728193832926612239358884157799364673236726614524661283763248127326834416133117917837865512695249459927136855972598611754449271355391689218221192924412936845956554178692968652663237429242561732789331341958669652614137617685353884372963692191176743318469248462686698321263845695325721853721371712756867243213615321322168834342452588767479595811139524961875684747955227316691311685143217915685877146245133521336937436111931296322214734338376354374487256147454266967378652989874456345157952232747379569913283827288249238441324398416711221884826314359281935534887366349294188132448963322253723797893293138413289551646143515494189592141914142313498912156444278983945158615611345191763242148448513629733192229193115727799225318943295141256843332876946642153198144428996246624914973948146726472254995746336228751169168459137198222931529789274446742921834243378572172684163534268318619578944314261545539496994625381325467183869581181852672512532767569676582231997897538315955358353652965681514475663639286556545137123766466515317721175331463349832556115672283535443387237933632918157488916118811248294152932156211843988317495155715296936193386783162354144124472119118426234693173372228141161146831931964868648485553179719635277474167132298325972347195594289456972529751523165918345619937396322311212785225133317339258839556196414876383581543494965911749158669911312551953796425311861391289287484135637388631122697865253462128753839934878152797127362821594386939581987751728413341457135686693386829736224726825421881655293959975153334214369323692921269686683642497541629763575273817354158628854236811856595649482585495611386129334673174396991371641225493784666642483993479666692911261266777937376394678272712185917817754341274134668858825177939787924384712168228495127329618879643345333258923721934419362516678276252532168928882522637296466298366876264942973182993131978241585961537927661126734916721241743564533938466892956436815555576162572216418572199456266597869717289967875124798574863589339798487751343818743683483662791126263866322445259265915339164928317335593151974132615352446168598374116266978121238451436846312142859292926361771361452581159618822322654512296694447756311219633366818615224566541941512138863658476359149742841139882222679485282655228527146775892256815757233727396711494734436555394188717123161889927184194928656941758163551242953158484253173218984397736466413356211989386125345679276723411419372243587224389814867127813859997373611311915382584733775581172618894495351124698683646398272224818518422242978575254333349164126669279664655969325476444938993744122526956174267431492156884732357264176179729126632324289545154417236628293615541185948166423715954392434826491796635284876469382365263243274932176482644387552459432419625938726527618644382941195945684937672423997396681644687663672254471749582873348842745594798757858561169524118431547691587153334418695526958418782856373913965391118736783544718314651978282291259682825763932361289152361597373327754666968275979135829567541955734792155547597715491498171579875895755573131399293834851146615433254686131182544668769185782998872127277248154279286194651236422391942395253842983697544626118839472729772223331168625337286912774658763165974551517388433832121978374757196552812318136262455938944515374538639232863752748952463316928323365377532158668161556716522245338153838814947623458637625329848465935286472462261413186329615993953576492242928172427912294184517232188454175398123912639531732133791738766535432735247892829311398246157411541359168978253682643911223174788628683156294892642735444348619947572593493841116495953494899966295551735299293662146419621924566356343424635412483145765179399595337833543716664294296667277515392344466257279137524232673541762731741149414567394833447276122275256873353578376631199514267225166143887369886996135958855559232953225899853669964818523767756566846736425741236568554544719832733146342114212773657944779996973332324612732651296253174333969328473713593217854364285433592253252433427835237571835224441814174346793376128861693518247724145755172411869224132812437347885168219593889198445245639772816857486155973381931658292129278752882418964175341537841756158781213445632518536987921493615496535113641749655237654694464367233554244447581332185891887531477574694882989549452394849147714755917663642362222951263922599728263423789916694444813177698732114452858265331356112781684645891127728368417223743295942331618663311232281731122629736556513316817129839579497529718928885533395375475456945779995813349563456469884577247653815819732482719381275347948416778567196956321965371991478618564581392768989479998593897483418816339359836922169865156272597478743126999471396192921577713538796219868852896682585724934937352151373176298336276539449759515819695733164517634536366334265662476266227482671215618748468519373213498593228658373965172866282681647941467723433917172926384332872132311341612273535753696949624926231287141412963574622695379146261781291413551397531793462938629975433637362988552427934282967544984417354772244646342188939639711762128526864911724539588436623314523431863568195519543171368936369517787732873337138995624669533355534693985419795664837457125196621221766721812133712531377343156823119198638784314265529623889739183868549332753619452221146456718576442241584843836314124277145971787731495335997161183621937589821387654591751419489923786358633772342259228968431286726745939942965729913414644181175153871333152113595647357911382557352557649566873611523495413234212688119472527918391177335374733226114939884335367151284255616311947845596323655979827612399224818984285569827923193133936299819265848716893553488297849449637683797747472672874758999317178885632113219996775799434211865711273988814417481643773112232528141446211284229591273884998353534913886568538815847126246785355945541794812641837669883247191756517895533522334778281777263619442112781736179364359322997241398773999767474393597414688226828457159613683993453593634239499214166267661711473485533595419982848292491286437672396563856953382381244631189867791749293753624477352613264256461112123341889259981163934398261712248251981583963528713167611735412211254594172969956785296114139253783539572134622195772454321561683899265811484773785723376972933238153439164421254792196578635426119425658652153592642623356512694816282167444372575788864841861757319894636464895692189558874167921984613191599494513625278534728869244167291121431443576681739126286565748416917615543275927359994261759986871418157951693223853284287443547642286525674752568423966669778674551453568464483291156252382978126181338296435259883456391289718132465197171485779734973724276289114647619862893578485327597983373983968116412361145683115941829821286247433333173635182232817578264827725347155692519283444952943146872335697584172539439717422491947132863874313222452335594247253713641215892597886166436199587741896358419959514855856681255182496297259599859335438351319732455126429946521344755214794862879424551167674225526282846595727522338649188791987623561125436664737776446227841522175165424133669145113219149725951811334231194269372572335225762664223232943954278627521765833192343865321922214781774114531314731667217779866222255556915176974299146613887421862396314759781762962117651289945623516217961282492326659343484365111869139156828711194262885324584413817289875295282768512865993642341831745313189998719358646885376236671611723636813717235285951166233982441328832586118785741815486696444357224446151764493489427324461871952982121226911642999865318446364968486923449144315532575581385947129399254656436573964643261157654428151674794114534464471381917619381341541631841185327364731285398413233612927658893243811469672796324954644119693857111384942492956144166457764578385597272522775686862932696313221983321983831877822585895251283418258225376812276654655725589198596926821235888296885898451563875823197265976259583897177451315824252174352147344973642685353137721743271913913656262184954352944574775496239438489793946367479811141832523557124292671115782233351581317115986427451179688523528229996934247741977644159246624343711772681765327334829767476789431189149462755149817191877152894928599543212745578947468217722325989956194685926599434848755542394585813776618521733172573952896662383429953867823864111339739555487191631178679774347761672715954842642282767611755171931837774725252776939676593274632751249642763532346281436957681213643492519617368262378131459669121581695917494124868757654245423887314273637752618115538347333615169137985868484153499426797349991715936275584226167929585958182496661737478124114927944582621679818393811243935144969221526282461976549243358332879676838912971576577132783427372986939853651816214385358953613166993248669558796976562755643387496171411521775391339221865789884183994578264344639382576196768395553988129732264142421899628343123158972648113478951383349475995263971337947849721138352119549142427473493943616884553562744713238393231144864184954682518877239244441491239535626879238149334687157729316897682127291396643554592995436966471258145775123862241423685921366216979418195755769751842247183199173617967983976443482274448542164717375676833966257915937823216147172791838465239189372311294683535982163113411457949978842483224885621911694262926459123593662943949837859171468578119971162578652411879392219368678749311855285548578167287977531964641464458724722591848184144999367241333962689621456572764651479161768163665779721812632916186962419249255698323867427466643435712123638361237524783145133327831427526218726824397585497514485892683441627767152431193178323155862312125149927687288359287267938726275812515926126828226242561739786776723714451739625351291963712188952238716238325142327999314153853669715512793524941943663741969339931129577547141251874963654333648578685259824138144823131961233327363712549352821975215593185388821941665624733596541622494527215234289843773371626295234843382815515127654722668941427555157942383561298492933975774791714215279213224783966121691885492542743797381351465378352995675569119187287762798281548547891335413353113374155242238872778142166884294257176222798136326283562149131124261626887213351872172334785397991319189571573153848915946618343755482875664513292934227895753475751651981524259947289534667873952477931227234118965319622611122532286988282687287128664653737614614195134438444578935752517453759295247467552659291168246378644889554992965519172236513471925695869139596236226293667746441399231617663862282522875517241137496651845252761292738733146555274232372356736666513883379334881185162256434955366819959675398613119444389473392871313291711791431418767836447415744915913769476144815323119626923485157236887431154818793652182844623859973172273777587494244936748473731372661139139846841266998849996231644919346423936512986268913548239523463474722184367758766476592582851765551211914531837212978586774465279812695533863475643898621241894174728211935168398473871921451352922757551528312867167816263185234356231833462569922938124324292865753748489897331842269999836567362325465726337119279796739517685133316646425979644532391511194893199843519179213234871563347284766356347421389431629915412984126394313625143131881537791273272816563199522881332247359719857714538744394481216543228172736212618526267674964324319924413393622267314345653522728265935211744417525556748513352153961674189837434746975923792811122581149682445116989516627111174364293488697996793192321315547653369271477991495954916819279371134615634248743612817134991555725399123492985669591637356718292279682394958338189965715656237413211643155438954912292717284711451827687888745443276462715461815292753485341333544356576883691627374268935421912978485398364966735457757234319847662231283444696269623579916256646299161579373684556816624999364512376451696967823322471751429467341544884428632769369259779844956996581294116372526665229163792348186937114258231347623322996742828495664543719564571771687224616889724636614358134882759247785146481547187319538342228881145853631687294617931215371733697782299768799719193764149279312565452115261531571953642274346895165978316311869553417499442482223237157515896462427384221522332147273614655684499785277486676221129787397613741323876312199151734649362352684672521265633547242154874459144555788132138868335854864667122619916678355262342132526351711412943478425251918843351125353712444541497313569961918412817194926761451611599522529238672862529939212151752821457711918916177184281418973549139326794453844951575132828627745995158519123998877218589217143991322333827164646159258318554189923456364271655644986235283551498938999733186787442862718656996913686219121321722965711869287491886629999461792732962549593131152181363727418855538752362717851652834267136775637989249938552135355344748968134543818573213974513227932192756996868171463728937532587238461674525679843582637961943929944141277223294153348676568961167515715799694543719581443754222848572611386996592696746612182633422373259243266982114948253428591581719336328461266277248976831641288145348987422189259619942856277351471265347994646411395465885955817223314659382849327547965491124363583947815672723289392112517314418347227621455154978383294736565986234717998124156376111665741961562176117881297977929592184787433863451741539513117814191292971863121959264181183926654315712586919146626912361681597983858596334582644611515767766871736412383328889268455252941428681692683933344737724227665472835992913533683617576977655641593171938564494588492237129824913823436798953171115543344421682317584824586341385726521574465896852669116473145673521797942376681612977632723563353711698168939698522417478852994219375199426565649287314717776492924382265691546567664132725285591252319722523149511837184454259146988511561437851153866135123915158578156917714716571651491581317529583619132951784541946198472646757982114566177154776689639623242258693845527585563225559836359484564751145756692779614242352726786155578562398254872764625966858853525871736263418452776222619361661574152889344722791652631552662312488365494167274931249656118865923171967733134981153353241134266372587372276986158961327131497472471725194712946216766886785943332863366512965455795243364947676111527576413382673624744934951614925163111461335255334451276644115329553788299288511192227482464437834178438614828435246259789463645379334499365795528819459579227942372882687444252166553682765555966224922237666544188984394496254338649973526389788284376411916789386951853722293529968444175519696415268984166872343377316999623863487685842738318456478494796411176991378118793525971612694748636949899456151773119412691775565278411644943366132492222147841325964121263868858518132295237114393194915234283227675123157653975384481118134749633262876383763763731518267998158947725665748258161311919365516428773868953483664223173279874472121923532197262486781937932473477643415871693519481596944612442732941379259323889877995518631832336317975759928314896559269315679527778238373277652928453242218399956949499565329489791983435413757538487634985133195142853617272539932289989831723164881524494575528298794336633723297415188963677237961296424856681471665162939795589175367935151695778267218639228923337559621368998941665883921289479739195329363314714755623554947426161989896771199137741352276321295386393913145335923693212567839976793384951861954217229959853241198622479278981881566681797792868168955441247167633211131221588875938747286969395518696865269527854883895413372356317776935644249273833879992815835128875586623559233728138247816742652225498712626713253816155613574975649823514956923814595642654914779853697516732265229626674431362329691487581736315459811971545176239782124286559362844241484399769936952664821713872946945359271412856755341217917118336353279116215749475252238679641951423953468573217588618682783473662642751291826141422958423732748131288896223459533216534986366581895762378289435248147841311861711368943967116935194271137263656313799448647617668177266943415234139722814347669851723832231967922153765319529819447736229933213348361952996812658983293733347422712942153771852471489181735679993973872717275592883614425797691776329543821263797614937486145221957659249441364847612377289624923924456116412475385563322928572918225475351221647364633734437683613526138338651973114431222663571641254761485533788172249113222847397813847769328737231648458947432626676623132189975754177624141224647916436283183535578819112175823295455444856135352527287344961242486514221514653423695312831197241992751211686525224962141439447698328477935286816799768811687978854761699528743374668692171412465463218519412983425431946629148989996955659574938137391742188316599366792282896117291562724948156782269425727878486512872624131682845792855211834143145412348723926486721631286212114433299822885556845631793289125444249545461618397125934723629855798647818499662832896187794321623663698241642167937163425394469161594219367816825941757163925772299524275214634583428642857441843389125683918682656937289776333295198695348245677746118424411761153778673643129497798884627941351698427665653125654327195681873725453129798724461465298727759128642166964965711364854141271362611429654151718423872117658184725382359876599594394419335555267212969251329577855319183847821979258136128514451521236483826217616722717991169964324383145517722112629391392111277426534149786717214824922748649835353312256842562581542515618495949218499225912831455794767487267363294987664569451376958392941191272144629995483316953945147263272365254731375878453972256362412653173128962972994982534846823348412216844466771164339712473277418151651519393463461296299325461598831231158786751544631647123144359838659499768921769386552629794635476111483878762441151976649629478787321677699827976373241149585713214775759357383349662564296422575361768794421486266974682824698225475234933938396366249872326384687314873821637494136185525664715114988976323784253958114935738677127198335562985756482219284819311425146661933862527834581417717326433861244995325414628468144775342662211644255446957146666827543428326592571857114738521222184821631624783283242122782787644834893151112773792692515594473571864271245791555797663677698139382746317786873753635274919226235795131551688461179633352312812674214165738795331254456668147741357423647389946853144173623729314957186626621278249294179449782662141113924163398133226453921258275219232317681733591169569471285879955734294731333435611864381793161116789446899141485835412995462679442699835242189446429122817215739721684853434448782387993263262618861527682825146755891166698495211959111131788763543341155174344237684962671164918969549196458912565825712523165992918659895197823645674994746951794234511726839289382178859481459616223341594739179663986365799429452362548271535184558499771653626554684144396353495974589273674526372815495877814649159387352455972215683699164891254473631453592444867462894322328295169551935497181471927832723388243995642148944151135154884415814773388337444833422154867977967235835794931984892439395355475233183182718781733724455497526966521363939256665179457729282919879289912161441772987472512123253585584244512136542471123486396186465621821697399492332169876149479787354661492851972842989961468314821982226133345934616291955576462667513141566638273139915945536632198586132826369649891773769714981484761683752424914695551471227629721559969535874989771969898816636131666545177971363538641759941474813779827186711761247447276866562499283539697915397797442228687888163175274263523831124415416145911835533844293787378361458514432485741138371674731694486194346298666851123281791654982631255332964466641231942463889778375714558692643141249376942531187288281525421951118439679992928739292538741235914744938864975944658227315819565395645321838648625681148585851526525256674583884276573844528829754176854656119319135833719412937397767876274336458773873373413532726521957797396969783126449769918115378621943241487517317715634846439319659938197788151583172535393175219431673136822195758222576634962634175599642532799925357556725886598142295632244583824551264553982751643693836695893398681297473188148463559151352761656681223899518724723243994867171825282712849582317121969429291238496742588684463126332124552126213191112958531524768673694643258114916187111413992914641655377497582122955987815628148229123891682947658338697734725455727589686659318554939195339517998742339112911566533864126212582995285378967818992249329547959272787954364826428598583562386489813929168592566264365841782386451118482321443396784542427372639371351213649131656464696491936763614558396798354863173141119822227354343591365833173736769883759356829313289874128747984464598746133458248812562145684763547649883396249164638254481289329945817122218434157369312219183646649228937866866765337793783289638423824372163484863849842546359229248181494811673251683367733379784357611359768928171249486847325234712813952741219996613145246168844672549441825313796762231521727614614345748394564195173363183247453219715957933635272436866466519551939779614424831431766796989153242128558475696227734248542978223971387465881426741711132276771213488972796214415421988816882163153915472958222325822821565647134556414391946295975964829711423497754161446932554376428848158338266919641485944718129253613771919144647256675221313977556658179624784845235852159796416867212321294992166237992733957834967641966361318347419862628658857533335228643215949458699172587116962356544736371777411255983748812615635948242833951718155488945575224862952693876112467812214849687513262445296629842983558943221945144943375283167643629712882124799546754879856713467347975726342686724192437311864794118837865392624541518119857787526251112423643581749185749664517665129532941667114992418212429418724559291994913651721237941124781431334614926617238721351483126988333944556988195227419393144282554962382235321789814232673696442942155317123418958454757216666218744515419723453945957569969986952914912482972315668838985961547512923565181459185156525849447813844156913629333335812978356862263373934284849241427812289847124646924219561224317746462253945966442966798875114284317796497323861753498275895253745361215436868118816124375156545926522962333241387458987639618887846153546751924611191383659343886248518247919743184795314295298127628965798534221869646589979141566472146397411256929315793575875181911548116663125449366649975557451121999794137473191334227179813921532361133887581961592453449962418928111553482618852945117448651391173335459914538429749423289254578578397389115517545464454513113259999252953338475552811697118266895157963389618395374451649274393954831851562737643939334299566263154785219265482139448351236192234626527713723657253779716665863423114283954692742292623131467472939428599369251231641918916685258142188579921999252241158161182366298278262512628723218268351813979164898384243257737275389565918956721352487989577196473782721567696669876948439118397816379525818751797192217641181769745224998177361934136924166136739168612261647298673172849558148172784951744968567864862423923667734228453651526174872236476692174415821568548233866449483622136868155674388591243952143297412671612214183155365524634854738787675292713159936435951533697355718693293419333157689379251334213325496822145514936244964716346928565881672757523299551213119474958798375831686233489638392962271236615284351644467291732743531224769516179155412215395151584625716223889115133524112235933611815943492713567799273213994193525472577129126871733142533714114676521227646368729615575339819492843783381272773125868984551389796733516816765536229612554218294797439215964813258852332612286547583821293222791773782835655131312777846513942689114129434432718465793324218343885424814813267491178833913389564113735491783291797975332714989148855721218849387355583571411549332638729852257839794494796578739636186357889349529114366774496456411124658641732656234215271341446184199963141897668548552594556222592936835754411142844731191483186975276612783669663517826961523995334589222399611983984947879253531191418864114592122948797155456243216942995368923222441997118146323592697819712339632422276541926863416377219312269926622719221292185848938657865725982578133124689513654645465796853516596372732485836691248449843282578923114316866317827315156939246388232449361591145475548938167388818734155196799515683384734443519838745521892724648963796988293315737792213251572154974979536617111352452689851863543327638785435134588124114145439899416723952815956288937414628111583637992924672312753639789442656496871953189362792381845532799489421274715461233363173278991267682336184454633735749926475799481372834338991611875188743932727923862979586469659985166337545728874454143648276311213912535141274911719265571533163549482227837864842587931691543961394412999732545858882384589934242348869217637725747128814167111589532462161771686974886417461344786786941554745418122822158189451256824235693933517575657839756146251167669228747911181564297169583794134751579311367464264553594335629918595292218494773494718281429893646462943238311234196733232515568133123414151411443568279728486654642632256518536837499559519467663156862555313662784282782987794285481215816949457342795865535363467713224374919599563886165631466249145189849432159937184793379714812254343264853821337549876471273123811413233427121851231436127224778178526479417131961738681882637772272911432225459226185342366843585527531815571162311798827567886715728576142111985781548128169984521729194522155191693671454337383647397264641873214432245767712754888486256255437965566622127592376163288752296948446125326667459677472851922159181657925476967171537733473378722398371833245247945965379386593435369945336242575181791172385848285439377247481228635437579767442936353931821448563719355555629215796374959324927378496438151322294783435576251415719728769572589553775834773739851835923194299684918135682693555436659434621981319899753711295866847261452118768881873191462478723793363693265395787934731926176268641497653823414194418196419629736499433563412564498677216913474195884228517817698896952954697436416197242364745265314466142241275278195995221613883988183681515577124177699842172162416996486367688465629273239694929115594641277915676915582348653992299435939956256814997567828584642723796482733171794651291664649327139797655149523918883255376872776515119716313586651828973488129792358716848417472386644381319462485529114955473438888541226639489239359732144795455422857563471381444611133914566425633992497655931782822842965451483756926267478525161472893329495552675877896663745879323444981782938476546795186669874783562134849388188985986223586317133263177928531154927481712171934424673253837812914414187583416319492256286448936994726947669272281626726637788749712658136732469251799476261146182127151814374572268716287323576745243328951146655758981124985299331412117967582359325933274566893222383486627874211635812127166777327648548129132974256613231192633321527366771199199697559564273494421985688574393743791792941275635439337556181445815428667147331742895937119157685961647984734347386534241552828391724564887642486399442639726783757456543232269947863322866583814568337987314932257126885715564588774692354244135428494498535567823396641762443479155863532434729977178224187627131235461529912287224765744428759762122639324578473199772765383456498278845177651273665417154813793921343598141436178152464465859642583288262648463216696992638814376824995512584879998574936414332698364737277341718943677568523958286891273231326114577332466111951186626941126799695843461633475765196495318574365442347769726172424126219112376739366883518818145698516561711239894779175479349745714999416453973232995835588993165687636155919493281634453194472927563835758749174866286634129733927117495826592125317532771492732124315267181953263375411338764997799618612695989162496245776752991563154268517169832689412239513167679236129177927545884598761249486573845512317213262335353398365313312662682319272841939976249843476112956178359643885177826973962325531126223676841437137131582946612113397138763946141561293274295495936158325623941276864551371963787439575276898995655858353728935633457197913939731564657627786732428238922563458983218832298554375619775781682963933628357583859859947927391632821537919625132342976148724159853653868558594839478174738967126215696762921693785926582285336226554382131237266143245971265158614141123954228292233754594852314124373832633967275511821616441752651843114361163661185372482371516853544558122114641231769237242265566463926461218849646639765847599514265199613351144239394185218363253317642284456274965595177945989424529115314413544988734536387777329722684759639227911843654949989872923198911926167888289514914248333631856318411169819936242665746794212385444699911967418663139897239892934747477576735478762695632367179514483998451378713662524273799387365281317336839358489311911731526839273638799346528546911368324255812518722134111191175456234832653226347393471552422735171863517393718915613537175981178888557978132199592672874746934193698396178228783455674557755911989137861424194191877219262165365949623849139619578755389216645127789353219243818146799365631446934234933613117521584299855733145586796731147625292494481411468747417587115699586382671721157649941888369399753493494916582943242243399353552332919686953126326653234322962341655964299458555949192974776449823488266912135436757915633434512989541798718213282633821548187116582749643229778212753295715351247429825849734343267575424415191615936744895241729184861372292263154958868368898299183287598817381445815396729697799576612814553317393699688822984554689674711395791146258523927432479194937424189231597872618993798785781924923685938323569369115434749648424866378272195954712635846424784666865228736161252517792426611116496149239114284323863162361892265565895872574238688697612966524591971187285535157973133726964963215491773819533257769637888381581192877426552875121915693528381316975989663917317193385318233151618596675448156595932778235216499239441324644946464742778948493253277388879195246126995213944514331893398481757564214664312489925831764842473758949234673467482619365964624223224961445695832645182975819195435422872751788233248745927129539451821531512735134563698733512846711321797681451669645166488927281179336351332181183812123334198242495174131114386155659382554592941711399138276127393993356967238858524771163913693126747531579599712137732711865231529611154237482563499611246219164978638293832615277925437255432932877631772347313825179299368836233219363363228225953929511154853992739146269758132973614236861919456235911612836764546793121542622321473782482599293545449429241942814471254172489538334652235884485915547531123659467946123927336155694233262651523447158712842931654874359148299882666391411415673315619827534517824533956746935556632999197399254999193735787581629194185848736985914731112694447724719664676812142848484932382726859518665667626853239482755916469434225347395481241588453719725738419842857658722835973329431627584517497135223395679213516986566474648644473288128157845788416389815113345419862843922422342592543247212888872392191635133838751282948484595239273395817923592155652435854815645442858123525336565715265143773445568885453456129843853113839884966519324946815382273997432963659613635395434943831184666529838842865327479868789764458671529172384491728566635714787181366344124496412577513583327297912836337399355183463285473454466353862111763123277685842332298166753739775555871559697495595533981786134349212173833651551353575165521232187461231965627319959741193335294113578442637926932315986243543768755663431575224152681187443756339973382315677527152232636361345761138543421739844463565711859146285631225641719626354354294359458334259473126735263166674141329294871541817333121986252591319221825916998711326567396576613235363251471831956343256154345922334449363642564943785281236841382371839894837171557937554481219684911294815188172874622257918295464251148277683818847973571751453982516422563269428494248789342265444595361278927248315258618333893571463543982552233289825567911394581476337399757773527317484844918352171396668225518581314486342311244191424269826283846362386449863581774773347449676671477985474484634985111458612696466591685171322832657584196164461575993418611221262891745127778998912359831411872296442963369829625679331277231236819167876728589643524771814543495381851485152641155558936958443569348295267388778756654838151291731469157612582772234492734267361241851778329324753699541571671559973514796931825485699422283425487856277645265777598733711561657342954297298418271664321866224527548342515755868837378574594675138243267336589872194185468635198734785959438575276761958131115969618621635869679944166679581729565152443383418591232321271193723434342551426469618164335968548962248442548637438778918162169747744342816161165557262918664118771412839464856228513181841759525792992156597293582335775883497728889479694253118913884466323184745463646727128792796679156154883517439332567422574512459319753216931294562653375389252919241981353294884868253422668132532393931885241953632757445563168556445185192151574488699654664398563996554718143324549282519341381314799513497242841952211274542144339399631916854429144325432659536751174654736617894732271252364359194182113462822419327148813482335345961448526528915243258237821657932313151521445645278714566892415792885173143242387989492531788894256964653963539334396447957798789719919472771347281961611365112251998219877217146762524831766731765772325185197596918976182234372426573542319198674388263387912659566375458453322282655333513595557475124694411426923926132816846659477539168247911714286936353324269488387477931551748323935442625675125443226677798857883175641271823144179492182728593932646628499914686519871632289389779169444986381684592545312928664942296353533792778437938674167955934556761124585384914438872152344875381533586941166992293997454851528369418171322729279869512585646632524343166736336862377165275351229915992875998182498987131167188171684499266861821358445128843129661912191429852549742392196548827235815929457393522786948391985389121395569489367185418474811254152428813429486629333122224946883267282931922444915428232242565377135269429422394744565949927644651915255515735143272696584872374627741161699153974753624462881136752719636962749786159461327287794119373394526468176114253462267986974378673827823186391151426633535291685336922424772456893183345283366672233998956942332516664512862418126731845666516946717854197171994392387759225344247738921384371117741594472122497541244421283716449136428291845117771911347493511835293823195663556821993926662878372118253124671375291365279419976792521423769798796818139241714129541256221633221911149224828557694122641682985692764766717384763117871392328216883622898514983442183184177391466423212779133867858517415991855712848467256523686195438116854941795974774412877377516675836626367755334861467748914158589486379433171237478391715484649413762286476826674142582414826472595273132278495392836847245123521568541223634977791881616766234814528275663213325155343413978911736778874311516658465578169743557112267384194216285923266733118352488249841872331162955313321453528953193986682473876161179291461672995215197441996371445379592878369676965531347931368715543761753352977129415177833718136794611352262749423254859778999455441435336325357761241913467287236661924799411666197164648596541737824545614992926414262236577512312225113932618139268379571451388666558659178261921111817424621515483577467614248747329252111563792134577134973241784283796932361788834393288936686871431539515674387538743371469358348673587951594514297532252328818764544722623681891761761224569323385199414278594335524536334992156628959128455224423222481784756468523244876612544199737976664693499681513448447918847383923369211886511355544454115232663973337635297477569623412835283345192371751842728272913316324743347126329723121541195664449825662215549858121346663424522774313756881999193753429179896269199392758573493218419648984415237399346276368589756315111199829499244636751672534738234271343722989153761196285873873677438478692737976784193587926442219765331772589494743295548139173277661941944221121382413317818384379267366718294145162691176831734644571146131175879953182165147143199914914489391549221777791339795885311514195965836571111222647956469219284988916478944182176848722825989491516927285992452657427889383166924219128516993421262562622316895357891513956993667266491818229935818568674187221351262114623196385888356735318795348296144834427815377252168661597269611399258199374616236783229314576648875253474919954354429245322658242771924954444226278188131894978773271417814686844988374585561949767149489258282989296944611393578342921263463234864561773315494521515444426723843375249377639252725127316163362723695338677495419126353468475185727647232195344648567628198663647412455567546522281296291582788525348358243764949787975238729693954372928886548815463593652548778391633113977345543544643818281592285448262433275326441534751919168237196241419977145194619623545496121564855179299993459195414725463412232975929492656964458217696442238221128371696125221379697187144538287447999947851624637195868918526497116959619413671141277276154779875488575278234714993495337643414953314365728992223843253751658826393936315616336252739514143561762312118219445268785455263611118126591375945941555323376472772842341865461918112916411913626198898182792921851154991426798954568472858197229845781578534963274581345771597376749917659253224168156146472529711674789457449863552677934621967389536588777562354375195468323218175265221882288479948132767162688419154787666621685184527581286176738634313187575222195313115979631658475286425265436265549871638791858187194376316112121623739356958735636465977979555767737496233159893754695271445833126644538454857332274422346396599669428798367841888856492712527583554911299314647271933184874114556517382942234543776959972557152558225433636131114553991963781553364568294916123184872343477143574344816144169241211745325379191654475212619887263563628253423932249329697545449891715515682783172972516997591766738217954422793532159435261928137227916694298952419391291431856688223389959529457414813431339679827654277222197413141964473353421254925925962486929643263173937521331793312159472687835651237239148221598253247639191327578869251382333423883221227122683686748387728141749216692118746392392912943968471214566141952734231658955242625753138691219146296618918387457416831331662327749483341211536855658825791282349642136511861991952151411874267951577926279892491118239142231822236446873822188629377964428214374611938139682964968199123953197991662569157829879724226729133969931474554229647923245271462219156231599757465783167311592351475572829637488142928716251481965436599598844636599995253688589848951582413253813927894411936573682973723155356768922797375173545539666747934683434883849741332343241683961741855496245458494739517251151663818813356439919478318345151543359958371121555977844451464872698299957376552974124926365262823635636981534567952529646192127425837985277355532389442533434441167579396278699522573943887459881319843131698329129667373712155197362695754285735238437479681793118245985774589836581663481292593432552278453771653924336749933285791994929485773314112654745187572293954319566315274255738913645169173675736731549558949927611492635735728716163441987691961163767219192875999128669113317736583313518627596617493768899667254871667689952927636631745422793957489928661152969671148621813859982945836747798976431357875957437442128674417141328979551229715662136925864162919554915671957664892921632533973419767575344862716878452798117199244395213419229758235635518743373672277472369362717733761547231123255373639485389166225313842352552362335345388398755575862948249121885747393477361856557971416888295499911739992434993797835635313755392887572168958989834684522536969196112291556663266937197876449722862438592984532581617474441161711961353631837117946419649174353426956112697516176178187564161666241978516157168772254382416655144485156194414815455697311918222849127244727227666752756238741276248854265519582177369956426944317562264266251418319586792413261462983458782143537737881232127163773871971714332628557932962178541584555118285818685318694331745879427885614287263242354913559727975198881655677687129325781382683322929159524996454343441295219431946131169856186655891942219792921254316462737562199631362363952761461224722429565681817248689245966569412144169682779169918882721947352245416691563481451987973629847934396136585391532936327118919629979182122123132187218237654974795551738451453854993211367191157557142818785435992672244226252133943933462791331816435793297786857447657682291236671991426477714831386594763366417364742541421238199859932379542336532346568846193126422342748951284293712315847727599937841859899733327991161452442716128529858494613892824159561884359312734313399632448548995773733369359539911176481398376995282343459738716565517856215813414694878836425484251418877992758222427612869317495522878382141453721947451984426644645923491595597782539413285919745593114986967559541339248582763854527976763481166569216316727271322416617196479912871728963943584363859955519328237313965369742932435543198368271531913518125269663427385514775363931258521572743474613568817516146816916144625921567133527397287945667883745933591262164549327223552956923578251493365843168262345226531152339732914311111969453576427222241342128824886931551967795811314467624137532261565866982159546126469349845814186672811348295258613812343168843826733592779238253126432367212185413223277279929259844799321891263438815661812876866744249321269315942855656732368426222865253894723898895628172475533343628224259841796678119265117233171922278188388751961846143529396217194285259757248936922521992659512791624234343931276645266219265663988336395274675721516299444198988673885747317111822524126964321382367341144177991396621253897553751637611975377978433771223466579979912212562562663422454938827233667821262934877663366469268569836262542984144996612911924411648592686678425321835419246452199688156521312838352949375696711334922372413627265551533613251536149113785149232977653351782784783371143659471338668213555479641916296852258598283793149867392514132438454412397959821256577236831434121396723959824763127652791512198482663454679618163392899246484155842286114892543637171496764598519136277517683543196221639933452147229675618664247129882796178242231841657816712257361696581833962311194722883943743787916882473721551793191799198255987656147923756527315336752515112511593911652928719396619956783486564421118512395782662325734452129595616968859927622269258682899935171968993274672268524861954424779262229534382734629122954516887796355622444547682812895981771841937839172691214898459368756824816797619377999317823713693118998683985315593593759612528138392213247344512581166827452848943293283857654431222983726317578155783552243826789886941586456384218848141393684493984391516315252122124782721314278476247695698651163142356546832936225668332869612756525339481271629594447428484349928293567436482433269241838242146724541846313793979777352329473231389773193249951912644643897365125463997661295284332594595592557747557794851273176165723424553341616152698516474496584997527214482985358555464166297462722826757311978697398414761452431465815532819846593518344299452234467746274625387397181278182396364879192448642861794712611151716291924897428781918587863163371553262588264111569149492761845669931535526418427254156596445385677463138832252414996497523296857968167218762771243396132225929181763677728614779679148345421412165622145258555853319621558729278283248585681181762239377574132769899563688289933419366149724862542277769625135474154655871668789532747893646726234921524753492947846844561323116919681727839235445127324483681815675318539361141275536623579271412874425437332796879341521634659435325811395228619878351941927776595711839118767548652392418342975421572262848822984769263692167843715382431699428593693215325628583411449437372513831336136597315395557742815445599667871995245916565815525419415372375116497262396565495716789144138718528946472547164417998161272659319942918584715762229195184264352439285979451483773487812881798852538648147518799973471337748117171616551857221977162613245522239982784335168157483241683179687777395157629941744387774286171787537644125186867613681742926529673913677874123846967922115875719457559989999232123622911818436838231145883151753239211694152125187884873482185581385243949314723961335919587598996743151178824341115711924438517356192595798428186715137653898349167612731738471971881183887467137393951667399977171311232544452534187843931415116226469932198227755238598521461492576263334115478889431324426576694641331743122111634927489385183443153831249869536732816177542523631848956979487945554122267314464978917358313815155982447313168254171495731262966276476316281571879232454346911914836599695392837413895134241278279193642972237733372829736825655358277583822641785686128625334831642812127173612413318487464571421832968142274124154279472691372916471283529866296592262463823536423917969524694351184355444471413125162924162399598863951496565982891156351254144979417664266296721652913358396939249253571483464279244923842415236964212249237612181965411148788721327116335523544325473453814241156756864712429791984452747171779777842194426778165219946826987667992812343279233967811229421124656693985912128221658126434729991772355779259636891673874442196614925355781153562268455996174626887442617672356848677885939637191979229682432756685536545383795517883437259633952294336469329585266539254896622283441299121898189584264659447622642644811845834382129531695576346669927544577755271663278263583472864923379454395183359913645312276111219547857286797162193159536163854832299221571512358251938914649166182199477922994811886759655534138485822471754142349872152261591533949344818367949318865243551982711677965813126656958943793995614167899746246619918223756593984111666453679657922199764452997669627791465423591912157657614181156485841376654191918871916872926426625666145944849234878273178767215739488215819478438587554134775946316212493965949496184915672596768794186457641842258677113492897861411138321155251388997185936488392557414572511995681413785772228335246889691811559173469925354367557183221556515914331816459284117816552995254447225638779183867156979253143387787593964736987568923983224743418159319125998683979825268547113638178164444886861179173837835594152333518453454124952725288541629197387655992837152674229316894478131313581599761429172511198461376479379463584469123532351627133741946555226294349484991248964722499536397293214533657484776529994952898858365167117741489256342231313961853278624637514728425918593756312682383176636899237975166372358231152748563792134839569581766115147495815771982266458945926795935886569391724757562487577329599288233574476115114523845854412396911479641848935614541516353225495855686146891289217693756385424278894778716924642126813817925774991941999653511261656424886817427427499476349718432847325645553131617418329822724237493564781456317462926244915724789322716112517928899512839529621663328646273424622365149934275694294972815155354533955738491249424169375789196783758894526239732976812144379695815644496187465618652635178345486573415265935275492491729737812117726535337795744194471494563242138487277566599392619216983287814133219237194525735178113155948259141326422345892711391111458133629946216774968978313424438499974886253449124483977969927562366966554387362846513593393362659373384768176629317226533844171314131836573391299884679763345773283779783953127967792627843439977335321149896872664245922925363479928594534987165665464646123882688133686746345358147229951973121524627354546393277541988236583591824155737212783331428652534812373679797316975922534838587115931811965951585358785445336966866389215384578892762894216275539314362691174324151999927612558785926577159633344151789424434524873434183264656863252148535312754569816162388519516386631275617522923895395318494914851838882547476352641462928866626152334861126185638949894515421399469421496576344311293421589249442661334828621473147342215524241813174624216387214842251631949548811233319259566765262994134684918423425525323256799135526679419361451981352998561127843143119412325193438148252449164925965228156715638628755443961386459571647742871318431974216315654216547572416185328183827899494336116468328632641196886825283117273492379267954268948178452542312633353394197472936942792988277451827722916733282685496989346937515375392742896798595839623412311369762274824532616844574799892921821213325393425568313663949467355193797939197129784381311346386626173849472253634759936353251963984142659925198728199387667861963752766485169716688538597119229533625994933273549356331764912593864849116328192222265672696774879426692173951926877251512257211819537932973166252592434742134969996342363647329994547411756652239742741982257213551987828499427677374435932241386442948436419692571789929239544577888523552372113297733136232713635246235387166375182263986475331497826721338374827552382381821247998561828768257368359184167875635866452569569265772358242361915612661343425873598697298666589573642771299686982895943413723222921946956248621114317796974579963422357421464596983753234819774138391263895411929384253497794517329356334251747269118435163295455947513693654118229445764743556869187157575481235414697546143916728312427777789371234127798487931135361378387225679127569842671963994631624694313929397815672379547551653833669855437911343244394618834371143489412198545355867727242453346813889271422434734924122897253474112341859962137885652141217466531678752417161215819129299849628578539954212465329348989319938916899655437712712225568562167759124357356763215313697878346521596934738419564572863682282144691259211773314195996741474927862248119637272629683187557466293331754682362167617184854824666926339231339419652969982498126923239571739642333635395355165258516559384326683391118159211971247137317919632719317228656913137178738856457312981619126647872993389249229527746892372587166227387673365182159241572619556524659157741975977166162149297729173126694252482484875524524719271323285615365921676391727998462368689199678443158175217166394713946541251238587826528478167971856739441658468411395659189867633259129346353936944461582694698166892585476724249881473641664583382124985641472291463721234299538571337161871242879761762122114267778559372253859168355773875252711921542195856185412921394538196394358653386743431224844171733314949614374678481117184773583124847143369527586922623436351414261116483779828926711361127167329712128528113255538247713461814163658318132953949361327739675661375338377521756954923664762453617215311168147749131511724331197369344436988775671889412854588629769717982659362329667474492992412373434215856976721824449584587548942595954777467419728466774735598118645511622796687415676196368554732476483797313162443645998555312819443597587349192593839567214329594213362391857597547153452951635129139426926642355133165453498366316312493385226426761633786989443569789653162693915139311397836618383941568951556479516129121972125846281247976598938269799764841845324264225682591585671572199811911785422936984451242352885262173332723271918571418871881218429222481449564692269851423422673855998658989715411485223611179781959473212621415747465416566325818387199355158875163132181141535935281148978424267923643337825553936716183735541914716111882192342466746897634623892792396513859196642194327983919211957189147514671631443399997511335654556841395373174419896682915977438713229277777787619133412975743761834337775227184548223451113778222632865789282977438612274845748464289576612572541112262724814419996992718776281782859682252671133448322313735411273597471533182593385651591496493991643349417321186739922619438995763483426321836843623559911412174299374625187334143219363713636997397532735731474414551529758266599363972575124759261557222519261988619994862685763197932424383121294719612125223232411431522416825386468232718284918711428656267654591279167641486519622734889583978556148176485179697126772253121417296445754932235318497133664877993551764547673912278239889132566684326728881913487989716162291489612335442849611539135978282867723342521297116156498969225568375853229125576948979465143642456377725938966327137349376459113724474226234699179323775342431539544887739312977911271289472741138141521976231431317129999533297459642334147328525687285189577515491113341242894463211632461747633843924568695235228611161487783729326655121176314311517257698528699256838123795233711545598646884246414115122796939774913731249866473942328314466157741181522423523412661633834196822365667358919677962385576151116274377923923345234225935633715874751262223253776939852161927635423494924485184381114429356621422549925493459269574233123479766334264117312836615275755418681543143526849511535894555978897848824364731224917288243527122131986196448449595144568691843653752139275293839251971456585156435247777512735493412597355552822256762765926641332725731644433336772386542295136267874123294721985535797899837316475253264955841544128638721482822399459236651124391774722881341549788449718297921277549264558926321732522231332315479765431183381444982791912651387256423257598791295846982519133291949353231319622536936758284399718732125641934785393978711264212196522281756797348191888297118959151662793337722812667362862644638239988325326992195145189659222594637622814849181462166317769515184459169163345426648533485296411343859572551277315337927636323682118652542982819268271347425325952383125598354761539918771723469531724322912466986412944464315793519293815643332568386255495157699495366917714368333343377741431893523985724873784697636844299831939786588198665273754362652126381778765498657439929625254995453419591151666927211139436841549976432635247269768163951489793335241175262423345534696769927391981961147911723524864329422984753586871562974727854164446641424369681649416951815753267641519487313911731566513217185638395463318526735279789398251776552614218896999256122169648891285642998955891277426363343554239469852182493228169474223677124996392122143535547834551235911822548738739474457163927617724793145811491621199256468972955386313335199943991563426925187784975227155351636974451937995597666953635587272735524627412487198547739548789483291244339942177757573661319921183398198837812239376121578911286277465125691744815989126957565112216998387722274483412386192212155762787444594633957111392361739413396324554333174913159663657686319691752411665795331278744689485271231137127954498386299721773875855125457162695536763339957227198271811462383219982528627224741348165313748259756984233562296746931682526541252137572411665442753172175458859715446349558843599366283122186669585794255461833625874741257113735515232524765461589354623634416891579272313981665469635662252535673525197624626739747812489176623991738297438792423944636887756727264765251244471217762187964774392638523233618212789599192555468943859616697327134255354469334425552242286533287196523584499922657587128561657711616517525248598936531617133924755479828984932142521145526994426712512269997737477715937697555254633186991338558525632337524314977511323472195481331564715556538855383711434259426376174178844148752646218394472566433664363317661285927327254469779465725925244263451328588954928666823845623574348517641644361443442795568922243246624812448782621945776514646543663949333499449545925988753113744126328437489289224161933537353849723666646378322384969239457352824963472545617436812872685257481863938584498743143196691813716711993569345161739531558737636181736122233232787651185453392957947551714852247826731225818262859452339398679148696152154848163647318513222278969395163131638165317121639837547888623317953145143717277773874136484767435965711511116121268779546521281135132363813533337383393167923352596524446475125947373892433741287921939992861812774524186171724916757935228846923433247277533421545554476377218471711377772919344128811491216745343918746488919825743488115928316428113953727945138279478473655467552813126613825318343213652328166158126631759464657621572573749166533124396923449982715579743521137173542483864983256578128574221267684646738134663952251199325891693667567532268376522735469453832316966117199276293282899634966344652236212882495359236539694687551854127573722133219945281638466695478711731252785328616554767887758538814798519622914747333432676191954549318748979994555667521337623131857313376959716885265914381697842628793961927754873962993287415281478967337457475574894498312376815151952972462371345334455892196699276784151117524771887532791158786167359324654844774113498386377547134123281732784612918358658713914927258762778183366344843867414359873595349274167725713412427337973829821242312654536375485371112537572732413229723578642241884954429755796257559847155237313143821955628599774682145246528751813327852657413934313236279927391428872558587332355273354349629217219391252347699333373633242682911177362842423663592642832869624223442789587245743249315364878646289217773844457814988194134626975229895411587469724346465563211425594792384742735561485443582894471153465275396631758299757619779999894576871173137615455848983811359262677371591873944239251556764669441914226361635513647336381863463933629765363881927445218264284281868233221934152426691422598818767325289881185262929124972113469129412762493836713579517855631995235411842722576876171217928378986975556181559668152777999194495157314578364293733172436898885271487194875362875661579367231922537675291589526255433633978246154518263359758474671324243651617993212792769449738386191198672633297434495414798912215845453575936584317586171138273835816395611548744341289177262436288478951543533917355463331817663912663746451824575571124366274413468744843644633148174796589173955194973789358978628563242374726499154356977726784289544323154371472456767285521396124415186547581196317728562421374619682824532725197234865354817925763727616927468247551939246843559339286221152252529795856496783494944372594867465881891597587628183936138293183872847284861237463135818951632954178129388652455745386589864698764517818619914965568123712931911519414157197711771989772438232562595734369757871674274724736393796747341892834211514954544752111964726462491343889681968196351522127476723978873868922915269353758572196525912164172918426623612865467342338914435159619242734831832633441891852621475697636784467423344528352331273852999945672781154256893576228213395942697426639778461445552914412811513361776255539385748237934555264546476558512125789934734483528998242281412222838388149937187774217675955125743123171129934316388499141295941867249789257533892657275624645346259649355693115616719735311212346119546382934494313692232476765137655293925585894981798621596914228381514234149225338454445344429358286198722451215443222699446442752473337799838221829863332698294823349664483462249386631961469673926964853141442929357292383195564613111474288942775839141173928446216217564878243393326128335419323129125612835185938544379495389425186612332155979346941367641446643412979656116259313294112558649213134823943746461979166659796397828111564493164455876169178737921618989863433516754467296883664282532648154514157981453272331628546741874389613535477283471464462295545741591246936854221515936964436354555649326281343985226617619373598572715136753363453756429253371723952719378376316319952253173928152328515339411123519323241244351612311136432384632542271498244871858985162673131583737384267223911914913663171448147821122349969643912574554641312618748455351711315746592189692445484556122549724417454971415966146292591196774473829155982832626792224813214649686972239281923361343922279581556293787129981175857166317131832946223164997816619126798323424548251322395414318117536347482137218721777147487592176136276273567422419768541842285578813338649149149931781768974283427829311542663827413227621696675565145726265588481456438489826416112981246815113153311239115481166991365945413967293299198947558242896862348181927636288594314479185924666285311949444574384833752152773464999642177536791447474648835919431321636688686994135886552357779257996273344287165725636373719927245454126249753174521169633169897754843652396698167184614499749362936516881161697781795638782247293457253921714415941765399551599127757334116999832512622373881155678153328771324419974257326158687717555212782554455779445734722449716948864548399162767935811219378375858747871551451972577964131172485821177933533825922291133763662859983744963895527477363696797797762927677748528398189488625461262636415459962416849795591541255271958118351921636123115925881893373236642351968631186884817454217659799354146555596117781235649291433555283627222941276375889165426795517797112336275852268782229191141957719656711963769654592729125639913112966827823821265587136775122318882596764459681747891545293646112721613453262873585966121318581676198525573585346427839425375668215551357773122386941239991515834956212567681963867885345485692455362556784333971664127272813764695633254241349178232233926343133372649517966135833238394773762844485223631179993296584613347114615569694279226995233922196566992658815981137621683167254562934487819835397651898142263442371615824177574767584323818169316293759682581843151322929993619692354595927969385744878972393443158569749675613326262175944824523461836835569115281115352744839711619157388736319156811219466981337752569784117853194547958577471929361163892229595682154695411583912669225277344322613568464824723233332791178564885486724156336722465943772498578177685455332175252255324413291622147517851952355227241212575392734376548195161628479912374963526297211955288997541458964439197114259622441254692585521657462858587163993353775613941622185519483682213323583783658848749423286263872616292457464786284891247486216947653488481912795829572315511276237995387542323193351412717251815411242358616788191376923878597416738473951117428656297867246998132257556373861512757456537295325373593228724238272538948861572251411629279396889863179931221189282693359644434822494782235987527465736719992415514488586856182112111721411311513273172192475839197362356766751167666925129731912924773564798632521972928256164369325761535326185532385384965672216728247518653847254385761165693724629614724248456434488186375633237616334448258246478448255574185544637171929762239235787995641537928795517812634379463736844371353316651156456753864428361649565111863714382771554399715282263719419681629247756864622183438249473695699116572522415781934613616958715295133217368731189942759579687444891112149851847334659349311658832246375317993493351694124463321148195523765661334371111827235349793137971357544125495139736272491335472288288314869643213267642913456436827467535328672379982937162997876945326339522629725784364166128657497194528926975799956723921854434439325536866663427589752451111748498255516954377537423161535995237663731282292317275544899689639665785415269782243384318743696347661318369121469434668262261863278115142376256938962539294811746938436556251481728788285143453259527736817942525386332418588741529282399696773231263259334454252433916199615613969349163486869194167344292572345954448129899195396842697518585653732194273513586327569952656913812194413125581152872616971797992223343675511966461339914964353275112924259299972962145281652365166259349654679475629246115824469795433479166585371895471897767625122159838531667511422311868348854857867452546674223242348462757914146867289192361729968142354775273451754165467594811213311679111468124873666471227751477423221797833716128279329522965296698952159419661478515615363125388414228833415244996821359937266362366733657871666282378296717884513445392973318814165168318461222538371146823125865938223472382377225599766974882589629792965532479925744219922741148318852627549275963458413826392485451282445819432563164331167551645211694352369127285864392575225983995697872728367581246674239979879414534459512893361751736991132382275349944597778295858614695289194555668182823286182859848721348733656611238457987475189717136332488962176438872139213226876129684482693763437255842722945856539247435217375443264445985776898611742585374319946287928698511827376862711448681253434338365243914237831816781935827417256474377338821225233353839496345646665445794186841919665447524127836867883716613323915557259935311162511451919324357926687443172471153444531295997323154129684357866369727117994115519859189156164915364898975246917478275316195386328164765253749773727393811714517189431795782726962497756556242237747495669392815316473463263482342359446286629125655755614957333653572192319987121259751446634363973454594134424276499972817387719246874316967652889977352953387667247981742291125136481638482443858258215973515823379369325352644123499799536685938619754139212216174246295582725998271537311937246993379297527841981264411729562727769695674483432852132796273326767813733278692412411976349813856379397615978897572896624234836116555117139996697781362916615861619176349115748714143731957673236469533788915934251989695843682118977588157133319593536789937213817762179336749333239446659179532179312854286254518139427859211347599375718585883593953784167619671837739182114543372893241521229243794824287995826936455217253662536555618624859142713983828213289954844813822198439662878985211335521132832843483525245654331361178586613783434949943522382593979674443285339874568813433437166821959619383614924114232261485252196396524768665265497319395379568663852255565719193441222244816313164211318234471332498523487285431855463141384899393125277577362133178622382313976216316266978544135969465272996983579826658818717351476989815146659137193933835442199246325351368443893619431676292165164492937948388483713997935374669471788918946469688674356461671854433697852166491252217444418636167147881489267594153818823623873852515429875719978213774235354765585572712585859761417277937493584643564968671796448363895554325583675726732981254142666649596412231872956776226486692236458854865864695147487174919319754868794757632923624537373987211294526823317839142167814749681896536777273132349282694719933948382464169229753723216428667427517978321652583792767499645445711253494639323573163538692353164974943192951615269148989411317358434911511524455213776929364248339428893211955869513826559741634133696156311236636793453974728717692732427878172799738431249214593763329664258225616566271822548144348936681123963266775923568491743558919659251658737883597322768352379521139684361451544214375812944581352145615743298333796471515634879159424332868143345193717979841962514521599226138724242657495962281486965149628947669772582746267269634213387825649212419335161252125841164669885211445293229322327814124714452286193399219251165689696751256131542129367125989941688149139258124873619449233742745152376293636697229241588713445524534915332327482168789958821638258797838283975859213698734666959893713934746211389495272935223235754362415234131935353958249821136227581412523153915585121523628543698653772755899353959474798614597941818569581492583597232251632465958825289538296281727476957653618576631881157396429132912517914814715452943423863979176612732496894346219744764281372518428154119379644257623864129443658152735524391567229712983838565133949588697155442418598593427118711457284655843547575616711753923244789292831518432741647683878155568752316363824359967142784627336191255829249459326415617175695721637591795729551454435574245512396269921858349999683219357177633962591676847754778336455158645723344826175458344974573653622274358521933844891469962988154525296563563356692563647995979256263915845531783375151193637683646331997132342824935964213768496323136422334477258174237272524991398467225174158539648868838929577982422173274219233327374977315611894455636648161822877998147539124826341169516387563413835475452861256971218317357529634316463271196844432391256958535627393671124821966838214429477393427286543538616484493328924517959462396687859353518986865946948133291566797146392712354447141513864455613319229545223219299165242219127412883724157839415424386582898572672829238992584155717624834534292925914892775156175911173511123721354856154267443968691562587194519929587964122626318629594647122741267252457159699977535122346331366293214536992439543768586152932711437792667889726576824428643385314824977862211455113599941762865121661259653422645771875733921218289966611617119539575265516225341297825824226353961311726122833354962398543767753429167951113678993934826596439958944146835485213418577328672425454757486424229819753834535174546378895244169268663846156439996451116965514475324919945913815695612133776136416823653131345788931127534718317118548169529921134222212465417255828933925984314426153553696771692134123515761144699847219978946749179811694539525275729683349714674878949524122178627633144379456839568496655463756333328226465619351712198265918738422378335366475819723187332659339281562611122992113842146346943623487633944377988446473915615676918939844682881662425152694252189719133645488991665287419149264129516122875734593885421217865799657681821267491285374121679515118778236574928972442859134839993485726733212422881973497198292183225879719781669141422797747695513429252421568313224265771843523286141133519836623763273734138244952521221919145869175175147452366464514379431614671836443182416313642874241355269548217196153267374171868714742932945817651531951781865126523414949938573879352488286522437427313995381691443386425578167142254163349813374739487635167122166925786444329922712441573396823475775461832842216831335734472287714354152574822692763213793723547925565496253628365468662333476184852247886325947427795832667917411992429431354727692313915783892939511277219722487111726926322326438752721344461645449158834724953777199363355517595191577852656649525766193989593511732564423212839684268899163754427285646433421399392894674493381924166458535142414951545745196336598236671811922836862148443685449663688919616773237588415193375762596831869839334141865358912638733581111999935372171239563583633439858312462788463736675958113718293666675456426312479688972636773153426811285634393292484477668441612232833867733166673935329787212514421513126222742967745445797231847255796772792832445723872342942877623461896486719983111716788962745216812385262471215711624132418478945156623821665613455748439786296982579411328861292927958189275638817485947438787522628557132652534692458568223113136776132923618992433363537651561532425424142371731335423315928157448913477371775455722625511521622649333587113234944661974946697336263124216915116942922465283868437938262897822118119765368129287868954968613653394518556642529328861455699439484519632856868387245998223695771668781632479592964916269452438661714296986651692621651629864943141813763469951645841749156334447814264367427372824146987214144899268962885992833431614783275314836942179524484995465951949395618447442716768617348191774637118234226734393219115129323374291446254355136962315738755287866673147643867261379414681461158758271826759268494684151411583892774644761739188619251891274133154874446144777359662126965498453752194166246671363171165569646196952413111346253412743177445823356797268863912773131497819443231481448861715372117821643381169323723355331131989753339763616292915131944327577383313559464462435471215547527697229439447751328984889473924552977971592643766163294792597959897552623944642159132863673993412418746855414235998938763425887556682227452988344556753747569799357331238918731611947623376887761525716132465439142535732487795718891326695591435524266449797462935771667133598952764381591965217173143645654822365614854892635821731429746992251531429858868439111685929121639382711722473773852859673511771999154145745452929374364292255175731695815312761469634159933531432469453521164234756342456557254338862298691119267113235581814167898979963225657483586981657568616343122882958115799972991633471988919369542159994462363681121536259142431875558122466446879652987617318684852144254161484787459378145742421471824466916456559127542314111764461531563168496753133521872532173232386544181348287333639631528119742354633883628695188987992276966553879212413542565352598215149549725155235341825911118549152424746945123256471955777546425112886417518693542553326794195273756649238454285939534444615685977383385936976175395235772982357164922294699341591463713886875814937343976747429425412365462185798134114445623175956424745775367378626213325221428586214555128243329441213274917311476759568871722142694472667274873567628496592421951245723453163175533187774612115912989646293247721491621945111316595527378869265825942323185374232377725523442347125627634916865188136565731348346795546964969876239643313379644359813286459898261263814432697844258542454836471921143759262648316152831635893937263186852396738151395879945484524663785118578179254888884771962465192838667452887196261921726732618366911767179119659643146143533424592233645285892653852811497247289791168851411971869457136895217899894371475242726795451821691765376172298478136486798926965632859899283812644683999417141421664323868932217925998567473839875418381219739166549745617337543374516953194562743619333551929195649639294892924929395435196784271185867576981142934683622253341868886637194739574575566993789327357898232986227793722167447422137331457183794122665976285183655458862554224282271229747369379673713231974122164445195529938427157791724888491528461443323962424547657324418641763972671742722233553289849878321719225318759493577894583833469471895456127936499952328483974217643374253362194229669299889168928462138297967494513918912356894543738225451796137869269271442198495367848687732388573193171829614671237291123317846417241967915519716375381928865715228641892419599549254317483149943683413526911631219136842179228825473349889135798627653922572589741515329956394453216873215119423464351259331768643571494969848669321739119232598318287959684434661846839342476241553434361365116753529372728152951847374983781812952887263497214228173455325329481285815943448526346138727865346334348185862889766214639646513942515173918513217274436147942398442685385585537287777454686714333952419244219517125495618822499876472552275734876455858618385124637647935841353474226411224439786612276919128631952349538388426839348422556883431224548494836964149735927334773293681596591565928895835566493533354241524741779634122329778762985879843242417455251254569584198942327695151424619627121827222538665731549941747946918126865762658391323359591581963463298937719787937582715335963595428657644457381385554545159117925859524667816946917394432778875646633482687692469366736287941691875679292557228671292181237743158839781659326827299222372367615232627337127388899754614325934717894846146657155441882495231416949574393338216623885795688553758792456311327468391867751456256918584513766547959637163851946988573843557285784567196131442895614188219761894167415625295935148211794926246569234322227183436593185787136591871935294515659531559263368865674622618238631582644958741166149229121189375199623477859281936622998371839583588557163229269158844161325592658166667296678919745966585792365438874481345875539952436944612786333163517145479493811441652257261197222731679986162536299996512475994685721693924389298352588113555117415133136636222551168132561399988713223983676951745774139479229641317235228644829235736998248994195274121949933283463412331162429369212945845421356421444224376285415954418635455436119181632887968953433114594634928595475421714352454777383173829737379658782984462364441622165881486134292561414628916416461922341284375264196316883889296634468972195589995329391713779512393391919858334276283693331363598641964496596624412812917371462884385583537987359975125384975626692113792746336132675235927453251112471245491422791682276345597633295481582596148767695929825256931395667112265732344515842228648786219419884391424823379654836397953825283799389442422629757264748537731796363415957259158714813592646118256549315451992193179577131583613572175618695223881295377371314847538373748655312914717364326554573674258355834829726876183178816143796637163695258939119234915219642546239189259894562946513725238812421356579449565979914694832646642533836867794487537671815469657518916962155535264682921418157189291886934972387578531847112182294134369474983468145722741838324213654617419512954757294471522625737579183691364223377642113564287351722292251645347488229585119174387117573479631145496511523666877794268673113979651856835193734537816674546715178988519274343884341453199191631613512216579812363498817399269214121837152615844166289794543719455781222139435686413983439291924113145843925123582145291661318962999957745445651339616253747887517725448695445553429914122397617795543345243434246426336324263237646133385792666698358196153876856511888266672438845435942742689512245234612357416969246374997811936976836342498674563794214651746724331551759218713343535631883232798657375593678668386583641256231859338471642351995985984156989494528146866462296241658753479311851592656913352415322915718383381645551596563733218439226721731256248746691671851921191138128923856332429832911662191779737539268975677573134176121337672371381145347385199898114579759138145837984228645323952345963593386792526122395997925645455621643613489285365834735156324143783165916599788364518715772659627921977147938299896567498978397332748821321153162869455512164133322495451128784125881595411461539347819553821524363478742588252657191613327868591966175325967458765596567883385217366639118558547388626693992179621244733166434974365889946537246145795122527996761712632464348784552717445745362393541278854111895745564931728764799138191559435229213264457952147432187992195339358686137931361385426638538526494124354173271377425665311363244775946959733229375348922934157958193774374216423134135727997566436688711215443212261344326277594969858713695174452424659621614359829916618721334482323735115221213694544513591212272745179445547734213218794374493143831537937164923318453429362563598232575666622241949411711199923219642952276129129939155995691999655749435324625971973396564554891397861318688657723226388166366781922957429436241585127471186922336877763787476669892295947174414887882933997274262687474389317267413421436777732416438513335327358565996298167763852618674358626892667722322421284592514312458428941976275113114993581398663317121254359764154365399334555292865271848131643657267875588915783499427114132656517249673924615156362481558251299639353459797683266976925388655444528681742594488214636777899564211484825242832312941662315362352695743113958661936574322747526418457384547116556354911515362364267724983926455721598227198477386866357439781143327122196383228311183932489829527164615385569598649724174173741616712119918366156235964545796737185398215348187713594113829329543832234541792923849574759854341843647857357362845549731238426229611879565246852693388712626659464361828591928794947869976386884322322348483693757898281726542726719737739526265785676573199793629749654283531244825949579975653813499423385951498184338661871236611149374549223191266925448862684738521511276382345511593636735929297644316199545852431964863322992172155137988157928759439456542836331367424139132646612943218182482879439941112864258775629297911525854591192152443175971815949125947621621112333931163919515312784423335187969439676412679246148293727848224782281185535329432737835365693227686954721231986821285613581566793194172248552479959631365484547533995844159595643343495352126179723993545468774513617483766111967558371513713787484523794329864535638263458665438228524381617295921935166639774363869824889431383993921694999594853923287315645972146929915318277848472861927432599654198429395824139449143513657832665227149967492284591191862633238424372445917135564323135541829598278247985531838429116823357697746549312123513743211571296576264896217738871245127447735296298223727624199818435181331213723694888665769357962747458424139762972347974947178642639642617488824729475793993187491517522126293322621268991956549574217628619596433473288194453229793279895111625488933639716952431111168956897989923811561995528528625688832223699125473859858578646463844822378476544878123448121977882119455895595364356329662868431783392662974417414933749574618419683479135466524578554384718281212148543544418739518939113519122471969654334581134612441944444636972753755219557158865714534455447338718646834536518997117689612982315342186859515642164422227663511975544221268693952561454245769174462168123189641343842526916167958475125641646336892392542859248123311671444575494928446327185237546992344278947589589723836227927665113675437436969672571755413744335518634165786998381359348795817835523747392219162415672748978233954232866645794375478178117331983435944872945737112793559382286372916585578621378893679569149622734516474253928129826333935445943991217424222772274926912287352736812551792355683546629869249166224623879312896532259936246425188166561769726531524152993199527424329938832781469992553623275879122514941418118224258388448134588513265226252559399161795559221226635356484556354749615993461555448653977148912871841723426192158311395719641463651974745715385143314525321635285761659458948612679352857743763744556165496162313575573786119399326984182649354143952419436717583138173193299891626738948622415881832174782694985362129176156349317694883894618314786225255863177566251462771441159459783391315849662569985571437657928919849582282835374353447192819246198424984932318443893463264425318483994212587551157963343673248999958187999443619849829315441172298128796538782155153611824268275646953393518626276126786165644819678589298472842522663174617134773191971559854475562176422578416176484951884444652579688371816299733369991875111546162879941961147948616642925599535181226386772154434983923416595758996266285163743448364481249132572384814981645511997648539496237161481834782517221927442553298472598911767815591372345964614574757739127666175483476566411819541875552758891276377378858485618588126754223644387562639648147654261527275631951621865145293571118674395472912531787436152744783863626781336158288921342531598994432951985583685262296311935984796539625872913599728191742427481619164987746912817256532978217668119793651681128699335452932785649886235263672799162235957613973674288443445635541353462217278826525412864432158251629168533539366431153649912955748244712158612194765256652977935135692724374314919842874338212538211787697144429712153695269949696134244156454853791738837356265411686345799686936473255948244764933818214334362474131524258841528379149378839837524852499537845242233387786735113867558912169291315662959435728825621483528222362774193125558191739296862288474465431828912774448451358919966195839121454541728244384688412958966766241437187343151215217575869337221283672423496952967263125725682927912386623211721445982472746921753511333992499621715255452966885582762768161758446454334581225347614114743662856947845848142564285168959528923951247655961843757555976382853148934586385985636371954139195639229486165393673259764772595193486154334512592879424396214512717485738678754197849246869196672658572166816557518222884727537249243122355962369317941419223245126977148793497672439519489233563776964253819375393653532766657176925654618963115579983271443392254788186932749871522772713875156155135556123833962712518576794962636522667492539686318919231529522992113432993911213139151656266831437543448582793665742672191572138687315366529965137366598292891331577586998579318518561457215356552758285977827222599455343188569261748878593341671138874158182323566638439724892598999238711154539986423649666531613194111828847311233315964573645242918361772576511939865624489734221463856618358371192572618689532438813967873938354834183699933245569247139132511263174382421566747473575555877493778353962734268951422738415562678934128975922919221331314727261412679635466742197241744434247472617432115492652214479381583215182138511457562799275326191524246227124395732241714561863983511836471226888965451246217288463154853641431384717611464847491221854715986668355929599948931887835439466115988381993166343946597525436991645127885336851454535429163139728172667616167749896235424348771159365768423187244346518398692248575429273864593421612268659111365648573418541468359984913879864928267231134817119931723935149977353119679955323137752417451639379784618456132135638698165134852297579266761322648126645472788285226599367397224373376126642825135776588567482283247873155971919935269432696195561375421989587333461521512444756589653579198153174873163823735574167323636791717745711562931543375466643744532984963624828972458525527516343698427181241223868738963354256973825699529236389186535425738932453713474941915531117716194434936695636545322288115825375212391774918299514534216736235233136983998965327868752332114692976154339375677564441695899222199534517767441252923975143438871154445986273633145998781299718817114115353692778439148118367374726764941813722276112591752975215984387984716618138644145245269789322695124236742427113414159772523489712123335595957312973797172351538493749736571319662196645281919535241846557148922737436691626153493933821915828765955731572941852179372311826833146187886147622389845917433119298319284461677336293363534816881556981475881638195124255834385149935275537489232835613411228268355262539616245398268457781823461587565339586442396558436359292979244934822583367572213182583643443696983678832589588818296412456912133546479569947232523294711375673915658698454275882698931886726241548452596751225366952714363791862241899811539957855594646435566556157296575531799843113541287175291355738219383953976351426736258279674434619456248586255185545455699475621883437746142891922384338677927922192928467143435554144271159484942193111213422674459135498349611513615597922858286645198778487426496441443452236634286132389623832592417749444428335836653437462514874273621386931359153571838628714382939389264327831649133624112478843331794115925356112814629155117754536221991725841296518959878736945763574147659561467763593549885947921249514312784554471438871313282185759361464626823779569692473818498567564772876633624818255881863179418974575234924214639631958954117358397478774232878127489515423452587427152455934153744196749122448931427839688519482986768168886955441655278512968692638945365234819856269956419382332331297375814643882841827929877273131424669469165619164515742915171714734962725511654258283845547568746159971612137265138737319771463811436387355815543399415767671252585594314835396213553131863311681471466867495763497273892812128269141448555721517466119277844312938176724123392915646574649374251374484539362446497356562175542819888821354587158925923746864572124176235747271482769266819542857879582614536853496788785814532682178569976818298332718983364791615285427253491331622169489184254172482375599861658724459447114771245476988478188991961394441943931451594218254899351126717954948163628722917416974926341569979241547689644823628147542868624735223229132659111217716554132721123241899937161499422439979315611166417912199664381454257291966644778219194593393634793657825574361181671692355797283565722724163232329429876639937943527654449368519563681463438929298921326218997947777545877961559893643132741538418892322422365851661397224526893924426238732277614212628247177918367484566983977643927742153576382413893378611861535143392179946439485648488682752183172555441999132234922979485286249264412894787497495177347961996454875959527118391156176539853295886121344947125331597437522216821466398261192996125996447669452913345815752117162996942681661883224283437372845744343133439132657331353229558276529948575191329957331954279775523455312637265419984275533821282371345957994883563941147713469943246247558238177373972215963459962575878533388757269356356864589291267219699684514133255195191826315418271223981182614315525643158314297432449971951919117613681217421941842686584915111834749833265598951467461369841337993732255776378361879883258662188258988964321354948499693531561599758634714278414986879959868577867396267213113996155712231148761471114715948896451277473355988941166677757228919344716339127528197144754896725725297947492232188151418976164886297942886592982641112892716692244298347751786999448953329319743734377834734358192238512351166461944146598663151889964687239232541929572486716627197578498783539241235319935971663576613147431248726461211117192663942283668364464892791557268617598218621226823185861752539292575741858654244353484946827234812471544924158443927274166512492756872333913712256926563313599139923595464995667692852365548862649242834469471145181412771846288677768181451585648293878334265635557574611716428585581323691499666963617172669251723442447911661321685526357682229422873983838445474791871654391239189815292844597874411216245771174297327364362632464581995236636581393386818433375181591555593137389773598131487147921934832968283987885646922751548362397379881949113636675112818431372191528155591966224169121394271794837636715999538769145992271722269254585921957662247623182259862916363432755287628779231941419661481152254572419763826599951555338377318145757117513359375962479896715768293465624819435274839431696238461243913432842562443261332918956325187927341481239429722145112115185412315536724631286692412323666922153112116245469867361426265695155588167324739618547132377278829954434461558833822714289263951979135233371642822553444285498376185718617651932742884535879823581234811595216447322236266573177794958163737529645811186253533965371553431426633218496814351657128592921549537412277346347763975352626757626521159891628186273851549158446192818661245444943861174666469611912781788721212587552818871513361213542735132643151819774552223263226435779933121263285423941289769986983618765331493539599937919768363339828428315154191257331871984713579114153812314328755556951637247495258823295717663316144198395647283669944153144227988523672173243416155277459831262651464572741641744929935535536143796245213741213828311434264223597659445565738787567752213356389327931271487622113944196231339318493569345739799446143673552567913897913974721357211343811594251143415515529668286434494425212435732498586166933652288688152833137961389756945559954115575686869643218385389966685724121484473443173596225273699418831823714995317852955561374544371599621838596742267497135651967435428292123669754373986818811939433596169186254823797441196172653635449713157694626479147587394511383853214214887563673319139316333198468671594765123953261862229323269496342536374968252849524739652592813612126327932279457822411287375238212635939375961386429736537619684758918121911494817333185638365971152597371469818112545334899428126592183158373825632261292361421339629381842316239264627414126135878972757967681582358493933732732496779291614238789536748389366543928122452381658291722113983889572146815829462876275464821867525453585649512428653875783337325565224612398531533369126212652929295461966922823983892153743441675314819216354734338986681896519329295293297749585748421273927332359213821654529378836286731732499293848915571392715166191596314383111123796229475286339544867581814281396162473874979985381122619474836829121867641862858268431811912687428223331531251264317723258434594199861713431599349218242313832463259612913261654225173265215188133146215474351474859113457288868976841775733266349417739267824829459192776617975951812326269118561844224962116183368189863146518121718732511279219395412197716162912838522383816272225351948337719969226913984145878279862241422489636474684614135478229241165492825248299423337261646287222874545646834284731625433832649689111794716679267432299312522391325216116141158346963118563397211419723685155432238135695934645361354287823585153982665626836894891394365628931781497738847118516923914936693487324633476677351672432243971255636619474668379711838939152261747881422321917497943244853561135431872938713736298854454123598756789298242447481987231327972787339465923546737139167364483447979646247793414626918256526649878318429647411121648492226992745166432981972684636385233517446127949836981476211417924746974712416319536199183582111116251522531252849399118141613876921516824871187265524763919317427435528878142978354719883569935854763645234499567142939921342362866892436187187356419448633933645569715976554813779555831745594976775997189249736824774339549643334664193429612185877621494484781142219525151315411675865933721962245784482472993399186126333413881778445514938961189181611931819949954174595489976417769341399553676228952526114121233129346134118552467782699812143144321655696917454587446573334497787317356911153684648942928891922773992695759531175931936989421485985177192141947267624159822655926773293917172543861464791394448457656857835348917138642444457441564298694979963989431697831564768539711759454985246882139463591336461465686965456722517216147639851516818627495422512217128272889442223962841177484327648387225115683763593424896176129463519637236984168753286993111352611479347349916959411899346191196595554879381814954777817271712622884563966286362894596369213459647879753151836112725284133126999669246276744334422219354858351561768138293743341187683166282828944874643849852529599327439173645674413224132164246441381995639865447629811953868415332187888496249282547941842391376814885637195542632815689627141547789673534367372113426734977657619793949546283186447779871863523897844658256941743536432867251465749149345389815858965384964423465916882219774348576196441386374189313551632927713527234945629662721828181272744979124999478842618484795489664242231391634257766137966495944562621275131676457991613973362673352175951846151655889745635891867986628125383762593948749797261458791873168991331314539715445473429274338626514769614119686225933671887829155497731266858239687844799423363363521988833961994996478997369618316418786954486135473935847368216515533379614871213693622515281444674586978292243836116488351629197532361171199773549181571121923683622854862589447417424652646355634992924773449373921845652591973261282979555263391783626926823845198489453385457181957971122667941481478821578337326658437956191315284812976136252234775415193661163233411485427694811841312196495689431649528799979358665396817424517919178214675128712567315811955195226269994228127311917218485754621741511285896284412454219418856727938256551646877851499318719872612319652965656984259448444597813167591275756272311511451575795172916451231874448642728991443975149359985238877962661157265135546393266429946939265214556273471696379111359478772119653284416828569526384323599193252624621226383573383421133393418943395156931611556279743691557761217325113974741959569253598783519542871233382124314925649119819548814649984199241197522628266481412953117954162223564136293997739551229869688181618736535227972676966439531241954171111627335744225391796561154129336336421987261863211649467216631966994688362198247657292454853751651144431511763523956718634711734148852358692398215236124179213313275275926438614254438546267912139395847217818357998654328571371735483366416687351415674485476484183959947644765534698532253885363733821334755162989155443239579282631916212121291656395817833911943711818275271189979844684327249147967412314813754769834951168617385944546582286727332974298612384966446794323477853579749542892844293932956124687827933935319319131831437258835719536453556921775582595135296955278724243872552224841971727831523145171649349526512668953438871833265832235118848185655683792488688368528149838364438156956696217669568981976473696142231328586432377159982253491613367157179823571323353342913891772329195135192441392717773342895393871535278662962137735564461914554669863544268116299973253392993927121975348124143539332811581629163287594211666591742637155634992386931731552358587263819439917383624343998154875294588542151715373125999193525639127637522796352743614293544625836672895415597639882863949174221656943874228729889663174861576433671948342953944731331567118357453519716342225366125472886263235217839614191187582838891236675699483636955113489241349153474286636128628564917678845265124493546775152362256513493268984683668212613799941352738533634413793985279244118891845817175137217939167642618212212147275149231391462899796926231268813422644645816864347428459355534143558778277994788664934875692232233731322988854153276671499633947173661824965234823176828323697848687565144344166593592113818566323175118428359222614916164287452828198325432916139119184692435936615921697323655533817336279587968844352254192642937623222187697279734859214832453977331352199694762238946865115161958975874843129514142947291556283825482315148561912751171992582696799216732539762451535565322361152228291253849946616371544749994949138281616286964539949177741166327569325286117774399391369222238188355984855711992471765541321428692655698243353679421147685732426591615691394967562313179344897711174913368517397627257323945554878641799916953387785385199917223438325229513267556648879268688182921972476667571669197745767783793863286263688832794114923318127914983141247648661696115168342392293841772512455242181796573521391574866525755186367263832578836227147499725969116537217119416634829443832313332147225214188419377124583754293851418419173627788897679155119966517574431773589573252663479614138874344592575522611931664954182212334417877977388848349937751142811789933884181677346625543626519454677934263664453591632698579845753933992123827467144515985578148148114694528721484121856766622188639423443485559631426642493764977258343459528744258549498721796154292924476584889328449339457434239993413962147871428368261138529812453553691638158164338191663287519183276615865788154653379794143115566333287191423142961686794762563772115573313842438772884562319549642527111848852947644611333921333664618798345424139179248481478931655141362313844163885578823874139349119296892133436831647931461388778425443799181751312862897397335112498814195823654467211559599932122413957899311614113692742538819235853967225613844263388683398164142498431479917319314963426628494839198758681395658234116919725737264242781717559274818382749761671125365268852836447487484775174646239549543212492713992193953878948847621143253374539564129488368649433426351694543281125323611179199335717879756514251521866762521757625317353421345135985473543193137285296537221899225985572329345814658576948712465842338349419791699431493334842725448649642552454543995944348251294241521949723982961155571276587546892598895269355852935571612481921989492112744475655781618152468457257145389725742736467413945485842798991172234259469577748719184394971373314237751198823893656544635136725282761591578521323185712464475934757391528592766347651281325458644643945839269624599441755346773169281222661586235634464683992184836841491399759818167332922816343799722436518394236258638496147795566619982114865328189796598691732444127373919272198756583114523186274214733398292327577191351332357632171415574481744131211244435673481918455432247395532686788364332668182452742161634997212163299248867459884362458252477743425284894439232861343979416986131388986392763369363548235622423593526232128342299684949683819861325116882548339967432356862389353619935597475646652427669585251464816745324813255833221899858949329735584369788692722912468474418874835255274526731122797795916275974527224221497855884973797219414398112615915114471253573142342311321143258852323515656234788858415217411762378573438311824978512115927631233489342875892695148196371768436619517395323251984842376769648245145636563633434847386222993663922669475737354946982871296449581375928196214343561324498941454456316478188685854712447211952135766996372165869559529823175373258515696425238447531427674289365546755414979296799815754643672499384224572131353943416995929492665976642782312328577671735435971783983394435233792698735611811795743187224538879329389215269122477251388888134667772775688561245329453372211147388174448492492182664884886121941286138624372964296463813873574935258447128937476923537251234466361918937125884726362415735519636396638626548732844445234124537881879558466535258777499656968477283884793192669598354589587867786573159693445192574911932665542297173438658736332132461481672143913656596249157689387937398966771172821995854646239947611473128171475716938725266891178249711456259622418176879624786538535258165222412197915193372912314597675155554619377614191365682729553664544453926672389268139377952772984395698479254544746529566746792425264631584454613193799172535456973195649495622364422987684512839519587588892572447629151311361412974442959395576218379419153443725473975971897811279566914515594399791354995323261245553481415324673379717242862811463414424931473535282954775448913345193112225418344475853124789399228969912167679939169493614861513193598549185162473823425855272652546168228566712235418174262413665196122313146613831585115441726416755387772123947274342911743111235713513716835474337267836121566671221691473312763932913175521883943733717125985113331699368161521369996765124596223955498719251383425758166853883985226742497479613378843793253514871742549172861239736914983931178331188864865581127839963265213968755114145588884162416111261461178139464927133457846214294917959359931764253723712547725963941194899471313235919426382135799187125613885566125574199882569714196772524832828269789168746774283728144451713962671278818847669548439912189123678997284777298523289348559769382293876635316149127234629169861949166169147162255752776626711661353365551195869536625564391675331879283336938439895545433395977839753891961971935826912559453131388892381674325462912962537529679343784289732714782464397432935634927547535913611647572919972733637572363624852231543311659121191945969862519843993971738933925356643668832453866615972736155237436155666318116499466984334469759391281357823573478224851391656641243555682679329648566195375493348331948618877493246587653763927972877938321366629658977144642316722459141219313816743892224363113664233524251877353253376214881629617742946238194532844881639696987938254831136112752626634597459221456522172345568112172265134327141314939397826767757815474569766492952821943354755293255614913649697491374591929173654636744696795237513456643334214961976434949591844553458681745534583742812914262639757198263724468429658964161714931168948875899181894995452869356522439745914121186317477492771219153132287388762752433185314267752682823621529615613377431234922589346692262988354122819319248488422116814932353932888942494893319497536227182271759239618414821157525119882959677266574561939752291521878329664252352936763817582749721241341525892264578228243677687923216888554616125476729431894573935131878477736465367543591315814291159382172618382424191442923845951639577943971468194315532549316937317676292977168415279111725931662921539182327656484482434114672836539581969686557159685823113231277931667256432742379144139359771248545613681917568758348453793119229313726653159378541226291811378696349299634791935717611348849343389537342859449869184967415945572383977554597291851879121525536488429328883622768143885991836177296219134687545444425116792478645293435176751632658717389838257941138811479442756462111132448813568383289791712364226412382961228818953858799399298923462124421475791391982781324186843575436832414811456137743226892562283324132767358259344119729631347392152181519286974124633573959658472795184832568574654664399935375746742256236412997379134341859199435829397559696917558126378685693644756729767967627589663493852994491129199432392237513732375167721224121815693137861153672532261628243731417211264639788747964765213652447554442693596613146148425665513563593513816117913991118472815125448765513822962629852212292622517911814294922785188851717717919577692121216165819623973192731155511512257243166674398794281943276513128182146511759121859493216512968214261723346483143292475457358565667275649169623585251553849996278641721543421716815333191177553323553144591282256868361293292231263683319612413685235545466123278953237115627734876565228125673147842885443984796985927857419542894598729955789341641234291576939124112586794191436277373341372749986313148556521944162559625837198352986992322299313865643374628431213769343365275467441733538321131861811962676538825876682436116761165275892147454383546968295918797345221475661319974142442148951125771848342683917521318635526196779344537542984315129477413331299578847366672251627855784154253274561278288614171223939258143323513599168221553353333112351612148254897699659426489345538828769653671196723382213128393574219545941762482995491216433828337474627794831225953869899148233151768599887748836424595886639355858536898485953229861247449561683828274786254615754657526618998376457943774553697925393918342278477122958122458651147144461461499778552367915226462663317242216131797553459358963544271511592135456335152742625664223824393245824621984455718575986461217246993853137313346452468717398888432694776738278184896579534626779354379618771273987728541639411419374337848512579392159191429697395112514568682625649564421695282119952599812395872111385293994133393318366799246149563473233464374326958813123279343122562554144492923639823992153688644432361973693337425159774849192551445369796451823221272225952634369185953692284879718222882256334914541523128125288175631477352599575137524476727642689359292276554154973484261343511736748832437228992969662799459249969839278321312717772122124252229745719427642594346751377234867512881269535295385635632532754452548539584745914163941719968131313847922716767456325619879349229592692177866877491163975759452564772495214864659344638983144872551162921171935932429665452197573111811516975722193538537971983967618428791461764264113449456273142462783121156659819762465142438312429333574467111938276464984894985338342311735211224851618352417866589333163242641957218934182139732219893885322344227414583853721414983818874342813992442971943662219361711244398178767865692256472185918814787426741462414824865438256477714432785715998332993756824671861983672134269638728599295149788719357554442765781385789213988349413935738591949292889238251633655715381763271641831669883768387735479853814516682891187134324682381774121753648123691922156691492374281656479516919546318643549542948219123816756771599436333237732155151878531513228213166999746341856615173794624792921832355662233877376746148543623454436173574898732637359889211169711424796917177312384255856945793388389422815263581819481656445271773833799646131361744266221923676747286944677318952755726327597659164854387778111854942122744484525861614115943869429742772725142187694946324796565464924859192246416491434674899895727296479557717221593215113526796656535493195341293859616826328465973892648265223661799282789289171197666361375917197995152293515266111426395982712491332778384434899356783634136429575374631937929918992719462841986961413839635858751135875429981299149312349877668262956193321536536716889636511723583995391567255648749693994368375474117162524471491713446926547835828521278136912917749869238174837153251857169474423548726257973942599632122256489381153262212384352327593415161752235443297743274681673338675376481389458974249749169476492844215915157422349489265623958245286442367753789349236563123472659723692792355291964825318834229813548183179969624599891799642793535652535478514815458115538736137652619262147558277543465872351253318427873634542455675111853129624625748292193196572125764427566618685773382544634316214788649445466616229726241461713853837995662787714581523972914681727149954937471637118583757688752199835843219326399991529448898116711171971956885397485235498475911591383678914993489123651277717711568365343554412683987377532321323356343732945983412842271141437968921796757757945979921189739565368593314382722715766319861147525192726472345527148235127428627129492341436998727455192353125476186668242585696553386622619187885342864423995824777692216996314584315423418388738739278555296747867532542739275162652252823516225321591794989345175371985177375166867475587465462223162118682667443264491352254512297159637511249534217817126868773461222195116283188433978542996143335141512251237162592635483319119935213917656445756332696545914615114622729165277385996778424334326678581672636752897638425257954319796121861242846617767512395738277777966983936582481814565541237495786215738946337138243575434941827917189816391148385671312623725412551836612775746537272243933278123313444911646187349685291266479841275685461528227137345989896111998266228568175413523943634685627797174553259457135979288781736653374285136339252281117713731775455856148943996922585671882693928427776649843265764922446342781681325529821556321346872989115815987131715829632454622196922628552657577217162612623298115693758589439595129311325264563347118859959159677475249997255871293325184828683283795723785848538296427554556762413838919837542576432338394785238984649743748462638596898137412891265881433781296393224151961571352718137145472573895611825747316382939137322657446259624842995842872189993663271446521152996981418968364599941366734928967563841657273147821434215237145694617824616163754533428671598571236865916222776374837246389489184344688382525918175141524831724849825386867654225174835589662258121942198651898459324245552567367817323819182757789243963171313655191259672858954414925391128322163463493721654496791944881461354271381549987393512316822712548753442228992945156268997962652126235815933419463628257489991433738267164951786171585183933195814664167939175716975337227756853479463193555584514945244599457118898213421191248552269228247577599314625779337562799446525745121433642494416867872237141827563994617632774648431388654732327926996944452447426834931821637782249963872179189176831976554926532693865666586342127415753136673912751364145336286469254217344563262511723227656924254459187794429135229985996754463757463345781992117332713273386857624636396768599843977389942219588963113148529791182199698531553135368683728785992448412596457843127562121475726622756664191187858879297962521994216619789453731949697782318838764573596115534119316423641393682945482112112248917699263325343525161561318786856123178511392427952348396986625552927434152479489554671812682935234187926791711731352587623611887985833614269789933692897174231394122599336695693676138136228757188243357719913713799853557614781599644826389655521593114168863687551249353223968218175135179385647634648341512244492561637421774282772292857218543372651749693351798525255911264539962325825422384871855462229443513297614151772794142362932533718147123486283873483345739377669711655961667528813297741948278629228643551275166562128145923241169317847378462975275832452985991278332871233135426835213368951133199927744923619495448422766548954562553241657163723227932523954839325263187671732219645135354141765949612854564724193263638743161229247518519227998563516499736183152351883667222591176934679135268569595622619924988357631167145556331441598375943926977518992227888717813339995444141755969381783595339954211555737591716844555245124129358995786319296219452667814969857214241991193192387934972418495736885551955256191632278532825244677767173675633638476416236911466498679642942212795419421826326586357539785275933183727456532692412893292526319125862715755158216921138129253574299487921973476786398979733744659817892468151693325768339521133334714411952846168466457779435976374971358831113513149159211187168313323155253159623242111112753897131932129673912486376767694799375224789413568473561338372739534766482924815645432714428951916748437215363716798741115531482112241383718585188973184889489458527791982416377627574967967649677853257559359794445822854573489388984233132114255264999243221564134613473532631697798871149529286344692817844191416477216952535733817212725177254354233297924921515571758782842895179168973353981672349499641944658891119636461489432365287161923966458693969855961518559436136418417383323929849937345961126877884738991591744438233373643475445348386953783274751688241817339895121557322799312319712951118969829932342121279576297512486412999745261117392783496516675656416575998378717189669974987729265355242326577632884861362712441926318787339191678869538962446539793946599337784728832194376326912147313118551536765832137987394657683256127658293763261882415294938988747642481167452793278528513758369178889554113126914455259966556738444671219995115748933664345853643383741681173241729859357652712771587497327989655951633262533216336985672543569519291933632478962663834254216849555634826841937356817173232539772361843192391271387338757797461534891957323953549731599345144161459933587836193295323221599223777773725838484677312131983934548618261637231416392519669327113667195241591315447691769295685821367377581926552566828611792963925593224939883742157345997532922398559578531984122975129466595239878567351719454499651973523534399626281914391696995162192819213775133258792439451442983369169833169896532521575469291972126844862926274378811435399291971778317417295465617777155813139543176145924118957122425418877511715927699973138555495538123355424267544199314152826661152246342516595846521625358296682173846935641558483648311918757192786459519979855311181144715128297271134299121252581299291316144825168796851626244337398242621952688544857131175223797294281965576176253316151349256472912948431982482923946712221663197777497331313174183262566438312966228869734216742165716331161243427517429216523918632125987183783275654438467114965769185666214436123861979165358259981782575715116419431722157334523868445393269283995938256966453896111963261548133231291153126239924763674173336379889166423637939172366743633369389524469197684276225825258749511787472155541955278787266239413451115127458146432464337989672842683519711224593417635931199296473211853287372954816133795918698578693476596528315228236352698492125432191119312237774563935794318968575236326369121815861125931328998821449771311429928283193537946849463916826379992676463515527528138637918697481688182765266336353584125216698918241371142416837324865561653976779669838423994388249736371837252753816811583931213324193252271145365278948663218437319676573145996325321638811678779164475961117477384947991962166944654918816168533213937993297997948246845541783472855818948539193161371423284951875612197486432811554287371624879655377188271839492684384146378313134827465411811877337717112867123589914876413532891415223312368423175178533675496839782541891229566717562646464152494957214162523666887166936361212425976236119131673516255625985255348332423382683726645169269934615222794773342195215343124317135185394497886491136832191615655386923456492398674622929479915518175996528146815322925343515695441393814696175725337341544472592899422574771618695446676417697213343523698143625654758242198913833863545413571972117752642751268133946823661894869463726733642865812258757727275527388289168688456626997759462531679227938132612272857681768229846759994488216979241687177127833721391955152323562898616756264172355135446348251645251593843933566564292861243849848843458872449592969881916571767351556922427599572264221511281398143991689716146655984431388515616367972957151691334631927556595945532886968354571678928977894463528627551861358122562971746556159732143222158617976973674916557123944614347613267476254329524247623674587621613729599721312222597741349219514127761337717493564287786336632211391663296259363133499841381511739919569985193568842987593279526249916242463811683645821289462231213344166312838599698986174558511663324953458665133347756161281739715533129445539891377716566253228413625889541884159897585347163716594748934913985118792355977538242918265717796213364311226427322747846936312718868476924738264954669853753788757692974485354459613351119143668217599123215464671134456261822649448724484637427194218644263692274835154143963122735396131651355212619519144889233639276918854858429112311228492936631854741736417143152645942731592356358776929657853459796899334398399623896698723578318637411965818211891844932749827111759186158748571913637968396235155515167651258491159674773527994313199538297237798233439937147652441472537238446437934143887749886653647955587531643993573113372629897343247839317255986991174373167796565954754162914178584133518738427738991859486585421271961241288733117978455873732379616791213889486568182112517487149231917243654452834947539342629965599116994696355629423947242331156566788279199524952957764611937366121566652438518175114316848392943253381417355314369611326698896111537925941484446648578372673881542317128132425855494175425476981521995943459581928921662196762995595583444161629298348299239427329433351656574427581116376592599813558543381652544414358353253367132225495121298845121939939738113634512446942547463757511191516768416762632817683912533816182337625793794925928524218812738547759157945643992953347342271183278656884341639136238167492942974716319911381487728424878588148992787276265868649887813914338771961649841134219984524514442797763642232495279715585274321117678659966632886472373185115978375219447719165891486269112653971669939758396871775674427733425344965834176138873876152241944213666926458851111265818897821589249765193587468488195842233166553585366626567598447863385637938159178273499439751858993244867743665812999394646253246339458342372761737398732925671296453237254518513584673887111416493858943488711881433243342954531835674816462117917794275833643942243172657647684194941345987964441326178334238721954573989269441783484927689559141925356771817755571766568628168898934912998966335676815122325357932129952588811444973582456961115593945864491477255778723792453733371726929591951784244621111742447183516493647856281818467525631931535223667815388979135429514835991721627816822866347296751945699554811957687112181951172444262115239979977228156652124789214559234537922698937141327541944195297763458853611366264454214746333382374665456764974342916917895193964284988644492537124962132491972419914237492151894696115651635693539546937697441424974776945521821389132731383834749996431919312365113161443838193922691212514744137978127954241142125338884273689914891838641946854628113324419237396497128195295819618381726325942342982366795361531172299471934295124297246551274234262639185199834229424158283235134758273857647413612287572621573668934137961567919729462356659388343519121224851763318717389125989532121481412729394811488352851971126466128523959922986129782845513687392983225565876925273656845395178927916733281459713555339896488952931192134622915822347832386651442496572672779228983935215431157274299829859447551632831579879554137932171979563411713384921365414173427131125231588385913358852232522571217799281171193423462895467291855316613867281534448296555936413212612725853331287569828257956845633749236942261899733291547562332455164367313842796182255794142734768814536868516919347776183241932934421566364914728251739884897393635956675145899921312423218298988532185281413351384692332573381721695848484519251284415232681941928125164629599639972328169633843421956596614512222873526753578559519699718577216762924636493317386985931173492217621942471568367491256757127241463324232477523856972568955835993131669199462143268751475267211731358229219328873464623332771252726386793182338352955953722968293582994429442211826625678821565431323632613778847124991578132219121737739987813541123176178273912162739376361774474239831114941624897544211216586292282158798234355599378741137667992173379828285119246144645351275613317865151298351114294925743856642794816974341229321818221755329286291424716997427556823797823784823381311979172746133164999464396261557246345923557999926123189435353796699399651579254958975527486141578376954931124262181132516443211586665135129627328244251798952932268436642221452341341321967271153314817873961876282789852123348614297313128259672184911994173112967825346912812932118373117731665352952314114213836957924191969348526935538123754543952922527433342673663493191333783243493462338224569838725691958433237736419824497744428827249539884973648779578211935995345563177715219697169651417463443951895875887855945897347242968384516739738448767896226668623263151532317215324647891243516355823894689671953694528379914631459353733498487176269789951314474715285377292318994726642828616849772987183189142239712598481914623393731621426444722631772381561623353793691441226963487434116523823827161126592556958952485565271142154311311378791825118115414938511374217137277833615781353889169592848342267413877416714886341915132293434345417441365981539343829313871832117953454598288978562387581926645198812614318929227835112562886775411732188861585925822266297669489916993962972846513732678243718447478938698867151878418332125988123944967114199899223222178378846414616911176121658892531267193422924255371623825131852938256383137245359661461658427754235388994175591949222196834264417493167366361443318868324835352317299235499546426775115842876678926466651262723583349643489365353784246684718695795852892848224948595381721214748123636549857134544487347992653378212743779322769462325141855362637625891219991233211898341799248492554451388279961257152531624842549952355719372372983661995876234722368975165685339446474467864198741818877459522223375151747976932777917684684167274871672653138872755948142651112221812827973332461513247773829886443656181645978355873932664495623773336852577541545754857284615657724473963174255832355734949436792117554818372319935295434756495361221716849714996683883613244319259394186388911573488552558194671514163496931239145663416491663569962384389834246978122184834493516779597235954363174597177896662414647334345811321885798128929251893838365191175461679534189332464643878796324196171896953622366528139952984127272211619154722222635352136986731714628452152599192568689612426681229249897151995439442699597682183589721229781795723974747273795879682825792922178469852386993281613869699225734262165936862656644144624589526714226615434714412792583264158384873916788146847663829938438361723685372619666358914872584586935924393557434926347291691398449249268274372617218742129936925943895858834964694547593119342677918225353813952941483256627197445181241124673947136272546378724772825384825354343838538545491435514142259882632116577852381646553185798673148594937449693412398753119232371118659692732123222552821421894435772641515194492594815658962744895396492454325443473432953564857172612674219841295159324263334649543622926258631636511884981975349494177738282181882237751743872996254672857541629818675726259413651319915329282249424413221557719784184193562668818727471849456473695253573819827599443781162276952723342932713237325193147212519178759567421956766118522437144351441527843217415559551592519965353334797464533558499186383584355221458298971158751245961219484775857515529329351936199847411863755851251422688167434732998155317339722772221777232592914976548281742192232921262748372826268856656349159358335124316281162414842652878792723299684265225569452186415548365147937365128536726242877953779458874176199445625411149582223331698862344237789291569853491685339974133141699885983622693316232827829746895641954955254982971473634457752776612626489133382572343634966271786133999153132587363584679112127549816794157598666676884923614774962679456526936247987223133415498597779583526865311456779513371962592354684217389554164176423469699398873242959937137366678926934174189898256536367491919914685712289245833292337834176646391351956932173443986946965843525261429233999993455488276917223291576781948663712241387565619125666469736439172392352592682445589859142321418152118446811493412855439846912944382171622877825699635313413758781539672812445449474386198287657941251316752273223872161799679242711111552884863944269631284935718923712811486168319268579922661239325656446516693626954113275397779675265352942136926799127769848384283631968943116531712298313296912169388915511815631367863179344366939846986965777164614732621492949169666198578965375982549363883155829612661677359475159416498435647719144346348321556326976912677822398872596563414147383466698669124576849773211854856926721966731498338361455416221182465419311312644735458825111919291189811289352125541727142687583125932392528414675159929238982586778843796422473954688352327214895176222782754286383332353753914527698231646443824168288483418775168298611393728847456636317315333467686157974887143243117233333516163812371627594291885689674231132275539278373216889773238771244317763142657988186761842385151882514874387928333221797947414612315393541916615122794998438292965448543745378272243661951393719892261611841631339444979738624872193614899446624821735876424933463329917251515529785895333246674542366769638141794655156744154881778322161316151365486311247685712251971959593796598826651553775579498744286475857637255365334757222876618596751423648593219831376129314936316533974133265217711349911543533276229749491874369378391447926872782687132293413222851997916182231695332415769779515249986629694759585116131466468491262231935316784952963418944676447921471115252786597777643795125142273891581443155254557767134562328417322749876492338169191297183818852993358429467519193155576534893936361633494231767788982295814564142143646373568714895423366214147135366684284152615381474248921244423952424275536323133774358776245912828477553452556628321354891761762995757468847579846441343416767314241128874244277337748447638645863986888167712911496832468891957914489279435323872971284324439469516178418976625551777747235958554651199524817135273449555333624829735219227281393495614459113915238968133184799229832791531631674356616765695526297289842547772226917532751113142623865465257777434398396989945649221574294319436314234226697411437943856383443681459596771167555429273934795331159515155288263249218132732459568553316268211198195256992114229461429349865852183493772932776633535951121649451611619246483126538812357911442372376241198385463747313532941831417196543584932178948545153459336789756313935111673437917897653298872554417938867373718818417522483923631352641889624156314853996397213863134246971632369177632122176336839142597181237727579819645234361494558976865989125215297927446134972623456316481933952264546211325932922549842822331944982773554458462624267915525264111423689416486836454368914312552858596491892276113891326269663332312531649595829281191313874815686724556585438232735329321929653315811339259935259976234873128934266649525131286736969437728198258334843469185987694419524119369874338532459234634696525153292141392186253539139861876287766339654942852766687423866883233322748828876568676249344652718683592123568294434469699855758917816911458113555838925869917492722871222994886349352914582246742777417148289386645238828324492167461953793714213383365333182823986749272797527414842166894633298266783577765534122921232914817618316582723541555926343845325921331499665439651981812499323631519817751155313689225731666413272873684657932736461371277472614554776946965781132886659128292612572418536996981424576763943191568541181553663381932979913148141313393516352554673474453141529254745986134733591295522621849581434918447351514983784528837183641415358485643521523162299513329819186178212772348385327719129381211127249156158843771217552885194649232666249175238968763585639715286347216574488249381529147418879799612541261552175837653941895395357876799915633261436438233349619561153732211712576549797838689646297653121192149831322561114114595859512152721253671531555174747917855832593542575336389492164722415242898229653523483953771398119825721516667424386599516778932322176255127792753851334593674457525631125292815225299243189791243665716782497731911177652441556145758333168471731793475239756719994787356927449623574437141951392311996393422559519687711156445669845652293941569339184412695956164196971319219816694333363221223148639972685617835962224219714638264492967318356448121839959899377292123639778576511944131121357838982559587715961164412259132485954542277497356731736982173725934833123598424114224724737499564587898376846276175498235164217329655929959784156866217249572657216775155847663225385911863289891256869487361997616973939349893164816459233957253513651999139157239721238437213163671157257653692136644762285923341816318743455162226639199252632413233225842328957365116949366598732358235742785419843447682374553541825591973546533827779821426179422592193429388366912923671263879727414468883365344485173388958791814331195264519855788821462886647178425872456175457862492541489253818422368894124258567377624812235393924832361158359456729246341731257926735661446221298116447817974437596468455744687915291957254259825815236535231161145484271292642253215137496411888832714663592949454564851316954672766571729488598393641628295874948833323184911496431455437632996292475216474715551955223612625237771658217656926417259348699281381179736969218969381251882649189515217518883158952998961925265887995762695735891424495589979981391513467815573718499193225731651224942161593738745368636543822861497218266595938756351274219655684723151793311831737131526367717719888957559671225235284412993157219358313615813879971749288827317198134339645113215336353889433194689313642792949856292767518793481192174842656692321548625641683139679545614373655197862393774544882124293812227826787966391741116668465653242183294311511756643761392989361539344423799989971114621914933848249688236753847137298679537187173913322984116626259935247836884191767651127595867143466522292244211289686864798719433663118876349371446788218565764254654912831646353352775464534919951178919897689854466595953931263361962211825151531963552967464754342832615142322234261475525956971326457714932424386175471143388654493489636299266524694217412755314278331771576496376877188769875173898976419774821623536363519432958165138978338518113757917994936867358922338734169712351881539717477173662278886597225832613187692211218468591711158341375232647354162699781949251384531136871876275291218387545636212867861884562331199995142791723912171445418581486467924485891734795351422165323752847681578298192115698453115291485226276515181333652233661481431448149214558621362497359557694233973769929431176765246769466422252381224352428376378485114981398796482825759282684533964634257654957544712267692439293493512683394679573579862379969518998869112568535726136632992799226231292992348622729482159623665524546912633993644916373551466326682299415656466129851336791375462864825983799167372719679567321762169574841739717418214652731118347892753593994131665796386742636573634865622421857121281879559853356336814561977238523512414554998754445256621175243543655915643411948932467281451859589553756849257812145275399593727719281215147283333622392427197248156382293622486952517978573933333188349533949152591762153256399447431162529982529963167134728872792633249294377821492391539784517
1691234416447232122822273152332348258933941426119939893921277489572359395528938268963768952269874116479319841813552262428528194623139962983966211234141183595839538487151814596864767616461633647334154435662375437144493579339182246649664362326382232258577941937445364592928242242436185185482693651486853715939398288366617862455813825473336369391473852382161576331528196253116598421918259366174432819681357594134111794331296823724962248126147595372793592628145288986235858235165759348815491481184152937912948985319347425415443833147181968363759693212957841296427296696185783111948166897741315939373671451127977631879533533829771164945857171885722559992514736561234837942967939982646824892959935528493173583734849189953159878139279523179556763226855527964636269597891581221668818217269916698448443987751266837272746999967969315261939131674623542457552693929834812663897149543483261873722587783932373955537546313565749792268349933781341727565258864557121846998951279665712939121875694854764424872361253266693266981188311114275796273567523636366739926585996132278414595228458463286298148864531446256831249818385866692655421339218114429491229929941838719128362558874571991496142497319336397523183453782243993732324792734897679159631692473255111376553117654664546263869777433394723688462991425229535369314554468152777786815541979574743899176428419991341293779866917948179444665291527734617491291151595381911417351867192624292342646558934396386377418955874562767737898456277663494542678328782752531842143482724519813296272473172574913138151743488769369849226493554848345191986941339191943147951793261952265727411516626187188473651729815995893954876686547136753325993954652591755491462492421885222895659864286639641645112356746449463653624144166339119623194869193115977331185216688846885623811569374214415399997794256279573562651182795672767572631242795494353492452458331354533919898671626159141292881534198626168686441311777642335784734949621422487667328524513635115959821175783955827571512144811198119829462651614971543383573326537496196627132275391734423563433623816527763796796432461419214137837462634173725644619832695446772235696657341671852539536143521768171135312514417915689729714554314434449492496428199578849754363751497348439736764756121381132872619895595381884431378446918291152656748411363835929162734121389492519953974168433692538359122869586111935745276397917117884527343995617486379431624271789636111382329645789495555317319243227326315921379265999535922277895634315612785317987929666147282289724598565772482793252769995121658842211444116813273881139171214659681374782148262182128194111893721968841651489954778544741194928711197167281583976867823572551218839961564512517531423687844437452473739859294394525897659751518414159135633152533964753988848476421558934634122613841189147451329765113364751718633976684244816236988289911278738734454651376546399862521432751826114627317358372322421851645343133926933944883555693352846113681356164149322273259581923546673434852212894186285434954817724693481499251965214335769155845338995331836677913569736716956455296151974785642686756238889451761338883575689549441544228139618634471812167559189331293861852575665441951177428885554459345619266186925194358293774128339686394369367971549712333841532585476823694343974323975714595993143649714998119232717843856261156571128157445625896125165996465375428398161757832161971686358331693679341763168477886661812541643773825826861244498297254378536437265643436226544663224495679972752829274664933122655328425842619795136589325511298662258795178714221947559896334299131626867993221815359192132766628342834399744177266286352494268778187653165494139524117126282989747244966176916499411912877782685572624594451137397737596988972225237331769211125366236791415432151238562249327469698267726495994216128842425955218745154119751631556174593782552199723887774789994539615498239323932954556241491844299248196244847896259674597414613895851861675964124395271769642747829514865291235851214222238191189357412399378574519986241738395332787529616527362156573954499617732593925299433374722181364632178788621573922859763659996137631874397816525635984979162392641256659998497847844915214649679411397567851573613151722233685816137244548483366732427552951569445448546623512676271958119458358263962825953953689471597538281648549911197746971625217483137258167131713649867595193166135281742659342396413161467469921382194246839362187135316668267432579783885524964912674568559111196687378423411162253373493286623336382632788954674971944749337862217176998687296827836365668654777462541547986848328151345372924454723984581184465474762652899496826114863814176219976493781115671428272674328913292541937286615913354495243242753889471285742521111639976992457893797783329597745477669573444515641457317428838232234455337456832237136997912666811513376651995353754666659214143388687277397712464369741737994219815212373624938851922467941682348821745632643629413527237841159315956236696269329649433136165963422714418224491396921856992642212394992216569185647282873677655512116853915252591539439342917981523917712483348853142645993764777555839287947417459452656538682397758967947184324144455169578888461382452241493238965651148527814187365565483277955426212936239911836965311236589775153657232665796118563612643264554196356694211628363552433511461745753171925781659948245822293926742413297771241135328197383395629564964285438487929939159739192825858982496892846577968929694331429896939181327134973321236369999946875624172395999721647775697212289195178891472589242336273856835864188122292745332347659323227789837751315812851477371751322613357589291498442224749729576981312419331273715914981543394436944421665272876973353935417595211197696314845949481691438755193398554687976692713442233983866185222767725688479523557122423362785744887363349128713834436781743671793947344829762152168189778431797875214577794427449286563223535219987636617353419397329138336873727548992585842931179712864452468358731228646853412145751133226895433679962728148942433779113524142224997714114417687229369993392862175998251731745692682471519993233157914882164363343211561616932962768212727224351247668941187839588792692389714456453637617768984853926521345283346945514453453461429386476911387871514568473289275678847442318817111649439361457128394351494294593348224937898775922196482576636752868155491916719278729194167789741139387477575299225256335871319688719468425411221954925866648117745298222368782689298733975314595853539298178312547381882772327576233252352532549323955873653121718342364673456869843132732871811835556984915458275793696673192611341934165374596143177798238449698772571757191516551389237488627598625562825269268667396375886359649571171386143342784748136691266496285524819542799148942422211946299391286961634116372175332396515264531411229318124288399423559964925146566666641732311352699146743889121926211996325434999472951564432844777157457861929721924659587915529723181336869279284731898777993146115184681436852214634288291313661526363576943627672285457323771754122226479643489595399864177951182445697282985113422567785263317524936947218969939915477919779492666225831114762961696111959142952682437829133749993189219654479777178979542719698653672952782349319228847335534777162599478145322162123274427636852266226155731725881683531416559825291179898826923915393234821592667787535598611169385116839214668881151383436211884763372234967639463446789242698164267267333593771911949114422278762846745141459862894843225689728459848936555822482924228178214264225813564341234641222959213462212712551164667732192114195526251466398573317179127849371276139455522834392852393242711332835329748443972182328385399924759549965319849422993787854135297714758499828982229277549385249523121387999137711893337521697821144283145163456259971196596238912828628547121729221518393419665528833437639132853325121646869454295511575445129383381177221352391631222414819437526673286454533661333785198187826222431919131354167743616876124585697884432476749428937632723225992114925551537875844813488487715871121989934267987432648136693396136115938497969256499336313251615178746438473721888834852215611926989493164341523771829199978454356724166454878835566159862827563934215626711391681476871575718822656133421426694663243152463178978591826143714252269264215433553432468535352194488953183116199788175167512847414827752334166821932253217795784376564883294341719175171247872454575342931858792484362255446994587753494558839787533964452844937999632549659964174376759349896694378572941945419334658772777721512379144841247147759686899273684145296169956636218967585837722231481717512271226964678239229881673527924245414867353814328878792279115758616254645385162156825295263979437992825338248582892181561822911979439193546674243322111314783898194331156878992798995356239346931981499899197117568447169843141442149786776179622828254356863477983923464411416256748637617371669278352824645345111268749919498483634983675134777433646629492728293978478185216852973552977359792324316655391842535272754978489924714831747625176555538816282347357641247354431492319253716368656427235961881646636352388881164367656382197233954364732877354124767783422731463549942684429113677149139789648563721623791662482626134712612132294582513692678141179545295547956239111629479441315559559868346517264523896265611233355925483766398222191975834596437551365512264571496738744175899441628147793527165731241321494195826577137921856565297825724521267654642472938198376161712738847597783261733322226128632915312445919475783928371152413313694426437431641967276965584912993864188289144673531128395778253292333956813173528835294955168625997817238549548413826495421577939777582621335922433372284881759935876327194931566777715135465999399227116253133627622443525625244171819352136524486688648428577257499397947732531946411734844472561141391645151965643964911821396258964369766735641562167467447755812546251421242347661592652958932836465462686455256942713253657232349849896619845768736614393322397585283429289471181437266418343993551675325594634839175885231666175713743143937149976336527275598417877127391792365547859319995895429579376913316588399524573252445218695414276434466133361148976152829916645561274179213345359596314397549182942464747173644111573565712591415373172154722582293593582786934596636136334298771563773153231626719524519735259265538243269499276189594222176372596676538456976872438784712855159775375515963577274621493152248148384253238378975179659218663282856877189884965367876353459561874348622293633431641966279364857541329347331499248546461544527959182337225634866175721196937527159329975115997697854868291412292831111429642143155321692144887564493421513818721914233813281615921553371627851729453867361912213298671815247514214247699425543782772731221447654245524634689759114736324418139891635812713635952783819738676755246825438198386426577512561542769818743438861299134811667688912591546765294111317896781577423514353426695295583866623237468316827635521274164164846324376612793835211889618857211998178713351283584222367916736382965375211935663371375395723479175871118134532115466359155143273717982871115487832439935396627996787614126892544815717332369242111576125273433322239535256375718319663216991169292838138235643341476112758157761246322214632335694818538922914747233987292745413431241837447848351963445227214411976126911813335585838934174817273957718929557284332326132364679738555571157946122791361175595596529831395772844115795455526611539573143413337256983151834569633184512247111259181882582648348958878394277595316212772265968347784657541313487643123268551461158318129742719354117817545257144874194644331266246945148954275632633874741834538448741953398281555667344116417653859721551134724472482251124373232488194233726631997721951598444533592312537612314617514256159223793967499574149437849777491287278182921725961356311313813792293279264444637578317636839115949691414955629227543121117985319964739111256642411664226229819946876788691546756318549149131258888124836754283177861994535623331345972238195781255974465724655352935483183155242732968944655824642855936959279936279413425423192565324247264157461769474853414487748782122964578799861132283672225194675624731432337917342718342824324113765186232614339756837493497878332741158958252494126567311119513487613272484662542582323942428919459752256789491376799167936556458645612673669574198833354518471659263844875846495254257286133945799442565744142346329215552296223319746471465991254771539594331216411365275162165231822145185312659212465861146937324265473321188718513925893547174271527111797518377133596642153218376113115987287189385743199161145241915996221469692212484727582476434666914142342369573663663976432322619371347461759799191392735283569437726822238428752135362157926575441167651411117894125978326569214648131492399575531569724491533687324986169419689257326113765466848684345156719846124647222983445489525812315958493237242939544819241832368896942224375218585263843989517545973652989871282643493437729787448943383631475731599592979193856616711241572416198557399896747516193976232254415142315483721489538978331437615259542916214561133232189344416593159554425262598764981399628158914739995868826543612946678668791592555752122892948957242741323995545189616424953771164116444877361224462834453723331345384945541744761147233524889424792863325373769226849455963661266633625382471171785246531557674411916481652634692544648921129422113816199458135993293788583339373223532179972539253386238955551945727959912812537797472185724191864692741628962637957679715632622891436957272212452523352526526272683311271177147922452247489846478464571554578954331988445441222823831477675533924313295396949947663443933257567933946434743565963362563228436347458411765912233329522623969657168883611833857898831977398752756662654522484375599578291989622814279318124167441957961455917955458352654356956974915917827396297734524349563365732274996171924345917482855885343255556986253222162243384246519139795762123673371181559839991162958899439357456184218699992672795971358216836735373393418155385262669754396299138685782921894565613529842478154633658635169113859612678139372253366822485459519168425587281212885685178972449676781423846115266633538361586277534516385575375498716725375855117681153769927458253275248445287142379711698812736148626681855498484372654599626333761573372111863897625913678743893514233784647789217996245139254398939624796269228598515824756393471677388531623872298771784827494316367455123632311613629949419911952453232399141514161992316193655922214546652938329471972152381333575363324312475889919726334935858238932868176614215128799938677853768791432549266328998654513934426816799986989296229528996592131688246719722677311117775184829312829912644811264243584797291624487435136927151581193229752531454585588562865328943929984173242768551836255269499488621614721549815235292725433711544652311677145588586359234927486119434147356985715366944615657719391859765286971418921382813457392579213927264965367488712315273284786987957212641722414133992337871794132548915417553464478164213915426931922713318129182268391374637912313235864873178412344693835635647613728384423864699298521257451243432235346345888257973145684493665162847956558832625149121943455692261568866555874284228124949195967994883592413573578515192873514319374526158422233773695787893588626425536725352417681588861277446984837464497895512342789942676739781994588135958557675352829779767192475245664333173141776652398586571261546663186911414744783631446864324739524877868668579659355914758786484326396464775591464285524924897326962133697738125248791579765734533313817271812465391925862323432594236619462648666776465596996522856664365115445351523286428341479354855338392781615537758244866523442525779639142872912463798965755923249312922255545347111477991943129411298686125217472427351688439329785668447469526252894359852686811753134234743488354122312424126528493971951321511296196944641111972114273217956441823927429178389972211663759553752612439141726133523153453258243965949578623197457125796587146918915238919299399839435921652478795834145997221972483152779269736339594211319211398231372692123732455533994196579545425596673291132999315418717328525455591252263878624466648749566156312521193187731364294154272441691121116538194742138232573552694799152891497873976592227128179197828897437447371421259598111421174313415216962299774128468183621536112711661431234557897693919672187315471312385491845711549911915522472942461884456666351916155841664279546253784772784314189252583365289523933653864734825186119599594479991699148991263213698736122654679836682845623293228276576242679189991416927211134327568167165974236463492641478219672299399324127511535625947431572741157199148115787262656512188937151291957681265666588162848489159258997629661991261234735512118911459898493532712893568611695653254693279435235277546785269819681174693276156151999497635637742398232686428492498742759791381253411222494561615349126812194358692662577431957415473181948649834212845897137823282756143261263757682176471731297572666328452422329121195286834937373628399525283898914186146758793824816919713733483635148395182656688141163257622661237725735373797862133812833211193552651465595925763836974679133443183439924587695538499793942731333591642243125181571496699987557515261921559641179512144192416341214195162352251232546537268438317914863121259868123674349764415659446425637318674342635232687153554589659318212949438815653145252762847933387126167453147555715952551581215672913958235527692255387393427493284992968272392157942711281378177325272576712691393167151178855238239526953322554577545671647888537242238272531454853579215662453623919342633252223891564838329618729428599723315413121596767583318177672735921845573429961738786149283373492424898447541432669614283254556418483159434686148471554129452226974624131654733345651147119796647868137972968772344454943479359891897141166464669641311236835864751734124381271121895189113439536715613673888784127565488565452295154417572176193621478785528725562478337272379517453695329427152365117741944749382219165936563953595894653942561414914719552847471358929515131836725638146123915573151923379242232546296324657576981128986292185294138619234289444896546334425486682413138487229827727366634959962692554692247579516758596458159552893612726975458723265639177446439675287896181416351551821147141497679632393262219572774633691876419612478545397221336624952647756596289288754822943217421761921526169481316393963121861913532242374129862726644199256956477113142437653563762179499552977169951639455548596869665962831521344456474139154264854641391927828554614475164428779961182783379241294661324244957359168267469753731321351125111269654549516844583915247168293962323859551698154661592476395568762436372588549118314645954412997316339653674959913233713153364212649277551846238463255217769149224288186889128888921766647343156637786149412216323711317978252339236398299327647313568226952355731585835735134153783167813147974134264681259284234342131227243639446589134651672681896798172887194979277378952418627148318629473775647972712412195975997512543133199623624761166354442999964524466412349817911112257192534233529519817836299166537516226412751731675228395586745687725528179552123835813248224395488732337185389968136488737487447418159141346863297773949738823379692475189493525552971344349937674786413955292373939232451812621897871537966322541833188817491378266195432119537888228455387794288695381645138718631133952366921857518243887696764667722439672187832626814274331729539674241735871288293219711649478652277575574239225651765988256144116357131623615649242826125499262943163336949784672222461557953258191225951316452742177297568938714342527914543584929845314428814657229472473959824299219126799598648466795951253451824734834862287389199352319674692547827288151566616126991295436153583237287913465158122738413429712292987332841548678638241366675586451653114932572891316138965114599981151921557485672259731361464133666218431235472991134515459314886678948187269685541145394325178692937549546299361314361489181119824427661454261697853838316388963293849219114198316773686545997681431472119656139459225515728336659937543217321826117218184341684233251873399487491695545268623821276417647712575811956582747842644946811159883438738211231369438282279314183273993312194588621118959478446863133852476264237584227421981624822469939727394767363436934119248581824623271423792541112756393831392959531235273343993448998197299866581521241964225291946397623273493594451322739485191927717362542145254372343831732725126777621244617222536956441738547578573829222276997553649276616896168375218294376721461657569216464365235579141543812483668223328161263843238523348419892178126219388236496841535956254544214139413211195736832159417687372179749928889161794583876999172826322388129521872752955264171587923112199772691183155129249378446382211257855384474113662548888961827348352847163958153755436762856687525212225361159648749321859473722767612484786146937498976193249498165793529145693766782243563673317537325694621128569587727938131437167155723438733778118982711958725941494918649539494956732553437354315877956847965465469849387334422251112673219173733349615166559156133641812453636694661192218685116797356249639971391469323816423571424147472685952917212366893363241873856928673172223912829685981115885155463826898239844275639256999725185851736881699196179545789845458519911643963152173398123962216852862268873664474962421924685464792137356859737612918223979871421434285223348815444714851313439935787337547962749824443169755377816431216947753654887248987699341351315958942612121228614178224139655981548711982245498812765332721636152733631196235791782572573154597332566963836742217119911192342656364952444616288426567711348512661521732228639754127526954958118713921986361836169315579287194779818837517611628648271398219232412554978742519582853962715314976935188463711668685364441271662152241744123274714141782988594389268351847557287214278177617756289672433961798479171116529818758711595869892869391264622533692546283282372982722441469985429312587984462935872476452162626924279765269833242569735541639219453252236738271148379346919617489394844135481744511388839263113984232132154178369375952828617396596562382914291153267778982866887596493283619947737784813339362672877387723449419781561161714631184395376479392943241263587321987213764174429699514362854129416187849369317597123534935918999181338687615954653852688324417423163356643526936844263797722285123633219582696227327759136577838631454737655751185427394812868514857357221139442245619451217983237862168943731369291449396428655916786725458659938496918922169968499675898836416887222626395976866334331892347466466929141962197232221535139565799583234222196575252513215722736923866366783187437556957287679526168919977458983494943238813253148819475356432611379679679596518797784158667553617632148223328981442433484973377329344929991547422621359825315167299964281996142726849889152327141345423817271554435244365596264121263729612764731267816587621112497546612834194543129317276921425277968999617727612824711795651644945338439116224131981171917369774915263685568913243252845528561137235353486194721467915312128873752254777476511594544514979459364956155145331911954195224174444659171733958752267938662615277356513571955751471495563378299991321676819579783486989916327247537855293279245152881923785655992829818683957231999136747131619822323192113172999455622751392929321497846799297839625157695348914652151271612151628339113292944158994543336711218964587945196793156891639821964463467963413675382727577255168756922481563999723499499826172929669219639879989173983455847645662752992649638644123367113625974547948256587675861921163582326834431799924285627968869765151564521355297388566128183637553774962331352986792969627854225897766646194315163582589616485111439822725974237389251198412242481361539416328336928484183945847717388587676551916825192149463524395721325959735528584343324487497452298466266222352428196975338244328145957591491848452248111891531946555896841238756342547839282195161561786139975744747896775569976874615422712321452389371477516892283522322937237261293292631734423752216311111344299344126143559278888534826456559739537362494152138186774854336416457896465914628648128427183869961672473557319539259179558953346841988923841351839824234489445249387841273441415972331922338389392365478817447937974623378541697386683633275675765936487653529272616863349353869618343342835663782566411272718921323618355912145951431445659418349622974582422968147957216932644925131534361776937959116493521932516336149949459175523928117682173387114855725217397191599865983887379779663314312953138295352227169812838246946914335191131228631367192443526931852741117281945262917231466511697945163956986532634311622835218221661188241716596274741638727141146339633424722979776659697453561415161294118719375988896151351114421917831977237653294738111574831589483564854354638692381422215382138113221349364429657312113148737555619191782116666796556552239878373436889515324131248843347334434523811155752949368631483299168599226421436487845973835736333914682153339731619373599441522633422218172357978359472492978845412326594898935153222694794543744316263325211387453582728913464225263242638518365937279859393947879365864213184728163817291142135616699261499454629578728468559113211469545196785969495148164922439364452532451236794996431951146215871751152121712864676953621354927352311247514937896368162289472126655594849641453528497473849633325392241729945321436451254177177179968769416825373881699179941235457252577525482447566932612849762718432953622928455356875172511687478857739856541192679887329364557814793725986315223154748268162654782874295451361223354438716277813491741294184478348936385832982652578437978918118698297425267115835433366218282376562959181123356284156598383655714579157469195341237991837688481888618347351326533386566512364856786853151384946518452381538893295857274123983533119465413127215555734389232187181876881788158437222773915829364525295375327844664981989389339515291642838664347711821378492225187212224993331846488933348814523728828355938386836945335925667724492647635915589512443957241893295649239967992678826831482283796113369542354443735428296452979429352733272559895213238236348484572872624194477321491269355162611953256619339449984485374559273412553237573144643834468483854694333495812692765212793536699359437852291558271396189612983215912161911473734492179463155849728714318312132572317817129432634622393339766462786952139296321791335654758632363837359367445575772378637698735117589238641782295898846666678623145218384222945967379557359754452581256395861121256744682194138813681959763385174261679214733639174641399425679347326313747871812995569332933298962177385964677329536479775878521921159448377823515876162888727191653954883249631126358661473164811262757736232574932426158915735388269755179217775562296381355544381251626374115255563566233359971229537447695339719821654344986239463476393844626951291474545651376116279751935715554557186437826328142616331865559258427759247376628469366491671553231656613995914721479234735819699999297414977161522562187622592794243656834359146152947916539799113456368692526563729965181186871529595281394584638571856691127155422347251483271253428822346666369219262328795429824211898972383183989915883978433984621952355323559338654367427499154711564355312929481618257563658862849462851285374847254381764466464677315851738368724123454365426487269171828518798461347375721416332831391423518434298477846249959495831763447144957552123288447471223635476926419166373539359398673944697159739291316694676596551631585551295153623361191922981111678744489678858925134332243734199325259576298423198439729112898413988423425862749955963626879579332866694692414465398543584122813524779979489325449895394311953531753712733815521429912616926153671253574569279158898434872162715742222447378359269993464968219285182673195245744782515585871375442627355467544941661197943815959162774231273931573465288962611861663587877585117396952929634324865978839713616362971999935959892299973733597719211457571458444131287389675412251924658417633642589738654196558925116134699641312237616782992989292566572463328594211259642484391336846282926537516967928576321374931428788753221645231271114974985194912221518845692712948486258124739117355294424356759623696622528912935753822199659459842331846233281582372228553867845529948321228174926473486597329852414642943564163911887376384525577396699446473345172939112745351793189912192865167393763331141965726695183739618314953461514784893234474562794328516525215631536338823722836396151689226676457597355312292998478492545229842664312227845527825276379819382925218388682192127348141579242927471927535244476476328433764647965892951894912651368824514186555295266551119327358453368471526718946566951933477856748182345682611947632291973643341126951535844647927447943229237515859424139185897916273699229339461947871562181848963881295554219195473623166273358275537272447761492713546316495655643319122214597139491846136143295623756151576348179838439175642972535425562246818591194466131163837941468399938734521591753336395488654669811192689911447463355334847944422971986612416351268281129776431435119293375712671871539122521971287323566896827947756845785851913252339169549736188295854447959328515966295523447927713219234684856641222332563358632635557849193893343275837465614494531181549323884231218227252748361921346714272811686515586952682773759235848812157161293151141816618323763756777487284183877735973897191972975613785323565741164111651986182728442811691664538661282718838327643858654568183236356344619413352325175252896474486811331895932272928754433942591998173415148827525918977532897111548113563497456382156293712468572933255918785794522742847844342878165488212193588277611917454316984136442694934538194729681626115457247473573277762252348474222219378164943963295759564638799598531221119546947444919821129169737761486829572635384849433362428264174634754331835622794479225656778456821732986266873232432385715246993189896447681332515215244591135631313175439135921651291824524241955945913874115619425352112368356342444179581699495341422933724577611456753889294263399217461755665462558783242731243887576277696618979171631524236346426163498842259535137598258515139261513418826628854496654132847118692952448118829181646439361827653231185279939192188381826481418878228127261786475866262774349331389464436916863631294724811175722969174868972955216254277661519844172922772344675144923142233262152542415546124979824167235741352844691711591354478197739275761194369815971554183359832742591136452736156925496293926125658997499266265678527474549232621561343331195652676582113927664279948222682361373986396184448283794177854731223765868731672818678571391726234683929872666961181128456976151629467147597463979765918655136571494419433123427471689322964362355336461983575236827339154315713285882132192552696444895819125999793191589264853486543533697985631811748541736672175759299616173922234134743325673481973593982556826221516864291234835176747159381784596656818982562614133395477189266745251336768567858655974261291761477573393742423961572512789948147534423626451538834231798473299194137241491156414827168459856876666333349269396762524626881749172624547753735326618388625225327834351282882617713996639776815252655821177672824423311935538864515624513161178514146164469665159178732953958114235247684158743368625977466965839364252788114716733143721542688333282229778315242642462854435614122246213733856551975636696424161546741338534197841152479953251699421223526467658853989532266954178627999394787637786276757637891524137957512345833941542956652558191331227514759247315276994169626813682938734979595883943322129313631796216393134166233235831922719116328781733268132867632977883137151687975987747271826268374584965433893431463295694465962351137958939112951167921475288925447828392683915143651445524622539982196376318663986165419414555995732549251216691812333578111533664975851794778766376952445232647956433199178245336178244894152512391429216531636181294361428717376172569287737472311211433473839451578129726169928626975584739195641639431689391557875217556792157489942291812739336919562956187986747362425487623326742213625326674141579749181717713676885412364593251373292417952191591915133682522976156772382226275592479689785167667991172451354267397667991911674932189487317446298614295191414242343983913699945613999963326722616676243811953642141896378869274251914533548174934373626676181522176952511871858132523227462872364949421629172331366816119544492615399471246423177755753797248459963986168524759825675354743778913137933657236144834266943556279877225597235894212326386894284665454422363721145163271598597728111187779879576986174745168863799534392182226248297777273125864872911395686523871776234424149224239115968387875955847715698656511527849564198297872953837343163338495463796332743731121822276197142214946963859239821493292569973912984975513884984871761647293556648354338264118191919237952846443816146179967188935975526575691595191567172985819653429434793935271271627639744432947764238484284641348337148576722245386737422717287135743353372347896515436455639365295233683633715472445246999927379915433215119351222647597221534774637199155154247934237532121212338193997199124578191189175526572347928111912251571624194379438321646521929393341175471662143121599724122719347824244355144433567932215443842578237285762281411231847513842695737779573198348943945484151895149973263838587964836611287883814914484449391614568854723182232387264917938225198629841139968519391757574724317879126935445235687819496384352775958189421485347896688781414391465824241932869818597338272313942914541187593593723374614263292737231949953543241821191237886356662462447958749543572448833283433963621317627651215159919588579126483779662944291153233917947215739758168356162154144169595275814919375632854325289164461884482688414394953359672222953942332979813259134625997314233886637696722314893129845865195697229466295679514153385391415389133847131586765687259496261493633539899157252848193916217172669233825148286788442221871835529415141523417922238692491515383612327639294318378134158296245751684669531655166939831726983283479761724696739475496594785867263969287441635121499764777393262488391873177991799499989369846142366376414238413449655123626433752712274232282221614593891111163591156443292919312287292183172841954321485524153615353644929791559491272124733761474355886451865663818227377324127379483513798725125461655662232429498926125412965187478758929696195669628886973252551225812216624697224596125124191642629128599665197127359287548363533346221144152296737692763344648121623481221783221577455826988448221869112131521142287645692227232345668125671564984355231461856655211582723324685284782479341447739386435533788699342188212625168729416325323333247594521919757273427116643335698622166372134422954229679912632456339623812948162545479497182148379927614384845261247331414697541731815745861341653315591522862619233714825163582644145172126442827465889691143822956969712683776754952296145393487284476171976926786746281913551963171731178339179684163435695645236165247757986618648288522426119243417578332164618955476191712443238587695924743763397765159735172174973454225837996713364187782291821842225889569133965649929213831515424552812293574847157259742744961118981983452667743261717148165349197443769294754468934771386381453136192911471618831367857864539288458738793762625697213542448891654172453521672291624499133898617399186865283443592178773136671358627866252755921274535812112515138712991416968248628141617993656715437843768227726686125421267257594824869574255678871346394575991743714534631141756437334554251634539478312158946223246677741832652227891637538997618351222553224267755819484422949931566113381151669337951282622673421325467753435548142229617211955896742569564917245672624523458311414118981653843145722543313882799651529591995127426146851784623732825133334657689819345941975585781659799933794486872838366978248156813739397718644823729239881772724685739955958331188886812789986255649612894427286548721492946941626898257518326387372882376247325957194811312868921677222593197415149735326283126962722344525668563945113497447854947543896382146632337216964668959242539767614813839925864695649735865625461629634293996369255345474563421988549286156762782211775813327815557595744568674737956516457879947692745969555948171458152214733443361784346635545375948455229752337797341281856332746757859261242852315786656784665179931227178224775599161172211961727973883942782971973328581419817838137566888966781781249592357522811172814782814377117289233961813661527939912611389155531172251872591596992145622125739341627444254525353121533429717432381545923487227146219712631341787942223377113671775665239674971121517645975679612786163179215188244144662322845529278948168696975645633942292512923569987262723276839416353397218619632514539434659153321372796226517989687533571941821689884451672596916754114378716262316225242683596335163247927855765491356738842635426615385813454643382493392625916383583227353912499869494133844664474828925434759535118663334437456415738854431741183665468356967588438155255469732875247783764394138628796322242355655752675628961174448342276536126738476752932894324122264327675745115766836327625789236922783863155652714571355214334478175852476231874521633379473666815828785413259812533394363174765523635462524574825282415836751633666835337778964263999944572352234273145561254851254281593585834192895946362519293582167556729924598357942638615954152824138519332185253697116879988942542389134578589599229349422143521764974369684928486343753818544371146831389878517487238893629892663345966618921974657935753723515291642249975726718638591243466351366913222821772747681241281546443193359375765477961244242125816586714394651184522621688969289972261776142632715883128772258356559352567451224465333435341274592862633492242235462527721931911227964957456849675982925167959685124412174812121643221618483458269693149338347569737564248759245244455129343361763239134289163286282729323689224186169481228771272291261818987891682512753719789677287114337819844857712498954945472843433594835618921757944261333975366996269556137887412936744765843212877618311111936646533364767342499325481622654381586985921761639243345624177772119969417374167257869615219143767122375174638991579435339218385897618565723755319231441197158153941396985521124253429445249697787273456478246229167584695471573449813295266253678582369575764322949131426541282994722953356832769553142621335432579271969297332958812289924835342998965778147539511372677141632437249124287183243434632565915874221937898888157338624766579187286394356784716766888295415957795171635728851123842193393955318374114212272122973287151757798142655949884427399757784777443334927422849916226825483127238486554926432664722342216211869755275596733886272431752442314157824132876119263239458122896138263352115488913796675382555319462545654153888654133522195737545599121649723435782239443596811198813669741616261373323249649391269267323469289334134536245621739141547139747364777358763773692191858439286313998732217167669671381165952376129492913941644343316746676464551341752474795817739777279385789471857436374399138737417996319931176781362238186727357318926478695223183375894794383531884142923473155945432616352997634644546891997522236987174259341551526277764669934932331631247594671443128513183158476898837799651113557611334494971634193471833653847975969788439167896776695675122396611227419559956231283536212298438162292261585537912791773413633352929793487584225319115124545319864999292932272459197647878352141423558768382344572129691638416591626225659912586612181367758439695696629185155169251612361414171756219637121712738469497932785759285198275898525219762715843789728333962921641233183618346338538266236312167924585819811392338182969772279772664397211117483433317713258338143629174189636612519894328789185555816964374767428492598917224486516582822648316454921971964187465133936119357555487927274714716436698446991942638959174558548645611666565546339161523438714741972858214443651517237866384257192941656494136335947784264773821873677519496614988994753195141214672219254358142443229847641729291485847961299959221757334992879434781864694171126325497629741171485571228115521695937363913334254834276661398412983923978835116935394255691181534131867176357515969639962765922636518283411564636495116436469144875197466693614697217447752247988792415159375975443569178353145179146919638477987523241672458719751933838869845726351891825554615357431112156935994719444861477522292326644662933537873292252874814924412622211593133977835367894752586168384294944186629432162847223238197764133729816113635265112687377742368226997329237541548471936989868541943814476265146466935433755774496243724551261129184611982976122955483232733744985944397239874545127861384445556435884243635963912372382646837989327379822953986486324448426228411225243322311859574736113118846322567949296981621831524278769726781329937546481198812557762835454965129917313443189279796126334676825614238942125473273897351298389549744316355585895415863952953994861885888192262846323115893246258539356898729613321757178516887114967398761758687494359431736743242565524535234837353672848444281125357787788126355269591255163291314184846113441282297735283246283919891469466927931347114591353954291977871622333419311341412626453537444497874118215628917399387876864664349177513574312141864782445875821243471919755667684819592381218597567969842482331571439171236474839333879132816929491791255371151647392552816459281731662283981714466555952217727662575616427415236467153917254919643687535943543238386571217913535251412288165553866259291893751248682989937845363694926338867438467719494737736691982887679213258557738473115767747841794366235549246446266152216389995341496379992792863324171594658814284589528645662116565799914941715227857769548836199334363223146897931912692875219732542912524326926328462676929513823676779222734289168675292361274876358527432262941837733773478633333912616352913533931294456891383511991515592777444442989271525113676128793679261584777141792887943468289761288865167511754467512588338124286473963335718387344599624547388642712561542626377184713891919739922873845767147281441568415884872465141241991283612136554991864688813358596198416284996964619144726585632525433762189752482925988936162945923748374223521514348359821862113983621916867315875415916359255853547932746448196144173281646763934796434112538344531993124725276738482721534437679123995333343119346531129847653154295661691943896422269174229463635936961915215817828947314251831749847179175869351964394568676428725587128648819816586267678345766685498952984769837555491664726347315979259982622411945466669677429417526711439683143916988257611951323978238457234499299624829224492666583531914135993375582391785724515432478211342235723292191937124738997276262967985291772596128745317116838917614996729115464591126985748733254849138472358524662411887979277559346813476192255994918243119125251155535963424418934351751212694449556232343753432361718865456963823744238846334172137715942257449442463691397883599436325683976539122136284113535429933753672738613949199458885427191631964683157833333465469654637344438213168576171935529544247464359232662816599734694329385794512572354294328578656735899224815984419264469885113519848237828855367971446292396173394955539991195763281977988359718867386392732136629941129544565673942961694936285216424326728386916696382888722622158247517397519729546721936414253244261129317591577367553557937917417559696949472475433516743417828826492149269418124274445158885575616575271319928231115254485222349725546399858533955371619515739495891335969277474815236613461788462289142273394682339684891532132368458236299118513992799629191549596477337665132468696216919118495186776923628654148572373371832339515221396224668632633861768322471647832538128155296664452588191214741568637922384182114663525256157253573514379399337295538779153826276376339653254444317187532126567387925313895882521327718333487746829313836697328486289136959892149362313164129397663531489455826398438118699396666232246368131874414913922492589465883677734267921426121994729915295921131212142691727954379427973695916326233812392611637841373177457177781754213184423599894375718122822814987222958862378924875695219973616141719134433413557872251416973776934916159215377957753158488472376836462112632446131335116996752172973254553164798762623759328454745895298126124367222817675172859342248464296378943544999383598179453729761955312647182522623385523936323933161211479166726825115422749262836511362149548162427213725824447319237357215691264948455795516274728325719496941668795796615389782475635464259954414635719288384748844671579312732216971364112276455755413186683771127915866593817727497679716653725459352392598115676151462145325827239259294493676762255334116643793352412277557644499193321283393475863566763122571437544666411391786439387158978181512249146264697165428973375282118346651361558334445573241138826619429943939231559443592349369495948432375994333154176113746927491232767873951798554181866275434436727537787762474612269961873913822697626492387692249291394969357931477266669188563856647238944937172732118883459661628564931259625278229767871346827551962225369599622151323835451223268852627696243988964678892381423791337338239279419157678657519651897542181641612659619184268821491187664641737743265748694282486938873357211276471555775495436672882397911172997563261739653725641918485639411756714455649952849629929759729165495561865165548519863363744319537998616728657818541534793493668715792668749172643152199111394145999626314145737979842554742825864331958314733996135393942165169475376893335754522381513841429515669844355981427778321534488764148561273552487965851888636753438816223496291216881333452782415251624877996199862541855319939292191942811325292841537191465475179122561113959929223171219765226325932632492663513349944679743537151221119796164372311539162575649543934597483518725557169917752179648342728467654695723335281632596239821331625662838537282199125813669929925478335586294314982984878656555744749521791813663836674524994522871411174792892439889868915757491522111322463354781697939644363111451332628462674392832996789134447796676737795261786548827634154615281682967713222246412365886615949712653198668885556313911714724859626985347442458488566521345745212398627823776292777362386577548976678644355938689326947117565294284291154881837516431526461687514219451446876352365387228621771813486764127744455941376688421536669376775369682463739612616479782849423667353139389682651538566679211372251329395528518458813637967142222787419231992749563657335979541417597267321264383951332935934524169113279421711174523792581479169128953115447924696879655566624117114344849172654622133174831553489475768511363213932771181981935153916446967129191179983478324998211736862211114229547411235622133793874428991484711566929927392326389512466238456166655638493859462991125886421472891183191388778319649182213291114292454812957749493524892658633256432354557857121228282669181624894315744332297939412121624571797699895533113173726486991958616661286529467559178764822991972841161321845124539824654827517156666662146419672512429838617661781433529745753525517473943914176251514728855259942575539674343955474296958328461882141632682123469417523978852893971751193913644997766625486999652475316561243916361357998117933437793811864297938561112657217445332796398442258194537491947173661152659419944491417352869876251859384616982665362778764967996971416474794798177786649261975853477239595759817157869947571585913196132976421221156117842825739814994222789488193119433918525467597379212339437864574361181725495153978844333578991977231667359968419644244439868616536127452698948621266335168396423773944272366331485325149914524162392959734263498425728269764528742381962281762241185139355493286488112917542983413929341976918126911598966267835427274624681226289643552346842174491685973643922642363619736234154119187333889539156715479489986413378941148351542196513679117139878694625673645622854985316621127755412727266454617688537462865422199512937628436154949396299897577788587328666511136426718513712982876744961961166697172622455755979266199176452226174926543513156679168742138979547932628278514925221114949723647128353924671722289322386967194484323573161742857917965456789113693868639424537541517112334656934769964586762895326261952793921614154316577211971883535732371553366124961278287489629766867717745943215825172245942978953217555939911316521745671865713253873751836345549636657569189989399119794873139817821835354864357324197328429736898229344138722878169633289387593165563255267435697394493973272672129629897296118522989791427234352917167239519452815583959177242725435144349997768836369411561661236315634269361786388432365551629181577253259246612612532845277215769739218416731449256184641212373466912555522135285856756345711812915855628692889658137451197211773133952266175221447363297355476554175375314553676444742898537528385738358712751229551525418356491584644435995851177164237474429891673419611574817335415162155618292226639968485896621652647655187175749183149322331516275362289343693595683386371427127153162579435419372167941424241113933142916988343249749461252896942756517949161933267238283583454888417253234454582279919278661176482453364535743321999116212456244261251415282881571747573931832981216976265773952433282244468149137186463427711785986381374595584822346414662256233235216853234541467779643455724564817765887922246732167521582952613262381876172836114357384559535972615553312518198472733467828771273791148118923989321232219928215992554965145771275798569959285923176678232612494345187849273387188283958927926984284333724253451317614273615773842334387181595986377782235848484355746647116464884412272268416211253325517251535536381391476833526557343789667567521516773764593347851794171995343925448459181132518593455858313777585498612541892737146219485466796322144566984733524461778423228637664593426366934645183839614657156544969682253873641788267254785257629675833684345527693119443448581162615659344328429513638625897268617959879212371551917961264619462656799888522142321245195761698144514926161581783518459246134676811546622835938384686543197634113533933688283992432465284674859782448487948747845544135528358235669323411474811328369663157494551346224859162966913745315885637637523799317297315539859193796721559534181312473438538145769679388436436845832972159345343153263378624524487542217494133299447369916986743426837944832277611959815117645676563442942552452468821754928379258489137476821374168371865194419649736441864479343325143887163965975453631945321847135833567274864287483133171614577864527194191133114664991521953152341291573551645664841549897972244119354121679117299415213311316584768632861133366493832264855674452268711348314539763997166429462383683986335584992539573534974374848852211632977774468324314957346179424322937163246544477671999646518732247412267918763799616965721842474446412572263167358254981181952118172276415127713126381216935894225934392643225698428253336527494291153199664423941628135213284387334775197161311124628214971461336578223254269686272149724582871816832561529873594238246287587814472617467234424449571956779942334978855281248921442963857852965571931568844254914975518923131323736199735563748492554681211712417716269551133345453542152852257351427641852482695553446623619472145593389315848775215583427767732345288296355725435478381583484182153889951749374794727564121517944656959436281843997378644517954398714359824299132464862288474747954167888542424268183281817436158587349862562148324942733687948219315554866693247582768737392158394337883216111455251581583334118231797946519389845362213731637415157558857811269723384337251218919325623311443913461293663165889691759778755741167746968212854251523229436138331378585445398147942719991216321673647455142549576194116928524617917136841677734963762268595834735269351712531551411127445638743845541261255472464171954324132654262239921753436171289414364674944356317599698528291293912376797454198374355979776211467225517976442144649468181625295483624819768667482441958456443288317335497591931337498713161975879788165812317226621124259756572264798175754611982584354525199792586689421423218732235886199994398946489696378949822824727163793562917494354172834624711196436696332489342672777229174946152866745335597329879431672572663615424223245761345975282965859799437957443386383133632718447477576979366253343679943553656535777939171655915115962852757779819417254149322582167376885561393957192752119896432545365799221411117912866111316161619273996293514739395844869641978116153141888298581252469231249837733347623354586274151411642458589889767826545476363278335661112229382668215411942884675369348123319763816535368915754767833739345343192641231691182247419532269318173257695584432371613528146991557328675553619274731229734493932872473794193483362356941715814915469733368873499193596568291213181218413935464866255877771245989655578796425944473959691718344358599471159335198973666766315261462111122267922693979416545528195994562197159663654253138518628366897515224743637857311765325475882618968629616169828254193613321269796553972912456783115969799386771135974526281637419982891391213391387189767619727857496246754162482242277258793234429934329217746188636423472927546472944256317227765884268275665443115927828699144696689298662446568458133411811114957492162132773591152833721992375467158252528656876844125867518794475156659354333737712739479214439537887965326647784715535492394533979494547465954827224492851245379483787662741242789886284312342182234115324469137816428338762891132263255128836199967488911163627573651513175642227212541513848178793961455996834247943144635596172227781121784224626492463692976617994424614926893364727513611822716271867329922365923155428111365193139415873273318589133255767118195241584927183476841345139497815419518441293939749155343877995549762768879921323544616611893556722593337219318723752465224754522751564397234452557768118654559868579636315741461956265451692889526179331936344775543831392554192555416317357971822445585475926669442513654452142729735231965431154572327162628849981814772287214161896862769752914236962153138124616233899269994467527651613257514112468534365378542519859657745425649652593567888978727886499766855868189979111569331811387126454861393768114996369932994691434129719592612697427137229115532221457274472589361991595233116848213797931161637287389124153928137642966354298394719791945194592661223443148234334488674472138263787626746425635489195443717737172116553177153456829239913857771599815919927193633175125661798338578681276415243267344295145528511775185888647431375282412915219812239496292141366873853429381637312144961131716641519634177244994772625166825583998197223239489154425519649693829654838348662166564737996925594631817421786798899151995823119614718128314515572483459525831989544177382147563238427876233466985426823924818774632983233143364478677245354527446453424555244437433157613927192315198129657653454885864231579741269529416111827686444334655599114881686137774951366727618858513828371418862157926537532792644741458923723285715983546875741525627471445957182361829543573916197184515142923673899738665827335171752169276967669456214831932227825746149624622791376519984318326391684427991252312442871536342221931384193999945892628974526527913982291337489665427366237566423422667412715393553622615631239695727657443735346844527346772172365674462562228976675898318349314895458194119173523733798398372113519658612395274634232642666766669249454129253658674378741945963855178652549116594793989286633431878222922176873257557627284393138579456761976875688174384742986996712765879226953953679947816234949181637662768759935812315864585224326722576411527116627499886477142239191136958624339264235529764562219616723326879733359176346716755259177562786869193968481278252664645844489329938549386387341893558391533385863983316299542723629782794264358555651958581973652243431848521372475188188392117449136817931657976146716634573889258344476253441397632923991791221258111362729698533218627625759444845287186536229277338231339619364535861488381153945559569913528598432478831552177513374467562229514382188464269241511772575513188221455571428924912741674655123154959597364231922539868116894739691787816843567541728931483747164334744176738337683314596315187643175628343626455119494968677138953884915537119791588489758181643678745583698295225629897262578169496532197419175489425928364475916444623666857957565459792128911575928359961175234992271414268345492213534266195955617765619221879918767119166598893642394213197187783898369379345271477277395957141499292392595753319794352249568649923641911622124438444479264926913772929113633814369714225176313319425823679421425775672161631414444771471934516271979171666772912553128374534887666225448333539623515337377665323317647959691739559628866353429874564364981752116569233515752737278367814213651511783121691325629568989189147467433251244554347962511596512419994163198488213449445363693992222363256675172968399746964156818963868228631485183137138127931133393753214924957669426341193339641612494135465243113266276449538793841717481163696928859121151582365499135836998455517144319281919954431925877741426112442143183611961733734489261566238351751596382684315253526666867713629469391781963763316849112986227782214958714464339131353782264292552674488443638732164322861282924499299928526669783343435443383755639836419986628539925759673944324631841381873188926112176541436775263225563722592225357257652382838741581923371315443255446975218169212963545599851765792911857516593165231887666443217561562885552638129287839192248992979898538369796315562847357129556455944456865193575156327459419457753915696179533495769572531666841142349516425739921369916952177521515278866972146533922345252746313548212599272117299291643759332358745434518691645376146358758274327549325326255421231979848731161852444313545113283287429429721933399957648933613238333815324634743511623925313283117522365766946657867612684511692133682675552251573438918978385561219941691487198189415331966326536254553559323211365774166241921472211443479286314184575887459728152817314241151692675121564184669318667282991686385513681965242411245449528631995662924474262931221223525423983983845763772726871491918793879241656399134393228764896331929946922175225988526822733111299314798535168477252646146673924315495358297462369676124821433424216354176869271948465125451631527416439184479772628215243562291984252759864414698124848149416518473583473777817339419355147146762513563152527317327345527576939621996675173398714331577552122556217789879228372231129645133922658466917159914121464713226555884281127857361169547437826471554499554328247668596975211662831765196689149952745368422312446515833823853418452119112743979389732311763756992282843449344953751233779251414711143233223395321983377812755252917215125562815916258563512174769342491636635275653481957351112163322274191481717283132222362813652892223635749512751152934115151166614513763862121124615366413118863394567451532941252249116881822243848571314291136471447388424115955429353985899359392919756164473275887856456888345842474243652752553854985269949613461539651366938576268924671419589231896723882311821891245373421559953857668196351694881891892434413345187984374475748898233211142542742983337912914567323554239994591651932981644681845164526434434985533732579938864988797437967983455297142721631648946668423292198154617277883198659266253722829969484192215613479662613744179399125922279885137252318424732655781353223969497172861185142344429427435865155784224196268172833223172653686769191113773626817857488912741542442625653759932127879624512839692181291288427213653229824755932887128842819561367417226612193825532255612661576842727851763865711866852966225322994113372255443248324493273635661436142239682568962437673366563435451129437688112682687683527239723493388753893971727222112167326689476536424817629636223242751245856513124724822442663229323833513859435513563863333333389625119411571691349188448459667147969897139849179245939186348991444441638467426951926319283492686575215234542977561712785863334424736371783731143392779674739959519152426514664348565419639191372969525537668282964274843427497432389491582396417959526967374715783539993236264551193446495164824766613782517267423937769131414672271746321592345223352622232159682776434155152133346121659142354799343831871171335545974943661555581796782161913221998659746376165775476782223668521852516225962822283825376326998993251911826725231977434885942626811643713166954821555247781351929186276572858624386522441169462938111245165321472813723241396644566517773935914337382747947482891349219583338152984582465915546349617967963622273726918149763363634672374486837724764923691954158641845686836345859736344245813726528912532973811117567293815152858826121481141515468791779447921957281364184358474484562973782565265225241268433396211575617212633374572588571921248191712482398316938852189726448131596977691713177137853815772711882223727374156195764246168621293956261559512782541188461798178384817893637193444799256563665614169879587247781679123727413132385451429734139764422617422657231925595667429425443282592634774355819425869163465795631172569561934532372324135618442952324541161259912236933826224352382479524816338416723399974862829145212557631735916473748836823378443811171946291721981724164475245253126351838282473964928539299119641352877386542437249699981922241147639372781349925935539779298768674134623197376413371839797216949514331165253122232593734341645862897923754139868539375284222456817275814666494388614611281882162486915324165426159611696727323178712453932639444153271573676537748451722548376828917739364937846129246319941946417775572189848744799814362114737329432892874526918848511285457773822694959315972994745256521183328412434825323265419573297979943775537557512534933944275797934131616275134357255579426569635453145254557831781826753562544574932578697276672469234952166428885796777464431913426841614297864913776911153867437778538415363612465863875634334658351423113191391858872193143931313479528296432834476275731188157786233781163653161293584196411268493542596581421949881923467231126865992339761271752337171269613133729443255448861217143276879175459726772229413517691591325448263637129122384752762888149782523975934629515591511815382417317448298592574555932812228581213932984482194169285929321836571284133426156378727541924732918636146363494741499331961368597326264781888152634152213592152583892556196116336998782179551169841251244854158997228646348382385618856665989334734893515493964662711484616236383452241822696982573642311217789639737596538879325458531465585822274166873185628975943344754894854338743189258721128216953783155587935694747349451563936169674765424315288964735428321424464676527457454767726618426446694552249456132165536338945673135771381186983498386682734287861311481696928691725713996888327249159219114359733849378413766266155486465962876824848299113229535322318953649744575538241224963152863825781161316264671616333511519512751712665247194189551549569211837243156212645958971391617636677415229539511293425873562496943941429567399574921399425672534143983795293882854472177929126722665597621655738156938365126589982656762432469722567422552344235171916812452492689341433333954734972232435793621249182686842881628939439222812169781392661783415144416971383198649919764955932931824498926959666869759519626312211767746772496669692441149679814718757126637738548416569138429179276447317241527915613458935195744943898216451997669771455578263493191636536537547829289573632429781335732236724912234368216367589392931998375314276178247929695259689227123924263736921174259132994671321793745582937269723181487631133792317733151548212363154297118262281986329178831995946491421446313874356696445262474555623997271666658419364958621455873543359895138755165186542621119686316954215476348157667425128231322459585979431427854131975927789132998959131133627339733238128195172581286213295589191326633364945434411726534693572243278814575396273268279489852586318193344971758231186728247671444639223439251496216998797352186322127477338482668461893942418928738918585326669323168487382723742253432811333648211624613535165354567131113867356781357626486552944476542333967883495274171838547493288358434991775839767819654135177543727715872532111228321615665161661396624819558933936781661885653799139949894247228257313389375761669936117117626845824423515429149558749327351135561427545354656277338977434983146126336942766522522418386673565434242564971814247868921568381176224125228161431281119133657425331673922585792525382866969643918398481971497495643625586332915459328155215336828642534891133561736551857921777725976939486641124131686722715316622728391431287232784172354989929119765649999576739763368344871897579847291833147928282197418945553351946313751151514973225791331455341445119325564645174179532135486114246885534172254429227949332385691982625851668168195514369118445466136973442171431994386182575673486318921866496977138691822844133726711584129215785443714123432674677215444328838234884331271518137559451248327124324892177658631636526483747682289349995887421285754998924593278366365355111523288387792321456995632382346687988294523911336796393926998817882193942112711433976541729553499332894676613236864956965233147574214734679689184722714431187859667596377831392524638677117873542577667124494628327732239855357485428192326386727363929438322542928813285568749489175894247345271642169787978394199935562184161194857259347444193323891941371847245619418725322169131762598962148357298245817987941428479699823471196227119889756934591686685422954854336152842736114946913572863723732412583563238337993693414262864185987985462265348236264374429133497867954275459761186316512145214626962391243933936842286621143545112863177412828313947116617856495991957388934784254835964352339329265343857499747644657978312367954293665962357344442236257327763311254378193261512614346458281679859266668727146276841416662913625352496913637118977553811196521988173531751675431327935565751393521487566421497725122451123923923754811247587982178294773282387314233327623224914839772234142458381563979793174861239643457291793117383135677963468767232715946249872375458681354444728267463247866946146152129216139121378692791156261566243774811537461577396861152131959268522585863738553499173124844294736169465753935111946336381794832454871666256836188921943267529113124372215671468114686295861879463675655138374787176145126476162393238313585416584492324568319279536949473374537664451724511723972323234457927149936957522611167769739927468665462978749412552427921162699914776142225414216196739911833183437554463696785345376267847116342388724359998858985798567674965695978149845435231758917398258634243636583565322773265681556387232253564351113445914789428229715683588363214985946131962191266895558837952521192711382881774943868276495215331795979225229435432684426144532339531921785966486271441444843429111656241831997951331315445823736891946559257667568151796622281219911711256142968982226154225687511658488213119756898513221673428984822795889611847487279163685161531512352583624893143587373238216635777459849961435871798435918322986673664955995713664965821361918843955168911141114625367917662363732428746759811792694523167756886658934873382515676864121637154861432963818915974746628986183975861167434134445578351547131931724816633736777199875818437413972162916855621928582171965917884616766849989147256852931241786978482128549563163231288826749966629945164236872812828816922992649947145491236638798825427746263639794966373187377552376738875727272311347421958254519374845698413212771567236576692629213595343179778219232176972466122177995996141598538283948747627741768423692565354281521392922167665348237267345983415541363132513451639335682947929462873792284246332314238364289343341653227462146884552594742748425923123943261829795123428781142841587744962573152613881139834985974718637332757127352261154862714172295417678492284357994979896244159647445244331229525235716596364468392479771257873274133388567633795255296353995472762157153153373599494236849551925623516323928686764458684195954219524641572226512969189359758169712534138698314511859663653488742314711986152269925496769712315831169491916978615996821711549384749795913417153952878698934415651474329223475274852228843148163835447337491526599811656365939767871322144333967811888373831771188724767217213466247539692218472413996882838537159788795574375961188916371983476363457733912855484659893626257368599542577961329432348947326431681528435316322813927317937868362419747487648935221319513864416334352991743951258319944839321549834969575796615165655843569326864315454813249584265527212621941381314432195522237169889629761881666318563278161422156563337173889271991637469736722538746227163615417732853217111833492432121137279996598212846919919854115746447231887484947451736533955196593179989981382197865521589735681838525151967327993617155354913249344786177334428181794185394164716861895948382682357993879552718325561399434278325921322529841116315719416197631444852948468133587128625832833696858766825423474368971383922399159188268244826567658379946213492296125234973477126732922244912281384454652219834354593912815631873844623785337583345362619855713935718512159771575286957148172628457232894387279927519114433688938276924883395625958571359647267843292646551296721554298232522499166218955813818499281398517624156292191876448281283452653923695184344214156658137956226957118292956365336524163164481144328638224757384444531289973616861624982428719928281229583349252118596737525416184795788959555128449911615944199813924616754215626523544639244389225368314932499275155149211239713448194446756856914147231139377896421669946646436668396838662836135161778276332143282125262381694354739848922238165846586114878984942224364544172441186924263531147695729532335859443851275463678915263277526951258135943421433652449421914846153476117491913154631533942767613834463984991294362935356332266788581739977435875597377162319236347676384631911429313397341895712844467551132783158561333312274587214314419814574986268442877381717414429899266965935694599287948947386112159138177643687327332227634357221437222813573475685498683591562828566624639188232959624227633261854688131313611676322254842732989483852571513657837216121465136743747374154598729452263268926699311424521571492997312139349731546222645491854947111852341353773399596112381981747391638712194699377454164539354863955489882749731691689914264482141793157486415566884821979423818396292573661564152487298367187542534582225332464896146233382335387928226383386161734252543279379795239366716711521465618395113354692472283259349496336259565378726273366494641545914481348476338377474673129233326531715893411271231169371632323896534689431643314173145318131619279751271923444661337556546317679523461824215429841458242291199223867481291427761182262743767773814726315813128391272926211359498491522265338423489716456337311953192994897666422597668255627816116261756941467826977664481387293785453184623949576323123337164789452498513998137284892744469939355738494193419173171447788649458417932961659662445735911395515876632554258598164222442166738181593434913715854752262956164676915473418522785173527265386778815585565838518572456336462234412475997729216883465372257975472271112161284257132674165426658817817621492317593866373711581536195219842665124248799741464217714111291414397741855954367263836614212691132187369869326236967115369188981258492275775663757668124243496821496252325752348712195991372128337765331966421743293915569315375126882232818252394915471132387846294778793383979816166451573222448133565492929196415172681233438288423528424628717447492225791514246679462399598688344612416313555634216441642143481987175652294862263263176469155763545991643976637839979357119138372765179458867922215165757912686275573124871793519941224295287693536964356612513784682436494545644981174253941135317573144665643762856721634568729162393665565373431438725472532644634931146955112234297437432351527947178449419333218392134671923267723625748921339727311872557929331638938641263282976483877313394279962115485949659673364466395568941488441972728428773655829562794531345244756242587634196479453366812779718433852816911562296598767194992164219392418185155463946744291773669232977661589792717927166156182812712886417951924279545741291949464881492745445569527925141125814982992691623551427981811221591792542176694951123461646159858373444893628993499323364528922353941147144278711237879152347986314444535292563629232236452765142467928175816571597472289349588896565658686381391543914734277897983293121628917381313999636176718788717296726152613792661617244552128985699534518621711363898616144828193466159135974874446491144511552479584216631415986883842974374782267189258159625782419512625253354726256551853512279179719819362314999932736414584542494491691466849211213363237221367941245143482613782879733969421514311111975342338553156227771349527943115495944931551864929898565727396236541474329281142657926957621569812963439655741394439323373176646796324689357264672796831736214985535755137953683398672633925983671435454143187599869484984615877258183983137569721332842145856313999925426295125382973246352669379668261941833591142293661439136134942387262819144931825993781786692874749245953341411122943682199589271993132811561214514139649294715754454837145259715178415815356524969399349588779887984364771529129179149559124798942211687816275585524517336531129619757869796526292339155261723916316293834469451543478582417175644734342983227861515151559992782538482664245573165254835355174793251643389944925394122155618445113828443275577263472895491217315228248136944726912482363469264546765318945762675226754752624892477723946652361297619884472834215445529119126659979693281412141343192378844432281725748219284524485521229942372885548511151514938219258312777921931243849791643476152484884891751858332414843639398863478328279521362463227955839754724424121675412148397322759955493134484993323883229246992297747681314613454821333619669523124924791541143977426314126156166953957621224922655457166934414957283498972199791613665642812537663135924569911294998427419511135835447482828235245543978269321434853843746955157627171823585383462478795956944735948883228641339168392227186129887984442875292162363441179178226742533363631496882241944537455221336413718155145288942913437769939946941323966958291916547482213885327994855213261648495186167518345355388214136473428774917939573836913395595233768341368968144619713864482222574299435786416161296125137215345714249742133484732451535567442396827313988783789767743893251293579172356837483318911459218274452519237273179999948937919334961968847964292369851131569754813424123357947241794827645475836968554862949799742291518333431698638281957952618728889638327617415681131349253575313999481478644275143684744279913334894362685771415398481929123235114737379423249394183758392357211552686238864577882847252497623675532816267413445699947624946499762447296149951411663539798431352431517485215426417411933292663567495814342722242121239281637854396161895924815698546369489125632355747277396237569392511556972782539623212953231899713251129249255745773141253721687324223287332677894666884364463463648845296644527643822375374236681825279214838539426395866454883643147364768535412644988542623151473327132441536551965233888973626912824497271623488164995914643769233233314866355239318327652912689388247324193413221486122443144365188627542325766537599182789281625394336482918145869219354886216438551356765158559675918957916699226133741795941811739549517939363489214776655789256218983263349828473121147119162362294396375934154542523277681832646645135268266219141197227255662754383673166376178851958326734379385777981964637878125726827174514112162284488896952656522639219934129112242294627586238431275538767257354479992652415175672232434131255679246271632278299558439522337819263682233243258297352697875975769941442259564694386553179326493952878999665499816562759766972744276722158751517983813549615284377244632417211791856824315482862124226516919749667445314774976717488663833689415755362491669445988127233149617189133216234372622114111333125754229962595262186833458141736429286123366783991473166876733381444344297856154261542197997763789213819523856266549187331574861958562223523486994252385966715252695848841763633343133351855661841517945421632275599129314348432472981179884575396342629826125336422819351554243393427262276185929536122586926976381999149954692728137844726931473962534913564965287467188485123457934269631371528467336166538566172122892683321834219719433121562691189154761824894299733851128684643436623124518835415947235499562411584119791731638729796684751992615529697844286522298424121242985714382146741265759752436883717996644519734973731296372586965225159912126622262669182263599541278879861329395948613955866582446973447847164646615892562826229297994292571542695224592837651442616786833379443818398763152275715714553395615327895921268556876112236295361558132982922845946621419693446513587688254817318623942133837144511165785983865959422486987893344328913726343499961195625965711673611214242169878231648744378233312711981459675215527129926911242383175592769822928327119534352627828974143968577284881725151547456364464122388496411254721715534739643422496645947492533749367968431674547883836432111429931929867138727914943582689874883198533667251511541826918335883846685535419425152345353399122216832839255651467557546568356842889115112541939471593411225889549559925811862266257236327428262721642964347796193571833454296276261828425977967113238413827454572582818967341317559849235762355643528762638966665118156452251332795967248914127491449321621994679738415512314617416765916358238759158352988136797435374682343875356881712783646725612114946677521796178643257733687434863639956399338918172281831654596279242691499388271929114194238481394794754743188935719136723922413894661349487562666828622716945799522517563796885948693112799252158773218554815379186912251946684458294656373219352977777127199479593739784391345852216959492494576872513998645433152986911114323255394491219589594658897342369157449894549995463317162681141477933183825449842564817345712224436924283112582578563716684218678259361232333816946235373327334967882745241962999794422165335553868634621131966139581927575711218658134162777651888285433584989187353364792676185938961417157472482777154622114516431182527564421965834659935613526116954946933418398279225153878273594878492472553952229949895856386116225129296838213382888662783365914939574623373985332751569639251333791136197823321998713226789346395183191489147315648692158193479921162342281828782993437196518729396185334688752555115978346193861958626821615434174583576961492948995231414175311512914592912632388196421828839572275211191955952229746253176524189723975452224233721772954315485424879832417269983659197111638176674485789934682299148247891554144165961893253518189889128475793981678775369438399281452911379825822432353636742624945824312943674165251398252592532782295526315257984643921132716779955372149436226145566141962522283651454589287591141753149722134813948821654752361366699354643349922865411664765216942369289168221626865557795694785547472336999855767282866232552365856169176825146638196528658221747663515155558954567496355927117966292228482533775721899672839831137383933891881588145692547819127327127519975911323779348183223761113149894431527322326411825282513752496137862476343854815511964935861784763864637373133594838663165758673339895852571949795894843625722797986691643885364296992982279482534918372696575321441796615135586461232741144996374317556513438572927662755139855457644715286446988211491215144733112998896569116319767531275791453827331359135164194542198992552644641122599689213957576651452443153273334447563275873135686333311957941989932517452774457527812353364226375575221989862376989653295288716257559846524722191951694246796549598814733694642878542118114913783352425818429526251139377335122572763535468113547884373997852595537134465557786476525241629137291229142317892254944575826651922591956184697776911587282796526735432431788567922444226116212953369582837664731159135952627987444912118544969639873367951296797571962166534226124416618474479124746732776482678857468719267239997339235397744399823143976165584564633954494469886148857918685797783823819977449553648736291483692565253824452485323851235858193254828414695395193132791388826478399926972583853963917952855651935657398749253585633536891488311144333812176787241768251593554555465492814934536516167321137365861517537568493994191144541863854821459437158986416769645949628852513627355356156553367198662448436417742595934788715922132959517629982936276483351677333136513374953984878139194998597197746935384122766346647237383875568589453984324121271954911315239216844922644229612391548795674374933348729997413548361914362421111464994175368869152195167461298214191565582442221931858151229194669571775926148466457924192492558194873399677283573299168234668866373472953929897698626752196425511175698273595957432961488352933146165737949598146544252651634363377822229735344381784135214338666185455185581235938174853521911949312142672378258727229661625672146822621854594581174348812711754762383934493496195312211711399896131471526483716534416133124364678452165917214437334589147171492591123564872341398715126793689948557278758923322961846957127292478754462262523894984536748837446935572228327173584468442346332425253612626314421944298798936279336693395769511538821817281273674158211193855577999826496943841731816157386172396541188895884445235158349647541332822834184231777641342957111686176252455748543563428692118316611112557411225813469932114547546511255417153769324948843971786625644437976557385996388436126114397318542128933883432396777986144332149874158145512881344455523531916355433752195696158122786343723559112193813176635757657216981558171725637521949292396436581755125953311718144122933824615163613939535971187388123776325947734414224746885724152178854343344153455394317359233636737774536348431149184657127782112157217123735942537952422936914116963286933239565771263694546144761264445797274621678966374323588469895989962923782872953181825374546723623175899394796448838351824271539627523769952812415996841936266344422563744494178238326433637585441213522759636462835667624389651741176838476574324391116193578187357141889673714279868123424319686597668853485798128439619234449397547847745528294849315885837481622515123471473843519388713516866729595764384933133221972653527255547271568281795995133753595253351934912369783719515673245326866155411219981999651913841683216537376289445499234586933245395546491777363299284941264552486896636818343959172131734331785297852192583998427953812144692446573266814745126451557761468265171447116183596548676586161262295622253821565825796447366127381355676483975131428161413322352111417233452843484316797984265553629514266466786313126841413193677661948919149384356232533117129518665721374183123544966281575936113562161661655574616832336221794451754225194983119352571523243852664429974953737874141333568714331841446539692517815242461263249394951195373566421251744299322823715377971522873893597691912932935591124825151399752879123523953839277894614848144886324159962949966264724776971662534129656776387292732419671784934357853914629345558773388528176666916214719811733389527528413374968391465123417683216981387277652765967516473781697832477849245894671574625751118776673755192616616179792995342114933938646284293118527627436236574143511514626769433814784845131695193613672934979162982729913443389166435913427176314731996334733131719152115219474198411158518613242532511125357763741729533191581679194494293425486197192497859123597834522251741494152178414418165756688637523884684165845778879891149173435168436361268975886869747988619271744753151664354346992359476567243563559398765664183365671598795999331842564994738728743921467183725611546934356562977336316925786151935182662875173632218634166569921496492762656218729144361497198972828725562119146133674518113362748592837588123175699468713472163271951527998672999914818122537231712761147831734919729944997989326167487115253189348974142182995112999576181281153214443762811157179764248991267392494412729382337789234561957433367296383951139241771251683171555599592321824513893965718748643623191457191658671685334685245266649522726437983157273766913631236748587925478829123571558393192227812211186365196195826381868956531749487685929266839724115234695833516916222367841243179285856242168292588498911832828519356613339953917519291765734965619437249329888392983566298895832927722195929169259856341361785931548169355689354596931859714943321253871839523127241152644257957778779216925785576211972772851953663642432283612956893237239187594235823266921445728897988594524656752821397163523339247318339923518818818685858167286936813528231723491545964961931532214693131322275475125632862482193561685477664644485693373249246156514377484251997525439376369722717291395733175614424694451549698546326527725237613476938922662559321411366849696623138135665645556534836411315791332542625593918638989418794722922953142547675984351593762241699278692737812928311127942883679643592179932745286546156962192216338542755897488111787324486311472926181131442374225531977147935897486631979967433541912988813385365318168585239641449512825273527923442286566496257677392459938955362518397754873178789799831721444566542736533749821117423374548349277789651943468585661963925487549151493226737554767765297522216769838684252751454972523137795615635915259158993467358256466524847523386828686254819532493653442757568345151542693518527824531385554598685262891529793115329472896769294267747536178574988599461176649794953839777276781923613892414674554984288113316714929299341271616242566536729263459428766772186531255415665915534242378997191246183535953136291212661453218917574363115154615293121399584352185199763438214641321324345835928436939647613993519995928188143542459399573667263226612521779488292688916686844129212513991726494525396815269366943361199869647431774663222563422311675146465493275266641314762685144828689236216351549778144628457834557887753666269144397818121773229267918378263222932248145547998733474266383964648616521966812649927345521131186759127965985638777575866265712718546257352493839511735829799792961682218513179589163292795722251439939534913262519573671946745955575256171228227463246584798783849847393435981634136225846571174658926798261183647875214516692166561115525737612399571513541181218667749593268571239833263363133614247813933366555327689869959547779882252578298528941575122278448155723364649274272542425674879297585197146926652715129712231173581374633398557477564955468954798119799929627493698732458524241944916971118881714117813864278569498896373323462276832171474486699361564925696856116392246638324961512414247458628397252629741491267712923917564779489341441177331744113217926843675976438692583835958569641533638992523512474426546661361989863828399215418499263479897173859474141155988531487154254221187629392592551561399822378371238738931349584695912517813162383175316328151266264511247414884464593147746915124215159894729182551585516772111378597264168859899751349663413964228581182789131725113151745725343924529127862957867582569625662923148362377373713592347113261282666486871152886278546679912683284372635663812978316488277611357675216771522918187914155616542862768286462277634283435876251986454167387265911462363827228791159943288661254246918918152918618747812528154259333523396537982146213651965916229442272853462866494963846637818833356378789392141614778137717179924644149917421375311761451645458845354152585662785123915659941145823183493449469996889247359739391734844984669332921145646391417499635769549572279765658259146274152885931226244547291428761181387889956776655226963335684429327157683421924219123681874427265285258891911679445248568364676676911612676526532756442174192696169938583354784496984537688261628386426186539893183399841586967332624492116282232236391146974424452834131353786177747819343452712835249498682165196914316546152783163134433782193852555354618591859354647792747125162751217866782263523172152887468219113222374181147287981515197247497212537829376211647562345619921935536776788722771144928828461461617332737857469444415998763996856952827277694216174477898879458195511117586329559225835612965531291994233296525242284947114148269366973126597611142776289366421611149649294177872461473245213673778519282858454433646186874886295691197368744553558142727183129232661643672383412718795346381271752865788887768399611936743745939754933439512369911371232144756721547472957627456653453299297911759414522682549713684946664124854465264632614431853189443123128813182334288598749357832747144227966219187397438875584381182351395665942566661119111442974315622342749237946693851375214268432175757259757319927989126248851299557426678626619999939791462923535514942771149673185414259925227772957597275112568885565747587669336581741851755241737523179863673838461444467176235377671393279548328176979537925485438761845171648167959752397169443421599445559241532382498445111889212485878934589147241122527832264439554557962625453435232296882297955398365572386544225332973873624335142214227948559225117547638647828226561265219765492226633243799443143642647926411842827288346852935753446518245914543262866224787771259846511157138997912883412113466998345937637638118313435739145789959917592168432774545413268832314655251718426181926639442748197714339483732323112471169157913199738258248239324146675677731671989434543265811913489516649636945878259926954491142726683686993178382842352168494542241493863799195267362263576973565996637869854197988788555336314369481471762279582452759826623715145772926714447965525878735849111579334436124139533157572812561343121393445112124369264296911619941882945683777471775325233695443895799171368242114999771651813284615718394961696939433936789159861699646795632825731582542154619475116287244871629788758299936182733977454855879593946344844884551581972464731119755198124498444554443224374858972222621751938276129134395798325192122999361942297917633594792517714278761916899973794829795891329778247348691419468398663121752543715128661894337616969538749145131559423629836111813399553121588543663239187998266227317824121186588328973959395416141131512121528773545282693491658596571531589669457933212763549223373723747836349124559334153877467191416972158615143848936615187754543146993897411993431152375794184274698751443989117747161232485827348138425452345937944952388699922968179273591261639132433873265991226911141489765835662913973634732541351856748399475413334919453175968432999239853611515154428561239791952424212844459346661696237167716466638931298131242855768666228749631263149333192221152732386676667343122798966487222276894667377245884139396399543112966831935162539545995616223976561859245819367981838266137659687458391424132712575939497374742375617621141567332214743427515873427336872157627528358341548119513948996754712289237456411148515895999347122352147611222896273611582611116137337846141249994399945741214724634553732759155253923646136596479189434216937337325812665675813952943935339546699699485518952769241947137531871414233454446612742464388988132522716744468686995898513275454691353532458916174335989192346875675461749956546333968558733326271264185545417991124132496234253695865316193884164348775854832398264431365118474787161237919994493331884628432783248999324737241594377239224661977985426484941472663425219324922215742372537961492469272157529373813941736469283557933342519752428881764847392222752545432675494225752352474353683645375161944444914737546652247861333425995982923922585345959536366371654858738127238965175259981951981849563121151713118842363273428121932921852533413367233631935837996326314797163744762496499586325332126355515726824244139148431379515695663447951231866116293865241688459118347721462342822929362686193922246339568343443122222548727417293926923486355543134168153723516241125183774661392351413448872936616441372163219873217748499291285189417896719813119586899248121847264244986346377819354373325722215379591963588362896665624137122647177888833638999518486726414295284382333376731979538433525169215573178412651356658914197917484184741821545663284132855661928823723214581394292724123638747757482782213249117137313191816725741316371285153944688123224438655536366199574656923853419219255232753673512727152538195811547547622845576517599736672616221411682111219661229987789427627897625974928465532977331229791473526949411668111117328558454396615818325653392974227262482876133743784163922698914191913521755624129431397374762117267993949288685594813692188724312889784178525515696788551154326588521545637216686723138445471422144148911847191773666663593587918426843957433767695433473299668199263986293178946145419432231492144269448521249256464155931264297883563167957717589541341198429169746879282485219247977132948951497735124135661628872376232271568496283754128666219548223759247646628393846616291776435725183381358567164723341716292212375931331843818542657354567728369894667841155637364748449134474172152383267214493439182816355771756145144138176298698938438583462519431113751968191832965253593127199852791531181811671837214982673178415859955567726845529314835541448723359985874286524262435328169448272541496696491552534943343567141653333457122271913151837235983932596928939438383655983634515635539695216217168289912272375966567298233594132442512447431736498244781326377865947762324212424841737537528936176822132722133452746576852845965185757529467215851947354631947816754368794586934752177453713343626454427728696477421162579557478841156441989144196858644239578125922514315452145537493425256137244325559731152154399243517394591751432275278485722295279713918396187791352867293815261745785394977892133977733531479328959726968735434946238233187226746283441395248459344719652631472932643895893759433328955827327783553925872836988221822938643423965842331888347918858117234414789584784785936647498921552359317653623256765431848681956269655797442936365692545644958891569162238966894869145894825453594489537911153952868834271129983255525565518525697995248382862524188122529311124381482511825374154856464638324726469466544298412699638417311332715578794315935461422535542152395182936966176654824198678245526311719629887734952194311244134599752888598393558984913322984375239248168929227758198665733154912782515962988455946873298158681382391626324654665638646875537924112663344228399918719572636976376894464741857483689229527173982789132914841356318221278842482149927267336467454992382465477357372225121935613372441759519641868115343155831526367924165442697187129619542422163851547427699746728819217365613162924884694649689669359393268562696896923193473218821419434313358942148123772573884765627418554883991333826172872954922846389373582338926834223772155983635952331323418167386547122499357887465159474138693951444132644241892152366885256925615156811561589879836155713617483277565817769667879556398533375569877147558698453322556674762266267291516178319954831121154874575537482473527511178847795129283925226226195311126998761653939676714781722135819728164773473651376371911833161988241611919444266695876576611336424872222292369964721264327919612378281597613177583269348166326494524726291153995176689531216852326958455811122958572896342315351636374225147684922442979946311171131552556598669133372588421171788924813438261377184866326933291393912868159244775946829181643443682377281271315968375864724324714432862381984571851675881714339391476713781978694947521424596348535729757492372761793959687519441347548373266648731163872616224235721261444534523112221463485624943651448392553261138731938488891148916323166129879684484179725388524189267126399438198438377744876989669262462676248614344199322249838972338388769724948792662998735822583421195353562236315136155563274154568358138577756792926753942171968891599674238719182133949413459793467848964539321498658477529342747963371339749852332824936443492488396674364812461173637213918118823195724739919615596346941579997992586851666786167613195789125436995749491849273873875395172497786855389925973595276948751716417684333569781499418196577221624487554754591391383872745653227295924859519641242274264978155972296588114328932662297777553586145851197737725139233538956162366162287374549762629772961468885284152191299268638193355237599133669267147551188524172621781656362853643469319871932551285666712547643772331756669354196828539592782626838586784751852665495871455336999338993593261196931587273469584141133925563617243831385262232428915279349955171629997118686931326739971553538577684641782565887792162375892361872973256166869418466389252426528465329351232647625334938452622118762559451111779953784279219681124454864622291828552585991374779186988345352119444174697391266723122752643961184147587433438434955331154959199371734551692163219924697531757615649882339514375168594148789617751768562217769972815142476173548874472686294256868276939476869142518429989785739532659151814644933858645218356265534489822351946197261966813281555373245859545197633181849367293352128155859179162966233185789427372161449324331197597821379716477327873345287441457372159376816579781921739718999448615689313944295699251148213222344555643915241419756768587438142549977539929164485757417462891845227865331145283945232922185165832381592447356171737726824712571848689486313565911475299111396245455824148423122351656785137315619725237771965927495762314936312549253199341828188988548345995799269115825515955537633215423871163227124677517966589571143953697562547475744144534153379511629571384181375122913398364292322456665237264717298583961366523141117356617934426197676868914398219387744623818834327675761657995436633535759134585428353643339249673683996774384835294831994738686839315931885647854317637693143999526539213512872625728992326814492524666617237235152937982976335963496219595119241485519667275971896583334751644664799536531659677159575847441211931153391149326465532314892864338221276593694431255136477762322674197734677534634595415679268262352812864164723992818761531158658156297124321648286331463557288265457842389727574618731486717357431159113518822924986817119291775234866641573192135665584778286234783994526767458788679574918259994953886882356357726465451425572519138614138422735422895128863416341642452389489395191633798723156951956115143954269225573942219739293532351529655839399919233299212513653267495689919883281816691256267197173341968565637725162619397119586715418415282213284466493753392768441923618225117272256245373288588393139695992811142633394646962778337478896749976417211655125682299127343869234112367351223229674244875218123179578611234683882362415669126149868192815739327614718348155373577922545611285427654714622993339394956477886846159147872197532793196731542772687195359134272977438735281572675393119215982772686472122142263253496281227791279655386622987544619188742492154129745451111921631141212334374924879636213285134342247268529982179115619167953472492621465626837547992952548364842169277245759216148559516125294392241955318177476365215753397231335629554484998642585723841167369519531815356865178958333633694932698867127527645217791249834249679884769244496824462779852793689892761715847387255319316637828796274459861285116191861516228779257552787668529932494615634872462623152191449684748284415861321985343992912521343654198174749142396832833581145342339489554759191477862141877714555945976175751395455162474387212393457117971989953495248497852824917555652569175583676743868817316231783432794392348856547125468673225174749946799479573977137542352549125583244621348152384873437587772668888113392722885614542988918225359783227256272196528649293368971473842316112334399875597152243996995436428443918964793137225515257363639448885267538623785967851638831194294121721835346255747328917152182465636254311697199278599752521169499619233374334932937522525277638343979915267946476939747151721585638638684996373426446656876688942847932538499335175967637581652757486949681845557211851251197335723991686596194464923372282355382284227368514329446224393654394793269812118165726434959672695765256469447775163791969132548155241152926414545281289951311445929384672673253323575246384492673928652293962125921442512396926628564318569927611476114115196319475815842671511914386533866215256371769589331943938943166853695388198423166824277345536174898238696467753997187697919841681322416514648199813539761848935385746884325453151483325721578737538515946636546922949191344961183287137774154762716157735726117766323454167795528173915726512145379673653661862366411718632219638563367513885257594351611573973916844912831385984311317331347474933194713183336414354498752866253688456975799333111634287984359118993366441218359698166477223869777927599873468454624865722784391476143817311479334469275416951725542249258414274815132786197315889356321392568665973318292829783351321846178621152736333571241164981144745744871236354531558225173161473291593194333372112476524128364685256644993296687889796912386994288851189327845283857334545152562591675377592392252844596499463293986215938225784164543462341194212125299931161896229989424492775392369932394162374194571195814354962185159699139837455233881718322312696893229323476423211666823518776129668823239687875283599688195751929512561263525313194856295351145565271973652237532856727823815455775247776264283918237746711985549918417242761847778461531627242447532529931856293389884524467238711683293647791764453321589471467734221265426322317414171632937399561116721135634251934378459359392927894315516934738376986735135852113214192984195285943849111191667891294555288345882924926688758327126164611356222464822993462878994814447449353248644858452731294687416871199513945517972278349255743198867844998812872372933171772986156267362491944138953426717751992879166212212676356113718594566841914937256893685876369369834292759327577623639717777781768253545924486663971772852793978671517516396496535473184993282378348984522783859422993582869435746385985649291611658827325627898834312498768933196811798694851595711398498954991955332359535419216556175928124731927835541284534645936194797492316217858395432663638574655513118231161294293267249239576743491896123757151561738397353667595988681536227665756642428674883352273641117352195232354844235521144493582534988911365838472146673898454216263635743815519314488725522613585792146865273473911262954759676762879597214835463751166425126232625784537865433864451673381146414337756674265567765781496995137133795892939554456197675789627783951929233996165163822983352689919253643771725818548612776181791328253677774162161223536823852954571347995732718171613115616248191735417989399765574289357693296697956278253744469376346256827566359197543727366214949236794127342944721884342383219393922738532679177526846937916165423964365292695341912324338819428372345423487314233669144321343479629665126521943267626116137159741977422121632988245432572338942465336983788531812812314882331342895935463148154415913713837441397623452313682335359867916282729331927422742566782393186728197418482642193471367959682115227782179424395974588277417785461115979269245318657997251712989226712319492652711847227346825153639455923967437929491567283869281436667636968958425553851463329541881146634753592784411895312664199754693123681185926736759179742973844683585867558442958457141324926946717879225448221685654488811586867771923227839765768282144432949896625221579867615366724321725935968937334139593476264519635552668216779121835644411295632551753844328468577216626631778966263238758444517335593699734699684795268832247641646193831246112961229172949495849795129322439466865699199874334888159666549188865575137466793345263212726832226246713335543939972951419976516631483418995539186277487457555492842282674166575429512122872682837981128169571244789953117186297253689263912148715947255979572282384113497625864997238199412589223767123761478211499478851484317119445694271441382252695698274961116766297762439544798141294387581323729568382436262298162454443637425746622928231839324237661529244339464256472978816442881114578722971115729128215499455131552413582727635491229683747541483332442621798227273139927862341172957893478212639247513694226569912911575243795877456668957623274877355236375433284124774798621356389228591776855542762129996161257559447951486248568561936356912245346588273715953916241472167681787499835729875497842584718435954735481746349664871758877618852975881116589715719815732424523925134533779668142214444263596119472948168213873879539489758863516744234568279258348125985332556448524378435656318996612594311752966875116648954763187268471419218191118476915546518661242672917316668593622836214627939292361456838326191264915784174786362835219231278312822658399335878136481789474465475421251838513125434739462941553189413984162977813287747867677795612995474751567419651438648239823946124462527793363684796998963377942349548389857271263384496349126424746421889591781943786635731741673934422617728485486865622332648239253746617669564265313475989687215458126395741339938695821273786474212485627922194373683746752915651368112877388821312265878953184999517998563756923677883445728731972452364534999256983183734946714373146818573928766244652742681154294293254347523921575723418337235824284116159913545863359294359966841617966943573561212348756415386151931974835663178385236839535663853123971622592784489629636972763545787278344728532815989543521286364485321939419949171221813238655535443632175457871325499223442629834527348959721359184423898944269235422943166768582744563535149974653449978794347217345219667956274838578663285939457647158915241913645324672188813652322897388597364679777853787925939515159341139941271562563281496763482449323717485775166687972397225526181753861328373499981452819353779529723516956954527795346557296446728174581485638394462462358577337142558942492653958316154459577546347466353144585799628564766738255693532115948862837339394638341989421261229841736268351563128726261745423384113163242481596721941322422291915474359413733446266613476912481126353733147873337276459529581389469674843449867519231157766344487677242618225882627148975515342646889963688319662394327437683124165939417329571214592973776586927994692252436668631444288378952752995564489278337532986365818971338248586311615378924363316658948434345861891238845893961493441584562653115222424113419871943716992265141598758843677634174192232427794154144564125975369331281715149165262352775777241135539343164687936897124524544887514767547924337191148682218875236581651287533981743922869287883467943982114593531337347892837655518425483754749187148253652677336147259939347979934434631952849711162196663438153816999995555946491547913545544272136396348744776722227155391358484672922544762326315861134217474822365695327455461129549676975317265953852442136147991967263842491449343245688324173586652579341352827916415733162474125124261253249472554438462493235219415682981299635932268867449981949297473167979452436473724811178447165545935771384734116967882174442737469469436596967359654291846281463221151934255183469167556789499399322832978896377174921865791451145824595246293568926834389151188248448192313645681548153217585621763174832161836657222162338399991441516688842521288671412192135578714844898358476231393357427997956633124916156264561546449712694536569885937645969459963963729849277223732594468736354741711397672998121424821271936216252745625265529586933444838442743941388994954124154518387542363443217838266541813448985818733586389721738562433886755632621962688143299529374939656243238762991168225859448842729688622515932442257135684353519876579621315938919792713326557741291372545473971862545189445322558327699936411283849152725518218512423656137667782526673715254675213638263491242287894375973868311948789721662519129635132583681462581495614431623282251368528528443627926486982425674164889347982191549773566833934271822487361795776521452828354971144528491599246736594916134823435181325717525964931574863494551197327226442984268966426248464244961553245958943526575377841331933752447146459274211319877779422556633134919356645985977271287375899176686245922256953825536544441942535329932855425657549559487298429119773528529195712698683739773741936953115219666995717646124734587484119634663231661526185429478177993838125483143318172624925372951359921778396946941523351881345643244399622624346218568963529381263175425978748653965887993779252829581822815261625471414879636991836282264858573689735229315632975282135679352529813367622367214112874364342918228523854563216682345888463196452897418519281388945928983781189836441243841429371851256926855712895931345218349157967457861971339184542425284211841664118129983127911175645385317882518892631583252362795585575192744271783999341521338789263982868176937898599846936885813744446333891926117388467663561411929213338574432736163919368234994448491944955499136179227287338716769711767263553828454919718296436731925716126519822519891787721492263694242133953283759964355159552962141178665185561475859944714693573285692581311815137948256494895278845154466916817397194812998739339627114565972216194343581989116294772455383846852213424779725559642783719575932853614885291982824793958459443124889118329635313873775764284512937644869294417658821346538261576594351358225821839591734952751396983139991436461117123731313731211588497285425121653352547484561953621285156126961678466128833396837812628299949452948599642134431564695613726463455951861344921673331752171231265662431297518817635689388645399294274127264135315451325283521487549629152729153225741536763227865292173776914694592215419237719354499133483759117283192171733934338232235321728246818544912928165668865878936586111218864452619656457155928817638374119357187297346257938562825213251893217472729135119933434757581489392893543441715121691825677373299387524136848132574172236778888248937868475681994164545327717663763851937874241149442734473684344633578638636738938431669932497735513763717536623983422176775344289871263951673592136384221536184823691996746966646348485259222362284375191528882683162545736431249392443231566765834197765295632699533349157858522259831348577466119489665766549322476426539174361138315197423215663292372879794291937515455187443255964283697182223932644152727297352186554665987468439288794983628613654716976733512142693825329417469833183892529635315913546991597116126663491745399459811716276559231929358815654948497645332586932457335311115984538426346697942939369597394911344118521898212459213446796736614445989386749275695467389419862339222129898548669237636213715771237373351428294463365498691523662866152453261373349554392424223144279364453369711882864871229688963355363948879911835711245585384982146213171483571234997125731779882479555416314423425571491914579873763389582141591824487924498454938951578135856143194283157544152655375136416883447573233713962447934254816431287833399655332539565966611657861951548831388497691516455773551291623124983329592183337655346336764326974668264211396147736512586247921154588778212737263431836215732861714772396536865563227154317125275312621733483915367726197888834642182525396493537233913211316445838643136184647133137729414324371379943471397717668798665557532372429349572462388892414247465685153283692971794993716292516611451725684552753189219745275158221186335756199262992324938114291988376186923352737742296288629464631386881185712229323692137836926861334373493297111927948311888337399226619543467127949849273855771877524518265513652569394296532486243734761641376933374794128637934946891961844324476248316793648636161781272262126199929626522819394495332351771582917698618329496942441214235243714624834743245838278266237833425642925562543485667835816326546292965835312615415259235563285349263666311435239446487319998199872895571183476494273387896556243338916622267187563599153154169596999485312346246861259438612847272778146622758362877412839733774796782576132239181763973244743263393985237174416895196444325921849476935129186978312396311961374391922933449992578957882716722279763436139363543653387527825761197513198351743859425767462581849111869329334782422371479756665497589299929398424595637243945531322654976124677873228759972126435459332382353435953532842286136743989313378231386788497959124293235563936481369673292146977962726371827563369253319953723158526213161765621397291917995266775871471455313444332553593563399735259799417527641932365429235549615849624697694391862885863194214824793485255587947675175771349395885778684178899122487225333841429747737552312612895795997427332997352957583437289558729781955247373134552743899742458579267411541725876229729571148332491513226133883736975866129234257864371216395864813764444877321982825324945448615121191923578138192284958213123283124443464279149771326881293884917726961924992663942511868261663236877935543591475271128962857925242238123133312288287883864831224932451938381314671421361161335425832973728454339914319931327646124335526334968928433964553327438571243574296264187199496471819584388591754754452857212966387749647155846343857782393472782393298314262379716835922393526823958242814369962335361939551955855443845685173392861835536376626626178916111322437381992918493723587433143443168724173136324799141141283876521475854724627359674614796175497199454467994656693377328135275925346956533563424322581467858191349431162352775473921915842896728242954762574746481741531925314729949592466355323122467959441237449816918295361516479246928382985779514357824985156673514365513119842927973352246212663412533235199633174648264929736882391177321412927684521749321734998528249511812148984496277929363182657236129279335214191196132847351715625351259288146878982968921464348247915182373327255838375871461435212462173333711598143649678135296379949494744246284486783977416368848746499943221241588876149953673363361714444874445494635847918314865728273252489448656313926722478551467699962581811498544463553286494984422238374899859336266847346787198679145187548737887729688669871871794937139573752949973645789499314279553173811892973278316622856657435886548235519671721974289127169132212565334479746331853547122349348432817588558768196936444577363611142422547293335945475731358696263545622246688766227689223197646167585896751874798324182676585323277414335282124965141549831296751458639415889294536436397188115372763646124244277793365483591168362243222247534122547583931973439294991518693616492212816652217945634682915231564449513624591179514218785518497138841378982888849524524297251722259827298999251452881362624292389377752331773281594928375499334474255669154284966631192185847542322137415561658623747867295424699594634549675298494844379358996393744464654774445499591173482995991455555987161166921342673299218492331245458587239728335194432872173244553456712691973727968566899667969984678437388223242931862487167115611715818945832588918317835369315937755632252198623933525911645287896746195477817368618212132272441254915714274625438421176169867642474698644695594382437321756368953536529275166554426183143991525842559866143726928942374747213174561821116533474913944426919527778314949426622212578752372325619723259787966379296618673165436787733719216676316368596159627689251283441178148894817612721371474257193812781382335677362952193245123567757749283282772499121719129532593319169466123747996326193766741914493455895464315372412429364217268172332986931576846982672323278326289636353223685282714371414135551694214166963985719825496681693278549269854695862961131658733919472167444428551514683165831982114545456494967491981384993424179523813239271219382135288529654499477437935966125639363968543857893298789652362581389934129655522879255652536197625661695677783636341582755457716636781521319613571316619973254916261184928179198143456445459456686382284492315425979932996479862538812864297187562338171134824139897775833756572275347913626622553539567249855952717732294137279684148182891499428112855752847325198292933883487888675934811149554233437792441655328826662179739169188455771359769918984621194741845671651768183538489233921466414972653765564756916576986111913194412921491822156514331749173535355227294831741385443559333613477568669966656636849446161938784685158357997964744496233198417441372597959291289749183971231624982626216645671238192821915492554985822145235331192769164468133341934824514577455119472136537826986971454311374743158361964238655144896464246243448532552247372458173576245732729798783143455115191981628646853632554959125138436746637981369766557412181975974314857255246258288786773119143471323471241734998247978617912617217132956942797152376664593621898897173322558547475636937175238714414637157445623875222371275261322797965415915734281283833216337511681889421547324357625499694924974142988324381919127511429745166466526147298722233653854957511467746685817122556678651416793161413813663322954763497256677234413217184378774465677731999599511551181996169978623225337428838813556687526142192477977581241266161652491575237169331521992621652281893923533349968166171277179578469355168752781269691642858539489551418597325581221825593854535573141213458216825237167875576152893939257911868269376547431379782834619485818929459212472243944425586839861893665452223958125615571676343432631149542495878755475476611374118963264555611623995824488398829111276485463227319739661972383733181123857417928111992513856843599257816587863781252296494735391847367915823941621246142153947313326744176595993318731334323869942689836559941693319648272447764483876347874881133249752569962141873266375923848372282958867994567793923435522656966134971768686313184123213877992154794664934332187119373285714213911899968435712846862745478583216926242731459462419148869522349694798716486991492463377845165111624511449235419671779244853715355886996574974243464865117846914411344861414727892172817985431541953638489242846294153779836324288542172889116321684649744358813223312828587147248347112477381384885386749673599615182643322937641493723664825357798492314467667714128929774612346187614519844391334133518241521637976739184458681466352848784771422242126564724792736946867243575159221447399392229493658823244274721418173434766918772443463511335756411761948571153476459311954817916925912891884758918553346273214582594668944741794388195456351967952249469869394365784816717366485531312757735573937153181958756411949219698829773427878994398481113227847187859145587859991291889728797729637967114141448528623842734532383945171344673455992611738352849674153576753227882966949622114935558519471626538361732824799553729671231394121489616767821898194416687994142567572238732642773569572266965655249739681342228313544345381826981744291971965815537629611697718881551529359751356951458233281493987321811565265295311947767825555528964855134145176867641363277544693586253968399616913538475211674259659584894379926716575822812112919843154144921244395572912492199759859913974651951344886919314621143458692994786311746965251261962571518551477714117451388686122854131911884691118457436933565616679447733684183421519273739229573644826652534962722476737879463548261824312285771534859229581852574144335666191627193396453887529683638353581244654581916269961535248591977276276679712182935513621196247141384343527791245443449929145393493968761119414128814997485115417948648513988279951451385869954235779199444567797721569826376327162757222682378555197618663121763463396247373693475378621831936563647354912411734443197886565237324659374337123182819637436752246828184942288947432424181174582932941394467323428224214344723779159716991689596467184982677964534977857192741944241449732711879973223152998116872522942913248449312426114136336483446989553269525625241387654249323239839161248829653755385558592399249572267338949571965196338952926538921366756421629489672128494364444761238261932218495686458951165155792581564743269549283142984353258963728985532631771429951512195991426779185763283297885233677247426883113247925595926657717326165468947386139716566427743368565239381225118336881831395647772982271248628555331819563627535482195663883955523657122814371423611221186124914597266584314478775881454758471894225185512696475517458918239663594334726512187955433591287689269226569942133314623414555723467838974381814755737474452833354834533426826877544942415571412577226192577359319172427561314443815243824525377619214838876423791127937514988499187931455543161299525991923962482294828863184617611343793238583117372843991578375839825997542953337754678393197699938756733372569728882346699333875743549919598464811344954275893416832772784184816868458157541364348218932752745641162942298963278629189868645175185315918343133249324499366139243451745716285462369682912926451628677839561465482541645492419529186326285699324479287565941421471256912175549848688425395472514419934478754834531911614249834965563667349735552617595737921276138751358723698569719346643454264959196947879516873183827546969755459549274321823571379762191993175859195467962595223167555847387694792523676955352793938226936732843865833268664283732522492424551243724192825812236464474155972523398475722284431252427334119984414291615592936641612526978344781193347432467976131826427621354733138542196278152819457736721345458464653477265475269692116398494284922293182169977252389288318961936473288753913528178817851554121456683639624724247553441761246643122774989661186559972693848188551584848877318677361765143311739121598574839768795425641272756925153635181383443232948738942655341842684252765458897372482843526775832218457255794856944813479194988848512352979798227455111712465561252141327748329925138621994166729536812367831322332773179225324543698144776297116529634327448218561929758895256956923951492937146175463234492443887254965799169286622947189966127744939525288181178218945177743214832835291574622233792861449578669992463495475941218634341917344365125582547943922577289652319114453846712376141816923856671241458151193674853565521311437242998438593164891448179935371465626275255521386851538336432861748418899632721217477613459861896691519587295645869273122624833716563843346347183341591856221514355681933883812238283221796544946338694293633238465511291744943156757658768399231183638326485644888235539362117533313658264646196326144674497989133515193316719257373118928887195582272349441621514727118296532781598358742623129552189835656414792195321164252169436487731831361263352957532648448866329696597938551472158998172215452999652319276442212346218877847125954548571865939921322545628444131267251547846663154175746844319491824438365719594231247159213984415261591143493817138151144523146434875991841273677777418927483412148424149682665344692991527149842399244259966812161916394293172495636656928393219453279747615118389712261581961815632913767245643535427756229313338186159383186311918764798189711799356549722919955713439523216733634215584992174942949975395675227237874892443441396637996859495954919742689268452454113392282156111212913215153553813861896921277265492495385785872586371446772352285824184424438863892352617248537824542498827622756879389525697153467192936517891476383879347436534136969751926521624975122891682283228563118248754767622352978566974295893478725767981566565629753448827352454248961979385979949975378362781983584338258449129825159324134172246472618941511727333566561663883334517788873454958416681651413925172338111641868447828314224617744936297572412391237795836129765469159381913844181413465745977869414631145759713288927398932684339258971789464836259886857912147239358665933562879264379875476215494444753452633885815833243236227455395934473691339983177411913537232239193994361496715519345152669384136851931823352566399648435439663838844257424665642149587511581664174679795575556835676272121758634271769568768831466584195512796625713365696952918662279893544968521484532821376367151515813197168333174728425777187162754663858595126635818346744876649256932874117959258931473416971914869418617872155442518728599836986258186596478524272228366668732556249177126519379134359459666726488932836262857931139964989367995856974493894686434836529358415143251864733431227665748344659317764179966586661923418242131428839432816216673965223268864459869872282483573591573174811839182817553262563658419951461731411691368299223731946874896115366722976915294723146397275634255537431165892499923113711992393331364558155689335381411735683723996934443455726719238634326669344939317787683588211126626722796821374585631149911693943462366551233634926886342286823675518349765582798182763463727388797882912525529758939431834986177386279122951318866358361275457968915682599394347251639157732119646519845142657118883515179147174768794857996515665281553421324966435176637891758522199969652963326667645171311429534935158961291432422863323489329693129636739165321628233268752196374333615239557138279156694197822686249283853786462393363642481221311891233811651711263235891774863711734223427151536696319967833811381112917394742345841433256444911119791615371585764127198899262613365999685965918166997181817999528915936671193965364271465146899897221411578263569837211455126523337854763299221716771296241471631189664641275693525818945533842846852692135912313428953913249399669683348144227114785475698537122348756431375852669595376561374377692818914429678314736671328952943786976992885515272123135743566965611932826299397341762519137383894538252415436492339776127767731452835726691121631499365634438528994722876488247145687292613372736769838254924435443313431751211689412166593126619377566931241628422173124967675779651959129332521661627169496699773322792552458353212563828338155383211732313968953441441542489869344452822396362722645897413953353496414899518839519627895833432319955654363276199451369616762572295912933118213822864512983128345495366965347442468766648915124415593119916154219913754573279321425331743743264249522785228267196741125876127171614891985816589142123192563178262972399492222655362924335352554515263357361315281252838154348713619125433347634641881357381496948292831996311629368676454327296451694987959652331222245361396479828141187647944223424296284922628929382257227328971416915142492881198925337167786918398622163924251733689312139167693931334337114358373136226624286134432815138985477718571493771581935325647144661747913813513342968772375358921388736457147567455244187479534899945196564522534927584359558548462564645731617446396963529972727472932828384142773284445464325624155671792831541213119927661363215477984577791172593683578373432841192972587687131468262124435575566464514463834116298757212623388186926868559852877912535443411363636128564336544366381319284695698635266557275636387923792868418726134459751254332165927135126994285856892287211577438736118337431126445556145911124426651236544969521952811194831651966892542242157754542635393233198874189986436873417311618748544332162462133749262937883643285376969471791672529494133781126781121164862313735328287238713426485835214668386584311774271414729327879864343415189219916875753377526412338491926811728327865848351629549186359183681227959488932266426959658183576883225211933483395297311633738926326544885741124749457671343427716811561192698751115648931125482557254842966748556616451447867786642897762924766426881666439139528942295321528848394181463453475777743777854661211249317221833996718195673816237312988695185689818122175575484113538685565641688536792127976929967662446761524139398997354156554428722881687451178259742396133915518437356544998742534954478471859299758686823215469312154927318893321258916232534672683723191667443729618883779858415744889964168312538991166934355567355524579718445579897596841447246674334514114481817895958632162224842441878237291148854369827951553835939922741638333389231874728665749217827716398364688912492277353657966726372945683331357844873481179873364219333465864899167559829686975333393936961324251154296613874819982318729567893227543946193552166974365959827931953824632433734671335414111647955661832865829644163347952925966751253191439157921188625595554684315177737728863257671668263725944785263829398361633394747748767663673544539363424495146247321546724651768158194243921891432255761443186642136158392644529871793432594177595246134978159327136114485271831584676766637239572952741169471236335768438746778494448686573814637949361981511327961433556711823163177448113762112877899731494928865115241234141313454736815546443354811383542895414591117688576875936114332534511373896261991875691263932128446379182361823228959765433235356441517281435297443539624623715158217933131559387394693568162996778149353151631792519314981728177143316337177153396336428646246227879981182448433734535948371481668428893837181754226149858294654717193952491695483433592921134894429728138372212137592593539533599869832931241672949644494446513118978944428421614838632647972492352592419196116412766958478244514232735199456974677247678313671536187278539353791843196712569399583149494349161229323558913881688148626644513634863434711132311385668672282624624587833277543162994487168189893792595273337394351496371753671672572162686497417424368458857156977278275492175138536495119758261655875671747713294732536412112185763775935954245942463493531314538562958268553977741916238373184836942433152226162994241543263533475718873795894156734948179681332742241224622362944238711354312789593311718321541541179484337871155353137743558539191394235626638967947319381362722171989737491619468734186283323299946141864142743132646353282994281248256494635311624147435556443936796118347756622234653539958577769456254843679223352936812114339345324253651167644591591235339466632565983686854373415313371532769925515997613347422187556388463839638951742662816438218144941188329216169418343774282997142746835461444397511168422254528416372267573369847313768399427458499837585392654138653711839389132259252492598655463251786428883342658819279813321292183267632534371297139712833197215131543542683291537996419864418621299812587677822696419136268387162218116832764846226534169566173718732528656225178277795988464936156773597168436647119439144573427939415451262987663399627223136174838221323822763122372791521568792397746524373351261815733568767832566851692411165323754553386832528482313467796929843426523559972895877361971766599369522383553473435281792852461862362154151896818961694215928128767479682964675492647575123246955558456152386953516969723219328482923742321561296628557476311625393469647865672513445913131525824346634844364234288652988695229279769177381986226741737545226125614379516988663956599119131559942917324395765426277226318755767124422612299365132562532811519686931562345592845442778245877452239717965583634555797228171545626714223595975656425566254255781569227214382815249392362141784471711974948313378581656395311314525521117732214821656976757691421185861574381347851711294523462777149989673185215214319768183613255917259611346335518941642184932296332791287625188731949135169578176857914527376599791679628372997813395514797294176511152828881815721467815464431288332173132593441612974663358344716475334716533692522594456527475648735463622944413282638775894835274437864183273212552469119482569112417751382813451181638113713634454679527469457417638717163196546499493987633639978464849328174154519421652831265337592362151165934613858436616117152269853713634839495486652213397961459151181299154382511893758754377179178814356639263532325267754347271787596396137186622382284692155885441763117415873394358251124532681536748287496564889694411286914896337273163821275995877978779949425652841631225552639893991128514848451266776576411577974913945334731891147934773647459179886568877774861973699144956652382355253184172245353396966839463438365446835627455797815243745197228158844473315198527431826135674515429276983421663569329886393932459272657431229351826388576875227476632985479497575314854526457393781472123227395139995517449245166551773586739748255775785169346443863871547334314215625469497155491416165535514665443527445551632161973937981141276965119553116311417929826243623147379757215118165631127664326393197117529599758237647543624491199959286373919657122837387386241249787139862149192289556239175957242856998817116943648735835858585791419417443295935866691395872818838475532729357999661489695811282162385124854412176139995122994113482114415175979938255262293361452811153172564411956139211464817189783868843956434724121644922691497228283542595733915857368762735136141793311496548186969527693457396637555456119521526291538223198491788151369756996785474174349419993938128631631418847467384131146574284953734466741568819238546616735712788153425338791871433663951378137318752496428293352838385871659426293636971241943145528918767841851719725132858458629744194142127147117955734549253757213153145974953519149276546923154584255225348774565294574595141329955411949423838171616549599857135962197967973551241772213157457668419337449812779159495937143324587455311372676439899489844548456722879863399588432599362589218285773313411774695564392187545171748186875945782563733847337626615115365621634323369836772853732472455594641992617117889812886877978894912469712928426492954682483686452785276547193615171955117251947883131332442377377393996416585127622112265986191869166191952389146511475726731729573499511418196786541328318474279425927256623497692979285437572418347877452873819663386633894225764269533918844136144632851529548567795951552686786737957961388859119579496567878933645876213527362187417127395466731714575718473945682571884718288581764126469161796276263211659817446935658492914454315263164342353151893562382546792653612144926911446831643798424929524893967211769373496294367382545937446943812273546778136236273684234523159662989261618593563928568374895567237432212699249482258343123334339177411819931511536451484932291156127418129256949359713714472538961151334475634946893271851983427856717779738296295849862388993559232235512545769567375658154921999319656832592223945289575548294358333537556925725649272842558735554263664321315376386741385666515298326221121331516927511992997631251331172188129442537321488427192818529552926133556773847116275258446859678961171631418553178978389312762255716958351526527931214416471185922914952431329697748783575991214131637282338347727499561362747481646273325614815293425233288518654771111818793166432955953745137856568192112454838969299913138191767254451966832148484188759584985475692668396263676932734428933613691354837391263184348982974671178353757798211945565544559166512599215897115395411283812199161615452725137257155357196342972868183471953972343965395458534783132432174959291238647711733651267271285592359631595465846346989992663946454666741252363957148352168655828291275793576432737662925769461815545562264331617919323872368881577365774975927961317391235239541257976141754566658638652942111333139793571673532338185935392145568813292694275666815855225546639529244215958847144884478938113447317835388393871135683633555519539146278358288131488466891643261626351574745488679256557596526748262271611495861614837653593934753971982795538912675928261256211156234969326734733744423479498371815331444934983887748434232916436822895154222421177111174555661755833134448325662185694715167221576117978167631731134557416669822182179763557133164193565658938823624978622379135553913994615925486659465793247163122562448471935236188183223344219264979334681772785189559435461466317526339699253276179517651542577477384418384187442577255367742967337475425486637767425936156294758343112424178369314268123491974286298473257782191729424967992961771528394599861459323817117544884292225116569218285411668382212929498366517314145677142225198711765521553548864761452998755286243491141518999851115422368894514215996995493141713359769161139486154929924992292562115856481487731282249329831593741716489346161972246436518871321221697261618846146928597189129191641624835293287331623337519321352295188321815162971229668589523449681633425833219983793619613568598978746898491276656436611389631855365612143846591254822845253324725554418579652612452925837156598273927379224393232821341488271545232914574938453584315981323733817768614893654238572413428536678335652825821281433491359714192816854512153188183235872424622752259584619917491375395773519615482583461967245433133544172513127648735184241668994953144546794597294923151848431482333376223913782523231629396259819893419941152583623413672965398416874968756227941215841612721469892363357881538846611676775851718487674819279357747822224155193366161613483211756553566443144647226434611132449712389231365512125712774139427461782194524421642756724746377544935212911676393651925846569911182717784923676655951793739933241982925351669432418721156174159389132919782238839558281582641851282918511599758364359361648913814322321727733565765988331735314351412262589871848215855223312527622112822644325333344874177251293814725695484781178544433742229313636335128281677999159366934646945223753299528462181314214429572947394631312529574398215893238781598579892164434461958263364169478217126695872459139114766133291466819334812771933896489324745145191719419624873456214955118491997544175283969414589865128144162544773136983237739943487659892876479339273926592441165256661176998424274165812117149156711755762949527825812933261389849547588213684929469295232519391233852655169381679614921968568117834284735781885314974794574293241515264999623472368621655361168178798364986123365124452953515163778449694135448775273138889837917755784343437248868663758177114228725357369394513156566714421594365547561133389875475953419695774752271677334299459464781242817852367622218591351757626595822698539946565127486782733316281333981115574416225189822984437899613257712215343117527333924589977344817918725538497976455337475174843742173852828858217233155582665967292126659651691413725261395134185181934132945524615583196251829525326254168424412492242739419663743486516366938937655834745211317255551247229146292913921563939511875651428273712444771514895422926481969421374662919651663765432861981441165953748983818214171669434331718882965329514339342886571444349636217613129966631756126215462269798198689821439198369961612456469355271669332691871826314263477184245611755372922394346163481864248572824619556155291243984938521152412854536739796423239792343285685693165428464273683988711519739845723233172929373579969298955242258481821481223255926964932748761616595721479677254181947315145287824271383334972962244232948513133656632196742742445673235811137933196194133214729995465626542322942321883929232696531641569428351782725129543852139354643563741973838434465429727795852934992128283434291885142679978483328423214716215328316288727625928521412997214919967358634177525545321769489164154289127852472515761286617488454674876596633661929421136439991788613381388654931294566923191649945714545531682323563738162672932354727834755153635443787954794739359343151661941115655826463591695514326186438172462914852149817558383546555775314443849773239566585144716392582425533629439112712732566625132416129121531933327935933354522594467742941752559697223878916794154641452239429696927114845586677778382137361121899824143194753176392219483431441739993444917264788316488795491379797886661531993722365636742481435398669642337422448763917591336642129247169321736462796879466822696456732262213284913392792936992269226181811948211354629115273211186333883159481321543356497948919261364138838316271715166825152151541819922258732964856121426766833116292532231841859817217452326674628236695814981391736154354448589663543143578914742355146435569241432424124527133353296412174457819984981495293821751836236165339529242747798688957795613436718318526753174227333595983294443182715813878582341158431891554527378341434238634318699166329859252947321241332624474432273974112933742248981115634363228811625281846792345234797922425843838745285762775823246283636611732285994977173426133455417159989662524494921687488738479155867215698489571817872259284284546189986896415141931822328758388742717912954925653834964141215482315438246831493838992836763566536988824673344971651242893448961717892257968859415718537363848389471129861934715263983411789569632297272932133248766136374219321237694983621466238596929839159381487177245123315439593211239165896242139597582292793529623151915337281921682292922321982657289958151869399248813965885149921822552343335835814851384741549684723891319966847259368242963242295611399295968746233616621919525725411869417157725428915251278532155635834325998371313655254393328156768728456328798541831193887887941374142954235285292789286511177538792873251232933464738684525175874515216317584275129848358129464118252733316478617771953419293356824844122158494172223858334753848398289293916914223115278144861869211287722748881468989326931888327639425862848344842364186657664978745628169666213579229777492398352632961577897593896439583457573765265681551654527993743155256165674648734632777445223168583573351281374385893171452492177261416478377737559986231772895538953725141346612415969668553239173525224922383346173485517552815528816935477758432454132522623738691423878156634472644784528167284832914292262152975647949744559696823485925915683974149933933868661376142162353434976368285355633544431919227625421545562153726872889451556256393774851935636761128315355934875764584389626228554434245746925581714576661495296858623129787329281124279861416582165933785449732952928139421948113511214158221469841674971965381185179193734272839737864988437817363918629475111136567388859332233618666153354113163382911631639988952615744594786838293543557263681437253954637556442415184291468228843853965162296527111617585118817387419486635937257315261648355551685797865969259769941895477884274272223791346764718798472673935496693838468192628654312593735363815133439111779719454791327455991796157273954673618437785498848927996516434917895699225741318864646375212771981155892774599798685731741845953299234449773792289371232249526335473576424143881159223146369285655877788972973318939921564949252698138752321591487756576715613699413841322512167454732568842352114379177817184831839265428751952712176285492633454911728536172655335563441988643349591511965491517362621687495363988424842569538434829886911766829172311259353864791742227851452987723626488888913558343511263765171631863215321839875162218639556981499178695561334593862751184595258934365632136923422518334552562139676918743562311659297335441626291216488447818253337553475423631883912293872119858711959114518268859254219657197519121522513571453842579576575415695415245893418942579714944216319963234521424575784734491291814223926153193479564843631591295119197462922427431442687413239131725852753869558484968754963516393185458991432471181124337162799515852615164415767924222317539981443869693593659429972626456281395274873155416253713816187647753228549424594156972547582787955995729441616665216591272126262423612372692288626971772473434771943914961758222654236528918172315487476886367815762773443671219123411172211628962448534934613243592735745663735641742321247386447447139714912386475259298861138591416781217567829119793916358493227119665421971626942693171236214421342891162962292568776273453178799571132922263171455844928353855533126672255373187271349585837626196821844987915816138429472229244726591117571625414714441511291622477748788525532391379197338177644963742118744723236464539373523325765642231218864198926761347798636498253497276729555727232239279556929644283744329372426234428157691199757973559988234445553213191492929551952955297753951599364243991512627845376594233619528343296843112133796111936145343432564318235852255329525394119648829165843994783839261132599165242533836253399943811975968648637143181191297222696219755789965823126324895429585188523335394847388872779588949881437178919391523167674396299123411816977274693846414689391129131123446664716541235853682853731339958441395116473979457875293622993926544632511678592127614816323228582186524314539276789349969919284479788642854142533139623568378357398263429938881184122686153388899797247891394681695557937128279416174234859867272491272613227234946657973415455198339638631244441719748946487234449327327664448833655663321455696438277235388331673843637818854396425547456546968945295471283611492654357347616247272522434813717141531453155697952247244479327727499689611795444559576182384429229334896927751947296738391798857337571973261563468682129366254712962953258571582914197286179811141758333694975818952621564221747982763984335439764385197537824635493151992341594653113116371531221137425299345348781554853733158429975412914726771449363356447514248933144652711673633259122933434492943429828172959662436518937341134426175513829622871289686742543715641558957229234424886154354328894761179213719566393614453998226478828253924534199912824642556136766585317452669516926713563463493642211229137517739171729671285376153715776241322232265829342742145944947823294254724469365224537844126296385135518656165856859983925739485929188598897132783139934958272216937342272216623275784433127989176926458941511746575664751167985112256943153517954638853266566935661216225233444356736622314313414722568374773314891216277949684156946155536444182454613447519158349528367376917254722954985192243315366937926655972326165328842134433257653942732249181326447723356781331886714399571127731297721383952743369922499245355923597944874959431889358745243751456361232245381461927656762172729573493863573181176689367248298485611271256841893381629176264163952468928288997399545193164939846627948358113435669335172896592978963351456466716227169542521874449644477952799591427491383914263376349474321474663912222691198323985345269388768996495352435844358651264192694437641345223624796422358378494743911448239721275225838332993293892951725734154735325896786221869691397167837664324915334435814578394674235774347741388968851786515892539581448846955537746938969413812573418851122117967184143436511528546135815562357752634841238283223994447675682861567296347157355226973684431879168938563316829263226119265869781884835176912311696782249721842931896569724362366362842273273663728321354664897213563951913197417551662274147413148398268633566541355969271174659773332931675464194395812635187161594898249816215335962355871554622481947476497517776518691597125618878137122838975194175544453416719434554581821653775639258778619929563686283678948349942525931686233554173655361312751215355411829913641414325684273849425365651148628183575491419189675269493883342824672746411759449945149573114237654425337421243211534536512611755639148419263289389122864394867147879142248113334292969295962363686531739373951669986496175615888832371579451982147847333586823143216242554111571861872947847899613258711519536488144815422128986497691227177525558815274617647452429164577418945573186956292213431434874426457613497691286238412259498798795322725626492986568887544414246762961812358846478857291893739177771313628243957638865883165688126191714524746597155438712629956829855635193194197634118959576287795652549211346519166433347481432724678562849125224371796464363177349819591492642989686112369998231239787296252171729792536429541731595294491442476772263833421264173755669141226219581434347858225267218871119987637214295474758398741659794565221476617854261494126455267739528677175697233991215915797322586352979597615245571399312368768569371858344571334961114766796936473549175471246611121854325242299129574739289586219887253257446826722986221416982112129927832964882722677464737739587192511645954623136325813997932318694915583327385799335297528267745549316393482322838936736798532884555357868242166935452627652881364782256299916344217514366535682211222392323733591589288437263163567723925355922596378873525813759877794366142126215663535333211218921894259362619367117622141119953244262993779172231814553211176469583361292945125591173233428431716812974187254699691121941229714954693645929735639668355535954729999664496129818929528893343841475173182766339353323885669598342598628212636423919918739685292631197639716526871661791842875486537717354458348449781944912513277363572138129465246747776942939236943356454478329925945217878984619651534131763256151451831267263234311325824545716196533412521991289285949193177297864381971972184137475768266383413691695484468198741654158765323429722835529694444562516912895927516526237195169151933476642959145233221666851645724953638222748466774365263368271834252421223467574525662943479616514597999239611215243265559746321765232975123189227585714285631176113239511198774872881187899642531141664628984617115671243346865228452756293916328245492762351611721129166429921379622572223666116558485638446341842954772754355371352543885434349513884863879481314778596961872346793917256895532553519723131971234143475997188821485769122327668717518387855353192563993273298186753352465873628443934194346326576277713432969813996218194346391348334284878969635434212943987755453825117693225972116173296223373119319344754269513296861565455811715875251532646138619521259647314343418465853289495161455857171628465197969835741135365353132255125746734665785259977445915726727925843242529721623318772292562411457681349542352315862727622258421218419319443782145521781316317297163248442193233724345964963181771993912449848328383994158169833963345758566282131256118825481594689269842415594199478715334679873325321978229767179191663933885372316512231777161676627976717483362755545784214779415912313888382798623455146159254259523914313199152797315364649595753289761517649376821422644669218641956482639719546268945166486358833224882227944321491426189224958235451891116129351884659737586474885927364869172447218727235251245426997295284978926516192511913286199439915446249239195451993347812583779168633615421631238886622525241758212167878756277847352518721738671913395771611315159728564783199347311218726852131219937548147163538248286474154661492125225622258871332995369121619179799383774979227428458875617579117997298745224435495796656314937635998855915152441814943731258316294157598261919567175282269737513443211684993544833161685491258128898361919221337213326415935344185587379854754646189638354763948387279231914621532729676223416923294123753363713645779414152287718114765121269871888727788592434827223219318716747338479991256974977493189915281555836834782878339568723242281714741359799963377984621363283714712484338183782273758652149213482935221366459694492542173889412852184611693538739123672341959342559798891231516938626497579671172644729512518946597145193944282287111693798415894333354821773596499467895897932317893125114431629496417245975396639833333596222474487987216361254872493794559233446639185138135671113579369147715164622995173798199192722859684253716998553641238539463641721554883919761331547596635664381743581143171745896938597531864769221381759684911139436198677753116965825729625771724324812836829512455275926112524368797451679677175734349984179178149157712982956269135386725798613434141821432888718418127153791226792216612315648519897825764128534513152233818912465261579512747172424948968917291971994297925513241587964684891852798332658386614315797182889317435555593376234963722685954851557749438379744554794949616738246136745484769554934597229667617618524366254432553639229872392293562189257994854182182715776132441868634656894871394995828258744872835576311454113824745535317264328474941915419891129623856129948751552657825379871193895129827914144757431165575955943234219446216832924843792671667637287651135899272959865496318641119731357174747356912894669854698847443859722913323993847726652755916172247433463658288835387684814738942589856554381156847614813832213625428741221513953246463561136784463939388351267836893826961438351445419121344475611799851564766133275348223116479634463396793146369991469439139346192889775991423281845893612237392698514721917378193967268954364695367131977463599241546417449545679742587365124139294997543517131474959381996486667476178478195478994897142729695187346112643535379641162452717267753914736947562381221643852981494155944798237155133843382361864438794895837895235462798545421345391782956378128127784572975135232329219356889119586599975566199272451884911578297663744998223385435124525993828826352622323569166216627634829129483329949214417126237674189765488793697664771986237729752583339224323464854122985145788859129394842495121529292121398532597862478531194318121119464879188583895821784218336627152922954473883426343233727424671144185186865647339691816465294923324644178578542451968779632629471249779665887844927543478729163224413241741236695683327613184372927254538871691243722967352967737414296378115619982367264241266382781197294176835394542611256757531216454583425231463815454453931783951666335598563814441932155439627733177884332447227972668996327447944676686572494738238959841217339774549522782677537912845222122579597429239834674241289595884976633262292334533852682232468522575312143491239646875527388714126651914643564869132937374759889713345968166931767487247474174799132754326144724676218456261115595552124236494545492421752329954221873425548391655514453929879854169356258873187393165449219439592344178185777416527237769357269934166491445397794375911833556352671455618275513539732624411862746813282684694281969974132118548373564424338741681112192981255314427397536266324298649434696548181143769561951696944123122823921554518687281432211265732298377564966764166121917731576642877835941873121393459322156813694971921561549518523545352258633757198581298873635127393324492854145859292623632431858897122649856424198192246956813862186153624912639897853211991561523413417585613149236736946345755811955488849643688522936126321619124615522474134133178718255199767519168578911881414483724156636153929293329166572843258293457548496555349155783397433321536847444295192578426253279196253945156195973793757943224772955689362167253432419367367759345674777612291935752373552396288313189435299718214421935255452451221182635256536789519835729126662949723794489746133495633958486434667935616268392841397523666431136383462152118681152737513818968627593342318311433883638376113265359188441727596963347742242249489944235963514974351556675175465921356415788231599527434119644242924737541869593412969975117884219858456963235926529957554623888425246158255678342912455383296161465288439793965468936938297527985132319992268115617189642295819295193531318681777455413169411766388263979414955244134913854844877817296594754664385262673359529716212464538617997434143955296391775161752891993146559422134635913776349959839912197731347346211728133453892998695951266334296254356733747519633371442917876961845731521534182928628629681454299332613991226577187557282133748138139997281419798687528231875115956223685745714347851654253284239325466172632166867847936263277243346572329722239582791548353561429817474537716294839786427713228318271145724347755923481325895196718477563478331939145234981431123982632361142367526714499461318238453931785122333123876491533861868195176648181412712611874111135612181316828247695218578723435759835218232299443892411498876386682684635566654161312561614736655979335592966419634928674466126947995656815663194151671436339852252433836258147381582171799812549157395513951142453528157381485794737577173287898971424452734927552347816231185388366581864311451831173185864128736183938484267952787551974995837452431762515388798365163679949743151146516551662296199988251886597834582626523794416882887532225523962855722471534739573142834793834811256725628731359687753969975469234147766253221199924463413678137918118198653111383945191493137318777287482765489912951759876193931821241816695714635124993261593332921382315575442416245353431499799767338957425734119248861944364981733796478345922852335222411119297457455179162645982375627273829312711864999876954984449237139655119414113637718662141644188468155823973544762353418573291189573817821463514612612777992855615497192737337365475796895786923762486638151268124224723496674737493113346969173457236364548582649435263863265843692368293712377939375967945399648611549133593994499219981858627821273529247275511729114231888183644815715234278315334935167186969891762147632618459784551939552744344789989116767781761892939916872324271143778953542874717157292945289255191339513629245695937331617888591633231225998589133191766916667255714841612193342763373671641288894171587892523334117523186435915481735727178899867895167438184642535288833367443427925993211793957166354722811762962767679445336113689712196281126919911115498541415553711737352436747271253273571133857279288526292795979672658194837936911993984739948463881899291631577122135276285879691878315737775346143621698499547878828211174116324592376368992639745884446739356466495153534813355937593221719741383835587276953228448544897472817355416658436381372146821331362232628381775537438627662329762257642218458617311572298643447629146217392243649775889214552562548314577226421525869136762312443549318371492224953575412755711737411446697146872637964352647657233234838232912481711539674577133241832933698433382613968321122822752385745944434121788129323214168557771455326387312321225295427991823414673215329232241695828139664856329926617622286641791499751125458199167542554896691667323211342919284555281761541223356593454592169945464616522842486316815493849163734414192194317311266723529592874871472446129443628148329129795311683539873378315749168233227757685883379571462414295426282389154266465554251984914684496168875818665792979416479791437551666614844581745493575414412841514828584498145718481532446274589353634877521493697555379618552292438235249571423541283125527365594117627291564759844289133177225191148818459281184845652858128276842819214894521192237968621357634997175279793634443522751122427431367357262782276871363313743767141386111118652392949651734294447962997593178379448261884782644376868797287485285711156278812219682497173455898395593137389643528516287298266582114686335866239741578148366693229823391584595255564611546383645551714461472457436928771232451448137646771758296766155272274837454169234741529982466642542248937174684487166343667259866959536452146992726225824721761491339925912142777447333567468695991994748723988691596229533295365228539129614731833782161444946125335946261667634239347143994129581533337346611155718721611157594896476925368463212993492114871929331886718189118256366632642995281761189213146241432678672588471777576851129819117279569664218739412266653172496543545868613965492118519337582331872421558128925314421246471238626831476951442193855661477936687429253927269846491953352657587831368836627115131684453692974217253665699626512552382478362556823131632176936518352645892314737379463366161144247495846493777851357432132431811564571114168974122193634623121652786969197743414389354772229668225449591254355841149763532944564699531472275725825686899849296476748369127668643937895281687227192225415229763762834411554887729451424899887138581945652122162872712978229341155292365512622364799483155759115413336123682261631634962242521992673562973394361916611175569759422348715487528529186992383214375113411354435266443887588549124696794429285945335631298348729371843688459159481212652592434269832734826471293249824221844761253227213254614227919451248698753576823624155816731118569323827197212889588322842382154292586483255492229455122423536947875173944778922391823883329865625134581427973452791414311471274788497738425457752127636471925235571571925752148513166768472526781553742524135635446271485336414968321111914232651528951563281652976112669411792845664511289824362369169259122862434589752542839723663996944553415993788324844112327189825115271155741188915211675133865923354897255475673193497831959826995619859368226939746431584692699146761899921384159339951967457489262764718188387666861488868778972214658191216635277649428737515349924692443318277321467329991696524128963644991449929681112919239568171153824115435865182568911181128836911686137358123655267538846812461267812361943385426237859245128436632453941338864792227353691931842625434261334975122163172131249632266432493274138453846582364158566422723277557421395118725885512216113761661911858884222223857572758857848335462452842451236937418663864317725661731364795392364397798447152264887868915578386119536617923126646613555423173746358332786212265499737612742545445775392182213134559115837136112789658171146253994422537656355159847354541441749186681272153568562265556322249387921346241991619315729721518782376551852141954321165134925777171393253351932943968217168122459127625789737279614421422479448598283116275126194254459356323712911497268757664269429813916826915132292896518769846745417146323139334198691514612738971961179266832594416844499993426268583189987435382451982569136713466784325432469564356866446957414453916179951555766399864841844719439914591662125121823211163274256235488536375624599367327896615418374536493135182567429559948223859518232243892869942951653551798167516392944438596229311457774235583888132447746289199586957974274771486385929172565752738122622782469833737628952321331131486745841242731556316918419541638163817116756717579287441556985393333314924632697527415364938232768815938151977348368146279629815467865735476817416574369572333541475271889571262917233317657529781485786439678894366183668392755823734988156566887433268363229391739641516566484499245611131363247776691821615922981774776712692451893941231662682467372516835669914511261851282368187922614713485831879593822627115696346462229331517558715341991617998249589198899658571924169211922278167765441955752161756523145166446113457746473637522625567212899647428819978622446244627199829219923329671522933375641568818828322423524298895612867155848691564372214242291853148439832745988211686249481694432647836914288362571595798169971997594811143647766724294391683528816961419111656493327374263268112144456214424461467547321681179432481855149631344465471193836747216588562259766845637851247884439347134244642619763319552898589424795554184751369154614439744895497343811253715657996941433357952349432593934723321915855943181936584224233635975443665451967498579749979762575316141744694231456588146972962451499114946119356669586485734324993656643427491177428216947198543678129473967167372892683356423357291611845383477512693848244378843882963685357225682369991947284596612122937177913927291719212834375312469452941288526639656954112366795317367825973342487842353625389337114392145777428753282324112278418219652729437958164247533358774821191789525328424561939265244729797322791151825179928839264198981974826393795842451495822467235168547626936724179939497172423648425594678924138235475373338475788315894657583935339816319747238816225531274979976864984881712265398394751584771195246135617498987438536732712156557993969839618835819127512149283761962815761269294973158243173385114263661997569437114239361958673798191125339982681122371676134229748595692462534333576277854378232835472974722275627667823334958533672939578861175929556881258226246273583886158332286686387532516458765962358628131465263598181613514325217597623132616415128483543947285151317986757777461932413785733335558183572271572942329324284676442441226959723136246326335878136599258545256515254339897893525295541483241351713122812659567114919945619794414452774259994697921935129789671155652741656484794851976873593472526612331493315995118416217577965776939628592912145968939333415749425119292942258159584232396714526538718581743537216911324234486949866522434397489233742988975151176917242199626658358298279222792921678585265718876778913193573523647417925113621545771991424468946837157582723239983123769224799427752477541352251739172332989333282398715357762661469642262242146457764462139931299538436557627452365173374117895925725674975718876188256472356831867467199242841437315471832193143938883549138864311195333792791876565221432748497537154569283555564746553626582393411293189124768612274718239823564726523648544457164843961731811962944274657444655172664285151962968831513265389392348289455834313213221897466314735294334349714299872153258653436899541423444819832423621389121146973754789632346513436792553883917896638845389767356757359365945213448241363135316243967682338296398981219345852536979267482965637262479352593755191269178327916284525131878865567437574612914742338263472639282469316294688352121771693985362247941132682993783619315647819438846639536981891797427772619474465512577983149281422476944835439363361719373744721348732996417765356523991938546986131153141384684962914817947842159341331411548416324198679411137312269414671627466371297135298941777278523343441976745462221464169517922989424775793644786437769633621242548288495933623161211315648189582474959623995444794658444746417696961369291889712131271967164116294289122157146542973313162326357126649667893551594984316251676361694384246637998583134669123894124197853165812382913953144442738874464672165412937652485524362992457715836554364255347997436226938525138719871827991455817196891148978312966494757513757241231294622678629668287556786523552355999992344579724349389174347242972234679646267957771231756628352532977765111664192552713547466333416991154971928822675491216518528578599215955242911126579324541859951227498538349789289479613329393389656771753654428528257874422152345814697717957282119111317991354786231585386317731213512665343424853141714944412615146897111746157681486763885989892486653946171211832782287257229916133623193197175811846425612256845446878948385553464866294294329835518167511325425152368317961268221644743864966458227642982279131164285847193496216593215264535791293964814197755551879157272533941422876445527556747174462172892222413232633758344232556858164842934222842261197224685634387384382918427659561958973829311466588278223136531364113569462641287336684713635392182227585884869419876758842331813656783642561632622474413924947365764678394396158264224443768281994847229737934963837512974551511317961578181653937749922432151135885484686562629952212929771862644116625182636557469953162269258536369427725236173191364665272158686463853666172264998695566628691791365191977966972663796579858388456216392217972169432242538193375525972911864857926126386473319247731739354598153363227783295277817566797456983759891596129545985964573961681992713292695429551282597613512892357719131579987541278593832778845395375626911845249333766335155861228487236836623198926242428222332463556243842252756759992518184851242416895977584381189225939957119651657164617632764933531313991527439573774594548921896172472477653592933759629613995181189633437372558546774419681477963246652693149482988681415233992526817173329921928799828825446987973257948424162222978614217332481625615325294328146558759152297453352997764486244537515261443476211437848976198263942128863723327982831259673959291431886121372518574647434751619478327137521627564713694654731453511365996998372465729494296328136975327269539914397165669952285492664752629341142624165749995388988795636452758258513741238568196626974711265557765872461544743816344711344373661375962374661559128419375351695845279655116577397827552168324337749117293346831559164335627646219783812418462962438548865243126349764679971196411567282721983492452939875381674118572287849383179816322146823922737152534432859357476539539578534162112432943292463452911926921943631877491988481322117985726695167295578692811294352531997513239396298377723333767233413379451318562516799224895715998396785366976931519815918312237126944489924493161652797386521796884853137485537274412948828311572541417357215322497396614492138567159133291489185164695937152948552868474761595598648694231355281596433164315454956979195762993629693445724318684481156126928946944346397465749128812314966194891729878518119558773925797859321582294362142473582677359322481286283748268653145728527229385895296966126798542597733154911576176286412488844542734538827463113687825634261895787532961163724433335859156461929111539582674257544953722719133895452258339861512492633229625533726835173189148156849618891351679933418288282338382912566864328257288714346716966254769411718514818335152379625223284298778495926132312629353349353627385224979322725885268684357726893766659169153731349118743376322867485253815718267828291848456896194994641341393365357291728351641794354911811196618215156413483347478135161224252858288691913243638812875274645357743547922399336911399724253927129154658739392961829756618113725889354721253494844832341534882623654519191396714917612144819944148491864592336875787556196151528129256478919161282471191262699124635611845517278729242142164515251683243454237952357758427487592868152615474527563439384771723229685369664895732631231542379297393987151692127877695552231692591142352475565479491443649944577151145155953241187237151225526659834843663399153689871853935934139624482466665366788182331334487314518434383344127168141263131578686485849144151782432561243223295345668131199649991842691957587151787466823726574624227166422666494755989599826197636785782243257662413616495332876221761435839346522691588153293542243324228749335118121165534347254438626558731789798845896452395754977525515432869349198589839652646266972768441847379217684524477925839569922159586178142435419828192929812986376583857935714731891549392358918224553954866689694929644974474379762913124812225379731979913411579218866562131777154987566113171451716488181227225911915835622924917911967345746655581213422546499719872748547928116661931568518974548518581223755199776532534525754923223286459592949231746136414746146463271632984891562175424813469269994689296892514931413275652166585299382327279868343212512316326291453239287925746764493227611123232513267824426181773749733844332385441474825225371258964561692211835519329116884859248714594362342311635754264411877515956442365359923475297554343275462255291998454129121183146999153529367199991221448888449746885744171177859879267314488255928495572339718642651798556319794595517151361824334521399981833934337753711223473986147235222257625225194918813434423647594768239378927227181189519494479971444455151785854997152976359732114738734323346194561825768326931194286189447823314457854119725244596725182371153391597556981712119556332473198414824852448295761141711988556265465775647516387999592477391793257888149237177297261952154462675353732441771982129334665395854666398864615811691623938715216259116114191984964643563876162984899697314875925696753971123894333123725877689281711968591777487929822156774137971435262896758354179498739315946881974641115272569618329116242125792743753913481535877999386654729328333726197372813265533879363148498871387555385374526183917468937283959591233693219228448745249327154277192615444574258629925564657886347367452769897369391854117249655968358429833495126235418345682513121937319112421182666115318629643711379251847159959436357985161225974595642813612116674331611721294131121751117871943632881748159692495714561323445642984845798472415816646319483841315231593734878553767853648697459348735186519581371321125238884561888523129161114641419885193825595559967389846117393164793372731561342859517633288977254499885689369259652567112666785382464381174328317169958727884541119433434833146837611437282779215175316226498864357923337322915799126311813133784217511651551312715567619786254577482533527179393972422611349636681613817793441496213985785334677134198242146272787454451798116557335191382236566853392721665339311116724741745137227314398685733969122513369347887555346688212253354321196418372396328864364285871813351233687873522145944246153858219516683391229553118958375723521641399151855859851954197117265942997283342461953848885495817666134244533779742455233516613177428779292747813329332512588634372416262516695163186487786581365736335362381481229764584955937524719185533874854639831624113255879844824796423343945515412723864579232521636978721427699779848326922693624445688649221759169494157972571795429659551549193344163193777521439899548642625737543687629471659842874216975237793319357385761163266998791222593287656799213669619384186451245374433627194856181936528853855525144686452525278472494463163928227899434487785964355574648691171831421321791619847449226987219233122487713215986818341351473556929223996935299994834418166226494267754426753713852972731867881882363417742999728213646355277995772641436362155665877126433994448373657594161521116263733835984843189659766217929682483892643918158513295833132579629418352435514452899158187732249592372537392246449647274191132786839999975719876796983661757567559892189436542881717276646725297194121539493113119292151641932678698793226423157743297473351386195416194787717279372341416531252339273562824171251482483844682624549987732885976191132624328146346445211466317126251157724619616596353816153957879881782393614914357889887568655129562561712621121486854574975325529283521436424143577817749883531254787488272851644194224625798384954681429696573163777522529517183911425853479797484997798511619136452778367937441955592978374179947621492153669225488893454884564727729997542459498171139149131118947359376549377839424431556964745124574534687915346536445787111497224661219473435898238693477972353167266396884264957611614152963196663314562144743164372971165417786691389897812412921182381633935371215482959349471589639574764933584315261672482728196968524934313432865816893634436615614173292338496367896193567297211978213632943314222128553366765599579295791513952845519831122897816545845571498315968835352196492454995318633861391864343142766565424892339693214265957693155874345277952549648452716133725147664241763335143147524497787854394245749519461944967774354862353434496954343494958376536673929727215952222332733278826911424645871994242139359943212558351144278274856229523551987953759665274247368697661542273815492828772436772286612226454426742241455473164369252917183278667611862184289818341683691667145831852567413421358229444374642966232375898525252236427153243226772129759157646812794215584298667836548841623628111664584949561314584152648445677143111623789162899177532517311987181724751434791963165927694458293962712382459434361653812265985132494536566867354124667924689592197117346414463288992679151222713238252251572474761178129611796995437742912261947441445471161798379189224956527696367896313548423349373325417772318495859726252164143798471798888618173764269236374264243977317725877276435246511583712932952171474274241291112649974523891325184687445681263534644183144587661491233912351368378126434913599652732944451519168842671223739984794881669276268182344947977554172851421391486954579335767579665749688522169288872149123516335775258524135311281348685139764244766429213994127762747857862497925657961566561574518434949357365385529713783778242986791849468813328557118783551338473171453975733717415755218116917839533969251295633532282314653131416561237279823856262669197618919541319641425592721164659533549846771698845557634451779141146858561293114466488236169991736116173471454579346383579423566245699862463831779531949275212143567143673531676366548816142141485554622194369325166181172113444515783213331717565532346525261714282637333512533753351493599234156175741574845223277117332375216743852638224465696115558414928114188565152163964158469396582483472235845219146376216146297132196147721233457824914947227973477191222459963273332967415924949329334563728689193712684652544655257424168783721562395224147916741589821276635865322987854843512112598251849824225993326174282684533617374743762953623221648965412978361413718642215135859973251896774392223688583223823489497163687213994143333123751872513253365452844828118264474914446333751873624735843758782958521937335832211523174473245177481386294192625668512468813267525239971717825753357151618489893654879781814511526556345562617819121147587355843799641895811163459774218844213349739414474551138998935664731331466591996641731344676711693928287454449239677114351235162392299855554437746731991931368461189619991968241879458486822934132947612364884153623188946834828441172637958585179412971677148862518348542739681915986229481793446125928921569871619586641586718749866499883848435742671831447688344121683565488294823837591136339692126384289541285877247943247844649799996237173694542739664858755218247141631665496213219455914366932935512591936765832547432452452423699282477959846376141723324737565893893134995263479454118844431692761291879164363562427932273483726343664264622892186818677893582628817331474447665342255875691131914147119516689946558237817193614144475232818273243717994241463242363942919124411781922229139968542293829867253543688582688438885239743625539721466264619845221648153275845892127299355683124138726152749154163874859848322292514936632895468253226185416448729175459133158349181356741962265869173112854148481986337953227222438653413583756538868321727383634338894173886238864996642347956363225427112895774254513729681255142921167978736336494848892977295668848575185438415942394658151837211346663895851194812933741997318272675947829937793845614616915157893835715569361445493328611525218865267125984233251392858358876423873346479437945682137875417963261872587225419977527615488949822421577721123587965259224368586136485561438489475657895313466928918989871238384251467579887464571777231195572119832854438123465146686711278347416838629814445554765764521325199161232771785876165924366775511119879157414715532614832516486529696373362798359979633953781266318259345447855242293415536147147123251463831957652221869919692931376244855718725922317315624265681711786564152456589143261193227737189695642513167445775839237352552743262922932345983611485876454996979866637928883221213343185547551241555145239189739722693942912264426137953461487938625229812663142557867423961263373851511765452715571231783158776193637233136138319217129974127927633739918735992153391445113145847659262966634557167587579812395458911177936628748467779126991935393829829563867549944814686726592318315534231323171569215177964255938756916543166252721774999686819311228385545899951473563242531311376369497725356192912271355311693172321221253221532574999453941942373237691211467316496123548945119732352334655985737735142762232347259271753866181397839581819363233561784287169725422694939258117588278698197373934992534475976126646491544681945436765295471962747947873559638713472547353131699822981418935567722936378277754466791646176713856131586415211491191282357324244828536622631335641547496164875281699172268968635811569331213339689167373471425932333511599858894494982434417556456445787991231511391257818139477651135656492999471145545262935183943462553298845675673699292782359842334884653311248992622554271672286241441969191122828854234295759355667735167898561264875744128543265129649854663194311312357774424355486224575871217183526429965151933541835274652621144652938396935369131698764111346364659923785112354147649539973926642494292734897576184319685393985299444359884397295562647421837555311493974622212431884229191313444431926276195663823283826443247554754155886314486699643864319388693616227693734616871913628464129852314671398411524266522675318579352923653347241159399776254799354799246869874749841965355219755493247914656991547759162924123362791952835166623396424469277569777139436984896285866822819486424538412915292164297385567784587722143942593199432762182171734598482842632577326111417566185766845863127912171983983941415966717292964357276919549546578224347193835539369595438189924297521585652888573692149868592426553517761253159119628724443424434386799378246992158491218879379213776495392983117919817833833129558128352763292868448162435243233367475314611197545753699715943583299992869291925158637666847936141148611247324124989648459785572373779525265111922825575887686692573346152434647119632687369588312338189232616317871614743758348817242592185377489353449629756438721284839254449933765667884963551352889262297529893399498559239812634679813719725765431374792585335313432158832725737376328879661181821725625555167447646811298784648636669991565863974675818489939915328639792835327558341942227881223852215813981876691264354232198619537159229271722721277158857335592745656173431391517446239543324317414124445374814864934731928952659991771161131435799738962954233435774326564322245637797681862464645151797562715329199146838684282237647438411862921265144654226144335534961334673214387479259817628299364978273361143287299649583137814259538724624957216183271614121865238225851262648294837194662272945224817995122739312149347771412249743671674224517113498771465986195975689295398182941142341922269867647577421927825323479912679659294625789193947567924144598448174658478929873991512911659776493522618444774321717935526622959313418284415122613144446144124411893697121224111195769164535791243499825559463686691744956273353374227851527141588323142398568144789691468916324147541465765157356892774634237731217341265668923216597187654177746849812243227124671347881817295885358333361594858633468469969651334866441592478715482162227555563346332799225641642967149164662417837637512699975826881654777638143321581423665379552399249342831562165526269271136156351762584975918194993931816461865352337787738646112674156571273733646369942517356157141541653451318354881426779381751354218523537769618418643347734673952234331925792372668199652424448924664593779533298153597134657625243752253625732193455991775396711318316173452269355699174611139459315312211478123811912436444721865243339369918833469379977821464291639433759327743765584392584182119386617349526725911765612725588444938123862574774559836363755674851936653634285564692335217125955544266416614747267921237277839396975234749927966538179173579967213129257117281665391357271533941279822547564776315445227572893684676973553471217341772199454969565718148427369388957212223813787934686794592617427363333395662817234725414897892675821294233819868651314721795927723978536785825737341751463158242345562316384143356399388864917742667198248189895275487489344236698733913581144276528312731495634352185816166176861414386742656585147967952947311436354366893582714129949372125213867232781999848164148155852779665317427382847869636862472285672836821126658232747264628219472338616529212788491132519492154445521621135224374235647679354447747528176884977739888465454987759361262749799417834871176476185374618911616412556447311153419569733326678317526879172126732762534611763989969918265545642582622423879939612471493155721499947887286919423943947225262973899354243624991985144411882393419447698371944861695646319756192445297881171548152424912995235834746392223644881841438643914673847193772163938268611734348153436733229471584536798978598333247549651984529174648355126421858668947275765598572772528416763489688286522576594871451732762813726796789941784467535944683667176389951743484772647291241756919765228349632449181137849267892735868233389555131296519973589571794694955271717512294953298497383475369416414482396831212176756942365422344523758619595526833487435216896521349182197715557118731515831476532243337637116997368755764641644948918345696789845352966141318624235357634759755161389432616948621251818527342836782571541874296161846957414115366896326148464328433294443642595236482428643612564665992992365613747616758881892327958555393863972569171438437542368564341461397856647391246794125212869951848282465765392317453636899579919844136951749155425298799935711139473742615126551456382215998847778739111964725192433464569564298813224171333273119686981572719161826556356393492395693391953512329781431511494268313841531517965581718332922713745461989466335612121631792542115623792514458882584859121712216645782957673958168384159489559564345926816663919835134965217882233614459662339428191666455289211342467151698611779541864974152328819111944464576369544985234891221931135826763578194951277732918327258651916643895413433596424162558862268318199525767286599119557625941952148234454483992239667156124546648543344998842961476916974225581351169621328556258664786365978241162587828221663156137577656231184291755827128751275822497844653516249657486215655163587284795752317675216631443273516517742516373378153275946423559618647391462533738954984785699357883349959182417581315786698537655356723245565648652278439423239687331181442672716425343179395562868963464311233634365119763391368984754773563285477487493224673982749493159557617412141573381158657242816451379641656255712374371693333224223261388181143196356684141655257918137821242951663463268672156662176366469645381955959842499765454943722668821287967398851892433279147213112555248212993543418474449661873358216752553382838438151196941621638832398731767479293987935722882366933349331199289946243612485141281327823327126486791247115832319359797446884947268988739746457685642115222184491623213575645326632642915238214311982131876213586219238711441787342493779538188542713355314577127672227549272584248135991728668482113882256817449813169768152977513328787961333241773947641699751619131256731436341876685556719622156473739782493383913576299889892825614666675384944628323236713322879619853741791128887682396331242914598992377643223499265852657236983241136836868249816941966633997219113296989253746725531798221313298836696852128828137163997195361713712646285169923625511768525851218214611394415832254977142425172489852961277665992286924935762655894914945198585232538713459775287654751614486651197192542163814257497175189899536596666823826728572421186679548138162146988231945413943791989627348414611564341462969658626774788194698265792421822139111723116122551497883778723414926852384478669212312615351146493917999684485359517363941679879284224577347435836688155642318519567662674287546515915263674589288343877825711499733193887886533694479875745759298279384664511664432556131267235443952661687817676734687127728779581364261616693364899161741671699388715697271445261296973136745724948189848175814963487855232544395243857696712942698325712385717572431372167178776716967674227451957849438578823868744811687948627163529964176773441533923628347188591518484911232726413292216132333465621219145432814695927374255764626259527777324422327111282921181219693336885382321571874347284949991387255175453272769993835351432225823476438672256193313456742127783667765974513934794168926767858865534272299232565661935595621431293273478894919631135913838369389251154961478116335416574964916911374633492662519184559324876829236113716634134612928646447338351682531957777828855126687881196117341613968778593642183834214996857569624922738981315214642446343186236177262515746399417536754892481141679757195373211749425166831653213782279989973873941488272792268314922325158457284166891172365197226982862122431669793432924338133497134463219755446247242665527444236845955713991245485241921469985676762722519756122646544139939629358686117811882467563694724273835625229796486782592442782821926313275263721588814143137654558929481413678268332457738669114476773139794696249356376784681959334197446673197984112167953354654892527124722921481518161241283263541999878678855347372163466356998191975231468222554356115734832873269296763351461993519864415299121721312419524814859416176347433161922299463331196419766611637328792229894715377258572143281183243592665265398784483169649396392353958438419425779582931315174198373567568781221646119485973915474545358159848884247139221637964133743549475444861954725945496913573951332582933351951512847195638254632911842571533381274939948947262881442277724933957313229433415834395668483132852393414838174546332182714968926113561998267496488842733528286391511332536139587734425482763376197865131389255417384739691823718289719952959912181465432635192667698373723211691329479731224618669934558211163513952187515919958269218226848932333957643956732943358328261675589734612335376885336741673682419155756196517287646677789431457643276454139451925294544467796893779255771196781152471658332449418511831313768375662344141751619668153759233656688186251452686383945672758364228472264954168712684246842286332814288933113497116993946911372113822353444737362786453446886532514235788775831933274238599398483116824994739438288469661563538987913781229513623671131177624532964549131239574534932911333544841771272672192395442227387919977312188285864513118953832478598382297248368144188551764298986976321866669311144643867482655383374649536775595998445218813632692325189259557434621952951316152822155259915998129423742266211415933567924998495591942315285122951261313597512443239581852415434261495655193574371496345966823552443238694859332311845848563819155711561783636739648356353635573596837629821763655383165352932741953382277359816722379527112413545225686147433774848431395396114399294256144642446329159275876218545393228258611465394135938171297248121216422974352448119426466522988694689322839162867958434126885231812379818443744929666432993736937978667987483767248929668692432355288715899977634115421623461491344738935248698827293854943333678784326651666261822841156526668546825988613757778475583223929863711257658174922898112674368588131478157525641837163355378659583144394224833168279246566711649365444581677527285966357153649174198971331336624541426261247555344225585545628421888255637617537213345256422868391116854325635518338892923158355963112615599672245583133619211723765665852588119335257936513555996726442543625849747511422734875284518364831625637619173293176173492866526786146415763984187892159737667361348122575865224633776136421821824498434136284793549157544452148672521727162246854459663127969121341442317995537579957839593537122451915954723556255431359912281251831595565698698795342156889594637729192736381472327315132579499738474261465363751224987888472812648611634487855741145668879528921349523754752222448242961989731644268316673564525512953259712743942883981385823821161299348834413392812995957426113424121227222596293576572474299512515428649377851816723255591245121989113981369661455316594859747492147392238144362928989714366115484213915965742662455691179781885355121774985863624895192919629464764484843324656187913342942676614277212537426929113776872416876216683847871721721742642378573499334345183328381241545787197574659427618858329115886866238938285786135921562561369265763814233859165341581826121643733336382572749794231811772977265261377263798612759929786111736471379733629452274993917532454815752342194112244756886224848518171921886598468376994761651764527426626974996795965888151686271291541813293966447665261964595314261956145656618733956184592668763325434251158314246643961187849754935143399724146486347985141513851744621257924797954398383359834295732871675711262466964944386575261736463144533285786881699434198177914953215271853375642223149274981445416145258646329193397357481213946619248591568693492133966748289992421847666317365225763992164762933214497116615311481785514167339158142385787227574467518689447484253161778595591754569448363459376957419966784222791991168592948724899835183316535812977717782165161758654137912948213228192545272456721988411639927259935371547497527744444882832817529611444911673892463923689772135688956232616332596231532366572437581535479434832114832617366984293383471499354952343316766127825282819663292893871622624976872172748425892461284529623543876488329335541418436781272819478346183538124518684675624536661116375534727434447464396498421782851534972839471185661487649866963599814582223952753389885767615131923576247129268821194753184333634919581946497144339987577892242516486751721366484533158638124351844788538494547677854168177261992978191293629251112151275636158638512879343588256611443938432579794736592331853351863658448413321297348654457515119548439377957216676453563854226489515169374792915192239278429788134456561863599383932819261279743153389553231645131545587925256128119341496451427944472561953525295879752237132163226749536722748796768125645442884417514582722895912184379928717935492626453185463931588665595248778284363924171721741765177621132262935927471549912149542314641352223437869352715663685647862643623417986543742214517292324833585274938853297129276314448515545876968336497425511166669919742416341842438743718731379847647725145811567534553363931475645733561234584312152642514593286111189675377544481461548713111245616749213845313614215366346143545779312146617881199449515525661625212553159449523173424544725113862882535169916564927771198512143912457386978958826492823853395749383553233164744232373414561219653335815522535142414844899741663845196726991233551855362516178759843934676366245137123761747319269784391715949286767138751567926378844186418791764163736552658134272174518877158286333111771848635712463359338933582514192721145816543114249819169328921245694777855155377126515663716614577874835913355841696325291714652123234184893842879975481441897828532284967871493111488467639169577635137263927992238386796313729662773525314299325454123868319437439739784932718381783649971397451816435383592266744996322356832879589513373448129817484422824972123843684742263193512641762125397421237118194894923796399737395451761498879687366668341166914679663514426556612584346545172364984881239212861259185946346263236528531955558592537592626687713662446456268918826133751639665782282279982118841222194882434462539432637815358782511396816442683779139759281644451973991323756397142936539497462153342445298612331122318317992198232447214362313141118569797254667754123885578885136789637621386916928214318687747412252876921554472653616454999392275138744658946873361238832151385261825393738661962436133267432211336466518299577975957679613879913366252763692978995557217345994536381794832968766636245414584623732467721725891925925611339443563161861657275146519929634737349293849843129388462538998115294623478725288351712473945167313124375274697884847993226398612573622434351871775225158278223754427917131316167952727794431253344842612169862443591228573255416387539373694419273739685166196978362265794254963367679547826714355597381549781269561948362632743753279419216117154185922587634827883974517765136627595227471524368863339927559512847599132992358699535251456394463638774131118943867258796197889373461475423437331993227116267985891979341256273829145361552842146478456131556945446933345822331991956744674271458435356124348112219837948634277863471782422864961778233925551748469944593134961289435434124679658164427749423712495586474466911618675545198864379181728421372582378672279962595683671777323124821662934461517762587382544557654451589258144164149797449425111477571451436739265349781331187431796179312248894184462425431374251931825635652849761632484124146928226289796443265924776873833833475466267635644283231345948611845388151522219721622198782957414362137957575976365543382184396874236487917947436679266319119283943679331257252165576161536316763173997293332344922234722617135517148158793567886684158388211383821595911635775437843239762264387951219533742556648599433259445436329813238349411923138234659362964471984835452442135235982968436462761842276117638254877598993313948562844297832683126421152874353355246453816662471725838611811248646772146481975886889828571112333558787156281669924135578148913813839852129317364325326674551498928362583364357269142523537879954722831972549152487756646936989874321241783671364927421552229325612595113479654183412768875174117525488738432324551221139759671865989922439458159178396615827321883767427195373829827336718616912331976486843684766689648216251134197115211922735583294966633459784313867721614432176129928382577441522123182961499936671243812175776682513613624438359668159358334632825243697616569296393562788644319233262996556539272123217545474247246982975271797222892289547334649582365245344513363442262499876931966157329291759416642432119362132136537321662669367824843491375849686137686794215319133572351873245275123477473271974159143844112116969515175243284188225492143219273335139916971734384659522542639959466655173895842952147962112833462324644341395842481245882289877561944583731774122834944541364923919262426486999776265936227512754464878221323341821924714696584469716117141288213731283245949823732363672282169461598643189811726129376283123361817844689227391519144813375879214813869726472712547266643356269497722976522778378173782664412182147226483852188311765486832455162114869719698215521793618766111576828451532197114814446363988767124833641722381557678629913343633182757492477371331514326942464866696119535948442395764225452756255277853923686148764717881659146111331338659916315718784166418973357198645262878368338387893119651866193727291969585223332253791128113438764496331527285234211795959896263455762258551173515475189219618427633137693662165926541344788762913684354358254799543336326618824371383199693336458375282285332263439439854134498378956123119738114341118727719488824931191589235373393281824994464896872622311543884557122179267127759215953125222979148522761723381828227534432328492495799652134186574819445961221226641535786965257327741129244481511854565929526382351487916271611411997319637759991517545251141212719289629974912971523724526984333563799581587952645931123142932354635219228573967974127769693418531392549144972329822814832843649126884879572191769417291642842574488198762853612946865333373285177672854849591836177499861164641326436624723516221633661357118583212932118935416714887923569555941412912898449865156588236817745845897963792273741163231832153967451683353932282456436115393679864635795671614682894894933975149556682734563335626126153343554993794363363923963982811912711648531617654748295918526162953598991478323465432634935862421654485263331713722194128195346835167716515116612549472892812132978794896191847498949672556922498347634291291719893799726253577523977866776137131658767834162488695927459637499817538733294383724515511395565581354351233363759834498733778686225279844115224343455682686563246574248955411229442128997218273913586199221916453162119833183257193299279132249543799335825394645541639596249767442192352964987254366954968893121175477656383361389614758919444692771518939918948314858221668337139136162861965433256715659477325137293918265231215934149129697259616762184516782631695589123137222728639966492718869163371837764729186563572669886582431925629815275756528213562918845659523964266291193779121793911263495872912474425326374652855796634653974542556576545575372571529965344722188427795931857825718964513923696348277844948913617645347421463761244764265864858943533177492887155774293884868172877682348724767573292771492935886765645712446714269337954732362116862226272474414357322927384534586676415139814997894559389323124134889452472522593234892523765732591493645721777652257391995489113836758544896199528332856416129586525248139917595695618637525722751559942962923133894232363594175533281456972544753654835722225282718279553291351347335792188438653398282992537242932933886532855719458545639439289535844273813197145347415685287176392932672455538465328435937785188895469381722311968262122969799353254176176586783894858999663191944228689641913132651283461864544539824646372795751334578997873338987283242362993634925672894173691435211992577126479957321676273399659164341551129564883155721941719344522587329847567753949673158677426899833324297837513683925496468539194863679346241313641671243994125649687661254593733723314876124851575463327682563279733124417947379183193418653271275144182248827237617138585253456581395547118462985546239265741538394325698947865637337948988217161661848595343441138976283115837862283855511191692329512787934426324423942971394647412181558473566113315226798936396178111578453632787595369849373649552514469367576757538288721214811162171411572717574232368733256463991386589637641426982186757939785613319489843642433998483495298274118344438641195952727858447863689251496111451142259411756345617572395327392467442821113229251859746613622625397885354259464371293539311514841435817373416232536935877478712111115376279348959732635923516216157961777238817847153548177215754992913931193122247385596553375337998841186954716792777226945299932124145832471683433474132387261337131763193733123732112353576529193787583252359793115252131831218362652441145131484714985211224377953619244981925285838699345744919212923757197641682179931395585327372213346819252214882579727184463772696633218811984464131236993564324131924685933615944432785789842579816965147853662133855221836485511351782552413356785118233527472624669776864195255121752983915141323216991176546947999995625925511127487822969411455453121271476217378214583472291521155555877464282831246916566714941642484183181132432955663627687656836825247373467696998279827479196785535238965278979337983348231121473425313819611928325283625716591363323684734765315279733242358277253531177242243371549235961491497531486777345945545436463358556345682154263312344793514121195433571442835197685116656246672789313796573954523278377418891196185748487841
4857921292374994476344848319579814713865768953663776535898533275218932557966225996158292118643132961613776366636337535842154518289551446356239157862615655958573853879795462761417193495999822911589318993849934751586768995282851588967946555284868654844136635422797743879286769599959317942917842337724615974856513817999581585822385154632672523719835286968997822888454674497983724379893413911516391747224712812868544359118521466948591895668685129249588718596492544449182675871544296972549183358631715474844311747834731857341628466871879187621345871559279264759655665375363259335564855729398993453898197745696313218111272995541223542589414726554366773766949312113999265665184158424339243625775678481939755441592332828688585434772497867591729386992247376658561853819463734874117577153791458284333326434346452326696681777533182638894776453146857871146931975118352187849721871171942548138444469616171796173199813678959421228615768357928237644392921516315843138574297894149649251796312366479457159737649487854931411674722533757152254847754966979899267781374418888656348187592242616678676764516283192438125792597854284375483877721837731646853973282787496636645924784747796727761887165755218585456458946469939687489276564467255922885524818798671466822215974986549878597527511381563687143838424957563963888868228332644352979192776491856987747319753182173835779443789569891992629582757189172973218915624868778497994878242774568571628538224389188821129292592192398696171427331925916119471432983238925793477399854369894638421458159651897836956775597751336812568661772991594228989821378827753538836729177694319129482657179589669374962848345651783271639313158314729939213662331931228912167347747396224854667888347852971415817959593265613232179376373724661978976859117321869613668544674844231458897766955258858742666414663638966817445144919458257639244816911589622989366381781659576328662563927272392337831514793852364685122997566553866792912927496966355751549645766189812459842219398557741489214851336299515398291396289372126336671369699481852445983659142923326985292955545135173599218279985693665451774499254393549571592558769862998545864921979663869539487995338749921966977644178871543465161247237782123684136629885942156578698981514731565317171647421969957556455394289943134518199197671755883416875983695735513877825429669854251483418899711689546351912918547723977419637942762132799747241931343841911114987391754956454446934692431641128383289137885683258541343817643881997676651118418733176964935311516454999511955996183317655249411776393777999593584767181879331918769794553941244277528671385554831947429485515599351269847918712667787373818274164884744524841352539458228424881176129119964493164316474537314216621583778837557879679477188862677638493527898926321686457674241776973188398864366769334514976597129741551383581121319521512774785431936586495291556921524243275761186497717213271838349676284699917367388512138856318467671522771826738362965165799958327818849827178485181812266734941242362857191447543976859749348516718568277695323581894621514114411598891994273884328435518393919996463223962567675199567117119516426829912974762945976923438691985454253868697324753451137674545984329293336832538521319367381715425138596594438786297695158374447155379757731931452231521238781832462748789586873698127462166594479711988914944345999627118348591454428691911867981996489677999829568875119432993597656644654669886444815877342489653557163651613781232889754528568379612291349751122545558326386921551672514111263894785281982718745941286624396676262533558779795775475756465793279432541476249196925666125963926689981287651881953971352796493439218333962358996673994665442435529299731552252286486699957357345458129125326551654973255556489589683621434781192768639778164973193711683249685216719692289213984476396157494871564332355374387939612962317945632245174639627356423137977715291429436182176686528667724711783222468541936972172455311148219129458542669828411511986296287441716118198797971952984547926144552827311837712573497568228351282168949596543961577931443521228762527872563258673841329896575154816715197188337532819989219645658851998158233335517874729591187272186639762862923821335881736445127298979957886243171356168712715249965759278576485879363833268974828425642833637917196156499786498832124911362937895763233776922569851769379592814335495392811435222885825797763377493829572632799845297743577919631685617964913244825552765997572628151296468567787214546965971744849154896481725212938589718635261241342526696231285979697932492343262172559188791113913556634363965625115694887621255259237188343824876619949919385366165649693318746744566212617356877995191944846694466624815663169352742137814871588142225399173498798885488392778343429454579157945698656233126281369434271693756757681998297921784516989663831877428788956599916378899188845491733738974344626761931226135127571189442578431111859221598267649367214987396378356135261689995829395343642538899154755957866958771889149816281272719784188286693478426757813344894341359922545396823297499394435497698755795928717769349178574531722123715819273312983225381173419716859825976123767916114992584515413178366673381324266998714375963158727692528576766353914842348378464197648936183984595485199199813744211335312775923221542195969568888833634685858789995756374727386938629578496453543924573188119445385679669165528818994583932166981551753113562865159418286891651465478691855878734688953332593528994842214715855269652648648182288388319629447866678733498935212543794155849891637136217514188452549299238347596784227759183916992996561589998572779284369149284618892934868649165927148535277141153674693896646499737773871972683837244542864448625179498284329984741329842281874663185353197649973178832358187457175722536648923848455618473653998772999186656542917264559993342555472669559165124649169883164226634435452943255441461543852953741734811141717997673669199562795161183671973255262914766677118425256857474756217885591493496883472836319688361488152791594199496663491898251339961385793223397761945141664716257875257313223724476213257429657798522685635897561842241678797886888795497442655559877238464457866915152716434358871259349239262984533529419761284722616179162879735191694348178753549942445462783246821839844785185646634938992722519699497981144186853886762141271356438889463878823863616553824986175993592365629586675567767813652362764812692883219592544991682657158889678257692384685281612547937459472431121769896187747792471953685483159168195796251669519174897884282838446918367286914519936689228487917318229635587783618489971798449135447344554793176659546145536411333457882922156219531916385426772659853149873473746787435956431151253218745588444617559486616241665515363529723831766675765153326797967574684834783143693381473848338765549784446966295454653668635123686821416171983245982117924148788456674971263349878775112698752577858345793981717146734113394385373857416956861468486328858687526569285733541136393737568558183611931859172665689483779118369179256251518631751294647369845233188711813934658321224347979426716352466775125419995766972564681166836357843396568346224194454318453227129863359893528194457889774527577159421453817337445647328165344221427914597255592234496483912269432894242945384557436372712664214718753194323399678135431873762396448534838727675789847745429673349993651251947365611877399464758396148473641153677561589895187351575835628934821362417931599785388299836495883778463337665327864783655637679498948682887791573843765979387582594993719793155736869873378864273847654554686398419896695354468719771746288844845565546719691743739463284447752126329642135294125493884463639748364583568835397518187543738521871885969341869532283374272744856413412976827663897477735313999263157263289984674316512362395819714816481888427168676162196788581784892285868222883675861117816782259688514314191549767224269473778514469995285757593758989584982265568979127177416192518333559554815854578524987746466273449697977356539295223264343611414267719388648479398426231572439357351697243869562576121573371566358422685513732193833886198641759682645461397531772157194117629384777294883414718949885178623648565711871275946959728334381812536196191311353539195148676144821436443697377189418946159973441488637727835432129548937178771118786642881376389652719744867332529577864628237841535745265173692671626834715397919432549537232388228131975586469457719544979859539884141247346684827979527235689866983172612378487389763399786259161243396659942918666172289552467638594332761971995219315347544397499192622974852238169823569429856674898434325727463675986713482944527644849355798876654999962318937949715888573215195518938863681964477839244445618212673696626321816564296112938551475187545278647168469924839535289463278178516338575945291234353224571581772826634947223669551147889595288463684395119218893848345872544637223158289716948835619213862362119194997277581298594964145186688835257327567167859349199399453816471512632315879891184645344739837274878893548179785824747988795616376199678112271768442191289178765895498464743727867186977238623821264567684773478999691534163859629948766453661676917464714636968233616896155935488214973674732214817693166934188389465155458768118563231356499489126988465842896943772172111812464554261218369753923192143913741988149251693555875614867716392187989765658471869161285954849449158279657978592645176595884217881439275817667387538475436451563493337469798972373684912284891475964928345641172364775568846992769668386251687699722537648578361243378762957526613824794216799529419217839788239744115486231958865538215585154285881787769253322951714555941326493957385982138364159273454591965857468762567781134811528427759353882526666389655652668258735186999489787651863994128172499589495691588695949379835231317962183143831591988957118695659579891316894884468783494565449276515878512748857643194974399832723216447748428637284795533245156434515597164687315838187479121452686541179176321682897538655622892187744625142478761841118957182418194297858494934643469486372398323919494719397689596259617838855166129265662749764867586821121386958259624618958828389874234523188849876288956513288451188329995797536345916758589871438936697789197685383966545873314134818961719136859219981254353781968698972451237968419756218593424513525968151155749331991879113688256351971423797766685748274531411231764445557852834254874611636761519266537698121597492749291961356176427487837618926875825157654847752218568698393768629788884622878627154591865597175875616326724857617592114767299986877433499694399379386964175162972581894517954493472722544567744461822196184787337761293487647291476911886136619253198662388758152958391569591649268395812193274127456629342296675741165995437769961636829144791131519438358863614419173186362143227341455673152785763388699531924498177284357812187799784912637571992825758126236214763329227593914798767939124556419883341468835984182373166289888196211813722921789542884947943246369159899831588275953148968611467574675262589579466455475286512166587995251961647643229957787989553262714342234848413934899284891799726788962136585858555581341165866872121511419132839952365779449466956535125895241653746998295553857883534496946211558524715969522321594836985165344647945528669216678591922531396395277777679868849459664369799686165819262674859181445953855143878574299923739385558826333796715631662331149978745481242213585138969816281811424999818972884991198922134791894468142345363372925611741629631756523688138368311765679593622824465375231872125794919615249685584921739524814661295368265625376965186128693594755485996268526932142863935532629843897564419193414976431147161155691133783857396938898851666393189728558242975436549815869357697644897599952427242932418915126671275714811363387871589159369887956476432392757445415183723814161468965815426933978147913859284949837369915922846658276262853685299161779617174757144885142827968685671998518281949495837968338563644565668143344818193313187835722383596575417789619176732453573872987667214565855578923814611712482139284468367735817875651631769389667169741594471497299413638358188647889866129652722796552963127958371425536898686796382796474711926699568418951974188679741571932585416712791919752657871757471566356734716755187996396718783772292536586739726267757848995265726587669796352141188585361318568153985423889272414588917345826647558676367146382846513747538759987486459685617338386189599589722765842231874879587914139944415717964267968977882643583793635692569417484328537195755284284995662279959995915456632857814749881912914442383252853962769941287926551798962959529411362539275974647929537188788653286261155713286937613663295479391511615829517885798254988898168795239591146676776167468984693163284923911999897921831194242737443214145692318982745979152548824656341687248254937279246185345971218954233572874959998529941187918583481657212447596488145392242849146897783972852534378898167527789254761311477144643319621627851879871792317551338976992355219653461233196719477617975882448215927283951444695247854481382734363676873458651526776744499982335156244862857566929444122469231141818987874853597339472486183891826837189379838947634847596121491698219458695456226347377898317351157687634428477665417371562489642885435988779138731113667645258119245124592916378768112649486699178746277484649248121947955172989792543929575998947197735932595167843416878849639921468486773135484884285678765327941518522757636141878735897126832759717482968825747494393593296451578129161669837388716499135588275855324485843182174275329914779929687871365199451214738518568559512399197129989937484747699496989855548117713884367579619755629129951599758439978876196858615525416954488418366978127552185448187688111787189397385788673766912421839494228298571132144769544285277273114991291272857761221926453569767794842472731374692444691553277197975319273345169789534513842166992916125116684354912661514619877776777698329769929182819947584914981566418241451444645855991738417314212413339277178662839771773792338359546373468745181758353832958971734963597454999643632921847517468148739471261784696826571143552511737211879862918944536289355841927158691164449957591744512896115981363473991268763848282772893228964117384252732537961692272592379495817589911874835121457631782674935634695941466485666241938118647919869342382363258516347654959199143464385596327689491957479191918592635713777176651816996448684577482131282648847238333164817969569976513232366276568792981746299757959415576644357281731977143465936785187533318492879956291879362884939546589539561893822168985929271674253916464572556171725913339148991417187394479485939368478859141837372467573899675578659223529685243555357956155439488366494136983637747168947794837273459653431172346819869162973521566617477379973487974876479726481598915417255449868785542446794114627247742467986216821583824626984399183169224533246491112741893566211234447752826611643931623877868181637684283519944513695776154149992968216197199582588826871681742627829154845523767285211677997166114528172889866561896377819865548651848775318296642786584351926118763413571569768416139761148518117353454572881646659657127116517168191119462286662921727713786696699839215888418335312831798279878957625878514594812518238419459714647865972855169515287679125814732648342432936817445444657122266342162539814879999718663881943259926186992939437412842229589266598614329122565179382842757771316424945185318513827759769897677761619558895281331439557361239818396787292449576682656697968876361537516846876234168581352119114642199619865948678857853463664335717533156849984558856691593952735175637677241565868129287325273461934895166911539843781729999592196822957628299789524751983323999332153529435951353527197619769799753612915898667349359424647381191133768259591399936339169136469843673782355814745366972738421186791638547672828461879383937538215273197982113467834611996538157568464932193228995886665721516224897146888857569718388449713986431217691886489215395971196956976483462261998388822972337434311571412392998685756675391439981142133541397373275949856259461527639748836877779564123981677918973856685987673715169392394674429168449351898252985162759696474294737999651848947727691458414359695561321222713997449625542666716672538528895564814341895451687764927938499318438677613864667729276419782761439243679791165893254783885774193462977773439241874252396615531978764686346185854799782766347387457651688935981774627284645777444447968194364756279238988615645698194918832199196958517558781475748852144543488751329391118399919443215777728826987323246416192585291697946824728838322512865761831214435427772626944654885789786884549538537569829777515812578991865514917695978717458763924864278784455835647632447393866876473638677422124417224417716536658345476783217157438898496191258995776148482377117944162941574419922487357712119522645913952851431347927245458618624745629988281285766855878981665845989234225533421187986863926861892519196787815177431365998695973918423716967216175367356355247938649782727141672916748725387766856515697877374665719951754351863291575771863746377162739515914627597799142572399226982565969341189846899789442965423755992183627189645976576762973441284476334351798415224619435617788332676497932853823667641411467697326578599753418243248944732283971899578941167751496328875769898556459358971625584418311197916174851231675822792392947681491387913725693472732247635128975361436919911812233989181657492825618686955585886734752483898336724357895415433599551782572582182817441825849316918879321234826677381115338617926741949859161334135252351446366583654785798442297749796231865496263273826965428324823429891658446679159656996195188162478923383545342644116444947268862878763492721985411456961344218761283658287613586125255231986445391489726443471536597375166225596886243365667298817885959441293987322676214583732696921464357479366893519778978612765871254755723644719822996559993494383913967972878863343642558761811799147971146632211654441264732298872471876335618537116761418871648856614751658626349195239786283619627491677138622864674843398786599923438579125399786237347434522953715192399664475442394829752849411874868946181518972845686492863863472422754848179577948929874331714994621843953136145915756964675619813416542894871927987469823898427365921521897761371919417211198817172651189375298631622358635798117187573524629367356248848591761293895336565942991313499624759152288147463581334122456926647872953656159164452583247555745252416639461779111546916126614187441185279129461676883346838288993135224869618749596197726468681937597597916738811157862939886381335978212184332562859382174544899947925211518469829817882113242437495747619554657979572763182999397948689956359919433861387218481898925888834931943587985946768524272782562171461313848781553294427942215732781638595711647912491146771555899738496911425881862815264394611889112396732895394449836754938197135196537994915781832716559981178797514498611576117761267927977558953636783337479838179586418512188959453927485912923857184996943275251727355772657912641414172159371936192892114823438287199448493465781125856663341389959349297736385657152391865528199164771422349367486878843234483964488474399653668623396144973648275182159293891738794898527737922746681854477184772278155678756474325231695494475128295773918492585597548121362718945868717623583911764516463735174454298575978687565343125769319555651823658877244826891883832688445959466884999761468152122643931577685816481147581854643874772242543656182989665351935298915259612799566157553926611637541749937198896133426826968498954448814134857134412648183688449243278874568378888425837686561725477491915956142542814417919897531936339743969945392399215995138767748164637558892788341657696925548757663933384914351233819164273585894283167326395419763672931585421881783375566329284498941385984612599311454616659119637996165759795166929133615524221342186486732247744646437646527345667238625281848831223688756784828546988576635821416928552888967694648891244733879363496231925994114999982978847552159824494463185589657718127946546316292234147744852177613645574389485685478636354958565133323136329159339841539724993663791287875933283279741178191555542742994176891935695141173973254389632577276754773525687939496492824699369198289667392718785914167964543813824622648661457181641536452367945321953838286465195343188986113452756749543291691575289586259716994271572574768187242998385518184561598556317936621896428128926371186123862453435955317923237158754865571457958925411693849685249539263134899789771476638977585359678565219847113155479779789365664776365757142598465689315566138835258594831974922654649724299952831829231757932898431139136881167151939518495482212224768276563593875561524683193427543139266638965745539459959218783136261231431268311235894416129534221867759956844957183696271178619339136281345738329218469917585527741793819478619711233112856438717343799455923637679786684772978612188491871467531117919683233234273784351679429971653421929716857611879978614827988498988555652475937981226642821588449913976724946969573476223831621347285699242656639339383674739111151812456223474178842663688772754879119787798797634832928786543597139894637376527189858985888381574151186983529537516173852339529825666288834985288818294799827756631938824888161875891155995423455614113467851648538794249213897339314258285366774193732462541213279411329675478865981793918312737611836666498841499838172649854543471456942727892321234998577448757174656274183155151594689294214847117413596762768776987235965197591529623324127966481775926644939758783591299442823756572123911934644974693599948768581487566777488287723785233839683745144328251149865529679265475793954945851266883186757392226451216496346255784295573592388198278624789835169922968954417576781957287762475172111662681215228957188354631816639662527163111734478971266497615182628935713136678755779736356699591528697342739956817962282695159139986997238451798236726331436317112581583571816173968436964556385872928979689441664316999861676985695823398516698124739569371864718738825135439275916297252373649735146796169757928934488218843664584826378714843112489597588311145598211468692631265446853825839136722716262795166763722747553625569419353885764177441532124828715945776953619742461744388321214287767373366353357255915845348549666369998954435726657257889849549892135688288835199824894271761112422853541137951397311635773196857795766859368782147787316262552969447221635474863995782418583326765859669885979987917895877674355855519754432511896584314779276582583838781869747732298279684966683711569252923891132555214383777918945147817568797873263335288847412614613293219446596855398715719255579745573558892242669588621993129188116934397762684487294854824425836893587934933716738499297424651499812117925829979216614825798413597121725557327898927667125937546821729997267764825996924963945458484884938971525363779157577184672262169899914616352538269966383886679164992514237628151678519323325771245525861958594835919363771934131517984889974985639969182382852289537951293338626551726994185859299681713451372339972956747997229978873531272823342552466463619774884617882196847433896815598788175445885687119871367664715591237692591119527943311473949821972435883649649827797896399173842562696866597633192487399721185184297633995975499298638139858416645778567549968294738441263648798851999193288639752427636219267679528127141635945222754128962526354561389899935937718148279171698574497553872538932964287997989154931147915978195851896357982539948237994587791665394962187743112318642519246816254717136642595751264826313111819622498191323349737498838662294955576394442883352263648172928783513597187868468995472779533996167657784874718765362413654735857651618298351268824192323535647739198787614619567154485326276335167685656878329321487176679747173933431831944811978744264361957363588264833779524175455765968347957298235264269441368912379379972165341128378469291936481882216239587277771669397233568891851245884661288791459539252633319623992952919339366959515241582658786456834221341739896518579823682717624439957225492124173565583219985533452838378685755197647849611191547528949269662799748589524896318791378149539699287986279674731488125523387664124242412492798711778411471951797728272881288783658857834554196575135653455235274194471774647971791229225543868774896224192717967387733645687912119291897276557517265528943626654622754299177795478351634949489551157659829349241381634998582164741533555535774497288615245164714136674891832241578387417117914418384794344747348687522585899165481462554957828685469392794451241396595939969787472646964292175454924495646438321469796739924973734862319667238487157798415857681174775651459171624868232191384525595199923715988454169145669743914838738495954941884254723685519533279286985487617197659998846697198955833174921649824579678515381367467625321929886318633985566483236593154779978997857789575715715679498773184765457763936827493436573175377176158778136782757679531757843981869948691294948983885215994828328149237777435719181674971686596735737282917267919556797594714981169142573482978914154719174399557327522885558449436612587165142215838146195176535657944495998396836214683645654867171687899487338181176117183731963686762946216983736786558135529565761993325962688711661437631639547879656748171749329728339415648615878391731487741898389146244737951459792989715791285971938188357389171637778355627415662245936721963991431551195346932362925143486988476621535859146254883577856626336226755871757121487868539496292668857671746899756639916341411782498798544221942269928149581831371631283831159557483535285399145178576648529747698357443946492995274298335896632675227389278455258314573789491625425586238266461873197944616538765131421478979388628526394937261278258775278162756362151583215714878585567758365883165967753789741725842672653519763665129236864736193638187452149184564778546897534593619852155258275712672571431939769294963226136376529824113627976377376342883878979549173618672884516827639274257495379187545672552216773479528652498347673854932852761464266714458723257587964757763316657116822899589773187296487498557456883762653792118999251459442848389911151824844687883716125444433788359738151182498817458644442546367647898562946613738752988695966926377449499426552817618758325569457193978278611519788963579793983224736322154697381898338945421736968295372947658679158876983651316421797952219132886125675117721834919838541852933676949653958117931437827414371147981852664499866975659918718887146521927949249325229663453746116688836385176751714125555368353946861193476468331942582913117478276768922833485697132863981364135128213836241841428845731587613849621861451623591856571658521821199317157266496561228528157963614911665363725186818235679569717216944729598521697499356112354776887776794653478369199456665674645938213715881555842993338335838169949475498997342156875344187922253736682645539661831139933928737565177598818883522722251859597655573925113573965692267888879323713315663751666193397525853861415525659965419792988849295338615149854826989886388371791746594439731577612828646569732885388599139896566111857967375122682941987169986279351436281177911868141158924569419893241453617378945653811953491411787473975744818113943732117387947273379345692257623189937957522186381792939552674857981141291191185485169136365351299229534668433377821581795447224427713799138373598316588754315676333673916844617276114427617751639193214159214336321534333491895678989287621359654953419154776141997274847377944116486126976972753666959239781881869388291386827693771451566329626955467918364837512655983737625326232583643353737138863232373874459161288671536118997638184766654437668611532187848628979696526773978574295574991344895273799326296427658349599686329117351625192296335536341961747977185416497577156453334821898866447553934596756328698661339849254844269588572545537459945546875184729551421488615514669616145588189258223944162851856334699698967753449554798327483943386191116985635437342274827268653715594848847912534858597319769721442886962339171167166591296483951281826259253277311345457569198341471767874719641992628112245532156695158823669888464976972399934793168982419161385746652372927561774616138734925715149795742436232158622222944778774731719812863846131869243657132873599128597751528174666367663387781228388165242893517973855534688651712674977975185753539373246474614986675465895114425556731696456878691262968626995157499418935654971998186639326775793317355351113826193891263847265335193568325345199649971548835965524915875912759327391298222636483954573587783899357748623837746137946885947447367429597557145118225636815449915695779599157754415267749869671495957938769368342747968632483556679156616827944673267395746724173644756971412893669766385998589637629695528378388626141858878998949559724476851787781986623212354868149845675991793696729992938254811128966521586623874715353161399415729782756789979443256652564461395629524676821139424354157539334119548968972136343846879995529687941793439666354737365779252177442829577846787813618253683592436654581678917423833753795817834439537883288159572234783949852593312155196952773682169494339212763634324297343679854547583681849838773136379349555813536253789915526971159988869945562217564229633351387755257529297755144751379982799337577857419613348961654476123619336476753939295922845726566438175662852323239578998148773576319876291767722589658324888386969495727913699646197963951697283856177784143997199452293772218846136387787427146613958476689878694341961495172361925778549633322741682338797441936673886151179319353349664939991818238135421263334858192651796498297343316551513931899233799239664693479258736845569126437799866843421976689987467635392593576994763456824443967975472356951798964589471444851419161414132473537217281563178129354411623599661767593946782821963231928126523298873657177519369673794563399432769489895913236848671136882666329432241147297113927888673844763369397586656897527129617338175797967631221128787341826561416983826614889686848474379113144454975632725659419891964983698249531243371243676354152783836551199898919912758474584454488383538333517339213558933759128947822882728183847348385761299344358169866183135219353162141832491223328423656933965169279461639292959964136564435477112915874852599312229698728771473413984887543272692718841388134493385789844519444637477358938211775198256246984647748118448864727115343851696853389125354224322431139681623532919979254322273163956587563957827843591594398133437462556448483616554931998254913461894178745885989394234679398678599498397784436154679147227644855394733346746935237247839429515168576717324729388832111623188175791311636911853519226359926118699854297229278632324968476998294429714291651541693167442651636773421968532382676717127153429517392845768723678179535618131232147846582334613383556999373124992311292445889561425867766196787255354473887841755514768635128199592219768617838162652771929588777969113173243849481248754223496449228781326129127576654961729129337729443481583568216961712595159342838336832579773645575239652547698422861972316844517331594571278714896395918859461428419994653212896292599627415654686211966917594761617864358463491771379878172999885328619573795774326864834325449738672613693143349554519286894648186847389355478599383381315963773261856861512789283796431667431177283866592191916223167962335557186145662453552937473368888492486979332696597538337519138283686478473952394362281947341928419752849495426987365926582488778527725811168953644865495819187823881447188489116599233733851542642324889977111853524686314246231938935893555413839372176812216731377842985855542922514918864924961585989563581389224769119865322211145556757781778281631241131368584919187427276913564719426372695581575893524779887397531857497256897344894641627466752724755385894351683895434254144414744661942198423441796652767686472577654641284915181366594417812353193915797796493178949279779323982463586751151842818965442234327382783239428675474979668139757698894533965323551483331363511648789621567891295651926921782768431877478716796589275688854353354151723875143955339743963425248665896168161591896916416455641652448834237216632534271994172535714318851312274775943777524554953254458948348449749675997662243915989128162868594238367322917835232595391357366889886635917121991291369117193768349874569812651736499669277666917643824283614366184536839115854844377447877532253544994614457553373996719996529338984621587668697191195838142468775685516819512932554936824866385164963263898588292943747514744869769493481849651157437997182145471728665825594844823824452756866889955331189398469185978398135834366581299452517917296292783525249471832387494278375648629951952119753944558662558727133826365529385794528496246951144658446928628753738947974553126366997968445413193855644891474233447733942431795638434789853893942464839114739142598296369355883995363384828632442357322314999429723248699621999369584377547655914481951663825241684668359781141668456517839998213758416953391615115986523555181394584597823379583916699582738623724163153753798359459328495741534792172657682648377534125846167536367562489622662868168937191627829381831712359975354573779366129746922525478773728812587823812958572934244687138874174738451725789795284585971935566289299815815592696686526819988343885877541466322957751937335311741838516155874878575149481619737294665383458547629884863226117378769711311645293895166629934598962849128932879665956483641337969267193262298188227593144299463873591491868685274995855797361863758159953969649539551929184576272786219946624764251413799855854545586316887892998129545742483589611611579774588543143365752721913382477849371872472545525937965744783975117226565716696814941867562294636926165278568931696928982729661896387829446367555779243518837169276416871418775511468697296588551855183638987251767291755725117198868844595178754193481996295994545929848997892962749678464111984382292641733796259879217891971349686535486285794276341479782777373616689917378479432357853658811388357941211462342473592893875269737134251879794315444998136434372656178952194563571948611535452773841511798348971123645821115743723487778474842354261886875856241875497942421127963521697874859168639533124768212849518228555578852252993946368496732738347222191946521815364284315811296215915128837545249812535452926723517215327544618659575775762399385584968387577821915967794138865149936747735674635569332799433635656718717678658217879817358582427585329913275796511976689631277754976353857493684539662682253769799936251483348572946614773851158943364549961611384657383688538266649427894725461496151856982551151382796389495951383231894873899978715395616266782453423745523384974686577314496272765599331754791734149654813878736978999264524951379216496861632296464134449237893658155332828788251467547468812139928666636322628967189331911128557677971456315153748958679661216874297431412913478225771144461322561692116633644327191421115572477284663534368143811945782137181399629711623985598771136127468798561219574496743416474637562726147612327916899824857863336142853315359778249679833365828348689681578511577315167212625358315541124658466878751613689435797345116525774188468188537864479848971592861978869374516143254757848943394915979374186425145342383377952724298776157868857799887873666829455148961315613257474689536981876138468865538518358616779391147891369549146217297547557216539786899271198494712441813979232695566698683272133763647988515575787263374796822543286256936373615968937989166785926934766842495236269529826486947779644394714469622711895434851591753453226589389849583168738998764348978816378113179642465263986836775244253663717357879141241559197183995952396198438138531749933131998137422282966397814639991898987124471465716767383589649522292916378894853468979356519176179774185593726279338323174387326814555635997997799586169294957188289391235927777425976982186499421929145212294692116967497121193776533738928678527585968748345387873474964273842691421219579475361682629728842561264599213217972465181613398236628715666291111933539298581825341216298276483246295249133663293242894646261578161364719361575133199618125969767169514559654194245289234214366998561892399787378664735587894697718766868736581888555561214975666287442887587672629399419775297543565718227589752681996697425857339371191584863126921566922744959943181976719864191677538866216786727465848798459426178319682846431993273621217191624282755823555682871127398418823319774975587385368723432568577982754793997677995192424578868113971424343315438579279573558939212822897665743496178159913713591764199182559211135575368896693727653732294874812442123916558973444142375163321637916159649542815189583487417194192586167635481977614879644485354524817847911173675979997747389779989987891974751245838161655642725778385596289644299988141891124437428681539255469762889148325869252889397748752786369499684122263791433413439423528822325835938418734769781387991285983945684494871956897863877473372119864983455736546544111225485468864117928969468679448887694689585678977621528115274696879863473128727682317691878762252914247911526549279119848531759278956212289683743639765281181952765398398338179797451667791615193491243116169546833814189492446297427148384916417974661987262367987452254168672179986368973445497672797554388542681253179898227916556982149463263767191789299917537488577131488427531436129581747217291837641918985131218568643317284331551129949498699467611757616184211512748952843397134789172196325513658983621716839451418134198858815481914919485519674129431616678413811555948846848329311677642972532631915897783746276584747827632948814639752562228714641756957778447583986144882857216746985866515173728542691738966873756265427232936625176264789145964383967555249285252991479797125539717213642441494224776832988833746714166345295876513113734962335785693641635584779466713571163988966898838841888914283635627827215397819432238656994791528433735149873459614615251834651448281197334684627749991477788556841742449673281347524868581484464472631469684866812165287169381137326766825826343693938697347697137881961987724211998898535788532441951288967496338718757644995824625655656552733525136977371172123836631514233191225468826848297948467998246757833776691322733867832723345424881975746374764929227582185124833773986298589761533484296915687714564497713413813864556272662919968731611798686369551495971532582648686956696858922954745917812582783558141374991381972775565665656825571698635649395992841166721923322156961321847729461389716528693337664198662139886935729138713981614491378369367911888978692684366286899638248972758754538886973891247648557788723716136259264466928994148113417515169526653476331788896291217599711483565256253581573893332862556564937785979193629224729259874447726467994437341336988249197864266779656797864239533775536342891871525173752511521341695987192353976213571485697835845855663713454759893969284649563413429113845178643557223679686598993797497765656132784242985525582896114872833155928553626347891614789981399142517399818971216188187675182181722514585678272359662435981583382618642676862327643746512712655165552999288792466585616881377196186215635432929179959687225738872461281576899125416928982875799567875449525888721755539459222733789545958619262424123858531516756492229663568723555199124643377691579185993459956995195195944872666921743473268175289318786255858677737868844599319986431991365315957452726441538618935314469999531368761624169583748593285464869417816199386422144348687844157769969224569628249496339264422294427124326523638383262349111338541192986549895658925797862965627959819333829347933521845127999755486821331912782832871939766653712539756619873862496534115668995246434655187258572848956249167882494136175963461325836571818457962412614882926546241925338458579673991786697462292911814677617718552753435767967297378175927265986329143967455575994884714785639175764794192831582673241287719784194961931899845676973968665675688477665522818998847421839887537692554643398668213921992875986367582762733475816768117678881194855342572817485265737986497235899439547485192543325677695466585458297997427997924222498722846151365579988347185566166279839115288956712769175473257763871274378531325514696425152969436513649979632566851136885883843826239743585218553148724675415986793655111872147161952433657221426699189772185588323728294153481959861389946462758831181615485824399357818366369874488986579343964916999393632219299621863715593676223734416886439329332471181832778699983329221547885854991698883366479148674648412669214534117531623691752453722875289139456144373496881794485161493936787744927974539388457598129868268919537953358478889862989527385546474631613593859169178439946885443382711767314935844877711269449987626837211515765325432992442744582457793757453525231547889346761765965486253762626193488518433213917995921128197948296231186979884735564823955471434585449267991479118323723634892657191696357841769914378256618351787567264944465493112783117167231614733716785318191659677579968278315197113332771721847914892884579284393752695682259945791524293976551677773324174746791363545639781725814365775679165593976967634948861536382989911772873467148578728549867217711846371423721244535458733296449327968434453794522944242864429446161445639716937493472364341826878274482994393312387179495182266676393776389129369453513993195749889588115548949239579139534579169858412726748778931821292225265537868979432739893346994816695566236395585846925271825212541747292753914111525622582985449846248159795391526712162747132923133944912556156151653576441329738597968757994197597783738565179752724785511938474444594376589265391352184839377117771169299134872497573663436237361853958864691532246781788518835857532125491572417995681184517134572513137694838757669228861521223369689945518249254492626799586188195624875544349166898581319974268897689375367671548491186614884589379885148131123858561431931338512865978494356912817957284441639858537132466664651572551116368336886199461765651867281561247634974935589388788378581698229417257719949591818973132357233479643537159844816895641269669259951245499982397839518499485394473332544116273886972174343932738238827383489411665981154683866929318125516332343176419974624725187979243235124865712879249492893433546536327959175556228565359996394764357995727862393571526773699862578677932732227268848715475476619255862883624792146759636934916663628828686356382374851351864886584771521348574612562414328388614137695969441696136753694742518889268782757738792449523589127294695318235945989835927912352117189157584864673193167373549559352347168981351941645659878179841521865997766215732754894388488142614581838544188889184196561658152646739173679414381794944758286588849132715848374311734467381544242835194563798621877385345563342356344735326478193184691986147479279819299991834858254968983975177528368651745258717892666727786883886475382611999717345857724162372159259911224437356774697311948224124177817656313477555842738751351649436249953494379851598263491168839417852622978464133313482679781915737694367255694613393511224635387234884988453145981735681986411751485966983762523937854959163294688715647757223455248313287241487923185766619999663575441625314382554811716977683661176619222454959447569121752779147916177197223855726352793966386611829313375875838354832322722761951717158958421213313676621584729496262466998173661567517844249773433843467492258732757693478368146715571465446665554687382685114892831778469868523482755958286956831635738482325258279381398988786793183824997691417819563979483992593566641198341665726998587644189355755256675882115421689411773914384685414215733425439625759651995415465368397891441217654344155689738937147956863192387478212352741594154652896839982764445892657735137613869849193347288667989417757356159342158488376385563216931324496116935751949317294795152944173633976937346276581676917489321851388514134955491657887119762532891511871916994562554619877899575642716997998267496154997969971768987983797478246845475886438369486982847537569871325991439486498949847623125926113912364831618558155812236848286245829264468152839861591311357969794947592346218276166798814882979825771124275463931277458883646286197337778665963723636543228423561691995777766866276366835226792368119969892164644699463491584959343984674616575254333213995552347889871768546939254482686157561143519177591769666958316513521375345665693169495236147852863151973995545863785991598995658811515484775562135792581582837119572996985163346938494996565478983969699499722237856747886988757583337542434193813974343531782571786876644598416678886665346688512538789843252342761627964596244148195329766398252956158781677846193248649368511799274133999585136881676881737873451982361665777584872464817828762897984478627382988656243474184169572298711546769872839521349259218478477669285138959716976396535125258549898999697967639419544755348712918386594915328471416384725996229965849369513949462158786117741641737338399934893368926955549368755996319114437779732812838251228628517314681922222736859242385554477657333784962768842142354812216594867756733183726982773299759588714571543786396266687341119759528944819124318654619269742928569618376756875283229725961322473622464662399944815632987752546914537266898448252291216746274884534818796534854861613527453816178332125528524447118765622848935153242867482861546612995126578514875698982597975294517296662897451912186579862178831182532427816769567165282172795946981147395482835741336978927261842495667531473678426297887369985544111157528322285599944663739998174941213779548228164576659724211489155999148285755939487995628933684471176317887484598912614722286557858486891111146569598376272492962994463964752132662295571411134197428139439635453967579524873833484289598775796637774788988482853181843853916681923317251145237899927181755466439664384838723214247986444843167756986323888799876675449748445868472696579576328973488467828825245394434853796181486441179544258264116726875344959989779421885721822516777889639617843859833532347698163576464356827845917783838386911818144362169453859855291488234581236228311175844967783785194595432936635341941339483519714739389969972293855561397211885924975792155156483472312578773688656751816646833883676116145336146525383259878283851525176596311645621157755747396614371335694618721947542426188545835175915811815896148688168536456119161245982623414463765192281798991149158612972555828898282744339688648589315894578132841277638477521871131824671176776744494768622434262243516391484514628842433165452861527771273826151683482827786966737317724419271353349116369992658947673712876198816971147619398614687886188229468648147813268427559943538337118268134979954214683681911521591651428237877444226764759945857773871933876438495386785141459794658527586738831213735426694756984269499236474567229751786383479758978665519896146365311393642686374763482914297848743147592487526417335483375856651319887643922125337238882429494973857561838744734514688973957236393582157465398748699659798769643194145555629466397288619145748642786965255814451788954371481848176175192925156989648967897734318669547996755866548848138746959932195892361989172755273866679891521999771496647935558364567468194213221532271141678357135311841378285457722549663358896273546555172221747862296544388841198328579784852198458226593171934142834932231899199981685932833675959856633995279285267797286932544798194622131294712196238586489848979334884287311719419319479745843861566695387418147467678588276622844871243486351269183597494145575585655657996277293116746717336736992771187656581556691797527763235774857298535127298226139934898212342585214563968171511235924217596854558174368467247512444415127228412724687274644652839548174297722865723458729797188671489539497515591816954343834677958665345419685361853474725251753143818469683942616115561189366354295664491744182895187579112793983985913791243393283932597453633777556178148288286338594481839268939977686986697251159296551642394535854619135386414751982147841669322897164364532682755869239361715186955745714722655436993155769965599425289666518714379631989691194658463593629776636939178264321493487832815113335111867961633764364359228365887537149554225373176688574758875375927279213644838835967291748429894631865895254869633363289963542929555871871381274679945992758998177511992135443892926937146383388718189416423689472431148238898679824754529774594475158352515182247967973385471196484992696847349711546211256669723177798914127743586629841254761111132572942876938389687883384398127299934584324752846696187578562888259324446853619877676137439535417596716855776871942639573437491569593699913198552118969949552188835394511146387282579427134294787263152224888635535624492518248677169768358888642683583649767673492552198776592578453584179544619259533242987656151265946337758849337366346756684435946427427112818624531535864196781763879237763999354821919678351282713827877823924959889471626936975956796213795214864899985682999374587855374756581658357844991299625814637283469727815838787299751648691488299536551448497816436476232396298459673558986899599898599921691786243249976819758851476928972417743379113763217191991385495144969991892757969379384353118894448889812151165847341264966785161762856974231764472323514951271854439823271833753486768963777973133554235455579215722855631263686412586894996693946155511769969134675157789659163232967375914498439829945995463499162814994461917817322983819878287448857652192586751129617832152235168786348781899483856916689446456717569811256295768648629783595445792935616697881956524286789355567544617141453862595911932896573978964889488917125654991569949598257634128151186668198933847436898437748579462831662432844937891882665588218237266613965977933717163156238715845251312577578793616849616779741994566713945736217477549643122819594673621974117469235376867883251769269553116296876115832981416969917217587744578761413694951579496227278913819391632537951664997839646778264755644982154124738749675388435519433459426185194252149985586639387534431982852626977429999456159711396199593468386248327738675989474631129111769789398747977178836631872643959448148872151229333856386586599343716448437798352298977455679942136887268198966513344462368968267724487368996539853114797477984116982299828657466698813299486758946696892956522977898565579329538463977963319458944642434896979686829136911284718475852368335579212997876889822562379856889819926194224613153875231398793964945885457346245949738196592821526481976486634868192841595768698852437562819151347574944937483787861234964397276554937311976313974515168623391154764128426928763187937847161147862635966789338878174784848194118539889416326669551889375793746297925859894686797187996464946612567142978464621174663613627692357334286981875596211787793721572819249714699568673675589788296949916596964129799618996845383844536318559867148386943579689878553826349984249695936384644538772689349345384552948465667845737315588525429924825494753413966997796637594859168988863918664258577429662298922736294765982519661414589473864229347386992851344925541116184696786981121999816255418433461195151825192597521194228687794932729986497896546523478313917776484857993693984337599145142774437678691687886519223883676618869732817315654399317579241429652542261689934843756134499895991549747678922969923158519645721158854727594424957413759878174768626329633945973233496616963823485417395622852677669737176917841182318133465816934691982392423472846997579699533484338365316276176789688139668934297328588676268471789635633275198511859947476279256956318571989973782612549557746689541586622916615918988797115676312919455821217578328913116942237663369683541698179826689475797479459177522582533341437588233534962368591732683533831186785771145185661683339913299944385787827177915195754758989748861792857656979556876983655567551736944784716911582764884142238731276769237488466919754793372534245688952237784434197697983417164769341924641219559435337175451599337536494635761147737275153359986859535759181622913481393574691664312226233664988998358631613896532235781277593483792538932479499118784597191914286754695378172526239916559622614253893416592314139118461467238318814445639513568527635246343242996933446137833912719562546783624219567653881264193784568386821418487689619357768414882249273786732279731839277679414255763236381529811296943798358651869246619181114228191972663649967239478911841521976741863858319884451979664673476721161614831947234587267643582611284235213918426153859357711171881878853127969631144417211598239961679176951792284537896441843173776937648672821441513684573872132738662559968387547779322999364791586189291738138982283312356657171871672234237375662374933588767898935749698731713615781478541484639825191799931756137491588682845658817471425551139938965843273498584894784891487261854313924715955133764597936285299835528444675966616353151135379438754635145611158544655676196432733211157167293771797536258489282246743549249199655897689551464196477556915162187181161319193951838114769282874489519786946121489848931395191597357284465127916368712281698187579566349723952956757336751245752173195475767338881223388689529967811272817211575991578627337869392281811143723491169745399829485859156886959575441544938354934119793429252911765577939513537752886187691342891499422819191673239882858417162896916854784372197379879867156119432569548824549467791554541397352428985136853156445435844459788623831422543981143131485396737965575193491938911974692996779385524295211221299931216797994733746521328942941239997888885571475629862233762235912896997685255235971239741689875467389811699668629819331412519913935238436478722374153951888845217519291387562725751128126323731749462938592967215952476728139875849618346879714626888642639422245597685423644957849718336553342592823851143847911414744797615623847381484385325368591451338219849827815572896798836396991359895977658257716815796592879494884676353562662518357716581319956646866371849489588914956246694488838296167216939372928196677127925525737431949541266818582453972959866746585719333783864673873339178246865759766131688961544559422651183311698895283345936581749976972883563276646471837512917454274327821696994179556786397137412454951934295795234482683545541279937167352968299726187639779845389259844733698381731743862864582278478196916894665374127718187616427952487982181555363568725469713745145952546857594241441725672979722352592447785955849452775749958741419892246474237527279367297995574866283373266499242213252528411324596936911253447654775216145168627588759546815343456852967168767936533199759711398278565693518965875533787982162595195768652454995966422214961336795772438498277422166635645269918839239769898861567668712119841761147566378432959458934978318964554319993339349399919491591575141154761784831619912176514388595247873391928891179535123566932562716186931677347464853158849956587952685576225884795731137478187937875936991245953565324193917393639713297891514177125821676886682625948151384923241241818595775234538187455231157827596451395333524374838657311334563151513683269741242395398178332392319936922737756183733858688838692196361582468381769622768996615235191788983628645318312163171868783298765928733411376143341917147397627155374157792672856195853927957173173456647858772166333155169171273752373144154724431483969454187492134776697168727957655878119219479876263884534619883785236438175919822348615511936443252938699612326697597815439526228792124795995671292736813991224792987216695548254368979669437784926557192296557858573421366123651584399311415432861414813328529241939699788987846485877933649878388393128973852693112839267631523156682554835699521358396582149237424537137658521145727675317449589276161695932948394439967747259454419522238896165827562777487257624599763699591756294723889933462421451578777445488265949237871443561429769572242798946292343476952977425535228686912362758599392217375688669697517865816155991557639234791828942584188912995363558969884374661769116785869891449216941179458538358537464259971335927544813779344388785839726412143927357835411574996523797664192152916669511238675425177872564417165849418134241414367437112233991599191143852296795275666897514728757832179654192624482429896354965155256828666585891994487215886897589576556877725553917187513368473563459696718612813352288953561914598192542813929593235666892834775717756287864398314295497519937643191984498232541426928443563766245943399561458627864775218765164127337949397317176288474789328786788263966838645654297333386917754629962518822669599351595418639252281829377757847732985784756758435453927149362251174654569977612625324211922431976975817743457231795267781175175342347548231379891688858575276889348633496188381568791287129215924386899856537595691541599956939326153959589593522295886596643655936842434615935952467882926327367738141822557252725962426933862165129127439141118749695486515486496566187883921878694912671896637477656918668893946683845965673892265598874299557499687596987211217969479338795438738292951566376744891969341185168365825267815848869254981571243965244977262436862342985876742956597568538584485488351627955952559552461233289549749936971385232375561483744812673792132994796234462768988371637876741898387214885515549497291794841625715235291748471551638232955216259748654714762273666518439569247431398819729786553264835866573897588356714652785794988474246665936329155725389834868889762699351636924982429785445344796784199312688861588769789761199496986176946813489974887375415556812841778993129429692971125678124496157738436448821791318589527257919225613628324742617915366776775287268612816526837519242461481871384548592792718147428186413694258883257787342822272256929574655536351743796934184782949756848886378816678643493999641176295855176959741876699819829891924997217312964598528578358373943187823686753425169482187211337346512766643494941195141595311485515261997786799712612895683837991258831129488889313958931137868874444366649638216263312629684665483947556874654535216493288779593144469929992368598939671785922794911495391955439898116874897681676373375374868538887577443815997593791177349158863774978759599893239768361437441774381279591817549532472938885276574656391699238498458546158699278659231581132292581853879519358134841227985945926786767249888966199318864481475287656718245254527117173272155293923698168647826673865811619577933497524878192875244782869699867148345888623987595951144517964277892434397887286734985944285883294142722598724453898369786147415389997497674523169741618328127878781318881491338779586342862546539591824865355369388411147646967613639446565325438477932311811831115924261778474815276599271339696917562923972799967179361752823725397971892667381563811637632436667963751564734983932955426139626442568363999694768654965316827492156774269271251296993678841316923593995933721369999744211214161656918515368977896132818531412177714226567873177453649799529297613389956268729343876923773886457364517949114783533561823714895398611744785291749478716392366381854535175323875969845942973125437172677827797288561395449269993389951599548283737626566947189499787677389132875813445139819645688856522959837985853749823477895758439574718254679659559919252125725499889575157344997371994646498367476337484476651937758995891691678393333896626885916944369398975775498538823325725382973356473711667777411561843627245179336321941375638642377277399648719871291326741338697386276936421349948576255795318925376856623554165118935373177993859798722511379433338888921624164767119731124723712868627334122685978915265911649971769753931755939856483178947419833826574574498865618791749786414818265428877646179556726889739969148294924398491165119931681159435265614974134519686152425671421887198198954895919493565673754756258366538846648325473537175592144316994788541486792642241999687989969981874892667177579838526834482564866411194781789617487139466215497118215159874497851987581886717475552873655118777456238518661791267487736743783681994379318468437348816744587511417651299643749224584562217823589546533295965699378839377437722971951868916427351821933436113945457919126999348276347882813281936662499286617962468677845668968245483191186345162815718325832619765446497765294411881986652879444193137255119768861855148577733745333661934886692286686192461495286312427797338622748832195277925774497154767957871974961182866125199716576123545626869978529239463316837336929658425485846882289329926894145356558114632842772814854639648165375852729573845458645852336878425529579938288126699799294338321837951186998438217893555268723315675761295494672779835588177135947591598135442863817381785765768145476928628186417424665584232368512898894444544416984688744445845312269443591335959547223979376854799799346671293224194132255419334362358928551391717664848587126137633138469717583443533615359795869633862819845835598686597665412783878657495518795939212224264427599758762771923719637546521874425176535633974393641362985473112339368548982382472196749479225527374256266958561874577584939189352719727312274116589642988967496277168289584956677799486414719717357537783795979396929453429468199579176227366888195215394682747134186168764639349843596271828326235198595897963569911825891662144624578187813711553857572822569131191394278326987395926872967152711821174139735794276199625124537894985867776492328294976768955891341231388755667949429424317661646736757157827387613381112249865158891985273149592266661779648874596156172541849657437719388253927437259229188928693497335371236588966316741339555221158743227777996486461992783469841142588365974468379566688799997361773672554821793967212974247535188556939499772755538296968339457463411547885116871219134795655475413626577527969887911469994491657911432881443848372977423619857126274241798764952164613599885167416177234431584344742447751656713663641411619465529656153637114533839533311496121377198647873912953574671855693266199794958772828638751562313595687346837515197786482549883389466633242567293152427299657616168487748917576382716965786757249294676839169994922558336871641746559991522746445145196991354968811641112134141598159451144194183881672414585857616149792622914483958679432397826928996382699463391335138136497416797546112168398189448833152531138963342257695685469846435656369953278889581229215121958528474693642549981917914714776891638737736496657367456265821841639718189714722286827775439891924826876759171176533683684648369762253345384357479643973912539835767433627999892535585462461253238821771285673569849451332771312454974199763123885663996197163783559977149526452328644797322791483859458799337237993251273432336918237498595417378465761239375867787924347965671493778595373812511684879189476287969929287229669115764148851113555698439413735997318658828731425436973921953974825611511834818586847417443317339776568631561674266778457654513328579238839613444593377578694851275637586842316939495544969954572162758191643153795729248721649897784252842981337782577246221296966129743746688486141588355579716263338615161277731185385496589356893827358228983895318187948845673326511193264669773333717882214654784282695672929379564767359127786145435516859627634765529761828252356421465681188513637658883288262242665644912598742283818243719674741731544467741951431821636713184927993842638285368559416143482444248669144967969388354831892449976896991918695266468312867178196135676936928964897152823757828357261819932727427874732162259697628283297376531617514489448498869511591879268237153396881974981351623542454116185681927835917241964727197874769779785944938927596771612671376237481212476354576724231465336263368265481147881158638824372269618254426538621528487312217329223273845191671339141632458975556839949614494819833568366674323441696436668576662771994156775765737564383664417984239566177888948632472677978978636886426798346539335564969953792396293843329177718477593194885196889412956958942922887273667527749444933526458974843844463589868455289263838584324522195657247269825759594965859766287598467244977386234787987949766476154563844198327729339114285944862899229521469398415328238818589156544977654553747449643361738884419312487658714181975444843298191843144513822394871585976774837441497785271582957692794263776585172585392391287589114314951461168178538443815834595952758274893738262486222711987542488799962631651711267311123557766963266593788619977739229338473167655849663498476655994814696686224151957833999218584737741623194747692888295537266656578226117958355281822454967266997618776419367758333142427189299833837571369464878125512339167528791911161514621869174594175423336196353539739352342756266899475196452819837488182476793182279558475359361931952391434248913943846651967131957337388581854849111389185869947497914692651827897936942419823983729977565656222372949858115542394264847554869744668729483154768121121886787736843499391647943899133446559924689866397577439425781728782298487177672977147372624212963973288231822987342183774457238278787451995471718324645325991445574211565711859961444943562467444617619744177657846181215565448338912412454564939786568346654855761765458569775711679786198126589175177397575763696148548626727989178482781346122558358299567715447638464826525489173982831968531469146191445286887368948236791824952413447396315669529531736752895932982273748169734567358498291768694664113847788561788579915988933245488623813152816247699938873464376177964963786297728965886425211362965382111862783762532896741146545581811933954591814864771663739626676344781556826169341141571896549162689189259681333567675714435973676641788375942626996281813935199456884783972781831148368158347448348456776541298994854234266665748254494386347729262451353339451699111461712972844245371749711915728844786681474797488762812497645741519693893927365992979456766986251714933436611185543639218965785415186136533129482971347559725376524711817931831762831141733188376762957558247844673751114499529366953963777619581998815589384467792199135392969699895769216151684258528972528452659741157758982512984986159217975689253412621674284861849398494867372739983682127378489672488575134484739855938254666263832293378654665895543858267438657289744824184723767795242992911319267537549119748934514839817665124771866357768848196821696871289793137153252388142827154918111696959916675252814181159885893114845193322884857755887587252676851399344224648967353799816126312464273885187567389385895845619715871931945664536785919178469757614368727514885659495255477566586878125695586927564555518859127731599795394761677169598774956743921385713698614598888892841478889683694657365143533793318875169264389139333783797699414738996748957289364437168768817236489523854393599391596833979815626495916559992975163534158126533755955372128747915285683122449619423787532819817896575529618898153555767591556962932117188888196583818281386697846929581837119453658338996991836255664368686771348515232955571941514288862385238739855487684558843419966551847153559981464122916186317319911472267152685312772899137689543854435828616116992318928722923387984919922684627741356617524839839955231682514189644671888192279849688598431661553477866821796699321495558425773638581981522535363316437527134541282493938122588885254364882775987269426753613895871887469467718959439987279466647595292488119745176689148992775568665281114976359121977435879733947449287694397787436684971562415179875925647585972547765157428186677587924537168334941464687528354775259129718892521982755761685655984265774713328317333966359286766863211452838814177233859156627745469189434595469672247899591899525967765982511146334831269589348468875182527916349829558394961326644818496546698759699446248427749258821153616713395574775895493361569171958691843393551254151166955168233874345975636257294448181191237654479642634474879174556231443394747346684122374172759277268751854336459243691598548512161592373472164554368191661852817482588938844721924738623757652858989926954115473242938721211382677934434579952211958672762887991143448518459896698747334168119767122895169586393854239937317977314888864858527215884854986166981293239763734997664791773918821837125511697147679531998217938727526658181518921189629538642981848518396979468961272596175929441644449697613721373698765795471647711498838531567251114623353849445523648953768428346912318519682256296318587738299622431896918359752694758836121245835666194396816916825346226128694582896532657647991879375635951617754427937541292454955866533593886947384879883412497498974435438828597994493548977356167739793378351488866914779578753627734118369326671762553631929283236948433289399334633113469189353687519432143818839494642647681911421298512691577456499989721843311365166273783761385554581961661781195126125319328425317352136566628479977116887158195472659252183726415424212243825925248156321862647292996136424813898788191429786442897933527653358284422718697239294671143569769599792276494949332174925887429198542441716742812895139677534135947793596548272773796934632188847248577932899236181272371961937557462796945877575946696959766864953345253399269245554845434893695494299189568612159247384698564647126484742482372296114298974844625666929356769433283727878485194256622549582813156362956829345529252394629769721835864628933153947377551228327244449519691251393612687149865983362751612343935936438723917433538117722964514526421114311133513354952699826868793719371373544851271354311576876539382647881922764212757667129295682269791863842648861798527387742886669561733496245135737689774818771122194819466154991835564956929389577161649876877449917268499248928624261814116468173369753131858632966921975643813848245821695122973896795463881791873774969462776718971314496998569739376748294298529378486586671794645322755223135442384878267491589791628647763285769432225298197533928178961499211955829671591583556198798995368829789356431863526173129126127397522458488523373445761681856519883725897434996461472358999573572442127349957327595898766837272617992632648354717387565967618683142571621853949491975936863385721958794983182759663475356294623297181531995995595522693535324857916117548798535961443594574519877675693889892333439444877431111371577926287951883528882922194861822346118799633816715968655844669681736874314934823275795289248874153778578525199973259167478257965275925458187916462659763958757595967128553166486822762191189799848562553262251151888167662945723289221934786753984457418596938798797751833461879785781942539147217223727974377761536635424859978316565197185828547547654999975461153757686916292866214699162868653818936547914816551253418922316756138186973887887249867724565536819746742765999323751736417771272459661313129489991195998883221911781457483653388647842475867634143166571115688199486833636282833468487266227611535212695636877493728966474353857826691352861296392634753229491663426922292837655826957791744833185352776293795363925789468297946588944471126769724397155848975121355812816614222174466641239734515397118125893844359978642272267769699384851739771314648615712798229992474138651261717743721585188832639826392556199712968381176582853569771839767497984668579517172218841896898549646364536668953962925644151696823583398488281437171947388494148487725717459321511192354639612256461719616296425348991233169847229669259633671173717766682777781218272642851198237774438281521344236816914549139778115442377889698269943769861429312831816856536331687696565918518397266776685364647614239845878937615146911932515629682364232834246679196385498977517577689474741896999572957598915374425314865136921465344518228536773519824543228754344531769176748961163437961794172191747842228834986748969671395969267359841913568394533489939111623527242438149833734634386834691728424121547759475972143127388392576184979893935593865637858645675587899886626352292599944775345297641959973153681657544758512335149958557999536476829358369313914551497264444437635937761275121124812968569849491721998691644355421274519981784199411244611419466268147458155954939225676266987149976591988641436448666983537799443863892645864828819943499489294815835756176719839782291787972778988499566624736468589656534625716758618873596978546166162221286625779438871739583894782323474167788995786234741922373514535758724557964762976191192983869299577939251141889371278996748686671972968322382877924635659819752657819235313729925784391983957896818952816533691689758643759311738752292847715142855737765488159158646548492975745198614795494979844714112671317845455594278262775519967546861873111983491982999638436417732885211992654332924493118653967811799694136221867712325628623254161974218595173186739465217993827217443864547935411883757561296477611825766692516971127543319952891467699181169882115178543488918774593841334941188964194465651779843469265834887579136364554245119988374197853258524488933395731621711297539112681146181926797457571383794836855975671297848973834832127391666487594624454199449797185242827794854889721961174241729927937839743989917241499933755159162367457484923279623329321265275432788114324192568457372818794517179423396764247155618474858327372851125334918862647673769492776821755779978978948278726138128117666954723984377464155148295959695512351693838776297927932984793914931277376579646452917141688144289167458586819175176982216883882715487435517696322848442745587242985596111318883498971872281379223769889185212566413994575851171828947891543666833255572515412399356781583914811351618558793989974889854745498595325373479458677273411772396319635465462247271918692976795536757737738567269799581358661865142988627635898591868237544373868719876715462848512863457128137395227431587224685655866877943619162679577248377927441861163234682797995138897138979856856897286587288819593751763981968267417196589394773282562259262622757134645112931247153516553296896454335392336593574839457535671824818488842125395898583575392453282859185991797475152984848389188294287614925631498318391297652113735958586171625334824736839689432593728559949491548616929812437189647666682453782795663778717391438819589868445187911866483679971678655885228599789588855292548833545248531812238712362619479119773874758854776973738758497989431397558457864789195949526526756727368266855161456979147715488596427297177499179522783615656221176389825181977435253794951359486534737981977138488535588123245932174725796189119761243452798655354339832831146926543126359937741699115685469674971392473541341812249667362954476566542355963486159168547855992712477273449453761124944795652342732817883248664148569334538636986127691393343499531541242238254618554829758175183761211435455288866719115638323875191753116243262931366289743328153764112687488261327158483459716255628679764764559556373746991864439852121494282465827679471392684598897994443581554481362196284758531685598483592828282981748986251693111238995587266133644786991669843971542894847393947783111155483865852219777685514294242587491956186824945848824199372365896112467414467868688813375829853989713217859966948114955671146617396619227999656457725883771766285466333735629125863983616357828587659681562498722769699821947298865983288255298791542466895966195581834353645297636286927638916187977897122221167376648282565236863513249747348963161497298955266825624478494331212429693189963418141314955283937814682842798446983825141815837425232136193636787953483736254514232698384895859164753846245822243439386365978696123644882624864912867656973639168262314168391146335358937845732649696786985466717986639559137943514342573381461168992974649977678325496869864487784799991247416865848151738677156975536484965677692519738687387556151946676667495779941343191397657881781585463892491549169928714979674718951411226173868439229531532564532543178636963874218312696795192954715414376382715421647849155352639718945762493487198428657697878238642913877133174889169364733192976988236973213891227491557934144338969299971267464456545244837559164654314123678787773568826225245422622942162332535142417783392365379835275222183856328688645581338377152731851479782221676766613423656835759858142229217536897165456449524395939999992733671865451583717885988725452415258331796246698457617637659465828165591392348562697836477757457347742638942747878572618768795487917812259792863837111556512176953666338149541545176772395794833778526325464867193965741862477916836826996981643975281691158926396815824242459128315926745288599232784258678374337916698857368468211642275142151358277484529534536864959765268438563541769328972742433534292932372773669138476364435251836377349696245943722321774986425142853996884768239291992896995689212793346887419439116326378918867572669615567348865445594976847631516772525999135277463176988326932681317324741976774215948745816789746995621578478227795547539932281185937279526476179323926679242292687225894872673277291689245217866369748925881346259617283665682126978576846862857513439642188448379413752548325338431334514595263685456229719116179747351574716777234569995296688374827754996282798982211497917655452856396486393769758845438774981294162433477425739851146879972298961294281742799868664728946718888937955957978411536573227957713956117859968513197896576118668237414379897414596629127582218577833416648956828797218522542928789459988819584359138888798991656293191781262372637529445663525726792898162932754845219655946238777937764454463749665373637989561168953967635677539448558483237319289268779627677681735764931694931147924479554544579582445136929721475743911137269746466429351512996337641371328112183979638641287823855248198115341844317951887364562487632799523736718571193512659955297463834512444916483582358816248819854916487356589893229577161292346525885196666123277893399631791829964663884935598344642192522997244955218633817498393586551299896921726229399366695399693335513214197476258265637716884957999135943425668795168369631937819937783488711176665887971568318443148393389881346642628677677786317762669859398584362336726387137697519421699574872136374228218584418937843757378942539446782888811431999724752265933266429185336163569391372892997648215743445971218147535371339789894964545871442456388383679373861213997761147768339199347681785672588915829667678976684837338592692548659975578574214166437691145479154495376682612533629449565445823186673715676317478262997874325661951124715887578767335151518519965517674274613915564691463336796149135381782475369128456144272735628612612319475465191824267592197577618829686894292966994141238697962845496394595451847725198343513927448133343617252223427869311422858426513674832549893731825934748721533655827512646975581998887189253438166478634862769783621239126554813947449363879866844151396957538928153812118693869616288812884617785777736459583164834465261665949862926744573485893782453967285429335484541482821225348754848199128266673525886214341577277193282936257666661722997569155814759713222817419712888678988779648743574287641546141973377246125978117968368817824666896634588514579444778439265797876721289568919487683298961767117587516743593934951569475431275813127259952558684534518879636976731435275385485865575717935177264649365795331293952159427868263684911431847864389517617388674962618363757193829376814339714799613964787631968599476244443347765662899412494983793318568925626598819862269858616448755189611822168969759654464339953146585646345121839518324516793854757716466763717712818383662646837547457977897549167116243526715266813317563833283557165945484927879834191664287537844983844825257194151457294589912653375744875632955818891498791914579323679329176719374688117649829776437394966561655375358972489196753174841168824715449963291422479384552457591487499188782934511362825821613156793493558689858489591684495419397985314962251372783486299977447411677745349693643455291435655371958929585458398351525761225887455523447584524776396774579489393839576767317916869582596351393618673499666753885548821976584361452356651721686767187599679358226396259164699478873681337537384969673639135397464912449576293674114431849596169926584385816144157226632698965899656125652847827361954885495931278726882924976323148496881932416518145926263823238213735845439519999465126669237369585541826522968786515578785419727333784312154189421965584361851658632963543871622725847598295489111491589331816197511465171877844248428922289474235999585212854866546636229356595512512934112978479146955724138572529373826716489397321267492738352652368251298188335982285547486834998881864921881836868326339266852371768873758937482371235764838965463585996999869181596561139699934455367473426824162573322535458819473176688233831165817682952989477142951171446917311491397582243263871893932582858218746325689569995154988226768642183454911994979661656435959812672891938993162372596571174186543641937529348329198492828667732553725241162511435157565191539688792494588558371431451595479371821857798858734451178376753119859668965976745584134865419455335519415139877397499158525974413719854456121325241897898121444418571416496573429712943939264746396999449914983765788629784353821679129548486385226313754397661582179281412393328415194366996244192713916792653399885655796439224451363959249889384496273415228898678145866187755792698198756331586479654943534178214816851681869521463778199193722695766961913545127738989428849626265991688331149262223319769315664272115696284684532999799896329219594292282546818424886633978714293848388543686275787885932182924929898812645294369939368481987695511159422156734384113184493595647218112275285512446389857937712241632867324324357332279752415537971564122494298975479879255922558618969837267343727951794384478724868976193276353719247578186836464216523796681141954342957968284459431372227618614285437116588676698979838529967678298172488869846894319148457394619512729534198612674559856181141489455937188492198341268644361415955158211131824574558211226369223689989335588895734285213341988292611974578231697686942329314339928627641626149291643695637636974873493694925732392944424574645777938118977886765527154113442275678488356174391169921633227324277321622654796791975323588686476861526394583668229955273959541113437262757192831497739187675772783867395312585499993331787123833575528988365232314169959981694491343848313762768759557534691167883518272118663153552476561926161871997946658767644785276565718896337868118413866223696988323671338379954878995415651736312839958256448517648659889714281587675834661612658195742469515849292258316729875547235297865157231419672547186874767387972682826218913256671495399569121258266358316369939645656761396643918199797499428665764541961859434452462453549581173863398653697889514439278827114792988767392241243134589327759199465387862484612367351576837559166494248748958858859955491818534284173233712995233994256487357717821568696819949179731388297399825552419287113919988941475355813262944351549912925215386322491298592732747751251879243554611657151956376151811787859111372314371877486287729766326874892457766627191195946685783381444284359928652715775627986375828169658454874381631856936129786725193166625666933463927773918348974858647343155929161718415968815511627322911413835552198141813843149629636179598786948941671591635677273821514583769222152244317947471374779495978971839796883139163573789189117612133555731952749472882393474396419661844919573427398962664148414259284169668652675291613165961976339231425745715248548646149447737555179681189262232372478336555259159821777735719939987155732996284437468897567551323124737828888641144854245599919353567663997167297647149728567836929449189995346836367439348215267489562392638165288134492864732369697993946666979786771715941158883219754119686384593345778447315284534299514558469867559715742474467391462541361794262477732463151513685428598143689441442364597917494248212944957975144957276197776586448878967395958832887312544438886156673997145762751339522436548382948133155978373969694181249586759325466139789665211991541554799191929372442252394816969974862538412928788169497482633778782289872192929243868864977352445699392247133496468958249539792722798754465187961831932768532899838999994775789466923371894778981897676887642785998184881178343112697913696277326463822548736428791859774565763735381459161764749114966988362137364481412464312477117448521368633224587492538382834658999834399169432371622553123369689315886816781148793928833998789988941443953461987864815178353879687732322352556189178716962199267915279845928662964135384255489888555445452618995484198849224487352717695993984273322246881684127166374436745525911959994635289427979799331956469118326168648782968377895872839761268195549426965586149822684472237185312381675848333379593471972973846865877633859838365638433927433966354597712447186992835623525987745976124762643466825715291985429679199353635966177918455882164716589488499178347936982392267454223575311335317952942133414596258391185131319695685289158764411345889951493457745827168665459746854373628672977763214231323185164259279448748325679838787328785995175656146619139797917699689585168237316236629387888771292966621155992569318662319961755638285727881449995777587716362146942467646993731585557928795165431994511633475773582989725956748347367811911688896378544372956632993162647862746729354223519826581128862898213729499924955851553462594855882287419246482476211536753676632262524676781753648273441372522284329165722595717479475844811296157218926138839577256969798792471739176578413447321981973334447615437979625892259266818579212121134527688169539552377497856756172227487335822295912243923489735465787446344845894712166362569882484939489325427651257543567919176184827646876126234437385158341965173399138178749386816564917416251779851136712595438593312346866459488541875882537624689767134132379114537136146358967649165964366729923698386119621224556312594533799157314869823172657888174913927556569667959189542743149191751819724926219244982891313936835975372456951152351484483736392794169491172564965665652334672726212978488344941143759698855828697731473589976529487655476183985773879524999718529947926133262252583426414837982692495199349194192138551419596786465647319861286387892998871527831975196494271377146569556525976116938271626568511766746929271847468851361189441131578578264464968458252167614788361179811764369648671588538893636463965933815353197383984982195651917819848593498452578843249413993548179698673975936198691656579448588657487289865873643246838719977936787438974179711169682697864676989261341466328554854877785638264228834998478947179695914576861451154663341498347187181939381521178896643298223431245161763299217756159845153862498358145597942177649625827683275277664793297825594933396279411425631415255897998761486814945741722381696882745816773687493517981353152239513112554769258565827243934998924469545344157448362615721549524148445314733975266463753318674481548183417461769691927997119171454993715151759357551341359128791387649854481616577872925964971913618572476149123529452625998689368351342258311925871999418481453856691956684797221931756398349493939481592411882892847553478847891886471799667212591139245261415896826445116548766983976197142979496972677495518317948916771912362653914427549834353218379354377669369163148369841786165299317923142415978917571893358553454812389493116289593647436976935247637495117672511756782239865327566993811144629887894948185793148665811171793491772483686142849884965125218584339656634456938343776825312959477336946218136897143964127722511675883476466386531369976897782399124943421389446884164736988599391629629543131629412241826364819813783553587785434743834533451263855654691887596848968288871555538151629299684514789918795475387757359476781592749572738475639195954716914239146499896749916787142252113635952849326816313414937918487768893392959598283367886251615799241945188291618883839599857591255899375138921295954559584453967373545296925423958359988598627773861616284911961749247994686971346631982417445592974798742979117373162618125227593761942236236195464712928334479942387479124894241937171576961758266821486521969959412639629532936784238754699934797225393229445263354144277118612674718666242136381492511597966893172978222568328289199986171947724332887413755148833773887458967777791691679566991193522543957518677251958416619118156799734327214236136946353897631992691939659695961519466518763457313939467318945299689286158259743592995379863189775891829516884799922637738775813619971297789523852548244944875827925991957855838382862747742918712338469936537947619843868272385342958213861736298369787958616778958156528668696679513688142928652582231239915391288938223925344632343549363478412995819297117631535932248981854477116174375572371918543483454178585482394394565121862565488549526484961844197351165356861723287299887472285979884814853195561975556317819812574313156951954463696748827693747145345472186179861323495838353153568987648984765858964733883224394519168846579488682989738159426498812895739799611364436891925666719987594464222983331664716947987777166112386745642887861931345326711782873669295587287936496612826377187813889827168938532469724719716596298932644635256957771438687813547372824978834155555415962438465271928344153312185817128543587928971251965468592963869826676527342737155848795339763798746364366654568764984925812464579831616359651346163687244261736844844147538795445523687536274857641866798683953138549328838981881684731395522996234872415869436338421383895217418392658653673947695119277377696834125657741988657886631492361154994427673381383719225981759613115293993496475643687342665648166129413782643438956768821967863894924612928766349623335813431112286129393969948734367394885387676175813583237837918253686717519916964111219459885842113714859735127997179414542298252821114618497799111641149349993835968479197925178759724916929353758413483758334385154372536227195489567391864286718771936673178754219831163677752191998448472262523885371878821711771199357267741295642511791293857537559279458668616246684369432879122219297631256957381883675113578895312679197956632554851364277464959786574639823584797667998262333353829215844414828719584253597615349834394178344993899599667731379116375819525939578139756637838984738347513747521916146228517159722222652142879175151733584888918633824424925164786548344358449499667793996272148248617218166343438863728462625286735157286798786356946671436316581112828446387515477599931991398952547757588368437344549855825347844659477441422944941186544533597871523413984217316125371291143296411738593136363969616467793195211512415159765629152822712697486195773391733824269827829568647243771797874923378372492967314137698473434214728347617717131711977775316734581669279957133924173189964153852552598242115483146192941499567414746812731155597596717451997445543793445282817513373989433998117582355271637376794723128327886826771652576581462486668867757819776518734686399981544847957191921911329414352237979272342736571746598911497858597596689995583888682335261289865778556515359512522293237536412471318132273269219776975199647926593584375699125385591834881927652761924198794977664569577723337217422364447955445986696752599112825961194688245121354114852642259167383893512434278629766562477929861195177137881721945497531993343765433674667599516772824534382551682148344454714451395168228616999653571463829896578749746544689671541521172944111353131494712727111743773622397724655462864341786653391892169667535478513818424577132234438496435861333422793144683929139332151819669635531954514985414177181395393987191874855635885285385991787876862839897344343995866453319878792251167666869488236995434948421111964316573934392815791717573757241539518437191457878581336779516379932865339352737388548882581279198949832467581666718563235135343254374676126699812963984458149426991868487437682115743525157268262687433672314875498988235935281633665839952544311989717232686631374869862386282292618166188837277754833359914928679978511482654915136648574653198787944142627692637868921444891881277729763563442775357934331277992669718895197789319193541744129467991397989164281491184629225451884975331698815367259785499259392849739392528775288277229588691549146381989878498362681515616848298968494617699767723761961192587566323668842631345187878441898815224131596939175424614661727929747157747135594925447698581336669598649684777869454715977765744791519574455773172578233915679384688872135779119474973862645578429924562727667742213529135496563625862872734493144921364734143719271148612938451375844894555121579992599971413284979415815618613829735579495322547448884597317551143254944977997735354544663926646937626162965937943677352852245633351648225212527486315832631265561994364819828949946574268844817916838349487211355499432324741112256284992938375799689139114195939479512477878814725589728953731917839897362549153677419378359269397931496524388593697157439865249985477416261989114955611741838586499655833734641327674514463722876577486576696817719722487842919446481142537513694577542787515537881442559812926198763422249941113551193418995365943886258998753627966845184441243453283294664524546333655295694746556399589262794389552851557593276654511515936655615791991957948884332882759788394189558896176615828314743431766185754278769239414746272656645123651158751454933126532918821484799924739258346452629627898779882776585979349959387742413353388387544899485289727992622815878632138628491271631241688856329499123164978177811246828699898586335887386321675277917183874762648384161145757555962151594592319789478978777996397399545498794883881435239853382542327449992871869963227468431135169159292972655671451358259814293411449147675584387532767223986894374727513282317594456857591122516747946388141141876872125916332171437292474867792494582385377753448286877294556374144739316797547816919962535527197313134349683838825252392644293398285191539953632189327972548172142266454368186814992382183764225788383367995259822591312973971182834588855495673386678511661349185778122878341451373151811996474665846382645697769821388791946985227899787838719883182672433645578164423495215919879757334673372282358319677974914617639611842475529524849274355329849747281933964236438638242631355198294369971588568119687375415841923775489411442836775489993876362332181137926397948261157848729797463257941623456667694485364971486681429365222149517168158846619957974892378563851973545979353666558747581377632316636416445667756895194276553283991373192616576626698238429917933186616722537397897669621169479178493987947793572959576288573736522866515148675336747117315596752216454475339697977368336548229263285173367797937541878879795554958571534771115933624967564587176182537882464981916977645237415631666789632957171919767796641247266546944345599999739896417954578684567217168913971455897913863855356163266876621642381267453392229413874981248513683759988443342149569583738844859465798537457858685431126368351117728853159583471364676544738283639657488495323346176932463858675222134556985993676455572355887212797385944297549852231363235632934368224946371842887498896825227893759458257288845964575558229882128533453792499779665143516796757677913994493163713882596821337818878845852629785949666877183759886166971694889951794786945252984383783587389256788889378723711315663883261185789781398384916148265195482473128179586597569977321566353634875583389535243276989239853195986158648722861737797559739416121976663733622324592763357566223647669633717847191758171872549627157869774855667945399138889669616681555633785943655825813182814427989565425288218581384941331164928322354363797539199646699253644226443594284964786597444559795786857338954285869295411459985198622756238489519419416349851915719294234922625171485539362191892818549719264925931691962662128958561486187831146225584525553579769638845413159652918634318164948455681771718198661745458167623272255965943463289896552321544887533673976852361729722652619515995158684874411174177788587898582717274786563742711685836255737652381998423657271284257131712926253266945417786659361456666869784561516985949359417693976657265618935365739449114543724533626157638916897192166556745578837147352716456265568734365179521418361716942782867164465146926936184258347254835365811733158594165559851669579189922168788631887998968597888941877195927716588449593851515816661473763493558333818611857647695611864991867722855662777882367592239418156584939388159696278237488868188794129152275226552422335396684118566755116847645127985742375942119413788486131493943529469441972669595444443317548716948975591665261976166843492246958894973187691484816185741913665388231671183679698188933819421928294843618259457832784259829617126574557279179794434349376232788923154792885668572554921448314269635937519644719617379469793855471669771935712435289651423711747667375741772994465998654482296746219865595917598751969188696331566767451848394574365542864662264827399134336826868871588824415474951991774699621618951753636795945856924786832358542979479612834383437783199735899317149371437477966695849649139711189587733985665165935761293597869289595569912336781834376768725657982451818977395184192851543644525586997458867756618817165848852228933926877839252782179931444788243343936596297914414824337833517298386856298985953119993235393179417727152435848161316995992542175912922595795475229751118816461193771815877565475999334177786257628377623563817652949252168859651949127654818148331741988897948311342911579993965468114172884461471242188966193618564893283767845923224358547775312965387924277912448856779199951416591277869198936715781124721468726754436196238799272187994682642763361381727397317453611153975247516551911285576599995914899492765614625188513486433156748777225421485497313322877692829927828993341244597737221786522448153545696675643554563226198152234295572461961849163796167928541295918427646628134342311958574159422189854939884479141838837288379436991683221312196991713733815563393119684634958618338452182974917776688467248442347796645968969794936624415442335167727841972669231674367852376654862614667827946461975813354473544896652882556453699734149998781935966577451787181576243961768558371688498677454821886487791646728331686878452794792452434579495813896113217181381776736215134842969512945211374485681639588818392813662998669564348413738497929656921993722311842424111642223952834931547757576991222399333628964971468212692469746196931993614292359678357248779912199478597435786242223418479391236262826596865774263472376426493286487165292667262523843552921915869576651261446771655811773624617856923419117768849592376896898643864824992321743328161676695774897259414948297159866545416181446638757256617628619849289186119745967891186976254752911523829816749226482572539457427389747172411486848783892515726649875641519874495663183849583227653662236966788339932246479864551755679442663599226222821462587328322125113556818714689384945457853432173132297418639774879995284398778138265922937513977324344752646427655139981245213126862768379166496841594213394768338157787941666981263567221739994937156725758691778634435395893224952557572628344138178625511429164486298871947354894843453319379744862676795837999129925156285835641533949754448138413151835456526328188565696999578588234259946665151241313423172133534362444713311535636553485522717172952413483494896989558894267461362136681769487372938123824261673661558331565787958866788289867861113396961258186823876378935523263736362461773915365918999191614465554748998766361354218125815919782572878215691262326359579917598819144679347133944834188826737593954191216632495668697658689557885757957253476567354537568878174895445745465918869948935176126788347817973266372731697991621318693792437374152992344868954479154614148681321324123683541686415612117371866333468971452439956935131356379773159867536166518149511262589512219891575215176277718863711193423728311235397746481364574696649422215689988785852262435912983628653499387716239963515781237343423857679656978151565999245379688698913962569849625594247136158488317116129426852336865252367325453322628974636428992918331726467269498374489123934399173837744667154749946222349897572481877664362731498834972846944593817828361354492864498279375462628664245886677892218171639491614637962827144515311548895351479568576962594178161919234237982442536871658617389395351676174693357794739991551492273517692833919438159868517264694782698776769647114761791663891912776787347899986374682349955271146521689183325413646953877998213273537916764279595364649459488756885431763763994746545644278616929927884659911763543865737862271124184224463419315645179864385116465962149683399598443184376554792726818739356259828971911354587975688172599787799442878666769218269531888759541571713119518546721988657771188212176549547151551364424484677822297921527175915782697886528623789231387894885258998228764878145967994358626515498725688748725912827226163437779888772463676171853872851491754714511955739876749633577198668784226396273524822649981648893184152757562765488783688129234934369712467166532925429787421321144235516371872767588567247158737232636548258326414758528594269268836988232943397135363391854329391462391383417791257665529715128973498454676588583875499169328596127155758432113758479764242977188749922996366287792916791514369563773973177835919392789698845264728477965664654125247226386359317174176637336137351592951841792612926377297712739174863336114675843795153981732477532112495374227914683478619946513176332762141268294717732162959815384166984643959118657317342716153621111759861326344638876964358956736813574734267977413515938696399378667212268355663641454394662562517657755879668898839576239746991598952931497226584843532425698931766837449674912389165533579994475736325227929946968418376829676925525841942257184426358989757565762765862115874587772572422192148339824934167547844551638228524798737288852786841471473817689543956976844325638792999198282468941465843318948294188693971124731923937669988664886728938777742489628837179589797158126144656864681643711537881232633242988519281599118553831992174671698694181117825184191196122814865783139665118679361639895659138775966376686748147767644231367589183711897679662449216755136435798483699517878367931718887887175573768881389223738154662483178471932526778767749497721774425946617851477672927259261215335421954543649466274685636119551798396476139923891775592836282711568578423889158638387427291646615898921315665742219372457758594391894369342748942534814787895438612981113468762684934544939148969945262454764273779778666971219222728663918328769844965975536934558496832199459158488415168134545353824169771944322493917743231578635726652289338697684185214228692369968658983784356915199677489566163747141357485768493247568376281653113973543314139868836391796961811942416968453499492994139821933354466351814182541385933885189393332492991792826837422537524685818349938677254869945996247697825929933257836813751196283388288297243728519942123946918348786738262827864576765776268312264917264931864838123312864126983196363156852156643795882222437599681435639479525872313894434291326789691791275348277985868318677793352727347897349165633142116125269519785689566952219311989159439666782149983244935881567479368676453698738345332771332135195938234389193927975695423673781548451532416694991779366146896357699849375475617187383172793377928679453877354129943745157182141674411688293741995798638141255972684896579219536113889939566731586648639871528644826581274294843821262463721659437786229714487878565385157857146676196828869822286781195772247697727966497883464267419158661882427466433215647325763419686815715821958978661572898787476288311776739232892151927973334396495184723259245818536934223678634133429491966769199484221455719361915783336359825428844893422125534415357557798772897137833892133915548151914689931142444727947573748149242319895538693986813364311986377648143373282816826761146759378119384291893978189427699872878459934491537768326793619567833681937311717514821554125673855261745487962964536717997834839826917471269645433178734685119347156259414431939889161395427992868529357387669888676344149159942676598618129855391196767952994436941364821427839254878478179865451379998516111593733929545541524543854446726635686784513765273123955446517616288475495875855754438641714878915231681397512464148368913159111975712726763538898934747244932312984168167518475154656755722342779776163819735786159458564928333313871429832854692814911275677319721414356167884798938352617371431168829551228844928459942832138676872188729491621291919247962173884226214515983631952618293691938692575951735738359795892272418458833534789229123566547552699711435995338971597578743154667617414225879889952785217961863167591299444188556189424833413637716113581817115554374166596795474466698951615867733987415279962719155927237446355669999977954288915511412937795759756278835725166696576863919999986691838331898268875119536144354775862516591584888621765918456696937956184936912714318438428355993652989631212664723879676884345569144437129899761458992245382775795936815544247352144767242565322185791488311677184565419713443741392275742159732154551345182498869395392982458927147629693988435823697864663642962297531815955584438769227759394741843611368153828949284371613669188986438946129299444748491982982779291452921795844473535631344837282296436664199575881136752376393437994213487688731761692925482278162413528135177481197691744286186242529754819955555636634767993924723839312986625834397922771291243839832355624689125392239384649827629796934829271366475518568587725276117618433464887319819388785973736519513187841773685898359435943445789946591272187479576119559315543142748712332145755973452196364856927933837875853545135974626498217963156362217347757253931937723374251447595147439997492896231464551661518255627556798578177453574335198462192458822266485244911712982562833835778259133257626574636238472499978234534343916519852688722712346843218853961871169177372887872773219683718681348526373324477818338935992945152252816525363417187616822154686919597112445758144948229933844979536637982312565811297166238714827977479736137174667791862598656567685881964177864717642436874214996768178692759794512156981959847544726158429186372335554841933956293712368971968516679862554734665933214853594993885474768946991894677914458383669944521546531586559574872138442344291155518676491933535716878714881229613169242977192619265614949433249814231557758564177189146758868149819537648914791315792798699171267592799461215681357747622881583387387837969986474225634821349733738779644432382919688686891431158947849644654723538715391796595662218886154279164314714986279515641518498447954888639955647786896669277943513465289316959181966177742679264824298653144833499578367333159115622194947277727755819688976682996594315328931746299631976414157243484659844767112427739931893581249781966929557813181199253426769819141954718711862366524953482218299166742438214834221628757695815865651762593721816929243989831169128988321263929977387236764579637237732819113815389342649698586142467281393388784378941116219852361811425428871332711872752899512881897849261771447559644258455877583997697929526613762462253138731997695323472152655731235866543628115875154989425298576687569376742391145658869968889981544756813855611725173616322332972286112822379813794516168828993827377574185685429539367646472853343872532934885145773916969361618717331953977865432839247321424557181958194233398621433323441889267579722738383218441353992533198577336621584535381117167857177236579421688925134489962288778443252778472787618797997684471568918812113918757957437641174257134587498691133911654791639239629897675352995648448366235348238867523539626642655737732915595656798281278435993518566328627135819528683172832712491714935635861951554542575824613795318369396877791974882871235499199754347646671766368689977464826622165718399926852251316513213954848512916473728792316487945465147745388559793693486446823752767659893792436728271916774333459938962661944218275915733672281324326832419496586763567991388112321626197555513217426686281164546369662649234294793217943785222694935466479961449876413579165659486548218431394883924766782429594692459936984296898977412997857185854541925842993932123572477412535235635479323892669973847974837688878626327239829831495356995989566172116656675986339837811337199497445229351318949445919355674739138271946268777753884351893464583377814526134646967755494941715621136313822398681853287358559217896451822656725546936935917979367559145738297171891617564458818676848823637466182534429888911898321198519461679799263535883835161888755476855614172922484971644386572751874543463918257854418721966876753579189187116916811779973118482553872491144561444952824268173275315874995932616533955622327258248916583561592167747869124439897663433538812859525746217754883694184368665389629258835178926341716743593395466768878687556872962627939828516784476495764441972953978446316693199992989595871457991797323125327982949927585594117287848424188569156539874668885833747881132832133269113231571146442377233846699789791675448387713467351126552737189583194312847698314175558583117948292357428487661769984559144987424849874271851361984576374438182166274767442222981661834999137311568684342395363733842718516172639555399316478778894634685991562737257352894974964531384392294747149794717921978818756293821797515151816444749599162876664937636873171681591352959298348931634379643627267676116732564551394182773263325772367487126739927224489495831139217496858678157613266327665649692782457549193679417149343555735642551693454682367926437129564196468276135363353318351961247549782233664313354427351561326729172987523579576299446565796292771189969517733381948345942271434249451879693789188742757773816619885499535816636747611284463961253849758541119439316669412347972525174721875753494398795578548981494497779296732956775756326491322962991354562191351191226463981473867222968288513175993467964281635149861824717698549572253281194985641257878377815628442547584776294684913832663813987129115495723793739379679623598718125338644611681226734367181383346635324288558197957472196994311334796446977468532528975463898929929379484394266368441816138273827856844739687587173297637163214766575671378328689178492986914381469341953489856159567397853976512161498866175872428678328928359153798922743646579667771167655492224518524174228498566619718138139624514884243582791781611443549864676414255249585714777775155972772956715777984745152164765268884343789524798845915873932742411666818992867678413657775712482752945137519469986444539951633592441929378878416856268777562727162522192281983954151929681755922573712289775375495468276533198726699136781878747695499946295916619175421228165723938578229843898336797465352321463519163196745799758158229216649642169261436478735393333914891778775795385848358848999772565653744876829236923977925985779418186694136986449494768273962989148537528913435467886588615419629179611248952663215986935377175964295546142343458354529188599795934823586725214867824174856915434923759572121238939515981164464128833525641773662381437324497191375676884227583678327254654975445337552151311543483129577944522636848956994234621398189248735288197861949777895758611676688526264124854492539539196921141198953779715883265584281995293875212689869971322775676787976116816338895366428798263814175646994887123798667329936121442933424585561754147326861863999113935341795971143696856941199688393491645491242426726955683332443816791251817937988799689738471515816794579993361785447974959858499226389192886399185751457957472959785381882866282793419781369775774537183239419495883996399422756816736293589914698158791718826527667612789999951219161243376447121899164596783189443567648656224253221687988794889554768537988498616632461593195536623659829855347734789895957736665584299664387729953985497363161881647557892177749666646917532354989324636967164134285154659169596897944579126448528427251142515381975246459472348381351794289619886556435187442867481158541171396114156554564685214583996815674946659917635539423659151955585896359618496679717325563867193167687441215725611993119199743138293461733345652271935487346187795259618915843695989939533762565628581781399571568767239712868148571882262517559484244835926659643867453866486116758277129335949386956187165759495326469121966636559256391838414946791669679944999388751121631199158654789495668551557757548898772962829837982987918958684452121626651865842124578256967848638922859124114567993395274183473316847741438952735756878937589784216771825571679529245482464192594163146798568438913335268755427664327328913361427786774583659671638472669118475486648321993774497559663939545918588154572382345715186458334397516992219925531896995129184641484444985884933587711847951195365792965546245117156154923162948354685834176585535358241164669281294948877498718599426156478269845391132819947885653476928525949561488331542963958244537314581493541918352871653227567567819135497598226251232621582953236468887759178788542318742914361432949598667353127165381171726185888187194617445241343339551732318652372339432842585278277188379357943937352921878579824291198757938176848623611978451646887919558217578846215992236975966611474773379919343737175321689672132112666247863799497785978571474872847733769137313428492971928794175328849994576642359621391568716529493966763813249162692738334868365269693197286968378916475314551986153625676552757466822138462498623249426937671282951325811554959127954352857156893514492238343749448393696281489694954386821939752773368751369549315337296937889838719824994161182154841315842853686871373892461767154372928486272722317898894184846979951683446455371882836698777826134516449175479474682679673434683528261334546557844236656876689484938965228694139195765493879232896117591958384937522219681688938698289259369822123594893496689993676823514118847675497154161868112837972519668847954874397531321385894486282356627958962271857679951793834469899352166991813554869865212782298297975859126483327813696818124333152464662636432454587886297228139329598386497748945868174193194669678694283925919264491236824723768744882551951157191399882261218942442966997158878288252795748574931431874485162965129996487482696284435784695774398359157894597154619657891931789666963267928966357957876972661857852857763629569756689798951112777644835999693328457599236233592831748199952774253748147688922585859739829438277398887396763132841496659161134446759332296369286322461151172417426842129688139542815845498921697227182498385566561383417147724816196873595542284225883334851586827344727427148999444641368774911543476526721413476298421575343421359225274421954864426495453437863768147676516748879525356247494329992279341852167659856489579253212386577764455983628518449853395448742119242129517335922476298762166789913477245784822198729531446594648269118873462821924943384791721348483231554676846946929384639457678935651155561576528142712144696757515779318786726685128177674965984711482863191625776747834156112498689492161144915916694939938974689288355769118869352814478335771425965251859559479494498168214763198433926469189714436939782653435845551667523865225162792889469747464511793564365678734353131967747725299677178262977987765899284579716523938348927839979926558676289158892873839131456399542971652214929476191498415668467892776373858216996497632698763716328751368583828471359445795798639166551781216978779375446863312797379898217645768789619647854262215721418285122841776824899632478111359427743453947274639176231771827171999219823694181689485778424598156874159268469751168333155549795834658766817877728379539516881194296999698559527927335816364261125621858424523172482355152823447249527412125492664888298378382511828297975545822798266945425147279613785555319341199391612247148923434526998987189145951592156739235246511284354519658953868295697179691383264898829825963765678254971365224769693652141267649974921159585477797412799545928868547321936854361873354339153541695765332462772852693296491149727459732689956995293298696712568516235855111169159894642815183565323516417834819988126257424883166837514115813633474652864882745471153676471511517776896119741944911697877324777945757375821569363813333285257125936876146846499637465928177226929173143811288113783554884459395957842765413247967336585551246831821898282214234789144459344282286877823169488718137947375598552554458845249138561563712599794535352695494927621771264927994163937419168261841191326851318259712738437883945257514629886677497464999226543334797585245881984931426742185233245274157867759164266661968564717863469634344669984361751869138844335859166378764479675253141726872144389558423186494816124955116915897138875571429339536398645741461362568675984673291889653148625741834423335551362687376278694325798179584768798799845748296976238179837985242664945214859493899413775588722152817571939486626173669855386989818841966312876748972716223969868624572871971966687677713163357287374369532529656726316649134762236897612372932612336114615893179118295316175642378895986692763573738542887929627614179341584248614546924587995477251476388294784773648843893249458226831491696381672322817145225949147939438351991186844524591852152999333777217188994638656367999716552537169833596181338542839512456872949481543559857826331143352861818464538231562921337575764986993537918857573782942342123758622551759184947227332663164842786458113921318439924334741844845471437153424599182749764116511856492383589185895392959241855911817596791388456396639819787498619125748916769682692963564458113461268128221498374326265854793278711514993456476191855971629766992132417517759653381129398454995977969688376847753288497886587345433738866561197785239445577915588929837383274657775673435684723658258939647257965363771691945771553931733444576218377746896644512815771915246641761181841784483836685219867438819949498135178323629952275451159316848768674478712934784652324139811395658997647118782589316512678917265164543415271236991664661597236852661776768734682593686539747639421722933562922111929581148368967916474711461117119173124489737439148581481499279225846394979146132511376152424874128157125498389586349728922122567689685619325241467158834168696632699558497181257159968258697411583589792657694153572818578475556317699219438379516441875137538962859234543427251985124381261854115591543875665244858837632783384187477235192839533955391133471318556496748624973368466294776142184887272462919296537996344466299586856172493998974135498341127255716588954866567699546895618384146511961421345981694579883329276247759948151833936483973891996743836767739637135716469326862845262835921971917274511613358642613382352856684118584722636196166597163752675492568947291192286757974867894536675573166869469694992367334922722692527792422714816656247597331826286897697365871568621139854615136341899897583144688681854839962338768891332291218665688572243757187869695683245869492487368539952984249283799176674852294952789348765184711679229251944964258219575528234382695798791941463422363121146251366366986772375587334964416753155531494172998353545752739667857167478629476657494528786338378486486587579177867486831326913557735375215398897484396723149895683551361621427995924824829974613585653174151831845571431664213125577485394656816896818842483738166259717763256896721824774318163984443644744876173199475241334924742646495592194171979528729264598197748529171897289154651287966239682797528558699999251839372351833611217573883799173231774133818914257142611298631198494166648792331841432598823969115694781875631644867398385184276722875662253368875389869255285179212783726459455271896296499355843641471644783516175271386735886892278817363938665179848479987466897322983791973271317288419591653994344945883786411969429698262171756259531946489562354679569329758821164854252865912324916518476558993556959177989792949645116274836779182487623169595629738145526617697928341333939849725499461978574638776757648951682572746775522326674727618817472554841696884153263137589893599488576451971117183765157518444129892734126792521391167287279659286972912485689493678544132229552748246142783755779753375955217819691867125422539791746955599778829693869394196776443951617352352336273358972928111867245834581719721681859678283583888151374738856711389811455344261595257983834778691472752995868872562945487784947113624891666242971558589576485577992553296349846661454986564596344859575687181453284714739233698956866246593677513796234957818467977642328323829321318931879293917495133536625369129882498447157966917397894883199587619314131543342472965229491842564692178937193477847164134543954633625819132978168114995165753114418149969477565128195221591134465966936894348917295298976317956837228367238758532874297663997343566475762496924428356667247437544687972739562884558876445633972121793591385416987911379362378365986815875653684112229987856958269727467881787599756492137954659126317589681787895353353477576951923937839442676246187245994899799581872538471352749622157561551238248955885255757831338549269194119823664963269455619337118492526638234937765951485222359994578223765734183261875218525116177422971816358655639392735998395257839581856149188864775464196646893439852331369328627451641235596914921287952566963454385431229688519484221822361655241332599348869563231799661143932953716692644239555842787798177136299843485164386715918334187874621945455829781419854888967643981264915857582349937182524567979954151178681528393993156929758232622786423415113818251781849468962778558485628946661957258483198499889529184879439354198346372649468644188395423726674186357631936524617447777767985734377541696888229826159385892428389885367793114594611569287219591286452414481966747183769471658241389661282851344228781163639965466683898362616367852949559549136273477176462694528417735261159689759324179993378141378861335989664776678643389916772331383975324444612883264858831883171444629837715719648752452837758519399155191637857445594539173365979559382396569684229779946894977684998657994819314651976715616174859693515882956938388716963951494212399258654688143318554439784836998853517991665261473364929939214118435259833449964979237418319181735889431423789563251364958361274944199712311886377634997754936988329761991648299951268881553261271554831256984961421435814798416163379425559773851153699326937456791333559443899358235614121965898699568725965219887381514545744965665463884949172595892932773447485597653262947577614875442189481969247618165895665717617992138763399284152762852369147314837484231826226231492792625955932826142651638595729337978356966232188967864286964427673461447659171511467669681882763114857944127391665668338696397254886374773844349397728113829968953744869593748459969422995997519799889712996379595644491277953112256564476425853662886388755813182177525914164626991271781334933947966857675851778728439241557171824964177167582822231421654866836974662962941849548995671795735185475713171529187675317858449763884189566834872968856915491953759398763559669274592677625693129913364895897875519176482634699794253945857129335533464324431727266586242611787548281951592611987117871825531878784594472263978626191737721128888683521378277968317218997624293828465716915658149632684328869769572656833798777772283397427636829545564266751848154472341427926192577824878713697291984499817558666815679523569466224998528384979475999516414138953872135859937414648999686422171295978152498973857774959535926471558185539911473443674991236511756271199792898171585189443112614657775238324621227451629549515225893935315335577782886196291943816389886956915514599537791689757337935268744588844929642749919632273564871118329291596577773538766857496329299375522926542285613479567431162257247951476653715118273589814575657634654493398521445263254447532595654227911567441543674647952878531527899469922416292574949344722982398279622286511618693398517919354135397711111254435851753695376865159831542897715129291986113969152769419945899371799289217791126681985113386846848639214634596222862511933518432398279855959778887494384221595682183517715267111923955259279852593298316832395568577769227619162527913145433827499485168525688635996897594569817764718898367628981311766992999485324791276989583596113559896952385774125342784347982877925952811753378687766267986193149565284816587939338951512162293828284496781893247291665439337235921816198172999478577132896449933272667122986294577735263583874462188338683482841174895438431336143174372498613643893515969378426627196357111753936651496321898744988359889353993589328984178765312955698722399637343599649552663439264887631874196461791262671511785311416836754291845417421576322588155243696296344153392331578313535592466866387366555432595412172278978789175471525172717913183665615615853585167998793996747888862939399643934986243718669773881896181111645597723242295669676896747236951266323816774775655925397932248896296855866281448997399522193488978888398661257562478825872547976492764396653179788655997597748519899527143791342774239749923955545359218762338254346562386774824768687676433568811884412372664379358916838879711333259396116539727791493641222791834677164984622998769357768458719199111312657664882742493454774369641639965623856596834658927634699339523384218151647982925164344367845385266668621823841775253466685967191639493773271392546219783679338752939814756422915827492996581649346134364977997488794874559619677788118892813854146471912272442518151818757685843951561187996279854896781932785769118966417788431931111248585624853567318128248374234522122529141589659321889781895712588757415369454719747231261264779214629738886486934248153127969486661447215639898533733823618564484281654383322192289253233479892791526924915254512157766831715997315176383892357182488238637849368316658795914327747597995511218348266628165798512377239789586262861342362894214547337561999453542112954977861394281293895114586225131744994759236921275277253531897281299864775716361123374649453857611989997752557435659548182956797924258779931521174434151669726671453889942195845792673143946494736191376763346157581229817635814825989876527584922485672448768711282827915453217688583715865456914344565669581678317941134349543898333996878497383149385618957442979214834693596686387361775539777489666776454488998917778326132137996574673294661538659236628988672696513434596454955631767976666122198895811743928736934134294662695852562441644256839629571263131844884172196946981576231652639447946861392598391128129736984249568367579682692846338656423344978867525691829246364459565745786358589497617145698968136854892536477819117438871831585936647549937484992582387571487622772426235449914914754214815577355875461784532671516562745977776593519786985581684179964187488716231521885289413858655861148228539965894567994637984745567516541991924563676926447951443984658326756671833885896983755962227268791993156613868674672551251326434357759696963522178275938523674678697486236145198657826899715193922711351943667553294796741818659936978979382377545147814147716862266399223929655787659994821267482129917997772821831972869389953425516164131577585385288142725647245975539938427335898891615788211851844967181785651872449395296867886499752663132694846915759669281888586345565887228376892391914811995391511619732428417543263855221958881623451444681845589891972696678679434854527654767833333125632595921887365435656823489892145589295868779234158711221374386485787484494725417876795936231898389632659552642825165753547261879432626739577899338462534784414242378621831422793117167211879986417798167675747657895999893552624355184774592933337275379998546445651344882617748165874441996298367527211865774994156595263642653127483975276985568112647515956614841714193971177912468858641569543878636811989844121556693751823667927497678681544567996945234224686424475794165797867378892776695699214322898779375135662518343944483324689559555623624785267863796811581567618251239747154938542117437983818784563766423393487152342592856511563421833336496524223959895962929117269571859485996315667243854634334168426822382879944477743578235152398752676229568371199353253741166436497986133645734295577126538377859386778618269135457244911662794369148155958558931967197362627313491663919575443331278722865945292223195919877943444934723143463578121525119768779596954273552133164559459268628315819488565582921259226172418763465477825678144696691653329476933754184635916517169236826792933198989625474379198843528268326541368121784115257351376895732765814169517166783146196599618421431726451837596958945446782299222772317854639982777446856819392866156676593954939379834677333711538267987726932697294613523928466163993215974372937347419637791691272516479536394726117298564945797584713166511113471635437431477454622888143719433957469999824686684818966797259885693686989335261489992124487162213585295116642182982919335682771764577817545694473511339319493829746218497795621288355964385446956993139498237459462723658877966247181893656389428713914771285348556723476978456753468523757474151832985752723118671497239778539648763346512992153325366628486389612575519425668249539567873892628821717417443575484179657679898736828818121938952217966191913454599425484962189575256894482692477735776976931844752336173511672774613365986848651971979935773211634656885122572867777135814256712617186846138799498134926516186867889356449625986411289427178614292851594797415435269378785762797289158569137717998888872741553397278657657237673818585417861848971944372839855911827814196981984181832979843223463927737966759735917852598515797932184438555132935881177383893817712379658847316363576131513627978238997889671441237565167272731358424425616167819896725535567974997972861635968836116967118214754922323271756983394711692221823914819457581411711836377635143348397983477658196292941476557497628654222611269882346895598466715286883992399975435661615429198565855399769547527894815751888247576759958468398218685553949666664166148296534392485543587761648137234292986193964897122892123977779983236737121637879891859187691364873253888699318171229688393931563331166166915639476688467392819519692564818643691189763117978918924664438619793952535589599579568818426774196995144688278117585785221237532556981771736899485376269739712921632879831157143287892183965114818237749953536862596364969214252747266467273295226643951545876538853994461995783921156739325621572251684326633337381686676867631854423465724792837625682716646336395828189417586835649475667727673721678412211749673625972358727491571421597896181826434179226819761887558752629647878121129578427313449876533775518562167864832558222892955195622617444465596939378495178328353928561395914244492352991184627827872772555759855118332857111491867984192347176788829329788189812363921172448212665286855746573787136946715418959892226519141991145484398889534147977934879499286825559476247961856959696789248842927248643514133423118461936497515726959267459626396297795654398915459677845339189713755134832279651362155574142971874243737934888848116152384182181844221619234973817568586775828243261517684572647466997781566593493466522419661819551937341232831884865986959617525518185292829953458566645991767829382284736929771289192187653448755469478275474313946396381943958961798171735731542769396177858322689443478195235825481314165381347232511818768358338787858749131391798672837358757852898968161776121898517342797273221611546754423995287937159481844784314188699431211132284987548318259715219416949567347127362882133915524493557652694527857628566876588581179856236316947787771666323456519474216562582383193735441193853261822614865194265545639277751319978333876715762269634567854477252684541885545858318619197631148781162985891628475116174376746889456369267328818118871382668382543767129718695323922949936989721394327393746989598118382677463853576468473176298784847193836894539482652428826146446318856721659396286741626448893816624594922175517847687418536417761993561585982311188469562729819344491951747935986338625987848465566146222544854623157521991519967849559387594899539449741464428945958677327521323637925845994796769211888411854537814635829944429218881636535547238691966749353922358625455932832889328465583958738158277574441948321135914514215945853138796561627199256923119565994935495723111255156784669418717271174659692149561715679547748389556715253887799193243133989191177513784744996218325532616183729693481562758786822257293186216885313689268822866985166567624364226338348589998261154865276339593796858636676375821878761118623678852326872621298492479154262733251531341569665595293969958698498818934226342854872921297781221379756187474567935438625514773149893475718585747189464152429166522753612998434993989745218173648572989794182482966261278972948623337462749552994849171825634598717125494337324737916728168938196588533883469753871333252658492954155155261815649251418848841526682266837181294579752386861367376671988668498573931858868132989759846666652764649564527471835816887134756877899412137141372539822559368626517312533989516344893784439821987622964143576161122785656129598836918885818796371492292255891768859382791568215763163995878313987917998631148221158752452763288537151495284555974283294841777574147653836671629639334764664985149364448462518691566349269628191888243926274486318282728891163911638212953872399323463691633883434611119399142997778743795292486477435544412761744313188919432739412928118238937992962993595572943487794882332828556338863367571221778887396377466438295427293791114679695651837495126572784193485361962825155197737137466426713173129653636925873243731288464645348492722738741919358557746662578246769376112814353588573398869266761429688977837257323764195578871289444829847594318925626359344142487975236292739745284115791832148198681647187715365817828765239818941525996848294647584463477771242927876911533952765781998372994258345414714723426788614274147594376222593194275148712864866659433466574185753461897656114876841368142737191738985931699776195498885844868668991136596295395278468931476578757817996218817849274639996376523856374834932611945292161489291568413194536354493758822475371347384756213979299669231723974638544283327954694725544197199692769883258852788898646531678942918768345961175485519155613851666765764395936842781151332132185117897212687842834828382265386386438988935798981595279697992386948743654193819447813155147513924819789997928118251772988682957122539173555823754919727823887889924412276843941128543279382655361148334193213366294527928473111984733192958455422628227725554321321471559849311998141858241918369144161389788349862192714892913738612889412222713347391858117977681831191252943142742149463823248879722764697475256853769338674822469779698647555567274862665831266689163175118371928732515766881712882673695435745998255841479725127214734925877178877786983453519768699943339377456148329752841977368922758683969854177553966586678718527662846434149671531293569841429664946819437475567467993826777678262316298253975949317225615845166475939152913844781159611948441131927234911979297511919321557691861597196884773714513512936894517238545622948991112598334438361936985869363631754878174399636776576829962334478429482391839824825316616431797827498177234754883997328366921963495977176266476972974583446521888931367483737383768816139557215741193593134628379977915995314413966759126329675423936251426285559813155787853593268147629737179192233561448713596651128451894769496862839436929574253414561398782354431296817274295859171851789246739127946154251669438443413117786488634441383923711791755986616753584711622218894852176724931393422522976417669237788139132637344937358239331353413176168363487445496165868655966369982837629588159878511474378992181924892877874969718579458617572747758342116639164632373546655623756678448679665639638858777821553536723148379517679397279195568188694831775851556742725455175671713248518441566893698771476426679818844224358392533998866554949292452289788731114184987799496477389861636157654412655666832842741154876437136927563348829697733994999572867986659592493978969833345929653243642715463139936579515155192887952516582671595393488691189665613414794776626677285593718964766412947684666372245376685669463769158233137241763686122459649797898313751972274824874575146932884153581392459621592782975583355187311617287981763474154567166487972654337798145943643286732163822987726367913627833925924518714489218876138941599363731984949998915254825514672155672648565582994372637196917834749892765565682355973986824575259372667164653918963342749191438345146564844768865335852766898964228144777167266158888942211211194174455919893524868274962324512854268699568845749461179827598263147871733527566645887452415736152349796682828154343976933595211161289812277981378637837192257643217366428898924729835764172361899527553549974176919127997981554296861478771947664437782958379815856441465636713221355742589749259395425737187791463821875885385519771674326247222776785379959746478476113254327915729479539426811675315868874453662678376595341877869866682267268737482288816178453576965389954755645833747787474569235448334464744933453592734572471547674529528414849225486315339888999438976659861436367163175665425754831487988353825189718914737753899878635676324516783193447795295832995678591711298476353371152918133675139263478167215252834827111376553894422946117416894531551427292948431435575117664833978143637294695983678187848666969679919613127163971641933935896732797323447389951966115286995588433789292819562891849135632294177977265765887795385794271461614766578959616625213598264411965535446914991314237831343397662847585846392443564938526724576934898537929716834476791519388847961483219637688682872919979816858386663535655771351612273223832347161937112367983432677675776542398712859585136232799472923455386291679625984312711632117545192832163622893735126892692853421717773723591238834314841443392254634256387277379836624361933847145432278358979551976569977715147835129323392268313716862568629561957233769849268128916516973896822478264827594533516793464251928232816929871348822871427693294126919813927467875462483259642917796261183722987416663548464158791836642798493839249313982822872736391918413233791348162657185445941653522886839659668439647812269966753184524514732361812365298724743863246157151757896743471446734642536351519853252995443567758735473485979551972549579649884563852916343849864751718381369658246156782834192618979242716646744535417538361969553951921321574657597392776139348641975148854971588487713688735561966931447478633355881362213138622218994146593444821484963917758466856864436668327684449634618293748517887782636126975232254481139858284361349846674891271377478465447913926797899977471832964747785784142865769985529756167997442894699948752155926577914155656967831744286447323221677727882921533534691546925726838778267427148666216664442348486965791363194811771517695171763356489876716958465919267693655731829342347694695316497251871656345225284681188319764859892387865283915783936589968758584745618777283936162963517713836512845793571684173286498249959348297163188861339829279876962989169279227477167915875313729951631947433624155474567175644249346598414475577443842888936289815215445373588169225996562685753333375476964674529421753559163975124967243746322952656492343959572795734566193314187986643658247193813253529248733697687117697522614593228291249949619276817736137498719526885771678582382515165257226755532388768481549868567884569128313245859716322415851651598372212647819912962926119913255581119996155727647972691152149277346693678713547694593378367595894958474428118173688688667714292219467149174456912721911612448591451248294384949916979127457856198365912946819722414795286835839467397752318918915197477773549459446764721436943558384814598253349512626378848129762666958865381768796272523226633674949759743969644386284826678182298284333117153895176851371386237796944814929751784696745621844388212842258164613985517487623737767421313528426459348747624766783551938715895572167259924943164396672229283653734641952192579846548859599476945275366858813129118484597994329177692477395589628184764744148169231545758588243313746463847778363262456482765845133475832368161495674869962987259588815931961322291543838659684657187279321428732191185991272454871836289135179282841849592859595122759638711729829159245167975136822925173489793826987687752596963334352765347599519143174179497612986959313886511661964655452112889411197398878688551184679939798883766476489867984664769619455975185216919323725596999911919153824837886242788598252934164891624445198224152725243694534919678839663353454967864174666195491544316652241631148178266488378548125282183791529725685148522436259379323558446797814429976255234348436776479684537388463853186123641943444583569958781351367935192464952996398981787442422257898843665456176559314417861567656634229915954878851972671146856921613354576352723259425617147516695289974933493115718357574254399614381577797546796737332157914387555188965967468463195961965883529395766265553183512592569889469138544854579726183171989419741743944187127646434593382883975921927773191487954216133879244793878947899514596833673686875427965445569584843735819151544745117948236463414344466983994562229681826349939233477961169223421563295172493821645625568562355931916742787156131717688664872178448648694287922372872174759878863619833715697588527939625914412419686113652676171646854654196112636299619531893527293483383446422997716972534754767877214323725545865612198841941158917787165344329171655482333975417466912978897541991478935932136588147862839546366619739849625698633936383745839755994131891376479319891446871656926317151947767711741827688655923389278198745648589859917866188598964865617345862531872927398886629955734668156473757725698347962496271146915262922687243568753612868496735533969896929517729669955134142196178386561486868295119456676144519634976891144221438287712192344455878233289321418221948315685996772163488547429348942449157811574866694116571817967756557134374591529277984267119377926994883995189458746184123123166837182555329814848567638453591657513269559892664511727753665315146298554919547898892737935996856695494498551474397633749921583746472921628974792429696222371865187643926617161385296324616818791456373928674374631857249923529476682485983937376842585734822584316325371359431832999677914129612933487345565579968571757827735887549885957317595351492681653544277687158873224544673874691539426862791947972525386264761187349267413791668874313873918637993646617324238757184339975273618496462577825218974627659676988168963692219889887665887919324246178921733231741196831481497917437578837787488587827829581498933162841948598278746413926698235399888337155694335878384392691112947126479815513947919393456172151858522719949388854819734827294848849781295916276837955341148629334352371172752669195254695787711539552926967772485628833158371153145291184667947595193758956319443675168217486592556978358148736467294587188235319459369815562851125668885778241898716738772853692366788234538933629799358783948323669134849964921234799467726246479147451125447482667965493486999135412375755797264961918149399433435341754239839614438877766855173732588682788777119279823227199228763746477685416831895717685277385122482373215219165693838456369713766399538971337727739746539635489859378296559995259378496269999421133119537921694986583976563782415978351927139934211526489278779632553565313278775695685634883549545338219966621115273278139787587494818899953794728759914199399255121481561449516356362951913375589295516165971161416485646154252994168686554929212199299656777896799175812425191153278175172788384384958528576671717782572121719314581499268618193971494491933284568954751568793269482241172654576453764858953636316339783747669784249346657415123642559637823147334797157546443784591297722429257468547488538622467978413264883988556622379443288681852335753891383916635113399397396194244525186756597556957251617797946821744439447586687116519792691475862486753149517559961139441299956676357925277411315739967842694727852197479285439827482654824112471297416963631945369916726911188931897385664758176524192589987279335881595859438146561741976161484243671938636631722235476253629592386148831861774997648761137398976654639192773919527999896411738821285351682245238275191731963856677646543546664354962227173824671895756524648818776941612243421812434515317291258789721353753999383328915661951674778714649577528237531179492629448774838171977664235968679685887484898523943239215891113479495772692869271168191435742898734947545857612771267927719364724444456561146132229579586496658978887995582883981251327658657785951998154244545965177519219232492789581743742696569298543995768191841969197295195251941294536861194415786776267132782341483184254761338731415141155997383481273833729911796915378389597499519854215119421737799538999739973747113931535569674968784969432344373369786793252694896196116273645615444384343836982925774966392792622723646439884879453727651342865129518719945843137774515471648711488915398429831581719947697898391816271568287219368841173339758332177992767336678379874578893222933541778311942446599739157564864862416723137436179189678975213711669571981113221859698963463812227582979345459329937786691127949265856296564716314992874855926758192712472466896623125564216397272927232414415476977671879532647556556336739344851229862775682152714397598257861372359318828233372258357252747184175468272827821259217944947475159211816687313441515482947955617511966732688624689878832219662878832281622694593795699398611978893784213451424778629891214178294616362279588559778897394117939613786436833879744178255679531423198645174253315451827298456871735721838839249548562132554919413885871442759688592372955976581657294957252497648775992129694359395315484188861418782268276854994237876251561191486671898169656766757529366295978818171697784274689768623939368697767817881983942538314119744678822796711376115217859384468711387166629529752224213422631316241712197976917238848477538943986555572189634651915778139838378592462146534922943594467835737112773342945887557244387786612163672139525528427498591334944848958481252544259377253447999333815691452543418158467662337113299921167762319837176486848694966854166246199678189821619367928855526425581314188791786743219487458327881167198551272472741877152886178745817993568662189663616682672235384354491419483962528472695284549646315551488917561552791363993846567429943914983961581324951133488862363733113227951593476232161478996332579597543411758818794977362375961691746525579888538975447919142386894917787886939993496534585768147388392993176386848185832775784134783376617481819456158453477726269414757255116242289229518388538956595146589533956673158436239491729264774845569381882612271726889299293193293595829276192955896322759666918448372756345186152572193968559427632123287915733592813975846251737866974342191247879378224497718831311148784392658423133688499969373895594293475289854161197112792727977395875425196897178688991574689843239118182966646162837999693691644346791347639257714658614251782377212634759896991265684672428394865886655517314294177799973973152876369532156973967959724932651789517154864564796693467879539395621297627913188972759644225574844361879654699993357718555685692879429576822839598899834929288731193111786435194698355989976819389117442538133316669729284876539618152289236761952124893439141844232876965798776623864929266849587161112679138982216931199198912734534211256966276839319885175873179393575675175384729268987361561396964597515411926972883396386678789393666646485299258698557856386966371757117441954269897715443783191538815592829818913466787318984462517523349691812772771937356136265379749591283129164322741984815342171811894386477741619635126631699852511896882999428218879158196729372636644892755196169551625469646449637517843264813928998717928845539497276711977729278975496729419868255793668275685133544592914483837438564748225116224968315128957651228853984244483851175869364415243476598591787163594353685816822464572486884332598445519796864667775946372588227176274945219959524222757453373619312374517372322161631959372436574818976228482967615321786258755868859476474262182767139729629135778821257816971328728213416585664264277151771214729357696549816568979219476844973941985882177148617277912645368494671472462969819677885947288994162138936653129731796354582449946836763477836585166414341787361298535494153958855436787762429338167846995145185438775597164258854193178136676882579148388591934584764893984884256385884567364952419215715861738737558726115741463216211679976894689318356876347175927878869669815649962649325479219434279822664529972125221615831197886954838951555496989778183443685355774467791881826994811133484531737237226992868556913984884263541856859734883252497692461757637415473677949266315421646529536237261519792768523538121655235242741233776667338647192548661389352878268379188772285277485878815976549618949517732519884523999776194433398219331952969415255239687748193514677675373996882937988258697692574186423463661369841761712933293548211697897749541691842449169568621945827849386141159648534228324785579897814268945537855186825694855617371679485916994117937525363348941385347298525968437879352953733873953894529566449996583784915195888327127272362359512623823168315343219135191232659594211861175398299488724928521198513837296847597714255352664387253131138515996231757981933541634191316354162671923972691251943297621652442635972478988636173283853743512459923746229839143638163889465561594365548835557565485244892517943251818383831838167237369998278575425263948448192177885382229186171668317692735329556114626315388588577722888371498871369688983968731746984867949591183519971816643159172264485715965622553164491588262494359845691363481338934866467679967969285856963686917799331527451193199646463957429241981585163749588485845798695687634398568855838784519676767927811211374126554952262978564618584917511672152521318832667779918884297855394645332849833275855986479222169848463844787959416646146299993474783636976819846259355891461789123473374195662655449233265316286578946633297829629568634964535793639248285276813437415373717216665628478471992294457443378219277933229778237419165899131618364453291669497897255485563521853468354611738747633886185464869472852939773465633399848565485371497777869785511919813575485947356696191459189676241316516237682742634369873683967227656536211269496379491884936315372976639221131463966771194619419658254516763299434933449247898285817148157411981787569996364339512776689963151348128878582893422877789737714337342471367936159518846713735778315743929722581346811798129761778281393552274477683683957283688766986194957619737848451896279698395753256873347317512735866492186917447958546664477839641492981652869298647624146372559247366981213722171314465198582542876576581461972924339694692513228715433179772415457665193781744582868924989174686352485242429953621977677284939683942957736916886328965826788858282616542968778815425859645577164442886962545244896424837487134119417853484519831847519751123452359845873152369869381719146894165443939539779972466939272387849144135628134629759961824948659932918613264972798676352978169852355494589696756929639321189183851979797518958596495944715347532416564732937811927249223938181945714997587783482355969156887556193698254824949371487933436937827718374655187753866498538644178291933858485961376833215985691367253888665913951247165767355137734819776158633566684193519693952673132557616383735236148182511794775997483172766478467899262274872976879685798248764276292896431669677498654727771574629537564929913443268462558678262493249927157656946383461964156217431535516432999813872887739262756565536824981478559983218976538373298274222676542938843586575354686979651527217933237529472691896893874973783949216348257643559618549326356813146217954624974125916833183483219353757966322485186663611318859157829577271938354663452852359884233962685692998281547321646875134387526735537469477716872321646985884314784269786491734444529462526948825289461545927881742666477491762544328384386176842226644395637191418862464688522914895982748212299829188494699413918315432722498956262196554131212115446157378393887692784185872376368974449442881645898512457618373261285783321541712128713515199967596826714854261136389648889897235971755965971625878528929986113396981792634665377697659249873118139587951967345253959583543677333824376183137132794625255865619914275924163157979231699879516857526191764896736486657528338299231313761767696569182615641127964882375398219132278944899975545685267278435457814183529336567757441266623111941772479155285353166986538264277954627675291344162648215824695896346478124557363921764771299564868362824139139988435797731535441961941198333969927899697842161654351875497866717418945895178368595915582598137372974581397337388672459943217649811472311487958753143176239192445413467465446373813565649817898131818522887743217221223922155588484986455523272471768158573284971917866772798118899818475251782413772554325133486176116679954821779677988555254288675725227555898763664331514212572752175951257496697198435977894887312613486462847392796366794366791184215271823922253418822767347127741942764114249448439721353189546868939821516979548738156959728316782718689667366889589711111885546997815628185559497799118225936959698913349293222427339344734142184792293323542786399763276345423484768693475797854755388867768526599934457628623199139675198781797169618343169947277382687978975251792771398485316697139758245397271997241658148731182789659142115915129361538489513512817382149484272819733818337951873733899615887615798271173292759893518522762147316441293788835591337953258419268694822146987934832943341181955622572838818438935838641472551854582328985344179493421779774299858255725469331859379557918491531625757124791483766967274574336625875177638666549192522166725192982179231847996331753424824521549599352897791984175574224653832219186946982484226613447273294224928744662174362687737637991418561462465273133787392781728786814271196912374886762973949548963379288894415824247827653686634544982171399761838599874185535752775563788263276598543355318141871899778196867915279384169612695893832683827277466181795679858367137896649517665734465729764212396651246275744159741686689374679491961263394448776177515899962113817861824319853186519888591989532665195969479761849578314538779199976995465781235644954799359888789746591752491697399239486175457599845889174143875425752577181479285587797837179943647482748868533234711397581591438671626266581672951859836868328823289562855918288289179893217572135917798647845391465796485584894232139653846881555897731981799536422898245984556695218771512243438767586882523573911213749983473814874662155368391362486986487741956483592429661836229336453174181693616752388168226239241234668481896943833587775742952552923898926665339338146111164886994272467792269494868442314319873386778477889191837649374359428954352573825244946834821578385386367211573875148223852539437447512352451897621961253689151999677859223219537119435638789433396869463896124974486355266885169529698545596971317147144569787955963522633532279172257576825166391718887387959248729617864213265127887577558449267549969951475571758282454975122515655671575493669633978299448278611979786127221818726924114799361177783524299199197142497884344583178115856325793241243718535291751931648421454966961446785646971499299579656758548387949693792448855216655863472526687479141311794838591862467916685832497126465164945567569361349956735555368528186675161459193193884321268463235363599431875716656172195427944496782387614337216531231314157587319823534734398458982832755582115245264551361893754545121357223151957558796498218995734728215474443371637317557938758814794874856797866975856415737748223353812561545245653258914211492991923269628733814715874733666396664757542337441919767581928953836355394453473655749954119438511234834722516181277446968991125588944887332527669185776369352875232979379539868691486687119414234886528395781791549329468791291184999645152295658719682886424931545687927143847377544599344954446922896818564648731713673952822938354954544735196512336723754626154262641568317811729737878486527697724927369439575755911363116573345874356732963359877112168389984146822359249887776974455921733698558896488475892376718257758558418326239479759712969515597578678795475346387524583567722582665512788397576996317623973799742188686339241878994647391947389918589623983324564521621697237623297713725998818272271511669732738769643728929774136961865824194625228991677361927986196195327932421618165281246367499375758668737856323961756598168989123476946572629256958987693942713893849897412694339314726916991829367681122493366391322963161865984925568617234594194395292964881613219887693573416149364661698523626999443999478789169546655865875766994357744852356281669582427439586585919964318621955497825352918736764146571482761913854697945557163555144682339556953941214898863328781289813149447453557279848826199689158626154942238159341948964634837958436388334765396838491998461586829662918828912946495121753817999739182225135823737656714743248461997873397528653864866743468982548768538958697968594544929868168441985225553642854857394993469194656225357629149138354631993749645976446514316778586991124759324349924688787995769569718293233994836328243767698775273814827946636564999664344517277926985375135974591248914857512799176825961116971896218647949298896877557126448749241313379494546795338255533981757392444838377988154334635251528227994156219291325552429321626557175379364149939315913425299385717948346692595465151181151384881388759332678791833721139135993255675244758543182374669379291535874112986484337366657457189851291479294673976218282686651796921434167877414939834241689827485168422925699294487922976978386537567226151776135655262254979497641317177376367972863155966863415743257759795493966412925816614962769545425228143274276386625483923114637664358694869132651614976691899781386718272186877382393761265224145892861294444654714552567426143529718859951895697269171718927388375813996775822855982582342713812544997223997228816993658986837942426559769359648966562584186348212796426957636179438495376797459558718978711687139318697858172289451693214496936926154494968378159687888947314253857885629596664459496789949397915566673654667524244868879358976764394839336854953363483619421488631356649744947644563593161555574359865535224671643156315637521492948631136755176756148924514973466846662242462188691969341981512888835432539368893962123944671151876568794729911592524613914963413483191619553893396862939773637252378278535884667917665318861533413642146489239739875378448617448354736627272674929666995297996887339626261582468236884824841995451827172785717288993612647849783189777264419748383261426915631678768823879756281593819294345869699832512938147585656986836776882136393124578275447835844684264979719467523931852439817184426227822825151412689463631699813493812761666797422176665142316989781336111319781932926711265368996443895518177897894234987979676935323698375278333213114254197435389844494785721797912112399932458343643717166887284363983117282861295874286825915284118155817169523519847885419776152182843155138816536586674661786511349121954459787593739869541522237865658116519468299268252573561958754536264884151462828265842597229396695477787422972419258911658587124151136665258697582863233866755227654879855348817381553922994129793249614365177313327546383474117385491417358644825991699889475614385549728121139432387994755288642244743894999435761295719162414429722739234867922786272881713688956314244944186849949194659796193977952781249821462667439257972547288253598613525656713225917988981627435878778957684379469468758986761158998777915476443569713481699345717933843231733158363873363974595837152781621784337311155567661418144455619599864971288786978811335141359662395584224576668964634459716816249469779139847658738848955181696699194281872458658189879437943489194674157484154297988339781235456784172969549821783188833784848671969183787743191468926728761817968985663226867723778124533825718844785116267484865316286481768468915739436413567498374146953388449535481187957859443939419299875633556131359291959829225498315822538517721665767174857739884946588533773645953373592774281885134819616355425872914695773585331299469846587963919936593681981842227458265617661793587734888723959186692436396533193858517758455482254417477576439263187617822145779887281487314914915986979613917173754733744445585898571768676177739797881371142398581438245894277489855717357891583788797717415316657864161924719928769663776281215852734722366386555135684129355697164279161772616887497434643976541132951614432572567947926296625822162791252282159559386627781548248926761232819741996615354668835873354198584369654939847114188547622176154615756851658913977576232997961565836959683272372421862691926135566768637748747851433919822166593968885937644253867919791416527319651672646318799888266587678578256257335969375475378281264434691758199459769591674578882233189544651195764244363495197846343917296881773911581147389781626918174546268256286796983157442687197741469187425654218957398128598833485698866859314827392595495839543751614226428159587985662718982811968413183761818426497369176848332617165682448135339692772243916792444316387523914218327493231967578367346562557399546886662898879847762698287418652899752548241258329647989624132843378164688593956119925689388271147947849437742264814118365929688635289329864951614419189489778482324872446667497642577415597949974961919951158745172281495434146613528649119616111617938549537993388467395684868519575837719263479562811667756466994951944149612372827957687651693466797686499692461289716488659738471741748624898511785611597253923737776457874935397658227451172934133883912925117584282927654873431739256694622447953583976489782668857424485388981479494324343994141277197963439855374621474615489955792724464172388883848185736428136456795966146964478243178447862693915698628711167865847149789153263175571353733435492856666894755765917846987136671321429199812568799838549773962615895979599785886186969947542553888989582862884763964295783959356419529524123444664117215919653413554549642586439782999148167128447625863476111555673259781725566798283455399946731293323627311133634376244575564153678539145145763258734357935392781181829497856979923744567971943344889759554956871947789795379583622836677283616962825256773392763993388996652857876881766874267156645445533745967677427869398744498131985971734223225298575132581632816156873271985621777417945548177388485434785973442485259741375181286739675834273632681992843687272462484324932965756421397243988591453845126729314666777256412436963679354884735395821487213798199833711196561139198179941168397732562716259418512683917497117528879886948868136513331769278865441462329239349967584156566238668143935314171915815882298636148463862981763835521669464295444228291399988624643945412624713776944746171189943669191393693778576227299974378348571679993594951161183274879265596212956245195186341566512779211587775125388418116877333489562815156654814664365675595792119827757893161149667255648221187259349978383896472176582686733463184719326318329172476691129277826349316236953885957376942862784319971186748993355324415583291541744839396912513489633399754717496475471446164667597524739736911541987749183899371955719863779858351835195871565622753346749428555929999223715681751321396511611819853319999727915497893245689447641189666811192522636378372517656735223156296778294988698632861368354922834458368959858536941481594188183366777297299462835583169585611236586262538262924985612746917147366653567449912994823111598599683975148299636651921435323742864537986739636917661366269989547266865638238194366466624292229881825998785629564589554912628118439839199325256558385763618141729478366978926182147683165466912244591797593977887679323855116734413873795489394634523763656948357453251245816699166989643152416759693735757323865221951127673354816419159634823983314595154764177255553943717931175768391897556147986812379771375287324417527216225822465382966496822821972456596147119526635433794676278998888352862557726341971421286688229598186818234593618626673555396775134471141899537738749773769697569861196763547974899874518711943324716787284783798358727512552655862821497937477888367278744858575279964975999883756816917736935227175764965643117862857512485853165756258117372989282437381938292235663667515436148919727524728928677935599894665369453868846723736637791295446999739948892567862771775372726729345673938259765788786789594258617293542465668359181373454198936622188132215566314327714737322742574883982864491762917591958983669789538523512657876547572174453197742137597389884754149878178646588696183643112881793414632319926992331797365757916338295167718864739175176399263969631635669463694158689956535877989693986499367428325767936886658957241328184724149384828816732373781378629686275647116318717954245995438575187176354374445768538575973878115549449173126722725863655931934278583825353859979538168263184128699612359162693626837887931125495298234565847393931858528643594231469325311958985819875176544977356587389176588971743719768846362447773553236626364153121199231968745151773513811336338911614977482538239435578391762793658526929657873133341632993532256272747434984545876699412985446379629375929346239631598966187986627812265553738173887654848786168722641274179619793993154359465223372455537129715546883399568527621234839543846172198132718716478581515273323811144219887338719622714789224997228534618686811155976595969499149328627573461274486699583497936371421568121893682663859677296741587334226178786145953433861438529649569443612164133818773182961816532858118166111138672599628988231255461192193841394187251945552676819672778249667937271477871231695466567395118678276725979556478668897895136748269815535914535619144625711871794357977416475765935697444382461558625321778432742281814727312241534528895892342727661588718871659135792682321191999295611674568535537295643462835324661959938628632587268851861988127772427858326739741314315313415499822815786169339454788612512697316321665235814262911621827878414756595571488487154573166317197735961646737966576945582217717576231872856876398257738349458656177916563211246321745926941879329494255449543268929452439547591736964289318298152676144328842156962691936172896611126626189896955291317356239217887988542334354445999154588547624339718613276912138218336959884995241996565889657912193697581727186926381624651119882949344727911896641944348437224495988687537919366125326889985852135117881588314675553693533221484515887755565785469514867264384653543852468644297841991387555119935681812682218439825595833681134548693667189461889617297451716835169395781229376725944311589857616523547565166725129833738187934339988599444488179414551194794488486144641513299451386251785344461551648149789789978688346216173718679689795372835329734433418581894842984834851996377513158374877869969891762369257886878651398634325529367787988143866832473735917262855973794236331333649856829249382465115417344977879458959189326657113181538774441818421612141897662444949154589856281659377881752853753422775423541689812685125942831129392237154915131863869276569843951196581432155574568574785165574983826743794796797919434156926532836944524159984998669149422383142438219273673758654646718724753465499694815187793655843841884158969221224298539998391949432759664141373479147972181931979152441338973512383951772923115854838595599967177697555358949494766136315753174551719959688847491443714886552411384961654968633928175285391588778874971533961231895697446192831617761645512391357769865677786149249458924126418349634238697197415613728761391955868765597691335857877276124343917387917471914365254622126248634599272557497268396946555316696881339218228855864313346755187586369354768854271866515971558351861145853683174229149977963219169373945317892519325283792176766796754699737473981993349941679456162369632565924976721957187711835435799299885683694625915437946791159897391456817377828972456336114178623152916149967332838457911615873625698568316532663958226666844167869577856357266719545477599471568135218696872434758898528456347566963643797942173179227263138436725566218746452927156256415622967554446389164369976217257674634651131231779495577784363563611635976669738568192294785772176768867785742576954586387317186973678491215896447152327938635128241997961621227921175758186486919261713464721484417569837482372768343529616911615135837557156765661228436553612546577182163343739434696364853367989475861349116478141546333773864566982728988918856863692518866151137952128639951117388828358599459118974268628954623148885572343684181713193691771668438835589679651994513517687527267783267636844194163979989226785817654953913794241612434649791287465328729199242698995184683688443238458136899384726924216939754317541987579588714926344735316723225564289258289336137344854171174868523544697984959288438811618475448369496887698823116638346677343565687926986823445639173812364489978447287843151875888412675811123361134984396745381811189845864832316377174414628299384184397688216538579616549738928861231279445416429333634741124383636824376465298266984681773248588435975648472211115453726888154581868568341527677683851856385938554434766556968663699832178771637554735333615574925219657264719633427674883598769969827586697621996287385278635941594345649286479736269114489696955732512338373199645999152426779531457952959257786745748648677117222915355947517831888976858811275678346574454119296938257498983958561236184753995741517256989134378356814834131266211121518337584197171192572418856266783788998668733945956835168331296667347697711621858383677947429587465668222445559885341611463568616963399862591388839349294589942984211235843712576619996757323499665314639499973489856755765647746893358848851559155346798511448177461619918157155491265932251478546784934287512893763118897399623513919867419318856992751196947895114518422963228511391468957228353997663376278915685362867971647237389735128898922471661548196828397177498996674941988989577724467173339772692168989757492553513241936317311122129667958683828779741267187357127569964518931757793456594783696278246737857979447952157499337641196542683461244616933669534695722543276232363899956911577715874796642264543695166613194278137354831633655499266764493552868437625181466425262491677131713454628295361696866855243751871562538448696999611766971619995251873927762269779658184376537897834462585959678175352946155229149344344342241731453116419798997328879539769483768323979129368714837183166557919236891979168142211421529832779424944848494391388228228834753771474911413933617438816281521257943996238833148115995568562981564787872425452594375341388869726655866269558384999284762479858753447344375256178391641999638484353569837637528959464631139333333943331671389189136865379898847919566851817178831787316972551197689651811494274881373236147741935368577268143397516668121954194647595761389136479127899353322699168942579244912722418541268147527889322845663812445756272628137348647331992879757494874198369767141893939461652672611668479679253647957894487814455286526946383659982585342766424818331181954699768889881686673149236467355593485945848852348731875267553954477299985375191734658395172149938564567834451398955338567769579499598349338515964473111571356328638737955229596618562913358639158235787645373784128259969364887612241367949832873493342372365257658978725253185156377912415739413161324366697824295881262788395725342558138213799181712882957146622479634363463521775874829684834914847391515621174631453875686133483983797168556793562585389477568797599651145914147592612514558539574792547398322567886236848224947558395988465412213157817255313845696395293617454429282365122364675447553672619344422711521594821446837745564851973584319617965725615231998824586584471487418371959999778753137929728769149923739452997115961659191893117731951768263167518156147743759188156136227764523737628828183781439546929858122561632654466246324853549298794496881734752189564534856261334697485358859441419476898955328974647189485486796271662164485757254799166146477826282988499321319413913931148783952824829266816798413976137294358292653868626146295483978779938448173472252619719339963854671482346726878113521495354561546786758299212282312822291648481618636476296398439211983915762858688798445544985792165862424254354296523967666191697656955561114621673199511984916992522289781815733189961669127831557441696672516858566581682949693343228314291637539284479622128788719888841976486926851277893529129284336868527769945148262181763198853753182714221277773568563986935116379843596525692487158569986695984359429479368911661628761913651777235122873275328473138878531694362165313755516398942155999196328623798914247844355848892359459251285413581245663511945361147876737577861773266359393561871295213467947682577674279576775644296621964963479421717351569798566131293338625636953289335988457431899489545534859395457539536757321758791447536829229866994476248942659623472729268925211327294661413182636916933831356544598656735442554786674926778428586188454686757334386558167977562283862998759294394777426946344558159285355336284425266165828839597193318369427231786711147546845463753796131121868271652776675883915815362362465459812435826726545863413648351341533222123755988395531363971818151975857142475817536828276225964478685211952224352397428976845929766139483261385194861966212882668197495972772434295665468458383819763391884592231845484718977722616388882291913415172298774267156664143797883451911259356611972169695718493789779746592775575472941252484597887797676119956764854947841962435954223655937743639519387161164888766283581139937998919983662116762654825664247472832759578997391413299589819279183199828957727321732532936813523734865692877295173411663382753214185496843918991538439163598951554783172324135981178852227581385925847122931376137559596678374581159661654592266857527585937997291667531591227395317481457388694119794357921867393772912342378958839262335689868859992827688589982151478176357587129859966551244137777517265419456688639141564349587474455514762946421544986423896379586877718551241443947118513981815844799895574614687166752295144937598188872126495748949611717818584459917826245348436832667238951233399799263579382857613525882878928897458515621656997546529769417927645395642334492191289918593438525882463282618199956347238721791347868469949523372424662764418277991744956984169656179758663986657278658357363961821635235461269872682918185767428434868221724919743247557956248444136561845888738122621258944619774457876684493334296624844767447562578973969684427112234692926545234237474142643972918832458732412676891511287642444166838432643884582889214668467122155716649684465841788685166995572133949797973377268977196127733742552966463446588122777115949773845777135617978867535867725916289922571888847713764262682142224929678834832396136146542284826457264554768584616172284341181967693757245245743717679919237154526326369693873659888589374971563733488464183529897147812592519442783939649884299365745139944879321415153497968436887117824598233751171335915497348153238136376795472444146115755716498695662297176873619862498439321779315697448386168947648488525761396969153289574838545659935165435172889849939184622376921327289366364583825819248248786872527916662832138751113997433375638692846891317969952961682758774286158686356237114574914887675152426892494165189933699364527779449866588787791955428311787918859148698768675389766615979494287837881826446172587244647177989699537615168182759426991181568878199111324786299918498883377562583363419845448733976791179839818397887379447371654491888764595785712969868923551567526686166743746487322348535786489151672781866662456697241982171923511383923689847985456954797648553992635179121316612397132667744377625881758883637484467868648889712811169289531538695481811865645495898139635818849337411664464341566429652541884497553232786398151982488441972239881217378524324786185537398787257883717661498668155278749357929381295654831499555863524783298439697794623755529757976857814171287586722778777294146169228814373556755258539663667152964948291667897479437584664343934187952994437779481393957457587532132514847819889652471799396156215284366239465624897548665256147649176793627845981117928419865474773379114172483354356192227617975369682784554173374165828999771294126768826868447584562317737311315677932723965637359523541831226991152517653478178774572784487561587284153382858293318387522524876519217299567198414239865589556266947152416587485715828261849818877653823931246863862893162292238439185492818369495336347191651584984897817264855832783138522821681964348551939527171125384295889251516244225592514795357889173739368681977522612258776387566966389689469191549619319372626651862159169928846441274832263949567316317463573836191921674189441339418869814537479334672985824476358479521143454672116476461379877225967589896788653164454658471316552499618515322718478437775924954277773318414324459752733176562553131479499371589883824849879576421585879575582629748641496698516186625915574747425413841888813646362344396441964448578178258148581665555522522916775793637961469967129898115693467786214446846486214756697615973612648888112385245514676535134541912886685875687789468983757372958118321788269852913496214879322883218869875314361793838387231788731658761273165554195592696698175968682878978772316268269263295619319336917254758574244649389147556636745185941291695526681912724699957819449855539638254966783393116276884954331677747492989656926344514958216821412928929191168814993359547939587641571564693676116292997611793395215415364431843321646127876159781239257746961231296844352181791318383894572747439886137558128419242893549156761224822636579761249468264779712882946598452886435251539455649962993761761533991739981152476973475713187695794548994546633174465249169437445974887254897261483165479364217341291322462698582119266627483869235339317621614624838898131738844424729551536379255688548146583359496149675878866869424929884987579695522471678577365765536678674811393173695382174791595321296322891455688756584237421871587719867976984149539164481471365847944358367579363521466373928246389868621881498322245816242267176344362911687819343746944529944634881253541315353771567568831312835691681119279221693588197594157798894647769659134283921298429333628998531364163284884551548763471519917828734994676999656646362978431457599172548451946893554449448816752322321494839517672833834719653659716183329538951298658572531182491585359888261974496386595347664114478597898678998352869831361185481577783474432697384319135187739151132499511384769211548829372248777296428299184269235953451319984591485164267823245852746549228516652326889315371699275692854251161859764435116625558668272458279819784227839752633617557274634896195872167448128435227945495931647949466287156174485581669436793974791325723469628995996677493157491759879959398168344228393499159868769515245147116272341212432558447281299787566235747877714189986618445165467267846323948657497799918945288295298814365889427498378416769959987128293159313733748611238871573235183724449792422413784737445269726663958936317978338786924121896796144427635184283496476251655792531324877858575396132755372383364311831477659767722126645178611447424119884555792567966448418934267521645574252681864583712444298676179679216426448318427222946639585525282287742182568693328662583335765285738376684859997625667119983357291581223996351225935813495154692587465729526592148253923196543738844673669499449498616396584549791888698966798314829981518377657929357126563781437353642683156638669181217766889464588942577816357335687668878985317865926646665466142979534587359898576799948724643139386543745994421637394743859662449122244139571775881393168866657463896848487971917191451483261824363757526334682157693492792488129596446384588912998628931273992191137747949436667692745968733945142445166394322158854227565915452739393193394979996728883232197959339372217583332586258937324147946668585563552791399699674456189156861661997312558741552945367131776859368169642242179916573678198883892555339723723759614648597933761335987265481675473177847634554173882684958631324486748596718894615658884117687825739636997923915551988231426618765953157787932973294123557981173977977678516416453412269876291158639675952198787632173279578952976825494438189428395869991437168392657277226475153165212915439442316442179749465275459537747577455436536126412654615258993839576533191716913178566969244965832115179987244959387914853379436757314863197836818463983973898276361584731119279399695243266938424961913157697134598382156391567325474595862526694366351135551785812869336815899161913517966167439545232936379977642698836591537389456674296118885166871882117196594748958554397414612556879124914397988199982198528867599356858558564845523119527985578197195961949779996182914828819729693826419874466715626797661636426369122393594353147766664517927913953322745112723497372733371416817895776141354498197491129379414996887546665952361361946217275651473342977547863931692657188331541794888463842922998862624877343664984727863263487175919599729479517476864332998977581821882422853797163942766879353229773845529958897699515984674857834868995722445113762379468747121684866839592338159737373723287298461376526795247686475773751996734123684864946812994418668998426817368497412494399891875722313931985194289449479636495468673473617858756497261767838578348717481515463879424994598829542685368569575454938281699259143126215865517479267792165472795429974995932417485837189874997474949562674288773443396252414876734575585963927427523819857666849344587521168192583481386137795981589255573189869688477775588589351911349444821698792298521294482979838323933316617739746477721382445165658667485652485271598591756945745634416153667963112172995117227912765213717985869541164171168636193574641226981153597589262416774378846978916135654139812159749471814775752647427782893241211124899986944692643424693433372799392742652957841557361471472546554635689836778565742365189151464197694856859138277493718745998794668625724198786888443315781713611144147155339259692369537388896695237797277235166723377369445684894468756712251123939586655651385317837391647343296888998981675626779491165211599218515155649655634159932786412169919952924792612541417198233822518345751527617191785974139585999713632245571599928379136429134934912877255539844931511622869741999413759257887116981327814727656394682882625173336279647234648395288758544335671939932497857335884155212169277829917247225349811958544382648592897183334197684624912823468123966436759118149531887557687677164487253333929979642146435374881724226976377645483199685534973264213844445628988282555328224712561649297224756974152628296275194165732119816826432138552796487163661148546332913862916825518612384446128773763437927589698437583775573366788826554533391345816194272673591433854868436739175391192656162192338934612871845458928633587768222552149258261526352165756489422596422147436285697642814377227274499322783814264943963355148973961354933961353388295229641348489642877278791474728326814511276494676872221115823126989894994794934971217749599568711281397731867913944868578433265175467957887774595492756542646727949826359728685258641182374844741115134238659199396684993963348279876727198564949866478652332224373555754385642788178555594349312886522286367571537891583141174383586211676685179424771897585317314625885132433478883443985639419956318487416844645494279332972559572885767333183855476698368713523754662932844817147181184781868572884444633419671295943636495825147716295679718691251636743252322813645662946574579231874796714348148216263176968452766696231578275913339798854127258688467232487931979717172714487131274295168438498643825669341742248563478762639558139988861548897155395698425511741741277376967679739848113164779829891181297925886149477656699899177531683842728983856463923946779454558456199621119953638398146953584955213317591527763783948746149611151641911668357911338472324199992136929678941643881682737468885921599577294511125383696487911236857886653862832866739511164186758379511681166762545743229446742586998279231288649976788643585895537821253983943625851825545916857767714373176882371714788339578653474921737981834691325392742243118158815784159956794995582373847556424928843164685148381453165574583556434171664552517837486363513212354772541864564391535314537449579139159158955878467879899998981641216817593383842125191892288898965376776552454853822745566326567364473288942532191573172991889889585546565326371585422983965915428534373982362557934291148316197956821841651585946645256389542119652655759222717258267995861572791444988663395159595374465683685958566422779255166897917756692757437556715819682195367793447586484954394999316816958115997319196832143625581743178384719725984696517249913457162112736194216816952973969381814182938116238191817634987117582633998739777225214643322784813253498774665113961681551568651251281451514228717425761676548829767977879117141812651417684567387891941586979359619986573185312974272966569856872635259978223998514556486789883738993855359529966238587471668275349137252132264911195589178672224954948854927551742926691518615317945755451583755681436431515834635842174436856811568642199229866989452963648697699775339473172475997329829974129831635569828882622726391189959437628793476177794596871361588635668263995139139219869831497852114999925611632157431373482539126678114383965183814813895589653855113435849691268318656686995966764563647691356864715759543594286694392831318666879844916142728191999538941649787979214866792649733181496514299567863556559491144516237178785227681857238686437614371145189763338523825864555488543746539312288388978188562745297458615744411425721431772127158198987765375524459627987953888796629281496115362664369146887356856786697887967563989713779512493267643371391176845385889676943875871272469773833272934964527668163517119148452565128191555793995236884284359998641968841342696311325114766595693198313471458731445397348157522338623773623833288973883686114459856469769317233811273938567226675452153119891456934238628481436587826832241948322668687913641196855264979727412487441732718235284455966613736793228577694324842966538362415173965513526442645514428786148746183826967457654332545155266264685494782498565296476672455569937778776122493156363381689551398959622283577637691499369454269679953164546864465668961264369935373654856921882212217575359513123938596847964897819347846982266464149886572662893793559148368797613439792638311928899791419928786664194596757393759874764837523187873365659161729241527298258927137617845947434377489955365677333818519379756211172835291484773775219462184965647663987576879494324716527986535499611399765111358143434624735517838284516986596437116731241171928246259326778537851578398828622984745635199528931834764997218237636844182661255843634379615313581145345465641869369425922434311556762111664685886718518448747892779442259355711255117237814587982658845598717686998771732474953372676175784693937526868921194479922632198954249287172995289361812851162174869554447576151499512259591658363876445633628136335636179279695459531388362166882373992715311324398394687254839115397649244251387687373515611134323469772259525118535836726357486838989179235214998375164977897987827558695769567427534498123845537641571866567194789187498346832484957496745928125411748233669193291159714576697157695762698625679418291757828859747215553451237553443116677458412371183855443315487448737829959291822986121247544286224541521121927958187527476186182918853196456952328585992558933216298136282746991773456533692569991482757228112252666288348583899974635355395686925898993797197663658855171327197686115486625447596595521457723898154699385283591663771147799969547742684536878341417723798268539496785681795228456995654276787656416142727198158769564934677654335241198631739714835117632978684456215195534497686641376915837169564784519372618355433334876652258718265415116376789799155894712849586773647197461277457179849375583559776114775558327424323177157223462559923525855963418971425496154974823331666136968825799776384513121796894238738964542435644535874838912897763164955114798323821327219594678536453347613518534222679899687549516337545177289565965416749854938236981436815989751975385648361992839478743751356564737289486259118372869141756786789516969764525597852233525351343789136981663616243935142452779751323175378251895566696961929351777327524393152214648769497194654639368554927615516859853162547475521316898452116471653787117516772516428413796412561733513845489946994876117425317892245931568265138941547823661332864917187942677274813857831494548634245984643737376581285614492788643467416857874614274798939962515835597989363448717995327148693361188129937642298927825131344786494636472217774165769688124115261641294134452964612583671895892848885666488279215298115734121497989896554146912238446753459588938719752818372775252123355743149457911866573933924618512682738661785837149644971489747929683124727123761444939158728794725788254713489723228328669781424656691726773348674278533185867597615849798688989671636481413241283167276334876784298112147355231559943783362246289738373891913833616115177377651966662969837948785184126849969131928557573461131297727868749161445663185883339551387851547796747875211689481138451786688141185237712943843422986846562229646285859861968552469459359674885591646756239823692381779778725671898811859331418196387613149879286726786599514184233659438596783964837766666398881798635475341975366428911596574175456623959335472648888579762149123718291984977268462415369657626343417837596579364514432715417342341766789799415512887438359416624373689291159992444891341517916924924766187313866186373941686712526372738367919776372514511478876429389157583566737242639393111641655468989451883733186489985531723883639179789398319252411372519724578758767383962357625846869699972489914312295363198699542197688673477861474117976592352382128397136145482863573896936995849991564448544977873995744918816213475896517159396174236223727155799433442762651297254699178636289347872846514646714542149757396183796738395474713774639666473965462963544576834783886779152441783939351595919173782596682422677299742918666599529136854899375412175248793456233713599216743626156365983599971598852483426452127816214393845534472311274787943598735463485235264235175683538418155329334121792426296766868284415635231445753286481692377319183553262922578489448918395153944335778928387534266113285585387121813559831428646656296498152632554795158414265587545525994613655558986968175862375831166848557384879639945986429168896471971965513228814321853329988185598354698852467442643818263717958414446963135661658272883487389423936636173382923451359638538371827256173887519671191762368748529764997129688734141698841229414595342175516464474888141442676251911111877669417863534987884893171111798824512139666276463548367514267454464583332131165716248499847981942125163963613196234196345165875814449824842192459782882281467199916657739946463588593597983556424421956366149742598249147613538452413712395498734349799122994272914825379429753617818788599823965857616732219962284542657527244585881183113335261959531388699545643149817424481138586566327689681977891957174317673274421775583883967929119841492678419381674763166921269566446831146322441568347319668868198959979168158891329815857267886521462225171818262562245729641996587196965619582544655191547954789648967357234748338323864239936741393811295694255888968875893698429149751145263868112391892456248288774434971213787389657779287113361864144375881646668258629218669294734219362757147719586427715638234167787688323521844915556668617359699477274216895923937556431395165661451771196488851846865974487949248428561151739966926149344555183466356744841813923737315761578497883186295835141815584828217277815662969777176247978532145783378795461935821243188633195873712779648451141791783588272353524566968387861873457861142888224258198785555729772994635271392231438469918453164731658589863571588372193141572925714442718853458375763814492575536798618187139357712228626363149843264418519897921642613596518218319386353922794964559877961537973699669434997688528823276387997414453196875538683267837334936598695143126631341821494426472561955248277328697136959782758358859414799111512823859374962837468256885736793896539286137495645288778381539576576233431194219364164134452889717755328597117818961771868334994749167123358451111745279154297922549576699454287869237859139468615129886761246175528263335374137199773156562761147671837287392767916943872455515769491479396359566623295895438641879462773484355578649781131838989787638187196938271734931228654667818794577788189438295296771444368528855336737238965662926581117858149582999977534633673931531933344767951493497175119245293173469767116188495293271332319466737186695985758182678145433999296282186927387264787469684979169486938586144352575144864862426312687223992733196153869929216362767672267145987884233518587679971258386327364668825371183864732155743641973723329958643242492752892256244174575533835592318525887847977592999966756574854878461457164495614276563848935733569628616414529492269159614699425928772721883353133766695249715886611377476552878888977221688573947885583331721299914925463638229615167227451532857897891336818146848868144485929683224464923738273914651736492327535121147969111958198385311283388278531679917329328731552283996428251291161416651455561486199466569678351792675114189932351734513365269378926727315958429385598666296325843779872886374796397868933885391915759183739349967856819187955778826435948241419833188692474966659489638574869742594854159592866535779899133313473397239339733134126568575589824592165713194775325829148771259581197124965477156326777814732435512869441639517287591165743818382818534354293756518287999974377288447515889677932737841189289115148647364771534283826735894639482964881932342392419988966661299678852849726175872136985894488551685595635634836666946597827471648791152968672558291556157173258933644416847156316766242898862783546353649655529731511298424115396728154262482185125913657226387117955117989484291659188953632889989494189193588524931748488528145427615527257486385761368485883342753898952517376147758772594859299162686947783884251874574278767193937564449784565458929289782236124238656365227223946355311355112135797288293268615193958755213153324868588456294664783975497981926281353475137625755624185567433683997251855683378749752862898478766186517853531215479955238816356696252876533635177276999148662878898988593185852769395977547653864958984697886963167581592116638364849798916835259426837372827915994667568348826757833144257879168123121996694854897412538465576112763993711999115689396143525443184562693579793197625712518794112389899974257119187579464994327372662439893774822431811538178338725127552268728989487286612786214686246618571876311765356454923559381358826566874827491994229178518632449889843686585688363911575963438725347764419679317931648958663349996149165291938619822559279799292717646438843251431895633687718589818798253261199277987256583119228448958689972181463677514762158778735881982798152987726423721232863321761225125812478176381769214659769459459223697292257662939197449473981591169342663619232845618588399132347324699256566498795578144361734651373556471267348586821579738725814189792235382486141256185978193857763595866849671746115477712886726761717792345499516778234182647719413324819174699996494927218738495146348752791937732359835239468675383157649465457722161395859827868562992346113655178351286626721849171455753138559199958269586295183297462364785392143168926994453992593699982634853967796611361451689555945517881659689539911445664251155449726957662641488667354548979374942413918471178286627983485394621883198169978416351888513675956173269878457188124414772457912546388166889988557221998452918319576826187196255691162987275587695996254231199633691717688638361291764793657551672951666999256889261797248759292268696172466482974662846296569687424749622751535113477386587671784412931433565472373581385368548735864588781724918878321465219272494318887812247464571493346349371285781566894768119723433168742514985487425573191319388429484532871464416985812678422689871449196191381665985611114386341652453958187534634774761147373636997728458999788426179556785351888425793369598543916356538153683821814573856971392194414559185253284349588426491969643196933967849156124794655616517787729469651316785727164598818787338936779217181212582447219982988645155244938379641582739869916736253616626918946173983937292256766175821242211759563755399141529199312171657878683871717693989878578694526799182552482538945716915895747573614395885852446972414852717816373522957297992557746668557194215428361988494739516584646978481752677526262619293614999164548615473797211546591984911343241747995967871296955277155399494836889147351779332271174176147767991164543693299876911465669342151621638257846785181521651636657232879457566549834385199672171549155575944679556117168573167151313297475588338418845499952834992293448885468147796866949244457923383153988288753314827188218673838456631934295963845469297931289936652483895768754395439112861262844723754399996176198833284319991778176773544864895137815515856347448297678718442985745242145969895514855371394256748151671882147331328379298948163418527282736168951454663314288567673136393456976297254475294268922963831294387885135389762192461345995527197977163996618143486879675692882577298549196447541867816989181393173384488362562284831299739497276798147785725754696434468339125245449589817183628549214228372279576544992974459732298326899428993337159333581771554895843236966756584468559715568779489543986516655117554353478996395459472497231838493962541346752614993676253761298469246385326873482167445249851652571935351935659948392978776165546674577461369243717489613131498881111731526326535957435576186468175744186319312911995575816139576956953924683178521176173465182918958161767473788987478748884892982336556644189337421988562796784663528978278532728432446667174238913886591119541411552459874949751316497438558811511686156697599797775528294614761938775278264815289397324584211715137915431683755396698726899869216921991145275186329654791664852781548346756882661963973651326442221622561925642813472458135694997144893923385453576965235831832458897432142459512144591918758749587246525269453638668525357737485235816399189142477164995785552294156282972797536413549847361368338684549319114739892179881537989494985997296398886881319973422738798478221932465536762438617276679165547998487138173869718494457444314179958632194837958794142114866467849756656982199751668123517252856726682459398624967757454631443477185222361437862727199538673625719814953778175855295179769834133892863637122188483111795382593235181719974225591719269327189813781861179594527794988353934968413673836743443887168671752764818797493613199888238971952762119173337785687597726733797928346591498954112444273131142129374953578592117397615536269821124633975296284575368853717658495731866478344795217297756935461261522161886427729694311146494251214924238187644943752455569336748357243658687745158995554424145789661755455665186371356489765662717872977655894986126623358282284192282916518513821896153369276633635517681549219659824588595423172453419934943198735289125945614994449864445386883131579347765598216271865156164755998288219371992862142612868481416937226618335214821951381362828434598494228936216773274229245493162289348798421311614969138971465798562556451243624235575935634211737929497366532149859373881247646335943924991641151864418453997666471132674276183519484574136557854349835761918228668864125119462673647475512173319188196766143467719679745121558159335131615111691332562797772476154951932476122376474323949711514838183471476637286363336392744217178753426533384894542726874221296113928646729311252894859117448122464631595745936568585968274659967431652872838917288484119251442764286334676764553123719745898523523386348569115269986117653847865615378189571898863265113972472111299188475189972774873551532139694318474594945996884493152866673791356812516838534615453499496169112496195521488343674862193578764483157362829667655275397812177583554551899287488828377937566394855989992714863729261617555928429585165388787229376875255871445574381679478423217544639178623589894718386367753772516178177976244312634395283689618688141365923952998341635364648967651725741712197738439764967413667299421979218851786519711896193438287691824363979327138528827354252311331195824765741421356313867562611154244471889755649678566966256955883292331399731178865646528831515985782218859835362545351854787958919852295723247339142399644195996935646246631866373994272295789935573464263359478435537616849978519185591137261442289268682479655236145741625163293758652873861488792423225638893598853649779967474537571847121568183873815182163298411164526556498623666847269996524569519822679594884914729724923728139178912316975424919516598441761988632777713958697828831282629848745539875536946558414346647167517661895613689577287161369
