PREME/G/MU576001
0101900598739765875809147675288292523487757026531666371067617727901841777527775206640968369329376401938524000388425374385858239141515654180515286884538224948516253925543861105609001995786820022142836434856666765663973994700733251095565533116405507221450245008495994097658870616973160068234411999610302259532971401985575699875202145255432068646031946356243925558391315447947569657163714261149499917200772209520524922452925865867257925687215617648569290249522980866350337044379710756338025512416879469492282837820786481380485908352350010996172024148735853257918581605532286702563715423029272997563615252441336496615864803087225300190311957504913776388233919333592141579635550297684417928936515952226691303617994599025257469699447271225291987969706708863325833360167827555197903525030696905503498686530173940260666743406269247638581739202284061434799546344796259296540886356081898408092124176560757071481500492584395009029327284578107961514229250405824332513548329894985577338299965501457377607212477653963910144005893734575111382128221159393673186207656389238309754337911010726094454589318369761181892490146987487540540594891687841798734368774891508274730737827242278468666774158350508374601249440468176149818300684109201322679312762156752661236007404045635028493832464020286072921760760318236966455140369276627845887696633987636348859055535090617187837976437271215802883884010547316883364390390382088878398841416529898726327364876561280350945121401596324373833691094941802417149246759628509751216490003128410285575744260630617415429152777474190314783144900200749805585520087260611805365407854235239184278002547490588582819445746903024792971156551327575026795165561937713548546710644704759397244523729192755858757008815517053347072100201466874733208315102005935555796063815619817710205730354362052112906588791139700969160122510535201638372374171090093894265197155252848205846742074623107306843242104966740187100586263534562068033205192708619307371135248972577734687743548501768450524947855493392460150450087236901377848394426011204263732553863972180053055734120553841502314246901368021134786595512962360551763889184808996019001839045825043382396712517570070142979268612570270166854941748990400016152981117099400278585177149233977375690743805505393429845907877921203792596044678311302359815528305952003449324266848408503222908899042589783094734883657337759639047208073705933713824113049813866795114169110013051977993283651308928766286510388058072645222078000648677105044308126381153598374715164511034285837234359503620250859346437963825891213656718721793791226865164287293979414599920344404765196021658808610883934909030859169647300770114073462638684651272526677059348946432495154662314126815405524654090734852909192238871667692194406081106400669395827653863662651759810237744633381369153807354629565159598912042916997433702620482393528501414962998246489661007167963030344840141629814430125028160797413379070537230781119853488290219588023943787294878395149318976580445477229874239482337624342628489859044731960412707242330054825372462482303754809785722628617787967819437279609898715817405909666502280200486739778438563090280639358202090425392469564078783944242810222076327517979879035399842087157115660933132637639315821338501902155163200394103897691110606422670339382364981478479029532088012083161085943490999408707456526300484915613841125973064699341370999695574860542163578966620987124583028932154959501357552570418252256637358699971501102986123572672480887035343457228623079066248142940860886562454532338770004095750002253250683430511381916199965858314861326241468424875177279771094028342346327876054944277316971357614214100135562824872080205232633779645203373086009733323611009088629268486241280426744227334667530088581006801706180578400443935545392139864446645178255694313732181558334812127414648841148950484468276723675079400096935614044120699730296504501882322957076993369196968702559389457026744296018030577716688293825772887646105693839586665157948462310118793532870517569169849083639389009767589705249398429903274041207183443802712372948597052946208626300367612233047691360657546283846570851748299709376276780482429060991420180446981928562359158537045498876204814911418195791732168964491936258136744278995834627085443831262709776882845348408478719259522440163381353602745634972439371016556566548657770239351431510197069660204939851743092808933949361319360141957426690704650334580074522958717127288055921897495164191590118249843472646068504448740657730461022760104658758761065240724400901806786889223161225049239374826427808269022120316160092023454194788596660539839721407009823780532167818841729126831591029778870537904293969133685473545278035473681429327587795182929208204560645569829476037809827102298457579617937204439759662216677576220131512377979564679914236957296772113192702019183463655463296290280212017629472760018024934642760515641009684348159871095330133708672817491313020465203542907757056321178390232496589838098356916561315519504000552093853893192137425497047777953167286013402697860944875858817222975131838408919872754120797116384638225255099010951333496570879467228473849336841241385620255402115779958721218974956499410481814831104980470660219771870118527221994061912882248214406330491145925852819479591506043825523106297373168681023186299369376062783033373822941814734462244658556005014687464489609526874096552481466133998193421911635094180364749242463742622308577260939398329824075842466691795923121489033118157746385511225510524001741670624367091507130374587551324788928317761451062542640101695084108080873308516665422084934803924595737163235071405953088977351237398697910917875349810762383909707779980750686994000923593149163064759405514620506723793097490145198344808994334845385489850339735542856676957698900308197604923551884267905153615904711176617766386969493479216431486820334802929421124325066807062810961706222547409919651314402835638741546767169091110959120056464676117399454417943866873595469175880463398758528159006109819545982946437160082023781642904069953595838027396569761233365425731921931969549194075322259760773272283344906593597925421984640997962725288221181372839896423147427034827541300964613421288674188541214305613620796949226022352667594637154196468433384124428647196866728982821326351467035181071443159101048861770428262484177369826511463619772958976011040194385936103927842486083256607661269825671543419585829373160999544699122369636689337369141137926839158499398563973397260950520658991366978707906502938715141399069499456029743537216347567002208134805262071679504475133985083285890135666931545945621570200438044719333356552988732964994865118908173284485276287406770827511258166750685806793478345348535526968089687068214093148571186126956955485534010780772075770642164977552008762912978352887851379246812241600045074558484598678046137984059991644874147691530493569113798157819116498629611675029833195393009762184823024058933315630064998517267035699134830343984916010758045713168247167367193295038262751396295890773005016989069980946756534128654876831088825323061460718204544481033411274662159581350245900355696671778271917932050818736224450689750803341935027136771341078464741512308227643703737663496135344023468358261832169842177370566334893599170259719948304006292438924285930755897428529012313302181574896545592114560188069229251272924880516688167766149913372333534150009293156945966242884658412209450212665731412396883037003196152613452654641479103018772972179975295946910256810802121231714426158360395584493327693622797147346664781416615611402470949090869356733993315731818263361595832657086912836683384273631989717907373640653105175092461383032156596127360167447388515613470024965832091516802898437135088448422334799182120377434425424193303232768533224140618515858904930084465128515998301855425623319901705772296229359067316579711706036824380831758184155522969845665866131802844551132969886075165203144949101301277551971205171028218235600076211083296880663675697530708353959717257044505071638829562354536904155016919510549866388349247391115388956662181323239207960732768545146490222031352323306564246428426283835352150367260128780703104607862447212389579652172407391954612524050301687296029143968293119984951616785494402575903416677200415111465956686396061542842182259802024489607249030838713107740118197247202212813835947607412820607794498245772840251142985398960041439504485149972917088300516280222484315380347605156026649318720536319994808170417907407010507761607967314311508580830237204482283427925080859493155651704401864038666137041529673206632595107339550725736014171756844879553642089342676531585409958248394014631705282666699092826380251509141647645834999508887788637162435829511729540571841023047265873770230971191393417606587996325212751301176738820513427035580233915751796622252585578492168458232866644290692096880237918928938917588526860167587856167176232071463723710591603588737263372260955779944841789034187037664522310009832236236804591606300459914958467810172737518214129596361326797360163521613535553780194142584685068034555909880071475773895655470799638974788189513793333843532032805972769022898914439756134365520331321193849924890693696222893258707599967395845611774986000687635323756725732533611283843373695712248888403005711226076506748953131100729911102014448527739890622481427905692787548224699790717369735466046552693213771632227086240178383984604396181084895489320792153794661423720138611777159683223565139367824656303450064084417149487322533963611886596327015456152024428557545541592737009336611627572944529752036076249567457178095648183683060371801578149687953712995971403185051830261064546940667161526118926262614960356810349611428561845381041911352583794656999568248045645267684763896062340660792135349097285726021081694698805847778577747047462056976696513805129310724934511688138393027811608913203815779227030758931840441174420244669714174036422352150649388530944198655985110116353717365433258598260912632170197767745616479670321067072181852382530553284086362090718736823489375404492351957853324079712515464859015404377460032729433229740281067435207936821525753222456860511705653541912133575536650406391168833662994838020191079470732050560474083029757659867343314915041460503148422724809248163737846633595281723097033994351309760037862773499564090591541919818361408421660682243285677059668582896072362572747417617425944612676027125366662917586593753117293340601222979782679714605604782378415578366391485112497263453460851769095650354153839452777815542970810741399458316576975268123149027132198959473868255098594068184982778674009181776452455765824657041705031459565477367912982066213992413336197112529034011981516327420069512979973927221993196318934501230617889131951894969389338950724668870153100408978583294993013025498803788300650674007937508804513722692564727672064781078343441641447592215523426927616160406231189113547709800735901317966346320237041342410597177336351806627333484661730146513387800549830782482908039358670255019186561683854945763408118743973035747199652621689819535019290827271302596952663641846098096194972668819139259294297303316359780312058088449180184825819429744759009683362538192023359352908463910126122816998346891385006094954788647457366643335104118251019951526636906811357489239935212892556388606981259413015584420247902554444660860786954703433953299168958160852717874767203773590888478472325212895536215222724218531820181854159297906238640743932520607405592526601445928086257773295821974333748768406076918576644785068050562498881997023662767554503081906744369604227912835879882108478163912711409252373436391211709016720931441546713048478017563053450765670641658187251434078273865967716779225591308073791030276468293215387143984695488727563234042834780626255502912829423071925848234606892656301812946665546221879689431463467172890351461330741173777193303752732501484288821808854689671215500784687630195481464700553863763304525719072730577067432433452109189794427286161339773188258236665518220376579540244032245526307840399763058687425032589360314155805250404991318459653452426343478933243328579016496283247942313470567972610870214950494257656287822505060131593298035456909439674679111114973689582699947985499421256224473239679646388474209416957924497171384278489585041233290767767523019950842393219962815059288144775269122841224228292453759489227457396924955776389353667567024174579295651206224006712179122344201906715281615974666063256598789806733421265630857738530563867693592946342851203591799134821839179606486561047125509916758934428238748679133111371156241850692232348193597054095452951029864254514237287175150712610905701083593256458641527360074810933685513819828346575736949378201582857275470604437637126749884656222507155066960529930905302768667133677455738244424260523894545519558999484321356088189636996763554635426598820499451023258329944282857894368697833637736656564733943393167202656536458543564206211619188564191551493214606468821118402675861390753660915021032056809678198847240942133430662002315832367060115760248892189544205923449910276574405767487525992264670168444484241796346242324696419018772042069976983443995942408212525916274616136317583171144029474601820483520292891470409731723772084567020980990252436954056915546648532523370973457941774862578499326942531985163115235627314819597598743042084024838684999870445992661459569839760687591853087426617955462529249879014592037069419150337320921681205046878851585028443956946209997874266053147743545689924026965767600653106171236080427657408476912395833456875491007527436523022054027846476864933793864988334615141291763919347357707720058934292343743193526356123586365201254398724154095336851950953470813788181277525160375909219141566798090254385834620496469213715514775518838090227848164566710597967391514483039852664123784432531029961864081080935008070367367369803343804270736317340850903836913739273907659209146948523431432023026174024392372792499284114367843037698354022666779431829906869879861659912348308194350144119728701952904702073714922359006051400872199524518873014998231262885844175741853809635255234554744781033631949355067653843503605309888611597299354721236276318375006754054093130693178992880287537328713536949793940125294789024260181704017267097615372223480007170612482807835936637649000928269895888332597416215196400384003715487423819171501657343120283574927973244162003033052358022120641184698750253272645041254328222518746243808457976326835587780422353380953174778098670420885299007024929259829935982846762706330114490149759695954331158747192453961882758872116159320239983493698337744818634554264193239502668467713072443342885473453923070205563426001622734635805836464184676767126039692967295969618221015802128892756952973037645863195852859925735798817612711318154383920940914076194883496650139969304270168562256579572069598057821803426027424071941465082097796451200779139561681486250808156082994857372013634441617842099073882239590056488367102051971413415953955600374836627062893343314321504605551319386930835334577753813998004954617938665779689427957166656290231967701323935537170070868726872969448287363912768291050752369102480278433513958065044351493112854252418040629618321495035437284626036126817613338856089665089739550576268439930838167943635277896804499573391007578763152508251061870247928767443377280838174449433902554023764838736171242429270999271058945584992216352156099118731405382696977789815967910545906620418911363437049268839825599055804496571038746282004112514193818315168607280889762850288442236689393669729691061595382442989525362559519108448105893484489591389181200638902193730621107438595042156769794736714281017352255693048658492236278684993200831428988490487398937488596137152715729745034864306187193749255840206977713521653418055657998666870614369474876851206642677374817110422959336549893096877303990211162265321322501340512895577529507635440097765518707067666608527701931749381705464517271522793380258397789263170609867988095425691244540919986648180222136689407738842302022270693536867694046271896175586404321502168428472038108682462655239897586864277603599272863077907967054904840542102813150560763562653803305637951376253308181730988801713351000404128389731196879857079158762022307370117424856826820195588118908714371377563547235272549740479598588176168514254987226782853510847869952673981070742668179743410464496025434367674660278329298475578581815976443864787349402563524893454832969675566260309106550922689163994050411549559040156144212642071488397683936143594838107704367818076581089359218731086260448361351090236382764611113045360916328224395265799751913079654991803114583065300856159202055299616928384958866551922900619235664772781477078820051170775805396190429104920109894054172348297142606128595477153735655541704912240246297194328746627587798814161382114581026522086848927372203619375083297447505091424500055359972346244595621998662544403975308704411865220293032549595022113854290477940698064035026238271958946006537842927545717328721909577864514438754486343160322969731203797619162613091628921366094266446535543092425926201980825334949441950846585593427327363495950509543400926149720781854848196166535740310421917304217041519688669170211021914301486400243969621716337156199006100776985143839111774044342736330904679175573531075184590662444940693877050005730247775456746841429264783586774515055290218280887724084818286931981798688726939381711046731724790314848217788786020035631988392518548251963072845729658644363745845083293795829902623246055126125970697370380843987603312043693179070436910062597605979732880507800859314932124164526439362543430630290528947310778101079097818931290704458904838436979601362941962540944255532957719237392424149700361838582662870434200737409679024610121799029233645914483500855605242220047960734677482039277533106916817531930800912594807649967475050652117325070258344469771460211961039083648095427923378259596137416229148423119238800881883882109172094882369035260229568702937250718492066720542309799117546510288047921682681793680631611422018956906229592097531548332187518826270557409552999018141693928718383069573417168419758184132909070755408806086293732085871503105169043889431654378064308885827328415749104859787147749532482528562245863862880835154772698654340631808712460605933968614734196961943930855264903919036675871287786475214043550180866726047840734613589610671562851500875334580772292510885057655936730262630010377159239558893150373855277704541149298248451461436982045465139214340252003484957005526109754330374202022596231183363472700311877229872544724700628941063973400230346209456992056139264343033238137395879141235651320311771837421056450050362254347650793571248161379343811520064706639696712386620072909160450379418386265668702082205888978930921548811104164223389830414736965962722361126202282220971579067050979025184816584091623819355149677078389802077566277085441608494830423707084562381378675660886461848703104801783598833854368415040137109975025571079414016906333296667833940897426875209541948734439263985034651963608629181278752561706324191550982662941312189730079911015413846046221407810194647877555408483398477057732141552353772198225345359574894489376648858859866493072716994989013441779426926378481820574735381185295150184793423395884497410267552173016371751671316676688408206082257081337609626568016630154610242429730982880969690118368904627898023954326644892742998845495646011146903431409698018555212506923023508888018737831183258520020348195510978904266382830442614697581826413297900625170904767743928412130954195235147398194327117089029115114965402624799292596969944933572952800654666049829876569399352012127210528657919564466684801566014539843828146744522918667574090695061877965831473379340052276708468388105055154979154461394276158633789561747375968720494695592618393642141507010436829601578149839294001459396103762608413584094965748490820868823716918343330977147390072240343689899347891815093401487552118406249416713489515750098061996435895271155746858880887307059640561891173913958777825998548380288879408134169882417243127367725065516590324343566390210774334256692749809535387300767638336769975504934494269212778179636507034796822479969368929969677411940369363478386585180769536577997729841915050386128454231536507148822782821755442526265912882618388217183089868895916050235061541640780728079054548992073825254459957436371124029666854306433659242663539933468084422138527093053402653150438652174838264166310363251031281673045412653663030999968555121305189339493484246480257207305283854259832486061142472680416407558482043290493610426061893053767103174879749859279229195075643859986900696405791641416637086953067341347645673282824998301354149264426947796112443839404127116641919827916660665574075636997812467781220240214242740225384462812798022134668157748751782200894466311061729480265020886097335470751453934598816413965260800710898561266769067434786994577651595534663071600491036026403156194509044699505206377705067423687086266712507016507889210162801510343648520105092577927992312950008807128987324879997851754727753973456413661531149915404772093658261207407963677265187948576755489337975333967830991536587867743082346288727395373526589764761849693469523591723004537388663894423402321195446954179260374063862743784209070765508861537909644584775730930592775518809360374956084559607867147146923041703068988977299347298826405042285632805564617737461945367533643025782034992810419257800262733316070366701626145845459120396739075367855363309014202565117048251849258342534751714087987305515115600970081190341955959145263151383741425066316554394885712186918137994461529630250408448574497931444576490494734245719279277664276318889686854689383801486234698853376852114941298099627749012315554832623124517865603001360838958442798179715107801345549518308936505723128184110880219133995267251488908575585033428232647901287014615563097960210831121391406308004333526539145770908744868526450920835241244925104980077482600071980402249259233387063624205565367128732140854759657114683453409884735212912696460462826119754084284113811427138631949156670056064400592719895671621288624515387624058273748390171778644700233355912680326719146338768053355567770167150133873567449846267832107196700573816523549222762879306127333704960361520953325279630911452959025362849740512884107381738900238031204264313871565851300696948967163441507507281494260095023811249687283508376851817572314950177562706740993740636419386180487574986840686218271193104440954626257268963291117450241655105133306141134798547393626478188269740625524845631533607786053501795057342493127498888394648462031572500647460837102017343459206190088435358854892954971072900267760107100162077338751667104605263108608002999803419167959004172354876734975240457974812678670444166512665351426158420549140510473169945837436108817442222148797384811179386160426031017681550535196345088116687979042759399200900954031286703741261877266420510943471845099170988210802935482249562916619472257166785453589596700061438000087985285456833875486057004376712697897687810061506117704426788408785503021994297919175669244384450145637464822126073564880330367941245289144747837455024635913235392278710034904379714734661251884633973673154999312515710298128481219281148447992011286922753879021866766024492623660269032976714891398354747215644171823548771747221367561400784658912877602308995739887113492009152171509520787123095853202994007306935230176043244348461861296810152985774827981000939651956870489658214736642725803363386735080041358981291106798710242682893058165436489985330873095431569998379481365580189578365895487540750177740330931579280063746718247580753935600896357902743133823541245470334929289526097163639602955940189649734663282164139245027655733500764725509420148206470851983164577756064173695235131809367589577119180107680057707010624225277457246112699312566944589524950494678560814433071063231510606298950228916321304623178947023295013500211620436498017252354940785505249260342529354815815268369186442954427275704345910984132454123480677793067888172341580854452844582414249013685183499638923076485280746154321350958520075734150907068333047064765531073302081606546270754420930089809070359709222176435850476838156623965858703783058759200420705869453826045812669402377631742424232188368476614919700520763332177548359021677908147373114848897898275444329712035205900706255333920169045967622076904079430259234038081711795377722870043510450981965266332631115407791848057363615901456040038091187251499622647745345835301839129985756988142755132492342025067256404787323255742099746143398809386513557739308317074774688700099750563148890266816856342643343157025404877126596894806776679745426199913065352672580576626187924884925778997907839475707066544345843139057779730293732325647923749259253407304874891518294011925589738270650014336733355663189088403559935839348302101572110644671999831730286650112273721215670654658505351393716833436326909004532923573680093213048445327872198041836707752585146871634422732636516633071220417415247691713753127146792165199490968978259469999164405931426933847165793552783940573768088038367875968866166486108462053846465851528089100138695537965944886330207599123187092449952226157526446450887286370610988865254854358555924672177019293329751540464256154569630127003085196778916072513668384809571203309585121324785937589068986663632559451289687519781213137990653911368273054899974373074637561425492159543527332432141170956214477672539296718680711364267661444514749207569147770466665869590829047155415542095450283232209010408129924746961637747495151666543241436483308083426938040329680447490849829151772000939328547900326011235610340338897553777252666140820993614125175402575971562485226913601222727959475371161105652533396289936192993293102445279501312538061064231687531072803121089702537192288508579400749303653541819237879598044043498598217842173694195226106217518727405500269075200339555025235328538266326669076522806856971153131032985751494143394917592898891686103743762755641454818570527856891759257886112473910774220662929383079520508947220496606108652660602240517208733491683933747823287194349442527250242436955575821205117748214091519282290242570222226266110955177283756306603176838558470083429196268414843141123962205512338567303426171863247925443028534160050893657602072646096657319050453687816979134175438069222303893301692071545125287353944316689344044512271065768088571118151762021990358000361006819496916472906583764584674529463902285214280531220615230856192780561517648087440118112515449188088070033741203712043881180674276247362690442220714132663157051534822288859847402919451859184293870364181867879017205744150266464261276403495925582569935371335029936578865476732974372518799784784565585318584028155730134735184325901785747703663028775778378113180632345257019935193917694325254269319082517589229995670396801362226873832626771130910719107616185330557734240413288185664732284871819100721989075065696407131230649878833295427003267373702203102454195686263494893076974919470073033264823731467160657910145826150101263492883800081611191231893569487237785653961807851026317562924739520891741852927348042172951079302876432254610931740937001706885990020323767479408788169985415242954968530970949633986990573998479922567754664734411498829896170962385964762247323439059911430099030334118982647208006245264390202715548599369961983950050656886407431054899658651457198058527385400148457982558775656021464885667667639875132381765837956556918030216834121781364344645280885908905870833480154311677000550961299544537423902116606989263369861389902865335702582701525862713625968062246116995647453332652271521839287866571910951947445418631390413411814418920776701369963703852312939038713441227219372218698543501006387305242637921155179105925821197086723581045283247396879270575819311582108963356963986261456251140801406005607243596043873130153401332480892657718965398697708965539292628465547415545201643755183987004150975280500956855116329610776807148909545614315137606031332666102796113845872152524561202890469391166104635289237529887967281436947368471245418696309740427546223060278911686505220086531812919157807608130243049505147204336677454017426227543550711489022636897979524320831407318043457978025688181010052617859898716047389840149472477615777708380644479407662566714121535504612160274600682593085569565669337427466110310451026286906399807035276877119921458529586295789304835345934269222542524335881706346124046837068422020695830284256237792379229776419404866019840407619193352754838835687487654298364055665398323308440058850993212813443226157068294397888895880259022356455112230376597113893659067986274256515851130636186299920993119462067856357569948328275758680266352879273436869829232831857988184142519798657170610984210703493941627182947883237807324230687405036401998009159802488135048867324809877180700076854501960246987630893773125940592249107007463654000040582830315220986881520593770539623963039053412854462520839599256139429021955710832453442109568865819707918909116470592826667295239999830039308840450319952568693466965940358409352891129312683855104882250705601020249853209937948617762865547503446089948573254877120242718199084829967623349190548901070131629805717466785356427774093758449591116884902772317501854496775374742093398416965108215029258571133394492473768198890483384356491909787417631138804562160150978699945364041000388397213488367461809856468936812094378602992841369813824985710888598334731094531973546114940672249185293095838946340334010171163753420540400904685695179436904464195050660972890251617405515866669482858606724614724535013213613777105765693303640431998172537939064890535574080070518388978866396369204793946806618793778922250159717154845740058568229824792509879282787250525121314695366422199471102104047672318489466427824424325026283911716226028318860234071249872294143846387432866197579579399186870483175745192537015298535809719790338941366078653051316483111389458763593124203643635304483569515707538446286313718672805405889243512941613335156043395125433189483838056680963438895755270657705006703167081166938812420843869821849226333507614562145980817029075424042263107014238607179438912656655927570901072698843648185955001986801739992964154970048259484638456621084928604512084762186977483853824266262249528730552484686067752833860755397293431242234504989985044613598346881876415936703239025981163532275218014395139148597971384225108591198707571252914810851707397679197237436134244926145935564756644458967478219417124857729524580573945973201446874468384753877987934110235128060258152691088849850616129059906999345049987628302890967935878359597473712516169239322829773990128381926075381337424175493832146738044255893337876198941941961973284895035945598814533845364692726146185915487203130497268001662491804988726402857646142927322896427988590360553539062116687814035210088783207496269606034992708898381073951888628093906308584472448472363572373066177623471355797472305418580767816257953732030665580624561196118418808111852011808928438267344971777368926258759045756411446911734384847850882706051281133541340850455466436364930999148996066039987899015899053077024116933738926457662505795501218257729184661992083972082732902234272694336434922947247582239380100436673895621600123849242396431126948514976553624873132043000475534869725331506905178798609821665690652621065430463526594983181045478697410033122921421501717673723683941208944085215648434614553521825413494464234461102896238804571268166585045156696468197541157923554792188148798632254869272162459646834701964915103514163072110369843108143896763354311651344771273869544091107221613195315083493567272039812252417705335642867909368079498301951875266140813211945208816761629395538928352333905196756662034953234766094542143754062759419006907471579506617426601975650528605100542697546703060799811782061436601266172857822203306572365000868085180272530807561502038526462906490919719382563052606760410924778671642881842880655784625939773255720517596195206058453851576843510687242970996822343230040664933580819447323661012500477529833699865349279628908891059822456259238629989859252498289812248130597033992435785294495834357264111687209906880225756701806977868357617736811180188692165523244302181857672467939316319849178658063504289986880972564070713758438989543270722763503531184628506488328311850688142292299423261487959148719754896408234787873921872318670878365322832747943818429073454407054260617531743785471319686252861663109183674265957923391275346179076361330783704515042482385361858015113194331728758832464228513304540431295391551693289027942479336593167484201039395019323356116844319234593441444754748874682724549193118038711013591203413911429920733312965327517845361540627255711736108422354588666614361299813433587209966029309958474726786935783363648372445812681039507290585987215689245165414439784139151262894981178667514507907603118906056746691760240491607972287244742297460373865421120912735131904396148347403888455429400145620091746357524428042691141054343738590658079971772849136950511948620506267254972686768728782975087491939650038933949404709222957334911570985775411532092526932614494897741915233031036347830403900497987830571899661096035366819317285743203168914053207365018599544504335051567193701953547533601216264857550308645248429497078157200191015567582544224893288687395343038507167032542158071372517950579391827671683055375852481300279365951189500428866260996953939128404740468935694564301251844527360062581426017219200298665652205618010180038524808731788996976373068723430472710552123296050319314791579043601785283859193776005347593451572342911688633434842182880986353520314534059023256977999686367531359640710315405958810658459292686911951962728806350119365833819645101380328448828076215708266204974202845031241388443632509398321033818433289874656479567660615861574157591113223721476406557706249467945051745367147662710478753480699592540377857788003652980393613337233351883369206179417185991399229608814799587843686604088123770269974301202134897228699160686218374644356584725474177566509681120585390238348738891216048293089020128862008450134345730379264993641390410754972752389003030680360139531775257778285892244635880322829183779428914500393503208651061369549944453547096040760447012750728072202074035951696758185416420915234666692437913054586487685343178276054074108467841161408859755565041396206684569788484125629415849064071316679020431933020834845472320183683197211793514327260674734531506249098493491722642030796237376764846925617858737933592520658606257602237260857898171175456887390914631975478481838869107594270508368752679399535963061101617481741857509412068160302314361759166366808450770053373039786391264701264875936345939391485229910990578686387651948315327448438593246300188842506349731527141133720324457263986029052693033232774166352760134927321055103200323249033139611928146249781278881540617759195066946989881879280024626551110877101536169884619041273193995612865921052167462255084221181147472152301462288088099474643213433203832492463983195895381422523474337907865026881849030595744174245640058996940469891389432274067436649703435864187719043120240252523897139468037475589568555802468428389083953000111420194540742722775592256434987547900377120910277341744337347765377735074855714876777091279002934532442897316557629837762583764306154045316827339274611583382679056985017558822309280079344833229122221465868174809798140141371774102716743049422630868577252583851563099128087431712115120986948429173585440502300818946326204477419440271563720648271753016514294219452969755248871361284246347521952452152330543910599060248081675317942798110555530387245153331336010637861477036152438516973655958914211717035629871464193726984354387329657242121112256032958903954927574749410758043516630881929686099436492539236132698664294244018687637228864461526900268171659716060531215040491676080630941766888692360685202861099002188036962346253898386456324607629029811181833157303502259042057439387735295849861562577167766164140934811993436001029379091211428792291586883185256987549821307970390272864063757940754503201383146563287578701138637261128985896919391905529860385303616900161424694382162825285557903538824704769746614947512423783588308998766504123194527764991608485950201328460784577087209207792813554305908514857815680308602393504314517159400951952972341370380031566955004684209256842942952764849713179568554156199576931603264709833079449326575603325786057365020306070197214658463512143379393417487492287330972033555503729335133244026191021822664484524084968287322288096656575533037412698915813479359557932868590482724968942197068362516060147577578467255014215691697082814722223765719221988038473797400681643703713768021114376472371423440759606953355871781296623679997576980709387523280168215425319487003948213486912562827800805137068815388666102564021183791185789327829570394529901334537059395485638437510276087580048029280892311522453878132353945596710652010040779997550381742531661228610709660027934630270748507261745362479756950473805976852362629795147340969150601924615907887499256344751063011978643609673043742910583085123758189343325399893262256051566938089070203258949518237677724517240392769536385981130651874077669125493042249167604290328680376496475554792368531444034759804467133421874782135098241489289490017021441892853036166875172202455036683884639123546912889153603239163639284451174436357196362264001370183283390791953756355052359239195058119363320354728624045876578894579800806918990593852363949543071249787661128371151360147222099802033808767051844064552475309425974575183506563100475398838448824429718708642705472258002898338710710836033990003941208881477594558052835790852749757757866616075641283542667934414762830613290395279088749698199403348426181740726056665882567772838399730085882645035294897052402475141660725041717134530220895363093403269233059325364865955726908122489999814910793739216629603053777585140129634172201559168334708631700911079496187243792220563276547918705020016601928215669383557107387066754016968392523833135956462633461958913530652920545890378732151055507638285846930738390105563875518611919683952449781820954001026504157090099737394133126826785007717795598358995932758899586634456017523969142928312660807799574659193615217629523323303884550949365165515453530170787109364467991100981998679491817242522537331213662156286973244495819165398406720674613518230723581536902754762364737356419022991334275832122230257454446346440901578757972657032070742918316409205936544220041110334080588162896693579484664565329430923625766564084679706944138565984988030391495307324349212292027932686511720525498105378345579713777998553829473695040058433231414120258866369391125800089182358987723845834673649233374465592936230852451079362047022113590123798570132665742456825677881942000865781765588780816454975787125681782219801939162484631121621181856348009495662788228713615133640590931378100437217994028966579615607424140715327425243430230166775797571061884138979620837015837536021745999844316077429164375937816001158034137192418297932919228575718170987433609032068007561270392377175856244013608271588177882975435258671860133449434806994722190933243121599321739206817131816752883008804382152886688303451550632141158240609677869633456584158328907854766683688154615608818778752207308705181851299983380860940377606447399875011509980330142115417192964324313510108771773996102488797159537745271300449228496344073122904634807542241969364494983353627186156138878671309897744443155772872204312743204460057169597891116942083442190140585812355407272289310532327387313414026559207355706418020544606557101248381445343368986648729455551226095200347283959116196400913326861404374091137050100981272768836115753443860902373309070633333839812003900004911718952473693507347539080126278778795279605804959127056589778210578344511094796738588591036252765420149213762832200264617611321415843323477571227655082576501325469962555414991860688801222403175146144832850463404754051541407159822365494744073256615739798443079662497936150409816790836040739258980588490580540880275174951882139072391883639276731746669280207566565721613715275829897545596450351200004394031575472063261935645028802016452534720659718986372779980700870282878097405924188513205519779242688528033709236139653407195313690823340389687131681226185989183804896955289019041362496007502245259274115109834727603537517637635171725177311397091044682891428652465127918326428929301180029069058402909045005048857928548193993339659688992577731244596806712054310635322725438410822247508901989166632767506878082264768045958961360392556750754638233267834822752718707211622559358495309438684151074127816263171418084942721037537394728295610398885850246163011345318907483990836574145494979742106581655885307952482186531232062430949281217279308681120827109673925897908726397266204969739852162119986473729315433244435893260240908335454696333857432658619097868535940377192160871646639165699905896177483667631319655172870409841693790718994739840840588828057197503525714324312216300437342683798897186943196763451386076861394637135431843941196444871707623971459675650040546177424548725479928659303421024512458958161637445114140534108179346360930691700064105756291715813311215331622546475459643491670374109813018642179800354656066085922897721659937463868177798601204691765871862307977077318903783629299128724926012466259964930610869406878117514410823894482858854260641655049832468111001934671867842477858034737315619384915973772852452876755298009469425146405834118382299023045155603251872504426238319178491353901607124642109901343264419947323477042977222231879896196051181383180635308264715992848630708051149237901262344530405373839135517734064040620324713359955005634416329730397387223031924348304132376450180910318381760033808265667138161951136220853832209663975721363354563954167933161860641576990990048474518771417457713327775095772831548123629538990269371376714265527194458970041928468674890406763340408368753966975373354010523711791210951669695197193378114443725493054709801779145112758453279054418077246142647351599723298349910929602084414240037300295308651286974790562883967189631989654170435087925820933083982794032845775077458013451561270969152616300487857813761350098840692500488908763942013793271715623151825931733111898821069344643699751326254403075976541501893052668426533550208974027191783721959442369067438028401473986853706035344340307651375530588237117027084078969660915462005219513106126464758413177715709271149790866819952702696989227922761169792936431058764074745958473880197108529868293734891881759160518916594482571297986469761060531672341806732897502555906731282907070696652150016114690720746765039885163262695281434549092633580222114738623959785013323933499643789126402835378821871894550966320180039883281084168201079174787498604047180007266588900956813416839763789522581144379591624016983261506397062302072358830992495078368455316183326474207213507198696014458176761445834954774684766506181054890814794853891504830378170577563709432285431170440921993632710437682895803236537121325496183033489754335047933307292656447328522972631089461950771083107249821992575499002249408496338874891614911702911814356475421471404510562315130884043029612581304383209347936204770202855396834844490488594281466401129625515764873836447848788660945756179863882465853149785785725789124401622517436037050650362363580674893950690677027612919999713580568246433386913076142033542502084652986430868688210214133769398985758592586110900716182687104847335970341936349236070515600012839656364332407932058133567793184779946358032869752873872472663814916046638195236101184323160205922522526518617323736404512167335187754338670647646649014728203659222729326272474373529723345330573625363704123747107614161465605738224944199344045724649581894203100218367226985385597116710795591987598339310858142047469311220610751240769352351256708366898655812025667039848316104555936841923880096949751099419782205526730549635836723404205918376364294601156054652533685671583268992487211173458544836943243444092738427568811809716110844744895590257988153991592722860384451229668617952555099922229978448197813789277079078900466962293468924867485118921204410066170650427955554332568240068037583368303197109969303693238157207757033851611848709430221791563389458063662284319339543432261939108045748479294785945634403935902654346295376596778365492757158734268434723563246593602415773935673360535559569308465111038226820506036291215820307023165409220439827277668258283909842551376980331017881928020446024928141884150834031304827514974335784447704365818030768744388669129202110689889680389066165863214905052968391058943774717127782080604878595121527277146787523147747970430429611663738616707512369657782429187745298810311907657440432504133973084886743945073009608045646976452913750555014034035191666825732178890969006883711915130085936688695641435390318303092141017985053617643615297639232556879914374846031147936053303365988542749939485124072473819136321598566879102097908718139276687745812416419312690512141531012833305462625931419416525387374567383712895774437174783846279448307113154412471276285906602895066387975439307801400257764999306536143097781294566478247323472632350988189804330523036837979924492767131597012689928877975204878462517220736486386592142481929982897619969099007064002437423823350272885642258750460250316705379075935377791266040478748596246516843405143053588424898617411970190790646026401609925502385399902892755562830539067702292745720058281350316619744574846110023539572210193007466111900422838605630913773686487825233937658739993956524953005363947062910452126109785774298581128591981763002355382380340438572725955173903487755233363232309717763972253093190179511650271893153731288082841031104282001345083320128952140019508872945357113855188666628051838264062257870143119441439611614009190083740046792527226598101720449658907721980125394233512430938830922510508803251501471272555556978136388540501120955486397859989347502670948759790185623599642495932499314493210794652978407781443303050875562263749246534256342520497493038392652100725676909320370902070247030178752931386079629533017311722239774090928523879364716341716738739489721680509080879417597945579822971991097194535373302415365742334783791760762929967586306698528888157621066249150273834862002947021569415115257085576313666695220458490473957406202255831452761079547392833844881151552582146445298549930185326334529407187810135560296161659852830802169285955545052316886607379600887472307460290853130037528860611883031814735124391513296818553516004907400552928726828512404086753850826321704671045752837801448126467756988801609071942721173219668484435892955183730357520056623943334485061773083756497786305507733803512741730939998483036613522870852136981160888883945929280601776200947099837062500326711326033204013531871322252540051981679202215172768336658230548647721690493163256937392341031943411149104557829054407982642795948212982185848158607374121368854309432934727681465500168078279063244731870715808849139971861420850817412492531672032320522586937306899873638763568117033466510403524194115139197305673956082650584011662462882015764809261488274251820301708101352622298834244247066278054255982808722778658201610496250465642356142967557423604024749471804670434973003483701375534805091011009119230272168623930458030565335556935639936805978045602911645100823675177330418370154530381041472681452438024952507337750563011506556953429046757385445372969116268015500733871384915774942429585620496424963114381815601773062447092777477906553806277146258089484850030189552646958298253314032092223626520273096364371866547035658155145817804517613869771812103440358096011550052262669339933666348774359901817361296362373278576622481790375301239853537299935753426066498447533707278211414447062298598135788835197206811842569589319326324635420337481261262787332790608321423970591749248028334155193339910759753050987415732751139916297197292199259465511003482293570185031870288625363953430741886767467055977213003975416301862784318943240392503118643161558623642538252600772026731841318241364280803803579352889422473375873451479588901061539558973195725567588201542759849621446489149032777769488064089449318528710487510800855429583637989557999756266579412457108575962034472704478529992881033681487747064371292223616216030841548953200066984064485089893273895874898683249080174609539498520817860565050181345145286485260541147284190498880779018009674850631925835947126456526899557187365107652276674634471775957557482525341885233360600375817636768670761186316972853765051215732593119821298455545306253040655189674551101212877283719173902302332532627326818009197990225193109265539011815276846485660669784985959781455515500653484738616563412666366851896681456299338459919586201642917407931216532232068998747176836547939179706470032682075697589720280415899771953764241639940975201949140399414978412435792880880969435318300892557358924265062086826716991491522841676522012633944849689900519321045246550243998798883606371237683949304403503404396702459255040988259948444001973951164715066107151054773556685816813207981223257337735488424105890542659061061079217582289983790010625344075957603385216487384016100527529944521631829890307324183194389666360167920837435189461110525818831281361407123894614130920480935908717693627094561416195573367411522068834189822283385618647139388842618202154296068742053357282032452340677210640802714938147239924090637042108623863771059212073415750139690808847115487155465130687500445460936773887815242783051838626825449288979952343148073361056474826184354298333042352209183461752250166157657507054486371786351472640822406061871896544891286707500596567144802433936656680784904933947600009828264478677728180517070671488660046875322287712449181368573098334204113449755913014108696752182826891653795263942655600706145159681960505511583610911248848457161939335326388927360755227132537781469027199625641350950173707430559201816391158717757827139421727850119733579685772625514663537422627957722578386844781354075978727166898139555883710415051551322862999265378772159023110527368323338213722464793237682367706320602880228127574788563943298771458150683201025931478065211854467110509983146606117680113747729918660195067973903957645822984816929143910765757155594059207072222486020007387843227902350725744825624350330231985697218840859319908669013401501073314476022516857272098993557680079332322889564092896644969255791784050956838157228739621518405424408161704462653069010668914131263311159576207298882631705349973423411793079768328451822242970118022720031853516043685621514489834400933248955716484209332519782665141603646043029939280244727358980666199299864154368273704042289228260486587667201014399093049953453092402845178260930619526422407433211081845806935874758189022948494132515602164343150129990062574487249139012474453665214013941682405449363117785839130349648073087094301062476596849918708024916019723640219172838355309539476073221141669491569731698438343010894836103295605699431176905970559159170507826226961866488841433687548214524760957466824284951549297228428529272418807649105128254269813118481301413856951305889398962244077652010014025244025424180892275140013246083988559508233782025173827287959466300800314791808253860232710234527986300268790677386247912825647683044082444244769713123169205947894762162044229069816898546040155284620344733462081937471742932737050605390111489864227401387763084609564372582303115461937002717471486778228534429406190484200854746232501595714432838523204115800017032271349496222870829323387521701270084913764322349505998011615334835560786942557705946179971546478629240671517335213015378702666723680533619573240498798774958150226446684461454099872674140063057070172604609121837376765075719491795450356012443537966126625821221369246743955855573101849155406947226176305547733325157791086772250658863430177000524083267845538936366245011578787297587264241576302312778191942691922274406733524703971293986052193584762600175002035964403585231888076121187319996738663264417098674672965934820533859364302664748653900281278490755763442959617634636710331143038202831582679740653548154279021619321797412091609718636158615333409625994913609458089341316019586828339841562113074056827677863153414657418169887059107614482176536190648029381627183716411276641294318527747827334741352541965919252529886356130911763952472440050553553713141248202608778388194522734655377563018488429956333605975964228119120671598444219185824552347107811712800397430370406034911478568927839674931503125887628467210876927776901331271807533165483687093937878959717063582156191132166276885132065162739291307681910716725707206944360628382775300512352782095277920470675983578613081091057026024371268035363599526796396286414087569098507131187328633743987449572707981719305383902712683101970901112036582594134229331228516527268991110427503200600779656015826990152592017150332301556018496696287200319827946573372920391384682752179075451534225542392680934565840151629256902635058909224859086759398868641660290523600552093675584511911760184209165498018034389788164643254602324191253498398395341409224710897285300987671252072485105794958039788608219534004593701031300749132139350281238764681846950963699058694277354251296239606659539315948928708696843717891334337005414082255522679994439557880112864044102031420823352568250551120701433281030911373157872329329072594836895077972641989218378704582424709566332084864512802101998547412110329982631759031843850464661296461215557596649209956974343409076817462312727242832037007101910480269383833947076022596834055822167042149842209908711754570594010287367362496023567139202116573786759226883996230275346278447538150621128905224652806132126579083552755859543193772309830218759877761521334915140880695301607693008801524396779571760848772083394342602511477981323269807937383160940835392223267468178752647962606568876572367872254477649731086597526495956651152411416726655527127143651518194302958004965735673064540734235974454972282697533518794621771488689259269515839445472158188961846534809544408634443337936450091788021442873455400987954176199047336271684774308724448384399873916536882212142298289424290065894704512090869672520546148855122436230346395911075912739644449080519046750565565286295939994066027731937549647562592994641270080767333209209599231188320988154894508628169513279832956168845920358134977068903394644506200528417954495548163251571133988498023635733794222030306140043035489522768788761980741048937632390624348773580707844019910810448314738439268200412360661241355992885898871159830779229090045553240476868882444088203865320264722084307241057779627462639385686947457134997979067462582120792957753219838670821789400695576119729850388842186193005695047485611020611617469197829794866215093629920258637150523288133153571154216839550342907629085050889253802752464780943405555194189003285641892683124106605793670683176640687018059225401354243206095387580975471086558257883496318009113935235477117198842448713690454251939565050005027906626979458754331188119537620649253106744210936014922025084565647218997046001836099318409343110550373047363814998697151453165969082099099382413599701639151434349689108667926889728035792725303983655195718108228771291517804490017848821060770422727325710823839987349390476687900096068848276493387934235011119938785625972844108582031522868578698698325568568284350429776779653018281182208368141751094864102853499470125165640924278755758584915082476980083454157836825710831789226737323797865802760850472203113815009420138576132172822869122932486587139916991492167461387593976643830342243486273957138873638794931492082789089486104787220545556023074660769026600592255570956652187377756516127055627904179235132651984910406363296177416346141197431662633443359698932273126523742732656832385451827566594438452885087972636516235211413309982352897993859963949846295658521161187022668496253485700014464999278827034714801189926536966571417570791649541991993509011189069942036600188314594355391587409086503081740157129060149046838134746909899011438851370132065138035751131963570941365084518980927316655403836526398068873760952856895812317037519265098034874213259464825668741944575708658453710473223158867783058207074503151800788928480326799021462376763319693996589514304975623808199728939621243902378282371473705112464859227299763394417111427130818443969797168558161307384641115714965356985171584235431846155071570760875942065533507604712652277225946862829321129207267651985594510059406716428288239737822597195149808877345158863085138135288884830701000434745903677869724574680628001177198565884120581958819556140110806725988194423682280193045328488764347660702180067925245221949988675541186440191706032155129667950534173256736003570236153662471900083260266458611625158935567283382549786735454956769271849631009299380176807759711896116783648710684429909849245315974791365065730566130288616386018145467962168982515628686452274858393055949402984554095114109101570458083770508882155832610581157290166465239641254618222537937184268801055926104212864311370013086575702407233143471881155750120155567804119465082687855860043119690362910417956683124384412099874802003681689344179548007528474312526073706221910649997528785251218860917338451516924204777105878845610358270547838634573463054221354378580644974071642570277875171489683445559217880497944973021031030840042351206724544309844298459145298057860372105729984329866234158486161528415376531636684879982401263944560700398115358532097798485776394951125017236502301701887429000021377809382054723459797040569384804498608030247098046793228817951517983801605975813743193138828004611756644647358636109426699017996770258092834151822863121144428698109297639665638925285902436908827992913494479727668518368742363845630965223320514264363603119416439999668074386988624953604422746412384637231936073574133910618190990484152934642835473516445731155966089078630008117622770374554374007157041200462909070493120846040366187122791001587047789094960456157501660191659783618258250159845565277000772328849578468356200175315658585377739587416152645791047694166353012156566405344136755084131008427386448225944966722913527591957355473313654433961426300297452128104289010978432381073860142342176591160796107338591769000868834014883694186430278581278837920013453600106500429464107948301027810157463168440840997128562780489356896863732470914722552740370824566061382540581218863965981027049000089914261054136023949750622172684611188882463814981995646751635582083267761783623194307037016418195623279649942772122539182123525787669117986431541573746044328287580188290177753241614740472435725054403492751305888655101750503645214223175164678915908046815491189832563753146889389846579760095737244005073314020520137426861759860761735360308422587345383661227280776204100494712090672152811841212546233022737177015634428429618149272342605266639373878963898251968238175573564354193317319363100598368842335467381776680575057590922738569336175798586287031733609664989532552130582993137416574647278808227742139552904864169443333074573885540405782170484096292633086981132103414486203955654124041615088405819051472313445024506461720225721772295826550249691304437931753588707731400009335740044833335283053654060829595204946592955416056132416015561037501672209926699280045204006560545934874423411876757288441720838539623451287875707102305779692513140408875973202927843610029030814306557451176703373567655853066572672030613779957936404094388154054563751716744473849660349700539982122677654562762408173053851405216107882596350031770407122986495565619792687221759829745887117434685128336089741831641974327332122630929845880910490560766850967438638679690240914118467426820306068452236566930670988401150234527099227070407153318731309718922781636033641141608076476052914409912820638537863845466278865590112521292931612201912364009535372339468525390612590810467630309025433466786294801838098903734627698606219789915481584549496018735740847609856807098475811927920801628354438797521382096097185103405716693040970868404312109497407073162593964156383422090025280930726979488668621151004166366431194385952601423276847445170940028604065703785158639568470646516434245373547832139940455759911778929436534475156792321389154011310734275344016338710708844236032852421457894587070154556816178227823759741811235301349197687230337388101250897083357669633041236787184549141551494307625432430587159493963241673527733506242624663582181934277582748364796794386772557809753168043732120768302239843687281904085611672232704053014087790325941703937299979993122898726644170543518497675753069651315573137642766906044003527062537885871666185501166279390186425196491537025571134888968562742001316513694820278043594851038480200636126069546255053628107835305628130988844951357994901652560853350144686725293293417278143120211799668921686572334169330150884249302356098007093008594901504036825062807800652594733364241713781750723251867422401131358952142587127967254308761232089328146039065208068032528217269936071133794138882396872656882170420247538998866554595280441147130799820496292804158858791321831371917016882666931568449830356324654810821978688196690559054614707201894434637041979445733053916106841308330597770632903887726744281835664747716073346632656588225242116220237582493918306769206626564575244910196897740268304621202723209594760145460395372338068420979826011404577519397134696072273039582482028780884447405813778421255857236296995351835893198268420941907474957266278884430859955330140713893885589314667699500041823033946907590603341122359927757237634488547590890363689663390120144988737753158141968786501202645834697563102744150288549742813144091673378445698734515413785545871086950683509591537970813398881634863105823875698397448506693388720648186049793020125615218381379627041879992847837412057620604023625015453818006443864263552316048333294528501801871972693631484425166259718673563846460573851776303989081092834740591307802540990549607734706297138922889385395034785717820779162895599296997452230811304366623989621005042449387848891487770578946805372551521051318674602200412684219011278903761560623684554544284355701098556620789611576406645006836349249640643276877307415218816241349685804552457843903247908518505395700775225132316592070435068598908968987031088113064643050043615242512925757471533530886646743807993531057666307039921608373540346900082415727747304783728141987870868781477771282391855923439508616579817450875985856573121236825145499154888619530380066387622034955468545587901447346858676341288428102607718495781393620474922112106546760160086267756193557778593238587820468026281559835024286499604563505831071658591282575753497857726304695652446101838888679678091872234756521014089055797137009974728396709048394550876460392380744576433771477339108551721980104897320414321981614353586383706135445912256358236748971904921103836442734379151511995566793421495835958573272782785655139605118862438546113896263414543598103422944857128949574191248572985666954374564707149664622600336449999817800775005602569065458046234575091492583106464795323065378232732504419053250129322332542025688687764461180051777193982910040450231585976281122831118752219065840445014945445252691430994431167926572689889671252617130458696754494398435481730412278573715228709977547988718422312044911043394267882133650539473234016563288188179966525266302464929774760513334065433903665058102539024926393786304434459939598538961556392066676731335372213273403131850745558512111877527643926141598039587253995901654136328125701804189341368521682542332185445653178410582746274185371117373874737414458592597323231146344801049066355907279507368525929991248981056175553176890041615364370711585729778959565332746464395340927312421061107824980158324305009380923880218034002820647091266501771946398393740194505200413008801302282850589352473221057437590804166789204196661605651883109459767595903538660832412624184345597531104320958618073628218318805529849168229276550243784950899512856534941832797649695702007492110831778521165101770931533894194126588959051811131127515406337685742405351710508437240070899603421956726112797987029887497251211926696061978336227515107675497569060804613759675720928334457013946649245980484370335656552372402382113416399914676260550215312855586561626888369656796580474524590450422076282236430643437399977207448676558240395397996406732255286000319071936175706356898952381552092801359683202213705893629573138074861019986591563792527283098036706073108359432592521261558863493328787990412477346421667168088213160663384869274809129557149287284382498105783509664235381075144340560947937462694788675117053128191908565068797201242320905065248955692159256039302312836687032948281909568770433401303838552815258420591272588263743688403534137389437055542309545416304767476345706289215901514604833842209905012484748382957260238087033852103682040227608616127050288676538682795703119285897342750112129348874903975630152092567537132520070549280744130386631119609957217497121552219268715477203443996035890985207456082731128589308286329606090760323782476108049955900241119201082716821842733324635574901000275989072829530504581926780548199004137197322263463929432717001547683028246286147541002880937851907523001023954038698137108167268975638124999950260919597884864816654471807022377441390525790986356722191465900349500173543894796252437432169822877122619846436672582048455463738999516452675117689173863522332748738709514524766403666571488601178899911202992845543892501646848682253529049251554039707795497016950892025001014544674605514568494428903215614511453682563541947306416873850487293943967204578284368761835666946813810199956520102202143065479299813922691758532433254180215723336029178864131938576754270414191771535609070058789078714782172076106610960397284544267765872633815326616996554226082754990513480092319712461479578442113304891287735938408820718024966007818315337066456511701314163865583143300772267888936452979585400845521645849766234357954263020704888054434397493535143740976697793909102432811007962333037924051200998919799606754925514257036607805456962156890678588709359979692915677743973216463606547892639738517389773061721305083772330479870453971246540723663249015948254000340040809633481415237708693776858601416709274070181568495778238974959923972948845218892109271886756162695740937337380098490970782588906276416245528670105851807793128322031475800145665461420934105407370860289109202676649200410864850580053101934782759554122551970545330966323484061433597544342510939914777017678729063618776521865406212513569152910542505989931319104632844147991712699368670036418933225597628337239298726602449662497103888330901862422769989732993476300985648513350045041877610989942192454000839103625830497465334521287053776693541712516265277607738682204832043371189208457510137266181232710144925333320682871699958324830680291163393258761117521041334892752891272696375113188842987314031472973443338365911383300880542613641444573047006419721018373582127660698525885225726059618580671482521022048776156552002369069671314754927762984828477734979496715285460450368579281145473999867975141391165218462864217337250156521799363361622705909187444008738762364522355132290568761885692861854996129597938545827231528139504765319221379222777904910004885049689275974966055254440375573159361430412412535066428108603119633453574200963858984226637038079785202075111244602038083479532520564011518333593817471698954414129534371779697190525868941572982595850705486113025040727355247541025727784718447224584144627077746496973995505390409760334371463192346108459667048553221534272975304422950607690110470686698510587390836684822642364881480576769687894958050655135003600590725284128113144503469371189830403222813599200639159359214378818629666750636301516822866391534175538001003486561494498501705275615618959106582436798803120677220688308295037244597191547341410589889113822451934414761478657583511678531534759367627511324515179256247715205731904971356719710524874783923666954733211680246629585101308951177850513574159913460374002118451265069574669257769631783881641943607269014439567412637670616751740866006945479772364143246229310659916468963891076963582106919872473883770335661814369045366294124282905742517037461368657652466256878362835195654183811750212457408833165456075316966277967655613463281007292821422421894547128852856466891958599495296640058162718320161999032024421601254972032497976600944151802581369901370280879907182501757499998708907750252298786013507504664005051335372867324271744222647147220706092456201190368659478029669162860912157711709776338423816525106254108523726042375328250785399372049309001874479899114749998625771266449929276570549930473276612632919137082103211511801292070707248605366526311989816726056352980634624448674394211221301864220812439397744034178822096619978013433883021985875986450128614567457081781267915210178645015667168286153409511075101508483613696130649466473239509942778381546253685311728393510649343990189621857964564700554309609025169035780657465233280575532251888837986591658247174124125286293563124486675807402570510278269214752898000738990735671598235268864434346372601358876941098935906986903108724355722241560325771060644775757822845319086765532621282493008053882612094926568187457759858519503513924780204619905421491849863554737377645686577467557132850582322263948865061718739281293945304075817894528815311856106871446230369449103634402042123810338308158985282200895112854461443647276417988072123166959700398486378453630157016225367261921563502053376243594120486715486548589810437927840268112887214307205782221570388453170896030954920187655624356164288275872539260396970440989245369016861791957600671538155940153157247670603237396869181490550559909773766767989452479656391349884745388796189860380007553871727335880099762173599268854595698830174807685576774071316330927790503946250103321306384461706242512771609466955687355606416809475054237827356034081630020190101048965453968311204671175277667076315225272845179622971805826933054243125925022080054972131195279434438188704710507882772446835437775576774409407357066762176117568085855534273130939442305224784768360649146591469918232032580797152310536979172545766293520162426066652560327039478975141071472498998717509481853748938370170696285775987390965960099105975758272963539926386494363078195407367622932894151519700825440697271219941129504259258651821691414288978300418721082108313482353074267899948784898996697389019056931054090888135261198041186459996211380946609932924251378976611180552458015028801841553435115161614218924516761772966395106185086306770196760725943268581939033171212792400936792400964947455744693306198875914851799286759256258512036831468065717345801890748254346777709884886786171012700029014455292806649988155234213920993806169247708570826603942750124879350377612834044366424908420127687724806097717119505222153985464478448409786374550978979108537021150597868512619409334000311883045401805901595426335502834630920832490327904569835481604510773515691244550575043904208626401340915391289438811712232805480471288002005217279404387277046674147955710076218051384813846963757985994429329259092946368567111370292402513060169306052782093327178463085670185513039393796258409586143409335885150792126653742549991878305133923410034711533844262379123842490129073991838268591771420487766576910570827825325976757640730318907311249595518294236160782761288413869597055078423217621830860411481580199132607145544161097969947667906957883650080256616546399591402335550754196261180989645604768622281476587551357365822129905106964507236615622058983127811866944866277345692346278607651218386975954480169204165819514558939780161877915627594833965201231576185878970603408867511793926586994722415530331349421424526621656155796722800582047658487011568896438158196275882850164153586470221468056228096104595063425575527923050441373816548239210013584287359368012776161428642795004459893361441418364286062336024873664125546729992185742383721571331648692529490701587477045193813671903600446254990547151850162734848459956421325830915788934927369925178251488679504643681089709571965101748543800800040585207875962722818400617200789887920630678885089560055966746723894410689155583442876403509147566260904717500007168808685351210887092264138383429469844835988832403629480281803492281346643023431681963066287775431325322010336294362448520103159429609599203143190957332177007198064356091667841324641111538082977268226179694813417459169123029341154964801675556108850872841804356446241011256849093835460002804549725096734911332557492062095079248258486953062867929106562774240751981170290872621383718279587933810985895122974578517514203471746955574975282954352177668514780779141160548790080156965754243338977130775314309004039758887029095924940423738638174772808254948320182140993244146273685522585093905614883750186776844732972640028027718519956788796311580912710022785690662742630339081712909491136331407891959142059620919672626541080050022556772133332502386801017496742579862464173597783085091208927307784946277913439829391045387456114910744727682745087984184134577744715342770547407473591090022992070251730968264871829005128693489415338748826066594749255563299683061906759818186139390288603566805078831754534140434809978938735526579747384585832833063835012819015452080148658772668660120831840453206130513478814501815050250662841414866749402662280200637282381944896795529713741892461552133884491363484509848563538990957572164608861525868878935268715712948640175936996221687366670298341482678191146882273694555779037961492622448829535629845655084090881330328064814619404970240498158770658807791650668631324710235548034728499904002853448599497815448017650409608059136095467242760799407222351135375059195585233618191154805738127532251512257761024446700323877686294278223243170585782584375993811762196348633549716621276159223154546323101601595862943105902308448907685390493714409883536567967083781018889967996803699499598892435236989249302245509372049479330021334480627062500227911834547078593235082626452626503032351983886341149535998615199467262238484422732480365177548524304731987336815926822354341730888119879633584689822421366737369324180085055303829543382756842978694700324565543707052548690579081858928881662632970216790467396090428327132113022509041046015585675972612815177954897885940117074186109082745919509165671572159701517129513763579202673019925722614846379407853907558118999494894101097946934396274584641322913257198594895683367832519942359016745989424020343687559743116948120974384122983504153951365761799477041634331002540618242037766605290792621921945743340574291535654930057730338689484460548820931663383269599853349871799437585527768532055194986396396099828014922516781752505627996227605977227044956092920744842172360739392861457703331615810433497195021223300862963330199541301873814119752821353883170428632902512541638179552973018368641687602052287948900972026432590655745391165880341612943456512390421438157249642376018413406258010592441219841008482099200316120040366176405629976776016132485900004874439436594492222798917836989649223894597951323490638497279468355121115359649219490013490893667856105202937540188940285764204618020447457889957813933639219167738169637762566340508795327020843539762673999381431966405400901628625994180755533466641602201677873807133375177213753916839871916080247499153822971854230356437973585690340932590362357152291227489848031491338067666126610277913553519081687516803349921188738508972022560533773838007016291335697688113246395785883525433700972226333781902585266090186835953163776017605040622252330743881477599656396851276053818191230181997588862391583955137693783217549567724270172328495984270094274018453497254817071826357848854104179261902019340623547285027291358444709711063990258898675976988566299760133292148197098224967638720659929677049791282860145912769148755797717602535706602143388405914721155295288357286012296966447261381823044487876410177702213296602824791521091464073705209824623243778993937444239682481385353233239430381309481305701846787741170660314330640817963690694082692535812319642965505776951386408900887091048135955525469983621824085368162977729804167181325040214074155065526169491284325892690212100892004145863979168302037229832949773410493851002749515184899244539295742662909841006022473490569890550486050668718074855520084999309429515820314843216105780175384485548540977250144626521763735372325295742919614257477033979179712549972005922574422627862185677268340213061671670113352896748459961768043724037272874418852318659823141335977158361196526680667003974485549658793979875840802833344634570470524303119851831423304053304137343260051673429566068122335904655526890830544671167142382804249058925387973785630074430144764472957304478965541358964481809005475566398734664055340522694621379671484564224587040044953681234500529735276390242649541210417212688351852850998130806464016856264994143067431122549018070880312458591083903503809405039378299592617578617235979131429100492789876983070693790483934241007902065579982614422084074753033096585380058174413092395065230407790304749157055721721427139686590318890050668653008281344329038690489842339890687644596715891723586569769571111095387032147851747264568013636875364976028023548547298361648697482318188238472502744821161551912418611436250059048838442525678756724043894664825429403438593310286064279611838811538339495313955115136348704832139073737164875251289303706338722971684196655096159221507051300902610566022683887936775897084065632490065253865874847095744777719653736371866844855951597525696354637365517322580322157210420889602684916241005655379994020081191842801136738395511330339877035823867821210834958208437436525542049272086563751538208992256838845215168806613395134217333015835584920119692302926058528138372625154500808338204535639753617451098051170221154131856419342847845292595705007731073866083196559761731044289360047307463913614513559429727970730012308250573621009455045488309451209660395314862053233793817124984969638472555891996956006439936636165214764595086538920248145580325286829958829018832321356986998179315463316192753555815669456781020122374988869279542718495808612018187838107423372459070789273375306753627519039201020593752985164021174916447098790951467365805240625087348583092167359442828683348751265849492534902623381122946588559179348120627890511183021345804113598079270498274836542440491199341091065449391128967304797907215734727990185544996199797091994342649876667286221525149938704375180307654836805099274611318813770777819358707299209278932673372696600810342820585284407072189181976123252743376380361718819405276172159148241796407168074127039971452787279699462066270474671968167579500986591209102586317823778821822793616810032624410235702621674067377823953985922995836164897930615316336950793525307240329721928528020000826278704056523892685021304712453723059858078272271705363038438947319946405587447524775537185540011587364327159924536283247994918815739377808013172025531815352365384546529913382800038042480168431036491183930574437340616907317208637199250493769791223236950229091077287146407343845006233197496669262498776048871257431718773668889902140161332368346018174360786334441535799419102075325517277682060539374609636781908483648809909783067499982536142536946613279297486824444264170570686671356585371138211989148313464784085406911638038022019476938699927893644603948165535422803309370579750476509108818445936451215920810921535613765129953542086684674214625316298059734239500404761582675916959409091106402251572353779999764782635591791881270867182334214279743427645094275211815478254299172082101976024523104292257913797637074835981266550025200189364362698456591414253591768144564527209592274529409979242744086553085609894926781615381689606922775924302338007399371246886532536880046124890941831030957507383910524260845718499674214559492192961469613467685026431912054335534448572659641162371712694255476851246190617481526156888291608676686857628787382027577251053357809200291595973279637688177175905550859421112140149838005635991462235239652851681577645338134433453704705355437118294607572395073017856145696915566684735549623162493202772305146467927394277821290870744731985601345790750300264155868666538032311186546318104303663262445775453766993629476541022613773705282817569210493491692737989102995997533564384484457390206278911582741762071477594686953668039701423838152693561443908029524423967790097789488968780517067004173909874732354348557592263324201786131231835205904228584207540230460487183472116615451941579078292353353055115560089077822669014805023729642670674862291147884447658041382415331546475925703001305135717447088440604269213209863469100615542900200054757468050220049700629146661661646201930082555608530231836362580057745547354602251132987260361245945468753254279700791497539875903923790387543957741074948817650870145211540190866307827083340706536050905332286617578783475558232749697509690064564858490654980884480777105014690255487396770719682774111888893177509337700316622446553074694444738330593412116264683876847166750282981461434437760523120685209542637655858916641605162133445232006036973997425585268857311486514729150158724077122387062162047820155096415645156926398467119895887344158412839878794171218244372974695924193313799758722733617247572964374354662770438164802554918091087370841643619507697400553881738940647721426422463724283404812115064547752647809878670259869011870336933936024636205668225468958724309178003168467752613169494068128325691232024754789362348640295714439956220566202430142834481274153109038975214735398051411866262597444001917261846755645425633826567709269343854310048573935558750045683144389459685247431040908650673251614222346766567199412019528708992740231316403031639083095752879851097355217213748883681410053551862920226151177233820691206152798763018396202540648534775998709266001284913747599150274868972781449923006111192244969612028319152423261074287826822243388959139516786557871156524055385690197680330001461221660191489836088929259917167384295020660667066766524604516002236913596582038899704324072731694984503224639116513603533257959918915300088708278541966093796133317425696491829707897000603955674454867571449514463014307227516927032202871803893598466753789246782388488422564125551478571115033404439771839711396932896821100152730108763459007469241453463788040943053729125900315931989671874467362842904229607037665238968463611011283066708196123620470870105736236990563982507657487972191846040956360148702511497744266984852087821408200031222166286885343994213614944449878672216529084029440623376934221537731355528058439350705504942023597793354488337758745379424954824435014437453894120544880460720886921172410377113117438823489640297966718741664194442813425945457715096718623430378123196877844124641962030630969182781652338546627171583558965032553700075793706689527306109878919896926065321909323187395025755815565707525317306035138197405915190699100845159198472151886758565890698986245593962135756237133598684104784316061185576430558575728603763363150905842234806749858876002376827042177544947429470774596941988038404212177683632381026745726709246626176188745548153038799651818608356710945456155175561400523544232606556377091074729845587278755730306058264926704220402187417966456179527310488902110599400927375119407300608102216555141620503876758111406046017006292394727094683981225738013137035513381762673572115468384651909560567197373818211632983405984149471232836628642697235836738251177242230760246376561425284687659820083632292675929548556539674067631099429357558850710101350724971892342437427847776846381496230729321927658969742716566918546977691126450335345184269589055845662966921177160716032545440400105048115201958452126203467380572454050467749922782102790759247428132957924520503857591775816282624778398368760291294749425192815385765107860054098463918507263299606389295336764318546548373659028756043431426695102833444993714997365798950743195262820154295218865280769031817053476961523472944889463276840661468163031380312885260440623514906443265217873791601479854066862366027329125126728759422214370609102369150571328779693677165773466515585751264779647812771716715696966885953166358108649323612800215726067998491805707747097783236082135433562609917180172540185936826052925553526664202391172842778596824196770008304111141272511876140319823239429428932878098903450487792317100349117617739939014671696182676385365487893347128050156485991946539541484158844417153143281587408154008661126726388572404615630948098098448083507131994327910993453350941453536143433897048462889647332377689857133030961574627439669477515732364296279474296748123228833599018782778169377583173971476923094073260665024892364971370824022929792416996197396266237242356259813081779014132598051902527374109133515354735461634024266262621311531277956778978483211213149088495882460819854563155866267790448283379324885959740693941727638882961589659866514427042018279558179372034552100547326007391778727341034623408995830754554994349006863418630001258024126031166018303232950617535107283950875193937848606121995754526794437406234653920345125643446906133704952180986943712122004534165536142548266118308832370911188822326643029505791006295956005882157619288778339019153028395805482209056111715128525242451341258461003480407346744397389703759097195718699069189644329137126710647822753539666098202882764501195040162998935185001271721620829819779488236867742066036898166781728890601751697555411898271447338547951863295939109563392724274319569123318679652259363013656747091841972053551410667304676362573200549685059807274601791488144427028641626606005470955807714727658782048531865474376115592825213472399257433396377438159090314059653436615883233119422188852814532954550841942629861653986240075480049500787292219157544879282398691154280958428719501315152768564073710635804972238413200211437611059702203134367688148402705273483025108976847929067208856721428119973006579745520470877722687943986227383387849625495084571366497448211276136454413535847950232207860741443380350647156491911092133346790467276451940621658830433859061036086276632569073285925029122410413928496936639633927292960167065465559368622022619521457701607412463366770520191324204917840553856874893955113333412836898414270333369826144982351390752593443353582477507598598302200577445727796167778854286236483550070764553739581258463349050895932570172871772345350112174799456166083104695505669540983554070163879873842488746124869485427342727909726867564481493241240692734757835905752581768605635050806046723881098254545930451321959472320557632180414345625626877461105629554811112931080815134584158805227240163446536510947812474841610283189186509867371162888433664948997842375837039282355203334726293443237455441291733806486485919472844739695003369710725494520352341149139506695189762488148682671523992979791061557540536049306206752748213325153112701246206674644574522365031847279201748009140429752359187344034716086598507574070516346099765532034642088859438580750585469942485364115902825232556275451971310447984080536145513666378690011492393327133350019223284826972825546737525653344990653243690001823751710023623435762021098383016162553412201481460006850286027162294007960770379735181755885732818089291589642766630923885057122373074021082714906962684257638000021277191701116934437181209056650162503914373574774943173737067735417696429559526751414110328043857288399250878134423484110140936575985846322337204612463703737514370487001174176800127125001557993551702110955281413257453329480266476405888897396071501254265871800376013503443703076208515157609985715459535295540389033579607605672111799021959773291611929351807087839129380799262378884077674834434752170914205929243733139578124987684636201912497851881875114351028379312880045963181714387117167037055211518074419312010837228376623971439501753191871751508726717173302718057863840897995088712178680303199689538246008014542080521759296528106118171274146604698114136309657263123550685890474747031071265624200591893274245793907828091596554331841653755616226309832860921284557433740667720802682908541212663522093171824694682215287957915603866706338622653452570761757097510697389225418529513307942710974375937037126170852576685506131426388060038242997915695140284347587851299276299243208100429026920221656933310594896709626628431501507565977797627716326966594520622982081824386948676781334828225392999456101526799495905583200645500769763953361882132547497274694212122150905221747506399294434668329789890237095973233321857585099058391284552576162347580894566399123475789926630603702073858885430613770784097365696741132794408385882032375595854229831003874946722520684652904148659853355124413315243827518823859798164552291920916965864528760829797127694751310975549304502238755175156634204622345707513810925561130891013462651608457421890905221601198251585293819743511114767682822679142680215653077679325153769570185730257230320241127016663696747989559309139088250665999194009890104739093668820861234426157707330448525569201653586481231773747230340271195166599199569136941050527671786558760194387320550980489212188819195756262270334809437335158004692992794126027197428290896197861154454705127258740643570699946124797753239302586925569714938586627411718991856382939896127304466874732599156602166575757422605022935462503502848338607241517477364396305914699147513393601550019542599035889248539806172698639742302823569369186728906313282007614442786921241772080071675708699525266139670193205634598122938407009362750216846595493222659561402936553839543783617647101436132373031757664037171994935130372215060468325185379434537195906103431271522565823812984323469520412838376239723692851178928562313924928383693803421687115222028659073009742945022098350194745266392854867898539397899910141932594704780620321255760470578497276055180346380536999496333882965468849889730427833329680031646260098626532072096911937099386881211209012741163422540891476020696608242127180723754689905388658330560089631510155366239829880929928396377268247696092775282979974825435813636955315828287498960571629960404651836932179050719454669918635772786321745888077251315064977367991477473318112024692811133148873103361353339577536983445984853787511256849760363714697678092474447652105363974764625069852510088184862439040826027547534745568365697309777393220082647810877042727198076361327669535250469897001766096027824118607285752719595602880866103472326578227840332705176242190088110715701668208444506464433903506927907987993648909395502720370790036497525651636789835749636466208411304401809017841360454165237746499142418268021870532438034270097752448120296415654474788347034963658140636028923448356903774569814370904753693891487822877077546910367784669010765969005114418588988861492819619306593266064203754662140915453314865548292361536411016404501901805959204124800985988828151227276931547976823432383389100752628098500405290946513098386542888152970736203831899140797422974746058420827038081413890472651346447698633002460168430360991072440038410543911104248890316957350895671750282350965858174232647604650102899346372146302037927696141148781328980272620141122397001697567326045157625765541250997917199974961260263308143336750399212382862953093569701423536499934018570376305063110311077733639533784772257794633161156711888112881224524433075606473897036678596423651813503445707235097290365272717246882856788718583405991175056046688804589784968568373632632277552510639209737715682292893488208011698279461624077913394120738473339555283778123304740488623054150555735282669720519195013898415629676555456509983215967917988604385888233007969608142874450938152676627104511823932440898691542764244567101124955008148040793574976703736718940990881809657750808839758881617643330350935070061475154781833546345385642823358364803842735719976802666349053681407907419820423075494056560550225799017782343830304353471305125043790257441048058393981178598504266762977781807858737553860167895043094131717895046365058032747354895869016244466371433804563245168812831833931434285287825509099483082703395166739252780207726144532084373978709699162149374045912933348918383833330686891947313993045100372051768030979203041173209848595578444149326523029154967248504028687105654687373155440340341169540277208070264294530756515424421880089392697153477860237436038877325397894121159852971711460834867780658837700864065736237665940803680476651255230335254632611751505398750997430322455993309153489183759368657802177365296649114779893352855162175429416883418588771160977673289666767309466722354671282710192319518138117977893397309667006213151717199512323349058692675510544546361504280045198021847232675362208028337295009703915648820288800475788007057684490604064562204219497406696667857136019362621457157570854278848856429213942444638099660260941168182372609024107397118619545816748663709464757646235253396027303566695919755543304470423727844950863316755470834709467456178381441213445804711799802226704440616791839316224698269074866236446353727305461812111454716394994990803818701960874178709384990552481906984507939921663645217920225443691648513846136254677097571533772113956447637050241774287546991458315816124807548927084625171664067597555501008489103729642713440739525602612899288824330150969361872843806405551708713253890754048463203751017233731744137435472340849154030297862260747896900617620337863969373644563981203591479127466376544624779940270756938038168912862160555964604704304706301568215228144466906032906433734043748482573771059595666329567110990623124244199084136526319914341454699147595954558690079858212616492928033355340089595903946448293628936191683110619379388411549177655880461201522636675354151543694726068820035917731665975104680121882268489253991304783711874000684734612809877654725660794183633972106465007003522503887474355809677782065732553606139883528670012095871992629957271134256660234943924471884983398928144283497485483672936187100492781763448882807605117939449616005768268746516778970645040613682600504219427312721487482301405980482294786187813562465629118173136297533093600452361132310354716191889369353426212489785122368042004079254438324032074354002497597139610165163336707663956872553798465713622269673007094737304776567388858185371142088809897181707904861218201862125862216754067654656968717373575908519016503511014891369599806387630396689074667551562612009022863326613753636930094089149219671271597738898195922165459623705520587885956914106799181714583852099310745465134074288160056602680105428288268395263936205040197451012894419476115142270946766001290890715113044349925505292051421781861463710302789028434660290694173752671061671480326273111967396708544154540492577784869568112048503078202030448405571522091518468523094684817913748052835939030208514972154084612750996296996573353366042831534492604092150409542390881909089786095737365971870309687445589989603302874240857783439405520924489558113489018420969883745293281709083251472270980563112596842995420364647819176996997962407455592686471441064445836152856805641307508486481431747547676320938185863665467771076496867672586378762378774089123401201073668081058604278369303677010225233184557154201023600573408339627023499066034892778471727681768132899206978203350919101320082634737278440591121613583671946697208574112451495348217987226792873153719653489533476469974537734251359865518208701583169214133315078495629745960608681111445378815816070939841726257669955647160930970565793955654366110888758069904450061668122055890660757122313809938280910016865462036644029623942081551965608276278402329939902170862742727854013829991430059581486552352856753874182431541175182099478864460806658338133435979571834730951655942873199579338432488740728951940328168748930229742934476719294950022408660288880919140317368089527770819500068817575910562588181906489829683389364646223231564535947415717083310222147775447988640851494750079611023729927948865025249962587090151908143724624321474137135940366905722917432288071782681641711461771612489139590161449321905427004416470518035281940074691298292838834066652924278585274510043577966688622490123710852581158040879125691983538443131989719965500907617311734111563519606562548938600565729463438828140305802284274450594851256588045550631794818039963059806946301984696917805043593852059179534981647881972754015605288660501617357924603574431333109479425050562472177055738463103993561903369770529719265380610497160566011375232346592330187777306328726129773086492270358324890362439755505295012640924887572218348510283560826645449935836004045247337699132174644227207942110886460655023571201839899914381069714765082850238065080495740295025492172484467437495757321366754227177075196585349794934488399731581695592162062651749861655262371074721397280508415169993935311746930186520374108468512037144643106881967079259348348762700913981706100787403302367721529112010458163299790394387419933442986762180101731735063630451288891068619626060792815237297417356191556980952491604456523615750435127395456604972524968429891646194694457084947070803392159509006455884348509416553377233947906725381435093521724114420887487125242793716407632369898939229945656623369296990492782837466382407330277643711340530712012852672493511770665966992133522141473447957900966927879532103621023214925953631444125049976834446705614395139915559495682769752802088253945006324718316031949257867978851412180634619742842095761114519456827298871830294270891974730560188669033960871787975611652475395755875846506488920228675177606950565769242919446646772780795436414976214171360698541083072973024061853117254050556680048539999966432676035647474505620770235198211162368920915234977041796511923390466081444391515223746029185646725613567473332106635061352943005294804316285058358983541329036277519469335215510076216206810870005649816872704660312543570989482776596629939318397074767370819078067112114424953796651925129084106356821275896211342425683094095688581513588255155784084552381915718457370050336559627286273422391571603710554249036353246837191552139522547563115194505163012765254783776159619808316929311884568858502071835015818935994155776118012294982444004596189989467525021671120091928852869917301871414811647277201637479471750639792896453187378163355581803759924378491274420437179918294763661586993747022823345499282932277558416943542112247518017106137642456542787430053285761672999538927971428292557355073142066625271107287405433863025685118023114904634551897042845526015956666157646784689516636143664198193977240857984859407120558439827899456342939758246994506328463779500375259653095220995975610167257444971412204922070349776893161869246698431429707098593623911387526941546337345297484121975594454678874618617795893054668915917522131739409474677477817585585502164861614206545048338194656245707897163939834680704438772968092289199941021136598943022708033883086166043357017780404091709280081529164032244628492135685914877264510203014148853791700122622916678094962055212208235597763406100648222991019536092388932372462971821335548214002281316538102937368171527973411832341568453229130773300577257211311929060061832844658984554913994953751149426372251758057968734130355834835703206094750078743747602109136821959518772457376093204744766657668780159481960518362874295311520287305750749729781307596675531230025122054790653485981059845555058780136029911716416792161831066658902173567287047207180281930220967357309619253805299468405174991562354519688122691586203067164552270841607686404091153669950241955226279301512444115937537917085675372858952084817333924459169042580127099900584741305593444467907325309139300097834183718634917377604439815147453360920733307131084960993814412143315127686201464127528113270435250954187763834597851703084601853100704903600979353340126536507003130066119743225389200150428122175861840778201961725314245217357782102409992928096884102288196827303145207099218905640705973557563182170886158214354827586021780448967033149335175193277146093202578814952995549809214714755718005199109070561710153705518991458957430327335945765435363858718354384340961751445968413795629008903013985252114693444122618639867622322633632945647487626371050037550533290103908163115463074831986924798162522251658544005360332301017466870620424136998407497456955448953579899432523375533243690673483786184866948642864099070684990900901431599974320083828592617949441743368366484422789309176765265487481408724269224487854542276171025374485444258643473901363836300338963747690147801553130399938093082610863170363437568927111899214891555297311311528210899434357185006184011630913956632495330709560482940421575380173204141448486078646046091931935156939614359798059446759700471053979501048574827623830530179595736838265856415393844104883236702780688817975417517491664687622493957191304591219031507335205114190171428011350369320335687569269063969894214538997595912054560125138985911967924509562683775875745607720578197942158288776009437153696660503697217524614848908278168940074671764498749743798921983611679463010900123631054660963508798705236017767667139481790200514395742605742902388070358604970059047427267032730818015292030980807046244238090575516437483531612385876622410898738386927640646722580880716098477634304656955969127664511405672496833045546837068215543391915686367856769033659019737079808596901882163404237697239390678638887094395548162254550398651925055634549295890248252036300728590030989744716371950373521834524449211234705810422346216506888744171554148166038327536925430499307758979280002273599061238428832109624679945797063183706036628741730560073497671138142290094999396839646049497223583251244302171487872317532778740668837202759023825950841664024072791270496609476429247914389008404540262268115853954958733035035036817812362956871354296773098788104914426629855255645358389840657678192717161023542537926517905066648807695084433524112851571017625797684744310353834856600079116860971390825347167013261663451565695976257068976596489054917371820988487506854075953890778690941113551631406694708793585054940379400572077887982400172702500336117370928930801236027859577713719317447271367317712468760364836599050136394817926627886634375034192318231149198651619326430671961402425538274112801700368643626317283287161854818895832370562894261413680246801728068169884354589954179192858321007853669869623675113201364462600613120856849824501368017361851028910314843592096179376848257400578580648216866616440964058182110518554519530084449821451883591128293666262423292124090448122742505595162916220027371422791010042404229947993202567580768051810471460311882135931076620947085932751069319868441153002103445702486415518650824310027182153045988117270339318895888430181578981831917844366711193733548960623913970581263842098165202568922113660796505181836457433653383491226382161867470909055988070612676986129799938530595156303118483153230193125251076373383120411768219804874398198591952906601788857952901807499433333381238969571996331110037010871417420551224051253982158535436051840217841590967140054615933699635000582414243888899103727656865654006095790851444423152549236927452175974208854111137413804497027028084337883411671777989347283155106997065025925244560605492099935599770628078783091032399300866285167888341594164356928370969419542942515918822422825641397802433191015834895126887421447735336773376109212117002817549355182665442333984064629452821525694160237325649534207413998269243915269824595347161770458434885268148270160924032855052128925121256813034319441041225596068075561359838915148621681733614341093350313409935681503277662284112665154310290601184456506926815009791494607804427645266159668326870521362853805518528837102973352397804000198099971820065554111509696477082275580143863696923995393714505387459436331563191161289621568064725318463525269966570073414831321920029339975060681773316654822487460729251150131093409361815591330025007852574436022164116067657390490874868514251630182959105207104779682226446150461725862862459185280169859731932891359336515913159477373137064743289877191567053620198771265364468301915443779195013897141353973729243399963074789434835831886250487210452675074753403050539289001163872101424921009065054164141061542736429182613171981991708475330447408975972950586493189500694846727087805179148117218352419860446437005074743607631076654744841600861511280148710525757464504662559840140592280725742523073007573364510532722033806785494803343236830593678164743359862588244905017993334525573100566612692581477394159492958492564175422598320451728181120793326072820477063241999269216572738772277472742712995979009326043993119522546145465135744438923712264416172031529448269335064884177844253588324710372426225914511559226740759479623766261849206166717939499916626094986440333406526821803689783045493683685255914248973513366861399019018926240645427579594689027037444185875863811387539145392982859079919099358099232896426901957705986266114121535343145159129614410869636528520677988258230451331758283823076688025096226066969614188184492797514441697144654955318524397253382425746110552588634957823354416642623616685346683393464304632706039667219776339439921809489532239199594225861233491350388554172245561807869982843340477904460149585497827174693754907664213186052297579617225389525594049918464387626174423426561080925504050666823083170832842524917049258304602035426327745291302110537675148324126149188093949047194255773149571817862586259194174436051414645477658285968369595505356205516618166504675275384129454005213872481804898322204412036324462507677766186022269871725845885322206719653393096265881844601795002534680421388596761312362087945531625574211644225859998505259037363554992229930248941181973117289611461452499609092130561962533783996183428610970329985017868543882912156969285271074973542853305712238924943454305362689704908707498180014725687410626546794651893434355253202466223336198824270691393366701074852968596780165907998356048839217486481824406810799307220915196203326055500354020138749071936221105261557036475854847276949408163788128962302330940501197173416917862789986285728272489071019189353334355022626442303490867881120304954506915377388986014386858684395999312499003958350761751252411764214456809690296604695372772193040809646820057376094252544721930501574117762011350663743592972450897352136779090734265612414379477360756095530513112596316851244180973066490103453466704835214299911743615319400003210714225448763503554947409791291547406274466068058231866607080771914591072272801917548942533311880158973056684710839331032815696516701034852316732585058164520720577445151735579925805854826140930958129378092172817374678889728778460938863957708838027439094426489208511580560051049485456799517175977806097487565023886060035238933274404022840280220498197639200975036049883984320858431591858237956711346724590696684571282069361285099078831649399330126855134682139908065398521734907935100218700500833793547517561245618256844210635200049101223964620280628493222938302789402948565376349442259728595883286962336692011675418577197148805484307275467019193712479893895103523228007345995305230766780250759732658134655948546815698101077614577809151921427657047671329266728296130797030698855626235560923976746037150542112215757759693602371555997031103836937634333264429106178451623406552723100270006438568031326026232712299743572179156262275529019691945589212101840777925817788375895903202381279320914983260418393550473016748723626905304306133880618016489933177217114606392528348361909127629573853305869756612130140404091079713993157258477304882153054909035079834749380133046974702517779869575707371995570832549670808733992683388086682549315344882881905330533143821202307189318852175622330193769783319661069522134186635284700480084702167467033110380165855508391892164216655769590610736039727694335570926878157265021480431145989751408469010339749086930580640985159198029222961298600308935497116854929332116247600642905966895899848847356467915167390205845407978412227926535797211515822390481192470809059668570606767931245104721044367901469095551399477256072295569134188930971332668948696102826068435331939233751223775232552266368187702004122791560594065083533271024967875284087260129102643660316299255826621466918280972397363679526045657235225652317384162353895174763177418428799743032098420303330095149486217447684351067488837617109571303428483180374688817574043737696240424826965216386254140802793455003190173996529597717422670928988179735884137270229573136218086516759390112457599723877229890845887846424254469406583534307788906505331560578346707175822877536795616320663465931049895225059807766385365972100225811454041757160003129622819057823432453902214962181627250466455083664972587865545211074188685218555909933777051903003432766038230534356693687227315915890953297205070213165364452784735697793190183101120056813876969618780133483540303410564507272666026841651936367570405077849989157407925253321572200095189235051395709629399877960575206503492120731327380367237097450559842179543101304058458193242955247661002902218866939295320610038038590891387315437873115583983571742869194754396208759049766408712543621008356262019346232762440727188053455108508345002943518617482093807521518723308871252738006643496973947338568871082643678268468504599564943038417242112932383261420084667211461330658003930288054735881093169541802540242882704961823058125469640817894355375200386532162406962589821824578449063301761793319399228754037688001077070709208986860054902939131844081898527450214219671972792452068758836897076280449564382111721331303281082512858405214430129125841162876384802912021302340669264270201739893167213418218953691604695021694750983795874121872131839247112791210331037512196425243801851800788405207346489462745332313580407105099296736618887935824352838018644427995088277404631461213640211913138821094424650351830598946510950085103399129319614101745068711692343091784664564531752776096960486464076057527826354309730622982462030522152677426618355647073522487858019260297155705900743652297644616007387941849228217384736549524373903273792830069701584347025040913982118339599512654649417018204599141298742623289486677207579382919650345048932311472795110402903516192179845580935328251876931625031528681030119875931503512381640951149729375928202456519751716733033695681416774533550716414353933240075772903131166734603984143696623558395171281877465870719850002853068572318610522040733709491169452901087589990650416681019641792212340186588585314834436600653506338571946279642819551545761906631940563295293817058608914643868045902480082400113224370562781308753191526001938334828095038340189815239398300101351765242213578002433235875405665185051974862866583536066882823638679692646660968614627996648716472070874444821628931925144229381099817679509155146612992874750423240241816539005569137361689477779986803137294342329609452106547012334348400612084926821640182871026280428502849670596866116922711116200109418324767384542573175000342264612027636939209994670386283384573050874432597523268259899749848451338725547295597850659712127291341240567301294614288285890221925667337200774631311513890736285922390885514102861197432654029359444569302572494828114514993096931757765518182328990645223184678538899765058530455751002818352522398891603022134010508884856481743137393502572175770524520499200533422104701562088362268294761761871873397411936956746285192796330954742716259652236678646720181535431348180539281435459945648964959357576703918784858247519232269422328607366294805637830424674122473758118898567823489613373930718993949068352901943456404380422985893070467371477334717086133972602113894936662958889292097931090779035108345624803011178239066091496727997968477407925642643109279173105592077856719699979534825422833746873300468187027615790627529660238259700523894832337636386903318374013759404882593939488515933652312462090220194213162882430935117817470752394486119800256743628271041208312360668832428516071460228333074440071257966353597480051674921645892016961585859088902195196741787646755271500564115714731993997820581531059528426562986952658349125397816010281018675767112205136282031626107658548044084622069489586448315240588630439073090416077943272386868987817468268860967560373162129207391681021230059441298192379204099931899581339478072192241830603117169731776716803507341547799534031164563424307830556679964680889424875879276793594192548389065207898812677308941158754318903382239844156433513525608027117676571284797305824775496582414558045408964461231772523288176265545259458888598741899430151638475712077141074044750012666772026181761078420802888502351905322776190288676730658509607259100964628678311487784901452405483368352192212544501502930995501240610162148676206663400726187583428613851562725598675082569119734940149846519264525392330370280770943548434994273455444824456397824228431296719503743389914848039138418750662149811167340678081410850353004775653398862402124338436478421843754726554435469973864735162649179618810825595158457555254816346355722698618890632351476913774885946873055777074205535380600282927423405880704876575400565672047281808616630336653453804950243148309599939510499571316936577335153495578371898051081491426440053529475777797450074361959745284317362052299583503954893522986722015610181369177210935955116501855814260823653060082876028988237772502299945974418588164124761735869445138280452361365535412727111867132541762437294627283489343345614582415973857064277953550851946541243744856398535642282087989391490841165642857773447413029820051594500875945092732816891934861306536518360128677630116330748328078233066086486873234289854517380031143922034870118874341927382363779937244995101001063651500815055152793598159875362470272303174946732960615531783632325024519135638293187899055155872267297754481289080075593339840316253251681623735974410776181866230460701372069172558601228285658669190866664355319848168891271752944712786609842579463865844372018865639631801815424763511781207320179508157197407238222731903252459985654582846478085142421503971376613248101246203903477432830966496813673167995591224778562009399431411619559713286937794107546035284716720023205775774104147405907967840974159509136168734299240741866871045294600494158317580895796508706355094732207463096573357631421226966107554735699755778753373361075937073660367935316318532920683339289087865029859078544416666649039691529580014640245491337891839707435807251939093468909203745246018068959556578028040448315251875644957215445387160461076665036365342961597969653678067051599748014699688292996516817055585111490088740618259994675925249103140504254217660444917418895052702121096313466690667770476236173443159249085724215378231749048912061839337189229908796792326117620363459821786917815475149371177609573721272836125801302230932131065070029612927001565705319576395565993126149074438847409945230751468330924593816865929757198826859776571527956974215804343334442494134603962328659969434869885268374855646511417960652901983756739317594658492170995604009768277007926927030200884585569642822226453592947513275379921536553102766244569228680600841232369326853755368422120018416009142085743428254518885895695615780853168197649574565915573580868364835983746858044478665094162370974065048709057050233003466186248382485151876527492972767520808551147301335416197676827385679381419156299780489938987428712679769026695339721111226680269685002711304977077800197116475586821119818002968595113089627743666551807712027082583339416626612349375166755632226770973125579049080457124348639190999094464302164775699128442941408292020353484480072983538398086799736287299038867044512977602100972045878359801692023143679335685030854825308629093374276243370785811207002348015617207049438295577236679463427636415150798923596777039608243120979803817166535867491084814781059685773917248723621643031591903316626176411142284338546624056533003293513253522889958226096446228236683055299841782617629829874481828046740755056863991369387259079875975406463868454779772305045046277257294585846424523178557946317131762399991313440920547497255218930243010461225675672456112921067733161316885004194230671052620430203095931017701531911249014219442082748314674708344842938610096566416512527684543529665470959109650918234784136574115165327988849890870171966770630823756850004503197842527954901200825440647470841244642717470337404029650283921234760465557034719294624499955073110917226646276372459453327634867723232278269488944002115961380259317988568927993463340128767300640708949448795971803701311776878478660373067126183299154218649256524453047335791046270828305423418570589481806252234742927051496407998770473919693000818761774203528564497640812081310637083957774516976019231510107923767553259582794675588930865740540559846503066206882111889000188187987607575193634075775967144272356977909116481821420525069759903830382950557342099215508657047316823564006334566263780374858652720470513660495924312570194345560926549364143223074805241173624964863009505348543829541573392305269618414262296965369837971600658163425029347569680009744880280355378160295508431889414169825896783441504160177641881269361683230855185522023655113295696182399225012104630933512889736568099903790623630603959445541272065583720324008584838428480772161716798993092205068462981714179477438338345950420903055772346491659578590507022724265189488202625087124059420035958396429387429590394265356727238882009116482018838015107969231338497083951084507689215202425798279771203458296525586390993297631146795877156631268092849085940015541136519397485505152390377106726614551320679561746269694119558703515185633229725252577922199368542972270327931622213086963740776174069009585133368678859744647254351213075971597606823986566405210002655079366833953743607965323387495830134840523496024021154786987021386428394115186813429346510854584855732266734519240606406116252522805524011334955458330350726006353206934998641697150784810347642484914332688907918443987031047950387407039357925042589719034563396156347319121975241562897718980048096509545460025917979879718133636239708026435611135173179551123365484593613338903954611247932630784877490848074288606724592216347983061147250092652023255324133436818743307783046502703085843486842504322303212487095378145406922526152098732062866636224864478723513790247707220647733656686400534518477215449673120894536426498885730876607295701152755830840253310418210910424773809577502557002568259619659147632001292910441837960666547275658918505645471012462430419958796983835640898146426308089268074271655156246475092067873430766770563112087086894922314937810572056622043845513005791829402846615489763294835498412846149053221158316143379865484463231312834813643053233595083426899818261728171783979187459397344115540463974830732308806440667320339668091200735628661669702994231339327326174739878649541815287967010559554081138188544491591247333324123243148971996969491476762020161689664416023944894530950320023887257635502155716171383555816260118763248752981294650532120525071131335673624159739585578982342580734669053571484279338096916532166824678036941329695830745802426486594261976987475390257039853795094379179964866190557337794666930338433132769471560091837673928269476234588848381854585318266807968245098939498873067552641301202557382719565887225497658416244912502028190475281773287405539221326486802780074655912974365981938033896534986244577100348556046283307450388601340597462129018213584036454977881886623963483484319348491571780227596182541147550356509527482160416287104779938240522192979791264798567579998362545224655909546927915068285778026141532722456773985391811828678281865163605275250906782132441876527857333769787290778831294659108698647484251063744705275906811396575720577576560191365911361263120957822125861571267342594368557674306539362109233015334652815177694802397661766427817207839535733598193371281283599450483273958599319112131018088111388758741805890325561318999074615397237495323882742019507190712289901196735070555508676718784616811222058956092462676269306328333951250204580940267502819344237664699878830624753267257659309526655645416279166961276806435810941752251012906002261939097250874913751890871652293041392410547641898693337350972519942805753027307503494893402025707075812666425189495811153812904863494520289934480500501574512896219534189780101770598264384710412820971025860061955975173301234563051149640687262665588287428900055970660197478367614045500115350298181841185923758175598945832969558559396607996059446181904137406235052113341464694379197536957822850764161344489051540667482344296946581326289877169731286172875574728848365545988720900737125991082999469813809840030099958665734786077751329069499073806915356681486137182122259548304972078866218785666896273098919938526662294611683007761114996345351523973540167829668677658317491360685889261706348682661818372956088511087406172635558769657242907690277592577172630256381363559442414911907826090032437331002232812912895416389029595969080034944292539072137091137863730600268004405627599577782178572454574585648352016901703802935103866362341393956854507668538854939008132008690479256853420916681448901650917733602045029551038426545472716412662916921990961104051904219582559689811297564520458855980112375290315605539391047470700135539840605444625101398844495130760108751320840906284618801757412741771041599241599858451622958858562481670700321715330008176444037727684858392031419403138158016099797364891871828242276051227617902348804738621991243628647507032302526052858041975664220608421665205375081681670748264615695351794362188131512981754588537055806061315829738299825479216709229517033255898881973613864257903086165238858295484028098459887545990870312588653712104733676530009867943440180788854326774488440351166344830239522490882866165900339842172446329166404528198803839049195834069075626106108894714933628451875161571695685460542757927861751874788786357242574186818367099258991439973019363239186292582496649547519748713734083912808606122190678490172545020753245122187027968004150938803501481022348826852632660047890779701822810724792458615269417438157990389506676344018271791885976142766157399008027989608451792589646125964929986235651050299319609323269252327523450231143545651763646238853432778466742718719765552226228427388813040302121492799142729619707658580389583363354332091727436228442073318226894575600455433082924422851528485108231055119368596198417289701635874821263509629089813846071675883490849394339693265733896253524638566912112399607441822123607586987694442881345862117130484128991100835279169372858463105615571225972629637029679800217355806872063060177403570144791530156647927627663482494805502763857590836881075048970834595471146015386516542014668506624315333458317840732692403031612447537804688530155473926225578691171496127329277860131922363253210943092681759016859390758054662811699166080474697924234721595062785193046901800755379207388372032604263891398929719378523686105619046540978105946340191238036160548587902843608343813861538112273917796985777142952697809439346770457704918287457893400911373696731632003296050540643717561411336132795584267822967335688841172254660534164750217815171027988434699655498706643706882988740870671393997114606019073275861406951488882494649831334124975622140536185810968231380028756322165530848650716731170754018818034289575074337433973211017214212275857692801346325321891205546962791620011949569734022886941967833896739269920959346778166304728416673644170530777677874216428265874036822277767221572043554478080370500628276502521661538326606556544902365355895827144600641280168443347271169995080712890714822147531939515519937719824927978406083027381483013418473054316161503854528053556255032163054255753772050153178945550772516493120804725596194870815380713604770352490351993756016506346850953497730780735412535110891675338402064645551672226201943280038202236618133248211686749403292643651159431878037299688716387499115076566045001779010841098453604443332502907111788476639124802066285078495370499052461824937671732823275962355269848103902857887461803453487427590441411471812104207337651323302191471076891003725958213228924236752371072936085502811893820900061657582358812207841573617628318216530487792378229871267546716073357047688744240008353072498697034033486185076816686253891861653184285263615946795282457891896264624862589730581711730170748035880856070667088591477091432450449762799636634790474166871240966825504380999459674534851663252331126813295544662758471102821788870550105046981590082764223088409386333321118173726865387855015747206683403544139771694653293129531540615969446535925266479958594422410031596799035072574115190621876931563801222180925274675546133890962625935718989899304852187722712034574146118528924362129027600823338106845579841252131678818848809195111789604063338878031992174245694554624141682042669466924033355257463775070781248239327731576902225963164371474546846051965073945357563800832732234565349717783187311364057801447219015617117431461378112513380430092851212827524904339403997234508463590183056031298845091928839732240813822830239478652809907485336107092537507504528773848604302980248188183505883124187923424358045186537155270066137789015429744928667405537936837132565974573377111433838856394570690644731277915679975049858808423911729982360060741972772954842131951346149427802663846027563141318786409990188858778178102151433398417777234301528571379049894019134758427400357706677320182790900879618564919796494028277528735103601325728477757789146694233359330191965954243007879948113561687125184176294883256918870633075688757997105768641133374167663125155771818214326890726174207836495407501541609620308158256479064514263253056416472424048441006954783840705068555071973521688814875550737872871818793638637703726996627812517767931559386165047704714602439391776546228971356928608754181728427429793537643475527960801855880277032798140374757376007226608868336501007141723215147132708289075702586235133081802022120970709553386861903626713993651698126673437688034550923544497419688380139731444209157949394675814641076977745330908891420174928107246223588517191336351486556115396066890626512832068876033233114242447994385625450021006824778505019243771896579860963050009315998589991746083939692129419268471460951189467977955415945627374954527131926910836712593955237628329607502323861803044775568244911618734921950111869761236464729525729842737696835855301542851190375238798773687581519235248756361710523713084343938399349642174540985469276893168461072584887355155869271537874469728674490623122334929140293381327111884780876776058306264591116112680602301272820126187311322350340069527378438628489658658684311693129907706313731570989597122496932314560576693659866580666304147508405271746427216497891921566137659214991922246936211319407498889889377815501238080091610936665760395441342008897501511476418269215607856018138161826436666223873763398080850541207333996998819612516400496574161754506851038396693568169857308895875185376343538768447214917229621495945017714526895014309295061788168182234181823422232589556444941195410664618245214226313361768977425576860861278220741557057328185041031739093450112964921494593408071541042116896080163129999546933570041641432173970934593060808878087694362516041496687204504649976488302796976822493448284898740130899054493919805851284093551834686038379759894774841385622659533564742256099653306652902606868643092106650365280719684729793769185457347202743084494224700503828214111257098567775127195002669931101334100108059166594023250516684989179593495266578385802401036947029320933999750710966031539476087344434968294006038669244234568383002283879910182136238062004665083515569070305350804100244440043666941926371448215987457842809096980735288707012937058420496426697570533779676056795015089487370507037156867487059278216431340835387018930159125069652905769171064991200484063778467905416434256109821762480471933407017888251522061660964237619268968092823117530939223245265692142395971198145945456963948570930460866894802574808115768951680020254834938214024280137011920839985239809119160735844304081468516979733075533419637367402005755162057551453902193909928751017042092241910835424259707211521306923003283034861361203462111556961845159310738254581958080645186806585742480232950864193476795556993208088604167507132776925153372471118579023721271622825761817930716246139165698476285516748824154983257137587091019278895553640526947456929224013333579580650493864212205144304733719565809457067090967277440891844084415554977720270633992527159042989684292884629786971090135104202844422758352156142580596475658764868069649136889642871342004734896857656790396648132953422142641205732802914935188045123067406511654312580702496252972697213715798916341092847076800259094084611356759887986927788849511159963424854808343009176388817631269515176894369148887758507450194110765604281621501555889092564830727760431559604579990078727208688440778105449072859114539504800870088129317882333908927892676808559215894432875717592675923034689125978879592065520021148788221156318593876375731805308271009775979557444413012081871686633982353797898145398481831561073759372290218653281592147530992964480256950986021971718242453784557572276287595961116292228048199028498200165278147642234274500191213834676839877411403375695944587059631275192898375640415580075546046462824124147142364850984004520878891785454149766186533478954085714719509486363662602531952044389714959822828575497641000431022249176480789753446364228591181535306076026307715989394238477564324097016161535431500582424293297226840315878346078577749659912700545635304812639751417472563696621426574048446623259281603745587418181924507673707914425426783961966366739747957095644742773138150215924373863715481197738936172452334776186916870731772151125464519266473773514557632619253612768334843009874578670275188911941929678112140575876176022062681180974815752211964084835991553873334139194230948222911317033150770051102478844905671053453564177663967643919079410656242751619713424800093441467488652040796953785349328533670790356212291366401215410182294850474065430972863899945141428572323245164055084663951094443612123188626554797361676136790843195974277687777651248766601152388973774119888910639124617116071789440677868676681421901224044597566866632737513965743947776693134562756713884838644230958224813198673103537437444876421677351926936368863059988519421756715876676071407210958863007702584891624296635780445610997322581420675482806992020584354686653982916976622787049778261957017032504896416862135373875286285884896363909294237752490187609340937357195113134726227922370780375503818620430893586356522945181353785885953087670638564949108248901812901250612811658502168426866413428844257681750050415461716754257643721698595789614360508886684317904942767063465693702296132246802986008856957927341860973221565197138560206388214722973645792269234174094997220480053901355395108950682179895566127758062315428347573565179174768985519362397299395404767119572959552790661914569216728066260388353284702990039192458332961038921378116424230634271422005734078231617770227176262563910059083175805805889276175607541686499744517477830930447088012985753033843699763650298690038692769158063988153208971590338351308637886201231084115913377024806862310821540593733962514959717063158018932273518291354246764973276831328514801829632833655294779890008469395082162254822739007500123838847588761159336486186937319949146788907303601634823355848150835710189435751554312858756990210885525895038666415000794028576743747931285058200042145770121616981285781501783787668107993759852440420683139765283438208373816665341450699202605499459357045414747362756044074554603599472733773993288670631599298040676923156513443880703436787436971070759727378228052178983159678169813810410328518398093981242448551074507429037403420421974423280260275807903384397877538864522459261832052116665622457762677175312344655217652469744092251463755043592901515489954803575097607711364864962845341833124990660455023001089118675399459613547295753806115666751788818975970757671858775753832246189283900020051797902899954525652734310427241215501532486194042961915501375693986310752941126710522954084471050914587999847700241194199786050645359783546182671637337448831099755491260097186023417728664752825582898409679317817330873063985513523028827809072658075163441979450667794743048525576874359559788770453294925188785230118447211714317298623114731330475908817507833764453291037167102244762713264478819079191850854419511398334786013720301860979502096885246260150689554990235684906477236022968189193779362449577100451512626270753237715475556727143972978480588234096807727522027025504452766779860984059100908769227211498126018668282538939892389978951380998481018670509425085263092910011851174089794023229879380024061008741157867859779761566887589198857610411884575023692299222671859006001550064501308615936270770523107905143579046601546394990727062208264627647369219886138220692375216543349078546782747479610480177981180863111788401270461323278899176428036025083949753309020640516506237237533382787610366652877647992033070221693665922297437264291044570219401204571297881538759282114564855873677069862164271947033488110900566583419893792846811836271024282433094504730159205858700330095581724716802007683883843871023287981074153915614231069723616700511692480122278644626466124691716466138576908710861055569161754265817408749784490006383735442962083551819353559383718123403036820811810421753961653009637538474679685690610290042939898656087152937489333034891001088483661009535602159874260721647241210324004809369084656705230835079011144105146001282297159151664824939222416405140748320128635582108441303180326074598675141683414108339316090351694272423612665937634820721947766308981469534677895367245632744802796315383942855889527718669178143054878169565974272734340698981177246430597245493153514724022968221443507013415876277364043564136282316683192969948484926128523389029632328488773377563470252339073033452161486904639842674584167653796437256497570048404203472082214892171185333839036879429031435000027869840056720490168812537192942817243006772838617766086308740470453295022698527124754534169633166695814980213951209799982098586040694895374715571670619658836353566449092461832701954137399045366695009114989961706671559721130904061519512759740746915583780609470571847746822567006025464266802577117341090632388381279818254052327220013532734513722597593316227903709387273906744332703908491770257296750249993444307426006318775505417188458139923409047348132019458341545964996441800634878483615496337776253950094151874532561076721076531330681067595219804912401544607746254352887121574445712926229570390857587531789085694427997341096208590170072417034023071394796977262221000317138089064438147105014440644293175144479081124685427704835905292509106143142383038085668487198835531031645295514665787930429134686119756561224404107362676380332594226932840425389585433223327329838973357061166037619607739285831590336309807156512663637631724777059584763171146789966488980847365849051798481317433050827630366247130408609411177898726429931560390934722371925063040847285050008492033448256285930949443140608907413062042614228656476663954641561202032927111634017819417162662553996221698792355936763959860659762169112012779532605911710422270276929564947941514145758058222329834649933216711946472753897029216506240716197601530868252136254649024330468539431692182825047930756763664849973688818622360565642215655529734654593735131007580327581281370406665292359881435346634448403716128538513776705707002682207540157059748171924741636517936255290069200802357056689006580829962502943008455411975219810622149552606889706869033146953988074921045353220591108392801929991155804092194266487214128644248539831676152524712220352548953354156193819702660746919284326513986042272677254300379830093141819268590012723341203211544560974587175186549102602077888910001650267062365866185250152100729727966303855957543457696022065942997250071000709874722949932769096431519031068580239030713392793531167250345196788354536129412096048940176194196866654200495448536875018793219774589974715467627353390664350678448818479774875392036084288665405537495566702690293418413899454423702136478078342509122413614104702151414011463110535365006651982622881382579143465930877509880988298024698055970532036197647048609216738400186583346044471836170365590478729759782991601436185105591575389627489279222500166264648401050861978349174755307598974237349312935701545457100207664825181517326511049294953884291980577286348576706502608315908022334450633578247425674590093626101215349976442708322795742611764693811811622843009208035336251855647525942697661942121795619583231370219166844020559745560236764032614338531632881848937173270509459009487990038582523680067106561718517776679131867614376069650994548894675979080147728243115150653473924680818619226282056981655627203508965551463420190897991095817763700232735982065741378409433011684016461159088377130180157146730407146984742419220405756974693188094439304705375041664865427457884292802524982891761964285597019445287449686649608617164945091000657679997127594697040336230031516879024424994640214606989671991766287331845409062063103162070276884738603818963313785409851845016650107384989971583974738170398163955852184615858566437057028784580664641719765003494484084417141231701207746218974380676627917224606713908951913205414822136120855183887940122178941115480199267888305014321375122665883213673577242975568274440923901781933309665318224366428675539032627278291572729352491079646889081526313036704134622050305113636907655778957781063109485953915092305234030855578456305482058761512122513910313468157199875575300106075256100634184325397676665867293820850450248366988360723985542952201825010095970704235578927477866649272110270109739956631288112497862675113635213568321500114794065569055891533008917973419529828893147380666527508554768802274057170638426818030305889413888608188281419838329755467351162415281955575602451776521634729896248248124960737300808397858351749862554177263143861161300831368097871155532153553325761477031353467611763173321094059953747291022128871592630129887048640877435237208206034261891347994667658195541808365377022757576211640878032595128751483496581295599735138626389464784286362994017154398562467593409452387456951014453091563274803138474124081957197428446634541744392162235657191327952383880011417505285239626419116669187821600524987238703418747419872871548531853874399568528310226481765203432944311021812741968518004317315085795834157690507172354017584201918626312889710544361944158015036555252943056858617459441394285173408211500024356047536536550130131335687122753582679029023502575384697636002644758571539942875213753163841261892390965792525955595082477684504276022043726274802652787768776344375207544677289363445054509538511126156462647415382122849063986039928251794369951137261947726489196806242824305926884730165217705538033942233961164558684389382280078161625642802486173849006752040646146422469118907091726126666070603664934932779120675612981390485718603018109155695023242156564852575292853705991766689674064580671597195203257083938503124075478856214312660730510378058482436450408895853014991301777391688648751996214770532469768648921040521718063810357574331899658854581544553957753995196501707098204967225850919226584882827362208840862200543954784224989447945618486130165705907222348798586373390665213771786677650225029688594643121015741698465690202455199321801225687851376879870775344698502403386787949522620002468631366268628017733305053174411172544159038239600443642495333972744853081881494899136503937081222101685089877611078089395666506626297345407263424050023786527518080574893135643006086544634338112903709641072385560994947405695163463632525647038240662526997967143852233971352069130330157150680955994582410314030030770954858197501236200973582184020970190043298462551974215839763739214123848724977495865618498400696094425878853588623459843973484539324927134637339551717795628701496352775592149352551683387686998346628052422358070473471706260332797712247876838580727402239376391006297281418047667818597733594073841994650156080531089571638095115699553943672978577427713293187172823702606629074133814314962611766838309396294683637982266484776468740634011787068927162071134940915933419432065703607176520376093233288856329700867767050683822180708654531626254819530961477602735825719936222810230587824855576253480838545650350411006131139861586273208357336178571760675173065684236134450533383198167055769390430876506715992323412327422438211320360959957000718078281697736343630306081286895769151053687111013140336340903123075321214737916044501906696775653055603322698265129037701089020071296972541268048024893585358145188551135025793784961156153326620119610717171636805226601701378141581095412229714745204891460911197424721440906797464698270292065715487956228599625760378493137688870921084460683127944367414164795997775762688651780877954522594130079007688853888914795849838483369373263199082077777769161866389591458503243148008386275681748954998726236903120250804739744266681601216336559667597313337222908631659942606204863607802895575220871773610724907899064150383633335581395815932809142281332172846713636619209139077622408660457511196551294237601639813910438198423112504142901272020798325149013775560214578443124363620606532212637709367982624899482671523057173483798373826238006588052106336234131717435054557175725680224774944495582943919463267850409837763166835450907258889661039049539194507250943414149036761546698624304367109796870074131296201023381245546060848584192794276177379263167717969622927320617193221932600303501131139651367829451413688185423496926297733143087277972732811670357342264157729316345420054277863160053342108596318920460793016091307400902920480369313590957128310829583390317815112322843058011734313777712511858601022605170752400622895712196346390549266483311285925906680192782048731700510814513598574985364664951779476931113778995349646600952014491965024638633164383273032317060823405876497868850040114129859861281352509646639687988696395904611907178376088067600596955045065210108849142712138003748508940641933114044137163662253460618694658816011999496995155719187801678937052701958799248308327789478219696155681628681653494261697058928903187399122179283892283425085408469548526570729465088139405983089201192549267537037581475681945776866704913295860687222823968283098339058748834208726778317823995374979050745459345059489992247702897172143178905066864438752501947850429411047315398386562349640965666982506715235971752387992361064337799627853820046591734435167301656939342606566973289820359617087869270698100950463668563646428084901841530801273403033985755675654970365207178002669299131508088266819550221581559867369532216316435706959529152488763731699745060810357035916403571604529106255967073549929119523296863731553708200900211136899323464484351682620134817599535100653869251443047914624778976862469315579574286293520829747146393571788295285231412333607550580479932728514347057292979307363558278847609557797706769242684665655710219742668498951229529235877213930074557750790232919288928187384119830783284023770267468774542061608169571689455272701024441315926391183223341185354837800301605057420887155507496124722567955247312093849988375156858685834025002936118460940869470087829049158312889819854641068446876944315639909386332166676170310471995305685885022200044953949618808974926943250682778124572806616674734436709262734775077698284372629226936518721809984100404362603764181089205733034249558144405159113645009589024732034999536069503319804156024950203019688027623346671089836892891711402331046921784179244195612018405111360251102313643019724913563541549714816269599947362326421154114537265172860216070341877284037961172547472689488981169602498702325238144270054347377655000795740303163827838080075796112214014410820935618276709668150288647335129092778784285497255047830416923473338603899903066075597323154184343139878132070905609422542069568571872863396855385895181647470062348907412536051546287367366308468988040333862096060847961144604059492005774915579626892829586668461926060684129772307543557705676757349789888093316879413928939546876774628135682321929663574359020601343808759619421420750990751055084691221883699627257226200785420993794099338263497215143788899233729100896425051469909023703777924040005455700082203844691466106833622602277377208642427083198998422869412874691523515638544961577403390027306814082953932495034960115847622265191174779866917492925054119773956804241979072962770000025604732706268876288517255872527493157902339241381144892224121429200113172665378567320191742930422448649056889693228902387077366805861567832199982018327147796027281503145219397381345860444665334361935752229345327905311668163139867923736938935917119011994159285603428867669935043607400716717763241863020778961580526788603715171468397735455291777292562716810721158078544678584759467064550020696735347595601497178786013621436441104598979768000432712966807527295835580283996642721199487651074042528561230902933030450418637879422052262401511095480332197334035829017917550939646472130682621473908610772206806035292411569821879398966693626798402956974352231342892283049678725178346556507083204489280010447074511059595217872755580063640398036750139070642000519526744030748358543690325861758713957853272746558673773748512623501232728059444243619046537132031508049726795490510095243632222841620505081762632352718255207749525587275947263200880723445120042237451172564767693449064383541004146045728963271621968761921737503427628030467188592443405685377295066252400545296932463217046191473798587020845677451088280985432613032559510493759639579931363919137913955414974068794571804870684094999714004870859922509368515248033174542755861238744517906708090651389087888424935487524875485960377251782915715363174691885856283711513252754829918056753967437772734877311351334821375049151002829486599739277029197793508170540219922573746968820055352332135132315747136544042220657335093342042480680252682712875529640579382971827911954207996839971427375948150024397247631602124932947453161605761525342543792676930792910610442091520321262330214725805171222722860607294866022038892965244462774871320564861113908585851292127987620006520013476058068423338774160631066646649160968524340413993800043458471658207036587330427922339538340439846485436715332539241123857995001233465190281288197921665402098247549662887444962540229900641781091136162001371386455664227538895287760228442085879842355563612065717506114126527411300378045371777476408656822129671806247040421346184203195984220189434111974468019402473960288392407964461656064921976285725219317770231880066290828223989697365041458296058521260625389540239108775777813561881362299925101828058952889831808945520451616990543945141513946268385929412680581275369707014791576420727176650330598464413172426174231018381994942886835495745946355716721886861838581170311562413783035973060394487992338265298380169716052299280051988915713066445967417318745409706713839348193603608073834952050530817657045360933970601035252978677010221928433309153496327938644378675844071789531120693307645452883585091777817899077690245976542186462112669027815706135386819497925975358553947549270446211639974264609659081169212271741457943016778570196500647267992217238421363516957975792719653783451451669436491012001931610041041885499097949246468061989757189043067275342102094339585631731649180513506843996364607187532454063129939459843786846544159771742685325755396880041487370650311834423393812857141694905497870753268561389081499450613589767013682199252044934765630021304672892034054121806460012631891210502540552055849860017731849090318212238343654727742758459701049969599979152046498897956512640266992507879508699665525601019793786508296255374757594633220491893294049386807932600574489233974035314073391935797868274423277598669625932886902987290481122658787969646463924466739445016905061350078445515652262496859879793556668754774972191837943406089613681601529118674531155341032688574543349910775863435283531051725203511552845453714719003100897741812456917748523393578350380949308543770412575712285682690245923857935063054403623901114335783982813154052675249985748826359762304664790150959994034680715037041417739601525403693909024323239575305518922301080042290499081171746011259361892326153551172073873015797119811655653529194179808463808179673808596240888279989364588080978711849102177350454464808228182176709264263148122679284032219939959071947348167371961275084788646875660008891283552593202360518382720210069091608162263668966992420030583703055956848959691237582593510687869885944092314971177410732255245143553773426894819286468763002543406752978166096156369008481106893854484622440760923561717281285359693105419674356840231313835822394776870404267207293077490811955357827823912938449127186601477554836475303397282603722824252574525533756983804665842828314716185334746159322002206556517931044014134443106834378847346626412503241421988655202961972999483554031055696565265672979976671569289594376168765328371825831824745412868892785093418786566144565815725882911441247367198882875194893097007726065737349065042872434695591552523427417636452204942492524047824342258857530376670953864181995162213573696078630341333625324468691745499353626182481789602964708132321128787012985518410375071881596916230414931736034324456903974593257424797017868397000866498578148407359387999358062691508810084382889229498524152189705326145574698398930672698601460609887492290399618157181500488443845285911156650121137966558950369003359212403694578910630540414225997179647122419430125117522200822898913882359229756566791453216601955287746966384462394914164689771633417214467655737889726687851370582616108533730044879902076345080289775249804717595769846047648791310566464109120478263867572462759495212022592878535664263725683608833568284803006467678598253262028518103006158271762375473200670714111956701849275545563230386054296603722992844969801056812811128064889070505543339685344517178970092933390364432980378760913937586043721800797328548591185733425693995676436909455594542943098029060788254629521784341770245622286231308733574579851821922570105104499125284440801547183874528088683135805732037812537959926903328911253241105255100879493090221327658087910721976954643674890305707460037633155060588646885160313234361136830590089814319777211908974110486755100175780999276054377976778542439683273865140123081670487105456934295450852008988736973156931911236892994729613005955276183769046451437724006405471520669558648468825016573311753981622878086282511283305093727095321688283412023271729069856378378033946097967366280311259101302938622800416973849197074171188259306033311668610794425064239985478196793465545386346998264496804600967437324918112056406522237530823860069602098027738286829454521411908105590177846028115645752621549096129516197409258704454300372663220156332969271872464787094614255934879373827461230586730719302567653448046147593927732015848726946815063947590188154520540380181640017717453290625393579706938881344381391945363719062801614188272776798407850923862024744351330917483031517977445841348206806044294304388727041658834422097134853108022886884194256493036093209430590543660697863609844749725663533671452940973975129971615453998347336080886107745732309922399749996263152706926664240866440720820006832210550088576010094544907156560355353413517775637443673485593531007673968871608322746131730266242116855588872506165791922330931375437533131859645904885166735695982556521973445394273743687787141857316711003447103726691039687699565907966955105582722007200253818556162521974362445850337980415446875006629637591440709122444634245222345559665658208582330200821941396159001488983470748795248515466468251913603321977016136142404167719630340425637143366340436885849778649167356707431475241097300070846654330829951208248917229867495772709897842446080835945376061942551465758267860454561234493589206096834861065284835992109527006753141842945067395006999515726989938964283721936260522975279106420721990261297316184723803725253880116051144322648161845252827656484989639997219894945181318233594950467064789366522591114846722859439940476360160755199508312024334291253490345261416189205518972906073212237904896050380018068099476614786667698253453582282972159489116578701235581546542759226485536991993193807623580017046080284040883988024691665520040459890871185599871781782431340162183015057937404316981153728674862564423389997243855226781754016340440464998541805084367577119322759513658752396558720125100108491168005863811263391236034844917311611999361070959782793434850624051334155382567200037569357013402503412821092054870262440102583301220788990875963990819176986313580359432858381491700978807775794113404439414850934432749487980494399148403305914950373960183654027352422607858495030331332929735042524209738522762696145309711468126671721586306526272796003188911049411613345996527421804883952450512976453684193297661229879250374203730460533281790942974176076280819967772278250745967748412070639610591840934936519444549041731589201950278185866256758137074219994627651911385615767093413376791508167472774070966441048423819824544850094753141861013963118628289399267963843524350273615585204732330660613174948882291954932770923163427938468225322036509684255744251911003809679907117945845009027251022745159099877353644063893749268124525523258828141637341943770093214095556883650344874352500179133577424007512693343842980626219527841892257316296435445052826910454033979059349873976584420105122070007698471501330379527269215388849396069476933895719262788602917686657691522752217515720545825756884531952352075050877337193521305765222429963576038747762894331436576745270176610698368488569922241274306074190535517498144746795871569974722000731178164631373313332431478756619555396739158061668902541368217191076898904706748467803469521781130277539367368800255973554084761689169602165145917209488451548003544940831060100093239028046972004160057625266732961515946438508896342578546521468057947175589666234031312138574870177830131347721361012193809537105696614077855603356577148902627128490827734032481781799538629398907120327036244131096034942422734188986351658458578163779162052273935318793001933678786597949167826139253424315064925456164280706943989950341909461187144601588138911579126251519364474977539180479148729977911068875763758075640546024101537844973401403105031856284184259283656816070124567948044208858621841615468226151702806628229272258518181042625804880527345573613877546089700126544974901723112514335886501767769574063129112503583956125405922773398952193212754610698118201854898652228560436666541505282281285703584670553815012002846118431979868959218417710507227531480762861523061616316971690262350320654668267053547492401996607524747537049237838128643248033976630564476577919230077375463995561320671388106694022872803523671623695067891338251187439848273573960808168126283976420742778837920366257377098831882514013579002137204928851496990597366351921464485524478456635933643648953854273605735166174895602834530663975857933266293782504167269774679400054413363852693685270514901396695047036631498625841463716828700313742959107979655312595002573860819322645938631422871183546062691057808744285313732739684555865985396456345491414809863153886438960952706628746310113352948976481994728406709111560430240370786187702962131470321079624217267758541861625479621459507296195514564473483442768663361724356675810609809066085205592294916333744768070270121068388618423462845511338097114573689178751983022016452908416585708610078698828261844555028556060908452009764818891200079932550436963585367519618942449109389614332353185473002443832913119822223956533941360772578271773855103195134378244316585935748198942051906861098671872503307621518500885597170575623013389222022466325432012142216175901740878602245851795476648756571627710493713711185450103157303962397096983347281919264757917379969764151586306212613433366232705257274964179201968089995630286101284392101117847993179751458378100119991469637568239267953791487311618370206925258550167112949017752665915488018841908387136412732202916189180322075357132356664625730676354613118553733890526801180848053647910841345468873070179210399460366848722302085873123632872500002303049360887429863827019703541620922792333842721454329911754322539170545939384445751105759003591906903783670244899041854859682884625088392446008233847203438819273219543702991814825669445192460775656135899254281714805936181176919881894214182693040391334057257562344474979480566984765054308628931834079598570007533573236725257336223968219986682254119098022908211790308696029736721762744659013733963645214088182061389360463064870524875823107535717056277944763503917014603217541705975836856616119759839438948066489944595222403858633716403262746920030786372937636600903092707828867452332990147319046217571149796909418110505021052226212858789880511300734854382086520168135866475112440755805849678707878226385855830022443316531575525076525014437444871936139009934786590295012145184447159906488004064390667169428427593329374224619182953077000949444729092346839376946456412225695134186855396668265346937408894182789953186248038467394881190434604354868326555444711238169199466768629812966000409304973043034138492257775072051874784142924669200826734886313391702061382445747575781683537439821079485690566375979704349579566066247732643340165406500199428348866271744297855413652692702160951941351810240784188358945901128559310181212986419848971763501821656383954275155521242250878645471949692010728851780833090716172530697953155358863590525298659692834297947036106480647296360017293965467222672136846378952822834311736200769086912908646523884964421809175689542575684628775062188664217065258415813381817696153545073177036008475773181299817124526362119222465555672486837158468970511483543468742311948883575898988401138343749222153531808563482931503115525800285824024851695445807493671516948865036277389346799570988582004677658006543839122769551136364188684650069840995760084754795192088631012740709486896534488307460452591607340727261552983932171182202938788487719810116372027838880195183553884144975584853425631684792237867121309824374728139192262629889159037212723982109608869205475828603540806945938833884088869160159894232385796257685194784088056531683978608555253444120245862370453455533531591232468235442601193400282556838660272573848141796452803812312072866264633954425737085316089744504797359943857685132014601751358225221457563689776686929638189937642827053506094969222599818288247940220315266635466393784043785518062634670934684195692034489129963742609941663101728593057514707992556111001173713063026798650137443375229743579375792520080639405560747426287015752937331840090375893048332620857928152950535778219640847273117136275858530597320706067818641331324805204123993914816220993077331619449822991767833570311843060907241122345580279292313683126692430079997196433382627478897307557882084430472343332170629621250275610187470499421216949709970699664555892054940810686098797812703095072771033313344357107272060426120620894410267020459254693243436043467079641122041559863613314901198231552724420250843548385182973946224175658710913314363241304914470033264526766108472456212379159265510496134896251058734355759149230042212660184902964957706944252768628806738116549215588702986500930132594698812015626672435186302663224414460551083845792299502448872138551435110939607738585435230754985490810281087424751813976840498797036569250838089064346935415268560237724685501127165250357428418919487461470639746541798868016377879787864715824269890428865597665947085732290994476349925773921135318182442723046301031974480013581302989981206807603350964036432890646448388141721415188858273523432116334846070829363683510240082652765688637148607997125721260824700980792145808365267945292672983836170328334091122809565532551834632018217880408183186221683625737867058710337988358240527328110602024189096655916308643904776622489540419878556264972175317142585117701726964069177160314556147339844512158312791815506356517155382929052604642033262774421300520690094621534764912814282180257187432582142790660155959910948115258203805435444463282177574640654465730473135036676228483518258086144701713561796196206954062614809384426188068987031772925081104902448378023457767300336941736811076802056401073076745620760062049156417908994700027912159050364276277285443447754789398409681242678916751245276126368072235208330109401112644820557954012346895155992868760724067357177716123151171364425345808816546427701554763436599317363808183003715652537021378805370171358218005271618777544206567475538632692695857621554959245024143745378138594369432346161215974369342589936098865810105547844907934446371014763160269076063696894807950925456027280851975734714112724705220296706323584782581744861758139447373560561023888315515211068168907105155916816465012914924043111796065019681126374055707512060740465293521213521225140705564813105424956144598578114495154280184992638984842763050219927948406119825743940917865155973166043251460002425772004358933746538357700621844833336862024193898246948712399538966799869959365326055106122938985187210060533102463020762938274205724323487719148417165180524035100280405926930269016475860677374247054647687878772795981426397021102180285430526576498392130474169797830951246183806621825051504260997296997590112298640554859106384372857661216814258300091877187931774909402549805797979556364455284512594156311988904733780527644806347147624651342604446984016339497699871779954956985691076238660586408688142858623381240034494008931125521928462116171789096871755350141226451944578643409842609684326647073563054124733177410055239772452502498787341666307250329749314978826799434538636865760432276357284509662008748850537124758307445480812957751304888181395593300798458769702966544554660151068837396100614535791006910779802391139610547275632222086097879760295704762755215578408106720594556409186928901999251913740619149341944354172099382047222951428582855789878166688494383000575118609892427849750160308873526861706508614375125706997877579358125201481433207445902374086461941509809707091814956124877782928707432285211252007543506618486311548446323681588714565114093913869430181683174377009560085863119321462036876632208671840793736881485595373290816795759183472463922265537928997695667789710066461949246275949990171913951509562714071980379941318857127267699002590509702907171793153717684898264952946822680420080583168857189339138610896309625033856555786016404230388063616179707528080688252884938646031412213656752455384224864165514499880449284081270651096004922173172738131946772185449158881624237236614820387717544855492474441780800758243169551161166096468045222673791130155147458123734833333517285317454470302234411596226069060088860248687335665117968993628593527077232362465908830905317897219075853132169430229538972560608791409778589321499190741006099929852605379263344464972368131417672460868811427972176355684449012883583386293815232551080671231410745226154474404422211763239424756321211534052109094383991765465207846569313426611677572075079617357801595796369685345409026901415439372786020069181639282851274011841526489078191833724836327492570588011581362844799137484392747738414618519137258337611248634514341543455458586708599416539969915217056863168268450498203440639384435542415024703183391510596347489340614363842786098984983804457287171192998182620899505793498588110238249143949186553425274009063098111716738300091880852008085755988774290062415103256328647756811110566865136359438960867068600057220894156221949072677914792965137581903400160592792680676038739435938553085891645256145762046783900685100189373742817595712243735476230438904777238106158734048428838007062976689929323156235024600293460473896345626373094326421715420120990789832811083645333287583534642490261256460439977947298123329665090340036127247593560950702084577632971002378192990189416310054000050191751492696673735970494802620009836361253514997008819203796356025367782267384893312320167510483050487916953673766290259905213299006014363453621247510943986705875891846796184501080018868112220931579588686003921777868146508067492781881596026698816374477365876094419781553215352278503738984571465637030716384503124886417379454483046279150790667136715022638560014639559305061917175035516537070536596860978731428972102474003680927195753775874684553903919521328187370916285335042614510781658064695040898198170922589831282229451357114000426194772805070872919229857605189899561084672708734605196086928911085739402822333611461632851222436376912734216620704801949066943950071737451642808354674552725192985009870644217765599688248424698924894585080324484773494007755290675518056351186191636521152141467781095551886669891281369679538178949824248099121084320474404332781534963136100777538810099785895926862435750445272783335111296950396931109447689499543238904562962190085266202903790468149634166963422807337946002031767946259445322445554147509687866129032155487457900980656086613884614680202708144855112173869287491233730860443532310812259124708607255722116080864726320047185441220227016435934945160155610932586042441189772020086413420441782107587474842703202999063522843578392976744829095577109184191877881329392797221971924102931300698331831116551365060129224079510907095467781372565706794263062871812866884687052444672617852522288599910844149195106437666579105166624140981720472126504114706707947547256700216955666677365430825942620745964192799461277313721683581024534683350769227632518823412303554473503083950194792548065282968914843344146210606138143936603731876964452803777058541097211183205594798981230407565689104532954851701697843933236054849809467631606158797171725087728429448347609970570648342160501271741304141710070734012303070474441925982618945062978659885304799226878428110728009578844771343751457284392019033912755807634598794428158878550037859578573371702310914996798305791120602123825646457714881369754283353402526143183628281887506846259882855469437991230590983681550307962243088271585547075736354023170825877740529981608083921039072388484260160715276862371795408490877136462807789784616248042711480882150021444774402254143675931836265477711311844808823948130522033261286692684514919948269919141680176496617036910788257783919841335087361122503711716691275564982237842566776376364272287847857877685118054087024578007678995259238041147476794953660443212715000669753429672886861499998088686270621645568077210095556379159062165067549063963360869501781871910614808964018839274351042565591175042723932858656835557374164694341298313566806067707392163580738417733695255333928956152617536859610069974564920220548998442303635137308236703188933438866733542257685743818944254690241596823799802350784797209182510467819254918985477695992904284926478437084821557628293893495543740535340185331734818333002443008906065419044821362257966822330018655807006020024844611911210781817677517509512596587281960210127064211777681571436757223216781430075071546518585035507561451553270086321887187400926350620482302011996696031824891849266960801695525720678667017446269289069347084709895660180993689187295672587700700810106029852645835115899022506089035869274929838232059381182477650285893301706565631652263399139749357777760045075040263294942468718267465965309444547750113327273954221842391443886862885622226465847402714973157725902035767316693230108973521997961518625417112615224281967224358618871357206965107946432049325393168220317022542859116709799352308992138839571539460677309074123821679672082135354143174836828707757682244454524306397583272281186066341986777040372908444915185394660709685676260132201711196792166518653250826529449431990250769509506774051688488054894126108805576192952207390368806890218001666064725689936522326620791281834929576622610131591147243059350536667660434204981343230965944910741267718275906050186922047662808850924942495318169712225137839678031163499804624785972774538424416499179729465507122444403737602373562355924773991629707329440924394755251638820499755984928165502137518868979992095235328331397431200655394744332393551355964188994650146306462931542777593482379585526871062759834712125682903167017585327688299166768022014981852523227254619199160947509619449084500751555889449702292631124501860957554395930985228641149771927114621858276136162218685230651821971872419500822909741786344661801252722775951485371535881261920217572245767113315113818430398275715307535970598901666697716127911173132815179765318885010952129866055506302338524614022936963624404318308304655816669076392967031248488098921238041510323412196505955261905990442459913986691733398121648509624520266289022071704643987982685047801782658653871041271266964192027201498860132030328986133168850526719437812949026478362317863721465248486452842938611197351295888629826478286457103464078996635151875990713896097063422096531259860430866690338771310899962734244984784523307681580920490673954241675818759469589112743255290366512886664784552871073287698146272741171567202078028839075187720810939416384269887817788475335855332792581546264515319134856178675947358709479454510972799210987326759345531199280229014610471540310525059807963492445164424119621891789137714269351824747756954598334770660265038618348701178198489057130182435300001798779983749579752619631838808403400172030369276807206635477344071520675267153216811706204611852557406111339533538289640538117797301098349767070477685426693422381711996813999883101173189317204933577798699866746624289117675444161447455204636392201901854612464046539281401753599493536751110950539066436205633732129012260246630261594878159420954644262482828034707500942354664795039770388700513152171262831850207084280533109561937182675421363730182735910557479365086976818462222763327483719617642863620235247166947875473923967015108326078603327626350095187668800351165869608293930260081814605151222768172381384221932598013617215666262360255331437009753988992688427017708187979488982905367619907728611775787540281994806107586079339318320229073117792703705908054264042128902019975008614436211437402116215742062296026938319941977293973451191862782545961724226498860885941065992431524029401300391908647264607282876563871336851971830702035283368869846811541760252308732594364583860539245673115366558668742708216074936227845838740170884030614001569213280621076402324158699841228216456092630638346147738449259840778576064132717155039767766187431892915977264913186310053422926268094093576439820457773390406438460673013794417434260864197106355602961748264817503905589031629489713331201369158826520808691875100295417972766730221471646951784844894934477648556812164000094829575022549548384891212501603095713574081715004368680685169652706659155751165891425133599773141913584114463913401124896899951785738057952679240825236215102918358792335702823575936300171479490528610703883293481633811748519939599167099826067223591893706592646047802695759835743583500212956588215899501704011562568675889349690969173052998866028658008256220850479506302033222815921619391112080034478227664402946024251550119452000559768671273914668040657462079242332021289216072337569918453223558489681391578835494450802722905454301654278553718476349295712408050087067530478018812753088639093650459555484375783612089972823811533014878885890918735884490066777157889419818622595784539748881661904615271614610822915836850901426573112803634755259706714461722508170221942777901147576377099144471086158165530081522232710337258042786581435329159605807346645069399242818219276755896437876791894826424115447003408924370331229840509034897701977162795580579064465037774038473960915288632032339677876332268068558192621372975437922919181108517711072686122033779298952391526785185995920708157821690297592968973793397366169244103818079632096045730783748315525210940661205652753173111379839515177969958110433989146995529201276148545236577230618402619785959272441937291734419730481118395908929462609513373973929937857236501319888482523828573994956183998658519854232778048485755996900455000492523478173699739291739050018153688158421001129021751209937890915940134182687311793372538055024393271818253179454226809940972254168932430927891781279362119425901169297571286431638829129927166765699907909694871834357109581124561390277635952721972823097659607582732415753735305163247529236108563457512223873014128173016182945015543899868772173468190173058226226990316632825225468356926754614017023646288032555344228294743357693211064761761754404721075671701757614530113804245031738721523975728586140584404327102765656745115344348709998920454386028050761124580574844603811462501210109193824042378203844290775317003475949175419446340770096816844521392134790989447678211670502969606789844694859180924514665568646274259528551117155394219937461557911847390048015270630663253537726977215567681387111796856164477818079832904592128682689787613065692037513099231977667008540254669649609059563642176164591031161578169808090449376763496203772085104784774771781175095186545786353680941152510196438550099370634168149191014798900858140266228805758422281038156964082442758013353689024277091466204863476512965751376675351270016142704281841906814449594480710011609140122683424794224730466547394829044698961427791541562024362026291358057441311575601182755471527763411110437261045633725549999170694228297439056320549772598393008597104754215927352226991791081759521244087357852361619643266467334650713131841511190481522886552640592654732405416028169488996907565733940427966641205208401044432987322004805547465187887780091678151513545681557804839265599730296918220908043933214294851881747343394694223800992165417145420276194610426103249472854775961233699508229169113245864818662420077045214130423018799708404640147745833261970269033855207588254529570001543771319276251160845314084646778135022798597406041651074299450603691891365654359478510730096672629140934925425617263627406021760252402493407481536282549893925090636953848839617187269978635747941922887313488874566532601275310665406381848696605965322743651413871484855378264539766320391774895925735338131403918810727283245687388613698321667801846085971858247856126538680102608643981743296627552728260981518536461898486374269547159314964509960490167426381471027164756001830865081435347851847804708651765637215848013884864990545449613842079451514273364971014550820497108003066185512645577764427133349332567430659353182572050605477996887179199875361640086913904978271848574910662516015780127920064604177346464585187997524231603673849126315827262791899600501273387494836915166800845790672189653652732549787968487266280831255742614976006190909749579587589953660038950780337470221966609126864292247803327559567844365420038875435600513983160593774416391752855977102898912045174182598376626861515967728820771856965207034797479570723592233491843439526741896844934096936668926678683417280575343335922912915710945480475161972883560348129393729319832981864472974666881271217276341684342764457446215545987324474938503857702345013574843959171346025612447036545240667861234265307617971009829770035523827023149605147015323294313528576172426931149410202194152636400706224191405040110193840643171172566021830179503120065074811932272001894065351731609721925533264979918339744160421563964271352476709105694701831750341489675179311891239669669572404037240019318315689093851856410350049608459061793482504396373712193699906649873160752560063019023673641554812371306911717275848701706946519427841865490058657265778552456292674455189894591751708650094635806874388252754555375809733150628463984272455067281130455752178488398164341263602685429573157044340005428209159870141254676287588503942530737262660768590212236969847478461293186758109417680216245431072491452721100151089096443722533471592554485079604028445548394449351513264847056018004887688243895717146739568889872333568976101214921626843129270800345315136620419112374184559400427834956699126087224076548885990742591814896272924921971621545534974440815760016159558621748629719259429472004946163687835922920118269791128821840345093112965866164535929291090581153031808024980763614811147470360119664567262601696220127059662567895440169719103022459010865027538931429664611915860884874524597820089356402621189076047280899304466165352966482707083569144992240106824651029118152917431402195563741631455335948667932443519288460111224286939045041017806735501633199003563302818790459933168213867612294399189417577232008066234146451720978714351507117599215360946635798359676429493347819199735417365744322415742628362804825936581743761428988514897891224582628747388846011507270737314787957997423205576092671283964706420332258681460988595213731640297703170028938689894937992823896663717340993151340962544551288364552566882552937663696270878363330209174868063166123275191667742317098374500590957060218833862201835301762860404475968469261082464155380347409882694294922549480515662378701322870483059128627049795013903537852736768340055947002612910822388807671184585329016480952712640313326738548174646501107202537749586190683191507161464348649139166451675853372139502547989142947162692352537702296471591525302259292252605437703010019074535508474668082180702871199149921928976187840129933922917410056370960038076139636452328092318985432830846238913036425530011648152251846297699643882922340394937901914951661989912368047639341416174081097471793632979552520001956199450337392457418232802391042183805215206141457305706093689683216584365297417390812089895638822674476683332497343945548362568964021387088647732603140696339126608149410857652028688618893283903648794422659286618378581771748578587851497224158560160559803559973160578719100344019065527979646985042934765333947313122086051502975811055847665151760393362329603547397240224012514422645330249905389086494646025251415842810983300945574124277849384374463271782512284684205314288401885256799053287529823826793614744394442918850543376929134983717832894982574117516612288147032830936864167948865976014758783663714788618093804411612852440154120168227327408751877062132456173371572226679097228300045498690264383641868472534365863203542217038016822645630475494836386433580524419595321160456569083586229498962620837116755525705316059437964034505054981507622539631836419515789679771551149124320069789819646823670784748994148173742133925113948841489490750028013652844359770533240786308940325640558754501011123191387399041275433193224936332636666208437587996755461409638083965149812008759646081170625028893937188034601290738654639768669303108315345118334643028754762464898249512012684246772413738235702009371487866351143251913571366539134097627658793622248119618315583100324767935034218448642368676766854234345098791152611307554256672549196952980183706894686392793379150213648462204126469416726564041465264421783023152345931529611300580476224633320974351485648810159221494627353422837869947787807279936120426182231368247644316647142977192208049695529750141994716642055564348434735752781520538070621574667487686389030814997941087204368448309824526737838993972216024493871799725185587503534628314263691912034989600402017456348589544977166775877025701395995147940603866630692242234606423593700757154460046940608339466390078855119679750292903645305315869784533445872141629787156485495666578027564228436591528001711923112027051142374307117884655618398018795313559047804974917349454582704288793034859243880484602382847294862630816035036658225585966464124094194047513791180573119654608723399904000810309810324569528181464195832975330496627912489200633273107779019531639806342262260856588783312348040851684756384543551481778227451284228756222150145113490829708978418689150939317698120039602525806220925623862584844793087922270903326396880637822550739309953690873544303054865906908958379181190472482567240483992849877269579796741173770963903003977379506893899047256066075581366770930228293366288885511259525532127371461594790131446474633207652839513954771770633672242075745467552192750574262879708553127595504524293529304580221388355247673209359032509989570218663731824386075782683354968565788230241667485719211264810179293582662354074294533401196307164178830198799362383687738467573908883801412010231698121882791120998277364612812313791181635844524208341785397774415838523101131740775255701938458039838456496413526377816737479820814240283685051135429083645040443752958696713441029435073101422711934938656083985548239986510861943297410232032964664951016732933476966892396863359737129960314195408801740879138557281526787713923807261674285082025028648205843824451553402199891118954377511696565462378435329382025570863886422283369348057732525632439775276718190139884137801272265362722532084226155035990321953033979665379502614109534617192690088114939551369204581185431455184152322894154400942531377411637082982514541261595247499301326972313559478220096037059343020925905054631464560065852190382761689265836007892541227069149253219928159115800948061117143761583769199156308251154651749748633088446044496597757506092514905305707632010099998114356566765307972465106007880712556388573804514301937008683768222416290240922743564672299724418325423946246586191484756641516774877422083476149084979025205153120484268913749351829801822029240352056570624842283547037213144490140286980896173262559195911629520325028534185239169181676117151902590633218052646227495307619534995016870965735229808344593650926144920694878674798069979994929390172031923693078753294562569253764470527789989728747219310921464109353130800559085052992391646121817255401567632490602380650107685657811554142146615878339200879230772276283364734238635716280894073269324071991592896890508042151270675360744723880292910495515407348419779550502714829301930513371554527795714734020059764269865666061784076499780269348597492635895427336874304862018810105900257369050404431385378440314130549165348236293233074596319094970457785706472476632130247813814910167501300488210432883475386181114181842878262309087188348332857344398582488808190846661823715425262805336030260184805298564632918078292823300282802121934964091287647917873026986740381016913292212651902282058173897209550687827838225045222763045449767869781322511925789885943820341201266755735070666706240402505853171235251465184229988395313624843096188397744996431831727663694778028995468405638893775975433462235405835966406017491958971429660465072300025898346347207167777917509123183126355254816676463905117870680308666761789443099674831521746451942093360980613107084178984272274415112914758146069885181808019524706895675083678744955440147664206189446602752096783846908083198034770605442174571759720393195070572382231655205049217639814555610730688261277668791411918238597605708702633760630074109856044906645857511610370669493841098519717011227674026848880396887019474936757587783580042381598898076208223181209866987974453653631503356833972579236009731076437629008237775594750022167649986226402688998721895375402287316709100601147349676114876175487855620135402896667277437892655802499927958342992386065315359946512715333664838648510514192962613792858024642388209066762466307996222106205682866373545898915985644991876273593521188296521794416662145586338205680708264634117940859081723527352841716626122495101446415243089649329916942206264855371954278157276263986193459481459519960978457896821250740900980600663591270781400094860273889062644154883289834169993795844531948823564659536377674373538559969340241516591762691912508850308268233709634151058764881705632989393878442842883724722108401774281967498008571185780731733422676141260948105309404078124159129000044758470858157317710521522717956598787384523944025304037703687615412841123921914231798915414131761894766362637809794576601327109016069925217274291119593952129645535686884250159661685319876693778027941547900269255234638549070352985411968154690369864668936289948087791205906784156054769831568941598419878132104836322232718804253662852951222254256355434577142660644303106593982000754348045025694195347079070456807796510335349229110425742277286180883851712107600569920752873066412026106557289674681760854839782992468493656559940054093505637243144260636979485548874702231743280249141399987108044870740844573190120454834029992578083503092716251134065177822953777178316935877678818019649897128423070275684549332689633231833731082644939737915724854364174938587603576089564223729763289425108666110246364380379012832938261181596103189108567489608416009218105803350316362496573205037238439795795331712199712204498563465376769098508876089118343105949431457743918459475959923328908947634294159197621718552460893100208494532815611906715268295961878840605691024218251231029027716065060591694193692569549516800623739589426377704862124543317427104993726813794311899677380476311140803918062985171731588391046003298019829284778181435142816192529285861582723463442293639622436765002585458005292443413951990072214834292093937578688186721062322960336315776120601348571794234762723135350185138356002979850970217901794965808909676728889246070765686739818444586612300586016719184334074167972657963584105121536069242955662018024715288118696607217022211465867171406430831690883018495111406378509517297272485820107862313145198044895382899262034952390769970032485696963649437370267728216542750593401019643642877094632819856319409189801290072788928443382550200041385390216061208080644111442224386632636170221417167878000743345655564200599918066910078286650867931379167130917700276911022093129499845434602878900583231735954522195117598216279222196727653292460380565604069242959674397489379276099714894828364951483284512601043167115672965081142976619267876195295338165163018785239875445425485562668464332935812041895713943933890745030957969550062072578598746805639180104589092848414916835273402879579665449110506063914482634876675948192372299212710650695049775406834233173589845750154018362794091763436202602624038890820255924081336238625297310122936178471911005527274409078185632918682892622449535184928553318985265721431726989966440513325210160367171386997954895363284959995791056992787004060187199263247997237111738783581059786602334816721160673072531954806116174623822974688252007172801023017993991886546981350240328302213880395631724108706340442737431328114280237658576612549098212127595484350681276545575736904332892169873936837280678975822596472728989655649526760751834047928203869248928255407426239230789537494790292231890639349573253646236676535448402524835367146506310121847696193291087257018512333764974595189055423863931965707039924674334097823256811384359906334407862107256018258132464029577808971638152204466081876146207564039400002003998960739103867645109606243083481175736512562424937986000585839556330850211553424045516216840509760512768107501783702142074992951429635527474239257218851026258255547028778006387739239648237756427778217798769447805826067635961882954571213923649223091934262667420611444117280184335873818143462780639756562503508218496508811330334549435718571942386083513097835149977914649250905162270103174961988553837820060865011093549971330359895263357075408275550333645653204430946033834176185219118100735120848421612586201289370912804282705694603018610476605255865846115448109706425469077918521367167304184633812981976006370555131632540650741937173670485097613158718351723386714600963903135995431836828631907428268673757271084389036476724910051403924924945883216638464148036671918608872967207934447834983882124277712583761515069172660529007564677364594158682077212851882398207154739204346919219603309728748777841105658197541247556625994571158577446250071421940870334493261771365432914716507614165625603719579837655802854368289717897368864481415360734615563076124064195574863301927757362982225534692743935773192806269440687065133192235258190139767750469088986595468677588723102010047131611113767745145751918860955591132936644697307357178111155510133000815583920282413689356466034353123537956211939279684874021110114665338426217866147039132226553666538697135328364649196623714825349649850308408415473161874478121300685135394799304845687014301330351404530859951229858045234487843239468622912389425230537082017428124247764410228840913352579571320874399277806926309633630654841970272952149211479968515575488001471749289553273858337916733245120549284357946129485547368545363348122237186899968964793890284834703470662791946316615614721338753427569158717138759349521308748662226777292167233007571793234627654566855212657992172261819720964247853394496743566184631429822899074659800692103027936389206093740305777718658377723518806948634724925991805385828048197351030174579956214600258382548707288605252874687123891874368800675118997601638303439119633430418765846875997681815341137974289036622005944332695803811541836791515059924912164931050093223767217181941668280633203335914214528528032049693586206562177721721078409778988701277763095325238975592986083400671949964729120540264683997580267965482265036222850088207250991240253628907961089251542255647753406394638216743437375044597355240946353675565221778133992287419855414717984793947381359774591677299182217935712922649132563781082178435487774478478106225946175125714241286536008072937465031458788302256040058994206062596810457649090200361216738870293891969632512616954259793578524578880251447527283150435624504608713625956742492004933950899434167885615009921230465510822616492005651133401403614765845537128922839873796775087971482639740159170118969213783384497189173338124977308123216425974714561275356677525879970163389806966646829391054309986947979820248269468351386390601837309933863007494253572322728623063988747343411822091642316830203112180173901699899251755770581284532116194871835468823193536663863229017811358915069092569863016904582019465234026129753102748881925306652720681710474897280206495255014003014236083311606477033115565779188592639363315184523586460327687507427859192046773791883626886448832985079523607190304111241392400017001636607894591899383465018548113187049313370725536922854910448454004530303029880205852818408752848935024968611444355935812315183511535697515883833801192313929137054041406040322861144267116738876154396523864237108561237240484867784652528372669316742341309660315754393379105061275512563202623730826325213693294376105369694591000309565502485271984496491449749146830751127392471570012411583217308593716087328520107718768881269545651777142937695822348640013725777194052403034487229464294135721672026159697045521357692713634675168909076512312078205536283398908204569820200352769494937950800761464032669442863661401888034407829168708521587470817469152454597558301876352116068168942245021761409306270580509838774666459220730244486059297714275474509656966727587350559973667421870126140621464995314517154762310641581211725656179552975866218136584492274537322556140016795916197217454000361299979408399946661621309895459987305404027215723132946121596797805424358583775144891127890824295554233613124022449515311867970592614821637319516665117073083808175140524934294763814919122987861107331078488361336385209985674647314315332490241878051416247499332601976203330031467904385286770029584692885850294344795216839537216143314732798635789187860619346338306415980958042700028995062282859631168371688572058890895956096887218984463901526242130271606992006474517205909546250962468809571758765016373912841895725023175465564001193528707634938779026577280406546439032777302190594088493096117858796204724111374883601484288392032902208355220942773708325778623906685581634585179416050429517164297501941427698256116419761039470086396336669128213254609463851610210508676482099798401764203590107006016975050100097576305134833034265393142875497044561445859435719833974698073436603914484811060625822477117602893034609074144384250389147814682285970495575417355364431964712224763591416548381105779161980041856471235361226425541226806834366770544745242868183514441599131631103981937524430282258644444455942200406112357871743363623179636951231283461846621146867286037468048079502094331948949611972075080729941996728740422656705071114223799443583515596494281134035238288446214119297565723787631278928204517604500538143946600342931033495412119611558362817191903105437290832387528571964820248344506581728006971121568594250553244429770169033673199661282603106496180287446109406727551556685693179741398754080316996979712597734273856490169598749247546461083650671148406800350576125655397179354088326898176962957063418843381324778308200338071690449314988431442685233835538841389870156069682360161118025751801668954562006031909247510643298798273973296751746769274270802992030835517357749119054247643279561082056328404423251732405590828291452711512853763385476841927074788675079125149990536796201246161250150273519957083133935307863907158800394109406842727378075108600686328206407611809443474099522703317978301288242117526482904445728758809502287148736193735451117657274720622134559390859150148458742324606683006297663568950283198236013819960979351188651273599609887720976400303131121525868580793782567996995225598116649070456744658661433668775604225801718024329398422204198370848812540827282584516502524675720618729973509692550311908326391929873570391806584346444006877958866631357681056154193309854091896560072525581841483246370407135807856775570839974080012738587628999182807782746566744738383091604885075727422874091569432122566794539990531212829153382999540985114638375903373817119746908651343012275268656704125982852244552164657296823295145871398080312085241637766423354978760780864415563789531414645502988303045871576245691725612987757396619687433296627087832426453915748166607084924974849839872584315457830537953861284733059958560694365013945470137867788545477842870031841850748890577098909968546370121848927793318093510530357414585830571874627121251361396851018232611970747745555925038050285158151747314210561485978661921107852343972539038335595549746874495341786131897790469631332493108926528080477330491212011248858970943603535164959770876570866022004408015502546125140500818160518040545747501807514386043024471490234607876223569720973882550631738770059145846105184228191612885930704749266750225024125073766651871320148207174292039851952077356658537826549550578111190388855615099334391635580263802249395394123236023369844753613313108990991548696553827105511303246804644663925926992149257459969353076205565503428047327635027782456593229791977639537479774754545593827558566268259284496372476738228760374146267001570403833712656304467012664948685254676566875791910072801957590567163370575500842250417322415756242966481416751014615334913747385975792123823523083834440773312468069653686782635591127075840606423907852143799999827951228596309034288513331635031229179634888681848429588951056206683649861283093019865008783733270131317060347313785801394965588575592803465804771677612356391740389423057223854974236252399748298073549802476272712284504531376920903792538258072678102784567799272546951357066177653459713583082034401099113280899599340349674695836909044638469566629140331529548243576768619218023200455394701139408553085059592611087959269121972024439274431893204097442801338939598777750894616567582465402446199988848797707565767105607577700659177489583998065385976758879388183230439131840046579449097377349500299773684749650674140073676903799540435103357831825653636837552958606576381507274275403896865632423551285352377078518532183132284559759809594403737576286419544544704366608818698620466414875315278056011640303651032175141278230648324971100539000775150656141390158450511016924290627763599520171890233775066573963552602677835260429849574261386193332152157162786168459977134537058605883975396728806291607044680565935718726855744051772475380610358921066328798956990953714518501786553004695455815530489229874867261644983468949717195384476009992134546727482815707694463108937029576885802472978357945498641596273915631707590890317798533901457742621596393914778436208832386568333485701044832385365684201983045938277965976254633058547200702426596667695340151300118888399699812405523229232356948511285594392541975102252361255983624570571081131410732489221802606415202572538269267586525889785709958691578390238214853147788960410653948690229066436193299511787033566309265039806902874790376492701380352534621655425814893530081322113107586610773668853053508429129272311194834311625612706738481889678971370245074698952214983348994556051780129478001470841075964549982368426282387668753041043315978788133556673737539047685499736184138884336125720876783420127316339835441932443268392427723692066193392372940351463083011872093277372901258324024193147398305805209546017661817122799720077202308579550833079042143788944002386808496900245456404775771797475954952386967451890411443230638954783268083476446096077703392799974159588162730654781003949256155502934406394411961959820679690348977156123056239125774547379252130995495025046590632900685376323239026626949589073962066097241143888062210383129558646830366849325076623353155744462908045968707026128939161354482639993074984433662713454119131090720586964486209517262476898384874997526907319694382287959717289044892458449656047998723079573946515326954316642759429133039652411716910608980516213386344809483330519271131471739329119203232581236146894646682803766974543341812998577532808656009753917945849602842468264639792611197878686770306708093051966370428100254117634834866094308829665677993516615214493566308318414533805297792459805420261031806700146933406133238394353846346878186921921210991233031844954489709179444364378327075127923519288345455786044984926086500701804784459043899894997862137122369133807372751304437479157281495014960492430296220352569547883908008380582201127454152002593921309682294560502270798872041825319606527242964818632566959189167507848085128112124739533205713062562511856528683239210008592812444135691903390702477657518913296179814134164906109071636627986701372934342472494903816259922591827601705892086555365632830837260368598521312198968353377144334742764294768245177962498935340650001604455947966795151572489500677992581308728329456355768453887889980295001846091711367264355283010445635691751321047032650510575251176549244337221511527505090335598133805645031996345645239750578005002926822866766151646276394331942034181096959964450506837030967596335959388070877678963821618480104848929843129823261170679128502618358603088898675784324032575284219605035062964284501859073813641738882730678685365207162026330978214452190188720192193315453948279993106332336853755769460726553724467307193743827754229364094710666511175569442470645062450671232927333195310573984794387755452940903413781340887956746305243377329291871265161892348386110254372919178045839771657171487308639532318418620461077428474258266182224288086127067139627380035233586386631390632080771669516708729316830708345027549354123459170797240750241017412709607701892383233659896476446962497027187294184320850419153661954303920844811720608378884301241359397133262818631642571965812035697466227289826697567192579968648888093789497745907159200874635519579368367827255518969563160004415237711706171153132714427961582339658166832450643513433099129424945088333586269499078972248028719232050540872538383387812710480092600049379642065899349397996398027104022052198413034052441429839694876082197990905536510148343080393946383306426684892047033820113146217441822809179173929656482999450884683089556037177737679823982895850234886269902918066702719294384021886353254154653400974433694871103718636079367628417825585002912978727113092846891157944905181776838447443150162918046327159159974868348933844682614482003395362840361758887474323727451656818801484725850737375410161705794295012521687928485142119501533779331420338383337296054288118709792104584695643995691764426217871870187229332709584472077767514576096194757217930007850023908972526939838188978277318130493178556661264961642560908390580111662368316882311816710030862906397717578439455282979464259964566063065310402162867104571364031394838443864148786718283546762290821787176113798731817415656759620750621450529387600483058246769289406277564713603904451567517055549283752032781364061092222630061927502885775721598728750648996364509996437987033676390082030558509119228656220583827738219121286971695039468986783073187845266715681403795947811601869388982081388627726153204389420048432217802733352597134764560533848450293340637249347600202640813741802349842982631092700649576146872357884214776837076670034905169121777055680570675918595671066108005885531343963177591815224737648055010855545985609974191418912300152927555533411788006389062812190371309902469322183216286159437142280244834231441223000655059006082603173171287649345618841756427989753136516518344605898272297596613080117425678003999119974785439461554182654784155390060063892954775276571694616018557443556474599358463405621011679004315507857335391090674788444808038811524330422649785697040882223642263793208211232249497778268624596855738361002798847498314175873586393117431463067924881675388807090408604209411907578241715077593207267292757332663305297982960859805330392234745754246422947341687585968424485102919582609567874054332470268430228366697200658379234504119657511401568981803643215019160482352129931747679566647105293124295064190671876177934231012427490290344861164863045920916101468307614499967759506326733799069415833075371650340063703960377925236839020943917359853341729019290610829204760604289235965940984204756614893058402222990062644282306825416302465204367035871883598688670759391810439670259108263408371038915088174326126834165384356988677099432319217569488247071532933289592949764593690286586418692241220326358791406475634255562534178656268839837224015938118107862659082738345182486300544216290223425116312816890615223851492213282154328140909783418090260875300463690140473701685966848693890369789036225040187217681459132755884404676641582939113876940072641500881051402667218363789726018419200103087183614282557012498936161514321145059175199809646666230103636056897914748215963094507515265171337706639713356454561604093555391358102446466063652339968427744498222388581170290898171568456766588037483183191961580026973144155940288783798058320093907598066085251410160775434281362153072905497931016178794968636231390633503175622824507694338781248505272993149201842183389764701696056302399023488491707999830710087965236188816434443850050400265410185986109825068419197495815688106345238864364108396780551839056479728149692207383318733973056430397200421971922026676402970657537838508746365587800591944049378279902491533597037236413195581090792504778660214037570051051037682590728895460751608806874223437048688255164887238175819691490557715334923847721638481796177595923823751300410216042776913900202600203398704727407672820359092739858040021566453838194486259609935354414734224991772442703505709970260411260537245309779060444552750082757912570152724155066916187539053119158727778512991517872882453374211516156882017600641005749530330385700154957401397988650532970006561456961439241629434671444317061005124677871603584673909857598077580613516955762144772318698026077908364825152422721892326459851006920500182597611256220177454922643466532813991725134001800403026438691840217276667713698015058277306024440175566619826700599781116172622106468333485700178181469867584734409668782707906276129743109318188097256734598777617265216202432897148655506396585928868117195592713402653133889403993997344287757556730775900989329346801838740097508881518090963513400992788435915940560174591332035353325821099432975566643996356353746980742938304685962876128828731224515959458533648922716915579619731730052233539511711339072907871565934942294138297656963307955703683194678718616518798083865202750073696569589433109952297033038827845968848879672347964466995770069814562688973735958354144681393297926595611681427746190097762107292452806559636203697059773869639499190426011779210520105504629112473996584544777446420575282797418553177881548682559780491281342834777176911908584043151195312985198374216287268531294458946086248458786786586107330749174606696923743996061989434787008604331748827365974748031577163032670767868184033142024292500634022171020884183752660465308709758371216329006263692439238112183585634587030640580968989070100836888749550407657729843123388587332966923532667108286374022547562731574653191500669558630526329179892257533958681237534679803776282625811687213963447937943690199571264111826894361159686277882189450745472415674108971927144329358876479969056705684139705782808235033653823805119026511291063762267474800558201830872796543703904596971538338800532635200010721835614899481184839923058443684003667867389964756685601294682982232376285888159471684225857386924505618175035141528824559733321509357804132190308622049740575545690417877531070625053931355795378086989156558873303842432730616730499689564318411919883659001157740604688634031530995468175591218637466744836756038882079493056867166638629085784240795448495097522557221861724738037438347497767926578881659504300525507804055955122923425115836974583976820738659982959434338923221770154432221116293189653031547338334064051990933589307791837988226488077149953724671078671060655120019074118883679935181103004452874899227433194167031897154559409072123400296115514403568009890507793973801927415313374821732275689655540718490869410303752673054583469608208638738677291854144966200551625982117444143695575284292352186682350328011890446752881943256073688096914333789192284071810764865570336799210869914003637976516948081959596941980242181127423373095426905272264366529788349677599477867038250440344716482493569285525972849949614251192077247088343077516837086320205906680139515668876517961530097746553477703427959506550716199682746301082233744464071186821640729693241542194849658278652058612674757210770834474354913947550930464456421800205212657618005749979536801253921321079693602371679735286153205012660436628489703870604567187183858492369248690215859690621564305943664048339160705353297115922689532473374122220957761504959612655011251505198387033141706645933885360220829199101030532196804790092891609574972218911028121994535170074282809697005773841280764491116996646835125440468364213937128240916328181776198933029464438203670234583327170878775259541336795440430291664668132460577166832677853713745542749458758561235130907269950800494788459800672813017557313957522455645808573223180084875208694753766193497421206148277746942190404223454956583116502516342352898935257313354165711603968834710075861879431867976776805452220835277882589688050788814975668137901419891437498671394141081587653702893926653249090244263930053896761459049253196239217113844737275687543568363835614335308423624612728749593926556904079383013328979083108041877654399189182072005275720932926148682056881487576519059325749531026717217956149726263191351808225522031294932816280434553608558303017721323094337982366628107152583770681756927707006019946543161863847993629419677129872772248865869621730076657659691942971067472071551032814790378485894874799761889946271428552918158578097897671929645289518330642313004202788337994744146899610010261459197174334887968753478534229007737740797859182622509813703548913893651300131673307004520242805238612018510507287767262722431831381995496528298620831793108462034889033784886175981513187143363561558682673882127081647251360910143854236695913965387377006095631759955696378311601048774221784853137931886379312778719359726812687773250683213042173094263525619020378576282098976579691418031987271219294085451633729863016013766361893439670557669939605173343819760683249017719578999751894507293817234717125368672287304070907991131300609376782005983813221311933956888223941009412828090868879054606958843142586324994479771375841066404084885574753427062764926402793156313162488264651902873327484458252140748028560681177650574679937612511077460877038978493645978953996902230463363546633038048338865738281818626353607551730853960962870449416928312391582625053659872133135294545986095547706105101167982736342605947541384296814881018917090450700632725504621687098850533157257895169808101788668878658206928994212798246050439632575479478499842662086908967808298960647441638465643214541867440213673184331919218287115448800877628115176724743071408622235048150257678671998932303700324704799596143093484448495442188013274955537164677412580443382496602337643098463270043596428064849683513248919977912345538520337354786533511874777777287481634588693641514032644576033124197953727523265393272274530752793176665359924625727088378935753442707751447245188429034972301852671087965872626964381601061455249538678698574862809158239983728206089283701093524945282713313669751408547049477636506213296496826075022917382066505214554995494249008523545943020556746442415552555633504802164361396662526271704265641669629916933111816381064286211291953038911911496323807655853490975039175857782594616969541241265720623222163697824530276312967506256381827832445133681842411811388061987664726218920371304465736715305148008148697913234984690357516222127262266732210641797802659668376748322275986472794573598415104428309888119200037597852839305556545849815631615758402016559251489470040072509140716423439172048761205515089512413492530212632776106733901263106692038662866244997280831093912382091074536076917490247314200545903557499189289142399805505224613100983769736094082697071481644561527900505607783828142559561395195966570525786692787083279656371391257187477136796687779212673168548655105131992338210049064354002399291743370007341817846648530165217817874890840581950594030034888478976403464449466633591727725080623578643921123705315446150683350559925831778549504702401408778068744853581345876419130681312832780455279112081963152769358467439928170454100309432400382740699452092169894507761696265797119205611505589030684575424459211914021708286642310898149854980992113616558242677380547834375281462814113961466558714988900576140932886681283221196837970105978187172954455161237456685779802840058869008453354528367319519663113818577215317236628290569928323649070474649279672693736947213867692230759189437898649805910815704392570144015978502618920159369546191627229615152744701737968084344091296222256885927611602004765675266767629040644057529561019355298344702704603219252095731015844721412921587183545230472112188204906887143121690095834201404107062688625482854869174284228196118926105872492063677775270485082925470560126101206832214300445133358356925595326388130986280878126211747094915405583369033330540846708916954661887269099938310715166316854008569872063125962046226022984338736117460044977705604616281472904733034064946932153034433202296377746438167031706088838389539759810414925857169400382868075566024980440478395258795172138408425410432613919065448826177304820322595761308584872159565396265238308857799785295902103107096141853437418826666101924447872295814579287405065713742644712196342372476886230751785435170455923458199657199472679228803531116405478779389168902492604106927393099688261903839257462936722009690996700024676099910818569133274928838528499951173321277139541944876693836793135934542495612325469502593343104591719828012984434295022201704727317445596913947155330775119472346130740812266617253059335732997386630362033432773079805654456968313636595414944094869084281703134963652967630655731510780885767152530606337325597028795445056592957617163789491837619861645310101125144521906596399886303549576607092304316132111717255717948725819092309410271920051867210483636202733818763335945951742964101447710594236989964652850597164045113000036688141807138932113251827644423239245225366675161840209274943626338097822367813672120100173884595607757506123883895351137712790309000015717152205799538700851500242148867177284124829578930415885519769893949268190272424819247672141862000294986045935307445163812236945050018541250930549015871865681415516039031851562207008968187872705574761273037180634264702239541207343904459779704831942058891066406801831966028786761661460786034919354420423485877775085227180668593310607922019094365507627775841134851693214040367050133681418740150129335542042950566542662372677707915559795597333559509943094575556584783442394860004446921539055027575860326857359972044348980453902469305323101840073235219221316697323842825713537092042772962321664013218883204648235263827037250483953738270342963972053981904837136300739444232943387742241221560300952590350132905168065539817049742917340994974059189827558932954503167079163388471588011318423769410322183841142001232856061699052522345528358165000714233537030197719460512321136092163019417886303721466174500335938978447741312167354248600678975063771965430924068182826656680113391843661858767278713583624606011008219487409545545624670655610500797323874730931499542757973240107139305477707386517844475227174921612442902480249805488039748755132494895519722242951133102838026921749021374803568833457014144182616001941847805630340747354744845083341052994860237557726586176250463995588286960505299715411476406543654583202274707025562842822076499761684274352297471845910445085260341008662624956998426099023308412392428290730465460426824615872313942701955597153914404190511348677990699485111770434776652691662586417809831736508567691180309369162714571721535549765428762456611216779139022767569687558430322538237226348867740478881862497019333184129687815615858405006449819240770578159241907168171577716064199859093702397743201544762682654312220251968099980800532419593676166234678033836035147176157901524243846827714439924188307449600461879348203084592585046737968876357463124447374942908283066394620477425745176260817052254850103375926574793802532655465128669268019033295155793897497822393687078592530506332796583562189856018570469982348636118408582901785887797636041064563570086656339977730896403421638417230642003561911186610162537989693579370722724818482897527112814633713058443922656254391715703229012320293733912087184362318676459732919465623164320946737347409491088056380621405117874291471338357672619544025334376492628688222113387047371919663814318929458361279796332387629449653434360418235549212651772206428398119895379403705757450120324076035198170961257595875362160674312282407415252043548777216848411575526285767459264573666411966725221718858653196275703770859698975451387715618884771622090716579866427937458828725839551024613893318019285874835335433464180832852622078054303780393923169829401194084519891688284572836325657093148147048312022879829544365888332728826296739731252896145214460533471260144958720746833648756566091574160477136159731008310692607184333336377856574262817948903528440975174795942738949586455518141070670742203875106646076810000798594862325190027481490647593738162784517091041732893282113921496058222241873336245315559215924458486048268403595222002778542132431170320641586985133053858039610357003801848173935188219600714414222020928530487673633091994743966394214177588026496880557664365922505859084077450718678569845199233486699613222241657237447800206651699860606551268316219825531868842283026462150816155693104317936211858395681304720639829999476994477864695443648712334405388116602487824883642706361987553059502501094511942539153361311814851833535770772606561116826367543295614869191647058703883519584206415160709665789243222801177287762242559824831338446627976650083629999679479734750045055386516025565348825482811237972190489097596791359258066357017585609819980205951033655886767786161903993985720535440106266293864530607868595214211514966824996865187051167493238863155170288468893551388099464322061614748957155552443374115012030356183037733119803782622581234422849852466372050501712167726441838456451212755094900996333884093266056547182526016516549506392124975179288061971074815054290175996085538757187429369547750856437224653900122005708185258591636490495950805866585898462092733924896730369164665923972432595809840007515491827982867243965071639551152414349274758282998975007794951267815216697944344219533385535910223171995257019383248540160598584166692887483735246998177456076437578592079000057379098387154968128619346217547943309746019241435031459141649844110149188652755590569392785380764444756809146093270720115345507800301911425189824894537684200779710267038470993559514250305082080648300386958375252318383726260402276564110144654353398031557903740255508504703342237046243055869325426882245230560772687596378001317076293380800461675850109531264457792991375115927548315489141391668487307909866782017799087150389969573559967047140837330524921396707302474956277235098302810567982657536983185284075566633578855967767424985308264178089335447791484599901524735755370775334255144775374235183522584185432993004214482308863471813169391347446349786920237940751177183137649719153185523888024123979923776405968274574055951055215629631010276209753189949829327071725406064167456324527490369389591086830686320673980995010804986456949641539729835009411226709924103773469372731450265192413343574504465183937196063485551284255209703128955498197726433025885006410947311941274748476218613636365765409917071259971236225921960360722866679739184919977016946443545993154991958677108307048885097480780427894266746255529108643659330160987674939008280775936548504495672088444322120483741822605469588745720615777673122114773719990631403085466273240923602273125974600866594723530844950348166087109124717535087993053687913054528771643196514018714972805352494725807544712610109943481580280649878956363743567818563206997875045284789823555877373040074470190709672919802431510298657432522631057834262391282866466959363858592137456415098052018820367003597181985924236819084984865314628748414633998300673561507658277417794285674454457815667566009973495362857939565742272053668180159937469941300312943308108408844680523542958173368683602872214885456747518938865114985420807634651133288225363333239626680447803790821254740680044565694906366918300300703268610692402225945932505310967599286241466940222417343180094260019113597434605756337225364607271822109764220581983520242209516124210747453873072791070835280599012094714588290179751495631747814795107646848254717468369866487312775361626835453348081863405398611986624499415469083358025120315492035044748968278254988136512037251397458534913248768975429120018351011586965236543717903243558515989411964612128409687176613523754758510724922201025028508857903112406162895553542033194878483425706313618673687378210696301376934038684615135980977701645261168946811023366550293926242628029446669286809506144790390149508743994956438381603612900965832379124379181086649804316310573442060701522644106463966326561847935537565243434877317492894183375167730365964588529890830293985599222753903687638133724066133626523440638547484595076812889495546323335085189115257546945439582604459060839547043365552455703232925628454611738170916351392856198609579070292041848226149278851552088235031615198502287283949042264488286803828249864980025557559757013645245960308402338207431138830178879332858596347811829091822699906744343400065655254516735695592326978818214707695548411885076353850355759293290809931885123340890563522839906922709233789223930890305111068209595828423393655504880349774647573394456953079508167362245155440468259801875562069201557776427670995351517316926018822395338617332716573293331411822355279416542467752239347380463202021147755630299069700619133739906290253908886904910019358514439858803700830178667162024279645993289516908503730512255314010117440614491733198975940954078885802997246954017037461445690405705616717160659463826063183908576421146899023064952519646502882862720103096029759558553056350406446636736557932199593886683899580331579984993948314796054447056462430031155142920977524061733464044383554176683895649002943040348531347697309713470161335924581219309583666638793600788937300688053700436737003530461873731274084360402895311082547803189675559563815478092856281892990189664269914629812881145953986406961110254681341366236525923505021278171768845260078754815570664097649722178326897533048193761296176896458581992382716588421903745568081763326913641102970833917325723109178751569204971093127338170077337844082583044927815160454892245736514272060152242590766899845076798383515847784481483816198869347296747743986030065492552013272595018408622116871294752254509914194743012605523077898149060147901671532707112501585416815522695374535452704358117543386314907605100645848796648849765898109467076394671955911194355800248697215395788397020674007995850142341797137728938014862621603578691191427857701811293273217740767991648188918728728216323403048585687963070632641755617385676358504430112546685051018359186190723238873779771082333675526435989134832084585387355807052104706193704203177906054538383339333780105087042263922972454524703330102022225353466665366840684257992029375507394067522165334764442028471411418919118062218335402386163454479786843977354241294483254616032208168306959636769948803784350310593287454103323724069879342084356807860015599288688704870277113533805368637098793717236889099979105836200132153157308796844820325248727398746232512565886101979058628086026236719014058195380353998023284349189677137951322299732194936165792670251828851995021756349861615564690758509052260384267058327590595817975827067761650670108109690539551516893363743871075298855313393325010026813797395093405948861333518876172293905716617830254434012601184367913933194817167792087165882091769606934754895192280788925129571540434258339512431929624947040413176499330095220749185645759362210139219804397885831334241503538967183135046129588717202932476346541257536540149921867292309654437192376554224649528603666945531773823369790735633602827101089020060458593338442440510754537892724687082117437825100005730879732334249270060775640441307346019232701125641399389408702144540155028990736577447341273898680087616371175261037940520337710255539600913898513423708038283737011692096672298232271304298441176496662915862278526535739229862805640157745252802153122082949815599144300225389169400139129181744308624868136743212482523592081483552578221638014783904396733162997592945321120019910690061322486365186125567378070406689081532670171865472774281343048806002624452515148076819656608687934170484206998427374018897744447307141645037497681493360240581610971901478363387524469258267425126681823529378929354832087148005225623169099469116090363778689152718500156568124993172906917216880355779518931579979617850812408931117752057496426926192872500915434765575737118854070003370753581221790021298991440146650954891264392520998730074726054820681943002654903970458161949661988671387230867113568059508720277740700402974809527917700186717246412351030550065965326148298510482518165375149821163169759984389121016823749766811177137429329766889585878822773797527880299743419500158873388686265445377204386352518381752260507881875465733408716589915526474018613968887743521251472379265895500690879586495788561315960781412937421404888579734070852631226456336430587322500592000418539112643331655096901652061701865070854313394585361719737429046893023172156669780974979447321553844315140045491192534824055484799238466247596541061035303875455165144249981554500449436903440953496911466874334846848166886987235913844611567817122790971682403641050965871190208628911302715459376060319865231395525514770809665311314916888994609614480624387630309952140530452354832065404972668837209464668871658450071665475847434162381079599001712704295897271414863178707541595133424966716676108814602985294078315603209620920656605801160440851023039102858337107507356313491410232029396104400392416671207893803591767068502096456718065767162594628998667506276762126319808769516835257514194606020554959426828935277539561378836250609918369882532389313709259842570533898806147315228797533693769115573840853308800478023996104344431959152649441734057013161963978637081242032613906613419421001426748742326225313536321873375230568911341895435776140840354878683042349319107404215016556541172748329575611846077918835694983242104452046118851513405865812419063433072725513535517986344650926540603348865833301193467521380804086822987705903016217400165847946675205559080592345848456469232316356154337279621532658069174756206569771277523132045626428702238676054253947941584102019350222853090249278029646211210653436150953938330624875062650959698451872427886468587366888424230352826962327930289289399291572405937245971606986841921394064740312050901553959660964938886946510983059835996406551473355650763735990193366935214097352602840592777541956928939064582828930737013218929787906274440354586890235366091680362441605419053897254826762555872397782834562491392404368363112054402143009478940711366486696648208804817790517370678414896787166162852053883895661485145315173813304674606835663447282053722420794467220874799461570078515877162851513017449893298962947147357430470291043081564381749336157045257984216117823521799870295902639110403019683785011096287516975692398390671141848647963851598508745741006190780739761498990063830107576985895097502734164085891835937464215835535134833814308370799023155351433666875066472368659860910822290082435839970822348216881357876670845312378187412549297739306987574454505656042540324936277959739433305215297862668589985743017242915540168899071361648789208140266554898887523598037611721263587577332475854988531402823667377905482410854252602045207745065576296267033345799380065182269333084246372954441534083446397198345663825493871231736000926290215005702219336878709526485971949711203552208879995633998868781024944962653667575383224660519566807472736548973116469007626998615074328363441868254226247655755236334998798220057349869410826248749702000158064168305165176793797166705376866465521595156730426727213526813215697824006303078313937349957563578616407850684822884103392762185711348248201368374968983255094512970915001145258927159061610614062984663581919444733739973315449197541734867951860281237720340150778671911524033955279445213177655343351397253174474920972291928515769349118336997599453059067868761506565206133795250982039465738147731549428725324809964024247405980136292378939831352090799743189937148160456259602473907257545002279349581648431395550118658851820300325241384185025610325466038196284389030948576978595333710881265691354982342656718923310056969299639804841188594057199418406261968315838355495909675447632553004299960553311019160757693972355460185418678446572598701375254320584405385552789077493087002161283936710356380348572326964694473471660716922994031006531022139918940794485316955198322511008799671963652072706692425065723069579743906902335473131471206644561520172344501188173922712699345245334555535517873584527660673139045722044667912588802339395574523521443928862390038063810690958069304499401698358471606476052410709744510323677936860052012493127330828384486336705369601497442405186232954804101886492419906275392297252645062032922166304714533373774296126404227568830475849727112802253982650342257658072535043649755261147328613269877684434537454538498157487012623895504878284406558452798934737472965909916791224623635292007536598297133911936002928016456438720848544118546589544912105583341035356261020760048656117618577925840212730952661737209837605764994995963998896228973231874981900197378083084339914729594120707337812035003012826831251382166330858223753434228231780127490125656491432558275657473843746964568916186841790180748799322578823677767529784811793113164826363323229544079658683736183050376072719683659597991545159766933059591457200196942950338337803748015286737491307791101539752783313064932988063717994877491925156700924832354082455738850153932063909191095257161802233894790484616183401329529316422779151764411644657579949620463820782106626172726154994460144527286617507845531827879047576795465663697204763917815325484246038134056862012616726077603603966321774324326665642498366343093288170451575395902703131923047148165175255192655151653421478397874869017377688800216294966226516993222110175839209527759976637155940763734884080430429795111888894834540132079036698479147020668685735001619753828323173137801255769445157303631411692334788360837841913673301521333303197985479270874031633621338682499858477543513166623284247643968952181275115056798635099330182639776903300538860792994360188310552410020409104854629907784912940178030406738331384974826938227591319088045702567840592672959188385652554381470503616492713039567940598939665267353529378118070838481652560270989577890637146571892613157313375364529212382213910844298207780030484660870267133073061955685517575487624670696139402818502405563735574692591103463701617328939366589884881939012688808993152453561635752359489952260181410168773810822930837361976437889245159270526250815517299889360656735628769660789138375563008665634607413972024925296720759610654453977625494185899404999940649812531368326960643601753538295871952785969166654600629198943072170778290458862148970810437725056688568423497313018145853190985784650023826431272785181032756401555643624631187068695216123532348626516601981340703797084634708060331760351216033418294343229581535549347554929201404089141845767217734903528564077375822467425668649147770552872672328744266589868956947477732346012004041538809734213146344543203674224518996575663156958418714335028464290047413041346084682102744511530301060649145673714006864328943965460739805642725178582448834195866056269277676670048985488302661479701908976758606522760950634320976284051884791837912754535151373472330931430449289611647354044776784704855063733784035830237501533569071470181036055048680234125359195656888112120438538746020105178958740451525089277429844069603803407578229122559989036582382104535576914913196990634960721113321075969792493685777389575371006933662475634704712047427963582143229041199418237708129592790276412860839773032032418558422086409317009790997114768998373891365254251842835633634127951215677729680078051016830499089372604776050728256487275105207876300198646909910861194181185552230996975944716580445053264031224352394753887368452239948886605484955213735229036261759391218674981208377269290700301685085351509065650657074218435150253728942350193542023037250416669262058709124381283172847320900127988019757431922252704858178257585462751391747980162807862802740858243427286810156787057671719353651542076861132209344083979512336029523987220138915891525891247860927922183398018143084524732878413166572946777192707974684433798778464916061072847516299647974323696746991083977835008254343736736260665988359402119375418905159628389824437148849776474969841541297962869052294590172078073286350084335161609129080905286679871998782927035462961009438832844130531684028329550549189771758715299920492262566828268266745453895481321052552357411321516522559773441819218566150833132578402655135604094920267323403384499400399366807973161688680152360934919788753765541819058767302189457897544319098766916125646049212308794202176012169614123366028806638507610299931376651458225170356395874386693140601827073170314817383892978372560441406434567001197787572455274783016255620146185444857159979406253895696961361571569408954800798143985238078852426117082600829246156761362860830802376340041415426817205282881872584396356844739658426550991498098074831940593692407610841927664338294775935779880144857859478647419140662416770414026389194680518136752816289176899380354094477596082769957181397153308737587300337363387257190825805793797674408357780040854290656584609435219746727103339868943274200744776240606331050958558838887430668950465854070346673768598972721658752385375559910326406622192766086314120019164893515773093289270473052360124004943088642736073426357119881293287525524590743410972349050261146093894588788696643888121403870920387915306933395863771664591423325525770947280831666421674525387104795023268537314387961342149037792142803096288613413883909461606958365571359625352322585801578616222848681401789010443433378554768175067489925454343485746550482123003211735712137800353865286539518612373459368357410099928810388828516887117291251224671829668182547063968119182079706998888903607144980238295917061397435985685539224441475845417909874331015224120670987352481647043734845714507227013727033585755103502901297856438207767041103302082104405559960399220822880322154708959561230946812008656290946865950507263878973972457801683602079404234579712270833228153975989557794273409018510571185044329784336204205246744192293242748444310460210908423360542840674419494788184525821299764401769170639447942036903496740730777495862462205084871447105742983512602661686757888286634011892959227216200360413252846741193899178033692991574648389180223538727387440170820617929187314331726660040173880713705508082781566792743764904321101537187258106761839183545381086515855977667772190875490914833081907000103378095119678663858736373556106312262597529339937681632012652760840332325359450355925090052395739809618978975375400493603188075859279088746675737166794679390149754410034079619298819124494621826910819662160632670814209355558374545754768165444695826136942098389411214981533563475700536991097721868901882242108083583049446868105965814739708885364306921440676211156170511244794126545012855444746727062328112681149006755006160120163621498097580931435842996516425321269612273790990583567116747980764830289714254734724604089809307430437279468245014017622091341473542093119229943476395639698512911207901806379139916342480812238973188610738091445470545416663689573300167999901704062371127002511954351917655718746098994516250287348094161969812379921019604817904548619084500222985529549189661559291079801379706737028409548779741351098762969251972917653061253558663841783826925889226053198356155473732153874373526120706789968470720382295861406121122396743934741683610229951117434586631507408259534681219458022677661495266143389046728303543622226542291308171067690712791943675753738629233006150643496050011947424176236260219031024852778050018235247676501317738710995809631788894802635793917425347337540700873278129306973519525385166830067812257232852465495456435893378153174993992955780096043324081088561165418253756886724330065161929266046224940254245974317838005659782243504441331465962225228515872406753772423909335073867115079024691618489005928064727793807915813701537395388548099688794408669144509289599783000223732426539149833523439218037612075422778367834028238006224465881924878545937641579680905713670450299423278430511460029485066791429528457385404806838681082554122543714507362391710199544513103097468298714104609476356900268848267399311210674786984927734873156570740046666159713394432827912352151008381092810517011143996029857927960617096467953897709195575017655879102062524604215657319393848781717999367948217996968100363659346635812576243098671922780279474862379672693821905190239351536910410586729346681554761872113789279127950142057329291518958335464250033788395902325503504455877912116156524640317449310589852658852280921345511231036979642371610280562199258762331807155542092816933051991698315629149053764306178407183929103780135148906671601071637129488815163387768361463777154564049816370289884835714728653181475762802830312977784733398459865759043289888350771151943013918180086576619324039929119997640745060187720612758726992946459770822670980110786587670298336872629998348196148199787325412739925763723345754205659127892648162834770972769912932819062633226218263950978130518404672479515285336573016199256147998592100387765335504706916020331072161644288080168031334152687047581661411713283027844249307382342294811658415764812544490807131254511719332410335047318009975723698754768052964117502125559784296045387912351205539020179114810533110580915424361993873038552228044793297980621488075023671191298571106289181291524580561351312968272941508598721635857154105823780248164435262416210483052189506039053315020995211810651995426074462359827362352749825313848328987449983167491692850471012125790532427515760359827361097325020739808688641107159020022075657074045245480345784489941381410338996545644919584199578059026209278525613146791985674769633187423412160275760504714215973450835502429917469191386518433760009886679443377085773133466794340953640094970163955617805348351245737879756725318459134518285399350166138680931949084294468644923435096854327234985358060660779441677297369317240151253026113806855223865899961959129916116455852666005125533291927958155463423478228379612697724124851050275542158248938901318972402866225766854984017111634820785706525077971099556567445387773727061409259389409222538036181663679620157475722983044102059320648045928992470645744559126704937475865099101012052839843666486980760819398135818715336817009769693293107538010830387722320339626992453451866680173617015679664923924336157728547578095601473347371796091890878126340034162550868895202406861881411137171820114456966467435501678926474932381667285565717654220138172035380643446632959118955679087667428200567409647090686400360677236022357524990399057742199515622235343841638271743463956123568072336955151538515447416655592114516836777792984740497978500860655846739731239886790235743375891426644817076417604775489956932020847324455246508872656571605698979752127816740199065965758521331718071393228368573085726774230549766756327669826899766021881420258034877817365851594131508881968414110522886409175685591812895161369522930044478494237331265915651647057405029246532516269823451240768085334328620569215348693100020737696668906903583247027068136543757787526900942180437326450250198726361442038026314068354728082405994835702911083181546967941536655381646436741286901884837157011537355356207601720846604344235910873664212865136318234397420212510668214188725852007748697680544872314292910621378503509387393990128430481035273504189903641018316805890698277417309063582301014872315833736458704999580315579732960777465028825728611067829966861244636810544308877606607361209202704703509203631542378825906717507272242891907115193568664285200793469739474604806353140788148974105528674867884393822064376785292281253212994817479972573902803577475017832275504299838081075492146691100697584478836162315994803216264916545251347688157161886567181385763808877031837741208487183995506925967188709024208622024945843467598221026031398942287901081544339088239994474553725170293109762264655205445108758362261341307467950285044327340455170301291392018469257599916571983577654611917014297225710467141881813885856667818617606454583945218577801953760818246568950553031959757266486432535729351618180335232323581987154031755356423858111463036026636889756328472098769240028810595471884550322571126775974566237453637086036245142238748830617216903009946792372687808468125178206648697188947370871653430365784084011470058922888406049498988262584663275914339386362458573271513308342175225732873968342102402151420368501075053281210401820063342464207517282184763589787449999695803972880525404091857510632233954178805524379548554357671547764672235486666795339120260858788449772613093638100298849535711723360675735405181440202096831448478003379845890480337942038523176051150536691264954598750000952856928556399778594758202355788566413798431767184079888414316677284174109035576019724806576250867123620720204339950887272448944100917355554587292758629300159492962068681069684058002089677006038118716305869325514441812871819097357140731752867313154020212686424839432573297162444378560348358312724496654580706780846976769423650064682380108625811243634414389912484619564276052793163491524924005764893073083963728009184955082053094777436569252180117206237546931551843458716712836191359666273676709329083222805813025343256665613030602386782302694569373950207342294950705001015433422241542264234692782581965549021808474046711619227755668264291664615657138916682027561143847830742436698388752671808830983533738474111050507454914931003727573658014178485329074378788092861511160127815556612735814201269490109330364602586062580079089844669132405522177549985642897410412787809641581857671920097907627094241559701948714192836614772173300677725984847459296863918168613830133364673767644909140126549738979667725025388499882640139884838558528212795083961940436729646579931927870567983904631960372063519264425108936658433625632285568977278312693050327961875956596443082433523364664129499763213398711512976203959304801669124022902774560175254767344723380300869646422293387907893914584729388996276514081923376123715711124714534383557927888590868343099192551060615008117144632436191010999399118036581015648274642460235383654172060949141989475169458955468201866015432149497430463954650281981297897287816800985638637657956611426519596875028784976005741806425012156460453358685955291967382443825399825774681423744882838852956780767517192379479681250363861107503028419629038265980634039145416824604782999944982151225219137635892444982338197834030056957318796562013398423958577991619492363063479787333789112613361493875549953004849134426453943007456765416313150371057594882678438935530883025912689568536408965343462794937103224014625334753190198511270023122818250728724628784839978557112583878272378664718628735471003146670734419940923472346962647157444100152551060910351151295196409075320629010821564186602877754730172253417429756295342188655545127343160194424427127852440339744930898839143089997741311085766461700342570388516193749416439079176876324499635909426747280947822257958961012768487268032826683313098052420707236313645885137507336861812173644024944911865063407275832589484711539980880294746865214688999178051635332090937852573625571264634663391384551814776011559980727075896857332524071850447698880094071704912913037942335934599651988539940354462088190962945348889064035080745703049904682850909527199555855952390585245324214657112774415032293193584699519808093748729197568997042111287427917224402595059176090645485393354433166812812156965923172750144820316144921005610446080875946053682663499107759711179768384732429295297166060645152139816713655286301135443487308191016251589875285769866837292666981798560620927395416853758367296639893471962498525478014018958180909083048844407627224192811237385529968137343408274039893307816887152529296883804031380451430785917165360777834829733911278240584445523457750658116929882916526918058300425341191827273100858375143645841465187644839480704768837009458941827948590640741158897930295333125475957867399458085248419428337725966780964971834900812757293856537363631147653558315927352397089793042403348892447934941911372096498570317485285843052225770095828110303868558914579641743026314605400052225204834414093295641544278593528462572533376041994115403323518836782310952923733154859940490158212801091679664499614436409775943299774334890475145832613398851863248884864204800722828658876324379592694317782487313183075776821323480699291770787128995564179806664683390497427949429202189883830324263143901755984066061542561151584582278721248539876149812958866302262206403676850872017170610128822757151577622098795322989443262766928915409443539775684337066812461888132386600832717885244363672373169931033237749701426337132877912266256549881623934360780324690834657595311542853525717505380768673283089750438561671922199734878864348966992651212728270217777554139305925357958729663264303882393437572066149761500177617860589569542140574492783508903917180003219250116171056150421377896348853056080132224458401495702181367823456728929545582867769715812101144195593216491680780389788209588405707700217010688614788166445834240416869406737687146608996389973299629726655569123851266199837834842914504777828433924329546884454900704444584696140846606926988830791161479734146236033746988220808366568200086573243337436270512294509912788033215904189318321577910327264107585590674815325489951376268005185746362063434584552521239310107582132844142163014988413124290307651415019785211144584701129707880770241996688925512175265048202350904521357121853784550878981328946151003748324954614670451677956187090730451207632562133488146203213621391380236405345457827392462055486115738124360476051794867144637712107268492880147316039455013818814250691190036494979715446461841958756228154468967554556896503792494612194121467465953170299088740298117718021999422259094079564083722750453195617307927236484021905760139573102096875244888009730895778403686064208759295558510111901409232824383435319803838231317404354308625782526154827366123412259846028055890817136942893050909339577498687343452516779108185364374661034959260544247055318305954891374249988987484211976420061457473599938230537084532425852233133208934507311210272973255633729425151986083013665615194627187883069213955757260372213144137165725519443194829866342054341989211825742610410663254503497436449621429354832324429867907330192763774531590714848761486055549938693939820952084431496025982871414755423410469456001854780224396513663764971044292809198074571639523008580278574263081219989106930599447794778283722201779122278930250426037029836508221770064534407747960128782953787826912229172291200610442443488474651695134666853586913071348724918005626353503240252157678780784923209534050884933250988178853592785402560822224965062616169296911538727875073333749752325595655245254736682671084700322825110846355703301117899384133823070745845934724525159419474796274322285299654068431635451089516826460708692645299185159727979695106028126468604491760844119754090740172282593035871054602947225808445323766757698346319916958042304693832205671644111938936215593455640138712654568009054811986415334597397713590059332844458804103662982850450652858397449930968938103420724102816889486545364336926031113465475663566250516688179919257579391380253306123139690361145258584210598265381737876544249589542821580466294655630712552681610061854154386979819540304046810741612551750844374158419873252824827741096035021185462357084752797627296756500229849988998781630364985939298087348081771525583777363754891976673004761422122621739960530409929507147570639482791156450200339480246012519659541904695198535421657756216412416823556493905664949520620467531990850135158110040999622451743261689009588327750214950773595789462399542921001984121547372428445599853954008695367850949521846897159052772248311611137041189943215804631028112903110487985028603160916880468307408423174336440561826480941402933491693204999051565382597144744531788637617839049205729507529290795402443540246164276360006987490437451314416578239850450250507272422636267379543765815975492647102151898361468430715071289373348187011259972470540488721283521122836528732504903179265905815282479470780104297502213169137313812337695727023586777584860745769299340181041299656727065056102816499523694820275235818781453927211911364482742707133205276571006355545343589241819981817060621148281492857298814179550296188560932164390840684371651735215888817593094939685531788515913048860392118820329576614027896294197345590074016727312260200758730449860102338488684087724300801548040212518341200441957942675278339773410303023729558964662151415437405312660564412607957960821815189789027460946163893418207941433971994160918441596924738293389462207721658245605963165492397318634980402874980941314094493181281136168681942238148986416126499480309240290911836960185587052835424101323557511714960342117373600401187257383051902433543390969605500260558597718294843386729923976037065343214421067504209213922190848681670219715950341021145013954795081382408266121946860112211686665939348250245231459721077128409453805048866263022735763847709080933110560155095794393465290681648865810879913289534534094744426242605690305015715688995138453726415386522683158876906356313702904998731634085734702002662251389478840828344833331752019221507540778639466137522432110465746489844242236528341916117996324343845990767110590143029421816087401385272884268372311827983672751016544306057493376734002776965143646957645269133360924090961903758890662259448520309488725421730423707043559709804456836011920688810542219932066201431616341183678483452987310460665156614002079720614894335440093368819561474033789937038548171289496555507604096261051668393491116315502712706144151511323969636417032573981285184096653795163252109655500915100314317773656996845399994753116126051084673570914959115963181981274835886846701697037869924454742753938359136588695433397347978832336244658556986194159313181495341217314117568040596831336598699535155210770469859556639149504689985176602064119436750796111726850012596610715002076653328190999011617780076205287623248890123539697502631964492899569435549639919768099244477447594024762052067133160995118318320516409865009515538545827391390468921240822867423984369366407344811778152905439372199914993126117239359383701144149108990384213152748605653832252210286840972335593748827542991764866901337998303314482259300710728283304078609125660422163410087328955171763633869540741313007653010595272127623984838418052571084095670154998560737172348759291026976898470109606361594762421262344499926988489559158662612962511726699343256807154095334040284548567435123099538057915297603500919065936179222045206479845733753381762379217053143929631749445749176363721262626943434502313326584952386708859749214938328921635333333777866721674470841267945383857816670150241846446184623710632339155384827133227693178491233748161910268912815890851544379961447621479710906941374411008115483388171851017783443004219046592352075097393437585999209957934240009628075467040015187239026731394983122886836931572997304116450984432919808527189231515987764450037268927804797418866179389611456804104496936880104208857147394265370544231781776668404421119232354703541552532563427769958918433062223065220402570341405987105293822854665844657834536748784359620565504580260856527753046185105588238687378104400333498528988487177016372768815148290282340386205011743366678820170621822553956534029069322242368757171134011850434371079288480809397710722374843975105668291207991293845356821935928389871168981884005933822916292775540479718469384263084717762016692752526305007521690927182557085445245867269568789462526291473951083977160026400369891951642070735151213210502603407522217563757869448441262900723366794673989490064286484440041028683274627250856669028638079466490387117244457963637594944243245162333986371068383133877606472401491545562002262796620119442343856994681687807676356965117204571529397052927932485857629495880068145864021703769245296544125487559956832755806499940737310217150783002356406806427852552612036617838812404097850702635483480401108479898822678199896605211294628073297008185683781665078050626748941569325741018167669457203218143329568687712221913556729118589779945594011973435734841705344218841286339084524401411135525488767629932167667477053542345012288728525280468034086746853202598766301867271322610057985247887041929149596125192506029325692703304858554548748227036761092584126108904744688533495529420336780735368715725649509646088340535845776041895372278349484939349318917434992655554336182253214915114795952095679289494370694177265429583273177925402654930983395246034324349990191309590702816206243833457626289483930030263813151750655465863029788437331823511382547878348489165734602308945441775717408240896602900990747921621297306499625449677851279991413439186514579286212280599933273535546452803885084254845491531468203958267366676417919821037740644983713398601872906654031905306912699334566893709429424982955176394710012912444842789004737633515501048616484443800692701556787412479907185754388161265065967793618207861142865429104398264454000154566063048905796613220983996968183822380121706283981342111477604406303185189159857339144977823509788462111205981659484670695751086972677676368435429228238725993466943896056100801126239611792282656035468223991689113557758842478710755135024891341047606416727994256060674536061983646367855304247038774705699693894200436469209753267769555683740711380049452138233016081445524099446586810034412392220015637269801004771313644221847187751517737970595267745213346500667722349916091684876379089411126282904499645448959686895254780382512646268597080219815805300796038979471715277130825091069412132598408326714023135015195799951776863769514533090817361333127106343094355286690499592372865207856456341329493804156555632304324830211172737636739909055337320988167037916889466819571496196816857053856731394658148276844734925775115182854168145348971867577160538722928570054008725001662084626514616140339787473865439953537943649644802744735549135873611342187214150595651000355847038444414450759443336158455364401173142128711267140843108358311961562712268665560195299384861927893870429561749616539689171987009339649686314332254659254548044142403409848988921927648855711948204342636516331092539567354064938189552881425563187496521829805914326321545543032999435210068986304105081171567522741294601075785425873887591164715748006893060446667012780300093524582512647950512820063142546503392883083573163421820613785173323392456323380477123365317707379973442676876026321782691703774995268812517963214570163861795648249146565070602070826792678099567564887014597122881212811234688569326641813244442048354526976172188233080254310117777177295662454066664814583543298532985630427522795104031537548234048669348444635182399324019413698969683073332822449956682738519052463465943661440599191193234222272721262891448228185277942576884518694562080182476967744683167457553949491447529215206425994605706392057817185014684807606297671310560029509875928650836025043506376828794687847740525025091783026956889501683846349349774807726691458598766630294853961491756619012110715651342002305338789000750231493150228060057059510677403744866052115216761575687148948318145968624894123170171706496789320655677968792587657761266615529139275308351792872720329099730087872667459965561612342267535255253031696993457518616590022339034400991201195546139717623737538576893265961176291765944218842084874804398646143980676610465932924381709325092873612210209895010514501207038487709310513969054254545966699590668688554509325746420044672582545145775364431790588588307160969631235723422049576585191833058964628446994765178265499890588279394397753484005779481198019396890619792272443663653328844165379794028555857201160066941307164585366680461185830709212964026762555505246274261507584239594442849937124505920119857365464674300340470855038535236688393139020984424550431073199532346174973520984973460405898908571612925999629351326784620839597231274429246761480799688854492627845932130821661059616271387384058818714292235733167372875108902377695130390354746632262150393740531709860507974581505564843938214625427593548976284348015106319612925387960774870010005723662222690229078459395293104959115170505498190309066340919914759083536461376099526872483978342347714973832425517483824670572170376280009679109521416089865693993324441618737888337075355450317740638820060355462322504530826585355145973088921608831052796626741306151135475732152914495712899016831900838711090307773370428174103154654494718181753444273021336994270609018149793145189159689020083484171263713322858297542992458961288803555378515598307590846543410292888785551337166921659747138179097123182355444376731518916146177564036960007154911043553115283976145206812471750586799873622783469133257379459922097199338898743044910483691025465707213849454395644351167242840329311093406528241866440508373766298742447398596103204459459629605358495528610905410975048276565836243600864836651807550474539592814264293373034312889543180805712796994257007401704867198992572751631991927929982430843565863380888961001187069444641915065490573857364448938828547879596518898376129037869985862201598402782095126796336380695647653248785239750075429178288614955489146157000983536105016933302877901590419089242235521261412767357316947695489911166216311666936478911138593276736815805412762437861671479633509266158617080190403732849514998142600691979276748550960234743183236655957157179483371603907432599593870889462718368140627626745367485680111339137785815617458582600937825934654275935713203099517788370138604369591244906787318570996110824120158019008606972899200719125161746041284097810780364926252055065087153672616837072252229953505506052376672514788202009591918030699461184096471773109682226865662549400837691608110971061714457001866338165684256893719147274360715041785629435432193150452842507866341753879225087117422960644690226904915410445838295126010237062270108595260822939903889268883453737585752216900166418530061147411660435481076160396949809393687124802346587098298107435107000653315069607667048547448240058544121368151353395165097897378139168265025262555722965083002609002595073104324475190081603238956993503053680009235593362533505109967512337581717689198068934573490490077040139309649511435650974011972331493375838547351098358978963320589567546542478205744136949372645208970159398845889234075001780134904081091709996242087311291979529963814728735364334356595880623012989044335180121764849686528832434731617302172343867979583673703231119711172382325919983865312574620970981289073415017424674722654437271065943118261726901049952488072631930898426190078951495186319999177564744238803043172314952228041157896903778604895221138991374185363336218434700812663966697130092303364693554083852471227274641591878049372926537467094594003322351230470101068891534629670995570892287331465919844161471392148694296039195645963074775097521253662325628034685675696691977255894068732674758216183699884632656634743798226610549170369721896207148096862786835359993990830809463864707988426060256771184025906665113357337114512582895130439584829870303130320165413145888145091619582134967271850839806946145892806330548070170778586494710792236039737663886590296237193489036073748217058250591765786969020092953187953349459147228193302509578024923523814548206292353236179447276976873937267236390981055995173843341634454801245770580912137236808518358766907484317326186624448150174098617504617962160512841639657347814978957669652982578014859049033870931142274798589252074472836366449911737937680481796643368140831445593705588290482902264489727835121924151119201323691985274153512089409167700737217303633753637984039959408158140610078284794269965576354447496728270697331425217941184620361488985278777190049138734057126106097654688625482388702374624043777053074444784458877856177670238166354655386535869600873129167763503704962291741314852576936348108490582023015963038777641023677249823370151308856821479679501522137764841564611448102107799169590605930354161742608685054717550433844898791902693409754976962712312282074676656716675241347657872106099545757857280539508587913927379272917646213220195703997436071287105331958457587052232760285739765311098786086321627527594600379736569951959722803936762300863807891866233634482521698506230284774646982983171291335469249491431214917080569344607873107871780387306519435069746373891054092420221478272236418384093378155327640357633589052119214196218723400022127549507483218708190319559983473750248476334361889371198365966010360246406910717006264429034758192495579759787024895763139112245699952835132446768330356011584407055404401550277319210696479907295199784023282395102719432391082117991217812911565694985032616991013337342363530026297260471182010264059541279388782576656560469659039721977627551032589434761948549104128848367411030746499901713972830487574931909313249670956067780691014856628303643803906491943922692562889357171921796269437998160788976927274134881789222840887341352797505164368453447655966979057894091469378803397599529376557275534394538309326234158771198685208193513922986211454968906956264110824524361323711891488159565160341626508155953474339512368669033883288730819482436637456240548564528481924860753636277821080490541492936085443249807958508988597880915379316683030286416583485822668322988922822817455505193289371455045289958565202270743556538731760140266652659081458572494303831294816629863181294118838237860555897602484136254961464243170595501361904973411567065245947921692452774201922323278470168924908701906827784134695992179856340857596513491156637254652031632398614865209310826331495005389136408051495162406748343168420798111690637059701747240647007145467900292853175568388086748278578318891307037364856617423694589264469737562040190225752366971959704201397140520771498944396347816955455255838344355439602495272905958093657706438633597459415172591267644882261878631750252067876585547118999640080348308617567117471360913209010736020430736630648579954193474675461451547228342654759881333674747359390449537624008805675965181647317188095155473016539740076617516136190617794676564811035447894870101179177143365370222480827226387549139303987998729697583149315080424265438147745006396074256796210214386168347579095218550015400703704626193259088018034189807104220738501124075024301785777553671423012916552775596228751130751162081296221707010158986783396022067530869505354618798232084937808978513406825089391163519887022856531722094857868298597665664455698180317244245783107995715062785635654621818215513465385847108151140703876057461617955505020745913071324491901767409967090227331686877190307156564874135930366987669759525235730956140336123937116867197295036894213548055689923467370123991371208043109005177792724029225770457417184398219569444432186751740458908905115225529919098223128952575828201005850325876925048644845674264692537576672864970157747242471036815517797511809908593964610965805084702950563387908249848553448571952447947636796241287258547052097379944795107301863519939273227518521399638492694665113072700083949735520998839931135056234463007506188619820588482868961450218068032641457443383162884206342251312075161448449487526078224906544575783730893441388812712604074753443042686824345535329294067255529954618096609804330277290844977679561100533196918021889174023437893335634923721223236862215004190242283229046847902323772839543103324222945472621878613531970175238085189734628400141766494041131828177582521190536651633899210274831156911540259922602678089315146629786859923686563850479983666754758591998510410172226611911873822573882564934677050833184767760835304763137895628718792283884435664305013925227791833152204212558847291532743241101741929951779936267065418146895241877553417740030017418795658475949976588245554423356070299657475619377591737352885513984052801184890930188233100861402811693189909528539000285773351755434422048554602620368256496665408834010177052683392775881104186078687234107951956925490615885329505306600452282810156364620436552136562779874824295092087571655207703985666571414148935164346823376031623678191639207237317082041189603007930979524471731855951295747237511156154314988601104895802979155372315795511206686783572394417349580746199559397383958063074984354813104615298869503775231160090404818030787420505241657375140016672373290036968598055606056367486205017295116290919689786589754315206653632242613989862745889408425214942226749826325855962685472715615836697182176390100942999733377467511917548547639140812942149079271659174520597650997413586236380197247507052552286577332783916059764553158348176913337787787827641060107240777434385218323717775695012676828857731234168110157596589899766958887789434881615802544468027538503394604581234495286447032014885119480756077469577886083099667188615491675239259860695859523723867076470200542181056718916581943284464598191302169270577414616898941315951687838359911595225184611188470565335268234890291749682237857107483965516469342662710560367528378794918433738990468037466620816074982606135551397429009868104327959524125490779886569587989733954416988649831668973305027253432809955600982651200021171077823376750848562833725322158162004273987977423793728953225106545282142412521390167359480880209082366412456986346421618410663219115631620245411668252280938737900360987447061930678594541786535771723929583432136856413186990481670461264582552987837696395181481401945873259906262693871912329777307435417084976913605465651101428529694284752333578569584982559702805053118064604815771495627375262469938430189736259282156629881062041613670886378947883448268472526571132060965984116287438496760581450835427886716532222476124188249885222176321829497963975906051536136512297178556405468783160545067127917920864493655238010184518221373008634375217457599614623408466212567104988465086108853210221722224571657375933075708417490695547846350997561377556552363519262621572780211730887718395824712651290148655129871423835816081557080365548785547363423321922107667685276552072043118085974330420024384331676669604740449845658566290708638558544824198715065735533906862018089327836236189293293656370482003581635737322347835053293624235164250189654350163383599427484810304209924270085198826832555346490703825714416588898707609680971983622829665883221184984409107455038923231437077710978109678902742995589103350632159792186523267930221921254611091680218297402372083507086525634619940691068090354292755682568739432378122019971242093198415359345655965832701822715433468118940372275487988752946002943668190178093559034912567125898236993704780667804482877406442221526818136002654132780013186566717011414511748219227928688079016830667107126703554209592359316596831234572737209005567036658016174265560947533590898265556295603646306619322729976832311203988626012078143402352374660168467871214523942423860867646690519030674921307531404136703993079025832537003185133721920402277838380998226224595067573942848571143960693867682306319117466599964354270020196848284824880524998287409966278590943474333179862213371405072394478741282029369653073294364117962930327650379463901005837410175312992460629584479341046461750084250442539210100227317183227222987772472564204287377185355285981599918298199684777795283362328462784611198017278712714170392908646207694225944951194950740529991558507126196739212447928373105683784052204040351801661498343971326940451864812902748401803420044613461471263304863591874508025119039958419096412540700727649696333618428538360616174156875633674991965595486676202502484957940270120994590162892673955188241079879760643740999795811000955092772408827177875708059908132366732328913315472212322907413812661673165272996617030034677513099872782322604011182548679486456938368767667074795029925164747728098912105575076175857563047402320146889816451863308503514702281532450702961149256939451401137001560663773779259918158594741455118532547197548124393881233270668741842075261120235334452860757261613249932116983490855941367968862268066965198741290226447797875986270384416590096339565162423619750851247169472675027985187223987780653818070774814160634679901360972731545299284346973620052175770768458768034243391530385812275116805917697814661468575033534818122455457886460229068942185764067847762009442935975299443387573171148355526202753579992013405298976844013020686760466994633681233737016688814083808895704517788329737892419325301681117149382150775490421529859615584475275659990605552842082560271177959338257711261298402732511944563251527550908361745104063274898865511131621192763903785427394755017362716768863442712754867705100572455791503756194236541991371498497503314351992672671756946449011041780251116256432085851637964822922530195872200467168614806148885329163020744772550750922815651054979365130725027627066631767141790165055579282862224635173183008725288711730554061999410400965543570600605339199705605476566525113036480059052255070259447626982249852231643867426709953757739997495069925037446002937826723468832985176307307835949444226465023447075040556370126142730649942150219230140715240383580844944054280398567930306465231658522316607900698586652180188200656731258122282557098537601831739875133924502621014462643703498320419730217368306019037566603694673677965644543895570642671156000637141438151361439722849433781713888200580950271854865572864196397522660370959077392078012846939685868596252831182517472803065762042239280769845572925974667182159683781815053288607742557919318948269433783841790226702164846560767130528712498037924120442285928324944695535813850250887358869332117764292187268800963144071869926720275430488625898225767848114652555864914171759684903608523765734222533488084418657935871751962988734445157605358769195980053610582179769928398485531327755862502438232429230023249903337325981379876841928468525511289318662325391788763929124753852470461548900126875095510823298669475730073275757262010442548529759548744307998716607987803348170408534557431100078064539784538832261545722842515981671334437942737286054309536463478769779014252351753363825734855071713584631064744901639035478535787888781050509150218447097190731866126374953252586092472056643707894701130786996002728754103453938635008715355650917950255575331801144334589155032780358468317951151538575312403056515777875007663079715351249296773500820212131105748544427191074979783777124128491363095753697696288164540746546975148600257724242996401547593598975792808105380989057053516870070372471076591066073726210080452207583055004245976350984760450858582287407651855856852926879341403698739952278652937324996008936928464840554993453693064441152610892667767408102666050639768892710985683306103564567796611363752696926057260829113713928566032772678430930561673303760428487144615595285330247684310020712747154299142832870375551676527821787921523743057426908648271394364565330734593814884721321018451348473947908070230175757868029711048663550862684917943978592340731357568484538124574436424573368438980762160057116048230442204047121560255769328935707783557637642455467989553324880561773568574018314723364474363926125832965770007288292213546105936459685258233602633245969410547609452032465481208488635417066455173995029753012191783618479737553703814933302750510967385351832566359744181624203703855518005229228876434237314243320781751267087313010117897168515443995700123914591711989036748806463854625765740225237819066734083809461911566045617723728758984185003274158906717780494917052182829582606365744425838659445014144228975625462497005097264707625038935421418307820572925736008265228220570626275719036345132283835926591610975139389625979783820422448581453026214890561241952475647479214330120646461681236199479069973647650659850724113511222733415524819799123774841633920933231403211651018978030861590083536784685704683541556668966822271260938497664658838805303461372242436552586125480089145937614209691852839466559669102726177078198063610936104897771375907898282650136491602796185372037282280164367491360586617367887976203377614964195282643775284836073625069952128649379138880396548145408705866272474199027561320470617419489155211193318167232601697455227475008017160530103787435487708077178132103743116387022085963531849433796796877602931272235022740059212915037017071979302794363743997513071718957133313906367446401953904387319717469065921747326935335492411047210771573113227382240679377049960230397516628203253033898896847804147766195099084152488734468677180479300165622163762475817461774992103000616530078775641229131316092384656292696188379773673067134656510861658035130611509204061869151549411659736105676121406945040943629809936737360986853649282056424139382577416688347537285144715685523585723594497296491675638782394022660711662719736602662815687385864835500491884046773314970491794991845809920353712254676494793921964761151546387730997583991415257604460089626393207087081427404369530840597167348378288275328859453461770977392894080807129800602152362604740283360294862508494050379289698707137635846827136189638780880754576291119075015115028915614483778863337025833785746052898463835062407205990104332553187125556047437204993587784204515427646071900380712106413586978709635237375694932467313086913601349771382161430336104574338453046727493741071893426509925674414197931454859463904677014389030135662182388407230438719686645391593740829849736873662425127751869190743872938174956566976905079787516577323182394082912681740908452948452456013194354410233814189699896966324692679290399426285383779447895233622873726164810876315494122840736671235148908974539132337756206236360395438556431413850281198925392451626539102288487860876486586691682269971536007083586561431423745763592051765529359527782499186923318823758528662696682494449603471157236437778720738582519862761957950797747618905165278260774630309925227808166020888224987892010994512355560066613222293235575173785232091003912313685445573917208298164852846883129932201036163737609587047612423286384848810258780859279168642281172830995275156104002821076023273441191284278371275981697779689362467269330276821392275498574916245803979541057662105610983174868821136532071397532920588773943527970336367779333577757019878191628650641378270974568017969106231417788284424348891856550191005191492680211726026563292976242826515329335809571565536161277308430545380647953647828569011885032615869545351478337994211417570894966676999429892144869478739359017697810774354120284731803087534108101771298943179406774614061668988765548644971058397817039275905750098081019038701822770696872481574356060629512594671531263897013441226997139762567059418733323357800443428091702239025425049548524268364615959187193911473263061520831657550646688090160568041693052384026405781650150494666831593048252983175877142538930440644854174944179620137783503703162567691121156590010700680376022811018157107604588178461595377180408938094790941871269797759420903975808267122853865504753171929155145211979503324722271896538421229903027163879638042091374054014208754979325743065491157505668011300063794577229108459340087635992164389889737138526001455395125893401744247379508496524456607651247123454356491059879760999903514326920518087992886291190744789748774639177866216781531658153741701093008770238734327353088965990283528336571625681175463244933442153252425246515610562343108430837961724993664561112078935189383090216429136150125769293679684609506850549264220120396246844334711290768107372912151839642690624388435056645671888373552136978505998603646561703421556373169906158493523036086005263688993145234473851448113645602450679887107037764064000944790933848301926703676624718203999312895241296741547675315287883784743101458645476776461181465523979435939230646092575530069620352125265386550275660510986689500375390047408356570344929486823776772615780981447553554489431026329409736208862231316309582158542746068842312144583257034844342176907922870300888953965761782632739681305251786991733387330375950050596407800072302626790517346972306621688496723164923453732785185927858116875942401606317754435549773161395361843591334085085358409235882085101492442526464608376656890261603018747013589813387870891663452305863964878272370068096516530598925943544221189420522462503432618691569524040500417378720109165438114477852138386485007698712530761497637587791703611066379148292467208549445353193970771473278672098712413129636036938948096670460800026507530327363076538677923367414890082968765168756554545661764292061997967550873823300750580285770374004860344929437385667383900352369076627301723275337238148249195289056394393609250792675275733000291078115396069174094367942967225163380535241753260138752450461528788173244948215880788775315170589286805461015788230639044539803014720340130457447788274565389166434692894378582722631184508082224571743613240026797764455630932115974213015507373084742173144352752276605407643643810897355928130717678902358425670173013936856365849247444964986377161769595324613204121806997660536249434854664022364335181169256633068651519439221577860581594968777919392118446056038268803011753837950458581514235100554468628464247959031385500030770215272619673130699409758374678321282614558694543814776115158505105511744291923354521406262663883229039042962314351979390175618626562648607842165193909921053664933565556445568612791970464033859982095372798500673475668149699263661381858361451763769517470657701297721297571821705054045836504394047442631219212004204603531888632171740272474963023560399172297142309019971296305322870888539300942374270217163955429670204234864040384119313648278872485826817622726944101841673433578761528302604904699245455742795855238510069789501550489690689626887061933089157192202193007947602479426815160113153427264668412728201870345472410400803930417319569245839426938795067674460363904795826229355191839350405117831508026562462461289496861209488350399455847234752723917052247163510457840870386899982099208346654279096755526953139619195653807815310449855239327309619670440301364908610238510652144449263440347361485380370719080077018780788318744932299019869343502729365923645138004488156270405980587046488973664489662979951238149666350694161036729818974155083495994529023438277169430319913753348442200015648681619737733367691120497246551854820387065471750442113246141118242459429492379283844459872602422480456196376283666710309167163421733425312906602661831335506910450071000318400518295516824470069618399559452976866674138515023169912242530926081115193166689509732503643084435819456597664538849497564865141927549297262941035745157185860055112496216397503356376807104658214529261372179129146891286142162155185795045271671555854231920847392193756277957303753239004935738014081017410858030752024143235393649788674594955054843210585877435124787397366232682765406696825402334763351093766958690895325700820847393852457280242785574848567538241155153228800620322148847561963469536150612808049519789663851206905138055568508009242336348998297125440954901203986037795510447999472594731248637811602863851195135357896409176510626758160791137914429499746064225803056642514521914523831537173012153903782186200247094945836324492455054788391652420485435220672640948419076236466158946868289837924866519434696385702123302919304780205976445680116037328194863443898893307190267227948720949454186611008388836120276627484660357997239629465819785969625745847241019104470292991411017492140162445682357505574368843179494121602531164541377635166237111005987098350865970575429366137316271649660815942183148085589592481686649816529273335055695989215063426135306607230010525891960778726345714392796261582850669663433465983316938232712589162919759106999217334712350203497681442274727085030288130581687829372163373895165961986567491396807406862345696105220550100257320683909351845384841767680096943806651437319473238838407849810963973223581167617739055716916460794898734528454892555337489857571444409248344097697254868906363039004300998258471642698728952142982143738679299425634109053272527801026856168155385941509901632102334668964977235939289389668226835143193733042265117392045928111817684959367824458650048934609661382904000596996163046224363790463413342469050017400798591990250685150264875550154940826226422961188141718785432894570551470313523414885250131531156048636267640052051389553744450982950045536731314714056115305695593887912682594278539484273710313867307428337141476618974948061825726585387894946099780903604558393582941246475813433053138046835906878326260201628344952409438007661747592295608666763101098495362036614402895344159915629961624524743318453284972442598846923871465811688341004903413496997173987935264313959435889325184045331838317395679369395912091531360798652412580388578810973742341850732181272564967926035531758015371264475323506755118519216254084883208725248748384854457479634845709885668668139739962660873535484736768795316593519681710016618072550204201618130929929601657680671233840012863710282293693554543490960480417238611458432641287184196569184003296042627498105466633501828055850387893327722312584576536710189315398970414278164110882024653989235080522246812052725061324479853990585347906039292330923667135624001236953529001778810294129709304039807806707518654879909836930594869146044077156845077730870677260180029040497497463999393884488076267442820461378820270303906828494835037126823443029933271381308946569211319131135706307514588210509296648739565605840882504442613461740673241498959388169103411721890952731637765053536203827767580942557409818827575229417166645678492918113825549000279151530562012475069881699914283581251521179453000179881518217705922486057875841332456971287272669148878096321667127766266091407713569001358919161178824778945302834114146029721213262698854944527922170211616728277321986201260933839980976225073610818575765704984298072637414529228690112290057922276763989041743988259262810889841326530620777179920030918477159401863132331891906157042886021894087081542724930614267246322474177724875732600013295525685834896802254728853723860294915552824101069728532299049545325793658970030442675432771366736997507840963528776472681537746755825715366099646073234338730405177104609956917845543694341799554722189619488635274176743172906499561543227445642298705064147848789859448296123742042034466487363895766249967254921303570685106274174266300087984588551659211422389593327512367965589640372788010838930348105000050980153847325349230240123666167544727987032463311729656875897837779582439963352946762742677370288215314914598758102837913695546518982237188824504097896105834306271469870102379514131076273824625910645455578191194400742955986437079437200349128750437618476677459251436146724621834355624359585322124903404237308626509880178415522694807035853370997555420488417659431782161208404570007042240914643181609192456032424840817892073896653781065874542459498159195733931175850870759335697621195159819820125548869409728135403383413957212745162750968090313553246600775114025376426647607147868422127566226597773755998246010374362413839861951475588375781103673430597664810779271377241547033343408416220854112088426545525691066739947637909030960266428052463544200850141654110371086189335380312342160648636976843479743811667649091816791407983987758403287992622100956046324270772022735741062784739474130312774231533260630866606786701155602797098999385409204393965676538600389680606036843558899071046939629187947783270074514528252357988309391713939449412665242950753467630668043327711243558626973447447029081601417499930658534700058743652379184717209183135673548265627908756249194079469802650169013079887772383409278555243340069848697644430425944682285816398047422203417094333432825220773565581035197112782266838488136845106841867844794231376569483832808104524535952044225996904390824746974965958539664175212233855731120607846743747695296459244815833572636256781411297226490197918169303033960560722720111596855625065590618747852088760249132659946887182688469478384395528577132885903773043162813277376659989395226185825557858890275331536392242985021737903491097438768548309541682597746961065770458233226781086237117778389248955773930802315632811491653173231034586590457689160387816769822602758766463374001504657947533714078862545344676226448794733412002033186228809195901599185074229102423941667953509903019682396406500861737120009519245316829813575034049698567759654348405759817643212932220344571370157522791009422503391809778992968567149286528685886764474492709795647842494658431192879287795226332976757516712256056774845387452354463924777184245843440454828173662074098977607852613068354889709400344419026043091097576212717171518418150660748527431328397641324297515852589550684671885268492669184134100664652218315504886810941074788098549376546335220781418055069892466435884467556816752601152291059561166534100975969875958095861887902906454845623532261576095583007773114268523052381584521745390275350288718904196001718991116122635620884605713311682210508944786685273029743395708886835428182408717717644034174997182430329410197486554889530446160582870644787767926291438914839388220849688950528850633803830573261601381612765120975238778140697050466879105849150211107264558641395945648629061362415127147204771065283982729922088262104231439709639133677648337716736948970014272559055768234700790918534373619038419849887559713198291615907216675670176051523783296055499319344490625670662255859126179303712398417545308571968346235335192165552038368694610250512919260354609044662427560739438955592888006924875709317335211801482350216167841175369570375279069362010001496111256704178517290156359379111725753239425218321069245796362140587491354086078790884123961358661034474966171877365464397695357872698166009300280356977202878393832996357540758048018491504356846906595416259661162317716573539125906480799766987716333881499690778310882659578174094793968138379164369340065292675201252721994090090060195649883397901092377988029241957891857098950085799520100113695174667809470271902157588945885122040656048629245463021509793463473172047657154535977170143506333581519512248840309311777821907888792531096858338036160322634389131853955059116023174613949991484391868720635305431189380337645499292375191008337172416162572823624575630495199638874681873795832399958984946521248386612867813935865222577852867226404862856054477195857111126728047581212886120120536485084556367331162410833828275908225753920812414208586884741716388933213381072691667129959955769565947566922258109607219509077766781602959277604191031428103795321369878517965328260168071004279802684197642910498921357493637782765918134071036818640849344810063565932515940753460914221826354266735978113875844826383095819291939070134577178154360257018924202968318786360407686712337830832472569004526029497413261200135942811222627329416415032686044924045525378140228578579776454543961038955376929668940902437472103690801260762779489584322249745733690364359637224115249687429095298198223908230316979482735645777620886564807394824869925428001984362954180393056843424526971368612905708954425052009553207920227486332705748166024925013348391767538129890485579974150614869786507892949000181680702446593659635142821325445186620890043334869631546611744193149631172859178462734678742841055018920300542395307389038946082560526674764825402554005681044643695923901257038932625277369125307444170966716401583740191202385313712101157580019756182051678313929927614583462641639967816659324061296683371959463790295005568990299842093914303331521391343115127544246961084784259661593306723586750522555849222746950255113290664141338213247999298469640846154509889752604132957649127271413168870607121516510070432288493433228625983704105469239451196106950729409463667114895147427552708741215599234353070275495070723736576013793696813117984180963203691639511097122314436250921088659125114521309349330408136482731021447920135939766378472412953393673210429570093211049782105881632097794157464621086419015539723734835570987494117274308125530880018575455300138442044695184324206265581407328137047824305136806938632816298512720465077630673158651387471119358801864541294757620016644463621510488623604302197372628550183959516201710317125996926620342351953088022907461808037865310836999532141085481443835239077920317717751132868805120059630093435474753083359860336850029028844071493073345785238133856875768160613922220306230001665375125462412017521544250679669441128406444357968227055564804830761553100081624871270504513215135926417200536043603321739547289437251048809071459795572336696882526048808775073375072446856127303220431320992446800342834443348038094666377955872674597641108282308925196155514223432871438474519928027878275716149106177591684867435623699747388609451375016777913423327631487444408773564641946241624154338611987568583971120378999582595879608782086154790992354843774155982064129186008551541675149154509578585166365913109976632964223266574249425966581839697619153498794637000786345424072661148496657931252187818279958045793723406923147527197978095604013948381279918390835711082593917939682139998282160229224753471513808711181896080429940652199903254110545524265607471728735230311152912622591806652162601456474978320113666714030105595607946153967816483481900756364768270160047005836909753671336961056054236472487963522373839524908858417387958751157466189592408924018504888687045191985324328093075898890841524714294971327154961937888435455416924287584915318656515070914535291216608323560771384158956202141530739567482925576649115588707134114626037358773614957068104162770500336237068403281551292322609356979390600612580189840454262606225659107715080238970460544891279445565697521347538995886326831822545883560483144888047564695585562147714926374171775102595163943759390243146794832205876270859310321086724735323070876025082296016792537286140867537676664341673613161130204351141496126231975270744240901169228925189813139922981553354951219789007324271951310192348904319069237937261575531937869747996537121743743256416443337476002081704009090478559303031808915176049806763058272980884874177129289820492123875084646580862189340749770440491693900095624498910179432571983596190942246779515471790872259007287009233630679997066379297217333995539246749409717591077106214369096525304719979501721393528026721422385988956090885153623940075167247415139430178666705152280785629952386502338848661059224023481918256084615226393389624833516737914650910016671480225774646290294599407760069773147732705575727884040802456606911468635103610056497363299704113993287979683551189689212865548493090953571026179973885837286607936506860987441389079052463288090551419006057280537646437405520321699533368766235557355374306939700373685405756765386812285045151459622606116325708052709427089202160662442880811490932507975325185859276194151219286276073628458592418546180958067213409403367355069055871920163436592241059421147054795956200600215958443936090299372323805023749474865742149239888456565453637040352800666751309475808600417527681353585132778424778250151294165873498298920114950343417761406149724154379694395989452538342734187067428190424696391169290584590216728018062251451180765753278643045584340466548916073302765711750706389294782454723277790494113109178025822873496873298316611957206104406600481007109788447118182735902222622070617105838464274662228251798423346728311212856974877386773627579207278692701463235300789242392728289099616191729139191875951086466738061546244619008038355396280787250500130427681727510619797739545119355243486270827591231882341521939998933781878948427216312369230851475549014879763523622049767687329651091955309629378129400639396133934443572703709924294048603336453458192337632471866962766224552364788797162505367697408542176331517447814919357318667022701211582049399960548085006030247145486679182480198035123488385864531751125790740763023901236081795270953914675263033229909985000990699676055488461058575543668821123489201813640311484269723098710580112469941284695074980293733648524791045085739311966446349641019010906270985209620977270348698215145790423099190955082499242487221535800786210376940963078736127376205196532859409606309467998782417593363319930888185760544864693375668777183122759835495922660820804297401151505738022067200587475496520234967738124069067277022577807668967251346645075887116044562381306354198198537659847959437635207116825160200289207224435214400102433836600299489141109401704120898084214292352566355861147517934655823650839555595066880907678285802019840307873171905853940634133044200676694785622478382167985461191575558209886483070471284835223706374572893046835689607978955536775393731813282364831089410096158790457541582097678093038433737031093175889538389373357255386491568945830644312568376046637216992047856980804659387376329474052589747535601607631471634903664767646234851179559549119013196819581489681922102074398848029729412978624379526112049814614562759928292607899020321454588028768633569320316185913009976720998310143511252470116814600719823430979455910925828806090010123762476027088748893631574494719716854817917754882015944539829048895614472137593097599191694108344822286320663356246808477442896101597116508104604048329180852413193446341871857293181809605207731760345693962298477465906166799935204840599841505092386681654929397317732377112848072358862193776910490983143945961828369563063563797031780479582448298149977284447064918369343143331515412131066135592039014119150424857371152815059248665128721736722216619452366911691501953438959424812852108882186608887990707219731905719621588550510008155076887454463406824992906106706654606433844380868041687232434276303546745522327112684797406197552248852190820286326197035029106339290493006876389418569979625280459769764769935444678040672721680808814571995662631287496421224049037573603951913623240662114339730997934007576653401547255892443135066938730899043232295355296042689066620728009083572400436599942654218607427794703409813915023842464498089748170209240358833373631650495659465053326586812604106230650451291914858874153022291226173160101643831554629250753373536765670442543248071529620859093946694207984229865536269917733132694303619469223844712189863096458289679310918067512484241749317866383233051902650000535479314928922203426722291529872466233264837899015947095720885290877523000392133949628414390953464789342859225789236817633761192002314617568777280861734368099997648570169516464566075914423349942860857177171077773821180828115694397732667898924341135707469944598087652875299001551688515623530712669172361975539225646885252774264791287655990268930921007328394423712203298709449049559152843707400278072756890291927009742407801988102417007289951140837449631592056765206012750525230042173687942801936212065716258956136991557835925425069826702082732520060435530014432727058363017534076288035000244211776432969134609165033938448055393510460762284727400628607754854352086848650894775441723731220529917826663237768983350673609923465570924944455443564896329486107094287711029184769987629157477319009670584271486405716579463925125430886634111451327429152589093172479300327017933352191533376926604939506300528775358990901167045468378023312670457900399834037538733007746168038606254932700560702620978472115720479488073506165826866254235105060487590352642842460162653506425081227329687798297838689166880401281052009562918184306236395380577019814646398708802074213358766461898656537811650952254730986848401012941354912406583314511817376038118928985047627402394545532699706410219242465039276967932249626274893608617049699679508233439537759284852354047410088607697809653414666738643478217735267452534323326323674845655446539420521485286168078510434940266064494280125326051499089205628619670585286593960677395299230877930205637029157839185897932419506333283832910975089536147833805196451060379232701940588085519572726916926453034989683743933891644249586839777852985660060992078479351096831374028863843852049263789223762559708447613660752523715875145304534734000078913685939675594639763972019132924790077996644930433230827947516825746055978106099285550758747355551322368748794897716207950221238676640742571250026898001801125924227955011949520038373339712814341143911782127864063118442890750382410708196532632193165746297648096429841351300686840184189847415018613150800870885497871583039215002367554584601208088052419376059968735467101771945129277426590830128753586770675654967674222761954486061869066582757446876460985052915514877456487993623151122620130511418575189831319357827367926526345872541925994936593254136200223682319719734485169298220683403504030048200173878156298980579864508228389298428441268215748874715543519101130580021573431320858928754547489821938252777144897070712555048156028046657751300265887107333134405529184633821957049086497640847778189428339595418136881889601601548879823205143941926362269588062441661294733599392315949001136606824161794961858376670172100465988501655474690358471998678063780455461258554212820900391965771079777127221038381951451440984909327276417812634229619248592280873704655517163076406868954899482723402202747974818437034735930223900209282215908439130216748168791714436435176035666716431501650080676064203246427541637409541993121280464842741200092272683270404354494803164350239058873031989985313915963538707563661675660757619145408790406947381956139994589119251406523237302889280532752330539528496301484149490401885852382222200634755539838853631200638465119288173523529902836571628240279209239024548590726231638220246316296132247294826076978849319877236980069626616821292654089329980417931712530480672742342931329979251974671617128119110810829287926614232883915477410035448531856571103429770451379330842924803399165612200688462433203594480966833738770410138630266701750363790347584261568320020141712655238907358528595307945983196964114073159711724854297048296505380918986586823637982949230498592770307694594057208013925544962530098058092111954184989318233524332122753172799768229336161519411245308925989884982958678592922804060638994936193126151643708981088388532214117363491776698707238992626631180710048551254977974074059503374615857619271983823435139575189758746241259594218628044765723616347017446877890114844239253107158526173632606890996573225392131966287973742549848783335419649396399460858632022614967548953448951168925995720055482143760335892211364722933830034989640972968223313977567337554807458317740277658026162827618914177986045568866123767625501019238854807632145126046331916570853911092886328993613018976361197649089133782143380465783578218231913312595130771376402126046704691109643077373532674368132444923047331316183309344749142216862125150914511839710021184764094417690812501994736501032208225646686205887147415475527497354375190473200043858878317810243135883300280885355007101517365700284877348404027363995758821426290701487385807846839181968331178985490155011801197536580464283036774850390362146812222435330014274188720388765576142117915689041698917884902505853664794290380540366528539515737639462945812299670866467841897326582632169816049854022747601019692369934130302428195192724698228308032469987150702611333920595926971149516637537029149812578226428205003982567474944373161059257216946554308001298258593230048794510699792152101232784903153442376495711299132959093539580689284181761037816404015152245448743103241330903976159716311790846613009646395447725991854487124041902377002369814679341339457813842544862820779114523525472982752454589395383007088870258212429119746923470666262315895016422646532799649542582341530861165706296603312262038223788862825358477789252843665533982568747212032258577975000260749989768524933001011585858119758613780955197449466455433334245883517691422823789631103308625645075850798598698448400685414773428840295046862956199484426283485756263734604918603034563293592050793062111925393200519525162942557437486789629582525387014487169906157956342493508704629844308202211862132328368157241610934523903240013665036583383867209939134220683794946239761608498290710310167654867169363466031909775059624269417104724988983475088088050316797095816049804739710943123270110647393219521987167147349933937395559637369086297307544085861786004129006988463687720353784245993657020059744308359283214804568899902690471912421748997131237108398085628400949106258147044125232137792304064541563449658810700546301558577098636226200262190238662850999116300915967375449757909247850214930942452107109673096528572266787945768629568599377004277030681964476063397562108412692791149462267318783948529135698880742652761356031911506997251009798571000531907364454994939822177279455227145918928319541207820360014476498601465551754091291437149588059250547439666165956756895805451652498290382095200776785659001148177980756049054288647921731845139409588028524151010484492341265556678099561763635503908842917585837514778190898921303253804765816826068655452888651424158194656214708872556502851383911770413346248558283255456373951680517536523637427354371529969748059309242031812857640995566218113421238173773635615393344267767528802534617266535143054579449046638982157849307641353801054428892986113438256334910139222354304993032052290349948825441250737846321043924709477571965115038803727636911318523801166562290693356582661489689697149509791813077903610788507185606965465742173434576709197571529591422999656631572332235237795852096997075167711073670073874618377657295026022749278251077641329533021453666250773334177581268189072149781770097380570074717789387602505779024696038897541372963996704068873924964015499270413602842835007313515037163030900538537589441312176218301192115167375372654091933506507871125787894422754859774978706206465883390408417775287608455474737025066137964663794085228424647196739943810810659824253118110183373105812817934013685510593349379353602982152701926090082959576511913478708432039127744605512985546608196285343642878905974439709084164105343247713414325995124565338444081387737910615334787270169865027507128089560149083681533071044440185785018774151213594718183586608652893952645965159782726001573003749456751891183175003828434969922627432612137750659529352638932748588625827678142226534801857969099168538815042787315678587668342863771239382133150779138283746912559941538794518553215111138954550464463003958917139194575437170784395095132978137074603207965288199624910482813067571975148240393101711047808430866873731004831713296506453347012831184933678315036638491997561716118570882314307854070813226108277862319478783625370343815285041759831902663013992068022395337012379489502238813584553961956005336546283426128113464208682571866085840883171294167222825232964716953691738874903731524745992627717722930771912823109700488514772577592116878658679504782327136834890109597011638663999686423228770821976999841440527701253486202568045149404979602161734801873018404928858381524544082544666886088553273156474768237014527237028172519908532293216881332792634426073172130611287640425014387492761860276748333042787059938034003158469950549775073992237232012614055631543574455236413641249070781129430285322642266719817462256862348544819701988787662951033408540657204664337959866541352711554767859132045332827146160727483188652406895918636828930514559479345354921846772383022460080368392697404231390049039888468686601008709182791350817660653856512465162562023126072647895326084546826515292757243394022513229810171934345686099750090125400213056259791249540847081978567262794710716823866628268438022814989921863299200377350643199202293769555069733600650040160425555689197492339974368813407276885805189169264818100591754804162672984139683048882059326907411830681595354675097265057255451778064859693890642468893851170041758394995248058062260051508595003531859556593234570724725876490848300634550981697790085764923070274725365683730492349713150045772581362686073682854793050425049101362341720575752483333964671019796691877011714503049658177731796710384771172771545196328675889759162216835806755730375830830762999236100966870517080346028831768113005246685346961488749140977874670347988215060180940972035294951035896258122650920987415453201040633280123026106894297649315462598326739916514211506923323461727220986972996579935779595769689909324261535437083349756288688345782930050301869480791072527385989364785188218784665883246611766554914384100137928878839602952550435317758891478962445770571747792888168154091895069212561758059142480142005511226943146746277947952078347189199402929930285369321887755312520782509066320136807902952071137692347608331244248807616211030720289813707670634318846226222724207235649322460865302499857722342856233380729681169263378634068913110999558804751287536248098175942544459623782532061063417556894726406609504053194388788273918628342092956883417181232503220013555941733486272518954220357488400025891534979333675109702028383976997725237028441253311127024570319326290080038899747072211778291357772010920461626771909014066976220064015068371094839848057471903735815079311392182716468193250993796498446330466870757689523903481550307856001934497876990629947450251281909289329468861532925370090045930731448696019410624104000438587666027050394601999259185830114900828972834661558722030101441887568412218774877382843254531099772335607830984044540687075840356775863964613370726842112825334292627819512983297444554702682020109133258388220916048046046878257112760704873429044277370148445377500025096345554499514445989837740125294529829265684916013275042661908439337068823809356027231857004864722354801375310408848855704069621028664759571139648933063020083409290788664175256001663926094424504392667821831504704671668983470485918412035854576443888917055152684594286928718106117964626738545561572408103357226119432959235381021306443110218791748412978300873954235483489067114992565972327496775529923554398485289086187606755213798561501576715718908780991274229526616754584506124903980836797093998141496370399489731074439114514765652539885565042902933203759652489853456583239880822116689387777672927664206006408868192092437149129315257385923908248611657664756981545097288990257621857586543412576920734113201690091754136383428244615384988770261520845366576668407927732483032370667549209197009357553356211182785237119576374375121925162605237301227116648391766606437176293083454789915985045387311586638889098744315745052922886894953600136924797640006157516544249332965673443361565120906287113308021325731680098419077700021145976546017567271131179303262555578495418807749629478224110491262331580385090678871086589324119717714293772923057902666221426231702293618955222398274137574784058610840964007873638774017938273707959466350746704267763591872874435642554563143681835436527082391061494609845155731391255269664566209091481993142196309903379531848723388024676481968358978920675569180530113481630050340277382811703115182422294972635813716748869405183793476371047413418557356228603828060219159787266402514268584257343999667726416980203029302961771364929653945579014580954628954448668752591588553611027091925135862120966696090528083691060794953745428811840593352470688966618504413659163687087892555701627871208423638164365214599513572299267644000438696020521021569180758874676219741210898171473177708771245828960329593612112612149735596022325701445668292175878938285130820739310213868427511860668052910012803621313079673455021119147430233611677149843597652383322567453814765290494435336423945039568832794282210712543987153673332082906312285251129384133730252814889030577317940165322059777814472937149718838721195808887174095701806289349097995638295091676057898449940771512244281840556573142551404009631909830626497054785558900593007696080696002247958430054076190520036171919163926369270437941274872691906883168529959221770942613950590869630389819929410209145993381731681140031038470408043180370311628475258024442001614962243496251404251041937702945839092310981019193059442731265017477569838358556771160912607972038535493516174526710172536990662808170106989340879627286820589917951401296699729893028821268068736430684292319465717738084644633402394946091200234786119527082446440555058706034618604913961732765312619525201352335627530836066839971319250244445515238355049062533875817975504143098525739211836237897539669991573161742123627053120891150856451607415423386715622879118804674736282876060776835213010857616415037869711929482585152237290565962855646489892173588138466283530861635513357562555229376816947143195334220328088412159946588025512654434094451136381873784035423501454172253023317269449920196019102844861867970465617064494024550566540759613549232534956077894256043137068933828164985861526592719714579514638336091667728545298962964732298646662311888257116136063004683381293390182495490310516148647274892560082797546659725570925335348802345174373946014490646476508265065500466282255333307392250098656444081110023890664017936565432682855654559793877427038571137824551866227012520436343977828730760724776449357159416941339420031832935488691380201735598756405397341352246476416364006184865981411732414790533281335030918720735875169320987450105451238141935909079551292492332571311192167688413222177822084525564244961243509115570943023562814292334615494296140834127305940566483457850089656704002434879203316657603832923102854511286435851520263352559763144750902010149543578783338278657902500494464669318429108585346865703258309494083782215399823088526030254584189593177064787438509596971796260310324984252710995270682750990349619779490734021194339789211061948138997284097010064114258903569323582979362613410256247946778187835349968291052846396396351925770336060173298618563467572453782558737427436633549121820799495160762910481332497414646873825903322481951578481471128466653390841670436229391802381617625073614599581965149317330211803010384317313525829410325687634092785290256211295989195696402727552754897405373231305251671012310414800008198495089233109710372530474182179038718609762805395091871635571416809271603930169782590457162257888814491058260187699348344806704476657429612275677124101471493769437096628868385450653111415172402774572748086712479021753369845904542902534055912279981050678978486987812441059985150974876840790793429954652628365340536569365821366598952978992522575289095172318401857572881810363066415034264845303157721024385750525025397405315079282520075087523453475526999557040539612538712879285207160173743526371558121006389311682847047268222787261091589552762585824093707317833262349792707738578193826740486722593566518864818962325680853049557276973987006455899662280080419568822818067816220117215326754758705670894423795926062315646855916079092739189479252510865432133681524882329574439689105399873977484754962420890331632790940773588943159510260475569039504283974164016434716280465250626810682652822943656160098625658689681852896391570361169752412792598737801836083900387248077346081152174129777959485545896484339277188867985016454924271975376267802056097801731002547172688200240909107013379255262356217364290359964495166008410421010147309269071336860158513963278262434251455779645866904971642773907769934704841566311137978038447964536415756393722276733136571263255254916522136416766501741488995159492166050545137393712823376660367831294483182397939201515431964591330930505973302235366878222723829673799588035992604988107724869467182888026861947362467135907145642459368114045586573022204898333752971623392539353979140940608504141513073456736678166613153146452500522583205199822554081662742310765049562968348295307752491074715908513869936115640279842244838240826951260233289587002919988180668963479715411278815494616487770697357226853858362509490592920479836165071127986354062851324503755175265105307586370906056311637314760962950189890405532388791488557534584691056107344248042020474723755847717005527201026061124780765629427137930435413272294739534045234159004969660376615819515878709037915345984920718225270219150964661839093406385494999228159387237181097381244717237390090253400666943457973867582671466965624465912118197893909608124192165893199220196913327235328410601153417432388729747816505672278325394218035079965030238984499037538073478122711956158066784527096934031839715274892537276968733667713100178612043043122585135947203350808884477058912578708448528083404729050105585150744962362211139872769826467643944311068139090778865179254291690326697781318175171012587980545404432493819152818408906725343170471002363892181254709270602245637032573860958610664761858530118751486929988565184900145953915895205605621842482232195171691952188806336485569691658768666029413259816310218215102401709312977980082913360483839961846523686799781531920107462889251749935960528177558349058913376657113123191667475933022191981798919444489247088271529853258697199193184570068944133553603714834365372710209318033630143992136529213670782380083773857391157728850024265987665830693114234203551074620245463505773339926798899010695423488097265632381915652198157835953388065607260558682483795608911706025290758878591774228845993208647049768925482425353223137325431613795013790793911211133428547413899942133847963221618230878562206587658768961158002670655915559569827814132726099005136118670896660490817827593949137849640464579599386867668699952546556459401059205588464660309889463773501226537720273332666715872525788931318460075019067509171967685220830654028273329340286518552534721217703660212075336391589884287283892611303408872453248535658485779765261169041191926210710320946680597918954941368604129158789102167512743020622571137689846788174188840907469197629691154024331679223243147091919483332703490026038725881240385112161255947915277168958100172828403988966146681303940378425577303657484573428709549188405405035515104007193296864839831450735334413635872858099674880371448405483573088784764303827018317067824039102150724026406893882577950885974795341287935403372316704176460582995291602292847973775387441908041738428197417804577395690517370568318173678779053690466406075771484818795709476648066541249653502258748374898783746931869767022466051469690648607659806965412118106077502232848456763200964755888671605551861440905702754854348853223332917994253553603439246208270310465444887553345433334588187552303075378186309953660452120428966291461216285621908174956198705023096976119354916023490613342001704449907870705068837499516572801306640909880384642318764646677972382113580576545906058357272633707835484807873035050351247754016549134485244103664214166211361338531834390519565097820341877022296664553329141266166794766978711521418681070232852865808881174506307417339731433345269898941614415020362232589863226760541479003046383014086859671644891883762588592975290916590070549739851081373383126329925104046358092236984923353228625539899379581030505902108051033895600020177755205144403158405377076163343527964661556542817430092799626125821950942458967230675278734957636122202057408055952069692563066341767517374016958506950767031739916169411089704681030402766936473929402107194911513882285333039175076093003254082267713403664540582442476627638401714603385286836753000570671931242796658815331463173652308101705784957566910299063220147279661103072664999913599126143829217881231280761600411848388946712007143128595015371656028142477346160369344569326350149460652418600491812963622201009504336436253878695494546599485915531406037849786760501285353197323932702763486764047249527729792312425661149754380144424037483364874417571735241612162675185199384854062671165415024227523948538199241744419629712758770312743339061577650369698398352198113707298449819527795391625120974534278040654479483500509141201028443907198265230263193023984726335410972109311946128179623049608511991853108976554748784792073150489149470203505372811763363231937713813071933200161321792959444858579498403700803150272120523973171119350693660734963394760533836237351417045820959739221629290747515598579676016515835278645999767415073641574009103368213418266545726716755236691940934832405905381180446760525400451765651607534694626604248743016738252626128333937666042471163741298172323251936273609119678605632987737616024111724708812034851352708599862915078379566258157456798767259895763352106099000410867098103637721595112780028097169727167126805658804155477402156798707003360549387340411001238083356648431724686263995427364119131609529563326656744875345329897748677383133449602905777818578788762073135654191950193531840261413505159420150410528943670719846907482213490550144830076707023070359839197372224472300669570910379958538147897873124967769916963906878475156101638247867434102732900569768721716842639771342849596874756139166746374064113010455465825169498784100785148743547010177379236349050329360744812547716363960595430446889430309075659291534418546115592614447362205998980393255358333270397454839022291475651205917403913464740152889528927903998296832146222386321227195770742961291961598569557817655145428638791320095118451951337029788364156473559475944537789523241635927886236382711891683780473988140131869856888991890441968355613803857854216221891501664006165121147337574818206621505299110320387957507787486696757314176875242467185201999596624957381477817377348294935206268343622625648434358249393847816554891487543932511767551182377008425881206760211918665738220372873295249847546161263917603344640786253474634073990526304177565693003977034897598907897480418260780979133924471906760258585394369362698614468178882679354000776056413300901242245442650172966679777569124054073927618125845859372313037676956848520204710917496093292508548684919841525601520950730399033898541684365639066101300013520594950878644456500057292946121126156152312181153742476369036427544432306374564352338379565559800255970299807942940189792376443244162434103716905664341073215112430197866685994530733642829928342903028693170245709732135197166895817153359254646264204165832346465221130414191309568602676354425116606337324643080621520426496753663771020464179341934402922464564756585619785870422300779172808058929434420163812209316747726071677113077108638139837388124217143725127590442630122297697960234439506000383765538927072679656982376364906948682109267555574524675710382918113767859269844048380227750884004289661083450799520576444004730662007130937798756147552217348296421471637967029051257610898369756501996684979821752714081744757278241502128009213116768876384599725570629155927899433275617894203113369839723518221649826454397911398600806477124590688002544423426080526883594282440916872858793505153298148464743377002017262299325655076255361826559052742491692981774957145662201874557104160344461096604151932446927617040692738145363294272828931393547554899806150846883852739718759751001565585034510705476541425725803223746645885275006621319788701875110221169088961339061184908581363546829546415015217633881714251031550455377173455440441307227959864819550834971382951644411067924766466069541299838218679755201638227434528265228122480361615018379652085241477391429996057183560269433661116074500443850762563757004220433346878659797890888213503092238377268193527289232385981713801354489434488879352506927142445810852446938900343387029266878198388039132310437680203908133198063544408455065088769164230308587634400286877837776872347135130137507177796445551172000669402741939101068366844314991362951993331477808463234240956048133234490005232084281480501441539715591651131091627436895137154505460769650714094229933832683265462708592345622993065988344583439358338481915458359796206250291994196872181045842347312379012675733339274470736996151916146704632185596493628563730265793036367881480539819522394006550915648658096333084564346030832873603830308932706604596440459680550581965953953566361137435561877845865705026700763656470289509435312244763280117809135931878643724394134901681357378643763242884880247569992535728230161045236602079135186859585294797313130397672550898382605963683475631064042755265606528881749220234587360114714044319293451221543828545644624941025974933223138199371379211111819916197147876460263747987591217166256997066083600762421740392552839493021935055713897385787118195024941039178594677421013781255117554247642771566832559750589827932493384361520057167888657457399945902515856957853310708804021906463978284050486133691024424868028604001776143798488961446247930175681509859387745019646618715418324707159861422438603484821404554839801127904434783136862213203143718965202059094811005910575555962169899730912470288163184854238559467135328252484688688338791061199378722642356104594491895866205665123872226217554127913017263581863868735794217306002601024950732461563344710819040492552146021455179904667858177893705619236606752968507875103175322925280102763341179776047292068381097695533488284929836236883205115875780685322258642944767425040664301749315532079077998669760865371660463924161330680451857754972376868486263632054964283986012430418459455327716012432784072455316250761270436027128938469645264308471084240179062845816301585203964494853185091771717007914235255893665823049494604439942985019336726458823639589300827963549737462569508210031643392022457739511678473138435711125117743783783763043452432269411631789307002481337938280253975214228908736559689418538036998176128179640237996668916165561924945950076248694977260571093813623646679872694522759406112599179247477565751317190790559558024931261864201529150079846899266469972302511470976394080803575902823658393083807511550753791907432114539578863126863115173100237291667806549471092853540848406785549120979306151517434440800469829554405814826867286354338881001623289924975828572079181389861281039157029779572102395358646348639242675591755260834392602326322208095281954934253388717772187050153890955946414054203873490143911456632637357836050942931186438815192983805977582759007977428617436982274808823539802691273592355088472818612945416014641447271630749233660241284688019466945954513988091370762732716885597631864006314778350734683645319169636888986090273672694059674081696099561109870683292095407232610176915517836251444252670486086545409557666645865240352235795148458266534425634101016686304432441230113528625032706150957971442850726598555532400317867924549244223822753931842880372856093926001780193255654999531024832866699972461643743752674824517600782573708911918618794962048798420181161719065531746120109198838588957740814949609848145191743710105663864757969895261307248317052131535416832171192797202615758918388350526752030198056363535301358750976236082390821008756629982407821480127371535241893980858352036726525057200023924955186929216726134788945272823063229674095505288699339105849217684018731718658123268380816121757542825858090189574791769251739357212316410738742254032403498976433492924628914935674341703975410697525638186690807981480114840428015446074025263462717915154668785958494561870317779615171010021073792075742460898692153941244816123093728719095951099817458587110173558044817825837580835747266880679295439595188437701266482772040901618091393190494646532641032439787601748393852754725152040910771201798784336566560927216526459833702582783911290561005110980188353269709490386056540673815894476357256721058423063655193932059789881807999854568771795763770627091777146359772841395869071400271914034478062453664952200803486826387114387613354820860466634212314433905346285699134441333091064637105901283969429946406006177097444104845755513929417981890201020187035530546165703903201859814522176134567644842784502183823369556296740665134415110582467689182002464406276792552947674077141140789358086839902434932487065184314431339022057673487930501248556024394920841332151570778660182356485223432226049667649242994596461998244295113905651913470050768709713731489491678180452579609319364062101664879107858572761626849607702254759678882570064568081324452973478049458963439258261130706194270026858813071660788333397423733603415558037551549245293240263909166748495576143266870581307381194376062899621229686494018084132655103096712751555865651755958086406039873957055087185189894099503809142051218414144894378946179645474917008917920778560108979125693812736623800453787078290356342594636042059565500249114216638922335746989585701886595258788508451151820925639322982440304869070133946771971274040910424185207977287056759527904652917795752907579885962304599961184357331640602135273641105130954948353738988962216810248328892876162568289481859115859411975616870755268010138740832009722009444684498070429221394770949513237476493696039095275491502315638252198717310487055633680279290321088093463063829121526574336807646878954321624268871968509609803349572679151107135397280494947176503772440721066504452238605186105686954252311871115388976895317436602985869889382753968969382194507438408316469538357883691813492166102861746225499111627173350972168891393907340227821548704307037325017593093800965027006443341347211637195338299158685639707750602942296666357490665581443076539175755256813389890280824065272622422561523141202120874301795676243286633378885212827367120226905958546287354888617603811011650639886384305558315815030874314443951445026749606606215203077708280882834302250641905139604969168382691880599586143229416616486860610547557813318296480977123774305590406476518525220891338929028001202507169314892980679857956429921640370892454568926760047641564131784515900772818565270906887199984888195713278330010851326784618232268505288484387824086920088562779264970043798272494662800183443531679814636596182601033289895268100456258891658261675331893899819532699779568459674356532683570387396663224949467175943621219282052975361728329557031841586457801164638799370755075696686072500387417262095604899966667773945889067885306710806514831429313442961829629267267750248437026131880463833837925835442326458672848010770885308986655787174210701701807389610163878483720519760891989922043858256115700629199657530978556045243647957389555794560380850424489172711277769358672505732332078101932711645419230273921355092783608879029749129479289392018708710660134022984175761624980890701963737961802387397521384170253850503509281923062778504800090072183146648554041367860618919241530043273487944060118286480645981525419376865461392276349365221450877014076712241374333032427347189202307689111920841468676943342505758586562582904591113076461435341537066588472608492807628033462509328697521079250666431828931218426972521673977113983082682440331262515659926216224481204749835509719305459708308676018324804141160271422208880110119509996805112530242476060073550755715368794197604446715978754069263741591771457335821559272615995238286945370095112261663017948759536899614011135699119984423757894680896536181777580666310143800942646478500473544642570875797670396739316942200473519829480359018474372875934054663168073205683482591792336241959119011115651426946518348951581733401651517970885319107697939622761991351084620581517634174289069887175219921711151937795694163305809290588640066814894068018355938540931740113592047147337167520920289282192481032438595381519293953014600844424970749557020217441257499451203575325782496913725819927343453168091782958197766050742747324965778392861537368550686060311809891756900688842449013731434497093172898262481394240889765853442050117724016814460052833980982784495843052679188275631057505976760955136635121673483502571291083573691102610502827522540486700502904089378353751584508091729062936630043818334384346762009091675848339198409423859784323581183190073387352211926495232621283636426269128785319952175002155919251485897167349515065920872244314179971111840998722802986383788113861357399095284481167406176564212167380169629189784106044957854171175431837938956524686276096351125763355683085769912706525443197363453127736358337659983594423930253601373165145000366013797504365620592710644196938394850038526604578070652835959211198787089343537666123317907166583706035091544819121872263475534824238574613608010071060159975503376195296500354714406043102063451327870981266097723093907001614711737064915318438019723396276483539059121769532787732078528594710460005170951822196446297416987731641418034599364727231862205118267536818955155743241023100816089305807922742170425613887202265993752494984685623523274001175920505778850482431475490020310058324965220481292384612500929649127380410121912470747865489149527361420804537868871879952694225666893001502652718703293422648937999530815530293516945865632865327706034747846085450519014968313254593506834140113474451917829407447069341236572092562082676263051220637834622135071377695539836684252909626632386148648065753517848315893681010115605980207472336864497727928946496009640969434380073537959837429824413764077683365109059620906343170301173709397906263864239640253286687892519022274245227377785739028993641607931479316653947210684990164563595645152389700155566334133223092297312583343555107676816058681141617334132419150353107841983877925024494815462178053982340510266120374640871315409731737199867575349761825896413022311890012773142129885440944622217219522466704633335963513265815983336480233646205339764143018696600169942590253422178942422402163217572210290406885175707317369636591815319502341780658003893275958878855040377572318269739172487986689873487887679622375795104103120900255212694449565699374209864797268507196811466669218315990365183888167828547955820030945630668951523934160678595915959021427491866290696710741447292296990371979269940381788314204221561179774699157738941937683255191496535610231902256341253029354816205241820170325699488034302237739364055653631606917185096173996606745835558930277653375537514242172701753255277035802008883191207898734118836966617395698725148782740745698791084806856327011646428911979316843693559539749177720040297919402304880753386606198542871141649164355482680393768757733053838020621868023893829338337145723212823265069513165679341509816537611537948187626652125362740719663405224433613343774885308903606839527723621793300978986418467501679575312982038636602936339069186002868425441230357935302069463660886318806857725843745211538983575926363234815602183263161154421568580360236887633182470156144244427071441807541926607503135810489842067492700518371628059849225095017296932770071255952207471807181322720868927276072452100725125430633472024985382206445208247633525264650848482761011042683940451787737432903618247933209891746100569057365361536565775691170295758416517515808244133034115798974050163631887591557567904873055686622067970912458013496393213088407780584973085631126243196463461104309073385602989394851002641743155649473956150920656296332405375209847552764262887746242669486613772347662628127259709984835634348768992939575436863135116465461315182379401289822799786455865685423546332411098198481996828564194082662431911620122943855349070140790337298587104826681793993457206995083456126568662734718044480288574084496455021759986370685874273750767742763598203776971857237907509112032245807044858367613638896823469859381654922208082657292988527483522250052091926923194870263032778116159794627866759546482946068986127308072302206254333688929891530248853276803569613683850470087260501341347557546031626582373030000915291775974386911828600581943368459143308137613797776301800026406467246797706264593460125706125748568989802345033820231034608149964159224186181134482333630413933279198378181067785794102534033156136028247574486666660987618616385604324581608055542654289199825409674458263928317560955312899772840475520898480256518839834028355682408863307634390708238700438971181921958635183264490369739926891237226845867047839932199815137669310588901761800533924454020265061091151846608620682529741649640761178408582079607211610081071504766106570174330808837903671568170560938042643573696948434921258593012784001581739538344255269659104896032820825583117598070837905446783430542170431229137770366889491893406346409263004597041897499538563621953309752893093706766507526917830494835344068778230742026962517366530752142088576564112361054401623526176383883186020400261963942767802996632996862219271260883919770278728156326160691351257302544270309669531047402437870543067219145725791780215451163789427299101829684369727747086713379673202299503599623831716734937552039269597979227389789901970383192809165343717828364473745658091651934704152953891976845577667888931729095448199141075838226762390057745667947432827836443205636301927769496373966595826986168773092741005161945231712101169298739392532096249727546440053347439602246053192232080688221308786978400449234296552492237997984363069932237199005024595558789106946741508985097386635269899226513353658168230180936200911842346638013173792797237514928882898129989130988076386722641280782336398603500141155801497656596678462850692992987490165396132653723422994544846794117942893474141706858398498080005130988185654219596467550290032899759410183698006302273264792328024032127052530059490625411073123176697589638756599598360396100648385368850059781991224564895217191266715675701577723030174615615703586649115663190115441304112791722072086077935161139247778675704282531761945356990173775332755774410313623337642664415800231706643199236370259153894285624239436976397267504662310879833573080327153732953685141050343800086400661040363369080022754464169661694322926533895867622880581299176316276138606248877404613712146580546183619360828189284521296089406334685051911214804709454396745248919106270094658297369013431063397836552211464951810628309696768078897525185454949472942990246564888015918033461889510345481553259718924441367934627532508522787373957922584870012679832724962118423563133354294399399740292986081370765031209275836388625576013681552509560782646202324423297034255134711465515468119105620713351798520923226776240961649148358147218806965022836213562610380250264520129619795535084859119223168731797405988741249251910022128506433683176202441247923152493869709767575456899683323154195590569495842441283515862634954142348174776681025466506155561524062691501316650392035624217420789520820399387805035477560542026880318675058739262433712503059858147619783185309964338604332254706339425584513594765470199208169081765556582029118530160257604855344086887164144715679267798979716890090547245925884715394770236891763321768267714089688973253374817065607577294396116360405300216872626611188862514250700392650522776016489768119858934130320401307692606376745180535927944181162109719533229767015894095610845285120334221492087242425146050115710343990301647506429762737646508741456930084890830463910880274852803516272286657204186266970682773785268105778005381010436610576492034331114945686128254895236521730241327784652303551951772400845622106432063357745991008713217348728782599308146616552120413928247317884115649879636963200325675194192278411163068750281605039684579929819875957967527905506790583640988099754068900301858587860767916110881221604172910982363571929635140174291169604817725069884606042678223881139995429184256620931427298759940485127741925125301027321308205910912289266794568997379127024909932915246656180061340292794615703084336696811212218557701591344127564088808581071606998210025140338874248127621615642450502480785756863288105560142582798165859422680591487819633384925681598806255200027662039676645316245456220499089810186366743403533964140583159884978935547621347742711997199049964394374123457344951159479425016572439155826989155228724460024568342751146829099070123242677033817183291409652669185582147322137505647206022817211033077238951479415719056165602781325492016450948849187643133563864143957097375400616620965118401591667736653993967669488659775664150442855025303047224338770723483065865955159831386825773246393949633911562215436296556235879800965708225460519622515579029579533405549616130968548277355735638419830214882766968525499237114588132547596298767759278506917164110199213982042787318104100233322122653574416381741067399374795296803744100836124464866001679400982845700507537304115101284895039990003015297293280977271674279762628642799911400526250257641306547704154196899585227851571536719155711023440399374624736814238806694910646241161095001767112501345348305747612677910115185179203176295600520564397002016294506754882656701943584123446560176536606061111882953436973176820044501980751794023949853864398957052354636574079630392810880509299401742140698443992053100526806155929604263540377714260766802933953785922467615597642193261594759379320405038484083705997326282064007074120530992988188807871204040498440942787544097996092271859433175598556204476516433208007838210170646994277554760937120798190206303409101013198191544631695014899800685945771811324578793102986135212986424614094737874664207280734823911827063683022845629227001057548584672147647649401926029479217453488084605552394320776623464853083633226735033225252254993127108395857006287129801018870643246872671154387116430561467391071221413446122710153677552286927397532794278332203854013258674898882321863532101664046567286808820649022352971540173021273632791826263262915101909834347517437338728977023879706626195944942584368178106145899020428326438947756495821709161394519872273199544348530290469468113646975685839848750669317904340956106129095379277501538615278092274696896526431709797637128346232230132646286645184727323487665901045473301328799312237308748666743640166945937973375537694135235685044051086840078908675285940106990989222039429605211112165460507455262822081804714652074025996611563566304719906972987288104210655552059699454660832735287250430667033420496420898190743019431038922486052046133682056414940357208530769132077920694757526249446353309055160116010125915775876740379705944406148690535329365633197730874857801396883696179136874415851133480335877972446941522702961043661882783780263924761022703373778966418391849948302367562431219977799452117009776140580444423307964423224931568661853200154714613593068417290442502838164982283979073880873460844391955844880506433155964528664715013736536186432233951872325955893516446635062934038579371032708904154442270173116607363025219531320483171191390869695055582182411255090771272859084521898861704832191230699842546168617870539021751257408645086282203364287655559974195115643761588760832980985103673755672382622921359633956369510276665061489211192775816928366513474248053697998303584182014996902565407937783742863833934924663937294980860822391163709568678615173961839243347289371488521280175735387848788072206569302520831278610722200191819326053766527679891645760583272884082244893982718811447048350973818495948502449405507585363745197701335223639786342180104678447001212666423893139168851782460227443629632881853865728078776130743416939540010599783906739587445233958842689966994896014676443947192374066197896347555990441019021410129140402818791811096620742348213525372975174369517963016246019868412474777652255063559446324454686891720832868638076496057985019539685259824747958323250667180522517259850469565952640556871526028448855619424487213612430770541494403205904827619003598698312624495654737522895933040790653523954654824373214920328702048092869854807169261239351423835730626559281586846573663121926712421503501683079861528358278906889215747943209729379305448440436712782338374907045921369750204777832373273553201028224789546164075188195990474597234012381835187099874086669641181112402549226312740510973459279953742863174303827651194301116157207519298847902662622169027392691133826643120964984401515406096908061313159256340341909757301260562024411430227012339479066677873781657459586429185599090499858758435018381282937543238928628026492160904288569018123567675248547660594110716627175378834761663751572387684184697456797636922744605728912728272889652260663471425325602702428156048830577619797761568637132029858312317656052042983195829897227823214342218229344920921085188545559747579988698956381491432112963259097029331344212579942982877373092053602106552473087685537302813459988075649458713527396892584855429628889347578879376897261212467858401436829499244759061736560399904873228594039159120545013085915844810882033902704430106645633233203483796749357149211198385436915746041688413005368435117248231779906186054499825191326945569437352746942781597104687004250016676181365949232133374171262531533060087653204139554567855435831508900806230158114318334332962546824914986073855690401580639115769720481158479683198023972922808501304849029211337176174735006731012795191917773893089632196776355558748688821357300629838608706034590704277928590563064100163115234984420456923283322750809862250420092482726949240489458218609467233381292618792112286560052770426799016244986582938636045858087545022595844398119115280990695275752170760681591393490599869536913251284391194063030301295586176023151676463842184021654969720013869292712377845194027783111152035223862667867701562634214843490779021765929690508308211070075846521159251504501129120160887519330711197765813078464205560729332580700153664596460874721977559227897945361102831203351678368664099423102764498642806036577515056606976154014220785935577671828398146991446324785698801161440133189454511346147513930789071791270613386215760581305577667921276387531933063453356663303952442712974836795801652783075452778217820767912814682206071704156335226365814396203948882156219575324168668298643316789089591024181191993188334582061148401023833409620385390543116359611371495958085012834778213315961546956115814063375885341549159996626227263293751067713659632467435334429140537498003568046702961485013460603705397313250725307621071427690506248114980055458337211971186002542177022885291197127690311931896366303035481195910787027592821742798849737656754023070624113773588444318300601279749486434973559104222721948113146293752576322638136991232984028417710006484852822988554137366683370536952032928835559573706622120050001799128686329409383024513919924019015670889300132639054386891009709831913306553304877729848654237458489695952605666093197930452305686166578744495840096968559740846873510967087303420817243204973676914140430442420599514123553743196391794232923759689409320555348479174876875473489767497235921744524924697095514121371311534460943172504135323529763924190765428601664571353920092516318162330275041703864509032707724459790048558298591133094314448506906194990497280335248540534619404849297629742854859437844058053567440021471432172908852468813910935046445422943934620132191687091957732190915449277521347741603988923113823541020171780008604002582868600322907182491181454435455447850261987825103043592280601894285680684509600035972375145479198736315428652919926224491896215604078852019586563563456996141700555814868691867146822964310584105288939865575051536166147320545118674047156256121862342597937010010951886703676184640663285126047652423274941204737026206180790679807774825904751372714011184494151680020050823190174841480238046945213168544104829075432597593324867637042105919914494832417869066280429516214967562053256842636036269858796055629195213626328040708286938323988188042996235355384860163857626098954900885313379812365970520786066957192640252787684709255163370300608349249766887275210173539661181213946226408080518845414461257442405928727241725866370987520186521258217442117819166017535451617017692131422175905182787809412613790393461246621231004708408291171498231668240418925924853558629996084108482486838907704998715314909988188458327671087478695414938390118357253022935843941078199306772492856722896540296319126271087788219643244250472901601006477327738194384925240077514201870284662326816221739283652031538361842153489018974451262884194052269046588583428421145598220447789538296053700840875401575311509926998902564559693256963831851883047455831963419042598107547935779352071035959468393292482378561896260571401877556722842257875789859776292121709207815681424581310646007473729466494046441175869692254331243700284749016816225541628999571880934892662111762304295848083437376969695209502838368220846111642218678959830808078299719644401782203234618884988252537109239484958546958516882591111981552784063411447987489940056094434385131770209936404296396170469007689662790577179693331469589875455866002979045676553950874696063155138748433093049371360484073929697183996911393239091045860355077774385306723219649010147763634602041576995139125940338113985224903987928108467051613045871410520811013644592380946196284009369528253745420329502899104222008873555988617873577497706059351747939366589265065326111948865298636801458508055942750497080847646619981610858067003829328569231101936504321574404705580038848082571700479307711903031776592957983003776261150765558645249794115729048089670976089604492316574437741075063572858827553016664829532117669221805691286095976636665151899359149674887107153989376762087081434393050272988327822622035133897843069100730899586360104076789013356478067459945137447656828685001220913497261277195665616462153518465343332691376735324994655894259329909512475765061855380055959920052687473841292535718885452417976220319107957352121105714675665473147708076575637962887697591100565978312913830106135866665911680621568482832981806790213004132423939454693479939770594654721049406291502596969922313851996906899456642389988904679314173379646770657776744536406888602417203954988759442421278011238469522923613951581412271701569511976916188516234921952723631411648520927995237087877697954931489721051032116472087377209755321467184085513975990836983221006877843557147899583888705055146643838602059033532177352360380257719399169113684667512801262751904920552008658294741735019752051206349714172373363920621844336684487739006553389409595048837565953071997202778543836946361527595930120251371120152646080153314113551887675625403497007149305649299596005259863000988237394346658818544781565764208949424359422255726389506359521288577568273334659646514313481652600971468964459935992053925943112661155941850891589249293461191362246185308618580343521028578622683486907495813171477164014559283756286566418119146845667742718354417923318660472673226126425226886675937738600279222994266061390331868332794494540537928304494208583811350986943564783833266104023606042201204463137359111488843385306851376013833103721370512960164428714847516156436453940286974985929161109544597371838873181155145815073921355750992642769747959875583656501059696551282038597475981254362776274458821756793537727208633997637561059115390337786126243990292717465315177066496919602893949255132847894019979689689675973626611139522558485054667547530487874513162208257555265525573717249464955440775906985430265815817205972939248793747433185153187033784230638759006603788421831757117267434234545986724767086663005526795799108544061631540014061939435900033780890624721997226585306535724791297732730085157862021018986301638505740207277592736696402306608543040787214015560818567306598386730061707274108657026668193045055875771771666004869612446318202969544188636079473074881046484810248411061252198956004267608156814131825563394650810957822638554655862186508361050575754809406082859395105646700140414542491752911655357834777134531887479326709742880891811267010223862566970308496929780281081406896123397010186959856797593042664728676228630958133412363620084980732639383505149228326670723473820480878827808075103167129828868127857454123636023357692167122228551286005344274706592632487082247179768935326585031621404387079711813416589500192995057715732367835605001099555949208391589537719572225848413769346892856907936401932293146504594850982833912337368837064704606726914675418251550790978011992819116159776919432307724677273205794948895709078875046423034982735954167768162619624117608654620515095861747205655749632862980614292680367345656940981094508778088273296881168445318148457977569273538701761362599320609149901254919085927394966919501580323044754692030450387655562177378555638164856354342947199143850610749687039544509693116356544882003009695580929772896588904429325935341533409618742671753824889033501591848715057137769587975469221878267952665114877057910533340935568563072668567593885130468000803957819569143825763538183274261129374777391445635509776349789254717585995882736003725709475114560943949295230589988884469846129036617729681134547932960266459890181663319478279685597939561751353639023084333374187749321488344904291350243762046529195252008126984432919445717381067902755565275383351737262187527143863987788762662334715195632607983104045389805424972832761274771381918282417842493636561953907505856631607010795060844785741309067390536424405330762112601941998887762026702006161702976648100907797029649129116340584813025508597917419294132631454467922298150699558610794432513780631753085341431905310961797815682042403657832618265114582537724582729862302195267559331619435806796528109448910953957470389962315558283101697797645033218298271014443957431997757278382633794050648828133471185736952094452612041630556941145996638449450851188063093292597393064752710044317375651335798476173032605436682064603941677882348376753837133820340383370950299204889949189488661414563745087563594399136871040292944432788901198822383608501872219332561039249675857323128456861415474329816096819501097958013277903213495891327669301043613743147237811577577289632864295353382812018707202089437959512432713475928873590678855432931211777638469469333709020733879921845231070228677896234979261967440548088063152010520880310377811024634932760602513624725908563038053468381323560944276314805755438659863456032912027551186130376733377994098458326342390474837634847091318804453647147957648843036386665610719391617600973823291014026198323159844745728578885246295899522347254194514449971039409222868395668222259527439995046552881478797657452601203395640533496565089772832023550643965620443347100556496655653605484296420832657442885486396674159713231537278907351279790761610200295363616506237707984739912134247893491430158124253884250532940202756156720312510749566137741148063558079107112250725722917649549759847911782107267143769985463829687888599112111819589592602167532400971398053914888328981496283255543240811771005523858283586069324299828293158526511030342813795550248265309507012578629036401895009958834297699526958544346597882142661812627637743516809081397257333622759833534901076515310374612286943005681327453872966719129699064992274911410987111569110027248546967366622138486891899091457802083728319168790576999563839797110758628156138604428519089097382764792657761335019919436760167563567377123049220926615371598511741440470039240235033763076655355167719577148899409311345174041024017141693575067865626794582272051491171204185290453000096512051304443626458559668199434880532382352827294552357096066276186851096006674914949014819278473943012217623118227111576270374460547622114423352231199517619413679038316589128942524391046646554482331215954426298794060681635273079139263713994809030745915600234007762408658504653026786216418827349496894603604503912390496888014405567627431311115894338494003723953378489002571031846194924480619943020891214176616200532174935329621158975141791174752763480737507390558913493776269341372678498621765703262748973517222425202567328637519895827151357591523795946673927147259790147878267716285383162664638492832405805577557289811174501977451526021844407516313648455874666256459452684644593652431687585292188040180433467705960991880767576741038368952111179836188854953450214775605969731164056613857081107253501574377090096235680861185559029608003088117870946668176179740356433141461697619714892138772936431239572771660671718250301890099386509346869878912305105826840531188402115805079446843335493370012704796118440153594389866240648316431387221917741464534525525801889125343406805752369018692096299728524058766306360326504364412635091473878013195548143453376142229837937421542083262678315905517510480271964460308801111190804638500373419831733260233721955402825215983226251158948326737920822276735148079061752457821599494978316991151372458491849022745713232816771961193962710068971928223546308881964996087213381603963070411933119066134247235031837346586958597218708985481618531096177397537796491604322950326951476381032995473807500336630955087382214058605383923255865606340973788926532485321169610126353180475322324176691558571014736184311382971777295903974271010611672853049208897911820619367908776937104953306559368713800169629258738860241763584093453681529696782743842166466790170822491458219029815556881270990701129313028742777019521199625009123265129846381319269169785236338251455723385019667494849495156760721492661387339988858631892457596650880282470073610113965433016412736342513299156311323099220583774919422414377452043925118064252127176979061202583299052058123431687243761016012775253379058046488737495852305631954362550552164390668784148593117588774626748087115019077252035980198989036359164725804090821153729481986395294382812387359292981528904728273172874934082858705099785899595554324663802399577888403093344300471177686307230219118658646477837771076374635830452595743453807759839894769602902217452274916797350830838638168452752629519818085674536515529929768944955367085966084322208942749970139841491821196753438291936584883212345681839091545435731806997562589513154050166626374413505741955943268868993314572019690728611696029363123676911996556076674836922761328517087543398347053076924614328881244131734468226871462184785194460089175237778505096003683782602594281320822941015565311608535447216751314262189943483308456182142928474666635829343480074812752178562475742484971872584137888396430245188165043158090727809390923480393969846498643140722053552223889322454069357297935662971771491641497128614432570309917950594230438051301213242900232172516148533931884910736457844541258120423681026708124224978724828536534239228479234286831155069391028922951235564436228226282126546297443861740989164280659067861722213071808809608814147042969136686087371010433888820026860064635081996722802228948428259046480011607495323535707733571494144743554956718007054610213205859780504937042744042190701690257712346300412445859637131302494659514918081931843078012646488511476798691614451190128393767101924767712801925076043696877480591288167515860432843808513573331331900719434947259553178967183972929779310816390745919986297142471268455435301833772914608802081857133886609564630048451021921382643835057002684770969625258781009245704251225499158905825559624537236543232796050471431047916533454834818688114091483749036126585966287055797682433847640812793929279676298129691430518347996745331921965861039850481350035497566071021669776685531662828878185093721995955200192230551903007300766301980880363412974367268090493672612503005431076109676512719850524178403784779003510932417617948686228430608213722571658278858588945711235517934271394555860133153319777976348266671617165485553412075208512559518320527160500644673249596738567059038041135887034480841338136280524469761773698014065010212296515769504703200127960253521365563147544515702754008392151200593401815462769473047184554888827528351633170744341536656764380243138405494827901395970905704224063834771891521938821551984577837348193751254042020669249583960357834166563557520248361231719615076335781734220873110922235649961676960978829238754942300882176268660109293449493223130875881536592918999095655045018327436606510416271600448614582945232186732249985709538778129844724364958500326172253967601535966434364719926239521183850339669513046853148791590564778134888395156444580333365337196176629115835203476097596278813048751152955921935434822985003470594446276789617720665218291997913390967433090097474784726652011825554640387996695350131702767765807482389271838753741545886071312044454689295929878785853187845124450203842443856422679368727803839709624961662074259659675329226031759679725631564571345465078822215583398835573731111752631148301444878933951226565496152793450001378392427492930220692351910321821003368930718133234025621177487953014543443892834887109383801207012251994002266112761445114272785818063690729149613184126851524583571545511037027719375634830682753537718274758356886685111000247466415706966258055760353953347793209593147295704773499119381485819188617075273130269972638894974195278349987910683056238448398031464025178570326242921314621777636356736673220155030355141892967315982755141686810753681212319098395644447753183511988964428516140184966814726840272637507321765123780090780014187160073923095815003694399240317469257993783865006384673331939743995963832503849350545629692762622830740279141407801602166852938208261697055438801835609514816457040160534280251022646032351757054461863452573469371281739577476680356573548317106241974535548975607663295281088232262044524300025590797594679953312860382799088007563500131611931502751847021364643350318888597734116178138528658361360718541708148729431999082489663786632538051807774291176654377067371284287214681746911316978995302322288670379029507900454522727342679308197001285183860593044099961297371867228347628375793280182406055763986287235131489667037489125514573283878433326698789817718656491029596305077668224478256000342428972829254663642335286489710077986619937123114939009979930728492488082884368654925732694671660306973925386020513696750223563706455864704173006485354623451033106114879089716285949064666280309242138990705082606041451576311474554040621943639372006707644769737136692552347397146004485788677349017991518411004724272467423943815818313825278718129031188467139971383441543625755864830562853237719059756685443133517120529846623296419768592893295105056001964074055478255606418698449000621007772453485881944262616100997019550710381270342653644077853336540690372237327861244811591376081877082884413438054000897100698830453334120323176113197649532159476173972611772102790358887564312635967760238920620407860805320061451784672643444795905878953815326341527112029936553881913121203834732082214953133002741796920925281596789319625162936799167238954673091291458678142709562875528734760221686091492926853609682789667789188293463108166214067902577576545307733416533315667790554585505152679663892614289437715639685607352415144272847795003633938381329940936552632531468468749456670900172112954338973709695632698041009222596136361484383650059891418144956541623913892029094014455069896069844264499702341254814666907009812669388275026253669799247745387129961085798528109445172852833870936379065446100422089172961633785301440205279109819017833409963342865947932581490625909458686972187471765233809460490174201807255255655504612520081137919592709797818261227170938387679600638111712697029458798115619272735860266488206033396133552453117773309842604027521294950219658233409524551673475243521213658175227007309653549534271135640112020310918626893028577253376069679816699351953690963856047280648184782171314086278886674337145723482029207109591441135733259751840712523535154823125629402489969471719564669092898698352162284453746004355844100873055227307530375058196856115243864746365584022924533893840743614153640729558580499087751262865954860213863703523583947829149372545606060427616904267468122076452973015280809697534591195293967627218241088045516944182562280882189716434232265706007119976249053476639559149388314310125270705916803811805054692462857331485197027878008152850834958898245273147312233529679104080531558284175390488460744745006166159523515848156136113693184237366884407813100009646477100292553680020342465367032272186350530595967833446727341981906760050023853650087408570871338042804315822591696373392376666001375220490391353321447983791556040432261856512836597802368856088042271682497755202326153953536963075065320335363311424360695695623975621306910602420055642079532469084709251815705773010704783737841902656114271873459195167749929603923138330428639375974167986729858414317593419571380562085052417882809439428757661965533270335238324021323926938632434945242039450015606326926775123885996972288607579043025484259741872276481127837987587940219699701460800343911123695374028831817048520753204952158685548660581586659635066966817117960235340866015821543703484677506364677940620367157787007147151103123480281457884207175030651191369241017799485083863770277913729923727014451090515953448767302460952959485531689628309672297497196958631477551464662810681959248568379232203761263570800444381960206990993515355363668267422269823518365529924359194821495687873929728477854120118272165886958513891847636281982891455331577858533731405377961765616884412599549981993630095983789670220335601844731579023869795926201586071904246776315377787812000277762673721995431850194410950670219800062101656233710392276518760063468285104139995374277737729778113440661541235087137196236194038755444903376935874270769305554635778106032877195298715089024144091013015074525962619716465489998527961812536980633646475908918560552953898362344642178856742261911356119943871820914736082633942582843509679491459567691526517165134833082776301545974795417208821779890724931781488267748698082513724328966382812108527556627109836653640239565707444552418455315117766854229344470076927297651905849394476667684614418938261283185274340788484639926137815904664244559394094389890330711701866225109360171086050192736488359133806910892364442142073312855063788979475959370930435042713252280984974736388334992774089803346521072560270670175354425421198198209266469680692624563694077096989221346627913114389454645193401997855553607481179528238868920647176421326728589416812795341381850950745006279982115167027773896867396250619762050323420955496506544400363433992039437820787691565442076142597335504995328246178383673626399421988022676259446623875587541036534076447940194166342781828536362822729386224316751642244456558509117789423643431059582049077880261870226562491344234645178314880660283250140337403373335734507937187869424380337215627953096434827163613465447795054543353139091355204701321122097408464592154061246144514872162985081185977032182981149210305035838366446478455055637665898600247074953883208885881786744035882377334887432000335062120916313623788075645541627204433175410415507923103700499995819993340057768144346644707654827077414263650808287091687906770568470137699123861072248549399751157808778502293395922578577530171634491820042697649037647975257860668287178329787797531209505077676218166589137123659255262563052003718348234259093843860395338662642046024755468740624919893091115773518657461191701954181074000767093668217703970882127298900970455501391432174107211098027716245950400228172423997499791319862573466620971689037204192123862956063542613473009985392322851812978144850939344390336467516019975327586541134855710444776770295365563324212093240383763557881083284497565541598294442046941427604952112476033581374386767817681782558606150828191191640125379751077232736302821081120087621801741083255979369369004732139361271977728782150898562931974952164152976888016434703540318475127596107365716041152968078479003024049655076495006240079791133229273184784686902336918143259691297128741718586985638556844146543074491410673737105748141942233342489530433798693903066375682926906280093836769847976498324605435358023358472592760750666935782819859539961986947809056994878960206828306507698572197204560561612411472235474286079186725521039565025432818363353722290324308496261242610923366288540025839575738668865742145603360261079802132827332466072488149629085183123737517611823060057710605570043810599650913018189156371404423601377363992154655681821590904840245134714537321982552180413133219675610071601366520166956866671357906710906554231995062941076888544565747984512548455156836810983902229067773035403816360569617256536121890337454937889214774720172750724650225491730266632297612185796902616724325493593337760018172782795901279192102016650024974555307597409580023740824381419175122253698557550826787234972186133272902929158510276999700834069419143448133660887456594480467618341457608633936386893529931457258479658930141432214289573308561627537586118190139248181209076835965959392679973914828532462547749177777713886317477663418237176018215927125508499611164753497806169665008553770168369671575652102743880299606258765388653900487455180912169527018810064050867533697237731314136473672388366458435892230712453967636095217558006180342762655935953731093561177619431570917686432704115345210892422853152903237845987614630723930917753151007468249239994233254051065208870001679048031161770262170107438463269934616681880680450016312099233389952345246176645157605586799933235271827189739782041696915038460798182477103074601759555189182954222541606732064866386328029735782654287657758940917283061374395760952409685042137979978357208533278751773879918090620240429254178759594144951894589717501901290404117801310151406575784155363890317269165249269743455551406978341159275752595532600746688303221572512370815263713803431395285687291940984757268239624596260751608572355894463997765577735656297195796778083657430481013607281579317245576574357169455136379450422248474534822138643077393160472826671912613886026074175056366714959428317589189558465020549928315874187237278897492945802440404701882996850709481139082914511600416035927506463221660141537017761580237904374964661159653192141521917616402580186670558291067410964653798695828591208571951259654579422847889806629010191262861687562824598552232516300928457507569618198798524873733503901469398345813254983407025624468074051007390559194907254744047376026537214612048076302535031929174068271418509128675672543423992444623932642146641733624080732527774836372033758929395782366088877883990792343198932230382150563406686674094176677329391404069231814376662227764771735664861636054928764777970190147642431920541421532594029579425361685162441256409417802197453805975722262176635883059406373936613173102821927065082954154954555516079487539835002717778893770530134289286264831378716958484425564324171667818651294419686533915380068231024874110490408423130022973324578447023099393858490816163655784753175666139509192101238880796780363118788484014908855168811468090796525355810725615087658989388137112241180613858987804388207107337455023327913839135678003488357442835735438657557151286062693985565907841917535174241677548511289752724640919919704186743181665024322783208862500637433902002242439508122689567032117227457515861604506882505785447306376981928495659570848290719697815770085955457534473608029144627574382532943519796358295301838804795551147159731164050951347708768541621802755396695180639273310688263124843542315378122320160503683894877832934361116097633440926431068301526956410245474150057430810662572369822057943940617341510307185760277329511844681674889208961630479009995590671060865724747631268453040795522932173829082596814887947327820828472055480408398965023864981177912213325410588760208585010283930139134369350264269835232425532449008195773738606086656763740501174868823541580730820801607889065291930808751291938225106496351086212153874860773855973734299583364816491633825177548278349169481458826531697430103069078908186299945832700348906427672414701972294518865000830505071127699954422680226982338202618922259253251604283858332466352920828004131880895496120747847793543672059445140108418111752409712545545177782111624424642815237934073237350804330715093145708321083796330215799795383287111250933290259244125877339745936784385680802547065361977345273872603837871168574996645379088400978328592132376095039522341108212938657185053558767287088324734935770601135306374590335637355472697875641755685859348081726090245013848072488460918200986824153865992106857715455846547525755850423688800425725399524822235588373034768924760993998273070936398450116744444195606988284924273528493608930068920564345863731572510064332153572544479522299004015480889677058566746437734109741340413524639993686265362495435422327533314145054595983349923287088425805827131593021379752249757092247832424702666204080841635394091785366684465515478322735818739935057903902382814598898008790183473314237588020959759782657268767827781874862876525858780651637930200329264748346540749365097716658037583045338806931831910562863293581903114807694173534452144583754788357212068956141133623534541832738925669623297072558030468461950803645212193854872438622824079288890960221279472277453781997598148632509752329873345007033431167759105467881101653029597132612736488169796516890397921693809096633522109287200544416076660664919694914746760076432659172015925242671264176784552719220398054482339561338806377818565427229731232861857642886648638845357564224735675781217394269868600520501883707522886642812717290024048133933679932158296809325894289720341152668424989607148099775288117296627778154410685378144573505389193879524129017369438589257225927909615921701419947451266766335450937078565235745280713404802555454980572612729253981363443300953419709907990440146130328944453912242971723616427510861520999833719704248644720285758019468527255089255581236154802724095097907767859593993731010750452503548971959923522387111572933104421103005024280882752282141929426170054735551831852031581780110683023905309107311909717120620244525113700020883048924329947372288401727522033627127174287516451987961028278124888801303576320788731748464908798186930830486493504291171236891628305774322174159664378331286292988468895285917199034967658512465590525771883482801281789319749927401054993952967929736115123220026737005857053896152758293099869489212395801434501368718580597265821450620912804052683416808976534673496092198416445722631759511951598537523181960675125263692721993119285078462640114077827568608090725910753987773037909864077757023068113316913641243936784330771302213246985374663001075005032477693487907985414655688054322488686861598555297979401448683748037187165889060268057551488112284389195526985341858767546316980227131010316672279106930519832392755507850156993111567675497614967445549289190230730059909453118274713162657933064569493692590648670628175407867457588039834141430826941246956948035458273236031843034642146435241697983962173017035720907350934271564218734650061126497278792339006497980637411297782070376700728229399619717709825513039936747764908088843392799221220320651173156850571222583673982150552645585553550193248517784843491628068685264131866008215675055915130926589330209286805903940142612929377183695439276410202920678611897048963375057099445322240021653997119176994416291286861297574679738100550727108402323995385595455043441988845269308518640650980280012274879812184796199942938256301504925355521773893476081916724593151928991888602701916470090960869536502727646171809943465293088226168428385801810368421510246289123253931586919165650456756129130155539445260689341372121364486260177261380020761304176553504188752926665125975258269744313769515530971318243726775218028373425067574470576800117751691368498723510828816830807018871804589492927881898515722826192891627380263088957545374505998869308347225195997723474165299104974703549383524022579671388635844406708550860135659482733608471878282764681874565201405545736130914253519975257737456711474319507199714724004521843556124978059026584510474388160402791086924476594115805250759168300065328641726472523671586147524535097432086398640371606228933442459430581238962783711715900563633668448107088968378080113698660539764594872237088623449080427258396612625625770660737343256695071117108278820367957736194319700213244872083067159079126459105822464594500755130788803570439947980744506425536032383639082102588193264354248177561288136868605295376140123136739889795851454248473745104360396202395084726747271971122953374366714229094836415748312099832700966177493505863932044025907258905507337176307640563605251149159920720421736278392584044636285281958931439983307483869817649328961064628273255731415140989566402993484053569870048092135511742863537923474669070067100189139991704357737970429558896033633954709548135857222957358313125872495952841090935806560194673307900389618010411096149315890950008381262742034605399650844911793765487570836047529722456150171598531904001014607405338380929060926977735423361585732942879066766432117640637285290868583616007528654996885453485040264529932723957962842595279389153190933349100306227621319647373905272173413949186033929427919601431278360007640958253485581903637641357419017333889873665923910407036645635646719066363315136992596787037472974488330526574475715134262481317451117627004053903911000898014992434281542325058516008067397314241389185872108422471785481453556735480387321821504364477100364210742480273808168577566273000154127843577779339374074763316241471960116924663517967482364449748310338336871072163953613421602036469443976675755457640657225671801987248368404096533539722007098990688281980252010660648949818154431621393560095300257295949501778577767937448275456534928294842974637118489500463002201233785027283122310025042171376293710041469652629452695380943220410823840860637949071221816868641945624552762389809307576812124784085459481906414201630910882713088870398492562997952915257765615626957459755703301276739282710214270207354081606086064032483331684718839090707611817189215321754454394274114395999134421693448182224646404065108849009404116059300128285303694819695336134108575100564018696431435642750308828017479283606982264000321414113001285697536229749830142767678626098604322627082136058147133934703746164025949917103613275607290386040845851787166476370789660481063169943427920636485721444892157923482446325265373297304510767185477420054177021483385970951826272501895398540532913064284604305687397617795430449208804220665130449799341607491335050048958085567851974987438731143873334526542937065123595767988403736204109470240795468188475172656702877081466568254462943689140169577258938277820940411637245011823135387473953471792470953883119310906720398137845734850366226785890628892911011182327863456663918680745929132132950701289944573500214255791291666181998164906552178727389556835802696184704478146836639969600269361827680242801536454348004676125560936576813221984059281913444133882796405786570896597683303900831824717008176986799328205384628255870914671750312394281892431126892999660338819817711294192376439012011146288556923135976836927605703347596454096684663754903873032402668809763066003756068097154141665566039293128205298082804296863029979570293234314978270365244021411086778384106565023500675159930292057813286104962813612878505351785895278186122285760958467805659276039206508505504346485677725305580340017650432565510380543125648749214428090945970820741038872858396488997719229919427067571544529098609337624614733674638669849063086420603588487772802383555810027139365452063523224647109371856433597861318534386257131322039462549168660352791383286131016954736086846654168991041610064862031700354258061275109098571046437927689115205456510463705705379129098003285398679450539428003843798506625007951282817044852385185276991099340535393495352001790176515610971897432786640876332822100887412872218053336575967813689556534574825446714184561986374122540628322896038615112059985324355452071837929025399109561657236303754942389003566291525919266601448745282990183441251841898740592055052123884333465746024900406431613116520705030703403729094536274395228503163516890348025691076616760133449388872976555569800827197878138826184157968782592328042499550485505910501429208028068907491710145810439250715458371022873458024592354686688654816600972519372620315436585533166790195795572674917724573924852636319298851348788570717064653640014923571942554160807681668723395794013913609405713988880657444558058986324927341826950440164853114313397311821336834794112843536195383395963033809894242669999819085704815011762432146250824465107862984913395360507563126559419970202609634304861552205981217981472209292638671132326777652670659952607219530587233722344277130507355623017936279831792380738350297603652279373055821911722198495621084899994835663145623230488910344814306250745294798297437052273354253741791527221280772199516232849438674061554078282019362121428081087250475450023616648251921688791203712126308197722585155019885664749259475080749049408601317385754458653741723008264293750571767079298023984804793588434422427172776532226247372175607241942883108921397029658221284935792294907355847472382933492708989822972791577505032957927525897397816328981944934251878268750548589804128673624912548154824885429091135473871568547726229518420982927700627859103908292713132179985336115260986176220415465862499791275082058846550542305316102071693769162555375063964105156239375301527832759453259027137136931120749763183714599200235800232867748747996202952413067128593873557334602811999884267819712748514363808230861735708070808711474830193759971242906706497549746411644424402920326718976050461471028471238867086645699799354488364410002516010338986719641014256329996124251344910306943507013837957085448466963947525884660084094983656408216258754112956169669958594387477471492801670131731575909213581812421355241010782941142941366898226657827231370709134417312823642465618548990387083110207393888859719584044623870115986249193940706417439073528569913524415263980175452800334491443480025622892236246440022419289378407899198003240833360364097608344714278782510056968621891051522427556904522094352103856906971007925658603048288045494788420385684442782003354901658639171266696041927850289527925610895008825249024222072503652620284986774396436582839550865553330615762543325779413321800279391323054949396646916873604346724357780676352725103103991153038321738014839915398537595301930972248723884810126103419232897022064895568835837987273685120342558349174125790514446572133424504390938799543306309686532049482461324008281712232871853658050017406992309003985431188028372335052172919168530815574937714003225614702261803332760290867429732515536801025682539299953975951491935606303702005100878717502906688798042328487265228321175132281254290107016402400674894459070091089698704889546175997880099138382739691570475248850957667034708795279505037877395550693199070553510866243117281033999810496012532752353550445401525097185567677627402405614698280564241561851759356193325139108024097125853160509439501835553633683737631891964636983511055117464167557111593111882846965852848757757569772471508472028542448337266019427458344014459053133099085709689751184092188073478554794657191251367352493065029208707458039941019554772765298990672562058007870872800601306135891874197387872109125814285182319504299266113801070431371693923615033965051730210852520989599192858941458076363051281940403720226085324870059198538812617438326022758112163118150363027667496745352865121797922103390836530609097305623820109782116130090870046701107381321582442669692269163544603932903164707177585636122509273127348867950472825029483439940256512568574560155167701011481307150963646816209525580790467775414785954317235046816941780587100503596717894229153324827849230955444526061882880305906808143221295727957999463810969187903100720338541255409799025935950602947146289280805732011193006364627422844118378975813877295844655075974843915733653890934623091194816563830413976861081447283971848130099343442115936082840121372343582291382932116496673015420192577224206566310478379969642829795501408255537780852898598188516731490558358808322890918137048278550369738074568734518180328474665256195287994854616820873558496490808698423323434928264655869618378959647044269226144811795189683770735527154071610743849171605747590915837770906034625201552414646254650128421123742073390733146888178607613950472598885603043326879257602271676276844820382920476610959858602220467658832797009406465435508143183787325236667532974575186381192991195353501072326187187607559029289576148753305206369280292843340858574138462316830335788085278404505848351978699086223402280042814857092549964924954578096565362386530158452000922134708529740694533053918851879078621633307175639241659172648808517835666385069900378989857943367397539434061578113353024158337715671999189693320667630096197347877534299563130890537478550933681580757427508475236080923307961892284273653335899732506166156703386432451303695483838018969043052533339708899183764019609435044904942832363431660845996767472026285502373419981451747224915519921950190801754867158956402157510463380858176166682472519134902627226755250252472126337105632437457988977416296805262500776088419367282346595597464298598174462074233712393770932181501259135805588278196435935444220088758020715329212613810224019540504606552524081683056910338143077865623289088038818879310505742387339217811248774607411973564030164568114987560084133085787353156602767030249253666481077082587789456562746388523851321494468322059421073473702171001026651837408561288669095500508329706766257568691392758461929087489337038911413292705247565564487152338433604654419244233044141726995180224473017580472928476480453940873542977744146772450945058621069142547754920533541260458486553894319131667795157545008481808748682076677066867131962069133396143019553198872098427296856857202646438669828066775917504670949180051881306121948826682152775571017690688952139479012080982734498605693842009833355850609142805242327327023708828496771495939620448337456871696823243575746388077112414523756443303283154421279378432384370390754641398357121371583998433343629022687688574775110738381888366976827657698697655611753053000398715622845399338666533066330726303928667589346675981413671878141518235057091006204724018997348588099198993740246000762535035955838771990507201838715789414644902507417013503098742788021944264542964740977936940226873574495765265069537672291627723523914719624981444358683508566630464111452349530367091690183378685580334683956914336868115346394091287082806714453770462250826699736462752796551307599134840032665373049109832221097945448662399462667727745304264672151589920267659261666869150384839892093647711655107086582157318326493800712149521905248807929725545979533813264198477996731260717597178639797922071850851503203095934952971787185215584459455066392832645077606292944298235381117968034299977902739547263304919421318577660491508110659829823644927028369344704337355094857604820649702921747796970617074286405921353053885563714763785840951554983549572676830905892585892846125534543996045724674010017300703553115668956454162228384102684349815886248908559709639907594473863053333710617245655840422068508096907397323651955612007978055140884080036388824278055499826633056543915814733534537635284416891854145992877295668023653850370351842061456187623058030367685103739173834291690038246668248098473959727075581120824253956789236451332309680846942706205080850691332151141314551308685395148263163934357396265127147896521471715260756222238747941738208113851602928073050225914227092658811340336989678390530671223876371749988732992597765843967795162663708166141324122844581326245083563297288098844116621042579322829176689187294294668515415016919244652489202856585264058861007761244532434960691693028963336624484400814011817310151164229923998721766399880612468218500792450494002914620595904610582251151968235316109294388333219927926569171104667259147339765002184533772823641156314088847360232030395482965116480678586366028746953684099850127886545667976470961716595623118988529149198798532709720450710929319764579496349643891407105365570104534369027752440742828316305138563506470796739316657835428787699933145542258990809366114140101083715203077515801664189000997338766766828578406379819022826096343096615325275247254826649556948765365007299103224141229837189984254380918290480908957819425639896218564098969933065803132086759978560726738295792805564076289583069757143621802547596986873533590741454927315603879921775964378450308915449358644084762389942442295543947195270186157040124480303739526862811349855147342983160716798883002816281062723048753620722546906057542064528102987861616678320392340655798208209186360723738996010488992916860942512649053471765821823933115923913772982280944753001037959005122296141978839698513220698636443210720478637789328049250354848758659212358613655175141397768516070388773940789765600068521254765098485557459178273570872839347663002571525186510577011714012910239923840765521181253738642359791167063295760937933122791049306360513082038144473299057846468491247748204722878136100922902472709408946532646293408258419621251264587716452726604905601717153171246855516479185327622863975382074740747753915738581959310151619561978641202347657078669898504630962131296722258819638215033856257551890114661105077701915234833330421255555964896991779620457955108187313641337542805470071948998259137632917433157027689348200915559520256837942803351986376826736973921806725269252801349394358247693128297871513963313690923243709534654135670185745759173348000834821549251271652866989580396990732456757180055296766857096588363464136114615208240480677831404563319547672647748884868058854245340590262003158196419269218103872702762630457807499965791450659959922895587484985126248241797335700282772566195030369154947590485911990145190894116482120553915490880527321530181616679693918176829307378956733337286703410304406671874380589159450560579787187720642243217448564707665250245509686446321022407507453084417895347019759059244499178235127151023002986842061478390476618434733117315631731975812069096547821381219634165005525941241471992186459818959117655653449871284803789901691498197914015715965833663840548284957219785852906048595646338017539629619459842943841784784181636456130599348068978524268618978376628350910163746735665619201995315945259031306530787882712728697215091303837947238170092050887331244735217934606293518646497719654631164699954689865185061066934866509165007284243863170141173787735488757750036941375836258374496480447170378103672616341396326020861427533825646913449980792762930017576979770605893288915425390785298294726939665463037050541001610589348696221428543945531837550651238829463020060774012566913818262382723569008290944992717884898621912436017449840324207327746387669906455144207677775679389446233175882647309937418331818403430222588192429686353503702753685846314544871187093081762531651224393662877354169717536611232039849624566539407457176575604915227037248633404540163370092711720421075103025835582108190176235822924104883825204598319701772805824208382865332774272195872039595199494801176937440948200669920160611038066472270302821803712851905626123362330473657129199549639324051041519490279117359730750620021081946252755961596036111368434246287261020247621372030888173999320714161312159435629842039600178117576261069967496080496237076903746591748162099633136482992737690156186068244576617221078193523834352008048902776372975621687163077099418636679105342213223244648353667408769649062516230063781929448037912396711230302379778052707443228616155096314934867835111268304477445763443366072637512176979895871800143956256383027400791266258430833746700271852840867641149860998448950369563674022174879762838173661939175308474403006661377835387989679833917777210131019484580860989477288873850722831108600955653974050577905665287923586969571335230653153255932170341858553133289039933993152863366537247685913196656362855137716084882347414726006357592030464576751926616316915820335628513493497105736982170888662223857303182024442580739605312106045244987451497458105876464406326437336233791135378239062911367679433562526669339598402498130434327398556562035375806858037352477594815744851239680685435252982204873669723258011759547964905754967927960042236323044022889818187309874917737980792885832457077267263836733585091556200319454910528431246285199225747337304256800967050030707230992834098443014799841384572733219850317844412966308270201246246724683592412785186299818921807753644012248908330811257678491459963755094696913438437421856042994417663190163546754335458613609990529618674601104168405844127133716423984524202291805704808008095654846384879856294405948305635353977328037608631629750629507186243255200281763044667087490991004047663335851989218470958046798406038533052341786553821084375013912967413665765830076228009872415695395191215432210035803895615131498321448196090875039050163625222137460520472875232748595384606073876672596584098267841074120739133454223810285367375615074121082332679629179880524369757015116613091930185123054108726095284302648477449527877779646367700394353024625910684249761651645401626329694021061148350982779400231925068191155380706593956686525690689762088169753070805470992680145790082630098002805135873862603920801830281225495907645169066781797959519461151000617019804228222811735286156142881223827597705535393345429823315460799346476085854392318158368183253723211119072927197153461032894742549992273979701569653639602965171860216231461992776772092107619320464675839916799387931355855771532758904312843197093975105379715786402029591611289074011003031668043191389231710315358525991927863781862528799255742752955857299119381980510936501407849051218696639268925603308153126231053878321314067367864057638631209142655524484607334582765526145344368816853878873693304656440977630545239191895752898629593182843315457756262330312997292698650023353178902606177783259746221110541411842197400890482672870277139818269359369154243551700906281697930535408877590375007793097468273313027363434387644288967577508590231842284604244180860417765400821182317206401751004802254604714370084051641222073470868183740057398687374971000453190974528832796751288464650150889014967361611320856296633813667549568275990583165803398654440434324582064623955266253895567878014532953750019206230199869048768271096584091943549125473904004101776169416382179504518090259436620595915538287132762549047215496030666454459352444703789456543191701708827541087662352591557153830655370294374706471269009779584808844251607054716534555312200308117701274909175756877093875346085056085555450256834019263697300606379048741859184131100062513847885196927147297324874280677661313251566103115068100213854299111726031223611759499271062044021596988083512662516897027022528345623838232576043369748619044020189557200750267002583078592455292008626668969376909462592647450834299574741433601186469941179571006570928263068759841897647667949609505259360014832382156370590392445727052536674324733477230096755630513218028961323425377848698638637863845568570238397580833781846454124473758664477601044608259449746727112564823250944018010230832787407107916115409673208457408673002912826765084388941696323107256069975957154594763136502728969925691378035318790712626486544236770315217203380896098023413349213037225134514302458248909102342849733440666217252341066784473844158919076045232960331678243846543561340505410920176716909995009301825234848118022328423060582151579241481806897600581892400543378827133406702368804402603550470351207716888222197954298832108785850515705121648972596012989259105102029187814139942923670910093069724363308744997200581690203129245095177254608750887025065666078210255198924665871438663654404960338958266196328955279550316468002394645459887043454409811101043464071228325926562334438146915315841791959939671768725480683844009251423279899968988898606681853166383564853356845367354253775199576818455523275476465094046368803946686095424402861078203301242936105398427219582356251167901080804217953040636574788236992633571566055466037289185036612856675877427094521128472284334259228863840656541263316673080697332715136244963221512513075912433560567360073561860196485540133873340387099865642893696089671156939081580858822551903784234333092916066129354139409547341935051095335418715416361990772313875895024910718456684018413181848320164464216989457306331363780391701563475899597013646959546848993606959927725786730993652886142029248905984097214517653561488677423019119677494122925199822663576674526081584522805381900095486903851473590261847460690428164296282846188144489082765515625853017080857094427803244602172074297698369072679069816093891249387670564933249713099242481920512381001007668291648587400851919072459320123287896432742886969449885233180527171343914367036276207953328701607324202608080987995265031635323106796539841589841632533832821894627793515438236200215121765190937753702602872758626144643497258897731772966641900047116338621143397062367284472315894234193783608653156051721548609623191755020677365892066185171162455029682349634823740459038055522264880923219942806475691122381771270978468442768054700906061521810349814976740143935662780911779464767242018401021941630907899946390003713720982216342737386177869176519915961230449388390325394287016372476466128168200183319250947426501124551776682715670778808775549104086203161791783607783435320630817778715713915254895263448546891368405035766342797395864028017957821179507084055136837524504698810213075127154795039003821347099364717494602815884988320812439119886695852809615407710190987071501492599752380938187603720248587363656887386342465776650878629162492525383320693407643949589720960760054244982611308055499881866596078262363538447202456261679392272202668001998421249203490412630641292433128794176612186063883943225859016534814069880205082377505462232390043149687410119530232123480014344496020091010994783189208588636037626188330426455634467086026659761157803938911824230217670453860933319579606966594775143303228601960651160409687585294220702288858899117019983238460846891105814300204730330912180820651249562124845464601639963030754642265601698745284149217138552516085559815253342318457861625844154610948476771085793615931102234638999714567079228214166111521249439825783274346142388084931791633466928006590086121220375949741071062459024964774405638780525791323169303839381907155033265947096497044092846121897000283954386587497356046548693989508886105408432172335657420413521589327814864960417134240395366863911439364661949811118029681557829584761896128264791162161353609251952786252957286022434274952972118909973791255258815669347143712828994101380853988212501678638534721121023459897638288622587618655185771744965779157442326950670730584754953600050716292055030053244861887614063923596652325598829481959938573480302668284873083642048501728428827491737056900524234084707545738528978928861763463563529444632438728270466309291001524925656415183841853894415379901700224200285848882152948934210097373461683937166446684783730599438968565023528935695949123556548462533238933223027199386350905448754684176035197645362140002695642892333202866667638210896084685831488541681492400098842241513368715053557180692800092426722601938296833820188340741531860174272712516754005915327667792773653096906788414777707938275116594928247087257889002831456555089690953485843388383418674373836534993572085508264338646327947255585507040082557137474392703768004433348306867740208998216080964487782222685563271426676489819874053364640567321407352046938359487393285588428593904462992004239899327096215186661160674497885608752401437464873663726553959943723945504908238386568488064724955553098385140689097231768476167870371990775225502422909555623024654509217964229298847463481884963816192420334286297948074869542856596253819030439696886885731903770629289149895525405415864284338686938681127091014616306211606284681156925404672092635498422717237613860903993311454585777978590080194614994888430360507953844940277920862492485289076966872180414421566873150909572167203553652247612848104303769787411304255965281195235728645385806453580340450205148857130996823748106725053311326960614564994889322329632887302808727706842202204703331685704537098948157284488990042084452726577389267495542477746623185416168653237572438735672254817941768556867054353137148370027010259113699550200035707221374028512658867861202453751080437247744685849125563326335596550442544906804325883279431924099808796614314465845827453531404198636155757556317947057537871099278200253632021331062961928322961226273846341292161466369538774513011934397519835473505295461076070514850126918496427805634501003551400950935773350322558780656014192129973943492727048020250552346729319696875672538643382849681082699034059632730739447108475556102084364186161415764293260082948770686576991962509996123608834809109114282174162030522853831041305310681514266763919445713045314382245378531443981517054856788566129850852940464484412019198871895912211838978778250947923053978108675795131558172691877519871714224582624771481080079005185260157638213522420704063074007043243104322267352902021640694005788083814588768404622162299512938592358243623791177862021281718414425756122277620669860256355816977022213417990985970206350445722133681118217584630737974190779318211978395535601913568127615340607118945935286444489972349379175534331766966733348909787935647541280933598092676155556288400157513385245234316079388107214101951585705307088832479510588213466078658083808084869641497079555348869393054279474624565656225916523347348559150707035518042356150222465685109884899790697588611005556993481695411664705549449381865732530356471933112025675858545981952147344589273691493245563687812653443273634407817796987525235106592850331685104158714446235402023203667561895133210465531931874359343106758297637920127947857782001404794775856352142768210802531411984229925650180939561157012631286782554040441652752729736932578912151869986771672743373756617716273692974971360284142720204559845713678406487956270502304086469548514768095364334390656930799315966145732613415319504989112448859511260136217263202978877976698556316522082855538331849525650364535941609564581631085973440280255602547135243353201177290047991322945831580322543984053484880213146227152696812397365042693415045255276351840024945629399326326427483458123332877776821719631454137225846026848636471819845002922715673506773693524682183454650191020433161122820933464368742371564139603760439868315393582513675794532843325426855512250511182401197873198212542728948476962127748521329147742347220915525287892427649879484717675745454392328812251293877592745416427349061220710059170599718945185283574138933115143265392636821522016655022404056736170393320750435419949364953833972127904259065036589032834925874113567719802979081699947844736986186112718100760742623930141159117980275990032118659134116576842808341389687880484413985529404584775446907140460990169982484784483428616579253892309784377486155094066915880349054859078521732472378879630903003571448375883833746770389334921914104156074221891935344094772349856714702556936557533284354349886703953764103291183603562601172346402980816702820255760237705252688276592704292244778272476608828754228062408477309681806933130967883563808120577310233909402920502087631294615116362297669242260707329745562452537249457815645953551553226622360668896320959890271098466346647232727427471815726533060189374665234282508342828261852079176800121096152176183731204820611590082985386638076017093935622038999212111815213194030304280048745880120517243076286963333923147370616621154697248370479040567320329297301164522772462999946787290288584665238653490684350950335321392017747536788799008957310845208446535989951637950675867629450117572404299780757949386306126372335733162138014000541402521771654543531884403116436081417794488300562498282281108020081313542127567190804436786167097495999331704364683467074321647105086509382773669925095641353910781527100380812381560831596521261183490771143158279595235205431316465329715073934540198471581493494135812397429373886984014780574359770383862818835179977176838939261445172947729949273013222688596146915145288672028731380196309896253828677752594824535004996341568130655427244666028351800279715761721360033476699982617329281742008505887307011126216817896853999084719070810284242611748747051529977765051734528927019497724557840811781303037406685703885520485530743307047157833268623312226644979302513130954230161073637878004730707245123407988714297770235448162399734013918317931724506206601673080882583652697613492671127055212913021527337953450544488408740484095560693900984092397187907217004826605726273381266153112080418915701057246958216658591393925931418034018547599264052407182806863002034577618743116025117794905903566893357181160158182488143116172633432524166149643613462791256438758185625126182298288933865772536464721591838920927211203725941567497423756837632793713508564581920038911161781768366533233875994372496106865223392616620311491385756259192757448321893721961721031227757193737129615993375122136361734290467587902173458924230831786254249059971628202572862250400047220135320229746348574958076210418098320333515944341606983251185536260688607861743038497134261769194228239151282983994338687857384144828704702739601120781910492507016028052793678323510124384620776698415959355988781791343912447215995392076823411163289086285710984614360362094167745664715124880656426723496274472732364082150334625887468511764039070607369510888780966210764225684577108152519270198867717239435771650505302533164709238010264298132650463301443957674967657727512489742165913491918716556143171503596686336242206824692234920973369259816141241874922520396175234975048768071249143256819280316197851454110730722597437218952225715790137725243168492887269268285732631670480292312932381813251585116422064001132090014986725494472561308653853878658373886369002495284708528880633639212933731123227194943484557169580556724279133525987662041840114355784692864928529770187865417984814566693766597190632125709778948136813308456213195714657604682367383030890398378877060137756288299981687675589422671095777204933799362017382535187566240602296717156013180269899510324790345854415555930203490511867341602811039639938075247887609540821843706930179168756593428044484570051363176422278304833026281781346554913777283249256647069189903258027689685525682638994344386363712246141056360149878832201497349212806163592116530487919565549707531590990937121992999156535658324889187414327417870157621140327941208345570684517315953391910901284726252545296124607277381813021966838016692349386877477315298669783226639806697998437208500597809895555951903808635211342713479349164247199566418846379664945303491605656884495255666333030330323586127536376991412396838110319378443400324131107512540203618942890177888066885296757988435662108670011023633750873705327178819560418368774687340117871398106679495951488261541808182427679048688435853114202417163539107268099835143443129276027664252553704456204829219219566734468023403140316643097562428406729454699846373858952714562346013476182246773567668998353861124246649021133427148967169266860704033936072697736301167314514154158667146660151190022460731946462316056438480799533586488205805161029446547509026557972908754583370525543484145598828833697068190115641485777107628155353853029850064722088205173306704129349772197732309008853723274920065433096028305378775437384628221769260019967524197911616320873861402828499298087239251180022500414177809885029303168519691408281974585899398756434802247584792419047284935667002003010200132662933277037796872318435584699842529283502874895334435381315043813570495359047705357219979867364344900028373508068500344605877261116047653602003190117241354297505998214515482544690536141326176716617381292460420759420454574587489297659843160246077398403524705452026386999053607287465323022886594748434890295268536119681190228803321313939202617541842216608490936218965864615387349242958709815840902374657396291039188542049047634355929729120624988384307814766741279236046793081332239827439224128347234905166742017570083740186543179326522118139750848601486669458329834206513692508282033962078126975594637866074464865140269216246822160979345982496094942880387276557386647155818191974825485288113438969001363297284408649024630415663628089034397278007311729500049970486342814162650969246885310171376640824950099503559899525713907471742564905021460223453640984146243052020141924282660409011747500768469970281656597998412579929930567312427387995585621549128994633780073493813851677589817254402839666441634611217150815289553790319837274939363511913665295914528616578249171141866860130253853820772919295297832620474853548910009245895999628314365350388532703158510385503463425535736021967413488428011485518604530203988394206905270675069865134322126994303573347795139339829300325233954920271059621667480439991589864401195558389714631579051546988000799083379692068519772882248689550357499622285468805677733554145481894003685707535387508166442046326625602264911727016719823067262713897958097814340948036226549168463854903498022054809123447025223176182299663886562240961312277885052977969133300543360651969838478057343732556806244895940881776519805196718711861257170861452458930370887968215950195283243624723548859297437309802128142750640940478506846110870683550564108477512295585456384778671504917197719519923918546102198460519907253375991665287080147963805311544218527876802155911496272975780527864502311977240205655822303606559593362652840960617961724745454189975338395722440613058930260459079012198362591547201020364133846388185241538326953984154408743377476304880641380139235487755084327777959687399841342537724087633517762677409787989514149843849365053132108330486172311122303508932908281475249809268029201541449238932143704019422439902316153033845237619282885836616108761018701206247600073205959762798396662093163690506451844899713112663145938325678506744911546208547187732446867811019565822508239317278436464514725924995799502043853477313874729842635119176656009046114486899610730420538126582983664251870912401103293890007273361255172902520712421292983715000950632121531637720609011059011771484584516273420518759177339722965777844014595472371810042231276621866256134413093248879848330357356493186351690842528507457704261111765909412454861170820996779480407153929649769217065255101061154780775742449790274962403682355267880475448843574226915332903843064531384199238275088591529781893139240227782325631066526071490535978298292199350065219138823084120369593415320060981977130207655539866934669353424152612002964241011070764042999497405275783862490822735949001043415136278339707477614123427296993780881879954519233789264026475773427732253191557713159504580178122868366104393378574434781491079439887152628908682190128315273759041242609937151823521244206102791768225824145991852778155601011165219098706580168130855566287828354730235221460938192218249895203164897241484183642307778151405229525027107545762478117469864099270497700962608712271677615193592518524686790909411801710400790515153563374014068146160934707029247228551355358887973536921609400824870581559944118263802764608282584722749010374937496635160541883117004210198412051298402978537983382265263439920796860603292381815480499560276289225789803196904979661572155532972995973437390688591622008258700476928418176093506302411282739951790038282712550646188538150310974399820554311361047196721377373859141063292494201494112020874513465095750481301645000842126740493518079890111262123113254702240426168590336054739849853353055687905480795198802933649800998727952164556074319932961553018714582460116495957377710091343288770611471797658417341382204278721789170247434092498739193148914313061440544579681409127272760016102230507707060836355367234137949326515981811407947422068710340113739213188796901197674640121552203677932416274841952452364184548297606650159742164326311504291146834430787570927383017422709942469984175239174342910077070182756033723887774426516392348325770994834396535429348226148131439383240272182248474643092596274752863200605723599563399257642201498074144591765663278421341680717050498296981280147478694376107891019169453406973262815324406801106679585284138900270336649562776746140001459186632443224746352394900831504351845267088571474998428040737864621633189536751761082195454007303423458980173373932783551337327264038081279891931068404650687500220649554054861447762552873975078270564123768417346083104306655130195979878002304348891086507233437562669237240887884852169818753553534114113206737401930890920853239933912721892588465068419967753405559891187860879924963004441543183860602410299639068072702140511430032112182884932089231715645458525794751363288852474475380555623337964578029025216701008298178897503398281797839051524617652725326813310871603133809230381006872593929725734562844484920689652177212999542766900429306946284073283548489602693892496209955283139569112098352987727245721263556867071640052540724787751964326463693881928307040320320023338161574509458657582715722831636089720452272792813265129112400015784575352563927570905841533004897378862641973008596487301307948042832623354398601595551692583028031774371511179807809050179647154347627599084227456728076885600949191385405910485682507188966519111388995543747122978148053492818373611595012260043659597280970598644977906462149204043580233414655918826902768505345813894488367924218239322495183969166408991275673286430859207332910605416197890534347282441232601159889297456494279519864001119940857532450305246486626298476509226860534814208978011423016183211313915230247592118482618780863255577829279924449964341490439394992608461088129018834962399208944679276360641110877807558372695377977550287647049495527610487576372070584708610289272214333486479964637293561702710145581257886606872491378166739452335984217785219542973930536240942806436794643055213949409099742784985021368358391148598685750650075965770374199622073981421714623215382025516545125715702329080263640416557529791972204196316964194827990533796932982112864356040678755410247565913329348351783218419823977406288615314356780162111128162358354367602061729693815131439617328510283382502972210064586961587600660880978638720459056702311523653287029476011182151084584442405052605243795008038258427430851175316481846463932600522621028757229183166139981014693631445664850822553503259644102277184920050532620829975997024975782608887033920947073042543012808479864514478640420816964100563736227795043844073217598801090325247732348878518049082763077189128626434521226972134039038317160807541310928246140569267652948873899534021900855813374980535960826782095527561043936854954843261132104988130063191979216117328719738379414529231307731374253688417486693742706134862562552485292639347655965798542253084595995883040661368761373388369216585003515993145848810644818702760148068766077141869718170938718260770249435649210958607411921604117874485012773028200973771270093306102388067500584109572901328389304295394484872987593694168840580348709834213944337993691885403108474304433731303601231863687629616205743172931975507199866983793309944538853394918510596488050402493862774429522032777469303664065873668652072008432682666453782747049920592575419342675320754978434974375688988152317327238586278000032413100841918456835922056819114409091522611832705713885743245136795581255752616857770556369643746720599031864685789062754606772740184732892453570083099065381135141129849018417802100205365790508412038118340267537590713907970198112976281749315575384998633531620704903294544029937915238103575097902273187182709847862493191986196033578453811285961921045495083832450136858322850841209855494903265755646114509297492261826686301690346987310679170264534369858732542565436596529548704855307060956473334273079317935290287596161373690727014264017936746095670446172279311305813375928601643993844681095258031351825161558639197676291673603114654819617166034954044165389143188940370636713115172098144218047796341691609015427659044910899466626021454051050064899526752808610823989174893545022028455713935751095988444452070899026385693442083092936185773580348538253908523184641686757036540032486471757320473237993587447469641337115958666832466291546934804431263185992364706746035211315438372576749696178353644936187285126170578583138961012313892336896423849266052416938513806681301510392988073268016920985028886311158007491261490217687786245169654805104026794673447131367023580477465432636040798750689243669853946373594831781561123356544613666206102596993589865793673493239743197841905268030326101365193562653348561431853528489303743454003617876521875810976774810176826464896452985082193306327726827805931329266485592675826380944810709214242925958392073880832260923501783892555365292283964296042815088831396336565712527373339930330896847680520568299010974835923047326264389128352394205343309425809484529577651268655676994403410678984002262433523303946409730282302440399595181290603782357738429214989328929890034769028258048912512635157977880768516882851235499073007695836816819925756456839460893833737311728549328192153499916529216017592516402320516842511175447781182392021460946196960315976713559570112325595774075590332230398197790304343108444329954994290326173469118566727335275863493187340340999283607338916391097589129897481742335998875440582923446209991587892379109664903857451238632674281909865588813646082775358186999654885707360516377888053657748263150998922083143942315574888457405387861867139903520311406623203623189512591925265827919542072696578627813849524175212301665881071854173119354420656656688556276413969290809516776650768243303576230359510893897189290576291554956122662962045854389206986140551366122239966558131230387693895298088056491731211301232772763580818024929370897838003979326902740350494087885879059259271253898114437676583558463032157729956132721993241251646719131160684086814432910644432235088625168392858225044473062734582179125493423161865486020851937688101325033410180437085258495236482657006614715925072451011871942037889186894751347035909266754532257787180092800502483571799753890570812670161319210635639881055308389150604462299617818914740667786897971106493894745155499540028361134872970787882825912332824772329976962191903367411556572587512571221997433311713571768729769874581309175250160421821947485512673889096085071848777538981032219351637656059931663434570447976282194024327821529644439038551202524684775684085919445227171949597332222723856853469849606276289702427811384780131481530233019693749092041771851076339720753916412827382998872613612211365815885133703434082640523363011000084368690369876310843148833576508976499360196491921487079982165794399112815952888634807901230807560196572554498203582836595321907166933587750873660128153719252883179146448729496907082331310958962923839554979480432286883250758846303849901323066081852689663852967965681539268727941543666531081177386592013384885711865948323865051716035233562279140877162177830468157077259397440488182086074202175266198555126936642638301966942826147467071464741418204851824282349013593626292830162569114773604389906047386007243825567173498781627097498379243973186623741259539184470488364960413552335484819412439299520520984423445373709114973450637360788389904570157722145937645476192599715106738495404567997453220869456433040426397596558346601270100559814525798538138268178367180440468949355847987988529853697268419728599539146492562456471859852065907423323425201070796863399449043543419739518687164637334762196699285894256419575434369163442268907765663071769350625719954758637124220802088326613702354366896271530413986081994435978106369586013552279344759678959979728782431893963851201038233355545527862446898612919729295499643488226224024577205615783297941602467569115395692672515297822747237860177946975153610571035562521718564030921531796224355311670225782763105097842641484144295956815885753257194314061906915246875927712842790669667868207502731703012726272504899495752330119249241080990745711216378755059309696972072436049583929028467558711284902898781514586228924136811915992589001156328469215389034165549263498771102586872450218874600091884043264910789102035895980268249130762333989636313707316846315630444875432389850176582863849933041510075479013133923460998836004842030172219310919081846250997601036074132803385149218813007661089061561977204160396059773886944646626565004248462652423446018205878421589757827009124857588209070285515868131913317566303343502590951298804995665817618564368561110120254557819189260197524925925501296508517300914679138221317893105544665447614817748235308599404171007173133563894911791027484012633448275565985410703695872898302771361499194503923790275309367479338043875369735082270565921824590702993265565170468935238175617366058428433955841375714407686723042422971372701040848438052887731885350689339226738469617531188904734416534295756858875658143209420558073183589399954674641264867343134846198223069720472196814080378629533623507133597566530911966014966645723361382900929859401733961864253943485143279069347902249274778509205447510174168277672540432763234410247609569937924635865129414999047339616590269493083162559328820618409569174085972930095190879553622145926236685421471148148759950757094833644547618913013877390383876095578846778695048828789918675875126953603474018544363038121687938850561412881005203651146653777479752265377515092613666446987802998325298042381555953962595734775324802203197493485475919537215690540155203703132825279103551690091689243592005897971331478158494153465137905061759392650579076504539590569092597383799693737610693765686456967809878591007041436239352983323846323207730760530568490682885008624099864969296902373670326386394484919568531407288882003070024304460134337771973340311964871272257845664560571863577789198704899575289333654602148146116574501796552422234198894002892226191460025069676561148189103886157021680999044527379702135083222583445993290147420995147291053553636096322258712829401384108599767122880776151295125794147700905312634289086623181035216482962404614758501080317469586403992909719443220254797995192206193558408845170348447442680610567479916605180725851141065088128492998572591954202817384244577142463584843721821614208902988231097601790907658206925102420088612240755078639759248238255287026599477654042829929118269401934125536794853970519014640951942275540650771206984770742489953885603966363273987705851609203625233549632718504589792496234256205289870141173237147706935995500959245309142345918436684244279131931189509175706272547078475632649016455606887009423217416217478391835754199300803248384851547342969069542059044549098427735918874901602106456022088795839130958606725501919591250935591931706002680856849589286923113441041260996733292364543181991744752514431743535776712587903630625993472877011055781138378911606983661295302138620684101397779965249285299646354191739999122555548274852981323953205742923975323232098017567172053501193639295201453017673171421469377746343827671398489457181950702484380501977333051582383910285872345551765643334805296773230856376326834210961455240173764041706162791769356388749943906541243109974667080966779002530230478552178058504652791791355784731025350784906416913349488097789460537628028270949715233284654676728667840376419204412501140746047314805138633775988181804979169790344887489746378573217456449871348191347114156296781316095150892258014098479439994491912140644990509213628121449448423122480787419293251273356298143441914062602326097633741413778158279616601839709439589103014330619547958712417864697620742143222893172802326026892841691828955027640323500635518170007443727707452665344408233646195629004256780360568610760268589801973449226361626007565858508019944762950573623754961224298997728013353886704181433700325928264704040179677231348090263733176486400648075061854468851493252584666252026922152704839104920716744140037624668600344452846300707074462513429314606932364663473043569122540816505971723708192586045546790672925685063449319721877364741188531353172103612889090707429153751344916434563873491883305974719110223417889552421590202889223733187990361821818887911672276384571940944064963146514491661553648328329593693373329786745529079535554307965771794354795610559173257908057835522304080761844651872798499604001214833428622227642978864081284559984120185407117482049997473002526482217732608397611097623233295696422282828098782254853406481744263858322403980883399081184665999966780129194576119373079679608407705576473313135449773677643028776928364917306759272251497826007894166829934274738633562866446668104820954040503482381829658381204713759878999812481248591811541325798406345119434875767941896313678698718006486798724633690502619811950786672301247090517164104475291125571190228284700133523568143386608349524457606293234700326862759626035033589733020608809205294609135525865007081157866995933810964536745054377145515246728078654890463931636700399039271532305957597359178151529224075431778723623731695292634505521531732562063080135806667045553111761738467163542785020421448822851879747263412634873368891657578790621667477912920965384036452786913083107707025504389703514752535450172024892609119026965981635314060511826628195657975334175903613456106283245211848680513015916456642777332592336091268848337350551455912218781884877737640998344651229917206826463739653856738360983148173385232762454520125853408425228142275428358162783288902436437299965893483169334655045615154645648535278064262541159562197477595296322190848285658713620408255309258997099013607063750423285384028284109818466410878751977129711709817544095420327043107651159839461830522608776490165895945341941564288297341837857101480263918485266560631325052868613848840768949630566320176950567848600289090215271149404576040154441772213801110135141745968277470789239899077337585544975600362736964396175154597140891593446207657633097163389385025061785150235706821864440786381166449889751681096948209407256231449330778273384885115897061895421693779468204771433246247372413208573988303630859928613042629001163975799658190261489630735011417981912243708026919042178872204920727967136769620468887112408935411612726421611597202026976435078870976281946304210781207392536668875047174676002741565867205080120950189246218467885224027235815725144458308716378249915367694673143106443963676371713887314366267046530855808801702299546042564569347443164657309778400818801050401952291494971850217633221778748853336405879968934323238962198682226369237107910739161815384683238162598173770220751594249324107974396760423214623744837883381010499316541556311777195779112611966118567578047847398630619714451048161817885353505080195465943723347386030059437988594391765297883054687575862777362252536457883006033014694801877226075971696338951013509184524294710743905145189230564622397726832193262974431516335662516608557192394517167297056694228578603674483947474599854651394482470238030198311364246722780834980401037760526677560020713523464179682363843834258656432161693951563265224293029857310862031232774101993739115709265004946719019835721937668944341899740854919849954848958115138321607313778157161472975963245116536564768532163989420741595719866619354815842306218349788909217889049484871790284456234747807052019320369364909545293895875480135519708531758157501016862413286380323815843482872768491646847525688863979192442335901454441419574392080217566844283903132617600648945301661889244525056101496818198925279945410812417545432449063028416013956891414660365198957293175825775966127439282229900039366934614763745411763507763363004493160646337716246546718605328710801681931376732111412936460664107551282029412246974065062660959885851628871671256968135480508463283753927957305650689073299309392446667517502085631887862113228057842224477098348075138768286118918827960575543259619942338128559174286733125487063051263603099717797287342955764488443692572704028539350341762469550421936564252505664835689118443710096127401295098588383980992174221696975025863657107184181066617697214453836036304365157311790909365948752436244545914552303344592440441739063160203202502619051204508803374123793439278920825638865108171060115356033567270691987465839478414774070151238755495459877239889697646964444489864292616090587343861069119139529412795180837919530889721391207307643787071143322372677694816360181765642334491256118941314463141882272945605804970371431112450198533955439124270269174314820876159929397437540709118054817286244576612588626662871681907932967059841934444092672347602759057050074302857151613892313870697480552052341711347637513220223839985614679494898957978552799727796665947530411293194660620496019515207137283697083582165323777024665890947551855664600978294308688106251912448435227354301105458995995439460583139136509167304068894765861745499999689393526787126658056546649469559299257276290164460858022163402773585944030002895779211723498675005542097097677895140363871468106785688637857769327084267677711829994827281716274111737946219954244533175335121192742765485485731363041623246273491779623823766937329925156397007746865344037999942805302400154337987239846139926004195976955027494670129656485306248114435988455108201060367816600378751720181769175465653609084473744692924463357337606960945438137099591989722316946483948826746420152425421906317328227550542782388369919322915312548363397530603599600919088596782642322070697570172312808009829324450436364741598028176422611648958292937978825476308130861257457843362533616523017634243987367254986742256229640911039200583110392520363044051494686955441269999569086506918628461501355312265266552890247153178986429443602596834433246943414045854125271232524660441894844940931935956794433913140279437585477345013378889703579063359030617937614439580043471296408204309577558186262609429527547623738520499369884518003479542231413154768349744743633078254118559493248786073792430890254071513071251545497280043497365858515588449293475791112569664309879951809274734923930672335775734479758882154292113485007481412742156958387127819020030182035836362183110137095117952675673817775609766380678477245468045865835698759440525441539298110321419603134532579446700241266668194250458677610292877469237189251116036285517644151801396640797189991795655603266062675927947996826301456614196734979787175192530673494179852400360116154721202523856847379676762461569556960052922735923636461911724529348104273929669714078038333230088989863077630174686982820876232460456862252107045914917237605830897004535229217582004841673772377226504656470516517858129948893622688365255968395148396119280421305776281705595551039747460643928965927579814037642158311822593021148292454080033339583269106201171404872410758637545191057020108845307423583727729428355123269156359367353146983207870458601225132346948634456202112578203774789632482830521570199067167674699286734256364648926653330219485911109015627463227386650856843611619331834134267600612342422738424387452001655853253788449863739747009073688502446135608009180689919138333953845055503860118416391660532074761777056420832881130413635619464970699570951510583228775411766324181267155925722840206619251765568841891398707323622146915373597022629681146505990509267626117100313563700579706527066770018345428363334358010074521309736013372289205541935750535205814862014158309412058981799038810364016236002161732151863540664755915866910697521243173572939804699447618673186232696385867640742254506989229078485039143542878218940511380682998467887743083203928272896027200803718401515614292662742546388173803478727990845518205501247493709456683710019383307220301750637858043097264212636302561167376754456664820565891204019549190009758914731438008436291358010521895079978289333437045623050842016956820812499479088873030638205418395044961589529260867716014204079226449107411331641800937305210711753953073910427465957632370451917570825688379000749498081665865860720675578058544937383634503265984223528670900770625335432409149917255268458643886144564795260558473611450854651302774752397238486978003528042061031868158201743501475991118046152914018597326553715120650233067620737437191791465442084457591293257030695852165437543212272940058805638377670589919962465968881816989571569546969837588879965916221046267931792171131164952934287143377263539945843635675566238290159442688119291287690339353215112862729383098368632357091937500203829604563252753615187401070058112202675226585700702543979167825340260538148886851603956597308683209870471726842437434352579589314927197143471289486433846437889088814204381403352332954707048331924893172282362773029760691224566599105166304105627505469143083516010522742612086849676159737021686712419254071734805156093330866288294298923988159292992660402411775793783325875887928422372463814114053647896801854264276312571634912900091849503221453771948442366283928058676921268703025301042013156326519348471996558649864779805532224149970199357693647800222739214370945388551030931677152604119520043753269090504223438616768126799525802861529969673230744982017414162675149269179411682169152355186283461536739985098721040759099313033364877564380235465149425952323336894941967143918295706303644963221558791701761623657001926551239088720949099439564012695915035308752014074861601153445175250997233577617692679018293974601733494823720753862473382051157548632741477983396980233728703090053398301463936443167987633650328873344172838754952947009823759420459792238466961487742066578325440487160678138751259616880413616826284575739356627650427943012449322922121265206794753005371717185161503705648876598778710740201167953736737526185276005012120851697439360407700468379186821566574849091224709829900349801433072413357619700030190333108017074922258521269371684766340233697239283801985080740457509637985969173483231553464335127570344159012039371857713058030943293414527513493303075989223938019539176732448242168023703669430410748244309227088881307875383466338713395348513198960714363467596411233611491228411609477214992224458197321970709099069135309696272652187719167950526202384866489922025177109002540981686607824959748932568914518888834959656172867332194724872582577135555314025921337295532187777830172415365830971097896831239305044971424808286837689976111529501255113901027253691525017719395089629345370190053710770029435424872895654367736611227190612169098600701878051575227904320386199209567015667731999170332114138165427567729362372008263567933790226856895600451072217147375371221024542511297584232551494314612471767923554492064939006411185087520057897946681704576936983233841488667192800005072013472997055929107346096814996987608338831087934844310144382427557151162042544797211613476868533062132088224644798963539263187127780250801553663156371976910888056981856758591928132197956304607992454014891572755518747760813615414578405224580311522100826489976933735602469838142859237458915852154448258845006393973981608383841981073195903383944254098006354565603585229217445660789704456196961084171795933257204348272762677794662327190262916677185659069205337179715870458848690381808165189488137388532166495534818023073826281343217527358216197224853416558051855900199482303153175744826176630019383087488563627331966419837469293702313729386695097525094993508376100230270313334203660623448475528511624588808348392620832227694240070764025996889581292837010509105089708939144253177077133815630029974203465487026957966048181005649327718116751134784623285445287215202251183089140658732189971809700206630739345572004709206086290470146252539043225328191733523869622213796719887349962576663436304545748243099872121301556531896690056164265635465830875304564921963299131888611410967283240446369839993641954952100495333130687775422899856607085486497158608860869135662203535241087206808819853481975676787386685853858806182847932665282991786924332971874252050765640083636565873563045934982604678346585647448921623574344488089044645343400967893471213680617605535689752568565802252073538383917621142354040968433773139277359424295857499211513562417722162686231752099267213230286713610554176850935807694261253209316857028485097741193662361890872378286123996931546870902183158641227918134501031695992940911565321677339136387555587417074502597349066510064450366532693961917031601610071185000315511992454950261097576409552092022226571143120766558775554343272166232307662106111920983384581922192148710599224183279797322219938566608462478426009038689872800131505842534558003923794100711835767547944849583570089480275714915635627615920124155181493920858077741603203521997266928698714411258310359606156803124548129647944943439238737140986634965536223226209762811046671530665862121925876577571656155579707768428114424672338935771962250954587777945875079203786931765223778372625191739290758615399486397062432547649333692874296663964413751043303927914792920566319863072357736252387622159241139838672856795137001437718867033301898863838187342920947267722572671447646213614924797414550465194514122876191418823416409745963354341100635066774406189903568571878881690118066513057870947222500840218978995689590735258672237370645785794795990216246911759858500685689764174967703898852541874419676080037604858862076401309890125308911088993231041241943595796801483927240463277282641208805287863043749985666129621213590335115831387135307098913925210146178915151864287578898500355704976074733706884506190223854876425040957810382522557199517354686289234921745606493718353620726154425446596057682485100629175699871102457016439345943141411373836901757245997958655097358432688832472509037489525282356525928134115783614601184463690947975378219974647849631378450879285834282956285718923390382189904364736650020567941793271748577808039412204435329877279585812055354779259078711328678238238383508670396991537716751349536968578905885566873494056042053485792884477856564891904961452742655870595335131032275216716885217907135756822078205674662294471273518408685961933840962869430083091351769099223533513658050272255695338992620074224590382590056934491493643394583021719034204755682305212244342552890139775493254153681115088449008560565325758713403213843155191940045268027249426311440816240499275215239619594742818816872309312222365624485822358366218882641779372531902366589799236028377334156051254772598618738180666654234800688615723204447263739038194409055871553455133524064329263849200156375166312312022776417955821420597246944727614307974933141108549060460742667760517987696298679820460833626167908309256030666652000690943550897454732547109722893395742910223067013328630261203840778775548995235643394229510845134112367094444753927008986885461801312406196618073094694145014295527420265359317332958184472473644414019569140380755595119659604124733911815543395696701120844272416311886544101127343745674593757564093998395162221251351265269672046743644874610262008472357494994000760085908318041615331081819901132110179974708011764500453399475189450463905293788551620852357568226721666681554569665980276059971109173395865695213285278086222507882981230629012691701280758594157013208285492507929701634865411260687153806072026446570242903618068120569647264928115424892217913423301191940525445735511246268259105949201449259255412885150060762729434229911886324036306778921213663793911742540463826255276471040351729651964085159072370745662368721098182092931320869155806016480492462566558397395967689033233781509962720381947134196070940425494149859278710948596082226214266591897967301314462099396543771543474130635723711098782737734655674317301507499228757782234300038320115538284657531472064216436341598828728067709488942866346461495406601346607611299700955194314915186734836674390525959367455216075043277153309267133994257709957066836330789131467055268863550702300106235999679911320529238608587118991626164306038787971995756313257292315613814008663396432389480333157541950679993137813792051731592145932465237648483559573768475454288794107506543237471097847264473523983720771230881437995597631232773634580857915926073983346615033059318635123064412142593751187984777123053647379790526606996799988840053959908911061067356612155491272799184207136186466570593911094590568893079348115037530020199879008222843996996917812401917640704902042308857084730117656157309321051036431295247582952139425396756521150689144106750048589828773567840044836542291651059006398028204671359777647676058149607736677523292226533557986579713460063502791028689308490607779078055899501181420339551730157818045232670353886139380484188521686562536580277561690547671660104737496390479533979183404131210718716729755228005207982181463257315756982124650712085399567699420470200926922670306513930641320943230840977901433782642790120157190194678884034250011700590142159908441850269537908949449110018511310274025178500544553673341148818274108971376657358908127550980666818267368722610906892961689805381872670938110909388283788871182643360884880307334046474231781178799465475089791669268926680733574845233276623388462502432156971583394599749586441260522830694267008896754811801691132070979127358023898748400409618062761669926003903891774202128353167782280355703129463730116818580456775581285453771714680576317241758841054153309604462379334870185230982220845479147800074795270912677354672991405785856847581247043667921690891561738198964807456467323624549065787091444954770682378755602369878565878339494208098251864063420553902955785938973497670514956785065750362864030818661602199806565761385511897027884656325191536849274120736262120508988987045252977968620829494393774161792052048074569599136096594317219915741431659818691278506261617852924118506284154600353977219236959553361834931280896232464066963840242865490830738006409166239947484522136441667023708533932275642184653124691546492924867225417795786106746379023085878193179107754541120949742416052608163426358431561711066430149273841733727677239972174484785213071286103685513985131911765401761997683125829026209247458244178355330836574370207904109484836911270048526068350216868642587196995236786884827380816423042468003589874114247769049437490413563382891708987772125587079637627012540289571368755699639580793562813452977730368678741138946051998878817074227060907438985760521734914573008346560158720583756894956024103043724161618575402288690193117466321899791644855152447068180300086881720480991914587157244610681813421511544173702624077572469430208216558097979024239349034805720877684219386524497791833335353983771148322462810638930355647759703414915305966815746613311991302933240848611913155037545642872993053735411426549711723199550060254508044901571955587220400805237000318783317612274314392528663928902117853179734019057770234404309244837142353997488342323819985884112456064547645100437238907078797334150812292876305933383977542534105529554491558824661850895607198740749477429343316533090766640436228458387203194799794351975484834653113703937697055189702347947933644834364930083394151420443614051383230666504497691078756266719594411990895545222594837841700690885885932858111389840363333826363363953303218873235834795584232513564327497310114214951007915278072818440270657880183145936416006951009284872964003133611544897906699480280427281267106832854504726020864843049492450100210942416272569539576134190334062459254128086929549299336147875114137068485007074199059262121529720163597948800522581460876661581305522472226081443051626180473847691989420858685834514873025683166775853780637406303279449965141511168373868861752840275685390573298226657851756955035384196209350336867398049831991304163507646617705370834042055351297658379361784084471625072549043206047613654581411016993916325941598785621329699745667041134682368918352257271388112956587374674193808590658559425607904760256292392121265264509852354220673319312651798604987414655683304172078428881174844846836552315904879822149286481238974468852773692091989090139884561233532218597261902986284670511056087611356474493161192921606057820184812395032415917232253206823892172685227612606423759465540310239814190008842298519468585367618935846002107767552665887934864116943239222705519326763013869547889177113095469749766190534979205864563939977537656831778884527928601583679796011049686288553685081614723694047107525344495876150568117295626355163277978201355104238782958916365168897711915425354152795111135637630449582198911889738923042627920167255776388833580761455014806701934736807552544591209834775419136113202043424374668501010740654596285291956658935442088748323021940661821200837270798117761940023064102898702443067291081540363127738956196637736144897792576490336379577828955465841249440867156439559355565095925404817601915111314353753253096764989764585082935535337056955658671547654589313127798035647100942981265030868954649577388122495714321167660373389698177935099540814316069231035525048618797836831180612097898957922175560159378591984057642667801226798025888048202015781302787300998370972850886268099804737588960523045911792178426243725259923726810398129643325633247191519462969884087547177723750398511587536118910296871342469036072741813841516787526823395308214903108383333712348448997002308620328357333786232878764385511503055728814666260730988110800972833465098446676201097193417197671831912596161117043080724915940253710449701168190343192693345381540692164719784764883298045268572460362768816288612900000453696207326684553165379404148744647638679151647566244713732853442917367495117658335816965512218055913806622410868237767621808708735417209577872653030296627842235629274132022605401980220313117444776834967104185959211562391306163136048103457035706114636654730460622550002022872844941269373542435920613179574729424761663804478741249194220928843856418308286947982788107656317454226916904458030735178179250841439531699811231847289675123945070685376994323550353005364296055952257320305151193154379702617253187926339640036409852622512644313697095143686204927850686307427298709392976182844116832010853346646423138841764574436441698750359834727200993131402096060768452669920854952226022608119701913189004778546315132959591194407039759445410225207173852994742103596700732356072552406331252109429036863284260236008281744787621133457526330577216952750203548866533714417319769421423290842551480492910126235114871306078564569152956530878282142894822490975987292454800626355331879702249822372945724925076054065877807226788759061346161455934101868614681661384198759378922968799484229258353829313710092569095878293343759640207887332853295432906472247191799103514017428079565225315576285530474218762864335314693757275384273388113134513802117109835460419940226008054221319731542313917866602878259611039661119662405515869825737287535509369670944983855915336023563482976039711144042888886324220321451553961064809036062501516293058066598187774142249782699046328249185520173255407430129323150104646256658936714586308126452195598191871553049553562264875866499272828259591574226213792954707769381530003146588124891589955730814413278917652329509212658648487918169790112235288089842625366887655386566616620020758614012004791451763798727127620972478381959395043563089378791987063793369191703662547052076887206798480980876591831462021110381457822707157595314310308556902535614948164225551646144656445456951282981084559549820486378926495265151125245723702874522567188682609278718020345289512998641186680969556269032036081107814438923175989147391979637951571088883018586093836549723626815239511287214535488614178686614574742006502932912079699212281730542682765234107537580904367230989816729619260595613132525647798189285374802478865160787346736396698232378418562326005850810900096133971310773615447380318019415646692192648535902440688083006050828313240871594609655431778209750779768322051351019981457757152798848930373452509362543846830750883494274463998741199679578511683801157488392817191733417572897357953603435824271905686089990085934714882864578540897071942073750745308014235890435039031984540323969656364897787355739538430192075121335881496293406967661468342374494333508421554241331353176683893467041122670066466650884729371215903491136020479156921459953170062419569885617589220078307693840972119611042947853894705409279018649453169768591313427902929689731531410797519856536648071040631084627781700173496963457288181114200731132693720635151583652688761329362125745256514520475601191196976881890488140346291965712573828434130999782155466531726916733141063415111448551156637564549441112955969629647180965751746593196161153329391821868221971037048618842315708905167271469368752755426219776118117125840490562958319686162748913108246484163854696655147465073609820729713295851666986226997526043898124369034857394520956107884409714835868549754310154510268905457287445490713333195570438062115945136821562210004419352148318461558208842038317356130998609245046862198983858739532502635993261893995171068529614477517743782259289271382687637880646005646970463640718732772921570884004798510934793565682596067870029678346268075050930952970293239890643786676553091547719387892398722918475769661041036288439672278309640849799705500170889137280273119296166869609476761933813421257738587182859213349169176761439937876421054073071082756387516708350028550876396585083716635053177093744922505415647513613446211365759888320564141264320027659668065632894392319343789130772127605492668807099727008693258949852870026487926553663245092916754933077678201340564987099822720486691043087877568209711146460759766694129886832415156423384771217866072529679717633827523694857309346501411630591175533788099853970158346856881379959781518562682380571167650291233525524794223252891847587345395020161546732133171115439543926157004324024583791787549699574463522846882738749996434586201335679395035744471553568923637646290082927174502494874580444270161821676048114349057112949481336553280967900086347499751090281075894772801262924323933300936731565047674955446419223960277781755591370655908076736367515477698302294449519952495067164001085684223109258056598332291828951923267691326178851594637186070229562535276766984374472096176880140010513360777378067992644123353390597303460557918584122149079186350837719350671374767184474830371075054155999519063499958245204278575951839549504007498090768574274786569882534612393089791027631939670872771134989498061602769104403818397582806087045421800925873317070216112364746373783323665885615828564800913769977834722182401373444097971764581526574432443544339915313099745085084530871870138800425745858496142230151432266103904403437605232767251934547674037454568506395186028977532784276819964725158408361519502619401638118346879944869304096572384611786242423459690604918996864611859857143215346765432846309166827329032042826292969159848253327739849884279147123779377927236716294669645956876074683837977725114307950273159785112676871347374966307134342142476757435132604121315494066632128915062109926556524279553912665542263256883160836171325220008787299339202633922587347850394764448874943425365746032194638593527263579837658422173658791282269195936870512560783337905784888046788544659932252225489499851504652881609297040960139644266231098600210447331911409009480679151983165730854167389002397662103503327308355901422156221931961752160908078320087707286554775897801298007518884811905339762964234834195525731754004597809854100624507761938385793309162090376701209639823171131701887640159643100882845898540976595575638192821139517766020446620115403151223891451200033049958908281152500858755190764908281786247330541614561415682962197401484437133573978424082525019376713138626810629577523054906145366056334140850560069721541938686069183807680099759910123034901782916470461364420958760284012240237939330977726823966071930518749534560005132617770357434087260804823483656214553187137590003796347884204406257544258095788471151044618132553149613356494748281532157283557199116766906024407123526637391983363199030230949134881594890144027669925539337694720609079637103386089425758825433641660549963047908298203311769487542501833932907970110047290046653416661869274432990191616750671200693696781473434666026960376370558493204522527881145802328120709953215343068407827913169241115920472219749264453319258395367367437228622232873742367616174692985002206937281057613352798132216268526486120360199952548959551348395699398859997271741763350202697046744437601444017589837832807243483953668605822483574149795835468547370301561439778935271326234542142611113910517088346273500905519663240803634932501740083453245317686381193982363157962178905562603463217066028962760468006747943805923938821887895458822147967420044073775909427364183220998180899791747330772406769001527437614558260455622460993530788877994370300526745653094816602925829575422935033131706069933710936407376632418458972267183925842110709255365865983063558963298588218391289527945610397070564463737456833542026378241219123579740540403290665899692536816353147097037580939944701577852223019072086472290971865958700810864223727974455279281324692732786886131767349176307832533961723252475876893785933854674503183997915825037668314420300270185541128463171033801500336020706519218861567133963899392016968322887234623220450525712589193365880756756815462064983604258257587095749856259737215322095680373422695789596779213428191540356543828488615610687193782524321101132358545978055106556313564907702469778463076747556183129531751133459427160251255586489693040612649202464783770188450837604965447343146108462241794026851313464504202121512442387287005222050271217112327509205976629002347725075371655742817843977777377850572523988450295544495238999012207737774122889809090612463856161187937090938307835722630063336923394952833091343514539335566346038333453927737444454308574148122024215552563436402055266076330998881198831043262694605515460019596943883669342870487203566956244733303449969647330634756239725811121565150964821134195281605182379152721023188920417558593238899006825477650709214437172515305679343515595395878592302536615630527416596922298522047492852545063958772011396258888565483689711450975092054242692079535699915103615772195306633459633718135957762917497634104046258996960701283449498081699317230946878109302376259840755768115974973966322890894644710842674256876636451799195385835635852276199949229834810737171720439266531913993132959167136523326765519828833191957046509964520445381473229118625148934931472380840027092496045981800187561356606400754960590448894766687707896076549268891353627409698050177985401330285179832291472934319779700235795880937562968539548976927086479101429603874889538529277056930864216464736869604201095128442431310488320515475407255643824253767295486137563935857967521642019419184451577849173556132421694308896783106951827833513523567202870794595431206754659792816760590907716332841073081679903796220741925848507751170558210551020950478010131594538631093363173586744074455378024738407512106235504625021120820600169417772077103982429361512253452245711828044463473552454853645214086653709739639780042575871960895466052022408055163723195798538176413384273465102320693278602074062201866768511124679583791052211352168038120336833882132861909755673869704447648228009719989150634801459949578153441939095887559486835294845344047970843924635781472614966813234068809581697992702202281141243184670989799683544508794667826819954324374267596834961102459266513981097062217167447849590128084759358793349593326804378926165035904710779098103836708397488754238009914456730610660393654968587947800298108635200190765242971068828899235391224654281464966359575033351125278202626771146557652450617336974633213374628526652960638570524263021165030171432583777699453529077884129385865515614004520211025330153616345749413244504179228145377467068903796143954465687930879545870843027987372688963288767844659287581225372811740043989856386061951653774829271091050573710644313940334793914906934883027854135741250842050479804427446729867401514533388999692309634697192977534154718884129727837913309628761669306691607121114098505626427212794682667250706406014353104587586054766037647902745200205823317723799624712961607704130426487696562301573787091614864582730108064086607422415508368487563288313795736352333505728565880046364704412296264334134615980395730028122240491033752104961554555107171816813782976717279535900645464508988206772004652440535442439272926748245612011302784617484899226003046363173296097751753709750517452519889457296809985061875084245319080251484308190132998254487558701661486068129706376379885592301405897658707430591775244216876485315250248748347913086689600790879794697633966437002143708241169609078447072893259807074376640406051400185452927216008796157559327574526453903768834518945935307342431260667032196865484173847117362014668368511810690551537485189046821899186443005832687614127964642228033649601915104820474938499531434422568551975227469520986770797443490325347996289747936117805261695415126381886112457502294385553319989604113753430273721618771008130177111205053426460691664933890347677743560961807629601272541576251899573996183153346292803956922592532298569257091845598813547176650047436756068857999501463885847290935606164421401724593739956498990258876844989773638205214040142892470428311684463790822763961702369244657342227560138490338357853681046964777218944447915896439926108570350714042789845388903359323511547092377458324479240390482386037034294863502587831259497525378044766755917666152688166622367030513110934351851582014422121156345556820198574181223734614125282104645766219924029067531156755582856725549899871504971588088793530985115685181385150008158808811034089139923732129368553905299510724315495891719294424025542498551244688757001884403652826966487094646174074816911224354116537863088822459914163315944292251106178063836602541294251380271264306154282284166209556254700872209119663346294058651962546403805814717533040623608600965860437394918528294129906111911979419580357395803971557547422013968450141466529585627367028217229866351086369420742032134270209737687229874903058386249665766915590667945546185267041327367826948342379935799799448503220151129242027373504733494412133191015916929477629078435596973047865949650009144351142884499681271398948478264687112131708312340409665340043053348997359102179432107615773008918355107533143230595610448494438168620258450108898572287151277313619469237450529932233166549489592151229798683221366044707537016288402879985841086547106851616267457468785522994994264100753291143158227572843626647798831657726545962731367383771281521551801886713544072959657990866793350250862041545891000890892218847049087302235615976535096194696062199875282819484968020655455531983990151452060101248204999819536326866534474008850245896911822878180596012854292346890071440737618667341210459740397291891296698916002207076024428066146615688360846265138266099702152394430764923714975909627207602297936526863749740654176686206903792967078938540382255253292198255727199581049157073043602015672191075278004687948501191529879112109871015209699812406408265555338976970227055505070091741275869895295859571620332795947304272856092379942442369025149985161339043420153105551956125566769678256556777426716444290345714974075435571864337215943563779410876929634352616314093013065442602377221117028739394902867195659099755712018327876177121779132591591390064834087244059178616344291822202695833670583535574562632517125503177879998382399438949813489802388821732216975232244711409837970551856605382239059173596826890515043718658253524951110485578064844556006571995308316754756943941526127500045922385372847300017780541447793513261353230480668271865890284994863435659237027440661886678979626274261050227122700638819665609828881074542969904272528273809103511281100006012239293403592840599744323278977484456924907773066024877999442463184641746610703449028044950108357261466429636192580073704394047362902399547848082658225713635712665937988033307579107165677711044904476727659137680493031510718132896688758155797293810906208125570467557343552883837115240936830122229205426744960257113698274140035882424158144931551412442570104461523868142963817125454182086065460319570311987982917392683011842912435756499737441412669468118295973710521339625894233466893507193001663636609305097854057549553492106746788142341876545468666257173295304619848840822449537047884730813870817566331006097673586032102590964787077851668295612334710813289256705506906478121911511219322721951167212514459838488518249567664788089672145183962505544123686937295820893685240442498290568386459574220437498165167526838677914022917665579979741260830522015350037310784186021208543012632810657815242101606233516685883110059782990595144390605934306497215054207179698654466174606626220191833377930326283781698214090729997971966330587412041831060556564532980550142142650532375107874973918419736195679493763887162083027420807522482149734951701493922098988411663322000067404855711845089917591807226322696311194621665927315617487423883209251552077770547227018131003326364651281777416073051731006925774179231371408813166151311944899414315025725055607814615325735615624570287306932979121712721524386207443943276318031316795013046788058571279848975272628337478477016696204624375997896770339235199106586132814135496740519829124264412668597157989281521726214160063744908544498952366267136543972904956911506476150621605400568368195043154650702022977914534611596903275624136367210247743934487874177636217383964304750676310478376910839913896134673005536767821460396034306831571561003551657643114957990233085980621872186498392331939271327261853258034573834004755940877043181049299526510135987422303013646420286421356364591557713233665976838508436153303540079232707330625100540957620397021272696031815658103704594260081555147949908442872715513944990997578071634834145667284509559281658794505004127473139412578125922119639939159811592087433837091925862689879300220545721909249756779360134885896513086927314597584928148320942537524126825639228172411511930883443611718740611226466396786711601838077712764169007872456662984653608986858729342690005474149020615861033144603046608584480255941834473433799196864309327019557283264124114259903163280523686731121910149174641107366725329513229818121857015922170611088866170497522697521530878444117766475790111836234997814622549040218703529019869054768057987136066941088103004355829506865047415161400516588995910786184794780577643568212448767317026840675485311883296049263944577902286095371257749898281733817080349520933083618173911501670028764666123799423671259780878252579979846941242494492010980929370867016016165187565865764825380583101476894863805873832725055387392248869881069300535277198829127498195560070287699831577492722371051824016936649791783125094486005171690193367760663243799699369098361097359458681600299822946806250344849458302268571443658017536597164901135576700149501510323971345967394819347919717391222488294565556684525001449191518733075851210011570109831068802288757130578249353646253440925852662125307532176488383614565575522617662356812227938394978305524786010899809106513164091899392647713084692232524909207759386831802621925152520611568788612625721164818466116035288788334337972408898341046596104736195255600298719295158718761571204758458397959351420254777473100134136515218933568163153814188418508621694734531426179541358911768642298504585971851109688507024733008876872796094495392066401023041941475415098588318549103570294520497335826004173646399254641255547182545656857842555995339947318732194180669114491212406772877495574821515486706603794396147362349194201552318888679804242896958840739622373698223766003194364939579001848124900433099862128511391800608160986950373829919776882950442177101059135328203451455255790035757735517826603831441315396071772167402084156371405189373944440804977631763386474786365105545637304803716109214387053259450431877997179575854289684167033720548195168239635098878251756125539946572818154352338967544958084206248636470599777380625438336610205166426737100632661865946872957730299247805720670578680666507877124763616133619921920183643504850895537411367719593881020869135235086256424543746576964494608009387031217395827494992624643371376291419063475006986317047911477741904961001056677355082990623727094913750685117705693643557314997131844714876495557780070784691508844940153026023572779739083611602376174478643680111069203586032534905146403992657759800562982404904927347481328340287241773237785307121778055022971613905561653031846897879066595582444490036763983437149399372960386059700214243827819596900693437939546919834800818737777569222205703845412121690613022463896121272214141478409158558598890573502788089882378158119207472306644920450620324963016827668642515889264897883406999427905380418268940785476053889349703362348250736121204345437552197597118757160328675473926159320804747137830957020551444715457083593635841170997537225044386658615398965924998649734760669585831404319358923255562252746306722288646492771077531873423940455973414159852968083779255089502674482542230288642457694782255417182730045808718831041392419953384259122216549458350478291691640783200709860941721927256852843953599815135027183635200728347986730343185948375911585504753714176117235507499369700098059146248641739981601453710534621674061004055878011851139478593443983072676706615897278319441214022054400040030563521456943874876703967982273104316235421659192502865144054443241252036394813180732580908874438141404956616701873656323872191138574679207336517706211898546130639859774022608997912425419993936624849487950176909619584303562627526118753108465443719941268716706674568227785022216248219082889749674149489580494424521226493058687127113631440253886836074311111402197769229739236644899558400302992467077635128332778566806592631810176332552576019914259488891757484857829399101680657652532563747833608680197598462276162623326541246109773427986845533871581077958039743846455537811092531397993568591366583637087992986144248139675564986969295074130778289016530602664198666637871945110732412411594325915614924953901507725374045876212717638366222578498527088117345533899802098374386428308297235351117306006539733235964667312943085225740550623634199499937246747540666779210347916419745574008956176037869834870590385331827747074628028815098065028865365418818927071340818198037585767670140543975428710393644658401497948692989103453389781208656825538767409758121702188331612653992039369201923145686387349676892162958263397004874956723796787066501196210447952571640052856360360322061027933548815128727199745921157073536017643544354811146529624511736555502902460490620355409063094326838265362462585566616572905452218174035806533373829833361073933201567869371788221295435245813390448122972234411677818945465007533859851999571306984117579139908480101773656447939129254593124877592481504249311939531920754456386645300401258225235055442890110663536661365470033115809567906359960830639293009089181422344431478037119692625760970570326924159898080086967079093262543797083197910647055895321233645208358851445725256006112270431176303189164555111335750413948267121221186818737969545850427976475333545816117672748878905004451283560031159126452389496804944988140709821493432628492731020052773238062949660380716629187503077777641606306788280839205385919529214935318257393731875464455209369646800973087840744585222426991566113919344455595601232676726111228194776044772478796619637065632169259875550838246689345633599395421708425477638021946246860127560687425391708402800606434965148966318454712992182065424056653007777161649152823601896993011287387842939852034721722457815416919035027319389304977119947646328088580980784119342971046073883435758974383838950394130059731043694670823122077040733687111856652803908986276680850535163613530903460241318786410785212948505873600898550150589906843169222419958007157040018238360036070639129538641941522241248093841408352974423119179261520385244212521264108309306025619452666160737763686917005856816229783326063377764437358044638001767282529487726939298842882238122566501082713916692482560209596315761129697855900697331053343934161022320044094310832946467522440070621159521227872898900663956188677262842104669970293914125057542920297532111229243348585252653448007515695945765282304543754085935526186387609937518117319583460431110353717487433727199145898508928592054687084052285346549512970131118206002718244652820101375447002308273762795696018203524063734996103371640242756784945874414454048639812423134790282091202049869877136855922757004859066155757257961793199279009947484891815900793264663594029213628824212354800879890665951066816044065827277435823210842381480722574372298509350373280142078268750717684439335012182244029802731105024668301856580694411198185064244101114747423964033703237995700733896376578928651265561085966578160457313834693000456575508474328020627419077431791144795023042155384428355672948097912184586311404267412318499107540205242512023208546857809406044036349133796134477027121790134826741364225468629572827878386886308246630719361529000192681954026818728634751736320831893333714179686259744920491152354246067542905185740557338182154353930892140302714563790666558328996088255118173206681116022857829515699667425120989312650186070965521031991572344538109703155937339473885875624107069070731386740655099050389066565384393821986174004138270182270317721932745936207504778842010766199641405486657745242834145340264104138482941229768851330726100893013936506237139735093700324327324583132695919298049922775332063250393947256679824410831002650554183049025108928533617268149365093652380083481012740599086642516020387972673021855143250509381512672216143821367143726931931512909979562380958999769300464708685986725524723794666439433774324356791114732447448441762101111996379923669190759090733884645475580330229358141160095517476944340072475988150572882708650416327101606804703432697685984567357717510415268254236027668134373155417971123443718458420923100813883729261917041965411725359261055939858711711553453244866625692589036042497341102753118967656806535938034716702157472712635968800212059402969833757171660784742055124390095423073024187635277448194809859710455860407235839022046159630445424063676064902286084824680420139797066742450494405671634188420560270686276844255865932251769302657790334804399874225094889998871479937268789891156458352573322541976714131315519353719873045701481611697254687862542566609391521136622244446941017728946311504090421871774086451039165549651393404818543179397581537182024151745848990723423869667040934130699802374067711296898045868077369492878739232834878015974914737339232092224265080266083877463320534330311768086329135314621373640888393874638092771108198415335916700335433796168274733417714365266865558216851431735339102116740493994107293684341703059549013500780085440947404112211791688072137927010096138682906974080891919315614739289328215911531750589208183561020985847761334425527592991273335939700252046151973307507472457170079285035250006157998432706390440194162330550286841413119211879029274934894006922452597005483284521857835490586627486402281010444862399127364339665877015540865278920464141051954996524776887550187940006922319559919240911714882828420866254821765379207465681322889393626245632625006127449191503699852849733874929830174010963285810203746308790809382299179200600849706022870352490168434347417983409103330405367522784453249892712067083600475403152865743089106901562012445240413788748692294437738660549873687821266967588639453623475972003305938250963589547924637353268752455762911315685706524336660698004948959944307318119050121642022698406653531352225219461862277939932621357471576934496237358972219576490159574196918071388642323427032895399144503138758608765617268982257343835245903689997132578242731741012258368926995488535464089675645816194111200109916738376084585585143606532667992455736170781402266439311777731973683705332783721967570040972622111127307689732566481235625046668201543101292454618867189838832352213340138063202518419182419353665311789323458284072749294818371402864200068466122797822359712973577253452341030137254720182317837717940023067949909049808819246451566465954371422771904657899424542948160384088430635118421334465593689605520491571966897107144267949882551375716740396871915870807603946571027508712621691580654236230944344793519603654889155652291230361093042378973359382070383028405205827655011124480180313431057607419820047176195364380218720878136091278436880070860532479843218588886956323731344180423712933990182559712721336819497947179353882632340024400275319420759620618762526796273106276317869580109318627853080918778986344424896674580633460475299046767504330556171673341780096588788590447038600597342966371589757863745707711873271148855382805697419583876183438087183850821151860663316275535702471837347724716056129904146073128057702446807940629291046539339308243442544981532288493119401346606252588052199400160880221911397186751432424115311827894107130968740573236005436704148011771835677263832258651634618702465865710413439218127975610456928548403237394982482524495731614198938422819655528545848607059985636108787354709582832922843107113749145031364506132928025655721928442017903645748797254062830680721423394944838806004088149190351487903111736526234938125650461193535733010973360107289291718356361065729915650809803818856424453053720902623108326154911347038386548812209674785994977744826731139461442798116439473499286983807730735364321630113706168821031585427161672946798462085061251271864947627237797248109618347173142938957572867741988592662574219347475489995945506770764290959922005688808053572822955846721610253908635179087499547368525035914296945381969568366943715469472635189868382359644669669247135523755640905715318433700286626561348981396145460612257781050146672884651957409282122116764214372191025489316975828844334410906214139896452942334093201553661361547461743696015089674157472687347686838756719564764267310175121407232455556687180863850999221682815423322387926622200372453878081506364293423652575677374587115841009212017246899178380075532886286924141423276924155747387510372260573814002677646424255527936091888787982680641782508451063025373179016316112210406662603872252283655923587219066834118306389008520429009841191277217550187637703392914370739243002634228005257520394096904502521894832169221138327987183660962621822704783390932072755290563881458677823674649881206683486608589051803945680643367163478407820401268955723017347346088204953812240878495321490738296133761592186845352139089489475557131706838239982810030038393947017982379590813484311048892996849352179257026847185123356914083353679351709249436879979745288767434240491944138599237136609801960937020105866364089555010667514174754635099263357020181837566933778838689008292376923055489323593145903890836558941447897314237490786451737254638250973128201326988506960001944506945082623043741699589481040681796058421958980333567433696758767839475837872536632496424352732964451994940604160624544815511148530365127091001362210299014783499976356782699908136883657840671003210060471031729480381007376792102706326652822383434595285715400012456256700794954562806828129265414734916326112936015161957277009867607604291162665141858752746682804825243503801105783051772098658099866421161494377045064355114309120088321900913140500362482240919657336963416664190582097078192935210731808036252298534857875379126507292149303093933438691390669894601516839979306595627568685494145030019007280837746276622578003105194849846607777631723062754828013513445059493448354479217539139472997277089720028212463180705919509461938368662449959159690564637360091052511198881512952435505017762894958025091363217850056745736141434137827270128098971667234391242600642668283456251468138119860346664820189130881755971302864642835203102179038818441175781922320513928628591372475199484353336831611009836902086099259925536489032688303361361707647577039433815490270542987750175780699231952720493115748460727735095471626439066624714579471018189720534319749993409852476825141799167852215726827717925078355139342802270691195946904496159936609674546416062063642299038871180684505865146886540674087364175012538682226223528837503557795966364251815446143853495916741521654476543813902208865952807099109633023284072157371916522433951582202527118626724765718828397667110511275172196613403800541830182484942459336434555394092201974440464068365093609245684351409530835821776198813553476411324052719692407147105604405720701159134438270460088571225941376279281867751420321204282136243351015533229399977932917872730461260055285330595488735343210639497728342224337127744436489461754763140699909532674722786062758600410782898036689181781411744165120864326840457434496044303083764194987193614677635202999199197201989186347442635326266474597149045498945364047066225679743595308719254195150104593402018132223908441033658245946828084981842226907693554032876937242933895875807112537953885315948485907663975267317240938863806239073683536740159565905645913576120200236659110651551447976039732977834267476392170960369031359740960767235312005363542598865099407954615242473576110343902201396159495069577511344493137977812580665809255810066821640350147797931874389741588000923546126165237608478873700284948319321371371060301653195957828294755643192195408382728195562294537392602178538124253099723904951812182618049611272686722178021448355888830360833359279996214157611869146685534771648252303898477555344021348620886921862102579572350817905220472989213992983063462574171061152231046631252762303867924167558663778693598926668681386018177561086779436336340582607286869139239879337254607942922813510556809781441584787925627358851843512800279184889731195208969412811146627770973750315133253041034467219100781483147199305985309672137117848850188906025944120892031042562853143263569533682895810770747386860227791858488195141111335632671915908270629308339792721715554822434669123269261476411009660831452928005393770478244646064032988602276731759128639932788736119776879910076386456086997324053491504438648042720260190709288819295448057992347630133200796485882655083459316093829120142353111679682076336823336570964224784942698008226233710564926604061849826552511744254909036117277721348166017962734517339645465698267946150331363769437387342568149506311936738888338184019162475601896882531895368240935906556999160713610991895403844750826394809661468131304948865637265791303995934129044504929775167101849548167259400686272808726201759757937389320800474867819291174536962520943644390471848719518619351347124214369251753412516591192651426620013587262838422910987083396244349165071771397724117992836143547935890625464846980863884030845516988183325237779046909658247338833570067491827658490304464613025421698200845524109382211381185999903497070154083907655382890855343457122692138525011894089913587002680945035512513906155967754042022162676875769821046779125118954347446061184262180529667241250382640485194885890230705100978201719025165050540481037694308705549512449129278629934971632538261328439231293154544942362399845357885564154489809092511977964414301238757790703946014639957744555680391818794928092607143305315769510664798030207110364690887313282993766384316883954006673296335334111009240225729190986354614749150704620139335594282728361262247720430365079822617409752731760404679663106891524273655103423661040355792305376950144438341443021233281144882919410044984183048655652913225617345290989979103852450816123435650342188555615328039344974191211095898988223877943496913319849833882921378811719413522655445773605550382661529637732878473007469704805846201458832200499099549782408482079310928702326055367466082427613444191924612649541031857243551263884772221867850755912467313264024178894613319763861820438575801716376788440157802871688947941051300273537967583184300557065606763315584553388703180816762395699388733568341014213507575877684309399869334754372477593228672829063866840155504259840553503306485681599534482277579861428798212499572123145562252256964719014381679467154451782048360249765909137308836112876732882298337789027865357952837435489523973117854894747315776747693843632433566313640538875176762736324379597904481419755181400324479785153220060067996375093018408749298384129728633428000093577029290234062497844645358548296502677314109453705489094370217638486576052757531060426050184972904067409081473313870139927878224212455956535968724828046380711746286076267226232370369647708307152942323724981586177790608684043724922116038362241302127259377866651599733043930059139674596573875059338301389436939265306663911656813013300780437920315659590073401890468578599506778429544437762429722648887088433809153081588246271014395341270693371430372982041027992237107459025455279772445135473852754729227679010815966654521773986749480701146711604300764380832238592144441268247360112219488073781231871790811178065730404019008753657224747621598524026297027793066327722905542083421806244518896574747476308439014648725816374999040657079027752441883699983458347954481115898111415044359088063516833070524496297340105241806195149927308589747722532316310570436387441213756543345132965362335725878160175017558731272378686044505408133091780345921308454295909320875177475719197702772738719509516050601901174322933361507849804910360930265164435809268309903739006022606858457328054105913937686110569603993841188072611517158841068521400277522514507563185275881993726632087455923601522988901788442699680742761381530558136397370822364666285010822246532514872995902340128571117032264794325946427785283966003790490958615660359677175588385171865535187465824471828969683157655862396059403222421260563677862707965736633840071228950157623248461405668195820219549889244302491097115974500273074323302391560117542396583745368045298973615900665052100056184201665758425907835536225506713707143178102827520363136674341959627840100658840132630279581004747774173299682281950153810804300602238723307179491415961370863792210614341555444111233961108226243688911879945603010077202277865229344058513457628452008716914886256658956772654777697267613311917739653014986571678976236267597093606108317425159754882288969790719908456499851116666890227662677371780785648219785976450562437191421302374848462812328369483404070419857575389819159993567082164704078916961821468761457790742340189430157954604741679937535854339415126654703832266000368733345877387329793351018919647620254459873373893977609813110816712337351163137044608546166495573679124662594518274673602779568030245204363175122531173445691348088489405482798556504574699306517686146118022818353677748697188968812823374189201480393959455618708008253463299693242126651800511801357394983529574414435388595679439615632939515518012717291555887057554745680624225049125305241700665504746166291102174643424079269736715206171964644769674344151980429793284443459840547309171544693610840444920259777921559596477765567718030275903906603539949895029943566843937034130484301689396548237690197104017587594481158598146923554313171587730833135205683522645351912533486611869376728548117550810299694280959135988418723952286089607995767213028646319392435350162487873464818991794363896031324266165910362039484379365920217189729452174679613035243903668358036727404501143193157526350049427453517362116636236996087774119019451376776753600691800741131584930627441548934742029317004576949922181599640815099914008373760502753829392104644831282772869865153171463840170975696867017037440686657409201978928603433048700934875724744867039005755602289705992075571889660582985536524232265398085303203772089627714813550822397236542012275550200380170617972332124804750768405388147271807251830630768815515922269224867964502756058652328552587806182021217604463533112029149789838390447229975385351485934631520662299873665996282968056924361330820063068111147044120698139204571723570324081817247492514245772923476785930901826378783914988051919654553708550619375249706439101322363551109749381546684806539110555946155175227352339382123300108334323496678573487649203662426424589167669975742074226937304508934712051637692067046303770215715880402410786187005979241309002636563594601053478863969264302976868629200273494489516887561875126128718560414566755328951202139523234302032318831208993921660051422987781523112366627690502516713338530314898368547394548573434086279556045114430865257109902029729123968795701261070817655734593875770025296051328010687635071969496901618753419814397693412049592061106074888196236819324395513942098823143848248549577331923186722060475995382008799924804286446231675709378347487092264723583163615972251086503382461723176673032329130396338862758168005080628942516120034086350533887485074639637786487093148078676889871924643003902925091403324962071788902903673658201966542382245602575164911790774274308370972352288719317271739925923021035555987557535146653838871897397986184145034568314568292125427872624002462644827126102484704644835022451656766024458727276978779630943887864252120286664626296775215329595265161246390797068559244228414564167467804193637698870897787378220333955959858737320408481924387029463520800012862046927470408720434159110551342900434939789923791439477598207363911851893853479744616534107050991136106860487357198339354080387122085282038360902156614735167219342101967132779935372944129688327128480740860455382818495128469529850889927164114519542117855691307681209580135368496597190858098575894813400222759398496112706272962506571427875726436889849729722196394302238859170884688079311398932579171415262948599663192263040033186275721602339291476210072532177156519099031742008403754512246549926960230888146443881152370808917877122662583434057957316232766178219488771779798078788021704394920068766722365105500903463697657699506908335539837147701442394513473085491738797181809438852459618964367814339038561966008264473476121578884313879079516412314187885359949731143494837856286230107241346682726145022069574368240631327003989203169315030119799898950049351902092007078217691401361932946958630672747508672917705678470306947250837241943929907304147748379287231755304174407239212924398955068100472639028014052034642321380225237917101661213311922486785373546349881196869273696350754625794802515971459446284018194136271368423584941076959903793003819617611787818290767371115371375217736531675665911985452243851040754450688797822594190424495125153162714255917719522170423759457340370604588139008235182391908759396239134323526097277316876590079272256596554881470360709900034507533825930910071903782615636075746910485433810945635500940940177935443378866904809684282850441543799742398034300863927341259448179288724411934074572331290704835898293669488792171777901946524302440402615269841981556424114206815770869389841242031990023176048010460186781362182832400896744829540943331603660136892953564849445465955486773522365546626928779139930574139037388614116196011601313570294172630473913640137085410299099251070925113911416624923064999297305402287189548780059715829368256544064986796898301231119713421092545724147183074407374329553646191596680599499274282943206937840792507211539242721897970328037449252305629490512632938564265029434187434020551272435079779841647144745132904864507104953785708741625927351751236311548531699834301659956577269852168567833557957059293475056318446196040931030041467732792402045891879240150653385822884710226303529428596052276599542079729834242872835494822150814600504668300804037938492606477776156313647592548997322356579070582972533721485526450743494264004513868265511036651836321642621243178726810580318340879558244245840869971630719382329700245248606980493693582741098321287664083421290018940952013341493715367175821712419153397569063133669054768823961251492971790002882776648165433776593655500069175060812146131139998776617603229745638730207295991030073273930177386261697374705413282218724760608701037031520557273098270848009338204772967678275848280416070266886838786014125538862580056382251256121133250042997708831222469298440033014881541808097682844372727838624971831543432553624582427747873776028741920899174308180885983798645579056605185471396261512776147210567689782994005174234018729108512537641350301210514619838603929873499597725472742207256525266349488618970364934607655272069161959925403662283837224119778893040993772457400075441448960786354223019623192970275929578476528259189179935020831715051296487159609167674242414904017249552485917802944192440859559156989858067783622674234174130091829795874660837652204170427480962005362968658808422538211429769332948943161153131172454252847270644019600299050613131408175868354186991872571081297639593594631632386215639213093266282662123400674099230812189019116248192655877165701361807362956013971888185906059896602622268791751760871856062365653692418986980215298119317411951916087669327616385242814151771144277953731913529827863606146330723121877736514632960063895283768339232476358866752748528313140050687340037937320621684905028943872421723068698398478059111959971698929299862959158454583326178655833697535832577126396636988547661952833865855738236785866473767768202738445846080447152924326240143048295861907404235084804521040360191929962820977776199362176298172684964627498304201575339026455019100909611963728154493722122643102960488389602854619559951405069641380163672159108237302023887926969258245235524322930668147051353690050057251542734468170801076717307683283755176503533725181734092488294520952945338789477439837129993729928834950492134413856107592306985640203456125960729476280171424881561051552823412943784171726413388448570182949674955640387156598731827659685886803061745108420666835011819011926130445927613421328082453985101600453734927116663571338394846287770965047043094187738764187966709857226386429542926339502030127078884996394820026647020391402900072698586164230001994741687280092620511027798210837362732504524066252643202979900214156924175891721120467428867750087396748153329403022698783691731522954576369656298984555580810094651037600869029909607504229813732613527204737945234756053281710157344550895054250666153033241861157387814656458489453731895673884516018768410003140292051720480485166614130693576098478368850199569555690157415754355525466381961255206962679286626476281823229240418501807669485658461636984033829702315261090361160310166972597235144808639392115508717881463295635174347083649697701420987686541776382880932928841680950370173540793262071353823494535626834537131577799624146561921565045394301169159130697828188078261547936767192587832906248189901555336675307741684066156751145926059232752126458131923186365544301437520214701286816281328758946950972316729203327371576797621109214972060820477994672305685650476490342708989182112396299661397665970797190063054693729176537899405067120958825624028222587548402269547707020451298276809974515214906447336980787597219607522899078772584704137032135213561017065436508550572744624537040086595052723598400293046685943305580045413324197903613480830825198461694665884962845119852733378810613654579799980719605469325032857298771618267942584116445603978122587608606157641411750792892293374754908709258691046523537783057333745676277706271652762283943912595199232224552231732006141487772324234675262803112117668642123644169817382169223290750432564998064204795833489855580812210117731441984357443743952674758884724108220789996100170177182837718456426823121314065217257878996178170988620203451568088596635051441836680045716889151310611954920172422893457359637618751046599108880674484687217453171016678659172794122206286205276804275706151732096926857737443998430168931785561040824424370822899925113299797010455689991580816004869340103934708343351285047861793191906430576012206728853954521792739973358746225278428377178769812184789070067746859893066063023217852282253751614031986960934108841052780622281387544819148618238693790577405068993832779721168383366317262902236967373304628447483349242017585323952297803038481069923497818065833962129081809024262435462557438415537643504436867513943172548422675731472135325757783851127586518975502056135247364909434325618705763639205490505616947214277465705491546237764279338480868478581979969350749123063061506663382658854061471120201118476358010419161217529385551774470186142263863519913633804673295006208241136503388209202052555939165502983075910931019726939540177800345695517056832311094456513731525315686286037921700444310262446820547247621829684253110377808112792007366542302825692461139688904040826065905251776026272965524629744392140938341146890770000141242722033405184432748679176163430326071990645216277001522809335304037996355599008091772629236525439677903617128785238278659350567549578058791836649275218013161612728527571874187408134450311213322273378055124112999884532422452232248401949792661843577393971598359663679617242872783886133669144094510707180498465408761641765388408433983789552646820554160976216403379012905452213967628252185321226806378336204251135815764522900322864497378218609206132143876721741515790795878524065758703687222127018018574516681666336368880580551621992939247986734631503417539434392280742628198682289781791565603182296992463347013730651835774314790984757274640581084825693248782824552354571988265418666876433354559449817939551901077199166377282808206575250155406490447324719292361699161799743168152616175769786607763349292889348798304085949263245214213686564192256147036070505985466754592271280960866755070202577821052854046993984054074080948069096947825880695171642357226688892229961878402330366763303156539250395676045643400527134948277310348938410784982978543582559961377035580318495403166964392889760677727978495513213694047063402074863209117686355269211478629179097516920085247826414897068966749934259974690950298415034197262084351876900116071842876865675889403203490983162532078655397992706177120406797914217412154962839186818471279758226437236675169926730488857603830678446528245906666111346333190426382920482358120529294209557336470306666535108385088192474736967547610542732289719152736520224010327748681407465785917080740266428971499931799603648193344214874890795849618639985615880590422092844216693003790658631837728916586842606790524558617448516307572968519901490893587212211839131457027548248158549707410636342848204348454656041215607408381147799806141806386773156230509882518195441837586480810356091059946748031405585141469811710468568970263851748982014558267360919181521553158054869903094859151296810261521449109479762808022784700803855329950587437797563694565593482599463277754631324373487275666737304241958644628576473730232095508345965431788915269052730063302660511492972839747347941607828761368507913685925757802344582582819447437933354861192728684266588942214660852875804265547003031640714838063777279815078117559989535273894327711066751782419301603024285298966572196959081847303308338895503959959961298336138827141041313975077492012566547010324712230845153419287706878920552003632476306218984828045308834576982247201678362211395636111285953807755182103065496698322599571535070462079299974304871675378846033291231008591710051533003212859262544305870637648054373266717661595724853793220760090486895938869982061568385471482031596472734382329033722581634312655138047932579893052095156572853679351344950858768237685669630048617060518614161192813127396430891171011225418231970978918669712898169497620088234040510414986047630533150899814450182878655991519529931188025634526648781794923936554074980293519353031371314491303229753427639748679109938340491914443724491215338967925691924563693972647362233684352311218700862858196384365082303135858181892583811689833527588395132995039332403167281507683157915675733936324049763302107749207989626961989954533785025715907317647796312149363009962560973460829992082512232591644834712842899246439134152577004090372308918436681184453109982651588716004767838946308709987893334663708319626876438078211819772466731278968768454932007875943675008395110042088567350728107524265524835019689877467477948974590941689901837117085413294762637779158129329064237937013789627653196302533604165462045497720442139506656121218565428395826667478226846983026844856237628958866218283371434499232605288339731373061871351660127309829179067831667576578551847989104326339748533885521873108263637514806781136355693995119601807852980668588430755760507880287692810518324813593516856157170452210432640955040144999667790332598022177779193986145467645306370957856906168130161549861824361379949095015605459878494310795927643564267566417509342110507165308835429787203180650087478934479799088997946337232125860201316982567823497853839712014172659823130550777169337120692135351520549153810095921333115662366043611719332996774732256639029112666928598952193547907397248174166995280651547642058441786936310548856427032369882490716657270816711076605253151303085579006931655209580403227002482952763279175035659058130271466401138356681783046513352030083935706371672702453647646184681141649156769301800460031623403627184865993607672117859466591502801916493809965313991056009657718274234184670731145136499751364738401356876588717295671383320949274324191174945985965024183953345016832676865933764236656548242459567651368499260629145170491614761615174542591358456625557806500254959818710969601291605756510919238296532822609650976082470959779623641019942520158789898494701734136187629103197959164903212878632199186983875525673884474516439573885708609457181382981959795299589213337120315448453298881795698374365827822131398095538578942734822064393553458569268522545985819831449586155979963106906688108989963943103154137096804473747071868687666906577519696120528816828471355623654464583806894515366990783567802098140713410022365428570177411185505841416341582341039133337829890144801967785676592657165185063324176071678092817153182670120236304376579432218869357905924213204175186317892340397239439533306691403716765290177730590254089326506753723439541960648865939154140341462759881778285234804917903330932320621607898848281786521742606813111978669662809687439545216324350231022990930471977523649041455580323147079538012984165690612900717283866399473787174567250443554349149003979600537697523935678134547909628702790016947193339982825689737348047959713124570794886030439293310838922400280578998891644213150915261306323050637249024179337952103049660301025309935458995099385628007152908659573057434452415318210861688405711637153559337088503349396171640101885226598966259589149964108152799473836919004587871352214061833704955591159792816992339111894735589553239356494044429228664808109054344644966046417735633569697402304899419245459371049454341191917454043504126375664312279650047883160958598454442280653278948759623458677339623529090514232599452522724373217663649906927741387530455122399477880688216258736105235609485422496418608481596007572313017562079752227769172892259022251769912838235819788193351001682370966628488636876765885380124489029353285569033598761253377242194902621643110118598641005437228712864412794851679026747646625186246254875169376276190137368203202456998550354654702090049401646006874755922709664075820358603089504869702282193795104944173174169749127373712538000250238124970210883850033051139858394155674784872801524904390177409479157474929023005064626770655267206508023470343333344754182009467811531259872131754122121424514489620784932748972395323466698808093972529487451432580219038118661516303297940340354096619659724671956045011694815802762926260005798381757532563749075305976470736500048368834586188128359519688316325681927843483173434491389876474959451558194966955981150787363169596830637518852874221681719831979345707159750970191625953774662261047002461588142186896277250710359961587157220514658757377580792679686917049608657503928571186575144843402756543228330128570700498894401701614550967385324348155699639515991956065978722276037051095338859018010832823186852193919400377827284451160562890055337595321301402102374602606059515923961656523039078757789817921179593747169797627402340236175249536198370179093516144886701470028468324670659587591403086221854668162166824006415562717842275320895587238863918153596570681119715768348394049085161513909579438416699253306241408731872517362979207626597007401294217300165515313262458792013764129496637037575491690848421745417274693956244248254833818963035078254064233850868757749469831711989670431850323341896560884643934835075680412953661358959709609602699470960287607303843969821049556466084965609672059794874688917731728057366756152017512229063541689357297134310954187021137701498427790021135894309972765964772923626031905268486896487096132841627946987981842507782906172535123841827652311361887459074653773409506041331980136997502855490342828065305786905918992918429567929900678311340906521891607628484109265676009243060573605835841737393878605913466454852627574418228931528678982381667586955150025948341821530911570210917102315821551089223421905293211125998545118398910229175302001126196352324178354211487521005788682986530711083713646886620006169926876993129242142648924716293227619340002353807923084727610586849019602012278344800599137977188592686620913703582189977381043329067591877795837724832588428213020523913260129513620052846797547077480076497873305897232117110963820073097990418168114045305965438750590329128036708847856544715180341314148793232798238494320136032177177869851120333253765128375638859396623491708351989238759113281333684026284903830951583785037744172091256499152482390268315998088856567952243996085703864925486487715478326615226306269002545253308662233183275680432190718804976480750328097933836466338005306262460642795139167483774477600050801877587286182754843387925780061776797113115105502644330348053695962802527556233410470190500747417683535887861662487210440020927108810136075741666472890982623286215357568970202534787318374170963827888132200199495315079625013799186208500481964574932810176257870672080099216550593888623166450016061633979453137200158828257838989822633911998279254163812296019650939720544942848685969672857439851556116431650184077121478551362390104845379518339664100717832147695231525374993769556233005066320003751785394734486893218858147887325358405136071441555623523755268719914611788613057183803867167493409661726749613526017593514635385774798680203522097090269503281101096436497886457471535359547187099681086586204288718207464103359313074165418515286098513650377923590503598387224083020875385991242584179864206821885984214692312088942027771122124876123181784512164590739668807736057883331940452879387184196727011156768967098050756187233303742014801017111101108668542022100906279433485925757467620328923855673843413567706697340874676751023538664699036751929443595469614175731520821210847483168128116713334514000537126839849204717223588620135227153783258303971924302054050739310329606373180852888776023498039189516429051915549194104426099614098744485863435320194439083938689831130202599982690532499269150045006883869398267174552900520766724778241945540755034555009136831803350253544948686097995317234741740409400600165131828797530125841553630943726143406657957774787427075530461861109631749525961890914102022274402675835504767490971911865500032488906874411546581077676366604412973235517343030738090349992506755731647479417258077356891662206620693109892873928660458548891429741085003580493419602607778335553505602880384601832097382881172378884662287153626543858538088302742241200241590666992896854232812760251283225301150854984829534162445462179532214825591997425128095121944748215971354039191646308773441885684726852772563335863342036288523165750324823743967813305849765509375229515384968103413588543930001616687304416428074017659932917151610403604904916879818289656475115445390582335931678792698752829622951272011251231353612842671481239572538959420514699087106086326946915702307456631250622480611048325087150420991434152260375910197947559208870393597236772262662095750911752811534341723629649030083270560912169089434205468786031178431069591555676058914373390948247514816454645016351047952126181576392417707622975096953155790201015659769874436764626115101024400217772346209307615244813527978821683528110088459432899566655329999596006751560653629747741871179745276429470259593342787313728320662522929686027592038560284572187924436355460048185631753349433256354604464988415861820687886199833997683758400553365442217547245630128717499248011335280284873018618492761109768486805296376225078534784498072128124477893055941010159630805060776291688782828815482217725941345512821018286832114311312644522552614434371662144994659945879278164099384806060984449841659002318597466570285736505981448634436217192673269236159717701731448862766347934577157524039064878182244585519684201824458736901740065719147270193984915308816982476520809544091291311287937385444337361223383658628704879291713536948167380214985583763550621428218785735544816421573123518882182666741927647773732797379731480496994095645222915100122142988754035466418064180552424052082757266454238927429896470899105981059123333593136210885537055055713840583131588559336183353786646028306487070513712656162508415834652302008021115866103761701812551085971627971891050072965297789684795823803644717357987128047078796095821604818488027888551044392035545322248963554077670158432259190149290589442543885871131282968632520710729565071044403152249927551833472684005789693307152996529093301201862776141627702761455992965961057308640843462768905145522021897809023892147824304717183823858234614042881773697392139321240082275607648020073971825606374898959568490450735994422618738426709097207087050628457462187577595798893947147632511469757512980528187938926090575853397398750256952370389193522867549626201052313252705244498841184069960934689806262309761027808134901638844361580549878194950262802305866110085459396555435557769895133103613221128836922659184776745943163877558158393936112017254413180819030809184948695025735816195809420640858173931784829343646413508518504867580359533948169005048672770152473288898525496625888941495834451712948501492330111616375010418603279620036328119546482898645807902202157131349237575296550551215339399970506528345007351824047866152335269074667068707297308566265529085889665158188038767397312850006007662300645690336765287413738314774257343353782695941036379315781901310024584327890297062570569474840743027136387195751185513270452172925443972079946796176156356673478858453479042530526190473246007289836324368890061735335934149019275405603993114863357896232798617080781281832767198266533782036233130131291293043268716812868089876760816328032896174703107097535161493033563728087034073651211810960755194866567383553668579450005745690740742290526025198125364128633194655630405461577977321479501568024859747384569627862429192479856973802758611753381301717140797360362301846681363915287371746573226706776807994289481147969678398589737587444453859607619853621325222273680512603858613785813813322872582826633464568048910968094104475268242081571710408451919041228339777904579716025854692496272073522421614435102601987450257121511311589028984145942211715249902277439581567542316874175253513211610749781429871871668933365893989293174628005226797465882516588975208466194184569549182390331487750706029175789780218898807911885676768768288479620354226661920891956843298501438978667887717909223401022861891321446568376918607766548978876420989016555210902192618372312563699721130428319133278440404550046701271688825843014977009804682583433031172258560394888893085450808963038414579578945112698382362231505076033884140802015860251486012892664699895499694109760788084155287965280258644419551908003761767605196149941020179246565259713815353927332701622552236181662684066424573040779751762657484052917963670603437648301506954557511396247572736850998549138921072939769301765647050354993194891245037237914615111390923340668073108689370863412060046884429278362246041040938673612106239583646521738322623300892910970419310041387789777390944821181834561371758395761835799094931032753139342150307009603026064448107247899939696649457045209383753402883691330358493031488675702346282247511137601114283883491851378426568976360349777371390844552789563734030038683024701845108957219773880200237286458597604258361562410120428145545618219292183904936866071842991331349833939071589441977575387957884760959730217866931996580437329651737379620145165528129998922733822531216020096541485498196463092854593366503557324400427785263111707477774593046129028010055938853590290465316757833993276940153491237918857238687594594651361645585266237056775420112177976489478455115907849619901346775097925961774790876609090152270114733510942309593746219810209829486023428395565035072506463510031033743402933029433623131165091607635584085326692646205825034263327226955145841810652049914417426065428612676780734328343710641590070143084993733959237975655870951545862856648238636209333576817336883072595313261973100874949541951283128647182371742795834063296912378743156161878334108106348535399101364881301490335633130287061887500136376730615147228492025058653537051560415484603030799061792521142353206728598090175743198034881567606327275244059144623188506640744020422171696972673122494948820798719690979121245292140612860662373468220263671066999126476342549470381906641432083334725566800052830573007691569920527359710177798369478305306546484268834166156646667795135405942575792189067455472780635778370923762246013515498038216510243488614788758111805742273746756789695354338347361101491011787242429928828500163708547562483832389103425939646888658161890652942847190588412987710154531357260376832720832818045082936437488601157261808892897992645792079427853583567287989552605788528233253719085273659195558098981596596487843433588985290081913259456095925788217511806401786925193326323344532103192835794755925028258125975309893274329696569123610819796887366617546519518332925203495991162174931440131027143990011857033851433375868678229570512790107197341437198795439038168162967899470795711430775730101870466698648836401900066787920240369159790934457069895541966799383690947300718495737630652993488103010411016259081164373697419670224919723615305354651218648165071210443406894965560104008978329789378995735794978915873374944743985475837437408846371985974173369707886850439599259248435482680373131632086756165904394031209392032624711676002963679025338141261474182447560474955017690021743334418697599556140998761197658376445734172773262511135693042944606651281241183498791462134614384459110673153153735222933091915567905655995061266156959650325653586570691028502282263778369759335912399366392876485045635461847750855451525463031291573950301576713128684278701730154789011933609006306531410345145610865743920692114836096995309981896491306067438545866484287422510987075134570259164102188890327447078619653513500287461160464407409454997413264325373192287076167449353461676690901211891227180733723449408135727461240400455622105535743188385386275632922347325357779689825435409265321392287650390285783103416082316817651642414796737715032145247048336068263094581765248463591063853967228960317074258698394058794353170886231170226162278254932690385853958231313925321085863987242996140343287842901094191460638452145205081025589145997289742641734450301462658214963791797818187796025216277122868949971355530825560260504206750132774695251034319949515570644061000218558958017747533953758536672872441614485991631128212920209814893575174163696637882475486295311608102648007407047035250048931474873700338420471885141158320297571390245358747545302835478847130753457852185373183827259194273823783479748833020112503449000381535513350371603694880637836027963334467286054818047791329837251510156063669789784566930285128416304458123650746264092814993025817284824070376385997989549957955945535099094582305125572760533836136951638273355190625555675346956581145382992530460809046195279095004443502761636406424508433366940413470987705523554232414083308470105386429281387254369945609266237235710125292481974878210052820421716322718903312733653374948524924464332016932545927602247337055700763730514404191557947046757047682150356983571907670793672798450585964018932842193077932702871210644550254762903027331138061077161819858108244913420942188181631490468226140996753632012106676281069067872407449594817870308918450112005326934885786466564147321552602696950528213958329685770077413865750039822187452970033636843368495922778402280869002039664120381295900739479631335600921422840956025584334682742732428628555927307097101963072248264209965497558955202666721484337176110575333165971539543235994562546719770830972221323038372597298681957722481626802406087550771611115461618272486134020048554745983113025651427573691639733330343890547948536515910618879339999566887939433986425717229454962133196927889734213264941216915036531876658169326558115390490641454693807857623476912342593116647164733282798090983705321016589894456541571842708883390726269679594383925807245072954547227337968157975980424819968314864110234481561531909297410967816077462172258548874574457246992448104411704543018734089448971276048653762199197669402843942296743097360778492438795717947431687930991510332625636858996264114361965717250767548795538946043248569294736792100298248312301384791346434802766551717294338365711915039161051740445075345499041803021640514097263482693255418679303103863467625459252186198538702722424359454955784429882486339794736382385493761872901223132100321570980637579537432233366339060994100493579015786027824138781245716406739608451988042381855355122812762362444729394018776063337295433861428423105562425577325290018056418916228865782958346386910075556085466939297899859728208954127969721786465073603031216316677068946957420579647313487498849089405101628491154038343184788927442542594766789123775819503382690096156536000927837290771469328762389462664515441597686782731471353417754901106672449583597206929974768970353445495340241661541420898264670705463905291104342014349803175642140247957758156325932363826650144115003534988937494688967898670276344710275818056913713050555869244559839431462969920003418983891409690189283852192272826278461811856399934061210062151717045636025816198478725498959820546127136938961229516538202341196710409148033954172542130648632292607650753148339685172130572671132070995526584382071645264793243362692345718268448857312244496532176896660930374187139983894996724754102562349807041935573838303912190930709814472408869673939901195100707577579013991049998857404092917038402395016531111270923786678426779928232650936182597602153268014705670148464634498013638370642058878239682474512288503063950616427701863562977381631818289979900403611741704084756693001311249673791989151992639702282067407320017342003171379984833554415879962140626471996070249347157253667936882278429992554669556771031550438658465420101746483865382229135679908059096856829359315545327710083479577262236649627674624920920011719829296234597140825087320787995765325021809274263444535802667157331732796086041038815958954241814192672506583337342226997282066877183126605533867535318525563516830068641669130568016300264966813606506818345298128702442580388841545828048721804639601034779765537362449000802427592649593509008490673637943635643862102073402065805056683396112754515842573614845727902378593445998409748060891382025669292044266100015998650430170329159481211046108719122847228161956431417974009064657432731608035075851417584657822503304946144617341725578313471847520788653720236388410109503341378703896480482672208219400872000033675757647071496984281379447769024048244703687110900928355459823456642446034484525815088923442001727203776737196270921517293944945787583647792597905739053908685683842879557418985354239452167543053827050775136264324613945048150637624095419443368211813023306072425184846243417700447436925992588831853304031817642224548773022218277197547813921926803832551740953339698665432847556169275573380946936719257363441270790871635744088332519874515015191500960850978569637173488131752482792976385981021759336144986414856531464547482074153556661345357098804151725025574927232112224029742891101749027227527176605531137796771385580810693613304577359900016633254425741275537097923973935414066891852323783603128761933335237111476023740124661619791267363920875413701340234771874334758027097317894834468565628763504029463987212602673163495194814576751393191329280863218059448441901058559710037950139446388659403958337364212456880034403851730188213788611313686949556861996571314085872896830551914806999069952632539259986215698159483871176922640446551456248579596477484691264374262043583179552832502869897718994146327533172955437679492672439268482884532498208934253358161275640599032969978470942470424944635363806449000188896785099110601238742760814276586483152113723309748667934049047307289380545594718525128035479435033718076610678819278557873045648429455216431005169990993274004042415363026284802549536115967350341189736382910609319494211478292979766171688253697122818560594697369763550533265749935873493997951952963508395034771283278154135851934196833894936771920499702404444565935448456525244172586468003709369902158232765697944770845106535322232983532912047666842093551091514657195645777255575609727607809287426710925171685840747440318647482091440153607784216214436601244606324458513149253609270442841843693700843612854973002527952422544472306917994663321667699811695768468000140721350385775183094434811552931209797545864098847146829655860554548106167049703257507399017808105599024301951647057782240963935236786794134677770582293627003553427185009919783315904003751207359998266404697965791983284432738610271442661578825357323411932702376062766069419793632249202123815079958257461727264816783020323971842477790240885280492000658396975159985200533134293932603480607249321689732233800147179055876175627458530613683661158237049951318825771397526773815645494243653418026077336157773068775641013997480519372205491653308430955839796167223706091954401563030423424872637716570683708196741579807491669091234940358886448763920358536195776562009176090549521068529810774950766117793658323248407467509486298414519244858634415124172238504023538433754703237259591531020163083160138187744865624049483277006449844727187255218104580108113663035160155871248486573112613825118537780369745340018385808064459178724925017173660822815854063929788017994558459001571803301205843374217306199806641589354822049036898931922950290969969981201832399968470803018525539689884153508923517447185026005348524699333449633962033625834601124622933218717379487853312216191742348048865594431579802588039182914273696319716162978174769187225464782858970046201385838445698672134924746654093032927039103234463953591203886119129225459393532267090010138301451070617972345281902025275695831805780383996014911837191709253547474522386916573246702663909356387379697896755920229335906356911229175903734481632684751300567393253013203558587841812450620986812889914987090207445022492392640454312127760063206775323911516916004271957688322429621005151259171398585143997408324678797270428265574664745619505460278862732984176421504390199360858158279481459769650438981836208538305508495734277487779138696418469698104080059420755807398854723660756307023885518362126049005726243158311397291705489503067398388956928210784841254380071679125271507020536004433055546880333319667367764011252138773048963035642062486667948511914489699966867223425641224255114203210239192351124855490239163145197305367614281078888447160666519275242721817562579324945717787315957281662900217691041711870509224999733564980725437828226258811959719422466840869321543494884718536227908052337630663221253803113526194869619291742513930461639848715512793791316986748982331788400188622524905315849946698131596810161823466626068519482545089066562234990694520859796229694926601389322343719273674768205425834032778289983113056724469097773540484116539316640331647838984401664072864693891416546022264704978446912165476500384003103310662824899104681761243169238859770603364625671738720639116498400778327071838225246917297009374014480236109628462302914820930387156429525204291688335034409034712127648358039168241666848555364342600593844563070958849498292900563748542594110775431974576987428067239449171653891294806164731725345185019839412497201876644441834369921509089936877878871521405875523755609512733286174787282880362740182087794033958805229313367420065720845626242197951931507946795674779400711871110083367056356760476527204467310076392014267773613089456214060578174004646443127144534178520540556858182492738870320277784954716927032770290915311891513605389567301721222218729807069353508786320992682726961774512186755481220258878223946100842185228437290600285694130587025581494160435696811309159563657866213048333514290082105933137636710224658114157151507153766647128844013104544693942503074028722580199292162718978149071852713119241913249705016700524114682290705407434851718209309948976679696209058667009370878600916728302033803563227830989128996884981721901621325342610020743655982968524144141515295039059271159045678177858395930664659676063042764961454112691280172840448859297962131568259114559073898048315550268880568576917136691491566392150885629969180902462110067098638959161093520189457380058439682830873133675004429903103903878135184759374933570325555771728141767477873563472498691270542180526719010733303901531746225448839347422759977596800020975050427357253798311259383507046035605862220029788600264689891881074530269824190332422319451872357074378182778474850851945849042213279761084747355820731948526419273014479621791673103305765543962720082149955570726324304322304197359413337351697299228026294135584299689110929329563629938131369986673630810025361474903763221515947913976956020306880532562422672988693505929715547250832234860401339284292543341536710303280092970461696189844277983808714539783419675834082160680786790065922306077067242264406228566377120452709043341953742492216852292047845391363728849230493720064807875026556174958589449705604954334278615325815117745473055701831487200208422311080465982591189512623961987092874695329111005518748275409897546603283870097174040743338311325487798700337165372551158919449867210058736723369777792427413713259749028555332598858516467705734951200614694262964256686452049666679051594082820994322576531001856505667922126315562425778979486467707647645640602007919377460302565398787028906753232913363144024976387721984894230674165234886417311428199438718793514889255379181997597787948350837454454759387562251886098506235101251603253875180067842374661878148855567745227043547393668804659130304413661206258298499884254348646083407160716945297716148354805571832940273906530658652534703014624975893348063285375465094897909484368283326989360171260451090166926269016143238062287477397665485958950631400046499433009163188095208589581156580400075371123358964816062963724510330343677344240067713579685421380710590547197596978478948835467774239154854230428513451939949884882808717909367057694425122887155322491752537250099385384985540995327767138588642611491028010583673929096328630161323392978445876154032149959322848773417617692796086217182104534068088616172210240801250537137475417671716671740199230062498350955981751904239211517927478564002474099968527342664171674393236329876553458960741169004061439402482380749828008284658542297687862459055940041472735323660583467684937813555802837885997430725458485312007850789260290762096104731934827828246971081883145188285048645827367262960396327959003672030983311225500815881559128073550843247392048437088901334612025189958680883508633860099957005009320880407845109541634897803889023395546398012748685697205622110578711789592963600570215495907729023584901350185201435214063303394521693791151010962428545091245430154471109133631138121225277266195266079912290024257366268118559584189180420756628244176393615470206296258371897655521661981536897234167051871008108136297691740689758382831316394336510366451596393485634479969733334216417955582256221153414297750927769055805494570532084756752484635960238064454493869543387446638428287333862874903079079013741951457863483597277885000154782621553105917268682719737921038162055536485023502588337063894993462575716229527667468200037018953169268061095682162010171100636245919753366445234851650093142736868995511806276402324728769916247600063960735064345441369462287627403898939694307802528396477705252389227447089697177218452927839166875105037173455143206060758427913226638342814127646830501235041988001803540771409274390937299461476339159043091995680372284094432797320265215503100563659294414675574726372295909905225045509448307797260382931454977635542470892954398363341922232127811210294026313989281377389197321011623435632367440396271989891779850385027871602531397515277653300115988661082111606026031743490213165707580527847472707454721870760472279060447631290788113319571058274047805310720887277065355183026184091560891518142372381569080625148784854332911610360983428287835770925909183988805640272119189746121668492882895326998300882338123168961977223588544294922763889938700172224027534223304806284363969947037662311333398417508111080216532144957577196166281182640044977934017042218562668463656191214970256644600561779364824022051256692946166115002560910270323845228574243179965356179557525911411189903104305554050657626395837169562901861035008584680877547732096326663359189472159297630274040053460652242311219990865861288661266453876790911819175340979303477753647537167672874046448750904191024759655044824035169902475240638707441654564017560643432362546891032736352923654572415888712260080024906971222990431447068843717720666467001071778094791981634787050916892892032442693707370734936199440165521710095318571735296613383499624151264691906822257203858960664073773774348123267828051222315763895699963226811585593968036304989811967160127177570946915872351305155523447787717469390443757768766004486101599832265426690651075400238165420070225972172157360763851130121260620898481985112571496949319449173670976237341607938827891834487221570475048180679920202222307574436331419689090941167845637572574671223638280049908976632177871050855341301512602564331373298689041033502745313012100492908556941770318115728393247118320102512035815240156161681806136126171293139906110052501824797067062371437988172298611024320906010825786584996718469999632953448415224899594167573431154555187056915584656035732496977374697293567781387530040234859519278483488971087358293957060660845388044846306419897402818011313952435177456889115134666252541694282929095335142599629346696202596803839611087021399591698830455272096076647136919538635762092116250809914954213442429784534491550520516025558091856701823123139303484354609264052445753424104960220558839406238295996202992946247517163187678872424336638083016206934988909841092212741333092471512150136264183819934279344256181395562833341459214958232235500585920813222488245879631806268831247956103289868939058801871362204210623992503151645266470744316465573839539352437244952083874893840487774399761831806240686796975334303178188594922780180698910856823846735870519408683587812051266893620445765603760398027298267680084277928697220348348418986814635624738061247281224268208234678378073742693916347542362036471178431073150616791966704697698662566387129235565070543596957312915941493628367910277115321143756168461070773693362149655114416200450233079617606544462670942034725163163310267388861022403208424554222669304349554968526692575081047766773281265030294582550548508462137599556283226307369696099004805648664072503346062094487089339738011716568226900262409110426110734385070646399757580373002568873596272198711250074898041272153006514140431018816858205674148065718357603546839523809445583984172891223089408928214860580842349325937419275871646390880233551117488768884835326998611840905465406961327405910685627132437690987526409506462305396205441100070700071827434166891465296589995111813193062731107023406023652382400278071671431424814351924625601361711233627172686768582245817985338819811653013878888072468071295875527744862377717791447998237723842215261057299544119174974686741303621278210605378685220302217754995210939820654957840964174534411352184840381846315784611708488224912456783891067374550497291726018831286398201603039264029177400274182295945255460859239724563777243586980026169714516735448765958307357249163159772164834541809255025395143141945691130290725234771199163364701878955592737684917124581385346748996380330002968650539908965969525127686408027015852796025102789636793584796765177052106484627541049487134131981217206678208171929008005824499026073731309048297883254889678295892765414876333478320148235042606723760667659748309179192564735012605222326432541777657009133838343854752687365685754670643222286802787155233229914645894543350364973545588387657517548165850736631178577276799667280348662328649112360810031222357294839957289270337258505790939389981430220537410178135762522115253001812595057281630512509579222989157925547609019509394767291646398913508042248359200367739708737810673447475986029140571129597192670579830465820411083927834159857210126718696116656850951609207585318867449481325572348100448051646225069898406781092038673953156332410531616802419732260669804868771493876291546129698127441858467228962900835248685179586298455836904432824396388474379680661664434189733438610628499105910210279026482319363953883950996884628585211002083110024051900764606162678614944115682380070178333290086327118396778297007873688783499616216489526530558487598887302378184686491230034159767933850438473932230929327282615326804811294342504740807879640798638045502989111773741689065580551708644028530491357805336606050646740873084370769032016417029555186239741414930683640826699530578716434933754262790620382625272057408178130531770354573353409253204604125777991833653511195555576707727580269498744388133601966764869739839153045234624718596687019193705938912337637723880304234224986517914547143468547946525452076135084532458011207389109693678496530516290991658108727289595773948116970811269059121699515963798670218059059423294542347108799628865225235210219566406856248859124207949753515894100508325212893688981528992177292358561378167783210018684165494583907945115733604028099619874245863782202546458188409727544981938542286632353197211538024122014398657828593731962037342453535521434212750020357623026188091725318342460051061135963122922912339528430577205282934895866367969765625266653907678265130379260487400221024048512544500210245683449945187372513942459659993475997278115506709923854544417691473852652216216426206888576991780580171476274013623767783944632044891439624028410224022685729243016015858268935247668289623766681984853907336197599994200433034726976592273813453873125411730112813376278179004581483277472863590993508218973225238843445792820520135810779390899119994610798622704665853351094629998447224009566291741963595111937675792618384103775456785986395442633563249858313057659428560671777559738922960254508578987334115065180180655879741968210240196770805678061881093811868559756695919812451916645645320214181699140030392675347144947072198202611731685415831251280913926994099531173613003616009225962408575097165763734311431769548545003984427465798924828445477031507995089914828846416426577355880105723964802733689611537724606875305753637161441102560693627852446680116186900831675071089499790724934068734345697946967336646512682910704370435468268378471004931772604563798150638608818164205914624076147664639348845633061083620061721093383531151166629495030439305773581835757382294891507049200111948056402395335607392438869923181269101464121857744122094637400566292256055224527771177499026896771606859739870273213790309487925969920818573001150404533167171035443333654447968408202170378769415503883607226163688049907402207444478468077056005940829284818133329338116298262803281312260988768141124346187641635481014567271725896945838583135481712220822009087131280122966522480080858945580924524775285522474085784176138089497294256181213731615501861601394011843848104727655812066047759646463382110989231524426253584751093353497929524724612163743750332610834885051581882714768786956739737750267790988858707098181222209202724485514893475112637184939555850686637084129037307039865085910704481493126334227420009538835890040762148510260703047646992391463649237179786169961466216410568413632868572614130895909789629232636393749593106925563231481112133112672774530060338819738797157093560747714689937872942788178792513861795106022088853930838977905357867394409687669189130570263541894840755662123307269058711923703274215196756583951485764267347325153426371088525950764088984629069817032361951058248873088203166385337372444843083549562110782738472563593926923563306248062327816261356122529640553387484888099663241766419749342235319265004266407659641206450172527540291071507747021679626945020778355419027174909497383974606803643527166198350356593132187908546312132687579841410110440997606237201048804719684669991628310337789101921649533951651066064391138231565261873408696347392787625298115207918041635444863219348454913357990465987840183975202534795447248567559161157558590525050306741311997498497069680104992113677342189019733566491689824058026136334682756656269341173816294614792162599888249511344401626897922607427418856762958628005115655017523105830697943881311031875509222601539331490498569081103606858613319184258495343776957580330023717775040850555170342582575305030632434263770948044046295933926793646210471888628623715266011013008142720036628349965484317927773143575555474303223455609243167935715617175592494773840156126610869816151638637664371787573719120175527535804129557903443607785595751046586015200516599421773420025863731010579032638364015032706401102550805414846187346928664854596918291859676148598141396702574807903302532225371839420949458574036801985797136429645087037365337427169569412145457949802893929977044996785624693334894401821026460904409725050293073609442870021205253673584053096835965693577682658288560403696355758730021025982293264307324457012716043114166344916534738302891667486593907646147191467217259509674230982686476203442661200709712966072598592344100091188033932381447897440859307776554309114227637056580144194676861010781551884721709450999028376036372614437734410698469992480710226664053179669886449944903077814765525367101254617193254182604041698974764061017183322038211657822586047206579096907166761996858526878884286053310442595289290817922599855080618861287684820133447659742101814051670794652198571672005930788618562334509152365443085474132249816510390845592510216295590685254537040535344303653627006727953780451351671426958832558444901816768167246003530237538175825055464075113054099842802026522394429617286915012770336635004489488837171257223028059841987276983102097355214813862743203888427591374417447856572990912025209870333665739419527733229690332983623362710864700003970742926821664040329042030313538326125627115996931903520638876835521531758277868600897051609190752060976371944403599274217497038040559949374872436041323933644215707552129850103208522895950909928938574207049611460892970010408095038145264678612521723318241853369824319535106857903752255787284177633353896098068716380006436897679239474182433347839515935189600549132902433969701716306669041011208765613775069753171781597264096690824320542714878420029558830957158704465414883915459196108869486341577701630625661343281824451850939996584171894746831466654853586138445971339695857619262710798200779374654646886670142797812515740116206218497256684801004354984466441650804560753671893302801879998309058847457797503996775760190298850962909723507693810476080507248810647350972016311178126676001191869692830531494676559309065870185325922566561794865590011505148626105495172163559259449169779471385902320557593668564872833557029651522068557705831404200746114184516847148068413645767141485144796865185457689141491364610686653675428989082949303396954347338562654373397305631183100229636143449449904376382274800191293475354285571133257217533704053175151769312973321892941975588788158128310582365513848214632747184473642674191100583329682483095259262448739329172932586929845677695053061678862079363094256370587288843212167784833265444852019134955063445945814243550010149247687007579223442312171348458885793510749398634108013593865247372724863237477473475138182883135091580178461511052531557477628060583633045655929332818522283656724640906805748909968304643238128523237109180703787379068352562141054509222945747098393087953920631979348009217404715226229558520228461340216322263563713847670536846184241271773178315813941717516654686889034252171623219123283071571357178666087691831148455561863569911107338134216500179674054382917856696393218899506251159656634933012283049578877630167964969444314776421188708917063071629228591708831449491912268018947837800269780427915722886022786025094237800224733095552847106926671959849018780403112843910316794968897758473673463403226652031457113350946526546873267363612986678774979251937902520214841980607579561543260797965216470750939474167843086967365079490690969642093296517804820238105736159579400196120878168679292022820032622437522497941033883479450293119148531654001647918348566356517269834927372706023458821706384947701600080952728757813507328969718405813442795041620652777543681292843932033640593409712789999089622137352526457691456930974107838036646934523368459510759455966182457379275820698521322908988786949944258699205518849453024818711791310804326106254769279725274766220711895524260738052959776161160563904035839024249056767659873835854750910312537828259419254690861350485858834513881397507251089159483689815284792457100873826328285255796098606682651943628097948549965794999177702158409510180605828466365392657568999907207197382466363314015189702755277408434445056439494726371483831931461271308206893580878194420423717986272181896921834603030248017491934363120795729738751960064081094787965605847101328055928937008026217588764445305005221095996941039441467212297543528621294286550978929859214230277630226750353158697399027113660430040689028485581220182757183626474067394594169073628691467309817212744707608916784456684295598330405295435872805301361845529889861244277945084455081369635141708954826148198327105978808345982970748499932665523750499210478329581553983654292372905876667232065578272345907154809979646462570374493393758922580971391133620144102518085054607392347814083973482775393874024115435527208133964764155810211880474566267029480821641362306203033794303810350393007327067065871007944185734668826136782351295918146612041932409429002350425172368893710269255693773184113580096292087910276166353257948594299655670100940989349953942109337807404816048374227161541709542973553874354624125055509235630671105945490253503690438118861011370650759940585982066644983305038094038545429922279929100013100949706671165072269619439864073462112452607813656468902261316842680367563095925410090577224730913248759895010762386357380027106228167305410712569062263764237062863744241228293126773572013191207696356636036295081983289906128523421259965796801234305287029660876513115205067323631955091517407485022350234433775285445680074122529461443485965706142702434007356741298505779316632595782984568179439677562582938823331073869235225059550340453538000093505070910056635287654080316486783085048382943340219983013440695425867558894483135937029405991012932256828491204003832457793258951071401257150357290644833863098649214585516991425716974945902325793162243541738354804550221648866423998556995362617039442651107634649845464033389904921803647681870402634045656743987870355515033000042430155665580662905708348127416549721876164057441453520185070361137575410836899754453850640272258337084937606184289286159577133561617026756167533678026716569327028863142762424191037151627380795243953470208095088745254711462263310898042200947268848886484630532925929231180256691284355575015951389310452728080190608315055349197102690882872433560049305388492794423810936603406986775639126696178791525072074794475353118115166222821143509830372281764257964133456872447129359031067960886952375696672186137689621363944538744441618964704387731020768080499416939476652135417505999082837177949248295097633972636270389243223296077778069870576947968638875331608352496803017359889820684588149353601882423245306979674704072285783323788155483009647832749336668184656120209741029456677773789898727295586771397131267089440802799410592439898249302704018054682356141952692407924150228177766162759897848155391267200149675074095178583650425212553221023484938893071846279420311253450876059185467761240999679830630894721135452542542227125666092934444916789673503021509748376909776793806958622871919455519073292971542626810125036322733295086724623998005281576327500204812089656722780285073729412925383632484517648547477540218290252719806246631848869694520589743170955979882477470434114250248144660623786964267002796704496847034598957957276914872349129732767788369724183022306410081879832406733652495526939643244755181572777555946712278578839058658309476427242144788802440145312032489497565186017401056692339750968288414896889731580402067229305547945581881761592174801486707907183903528417905796611359146162858096199197799078150247150304347947263166840169654261260131593313148993145421139255780622096952348023858522538296710632881043549253917854903808400099736932429015234376797131821514899090818567531166832715025883141836807594767102860779558598782211852071272471961252975425658057384293106281529226251092005274530626405289382969619149781751029949780041497146241767238362792760913389088083961022255088541331945903367873121397059523296253034893668914365837349713172517973762112574340489688521120597721805750209925949046814000498966647064223447113641417643685201489278010255481956856051349981352912008613365719414440484629324067472724593531057425085966238477145001551545961211362600179874515182195281979483040859505713446118918405584474300788355956024780324134545669003032685815072710034935665146145666943069533358420117259682644107621724651753469845431460710970229922182982798994725575805843731677371967912266842793873105576170086445049729969185251395838130901662638117625371826218829260649500855014279153759901534066218758600709907160969103033003763820397558902978683759618900937490542902808509317148982346221427345240712159031504779368382994092542845350614273493576566263751097442998667579546498922460017137852664149428123570868647548785903494436309028636610380457309317507355629040329997485376492958988696810603735818056072451626686931220579881652254747074516761167276419502930232503111634828182769773135959239182581679158667489422525507457697327702750173587568159855466473778820189937778490167339917087396223367936668160769990049240509718991858968143896716870845605821310242187781814615647829327113492517331459852536159911470007574792670707558970107491867772133267647346854700530710763407462492162120609624170603555107602353682152350543135424986572537632286541327464070276697315819788228863118047756905380633358491396085830821171607219543055704178822901463911951795514304552201260131198115122171551174488424348373946340935277424548720584174602511199604481479623886917081473226595425971101148100844232443401725954216671613073793938948663090133049355877918582314455283561862813003620262024050044737374776637391270655373437776518892352191608060326155232942346459555245745435029142556575338731188695613843301896701448000861526762935078581274695224543160062312338402137203620298474501007679730144779814595472383672190036504606907568399121817599077927362928294288317731097490848701661849814352473087422779771135855968135444383256529360308978698870297196078777434030443083232539130405563787934022487916354773388400435721827651893215601714884034801704700068677721542199466933112338279279942727535965254343276829588426555316218143442619878741603563770661575531436857497593354605219788940275362384903797747408099667198815945823221986459305167483572726505516431898515548567463892235911276202840571625621094087591776693882756708700596595908460699691272990617986740645753097007956898363350903504453444184597054681600314293688102520220038651648919327003837590741550061129797059085144136905427242087283486502504844171186144522135805046034751573651113879285412422248757905472581670848420023174451551964481326677202113971514606860795977921176192880133827800160939349706464616489941586557772670584097407093625581569008978370755819317235355699773223363349740027664293578951420342044366575467921533656553118456505048260138761670565544904809149011768907276340767875906997612603189266785636115767270815076162701286059433951568124321099511718383822359302845659933024694073639563341533128337752545980172684416827493384214700085104379397750294824708602561284394666056849286573726019160763069255194584536074488099649355971859525534295476359033284149734760016685011575598971701908885861245523864920115320538151815351662273215016493401962023708715944879864023412719796013917669849037309821311127591346280489960383145083821155841325504080224991115281723107658865204761237052176502879145527113504619359688341406117373769376342150704390456684812276014974897037347011512680249323012707603622218434189011727668419737852530096826083038911898925569729422463119923110270528169522276282323551910372575901616339556211341202137505906863606489796056443307150551291032615246760662953786126522149906558695239682411590591337283167206270149732369897486107434938234436036145226599056902129987467812054755148424507399854488221020020897517558099623240389539571640754285931204537194968508409449021639484028072034842506840573061585591869781743968021670047409740580667260904588082694738620112379785156072753753341243271072541629900076252983249151934416002016603303996889031456219927141016795042381464507694384453122832633134676037344527174276978476403460322118257169316979574409657424278962702443991258103230294382742893535084993470401744513709203726625953873269075272188757779158431818243760132315851020904917830065499949429494000047629848249914181968162212652421541530879513838339456879483434517288312887573067989870858723781738657328633630305288528321922059798814255616357930979480263864270118503071216668944319489588449474170455554135453683046445400653336940678700467275943227065620224002211463561631928291105630227527693239240741155808292833233813872918908657904587912228915489304709076541774818072530353307777487311702647760148288717077644176850876748129886365569800507273304619895291412380900207973832439699642551344759031539295723296138243957370674778925184644969443133144623989884528115918074299574867187542350838006325194795267710480807286033565644065876154330050202612688172588949332198641143149683601823889361955817735595468680092794419521728275420365591216494267127742299220828465527558531608417471069137197272144337482321683285269674100459444308759392384406140218143865911404763832055732726161172790044082683545837886620697438922772887385328633266222284826426216754733012742593427409381665732000467166606921428988363728516721121720005960725930407235108685019236923490364920964972516981367783760791574927043809217940296174173515838953327242748943925437436575653690182838879482177704364087351088283597714853392800561181683684298734878101165057456890160903577125506450461323902015969490954298645492984071620910886570508043526500943669495313173437539442437691323821576478888164988749360581674829217317405250826793566119263537079080935313354341126503531324779341398127215070832777212100341613141055054191965877906571698929637426090527836629639315959513231704972140725238967839905503306740710923008067389862539760303039667129417780487156761306894097077145284676361331157256097210521049571594890749662579211439946068145203386016978696584606594212946593970289383219609683245219867657593180818985056389912556280959923643461017357051043052612398384802137071506700913435165117953297772399539539001546678255406855062880665880143570230360957794192418355321594131461979036048850626929826753260286309723407499011244585921278158298840582353264706518131709311091134015178234724618764476358999675681686123156729334652625895725735320241830606268584744099860481275001002602083521586482794243955497665255008829897225640682767419445038086748806609679179275216745091408950555789599412607556147701676796368320853663433689927295508735949509933029164816580939651708911727110245372405395145121173137558873814777423327010181888930963077675954027011968635300771014777833101608274553427018020289233193722336636527534738551167865612029726989497527638949329986517235130420906465095446164961246421771194899791328715007459768020394101228713770836015812484930587771993952853058803533443803810552114574793214761604479695263035341949298543748989037465726383681870089430485550304282906491972883334658468726434668488430392761463166605902089990927749735882158243767648762949783855486318123220659882136721755416886320128211268854129881859303790221601405317425262038640526754253663179709433504591152021376242606248979892676683214918625781267030578110819061112803057126977492888948064592952889962612297615386114578253863751795743267174601154589605389325377798163358314878308119006560533927667713456017978829613414338055936589980646014402482369445335960769624635190038150180722252602643760801953962371725800456322247766338171850453931862205450084483323522865578028863669642072708115137791382327212435271457639526609475139252272326082215082960289295946705458885559678738611141780338971676021339201575638265892246308291002566121095473132085106586583088906821350183798574508934127197963217187192084575346547763267794640077689494072530168541664563794455376484049170442671231212105413189731363229233552973853303810338818813389167335370895858526048838010965181412887067209330305912821426017276383475345287575382557608376837604284042188692038611761939101396055382117626291372312517336633840717229802448034404465880085471931573814342432552502923673527219466048161576200935805325998967421616012964757454695685801131363007358769524564600036058866987805946179499285943319543827607220996379310064426816990531927375841314489940617754678765981184883980065483694936373998125833086341303601682015747807762037983400791081859077789512985067470429552617225247754811791063723486896947179129155495686198672296876211414811379955046235113239361956520745832196697322094611735229040898267974227905802651167156593108943312193011197843179320968756854159560730316525287667336721893426117823609177778974158081159716904667475222482944025142587575552134099095443685689478455509883624820783539959434970335982285306545599496911940500457734224645979822788033682943122773134042993123867388110827254563787867896397633813701948805515200639527052560970620264632637659323132569221681446158652385942979868770442702071610577363398583293840733330896944487494291068570954756658518576141873169500345668595919596342468852843768964381749540095287258952050290810036246337049932453212898489034473736222786888803330793761385624962913906447307013604397659076491548920110664127296794986323565941729989681992551621477778099900954642845893370263390886675541888922750861624487703120954736805013012545747964900356188635463172724879097169817619802643568858629319332428281523847578322442456588363631335138823290839000840891657847887461091634965047805058060921269588258443415926971609075510151827167217159498182556167252723733230129012378811632694133857298569652384957450980769538215837817857445278263248867092290288788632508511918330966201394080258378849610173186572407158880464736867989729177102101808396929811880776395271909241790691624464031276334000237313009737758410971836946404810864884171650736413976578556149685457365429722684576707276142288729049398497052937737586394338451810816891319050090706211581972133412439845473139172739206749010041811177252086151341876727225633988306516655393482520312050594988090140079536397599875168281828924561585031376937373486912954816814568202503844550577741872427596333015001933219309132536337206976866451746439638791074190678203556494834087428938167600952727456371256396656565153228534583592814075556408349101932321871328645268638777444218568435023779549906876158165575870421159242124290036798972879096104135898169840285030506439649524209490402547125387417540807247608098279556577470164993826887729235812153492324173368566133301838401051624259526047023752331140239219358513110190417061512568031245967467045330408828450384022831952701587917858426820873977212477823446895437101803824610080852442245679366834256520612515497233650096779933531649264774371243193607037117059446417683567800706805151289052151828800799615237342313176114064479271609905999450028122971444196595619510313129889343709548243128685268653538846567651447994702090162502999375140495228947309410459494556382672439519151890992235163873171207328038036924426175612059192869573552416938858668699452179691412497715183889811118471688182666296986108504072595400035727687124300759784921345115729065159164762912217576126686615079845312494716838009925517027132013782321529308356626865944845207980438439394051945744143121556000492537173385396112728997970313575203713867122248830241029970000767201763769344226498412462025209811850146614578400697352586446302101356017735700787889315534739296879913369713669508099971526654407164847122844788531797832348556548089442639527016896712724171197923847540538774109290055572082604178506312727790988828179230872952692668018509393626999446197338274860014556457389474138360661527059074674052422687984037434375877807774858219740145161764419394233423152423396289018978160833696209705883159713823349501994680905949583975315958791735627102886680003818221749110341738323364066456590712760403692874866441916651177179196750460373872144034309371543750727807847413496148866710324691080659973508067313985199416734763201069878761563077130434727058607018048288231411016452891592428331790933393118679427375959078677671899385790463847213529208599342995802415964363820871913751291304212952081847188126082520360863935688474493191384889921161534989028560812105618668055834628040223950797824322403482969675141280400375185351014668842290127980895391074807832718254970546277934109506345103483383663067933908676686860518977062208677055512760062092708519377926258278267128896369081450562204276707107243247200565008921071922666057292457294273241945741917938400216896050183349059325341741894841078382783281670966784800152230357267248796167088979262158288777746485057052326279036945248029060896854623260178239552669374123021174721912132040326339528085357014035153249384522161565626350119857061645978824110176819789944920778278232115105034907873171209265775194448906609518777604018688423545397694182971166910322238149223125932740403584859866905961342901820459996006143512974615637292927963961095128926367761427609164134725906400808747438620377954431903318700605113304677106381745175894680979289485777053387903732764446366507671230022504686711929115356744751286637979053874499288233009312209535368697710109272681327620454871087425774167233913329930760762524950881795044554136336484827465464653205721996882729989566585234198221276570815848371209744706158986899513960288715784822636087345482003446175704494818831966744719009694813561523320156030012671915776598487212483664649931750623710425996739593303751762735574496606364363724143494257601256664395529645085361752335757985642266372667190951402400052807499371425702762303485283054995548563565846996147964093160203467573840458912472359794515453385593653357504642253550162943592160613438465616016727114052273447334831889990900748175271102961011069066315557927709414936878667873162218535715538378254957230219656981170300748488413682926842294652644665623945787290646854132962868895417837894920291949030459299647388292610370179839377073706275749225886821598534158191005827733184948566522686475070269958010467084735197436476717729010681414987012288316954688290366438992379015688861108649051920369874591808443950173536499619050037455340713742257484434213884024441418121733632920366742577514328916592007709713589794112303815082917868087634762793564443084267400551262253394818116439982001160405819960591427510881579290706550962189243956182668664401454732009753934552133295567759188226427155662297840107571051740418620861805531159559735007288568934970827227480600911641714248820413865325287514279892641358760171626119704959357576473736447911116864092728033377535244820811337114983596273598423776345449650583868866595333072307910773946063640652721903078988976073357659895121049472042425276272668899583295808947620317830731555423525049640683554338715144539266459742368660453159637795950187906484114970233906512594127087273236062209471400237084721033626329900456031694583969409824762201653535500261007897562315655861494331604992594114097204483016354105583612264154145535047486581651934748998624895450348514461599234356555336261041285659454551012089112417411185990428175211406516616907568774874310211962509152557432962666614903885449022215553782208534002428544722230182765076631873516328777364408416609540891238663702267626965666862656842912080753228275130004008063040398421758041500299155435915647493364188798894090710116520579408220385349773613880749884102674154187319181947167859882831109746803137169755470841006410234728864992951773395281293409729933125220465438065973945779001245328891505801529247116891169331378782384621172192050336525698340841468096008950038099768774382908117452043526611091306218503956527667772599199373417872701180936346881941756308998855293748766208357543796634071915731106388446076437285777648736086017107816076141762309793097444409288828489497323352950133355257280947349363595726124417746580036985213664384691172370967648385573233824474697926490571181820609883976577594869419727438938403629419739763629050972850039129970175196693040695626411080613911875027316338058620806313849698046635425805173991137933426320403870882568480987093437483708444428785707344204302372505486230829014362773058354105396738941776796523350994699385460541449866245489322132487656461987173772904865433906912475167595155428954222812243194671677598409315431186742884137965751416499177797753532985656207744347474609478063494907091994593693625576807723772194054030446732673369647446478265604865283187876763697020837011441904468723715990065017365044552606328898918508902774104531194824431043926862113578771829523508216919660301421924148549929981064701919043439437492351829574775334156100832166745193299715250208735503009688892003293691127620828162775412486862078746794288133605289140215134722768995044142431109414816836603428716637747292551546936166126143354412747341591545242017786600641311500533935164558609678006382862553217748601951759509515947761819675215412644493446743241240650174800910991529541340819479386831173836165744695941762801886163253880134851925171502708762242873902562571128468367955412583135169205422523210428992542207108111621589188638207957347497199951874504076585885755960446816575040920600631103359302254638593286159927720451594544237412871071908355187278157161938263157853248234353710215496603683250276716773764910356788635861343226315966345724905478653052349826385293993683084275114191361655331083010704380045211951584187998995981004897925363861716804064514464779233949795424604179511158387472467733693178005692104033546080652693290650773544081587748284082042346130039849553466071469658850824328315471225417708406679190175193157656750810867772536152676743517109205254675558818149160565945489114995757276971540187630675083761651848780592974626416269520542766965836042582028468544186941004907516050930828009081164370973110342378430983515263726101620509212101616190769667119098609368241839639285136004341232778925204824284361153762211526932705264522293236174816913606143841782415051074619604061268786140332295549403448003200931828467377492267238521722856459491694079997371012677753048137839767370317272623704232379327579077036157836488914537453609396697142123695962540903319470175385148670876048188100228038574238250461701517041289534245931077156564782632114732414856213768303366051957244016904977363937272972248866223052160849385400933413067401786179304276111460768111882490870245149565141441805614584859880575662757559774084194940445137568423433194112636046720066556231637806506598348826055422163868059210947755763536019214894121938416641427064402112848624849354019847829519851889447789475925993925417684872045618315413668390680692401520609670953075639579729923341865933970879925370570592544903234023472759874124697720968929701560106258051871741031601448579878800955883360723485789683592075139940664597214729900654392955261557529922640198971061323800283475473453371665340191484146491579774140960743823643587606153489445623795845239025100058473947889918308068514482433806108936301997300296107252328619778419631504680026988314178471365260867184035707660248026104161730360921692014039125266573288695000011369052535203674524768803938059476349373631226615865260482704711829377853414129113227941869905426522720866440632327581491452156618439983682703188732927911261986129691693698739855358604032760425800407146761885546990909690435810451338125384852927479002932267245900439647495727602982322675260844138910830345042691171270387089278960449821622549122190147604460223541136703195864618527045379208054526373472541170063092261501342451602356200732219857698440333750274154322584316312360028254770803979262796751886915284862304128622895932153632624307234035535618883531393928215700574567276991975526639314466395938492693794337411663755181046744804214251114173599948363363343395627511120310885593750574502040857996240451974014441137643831380797540958369744222664340502742177631253708688572147903656596813517443366637321729445110138080791601843026889224585717458208786203828157874698304195950685329461757226566323512630520794386764360145293926807304201693703681859579109268821377929739474318676017450047340034422075554195736201521252094199457233886369763747382226062574838285458261803624610424441529418467106719843846185427980371580099605230277238403827914494906636011206068564571851741179909359137938753763014805342752696437024620726095879001984110236156730261970568204035383702468460349139461765207573102620568103305136925572333056313811291221165913979335878478763549080313411500141270593243920383457455630388807280549243006526610861373660461989715076709823662291921910157800609974849708073565906469969478609413189343269636656335001836744271820949779286858611620832216256416981237287851943646154244960917635647637810669217774190559056808115677878204036716407811408683941232565432978261402594808648868734754364902715851150653310895373547506364430135684791978505469339598536266033223623197493159565710619419975492157134562754728099301297245866311688231564960939782322653533614808042734146041365126161380671997011409085189528922900752342494958108684406841409466151707388279314376570791894557905183072023707825158716017641726623971320401120328427482629338342774804795389914274404018012187927764240484174759054178587732701278321702198860620745308650829959157884149208248590519971789380951516630124895420027857004910340882224686895035857644377277850874531074172254545321888708654908634174543276147061390763344306174530237042337811737989476795482085631573061788368021107230295644887131061890157420817628264901801720316582534870688012926659307718444282006321129739630760466327124702281963824300738217657407704751073549761831974193544797455569309192160740559036169172927285316819419402769389671146037701144837800102673144049096275723465705741224911525192086190104542527096052300953007637004588273909635528167235301136226389766957400969926378121025786709142523595039528242265135505316255108147440203005664346195442859860302494559475747737748411357444094362637112468042413078626843059840093245216830105520737420619139479713695212851578230392821832696755616342734919801498875703834013128446058467963448033866851510245965472445848624454762184958086243047968164423013196928658985690842624617537040660189953106887001061485101908552249197690404639247346055186382788816945269058725095719922809316577223812389371015567657881441098989834728020236300878171809096782609290394766508180512120177100484249171137515924448219673317254905016818828099967746382090757232414040293205845748474346452321157881023383185239632139260559934958283354843338079929831208434480715285992684166268036126366381679050741545749231726328357558433822949294358063259149777338807372738851541447173884355003182052686402458519770722493835336958056747576739899156260251569634561173879580404566350537744857232581391030559213576785027818403847636094565371965595511958940528554289195872772958441112367316695771159674643058618272573412613620986414172708941728931698789346135666361812166773273911769897659851587027140918738130865481496316021652455986424847565540825615513303860909532142804531611125239757518359267588432381755674206898182772257001655844862192067589580628922178665336075124749705926950690495669892146080292629564166439574625974871483072926023357794169541414731171184748563551755219032771140554238555590317558647592033802895912860686782215680343193814382407211338467949443797176380530213114622942162559262260433929976008265074760856030695812009173698057686303560061212459439231347809491682251930092118502907018603883994048297109967316448972350102436809313796423629954859324766146957356592377587738839820462644530445106446261393591631952654659070710058335013752811578129162102728816880945645046077460267751938932954445829424658561586002040135849067272699962324055380079484751566185489177466798635425227590312386221247251654481534631294172179122299905876882949735780464284743432875609640665881891580480237691108683792673302644337408548768504376071084924593452877314526673399162777074240546953450157171600526418754116970761141031272922072213472421560545009676770041359056108778501655367902335569203621139859791571491148352833215250130737431819626134877243817545575053733068431877376346616083876722639620540303897913198724866071518735230477709323020058840256223821755690940195586713963387436018439104227456526339093765044382301820071700900365876861891523239478945585983144358886788296081878716891206291759027945403191684592751301266763027636796814178252760569336676403164749880747860689627820907698310050729330000921762986177394102954162072888275902788908706117247840783318279946653222212501567804346265706086558372983684154807974725717944229348236869200380735659651162904213668107268164191823473754912379158732748359582012158553515837785445671580010649762266170727376172969784106258986892027845975170309882041323407032491921049529935549597002966655300428371897034858460368886708876171957675482484683859533823476923005721215974266055410672628191891056966953994039300504668363118493756117849393008600098781285342170316330573155120770572284288119309420062191030368977980472315850801456825973109168212418647475977968355039582204166039124417560585954587687811884428011745432245175869170547821606449878211263114489315882150814900296387337140624307262213818613649017898764006784673967112196523903563831766809369046285577023926099386307301865159162449763113346388331651651911170778808076269076813678915404323525895378797619124435155751131518766010262911172079178663226219550305622755924199216088103578922860411485215125954790921621226439787133264422984400098117887607016841306575872598409839014554878475642415209460451935710383508526963943845981312635185529065949894945408220482920659255887971506028589395840830121604011818824589598603155400682456462258730324115310845021437212561484958586720385016619133758562387781184713947916365825065281283186884783284443096516306194042521857405243355703849941479562244121489681724194068710856333376022802564446081616410907419010974287822073954798728712272998989298138112885288902192134372627289690938920329423400021344634816390333698012986272097752628297807300318026794586167932149453555032595189054644560363281849873263636882320375567247200332976093863893848755272858178333576687294193081262727278154442895606756787783923539680103257664217388867186678171140596166142305237339055708728460454083457453510657698773396180577540710195641800482462187535463374828639550987889340055417728967393360377151711927021567778434553166632437644350347815094752321801897286505215527949535577440168233276335416123585778003945267611495433304660478882343665260750742586448206948645612170178223995957131471187424899391979734209033166455170429190954756577301990729566764372981326014082658572154491201556505660778171275502528138259175251320347213773556524934836622654689581896542818623466521156126218468656916558888336645448932583457018420981192985427992424532265965089386009727536331394924752731582300534305019035891623273596566187464731922448968629639546122597275765954294012373947823732729157396946269627272853360167583680421793061405223396790176164641913517421469701589457561664948575846845537761548063612045852986991113637800861947959984415097228847822542254311473686998000828123250785807021741547281465527831878073569537138877750383921252802505817272696375796788913391121632164526648795780159769527990560915048723377734259309857110354258733744069080430395537432017983867513113957526171998359397777350585259364005253541378859950348754251202940169600602290808018063566655855904997256378408662041574714167436096975814645009374003538156648374457840320097974748586961870814183963145665991699738662514918187906193836235802131846610278697917698817440213049264704432316935269577193624011841026682714985540343469005242002517151711511784935759276553527414557866368232480567425462744545130205832042118902447881705992955762142359889217761966379467962995809914007516987002746967561408213235250643684440993264044885426318651623441614979571870230657494204889791495137617669959323467432332915562302011321642792624228577441522168635140351234734155351015610098469019710058323717181373794656998250976058518068905343829168009730447634142004469821248952119481251405956140811444668373001876133280134629266015118076026499847107147339206114495934257512608923942444547844159117929929839059191881059958020499960117667083034489493225993661548235231396107728253705551800075271968088256801387312588665041349158692248272345166374225209690746496130872599032333911324244613832380938587342063137127837805749836364972604466477847929113992252038152311974867314610129544956565521974388482194729012685250790758986445249473677525201328445129406652156543047870253187678405458060859520975614393634915288561500559020959547951788976145600576429175079396101167159253835442102682230692686291798686884395340984143125576696922472416011645508213928821541848774612557963096979594990953362017360299904756454629941131702361151534695926280866593590106300163470398403903700291517418977906794563410958050939565157472172054611623394872695534622391163920298756744881875586665907967536158612042958476438439195455904957203283107894269224391929125451816029265803517511936207077985624265039415756494770588189978441714929388880799884384940706547858249605391152019058599226370017342996269416801611142466394412309292895427706478156349552624734000266106575694284099485400278760060038103111568671639765570280005170209159453091346980784921334295871283288129249182208173458743979613987700540981511735200940000230743525600864631927094594287105058224367950417102172325728331805153264230660111252283894212035292631016327075590637533022612459166280623069376466286849227016306426638614148607043185716301553494911001134896162254204232415412495438485549167455670328711138671260188047113711448582866341313613011828339671651591086764670273806299752567652928551726083067810111762274657627692697979578191952829954281422388232703743695630088078841198425472098263658281939097611800014736034757346134311236013435367352005136445998314016891897301200519513057655121433201012958442577591212170632791523392190395962221085640273235117643898140069352392016677377932548323616705007507038052931735519604549611946122543848496285635877351780889148127739747105309222882392408209557548011730745304748005856835566402946208713868301356014815230954308079800140297861172426858538723627470049181981802146854701029688542580290907447472392026464170338799380287505537298720880255126323584432847312121171525741290021337561946349177793495717574537450638263226633261715241917236107321750051549201223993030620463433672179816947704721772544256255932784058918238473377768254322904092295772120663817475997266986969215443103281806189514002145727765404139198226984669182924486389225975833883578201145222817506984767505140434304197310905926099996511333284450898972022818471127044634428958888268619992363117885905210415514458868238411857379981224116674878860011621543194694238043122128803732747199024282767559254171760313886874527223252799766414801753237455362496980017534983410916521619956245215758958704221707894009716752419192546071120809594115882805981852331849045740879449141562190907524009374649151861567260579524413258339902009430343023300054935447452272953287461077647220762410162058444259885055938591119692735824357279556704921880784261399986493052403313490504946489670215484052347726222142516214126650483037645773673294377347302115505291412958045700762891426683892866413794406222448588488285067317271002000330496289617708272723132986335125147943846126783076671292402012150322326246303048624184618824581155148718951552730346346961388853028722988606500133004801567031995383305458049209218509333599303067215968294475413314336243714299005510098559568806349408656961664793364599931837614376238346759158379629106835939641290244489545534990820106737825531140039405057807504625158608595491990177542161929183480156332654968886271795500946640305247683486138148663789499468332373529984970009926212952001539631903403631860440740921176744719165390077163021348774923128413531869233392104155940934768490803286128607483577770925518885567116971470457855743442726787045412655841667926604183081076808529701206532356220841988238043584071730991946736991256870486460156974114202603208173988935834497833078687565146169973584484731049468107976826500494242362238481475534453927541018290835202390860788768566554277311622345527422801216954319215449741747638649946590425072913922403399004487516353563562649835473473931282747415431595045658440039763571397336101190562831220973392163526176415287775863849886109176810839116861583249317894371737757166967803915981520534350401989970929053486334352764571965561293406142024638038229609658925728046011496316190171770030139977952491414953887916312635909869385880738770266307433153041065874469715244458773143406917252466562848578810139529151466997787098889398088172608168519773245891532919526016612884000101968900502993443513611834379344954101874028885608967151868693159557049231233158692894456540511220775234894614858959452984678025170666047132338850340584909487700775474879007512496232503254538343996654913765477526542461610564639930493567208723226567342677464652021762819457782964988262750012019242957694754866535878251343107132400092156223561221761460895681523483348802579032675240717960209905539486176707132738028964957139115538252717902591364556580826984270453832406372726221377966788439641345824458383145336147990586888191437722224757298250725744134181083596080536346628862025399304388950398145276563633513002636641366888978042468091309689959467228592689187102434403072528290787629398398167167014247601970420790048199840371694397819015253764794202878631312528162781814635040973421310128361248933954006709687174978595499924103682312460659889828022852773473431058765531622651278177224739900822978595235704376089715760943055813204931529308285490052184752066482197402158211223432428352766577595074933918648063980922878021122345264478408597123466130629611890108939541564832399355912233848384209825664270824860071541866654858078572822594821769639484658758043529586695728703025628095765825597822495524575772062995018347857317854188367307227509178279507879012721923664601859452960685625046756756544056524791267039871882099400754587824685569788992782835799582336298168392656804235420996095758139195216517918509725203204059242072356041910180028233036742532418616354710111070348411297802214774193643727035424856371799481520874942146621301199039902251051547096228886433946670369956962682190397191521177430757720516551660751030631023602122909415443995434781927811018628415456065628487039963621823930431090042277373826234130723852549162712050477991354175228404971326524839138493850979318428653385331545637887390999062393497867854826728272709106637830654549273381179900959604863672586783288924282956503121363294490989961616506069083864020185000528492122279888128429721030940179091462864439154280391592543252319612152782880967125044115622741794379525525258463542817062464396544212909708873468139467682047072905254046236633974679480210605688234835790132757799063817574654057894072522896603624716293986612913148898020666952577272551166100496581027627280174928584744071013053107753852094387316371596752891633730372900314408708956016919047276533578048097379976998616925534734321016453701710594734734557607619252039070624282430925100060151240665536242671221034693456258210652655180849594656360118123397059483793595958017900814604055095976170130733903661333045659891805234234916988188986437776709044309359345253722489709379299516512801918169563373470053413929419596556385513327136854941879525551482692259903781253410813995624067573248955360223566012184584530147447592189599378082210679457980735657389849665615375368819828741303840035429720310188636134083185962909127423059853737300744153878578468951878797554752140440330333992064905659873348743867857428143509772364278898715993961623594627494587957377591981537686529290251207234591279869399726343802976955314554814824476082322703991023270398853469382716217374484435044275239822117897922353253437427835081180772877292205811150490289107293483214477372153623514755269231682246913308349867565589189248241047892546370898907001887381032783426294482788099060651457842131743457166206222859219544335461104291903518576339025160366772339557255237978618365620178990510194968436341432573844652821256578786984991441780000886104696504752026375193586212331207597935904152321303723319612217616903412459502268230140980229688958874820983008828483633615014084674081755703785900121093052703717126931583035322851678106155694784875082129777513514743824219447605338392313885248728345045718967325216955512539058696717979589434114049096364833880186316842163158930761874832342383888737740199396150477880107082814475171609608956517541785577251854782227122780300719555706890493526996323080859424596375715294980565303064759858583794612291566852417623520525291819771244944954525409105577697630584240145759484234963280427017721169451888978394538944258056076363497913234514051595209116071158978387421076540997445297560208780163549182586514569413931999896391150852801115695334808141646900384348610028688582426576211247540403593953512904362312994181930401164492056921411600872679535373103262770271822572674183216169931283751944897359552921557211123113314829280200721208625277756002571574809331948031474028619384653356193031460694596510634174688902775319841909124435111762473388872697887148705647811664804451335088414924073923703862857517139939771135338017362294023290185843812076307214543142614213376313275894815763313612919820470596076596673178828649505423196491963549898169213479063195229867536517188958258571442868260248273436716960166292312962414034653629566982019714735905208582072956857930727249448252733301960177741541521367640081510327992962669385887948819900205687361444006424259686138311001756214091481754128460839659624111813288536564407345895691867225299499123261730543525925691479944438161441361332369743920672778471426995594475105368973544455424910670328985836762096584487549905947269544133726260916904648219804071288513215007562176837430981154032883263603076556298172705339627075732791951111994010979722158315593043905103957549059919747417113289460784927154765906961364652740173059830657309186852617997543328039176374104628042058253174094742359424442250670245741782872584834404748136330605552093995286161912271016210377968866998088131668482546174664391634363957681267294649925856182880165242861805562951470503389890159161419255905516304209359321352676701929420988524780851565531479168843305709407410101282065149464954021604303776161743325826696500173444385742881025016639584143006378430644007735251909673656936740127497245427564641860270670349170948942982135820383554700382651397288941695652854628731530908456719770906159388807736286406636519859763175912521332211598675703646946906329502069009139039034061415762735083294059343397906649256826597928504850889717360481116862005019292922108322551478319439029180416749097462963407506419936400481898706534370659880641139216252217477125807686757720512396556367107566027038465870143334713072168101885257735726315031918670210700114109109156601894072198293752872637637753565043492610100948001719886406543229122349010592547985540949027289806241845182636543984392101748724280301897034195316338891641067654086769149550963411418129248776579658618024659732734167604711402804887028142640940440847640432112128452775131028227595983688543824666636980898501908898400899190110688348017680641370844566784626569192336134630367789542546231105814189631159602081882907961339528148202246600440577852534623652656291952102341726828547899634815652157705414127480565715667651850327103825368409669020589729807332970815589203322742698420853536492603594817335789965255663501655982142474289481951792628308152858198457397662362595538884408819535696248124873581947817110816770609075299526484453576970290693195486091727349925259476741471249460071546577128992058840746690650034570081354768653532324445335381422711155876075202025268627001308828114561128884774982528144645898472035931149062317186874224166330499643812825124029293461400679055276977364278244691999680577761257353867472560751758742563521158660769918110810889016103994555380868463459159693218429929427307554205430251000372792919078366878673242710455780558062393737938038821129977250308301448156979708947648577086851161701822910599312868563227779639490472966842453192121520656242455843692849681485420697502169377231011781133374328368712363727820100624995691336429148646651822880857211954058847348020301895709354285320960150471668792857198781830609090806785606206778377044338772782928343178682641677949932429653610291637822290547487515245546849857817325225513989161587139783050413634909503887964339806454498836043352393253367090647648080149916688854349009979947806802007533404540083274994705933468699021792869473521283027220157357037056455521175640611804019586727679591630824741737181738219140760508854938079097680701288862247050867004069872921228888412078120313025509052279571658398235500035760141385564358386084934786341636178875865341436438341935306710127910986212210660082340960483221888955850276322013698187155720436453997253226841858562634423858186263629696213381071398259547663289882623009898250002090967420327245414184327173202251926074266603536098914435834841053208578202993696669009551513598393189751599694372871325348816680666786654107441655888009827829188638304658524351570920566020439927731943708063054601247359777312059913515691586993876508550055018263157881121510019021837185471594977822506164935264896930495700351767950900097359104645870613401599562767634857856973866178983327983426895468413854092156164166193309205276368676290850289213066835597576529153484314593773146075136147223233450166227849054749213743399754790978691847827807516539529736433074618065875676438551458352600605061475592723016211146770277542642437356246673515595256789364592252480551155066610599441169436336245038682149393597115742736554627860358554165643104951604688270451671548889517756679333484038614232901697661440692552965251994596097583030942986040312601096815582481555878265941536275285419281992619809475416337471259499967733133651316429591490344692467699761866118008551209481350686684846499694840295744927208150548570963081506679658537694886373509083318473862856091412852639953427862529067938402021515337610905049148506796500562354920484225364504216436222489733536274739493750589271933726699288787891806422095694051273769743285329370815338380159662952063389698081373467895155034798350077546565004182450880515586685691197804711369640395024347365543009060120022285277809544869206186593019766002800344200275152050956982052014738858558256365102039292893922215690589928956873999795835559068003955210220322248919296690048406612936199413512057220642741130493499073668444573050430386165194127424879687753805739101272834318491056406419519847305711015478302388735410302867439714798724647395771925556276350359954651695337373242748485474991878003352263306316141590341826548590856076139714719226138855646981118180841431895393883598494522478889053140727263523257658655475150372382721257539479483259206209184187171953282093481768826424486032706779401311947777916341065050862479038690006508271205594369563909488704086489443266891005355609229259659054619400859337156497443380655324957502282003962423253798570924454827147690809839768795827572363815703558151644262070237549858458291379115910802202594590988732183705659269574686817714340522547171913367765612282044205540065885953027170801448734372529831794481593728549589069253266662847916080902706227109262733629236439449530481665106201751477566234189451484370528530628964888967466521562867746016116810958017013965046117913877854943151448974333702646400522910602656063610355199024703417227888243113480909664276145793171690475726641711763800141302389111208238182720303055449192460729716817092088370527602361911250956462753903320633294970559758363765463930510238888317695260717841476686000376674944821116620697959943002160176128355649640881434806747061301789442238738339546168786824904704301643779678625974199662876967898517505840435475806055363517696511953582582848956280031650614336868392639598666382735278373914893405740387346519098960374711216440099375425814152372460373849847944721455975229845601280728072973385173416456619764397203436900575974220004541662789836720490478606958452781181041674254254273822883212068967631956216271215817470357451697943305562113718748388630256552439941269365611962959846240098009371885012308417709058429992923736707367034359577716563427385654537532021598529210782231005492868233340181459208271424240792735420577103708623349211619327693208883871504267084109325282515404731336503893425096273452768915229154316621835738095215625948133127241615859563442283190912287174856049712878278073158291321061221639625740546278306615293292509670619266193817385691070907143967429872959780327852548666059291483669860503729694367198617657375678980898599518342175691628935320841094491565810863876266898482826067619831990138136759815172930341687224463651164881912666274067672264166569107913410424176615857454250676366456411427362077260842261552629208927220035276110806801742827121776770699303221291046994559215563342458520836028440238682318378374482510022524401246080181181763437188028622619523481495254566505003182942428446816160236872961321656784060273139923668790566146390204585981522756632256960624275811330429565946699440282897347354606171296261034577730839415568211441402864900140859418964674165533274172834060833352800219948464494537511481321222465519396711523681209052379066204082187094865607181346034150799773623247736393283730285295592884494699723509237762276112038738032460796969856309629925896694041040263709154626953450253916565679082592348044794474306535415515935550106915069433183020951879910823153360938299403464227043660578711335749074382971755589332875603986223182121363567043771779042074387642995524662660693525628497168431049204880668598177160348245564937648765038531368995067119398893445795685404878200536070205148680397032169046210135299529480718916855964505346515743271909576298779231934471878090566246580664850407466917612609376257409192793038460306665423524917808959444107702259989086700998664219204880558572036303951789942833809164883446907546334904134615757462884644040048112350997744993097338733494898529406514949966632985550357528739813518573013758595191362010608749647441149341183154762431486371133668071935288975918154302836112591623033194717686217692232784814422322973094285168533327348837811260752916328350064094639906066779098353079058067689267831427661111368377787290804729755989568759760877886751931440070415697247368038287966151627841319575038404726658196905024319489073633724377606843138336993058396352850091109793103719314238233371955860410077890574274261693897906039621474489208757292846914582043400027320946357344626510605584382206455205669746868798767019469763801730126687354934628844375820310821638930954539755734038470233480097334666691042919123893932511226989038491330323652744262372244406002624158036961258420262556117482175712004840068992282245620380309910940496168643427757041626212051789477564919484364867396077635306053731977121018922674865219028475390632135479856671349182514047864298271280991132784135229610521657964093081338760630077692876201094415579443111365636741733466186247816692716736545108853806624758960118900172082958988920889754585076055153279877745026855918618493714781525728248368470479323157033837301881394954144670266401366607866207662541957510755492823214617272219306511264165480042092891249089533639313579618679519645201983512158039364456760246556235904795681312587297574489727665209233940981282566221852687261300211047787020194945833874098464911978044537197403064949764531226925435937784882955274900996672950580907010416908768277778143026631700519090467888322521069496636627585512008670264462637533401448460268244417992140841780423821990206985748308092738111668888867316170764399880661224799088707139278073458894096383544500773180497027508301551101057497078875285447596122829757232183862375615960582639696044301841287354759095216111754308182269005127901598087164777548614730388115884280205779049642847511621666893602060551279281020486577664179001788745682917498135903608658263663290062155919583960606452440261854218292821670981549651060475354867526787673063993124649935053724790215518071389328037638998242934500716799955770148257884771485859087791313868549903820348851506342402750148825688880979488235265591241815910746247593358703969480236852657416656363975980405088913327018158377885931810761363943189616281783959008679327819443997837295661222974331364264470501929376268468798313004777376281033237962163323129077948725674036435294763961300086305199491238251349130500537565121914775220692844798954346191249537316730312026390049658397660988087161629175218839654452664106368647087332592376502006572779180088282127886480689518471534828770292525638214134071391153391398756977486318933224072092730219214359277451516322351339563796549899901678466150113341170931560076244314678558774804036987944416659139954858144140825242578425011473360375461081619943787843594687231425092200641681285067389194688353366331460429651412920830110340967821533951823472454778852426846145693997150059127022293866808765152335285532826845826501552258696953710865570429797492801418921651069070736434153393951707715541483762178968683858525654900314222137272941651015277069491928649539814454850866771511263755634330315812537006237440002328746260952983186828505893407127391443181429983527238718107061070680081356846632972679216486662652129850983840678091938027083124299673921935335669163676894703098801090595630421310692025995336160954902923081912236704209186194555790054827648232921654804784016543937595679805668079025769294750822601898852166811061406642571479283389980619803063883645916337883200647673768065139103181404761157441903187954128112173351761671817672440126587405344174466959998737597050139028253111742724924436987168822326335727559838168972345668523499052828282398537491247407027483269371667130252959184111298882503527342950074935914715893040779822315667043776891854868212454488444886478104341909232524411125970767233532610320792775818905530777244097493919769132837229834378525068061891814582751958420334008618215607105044268226279544066454025401892309872422123646567927258567629524501846649724386062026976264596618754971900046098772406334787596668383576685086644660426476529365151755551802922917166751455333170146827157826587955519286081976682645836639547946507762656217218716354485313045162824316966164519609703851756506473506297984879628309433982912685349857359750164162727064120997209145177174580136631633971676029780983990806939549965721878585822129487776383403578546787417493115678892904080737799396979086095511073599501070409142729455674010358848870607493752489392084838457779926268357598917051451932906421390060344438209129939776222712902769499848508291737975240741268743957264249615820045875602098741072428313531887347112490029002334973795241837182687381743228935499939344042534881648273906477590559290340978511565395367570645497824951627292151607665521312168487869391396623815462084107878230074497499819695732342465759826019095069296961598517443115306397924104627588894526810584284297140068883646566108289739854934172368896486643246363993753729898020973838119257978965868735163022388414504788475699240962194027547094445467430294211757148604800601275954019663590880598388203134146407576957692657268565384853593997238352513435234049363591206340932520143230230392216759073513079700189775927994743649013722791928814468676852617055562602848187440465994616132131974113005537915775468255880119952110461722944273115727126815306492687229713831015546534786575258375144412092207342485907594597912640436563857319834749879255060282676263824501914779928967937183874317801605108865051339511235068387414094385869850339580108885727223979857728045364668280441018102663978773284216452285761139195654473556653183175376406421734620022047353834963961670320682856565580840237119891870281796671388385006708117136860627619487426995208376761619498117033979632307730216509212074703959493885856905808899196423332971418149575965131988077719262838994230071658677612739147352837348866533023905768972042391257561240322946613285381476385250259258341723023719740310647663776014247025944748871393722903982389006867748423862487573592572953830374237624138333646271845425854758008281038540783770665170623972309440057323307816526959822825097577679061956161372583959825095918786144207710273348124543212385704966413521974253228815629960246547029485954875517959221248211047924809358516892034463644733947199718719170657866746703926883741726759189098435600054525505885331103179287111165374560960058542038664144506099535292369946632635267820148464543326028396493567412493011688163575722740314470078258786040705600371578773004248233594217782583333838143854608469038335238993073524385755853915496865193966134773469720590909003695480771543540232351150152913765674583086645475852007213560269998329493554319197664016846239096077757370168981414513468788718946434831710713991986505500381287460075373622239137127874649914390839046880270479045631225515361245569085450603209233378077718694643923079270279275475750232141002665570155556513583919014997969965852197491673179756160110248993030791238516875286103998857230549194373253424221340387006434013407088549436704527754680662960068555802649405030023166113020323520808032931105043917433933858315829591209508824722199831651700548823068713876000787197095156866369112302699948356841534074159346379486697948758614215226904095971256653705186192001144988488133304457678263042875462817554819412291233653850369136948452477818244358233018335777779202010736123343287528014755182367822337551323217501569109927991893966378759067584317507939635995696674939308699832203689628789243888735679493894441657673634033348467652696030145221645252082593845938799304831513005835145037690708041233613030030542521600906962954481099261357302494228044107093612575378411936885695441417224984591065183982245713594069065030007626756804896655063585477518086476482080447921379507420972723769483746539385481087822843219998649139192482281858534717380388105300129807786950150405339224260972252347598897274090126119071020389321498654777955753501508077704745435232076925747929515777218822321955620378289387551870218125767806510610265441017769766769453465360207098004495981742481426638621210647801644874853126668591490646209986048731209588754022083701139885951369780885673756202688909389511770564158380058324586970118435175915004901948762502649901961941730497572177784481105485453072122048165746617277469395281470567200187376459150669341612855309665431830460889014272077231664315904454836865125246524175845479874675947605813185219091982308817390127982093595485366261725887553470378970159888071521092543449314817552771415775734361697817544453293404110265402454846731257316675564228408647124692012419260849851190075228334669945476684460265388220316645769209839740341765297599255786980117290754341291470561278053457643730972087651149902866997335655961963709864032661653531548398878769457767036869844194908842394357486034297494738766645944989135311689127121510719974380920325857077956800179355297866454002182730695044016290366521070394532528399886738619727882788206144568500734289232147690166324642102683078383237162114774988690616904654004734147220495884060976856530662047178432787362793757094712697310248016582927010942878308385011593632513911425871111564237208045619271925996278241422286155937715198242455466864990268016610237522762567907356054828848341684142449786043712662454474830306055298411488682060162187964832224614024062268831361294798749815495371200488829792110117733736187390719544232635775004976439119705436647480281706449433917648427254501129900668383386621157276730620687599739296482711769503842064691137007731263787306048868516006371842468611293095796694805881946034241942141036209623726229163051905782485213991817757126264616494567656661961293229120355932409122474742683449948474883974752101275901868790904248729748411246906266817040425565168692566727194463210682072232527772317980382154475374609487105807427550633375130397421321958933289346522094711433133058556117916691634406211418176329652436258393759397060572214765339808137155043936812073180167707407215478900712783243353678552377031075101326233132284804280030102004627999754711824557940272700666555747812040156753360896526441875331727305508974069202175795773275853024611208821871357193741777935576612432009180755190792133532009096196684395144870698220222092995620110824303501372952933408052233906948935248153158239549401119528879820073782993640824190159975797815149587414944772338303661222221355109617086904362501354792779974160072776897939324236363397527856779360258774439236215376390947258272127777049970263913107518867225269876421747889614066003881644264215188513045094522827124250049185099957535757278178627841025739721855289274397292127537149152071741156149623979315731832538650043382714785396764731941145500942176730858871281746866757272005644272267638236138076521281509692914430538335982996283807852102553415870816779965481848278807796984726158516689482379084216805013774303715493258191704257193278471762673572960151921096362065115866630519072586969985434543144772808688082537437403261214956936467855356805190122403005309818370931758185823110961803440990729370909957202501266771650666499031064445915656621290206794035616437108936060814205731554408866460648747826836113475140517077928832301914067406281573633289200018358427020715347078513738827413882242428885404221516902181084834386691166575437603076591020442161306097186181620988328936501730776814940506180467174201030744298146190268626324090485681617526690290475995481194096599908022909978005782988518182451367262456802676165557322830486065296518344954530748570670191871495771051639351666997704637896481025871457497971981549232378354086239238307582230806552244581706201845354086569958711099255460801605218004442737201820417271663082174311544481516574888059420802418816050176297446880050658962467988807277650376616766866431937906236244604316574125932775364028298126686105712076809753639858711012688354134288870137841865556211023755100049596878401788097344042336368561682251799662584213996318693458724494039877797522938670309248646051172924632927060313272197109515657501009450983710979653744588334096669933944645720994855000339430771917981374497026930030697774620585463384090349604419364334645492016007601849418569933553069008909474936107183980500850190441431709184608063102417453670602386591173697288886011067256389057498020670849950481959560000221548931997268960619499457454973049350762360104816013205273705467578304824281808848236063702690721811124917384574961614999075742837503184583910830605108697605958986360116806760276420713199121247590893880217732441343416805087163090699804918154782764758925303246915313274412281815493016274627359041538719271856069657008414915504209333376945517894289091751772502192954225901108779754498333900230294684962990576520513479698621730554121982310039802392346367137000106296377078722641620782834949190133433835765760866765431863581154387519018351149970384848261165606146834476510929761467905299593296777866582209106071360573658986321608879357456817872364040454693460865540853709651357218801167485431582382273587574132059185753036881005118855398568956203658104823705488598061861935057426087808541297206598786158853607292252413435633467283020027013015383826684927462436670447308936716129519029240167905582300264346072444008315660991069418264218002212366668374414011104316445726724331213612354034562278505849982189634923767904818453834294704309528216131584085802503691015552385640509702852358102203139411724397762357888833903700315465177205048193994019387130560274891867917706370412128633047479987921815912173653238218434122818127314144891494942776750955586362020431877195881675699122786617728712702007111025749591206478550502946103199047574815751760490415196758454971595427467493659368011204637518282460488593657583332097918652054643217729765728729994045947056454279805249769500708474432566769723386635487839444370200790998253846497435941882456603158546340232758329218466721706728708080792074134369440358866738211750724687085956100338036805509622882527630668639367077273575774761321233534865254753453164066259872890643161896853995032403410972541470933522522892126388412842212892589556362795836519636768144925105319111903729109220753270065116630265205501453205896433250734414369773372833786253527030809543480911249672865576584341595269489040263780735410787490455174735718024406757345728134244170261401798163043377994416176507050167476010066547729556881718507457978637174513970275858964496139828422651234051544409137698510448217348073767286961537360423205740396539686013647617748228552563181472095576518230371641317763830761701738429429078139927122782611961917524124261861268746365692397794404414943241617805048386762625835606480893714676313040673410810604731009235447791374880431537521707855520578121644607387156597825914444963108195366500213830029851886856067818161772448643872751768046074121982179860483158769837972391987056148364777062801112145359481864633713892540426609471457300732723607899914622390972613015301718311074055808687002511964005769244173316096568838929882777953726745679102152253623694193096634104702946879732225501468033870286595236148480709002165076832109271633973939497508719955725126417608418795838698907310880576806125287277348028359753490518970847205403366395968943163461856768605723548122216031505765806888429099874752031147199874241867198196178813535797565004104473568164751337820613812904938287162755266543134005842500483530397279610971990810513565998385872189797172608239389091221078285778191907196395784058744468045517759016800132758221521762259605077643892898058281890479611585684898135847809230835235769198372414498009802192667852379895103923496416284402370105124060773371262812492223354867373576549585065925845844075141211257171791107821960653343050792841279112938945749383774141441813919482171462024208051259002386970664210725984448041224725239934014588568031431577992027974841128717419212442019042183713122166810794741821381794501704272064305757736790717615525827668990683935698415263067367158054430820008222893663304326514972005219654363596731312037015630034070509871285304936728323293850002392810631764161434042005120784686140282537884572437025793606058730037086837734696070610231954630861281531944254495894189645237866596037769598348215078320218299577054265872558899701688238950296369956006649178017128110375875986251683629032749129989273207523746801656646117284754109482967177905063247441993161322530299149156235245494491406392230454171295666015683912789109370495286437011120866779434222470562416182428403807867760793936512794220304574850937318531213731495456926145700849562586559911696132488909858352023508826326478495330040700658885810035501908146570552821348051888240596243986302777976449036890778854860664240235661596131244998210453161465543568103721599673135087120514024520428851318001082917408695947073060806662329015852713935858138531863956151270122091075396302311483270286609893396360971930132227160220216826379409702544334109441475982939380053167283228410577757702149327907985582293054389276232340038282676988166180473281706962922789398109921329640915303561604786411111972430040041382064650866946159467638813206953503426638260864119459302423064267491340296528500264026671997469478439485273568040074105229231466301039522772666095516016419079723811382034626060988828363187324534256137003160532252498616379036820509095934872309654354616515063295748214181822179195284957585268167791717973128441927092424478845189653442112856223607484471827759714136563216372682469703641409910793685165095020992249085296322759852077811276554799604238374003567227545539983545025542664176343442143338687494143191996604753065292418118152137296831721184710482028538301175007046714432290128925996383099119740169688237433081692066312341002290019449516337154229884416270700135497219288817389039937694220885676214984948791152773837051502340670655233013164808463713854564847690820185822504943935974073913181513215457456894514946220801564373591787463399731245360995102088257534122486790518584335480715016001405134410962295075872352477268492121320484140264493495014934877495390207729370977841045920797430352842666986508511262226853478928650098337098110319605035844449711567342355690180704764172004563370094979609883070416448238405706019687573904682967464068099015899865743014025713039272474425418380143207608263185778690346232383950401545242068024563145056202554766491970418451162774557034937269296907151261658173143744615293646842805902376268265858320655334172177253034580202460850830971482120977762400620462581559874103396476052880118098173233079528691454195987522877469551096534737931494287351397813304876841895265130382419730086824573519497383355970439358367430761067702128237799582175103518221200570408893935595555602601417376854972547115716912470498505782298245520372514038108270942835916076121941831567771167792455099656790837001508954903300532859537021244821225079423613029782525069317822538668473940721779711804964329984726476638649208983024697100943748745129732177062977469561578522718643153009175984713965372843731828156325745658516615472715864485556644060140667367265453872028077803224683432324781497450288790093888141911374709614209607232836535715403095276327733146992300573324750414360111336147099228914781444863213899850787192930947912857423610291110542249055351972597030387350893403382221542078343343766803367315706779018620402665087331683542456262051046781034536417355353868185411222457667775858571077848126236319826488094743998738953760332055045473505706516844905519592217174046073517779793153511876134385497583743687290519887521581308989527221606098809633060887817525095605475826380031716592224022081672798245438699730874889584635150945046061092050614891189384979373393420322856089851554902337492970529104059373537728345610676844517646211272626691459859172889008224447709729518961994704772654365382518444501889744618812749370590443808463859664916530949634098905255291244437249193779208718010976413305278692225563754068994198600598602272266175256160444726953667560194139971840114001823117673780826960806470626379606221503453521880439621360992914381429839932348522835237657673210268604120615008058617432226548994889991489144398532588770923475574150843653737113049083234654682876989995172422745069555806142142707330653002739452450767092120589308263898204833847566783138648065017188484296708406682606648938125104845429069954762593422099067034084404635198623712543172598936407114570610565519006783709284993143988397911401853042113719245357887010170624726170964303256131730728504297335430978826268095922708430644231098402572260026423099662279854881599831048588470806338761799780736669936308006448968150713814305042356562450348904630923026151379156726059272676232646078439956482094114002033167437055685805361896755925885490289052173265426476367697487087931397406343918590883282646583719494774974518505277571243269594421494332648151694841989706904125717369147527005407657361594744213723686827710195258070458614968760790120456655270166893530475752349983497722595822968212188615143469643487730784875356553622845538900965348608628273454864047129344011361753803898882722797619903146945813680611459195622787851401523972641585212138090135722590489642380459039682951661092183268787554460408296635594896021813409739355596065804190161186149368747319271831377089223018905614569664821955205203588599015741201059564919210795448876660266885449553476382834057942147176877499945307963562830715102036257948599920112446468771854554316597578688418146959501147481247877879656110788793870769064308450950648181207846287134254426927068746330923311321084500213609706898326574364964003723119233741983823594374352825911003283366091962668841390177206817879597309147513852636944379410413725356381300523728952013177881512909804914066960447619247709219541145945140618714517832731890000594171883673392018633035397661966730112721750255443795425354338015979089599250991487281535220990745478019531704805465085930640076003495863913880243786418693309984586451806573034472869119267811752141342876735703897153288200344314838716189907791846767647483439230056809692762589822518437424077163365122565319916447487770764789462111946088457511435254910365458987436363281116679569630958164818545256249690121273578800232799965462097567125019705764577680015403954150010865631786977676695600073538802227211966198741769394880006786151684367619563775798697410284855928206037871781081597792321215964568620071517931542791222849894337418215042219458268457061532095051531415728625338629420985517014134743434707243623269147045477882198756757160200631691776417246857646526900732709187228706114145624337151280054270219718286282069028230285673366673942444551685957257428938778976045404076323079380756968724653284165476849052206642986203336630403180132453512976295972478030391990869033495705220810922523758799201767486387195252021998129890957840430107899846981970621498028457642114879463875576574420705056624100528451702640154071833120644887984683162328175110528996587101466582486682410704785664937320719715529898158500498519065429239399602223387279141274308900427223232561836494340311587626866947438171593973295759453842961948274710520916236273491162939735205369324077686087461287389317627606862865207027453870684846878396786353021117258957938703925751979836969403886165690835154067661663443259792294993114846301194450192359439175043313583727118538837093297605067413946623030650187690599444982167492789209752235896083744873358235826036318427065245343552620993367657266778876454566454714367177096044251489294073835074508441473336874796680742221374535724020484846813169073807703091267240508446899112603193713519618809508618399339397991618952728286730912211601290285702943161170735736720454817312958435562542764185864223963214523565606244826608759629492840157632598934004571888708093765738080696343180639951158639197800990483459629050709601461491203870781814163311931302616814054295734458178553550768320694049287088784600832183562976888739711317198362074030761526391730860785446485981995160781467829059297186897599279832116395827125707491045315308122338604676702433722595403315362386259226989483906143772580408478074374350987592045304100797796137358242415411629649152465940914800755548081027033868375448819982239258489788481309140973969239603612535849739147266748687786664145759770950608301125069113476952033803055518536434498498039252222293655616689577332292175041570071965226648228573576006855882438144311997533835871283823017000623915716064726978571630493649070590087897599943999394057048034640034872716699085518634246185124500284314424344495167841159019159155629855119624741602423370809922987161962209800242954200925476286331878027238946436345558498600248236921971510910531257665731171925124198787378455207197959387872371136344574890959419099933432056237736576803819955026247711604056645925747107971057917789899714289040271511793744190824764163520135437549810821280048066886929966207544547882865669034020994084950262699619734270391071477151292125376322768634627140782336840645325632802750384959481828898884628190895724569268053162598091658382189547969010451330067928960797497306613253370077768443353729153669453188572630953975359976316757367844338090345778263357047984905059850838992603093785360895974669145287733439287588991375288863493874825517874525123563365941051856117712065396293303885272154577726051327701298635099173333056588919708324706276565782078761460906559615599927200984262719999062881751768341217325662728481645574811835679466174128096624877594062024384980994170818421566988013570850222692166948579107621038529478018637842345794362809889059404025709902314886080315167100272040614805384758478769135926322074500099302719671371519186180596012215255456091739360380711964179757622438654644990366102990074293370955552597509498845430416022016100012745131430496337294820991358856720014136742138382862117750320882343456150836134734363945573894197795917771940465831624334011964316775010617475304727301049168525629176134892582596988123997017859683536343899136045852682575593765450148716787455464339127086513506573635113491100515499170490534344712565403760544920688164378484552464824094118383340443045343013060970275566184510174410941071396291288443230924849588715399410272426818988857149829522089415883871094630047603562694606107039746964932744994084151211273709323097823629272443550835789515948223152198648428503302113947005351674740394378481719733554334502467359655674252621841291712558852212706560010009610635005942683060176787201210081610411181871463364190523958940789673390374537579057056664022096735457005507400610440247714476726409683729843035849755239264805219316750051557624197541933620267189684222256188091053758851750177550050606014158690129070366916853666742179446294462273974315793148328688751446202614957242105962863007543797983180292792339987267445932427261140974153803620968057861770050002001966480145799419801865567202923894073878573602217721012539048622837480439594400663345148638145004716652638826526111430149852215821490917134514557890479004968945893428305149962081301311670967743043487305252256801033980585063657423458608946124268459010530870349414886895921964877726117825839442118039213235210403608645657652394292115019400167177221177056068114810118813875981306226097178871647418958373166939338489484492084396733567299719954208246208488606202041051252540876582846700274476744569641326012679266817004718106772140942066918289946791541151904039684386523186942146980276980873158509737420766900699166773281898411326864049111058288115865747252160460278422019813213754325493130400039224574749316986380791594650393298456369674610295097779331861162133142213435521503855588904689176954724018336924776704102059663419299905225075744088511325056514280697176495414013746600935047376048108862237659068675542093122982689651837155173463284095389617437381985565979166800641921411406520979578738118435877609572242447680418078425752423891392209268912254802618056827791012808120663857569735836725160516524112519680196254379052641039345638059349013103700619560397717906461335771703734030458468009806104068834406699913241952365987757157930251646852690806776564321680432432723206911203091025510533648844730062341738446952667942041567421826413893145632034954023273667885349249648620531615625429515812311156984415960246724852633087130712177456087436807312296743636775951314999093077148659316318317698927156801888590078587009123194205231396100361996491636053998185622638990656663747512971663065367112478830326611810850598681470040725875571758787074319824221320249240479451800761830825586734824802279845470193236050116312037200406391115116564333290825560888338792046012249812368635234748509130221664472710534627357738523747308173143377744399800459352846088578416486845757080282484390370688663164692654484347565496966942625299382284046935704999003782175308721720387750418251762836665093486588160485396209536284019920404039922177133794760189351423977845388214964161481345776049801518597469551019353665403657130978235347566704264714954713463066941804072806542314647560828974428748311062692756848859137208695812039956303074122170996332722204733731324663890828595423745024026623348707897486345454144541967739876531083148145281289782433726035254378375013171943024461411339313187914514123484476619564321407013502655466553286788598978737852328991452421187638736216104323389875714309739949154464864009963181179535974595150101731547227477191525285946682237393876578690639374908056580499792447297569095944255747487768887999406412244436424158728951880002017224054490798589856804454594145616065122443774455109080959404820187776319538643517641446550006082243959387198335517515156603826373653282849965853968993147485072540282712423601939297149692885012989621451024781213070839272355588232738050430903909466569240728456589734978715356918730388208480246811488199599226582298620808547614018360247080578185998193635969926237198588074636272888002278581343633246663394372500013797047856638633859810572946970450436617320527855263721408165256181850526438957397685640547443553514128534010990204438344022098004560183833619193835703857463099638668987914243113637297759535335703383612831900717339310766181458911861318052535726092191676491454351471727454266945970188994741260845775826485284932747331526328844752391684167038963807346282590111743303926882721536422161024575998389821828953507546320874235137422797886078089219493063088709246818830290678146947576897296730915575529387548389415265470914103720864515358455290455636363154843450303475927099496604874277919491601559285262654053454061827569060934482786194066063498292597483291606358102972801145442301660737189097764704423699494522988524511620629476319518303649314224991315530323078439980885879804122400915369502565495081848666678795009858387977560093839642384658127904496614338966373439008985614842542542593243588528446996984022539619401934599197479369594912791502175335278092772123524207704265406125260395157565931332268190389324095365354926100591921570626057814861638206914746618103372649034068111796650959247995142985900178332349805266281712767143996884082727308758206039146708441475619652197531243201626480967358505245665049845937666635610647061202073803743088824607679906696764571796106985663592112771177274020395395269868150889185612851519457072613625350925245216388765061745528793915651871838677812919059343753084426270695905718631239591933515679297615823923304139133896683417147058720518632506414617851541749992424954589747417518890295990911535987149922231848705434986782352022740366592368345413855821604024460201220861336191717218579895386015738500193962755321374952424055400184602965714900410337227269070301025940115808971802234606928909749232437099738870096608064986702271316280225724378631311329713583203094827250891701842906930578943033107593263867021877329857851656232401047674193903384628136788070246279125091576697575875936152168247475968238433886454415174336719356991901270481553674215803921079622961076490050472477571147047135454410089532086787489338004688425317124728799666768129193102798649332582765785168737660600475648565255812547368869726079117903580179378485567032910675211631370859458505370818344462405482235231925837773868625159868975935436188290027982678479208171357216463224447985923396702027945013095211740898851752883568102455845247716361212682597826083931158953252312583823962091720529947079149319467034686221740696890234011693527931699440350347729227819240339891011376070728833522164263449958814676278306222928935125261951789211199885667820510885821148648441054104296296460613735880364588696983737466633372446434925200515308862973248702274761509284914234971294380083893136975882141181571309051027382099380813818436420418188790163004885209428059670768430008343720449427008692860122245958694281199723596866780133426398448714283048373303368884832644404351340513016106832105786867645004551193913357773353841128976450050506187224271476857271743969242342229560800671910403942249485203807208713952039522516123658026984382788126839958843779328366330526417735791015299924376847906299353168898054633578890488740835182212334188558308640359256547736444597009385882835366578767576741616472408760420326542587846902152800264913472901295105027413812131845366277293816392258996138300643902700634195285119065399436164201662970953235407751125552511252672408182762650120368038130631891010809059041275708346762037799872278406070534465979779350530344597790383149028519979900897574197201998319655273975670848729119044581491627793190139628058478197925116701081228824973265643797476333548351874818712575969329255761209884809596074666187475260839260010270814161293748811463064133606206911026454760030278301107420109485249716686716173986536790589156014139707402888380880676060871248790641214319089680334346871627974793354531163949539720326122137372650288743557932369793493747215475798757636305498251683381037099618606059929060638365174690093130746850367216138236288565706297885727511802940407555079015964230334039909233652833057154493164491774835846403426074974367703521436468017597935282009336936058002103093641434824113935618653070616508777096209760559975277968813533537082814488489712359015124525882954410553912359880605928082429374011721028763673830909057646140017483913893120210734485797043258277534678415990468917041653923736457154283344754054790806348943753343625304312730249078888481039660053091259759644646659364494368957646113879150811064158381701561416442027248779686814300548891635930665789832845113792852002069105426469768325034455955448089936025874822297836165239533454199989672506862131468309795084868322954041573229835060217653625350945307185231868280637170861615998182468073310186989538594101157623358090565654313201037358815018347379723313047269807089476455326060072410473019299969155911302052192474497236491208285547398743477807799856681085088731912298334445136417939062535756708029582662281792704053186708021802542410223467216658457601558599338442630022212589250360221718411502945986535343910502307916014379502939597783119117187630626449093535710465855996364675713429222533087536868203969927146577774461930487019491880328259511204115589866366734607572429426760696228061432012935033425386740046101029379137461012989537057240971548719848889121927547724780294089465361413307950356416449672015290945609023052132422176215446763061964771306884142785955313279227842910541012932038692139712878774431070205565558897193599079288952720479231608355407038837043934028530065678570190261569450036418486464291331641782527409092174084571596366096770774422067379971190822023204328951892352279662679986002077751836144080450797465005838085629629059113617424966791667874555252693343808294660710931243406826670310931362792115814419608299236801267192019553580320602632250160423323179838669914330843132303068327385050731699016567350819734221884822225838047639317738425536412706109375051695655647990302650599761491155088496459591928693913871867347578441612738903382038475166973029792287464077445776379831841611403322717706433219520186560975500693801366089573062002632525549348050318745800270237400635066359339498971810145032542807091994174227755033373410869588788690963837241333220044215965951518305348145881557064049149541357762643170084316011861620827440388010018001177789160837152514688907470896900988312375420268348145344446464645437218348188584020961686684446030437581234827257304331384115090182011386513378942070308247727267778955300547504291212453527908040469050103100215054336386402898206527270504586782839838754023992838477430297616044188037302620084818369121430463204109653290428394557272728801324492191115172130574511671473194468628959124187092753493219028949641724236314961795715967464747984454953659122057691600638276132404540488849907514752642756303436233277268649381005008510450066007737357391385818184434528336028329806044224381119696497699273525597953763351995731894387023214434229929926215765270093971741626748832887185113160366854601921734277147114597270560547952928706486454905628765670064675190161306853308178589624208434674312844736731883654546371035719969358388171343825746494520488399595384562446798348407017791092146774985242308408236659371127504348268321953246422645439519902359353660565354705391635401910555145897284078266316908915095598815717813589673283734205717256492989964931769834154948182952759155718280087476654872124715641248964625146397496572587205331588877728989603838040816828971164525727714357019059752584357538313031066283352501958693228634657803007910188954886934313841962612982787365041514680172462378971228016466933663565823233720638739632230395260069784522443306952152642310596895628294478615138242484749793646430278823017148120325984671873578003342602286557719143565161654178259997874537517368520277291299722966732214647838973684873867446703753117186057670257870224235804889135100098988288998315154486314537483017002524390525271443112587357023368723696191568670040789376477545092279720369386114315521722307613642087444173406800533107461245923957777351078278553197016599225134618687615536028192670211269340810554422108318222689439657131290790683546974064829929051750395327852481937266221137758954614847611793871742110066007862248759324888766831787584241017500298226208181419346497125750630384532969771160891069317502978678470227797024592183959936763595495611035153131899491200232382285545704465387396246821980951879828541713374203191107990455618058128237507015703988897215020082300794863980179758004109422819644347281501569820931299589852232846870381760142712551489968867244281360633265163950229928266453578510724528874499921028436393279563487343247288173815067893895065303391367417268237973215763831155760058598765360440670242204131504333865936099705579335229988265675109476363868367669822010482681408737595384016321692487744690900550775612029296351729555216438240221966760845356182152947055986261190445501303747181656597385200309928805395814369708687113831423948284850220802767263852750153482732065754045351072566734152482771650220274439943118097824514588865587997432166675303430516404764607377988379443113213095090473173853344748185446824383922228011368191256373555195062616852806407925117403454107145047178452500304575936168518735474148933270633995084697403754401835405668572648588584633181687902748976410693505368173702677110173175561480034655891717465161660851617867233183311009753266149071435226080574039589464058265145069780019555774007381384757488992381896370075173957471703320607063550562789943423421277100337921906211771806822666602517770207002208627972253283083929076554301219946451085351718712631698140251188911296825341417020936205250068397148117776792273371592264080885753478526288647243034622513532831759597551024715257559109507556901388922002120524059398874679242209356568775326293240937875425617839687006330489499833508307858890518193214360468903820037577094823617613943278349563328440779873082601309394757689365434320770509390858061993294347651568256923996984035166719083423040832918999724244223743618638333796612835302324030280237050528354057843038326471437084200164194199779299085921768237235523126698936693797804695084591075279915356767475728632875511685995623398906228338610642992647307084525795194101020760966203839297121489529861761451588990522346253965088043084656498099313012334011662104934620157025074447277817320472810017744020635509241572638146942488211935820094629233394758989908969385293340621092976416893618059276633566651224902977779279382104364032273408782321166133131063714773536283891475498479692121277060961572190972273286219251096629952399844003910956587287876745180481652666510729147108793406301718539644562465136282478297192631181266965134627118732684559657801732869925808561326007055555872235092878232184369921456267855869679048136654416914853162687469720053584714689986089261758407725351353150334384690837579545984827832248326428827457315090166185008645804682815842454760480051210231469283380438451303147482311232411444108147029572888094528036742370586253524750661654575074805304478310297252086625448786835314902719817356025923106024042089751534152463192766366343337940722462490596897976414826846409498979316794898478062042758818724559358604749008017279322485092219487376620160190787215133594937888349193935595274953615744770479086534699944662001020281163507982655725253121868517065501948553857506473931292201164999439110389835303650417034344299984752416933381759525669823428011761065865939154812816369388985970474904775041993083693979919379870846636044214384609092502603579893134362251355685541217477909284258693484265846912945281406896699845706076168935370005819904951795131390295766298159979812777089658195948025382263574511013298208768711435334705984225379501058980128680399277645725202867849028452953326540600189940101191101586716057601236741153596364328007617223320904123701306476356829187228812078880304372948203024456849307175736253867257436915447537034533202382723472509227265717303633931266420531749327424157515324180442453006662059637939874509251222069637708266883860008945539999897391182899071802250535324683356115995982001036164822271007912880380789959061698143349537173897514028073634260635645306598762879750912312687947032237602229775795486519895850999882674374413789771580808734032060666098908852288577139107925907239478421244973070010466531861792095700672420613148679450237556410148143105345176452321747996664874154999275153056331807476458756165564995260094982854635904316342232658260174597187989932142774680508424362155538423465576217109474645110553422705130656640645310469175328969978762454305896240558316188335503837825064762569744110282859430447240550050601068276304891127328707253284474878003796849715784180013639405325275619779514314277746631471139758422456180987633392328840428163239107675174746384882965688454268117220254135984710567967415065718483451657631265268960549664135015129731239999101053065237309706897289260528154637502046216698987164107392706762826447965974191327761331205507160213771733061628196758524933223099206494897535580732366646341170227333613868626543537785923195614342589225111496770932634985823840969774998802628194992231665358712861589602963471748665516670127592768946840893333933699628566501607307329393376862158294579849303964256763266164198179829963148565811350271106737567200386823092260063826323889332004750983577785860196423615418409411729561598055796060338203234445898520175545699052789043955840893961973337263805522008911638175892919089796039266980621165128891892382869715237235062591803581021971860533793428128351022289434307666040554032201970163284981592198590747925916837185660494709622496240020889271731891511626580750997758484616733492872237554493198494846387391224703879731498857532114785187306146659546016342058759058590601368327076913011090037986561114787848999670608429355729090648300418002974551715957262406506203553990009138996491840420315807147194674984196238406500103821102294228012152097315982455251725411263563823015942419977248103799542107797575254478746500043414018050212930574553635577733878141097401343100155965641561208091484092109758869405598014964848281547160508656078798485704617742830632840990740611198397189613577633090880400877668039987578860721010377376642544720302377062464663552296958830174336993818621634578753993415550067482393614135847526500928966096723338139952950574333594171803112532222810099902911065268274255934946648775530033444964767982342062594540287611953727454876779544833847563830320696497537146601698441934382513421662786860751549878297994731834930246641127941924386009142877871220295644775631420553920862593576852682159257621330350829050360546711228968675921108039949870549942889515922294893431122617819825765874655140778000289796359281833961820790452040685273313423079492732208199451765865141734803972983729509340353054127592159413196978854744816772673670966480763300758464555355172110180936986338510290469233339175649148022485203764495819280927662996731292662826111725898163221004257733859963688804968676552495590337213663915824174315165457998448625352778826987190941811288570257833477473556107233123940873573235959173960494218540255100107378855588633026223611093702550874506509796212159766112999624825686081550198802821116642825162194770552200673112616968749020331375706317988129936776848013215852754424489746650343720741027344902022344344896125860570230426015294660636430166241737940504275922110557738057721864410495510945126626199815430102954104668061761843914772222624533727840345637908990285507794157564618733409559612786391138757282651696762030218137046276608528329439270086326618414012347258717210892954827038499334368518160592317999242851354054695494967255231210684444534639247563792300505662488501097026453847062296905908802894800552040474586741401540550127017880592547931470849455470073271361035044459030176188407722267560717393225483053135591327423891476986577501787187070401317595201709009212806187018037664216216988551475935344951953382801452594640143492717050961237783114696176575062251501826992004788582785949687137908017001612817959469547215035331449306937821536627660621591992826977807825307409323011956093527831037193251729287209096825896736653422826216108489582617368488140419106144243900174099040971470420322205574196739291929234549685836592235844083941223592873358340291486329620290308903522877398435026754849963127635193560499292686651571621693048714317359725361811425397393790618616406507376018968019207194020638797851167909602965596028056239022217788670268922507975827784831474208283664559319488760886510468259180037138386990563809302510390950037367184384958398813020853145312630200210701813799905790554081017565858076051256945791292828776088932166460365975710891258892235916777906418992357875119982593811336022123708082969452684694806801540698287990433444854226712855114732113094922405966322210173957099019580852809566841852841670255384602688987533286451849237324174637774740017721045427462524752896871040640958318877008940309664439262214890779621943438524553844547801263944227117428806133421898067973196714519263108146309230740490085832958498256215407795597593159852232605821320996859585818407308536231848056165156297167830108593489511989952041114258934371150019645382988652727117783140872448739281858728130268599943182035302152729575001852412367089720548028147235857226328834811546972583364727921137351937472622737199559093800380625782235533749137021476939617845480620773372330430191795202850709121762832521549410009173473738884174649584410990953813829078156684766025639762389786918103858592201470481484385183916070884243698243184506791221343216478725132763437536734879276689649040733009773609270176307494705779844640542304526281998381460149713442825589934739522894447391580582657164702449845480061383424360091985087942243549449921571513117101036092406168348646062994841277133800839213238921233517329472973254442516937990413587683889370868781508294701221475337947362565433376835613850816994338569715349252174111772397291390016234635730978288121406544329533670913124481856377624579136628091176842485656128044530006075921486581133171820857842212305942550708547660276940950578950538220870513542986493706280244931853275482757341212721178066565301601056284359892780491270326161146498877435321833663312716284765353615859150800406233685896804342691434439819387874510955640213357793640742710073623012322730579927020959983427519048960246223377370040946892163099073284298004803412916562157917688635616524346511552509570338672400058908602796333212308625043796164061200685115011760572914561162114474976401769546774091736092735634286086899130014541057757833456729596947742151868321567272839561433226452765752500834451109681615950118604140593850957094200060494293796529675214795258892018741100217481992163484890540450808664139559701324628024510445084077950429951627703376061596297325897744872296597506352038362654986064082998436447294702658668415046737342703180152072644400335027442230652637819214546351755979568461552575736059786397218103839091256082611829569092966782561248806847737298816638280286896532163092382680845201913640223141196611503134904254800912266315496636682934096871828730751050347031927386221978032952894853781353157133880215548176364563085025415715699591281073691140982453898683821657718770072488440607107663399652451560292290526615923922126110329003557592255237586963616912437917638198536949430784072128094394909950835852839510129402821181679002813119881937958184786578290307021402121853440571065198435236970396110234296885863238177466325217644001233457063835662253773383191302281732167747201764298818965466540162170569164115976687774087993436647726791747744081338995467210746625604059245415046649727605866663425235255790853320012560854421571533742745233011676206262475028255248695833152535623465209307602694390488583210451397601660494450800772656764799829981485764259525295397862700555410436202762000049986808976691424231453735445027514871419748546160274476796903301535074980262381118907710252786950293865547536252967602281915753413356526812213872691903033028337778214973794207316501399231203420708520612284494376954909724259173391053517341365312375576742588142856079474050959149166171424995281089126116003999216032618320673606942174845656504730559762875023100593597077521353333197848041193605646409627503396266373913245015090407335439214559180043562331715395857133992004881172932800971306334181155361409833309773149930120549484393167806512239918761566968917389851471417173536367323329488963156864186839257531592425787389044519959584957011330435697259834267097019373194577835365225195346540376647610031911476638051035243147175254269676890912185589124967185473387222887861277082984716076802399105402312260763960456929065684098958397676029330105047046229013083919711198434027062780776536433202475839263154279054932806793853521966172601441125032292641413132662232872199535948859245894194290381841750858336990626347063887607910373618917709759205688303146150731458469375675073620329132433215057714579439667878895975618597573648396870620392120539047943335052459245411867397211224945863414764856141524398016943831399430192843375552333315449816854731076716097162701180451709402738238578226508615787105913499836122278252018926722964938710354037297752528573929223154014674641410896606905430682509554282365605383283424345209322354243744190955248750829750048783533750333407478853615199443593561411326282942602128586436712910196832491050825172760730541498345776405578695008004478406737218653724308508027683325221103139205837216697912209557490476971866662011152341466744378830160930387923354218331088487904483244510853448777081912096699946656783303442860042682409978705997900391077749033321049503444418917100983520649099062122979174155113845676416205615357025690127676282057883460035311586265180867121573558989132380430332604545192019111944887869048349977117889933332039996014322254230318290328053817780839147568398036756913937278511472916695943026129049916602311496943994141735376128675729553908535602313467566975980518414547009232326051382630233174604464361169663258398494747095909346178451693431090637882640089445163554451215576079081824843654529929991490257035417915439149290426682527450483454699098030422045310514006356128708902982346886528438484390388531450729395606915011341310950897256792712889090428413886474100727691670103875008443328096799408244156627925472846124974164922553036270840701792887166020247484075261643045880410277311253445121134941782617800278772410668973420383969165787057632956926326171631734414174628529774433919296372719605547105698180926614318730790665972306273356141483204452441082165199395908378019247771816771864527583480974652548552650538757226260321753712028393723694023767906588485493442064467009817754041394119215704822895754740931563064054497133651940524243611176643430965812232827828962884122740955173838464550922060883215578941111795304902397195869799681658709683049068945535183771329104307896227339488636083563028237265690238781670874954811395583209155942645322979856279669672667029116620244927527443140277836021777829160748931289522908540348584820013919841766768525842149588697994743420315918791922239976169791440643891277886428634474269672284505740993534857549317623919478329189849028685942309280882406871851708939582051328949780663330787745595137392805201070135694625060129067710137368080708897289665640144466735163971045524792118804554287267862480538842414447990105177164604555427606391860639603019740613632597135920717248274451234612619103620765884635285853117171287005088840155984924462819415478918379942838746833870963663693499565881261278389044484875790693178758442177651652379326318512539746225569884682466824547757347310118723255256298400700378026667222299316487272027683232843915384048910984611230100326634724356463273684208985281209702284899577202008947481129779645733917173183943955036177992827889171820866412069071490930953594884267913141803520610310614373119765879142720890085930436692050545668655366039958933020481392154630327911472958857164902424595513709137678542174550467135890073093371079134526250690522301276119875050863691573433478660108597153801906171841165977535544834278712002055648243959308260533045246716487329829839954530853084243205327035323340995333927243348075468285653696942568515434461363473827870376208076400843119918981183953686420185170406861239372604239762167758149289188813254762171854401717367988247994929620673584055120202768862184667854458898027615233812465201550106070570061747559528412874274111901975857091083698407743101849707648791612377176213861169077594072593451293841841531289458787969088617898090347247546061517892752601715238574247130614371443477766222807353177034004219785708416518239818951526916887220043140754941756278740793090797286009790275653396377505524720202922397392258258457327268671670148345681725214684666776114765367534181817995101634649102592491320478474546577723326936649798393998148011929672106197342140417773714095954280420102766971891742988493979183718292918956068656125186061667730501315719164032280117359859402639278260951086874145807282956971983350335907836385866231762326023486342247592087103268640973548940275866238153141268791320349226519760477805025414467724051576194624283372756379964994458456771913508418458361457552775863655673340534856773139592435188027157095423833295467773939486705997811414362226905002174178685800630442031621697322227636007231884289695220945698856874153045930968027744164401449279765362876140978064447727910972494151732415213304555631616992041516342490719855863770632745740461827795789167648754198520509593470212403331230170867855164443301406744893275884784531302561862646426886867300049504744842062008182218030577447383398819656547687923656756215487473726653681998178453260118230624767233106499439704164942038658738838169260101919497652362377504583732541330139928749004831687675899606593764581412063820519940445009192689403121109576971077034421313490958038629165282606111630415521331708026907477050852458379128129526603783893366420742127841310154302324492183687780095519510311690416645516551905561370066260506660605573978780404454439828629674424388212570678970970312300744768447150760952830844631970989516614083084494972617489164733813703882287084567369629740257138204495245859465537860594552473716890042462138917871992011658650497454247389343346695389523026074055598963135423446675341710347033563040879338948567703867204346418397750548560844997666067384583660298794705538594000278228356883868581848708749095124995033714168800269471468297449321892716419120395534369139003392847903538371405633433134718196811920761786261776065599562738856257291231700518817176717448939085213486277206408139540681826448168784610097984255932702834529161928851957167842901735421245281872569845033552593888055580161314176199350954228541950553878690333690977389493668345528157815920743837797475697153133511093233871618092859347027063333454429999151727457108784654733495809219110488651531800467036047512174496310922216394086836535946594605569908026409944586549988487020870672608380086276503587915158785190150891625687688590907908100969674813449672457386687354401621835858009401085697256849228926369484865011107649801232779974511466460393843197678184325407939389938785917890169141004621516652036041934122745824049051448271407051054937772792840039246920886235512249164369568849474524439582185709545990766698737585408133151344346788160167678612253285858043345223408619269096048860354688810463665063389280823433366816549178024980325065416830892925877369563325046982614176688660565387125046789294451468076602404199311212611173404070030670634383881742314193385290607927729532327110356738022832716320927555219441634674158261570363072321594013179619384264929636422577016754138790607734159126860503406341170354651950064059369065137868900919834447828265321823772603166116314008457826344524654679834623295092660495052496985184818717047167635927346442686114169959976105612857851630339909685281108995164636916982484141365915064903020512205202553663797728381996296263576897900360315703859956898890232672477668878729650091105977553465360472355358387935676876472536271637975478547623652367785944890527754672008843839519293546268460947321087171403748338754176839569113867063016541749376894570288235973749590997692695519896318138954951265131065054089317477516600970791510415121510787572280120136072927337369595317447759042547610343143581240768233736826511295523941497441186270254057454908468864822257402059897462475624195444985204695245396666281563201644833671076577722996233459666787834679378798666235059553742647167505554777130490553843934770988807546996262968752693175971639183453151138412511195887062856275853789920236266164635268338411450969614937294649095926100474293785051236062039243672884919094879054671735662330064320892649810963579181430111632974301223368835344447745461745601434250911396276144670603555910494022861829958064011017924365449767827766689168397713083408075605530956058277716123201523680492158028512254063456473148360275980525749260738134510971934197337759618802961757718875678467317405891969506667057094606748947500227830145319449521871668337357057478727242855747531100144859855599093816081209405057146180066767440274528186933894586652343321113307019799045938759983453741359131009017322648686936321399850756819833464832255505525972894820329480996610330240445748666592073604797453015918839686675851665192085753554612513162716317000304673214326252144409465670356275539990071929134999643691949319036516118961762760414900129815382850237691731288948888204667114142914244593495460619035912971831014546822014557441009788336240816710244769618029491383253564634423330120509128523551247774993086496031677208828883646076702139757238635640419528415599131442227680129818570553600290216441339636767144127624926971501483803830247883605084187909313163404276505202217930025564196314639366189377386050719289343140860534232986865732351202990244343195899978280405358129132197655652780547923236146577022244005884731857920925627954769684096433384408088931617874791345313086018023649021910322012379045846825998839049948840979452359403869754750536512772164252407989407717120199585207033351792523895055831781133810926984159769654607428861714811908845059291622614317839100320212306846069687579614195106404845825446226512563807705745950450407839194411854736283663259938984302076865622723907507119584712384529349774556757117841287852620455695846570366533611878451670027125474572351798448181541159696639761479211146064541542353077712632058099389622384165265536573345741782382056888840410578079813330695541462742516897298302892744889298865828906352277011950177709004199505230868386489204352735771294792919676503585826002925212552955596619464794612737394508989043771385886738375861139679433310806253110979883275150589999427113772333958563915326994489974736568960770381632770235762000469751751933456075957848965274082058396841171795864268005413343687237903080770321028817545720582452833160127605085108825765996834421609144329377601219709196823232726511654299323197449475957077745480439508654611520840641596434098351372103492735008009684221601649247112916136898703462025935123651100703224935326262355333637333729307871928368133583817086365762267650422738478478480269694306491335336902105939026361320254524989484063308968948517125820950013407352197986755747948507898997331396497051345736072005222712969688231156915388360480350980057336049472300641232707374814151193124334400103581338401075828553859532828882438638937805848575353154892703300821954072109710837590289642742487910918163639702474233664471957585473041696905531517485186204770500837600290667755165031181485717220878266064997752349904546991292852558197449245432113766499834919171135492145019319621585018489208386844582015481152706208807355855879646016506700742167249771261645935666434121141941522936748322592964519446728155336946158059407124698173524644163791606766088323465373035418165687146310307010415599759202777045106589916634840420068160651901149383524465915432175712521107621342710716385937212840346373599297123840665499455971238393057670923330186597754103544278965561989661483443966125573756577347985689684625066284976048478802062556795458517314919949489820173822017906138755517198655779183990444235725166502378588425308850645833884713156553945492307710286487778329278348223557797455138378546731431769697518350628534486192788057075487725603421440394465292162416159384597248799571303206239155276351311295189812892556442577969096992227233936651490093800394831391925287357849557981231496922225446021773773888710967892747332744070316093427152817516301977109080574186539700567220415463011400875037221002792758465082360368332285633363746845111083653437561046526668277390044584716728678299848695080581004366679707511681176146140766009963165137438728452129209005771971697786540692374238746072397382083693679208216339916162718164290174609532140105237052438565217630061863846261489002961106850028098749639164731166714707390449070261012839176821972586143940730587764530630101630582428135383898107326871858429817059267594986462087368492967259842727357777155885286009151420906188837960967420503656900050534023728343351738313972111601538369344963746276752526721246477903901264463645901436369277425475400661353556830572115514143322251058609166058549219455025216138633054822433486856077412449806966457961984075402462252687487634645127625012119545788440250583392861071178344744830029866148894671108579250776725063409506371702898393157615907920748042520860198275482324776320099729523648878474754382345054414165534336106221649787066639207484739467002501667861596304852198511938996005679883107165024161143125465889244812880329427592565397041169300334669640161318955606400560396988383845954685289917111451487939196085318149400615971152026781881893240913045487566130389129244070490465139445167345026695840572110426522308070907865385759838786450256012679099268836202548495934076263212400534706238159396267093933888515299276403475201363044039066516818036381690176341100438813549397524761263241577156147358143687480564484860977424395244732781678742116442831101161742846190615224634737751766664024343718887481784624153042621907896439831059411300091108426171778124637442642394939914899586511534753842119255412448446530213316709315588811988812982879729626864024788958806581718699362817347717127374356997026790481148566396524303371504046070703702471520354751799472350884416445194429827695680542070297047285673583971012011365191765010114266434701068393958365791424268086371894128796417244342035529266151798714631111386499905126448895985265265542668638265807785500196617932440281740210373922867367069217622683425253606986937933331451043083582175197656480019358873897313411978735716903026181849297165562410434293186274121109226564133209686349939883300252669226333781744989494960687823454863027718125615806939780904409678179412400887035198387939293325440579428968548273837536369352909192914092913136829310800501517049284009558650032872096481523682551497871072412536250087088843016742927969422632873762374166024876418727721939014296259184788655322578122118062075098789048322628918151059072397689735998399963132577125874219428187026182806488141325936284620892930619065480523808136763336986806981566156521766365538109444352676822156364518959426913661599327222961165544323045280443945446941289325136212574922163920995741778954480533615461490084656258853390159069323007861848265512730382915283821773810474839604092354362618098907685092889744952325375823237720159614114090749634589007329701288820536298165615069473913681368894501948578949545742448806332562391826636999006801280849695271925835727671895692374262766955561083867881729611879901740614987413517120548646246166152821241527250240761087491534267112679474555087029879702794062998490141132747719658838219353161226024621280030043422361490865250720942885434000277147650616077899479433966900532608530650586678703770128441070785469240857968417017681851434594069151672861543512065522272535266268624633281722271357373082848942787410838592099658063697672805471626956918463387384577326326644985368699770899050229747796526911361674117349907893189401474495221402426707849830638737735583764315733210244333514998597678271772279609579291086231232666121169804114986997468475455369342390766193324388279075664763979855099747964061171747116307918225457978155792711990835983665430837597941668223059080301116027053480526836197598536764833021446390731172130674554186225899516434964409574342023375408941393859424814531950257855053270555752040117180586476988941922328116064727082953711820933467254007989346384304644540468534905681410242577284515780952549251496734289908078296653679244013040017907985204921802359459290634066629010252825552376487091406242790314513558801257890301942668936996855562644147676190364118202089669867195621570638900404059025967467900218515068803689011735053340024911563276287698254724842533631870379598721798957394304996767433010354997495602879253424374332152674196323562756444303886663284826520976143806378517038097477288297047893234156584424246430356685431951569115707478202514118199385173765904613927312725917040005832205970539704097232845818171603415364007114041939966248445812400402255769849544767193882452481749886984116606216817725786831528400454648735476313841965276805807196285055130415346542326714098525518995963672971283959584878258009518504464974357537389693108564676160966516624504570441912274335990858472688371115362973412549744318942870142166499534537302286565171119275929239259808259702979470499962584113869807636052480184841220435081561436356518111766325735108159220817823869690275546572116965660261374370492673224197556294062376756138608834263845488671853567813650155339252298440975011074206179468114106278953981704601864538384452071155778591269947570610142345505244523466186035928479725990680633468747045712276899019884605688131865008784512641662124912397535707465841426179926012576748912551026062804553896435394904301649222176172107501354420541664018155861643520505212672706074823144002395450956279626407307645078896142631297482825205727449179966545231197488227588764334787831716827379126311681505284834486484595160072338679357293100787429257536530092062222436688815706777287857740363112415666130497297188539156093171634874437867460485933483710518463542118412858763521749712127598394191118851672869563433052706478289420493651291228064020328770869058848001724073291991381572866970910857986851325336841850344701551194861727050972943482632477419743464141314210735646828061498596432945364438583323558324917401989175883476686112158317775108042975586406671171444146282663483774705896295058067936517914735287744510495881004155461028391177822130994772528598917826056258476716276943325165986207296198741905750063468272280868133900547093861892577299119196950890966583452160780249839238194203758132438192035647602871253018164150112994463832071753695927307202036824589841845723462133633328253688408855587130335491605548871436783781590198235160143407822305587489155098443353501854800621076559677195909130502590527771676106583018388579092972504251434156346988650507114413384528848781555803723083160622745947407197668785997873650812681979142689773276599747918346417649901408454680292902499454394647764965913790071138641873691855072234293237928233394485665857355345582009611856295684674787268866792533190213022859764158502266937831480418051857237569825261797355602364806868493182086533263424853194940717168080037259401687502941809044679555706655580476533166817344687847391006427878074236006852925382811602218508802582436649416612181905452845610808969117476692532658168902644012875931980818689895076407156198794734141107662815656208628578121017940628353149315751843566324894409188948284915070943749355700387999268333871003540980940278235321296673834837809938427632536920013574235531769118253519380552475388630415619131629703910028225135986043759173613887005329744695541408696009176552901428614787503436940030528846013852245958045568658098402773353626532136912195897938680359291344924990995705033828015989196966594416174482711305980911245429602111559549172636330076356349579175617582783373175895269657009301037548745319450397497652814981156984627835016041952254697047181783623478745683608664878649835354585765171918690656214080761927978284716981225878449151127001385813703304145114597364207474077061422710929280579715099158824023411022297411568668848738924301179095598172994185113374810358899784408961385678133042626234126412021028353795276672685878680818780855909714732266937214427284133985038684272195173466134895525358668182158994905881990779870593278139261325163327303303713605186994803313298922644642271336855279278310506349782659447295654424224814372030092451832559364351338235677808029425199129141529947030069887541478804902196720787893419909294673385649322531500519887480040185801905245074650887860435360254132980454549376033051238588470762812338879096681751071005911969264573964100262421258708856857911908750484776749426705258932412878673975768312895334512617032968015518215216358632595372446189664876429015437677150842020889902598252594469768940660273584591706120441619964249138530796641188361597274167494786102505532661947080359914258965811660228139493968348800845484433738788157997065331439829350981049133209921370146638590866492301726164821517492986203468141940024036599818466483626744933616338788801154381015155476279047750880712306349283672474253849233579162803016822295598825803459361764897101246106700053870226125745434744987423381366171660861436476386276907217660219662191920752272274699165901173317181470222840920079087779377623633866905420377727597847780128751727976693451873620192997952575769774931663877918599502463356205854918168456012709375917965156038294687649145342294977318583923445186252257626212373009938893069093967468682985929490778920079689221258238731267434606525350072361232557985586855366367298256490724045403661240399537362379701100882458193003750849864222992197750883227411708793035148441353782209729221111868130524914362145129023407478970684778811304980292375676526514732771754928681003094573000507542347299954110597053216305564115559916228959149895844328453747644399801686471810765562087775634064587061598882444640394789421922018429196124771979975691619701637166904933247705334653584379779518003137686980137736139387820921341984058206648899475894441834671375139695214746880865831531566518143759591062975482014303325049881180774558832149003352524417792078527737746165030908167396730576740483816978744684180510636388355013525447118361041905075814330222889972049084710008924828570086359662684701508105831734162664151882525460179459165009212333968742577330307096026354897826514332968458588374222686001094876184182419538507762109496365264490788351235115220865826006717959062602226549707785538046952882173404825154004093200163831154343664371705994153318569961712864028864581369098776366285260072938579411425678953632046825039461361537767154528256714131841652301860382117946437287888160781818086542188983026848283692803046518400458752479471651751896639900477756669643977861364004374943498311067074405028476420790528033974238941808790602113182933568532340149523293030315248746308431752357966389902765749427741030322795172941564579497016822838479151566357107909989854582110814074269633606001089910487386653410817399787157603721505731964073880695216997953474473929721851470401152226934475484522703176015123952364223462937071514286107742297617282174341810561018594224668934453619721564157734409636240572750121641180163964677891536667967722326056027172830061745085630742447649147349246386918579414150404366369804886623117299627545731360257851098201206953783795546344308244390059418179619061238100690784884530299937696648006767660170272823998036725464604993982522277202000402296221222995735333627293914007341438898193868232560566067023670087739154652024637078313004049530528557682605708015724736578985849205874841212701914677551207881983863084379026790505887010186794117339999696106497663724400839887607727482065288161400124687818865771025185750258165280615895143545995569331149967815221685639081059472323050035811764492703280349671151838542370796253557774827683344601587926418248561992721238554666480717962066229386649643564315855802154588105341730153209839186720214928312565460486469054903175810902167408591738448119511220144702227387392696458531617290920399546719295543085229556153645307603006613642856139974691402917464689204366804318447250504021902503346466350786827361284779944503496813081054078375629899585779743937909108525322243222130226082539799108415600984331871108443147516919947468541847591501970512967785285688135212081789369070413026018987011178947262854216922367771219111355254462816182653762161664782956059089818594846799032788212868852932830928550162651918037166675828505843651538660612172991679141906923866630145157710450455832425369957207268543315726497709344142107418292535406068329145204726310434109334146396609057958273242216031375178009035573246762935703936472950801119790001488965817099675552561717635402368769752723029734930046318125251715507425608792152219561819903505461782060494440243449448508301314637668655522945886991791985135279506878116503547290166551473987150519722906059502594948777040377397344672820340360473842328442779986519472031703337919892737133615902060831369575439578694757328215046301648259896074101456000959545366855688380033324526694378314053360201843268488427023200103242382701687081815200736380899692107438429693103772163396720610985124568389449419878685318752651959959578557386797621333711189313922799526419509605650287617102500257608722112991819513899511958509619131137501404008386597650577732946025059261340770563902762665396451034044152614100185646495634964261097309383171224358252243824770552627057919964176618902302305490940325587796591639621285132436046061030355582363414725933994355422401305032541008712588167751477672540346916608215744144565138839463908863662029098689552053709619677549690400380069640325526714141479003732261977034814276450368069616374350118213864237839275284432829993413095547903863548115934373964970447890183325824465331254632503371453997955340182254355634974330757303797936061158922357489761436160286464072956553906415177037325241285589916780427202206317403543026629057442275851141310564706173182680329349701222296203226325627030989298725832272731902378356085455133935256907927096101498269072539853472775601292765108986776189383646694767331737653533624032923503659472103914460825097090107551338850389406512231784516616417502205790884826663656321589004448085273017298343229920007102498406282720534739361865783896342872396451230070875239338156051538057645447340114047465070214843718676608338995044203190410576569052813008850125885256844541944530152003293988371594687763971689154200366978815440916171589594304157100183024895746887109813958839433850668908109132814758287114842578118457778249509645013111396204861011294773306153504747180305121863766994965502708386682676226643322190591430568049625565517776800316195504449003711762957534391815021247655043647082419993259319435906662745822827292016945843543583012531706091352470219231292255934254589115062571750519111584928970116713380970675252126004615639945146334950231903071595883449099449103471786534399306526705333787361876321872875418332314636144491092579061121593666035471941241967197454322189633001221428093385521185627731326928043076212194108161508609760598960444205525205006609450818418891922239226329470809516827433497440107637705296390623631530776011682982637434744747926920244481984316781422402460912113319787655345029723218313827260446623430378128164438518047199892706144445602538190371183948210117142822313658380405509472970585519757983599295678529286597749275601015271568262527597538025541962954412557875400793905096684477764947688192788378573169858589960425328788926143193205040650133159353814951744514560614262752127554994191014354365444852727431376990281721958339049037664845447992602196722616352426260923686491516997653025535080260286723858981613034102534023119730054452257961688719204196180574483008686025006860692287255584689942225010205306239614374952851108849487321496744964449775678718958491443597663567168007809745115634310039395165210586515807748966507710151404224539007799224635190593003754445575521535169960191357807627312807107959711161508901366581532290096229468927856398260770080316068659016664914470924762406805349455378519933789244730163391292226407905440690202635063013829994780712268678796007321868666846938580390331141801913717831246461205267926232307995964731598874393361573903182045368555908556316802639272941652921267264020892893307918075988786292191405823537928590257322464517118216045868378041183528196568967092816000682657031950783481958773040396667410186480270733221199579862998724495731363112041099686671737391222058589157135765242003278642498707387027587534452218248245183102630803670136659681747303011651396802124173462729623824470144189690219553259457782542104797807033808086617531692225265325830145721385599925830590706837349833662072211122706529572639116016898814866801982627850624429864197545598206932714525789969977789291380822420718955541060766876834112519118485266292124443100131829664383150153399123230664948423684012740381681782359045472852991768125258181725602482074157496153527318529482793987531232396478396420733466253958306431195479827232098023512669737954391603896530474761125819820355213173822920524721801277790335044142333473678393433794311066536673650538800978378853112100408257438572511608717368876986736407139347467500389491831167369935824975292235620563635269629483287360306786050840727316088230586594747004845320642743518785861466339034354793062791443064471075099451461248590750626215945732589686742992306248259245865257864238551047410330802144060230732647254985654581647905174236013956793174298425636156518145953662957237603433897929738684217765763969254312535626015372058243325961136122491669896850147783067093338719523203238630276371755380703688255124027565783990743323844047912603131722043615587629953956482306445862232712956633049193659828849325793634213107261564823670166543737015381457675264335924770401741129336965799759237430020727429806022827004038001897714425026164580528957417545841663296639697904851538394890433248457281619686562738870113785715330336335969711751835615745049530265141606626751678354686630838412278091700949339629160352282389472048372271855065058994890106100188191073741099765457565125559899397769556711917809640328351486750936851129889380927537813942970832239931267872963864448611820001419258365560807490207075119288086085059194992127804689901342410658502718415128428715840822916274791640726835682199617926844321448719476340229942063138111253496027352012469676393171421946206462440012433164397810550964338246683793513814910440042765549721226620830055343992081237004952959063725875199902116812410630665032240391623080052870581488477122969451407146430207377843302757895322640861889394123252541907227188536775371264404893472958229593673145408076951550087274148969323048838859207576017653748472678712987945092562647708843942111435910972959185380987115141518403001700438264769810966197296602681337944811567113407225688120167789015809931380322418702155982111735930365387934370970613394238693192460688659956346233503960234619508711083746243933553140428580943417054281320350749112925958734498599190041957128335622336133377932181067755535216149393861503925556013600540349305392166639182326040869696279483288430667945532225037729566610876198373919836354293508348900229750875818434378490561292854220345340302459389747885068599934211117987068507050285238755376811349851339157420861358772781718289937434445676868445812769957139195482566328106254925249606750476627576531958302989563565929418052102535610819267723091251626543383711177447715495025425171780591070681171601707953716740826789983964521829629197927773099089833926636366238521522023704755564366566795621316943088153269350079923636316672009341734410225161965275195990322178274479309364552637246897474528990593678950767362553879434957816326778559870544548996573098751113647824294724537329010986552451189826962890841543931318954355192681296251089398015574350325800567948731648332255654592069046646972102128020045686035763939507873082117657726634317662916746159784752506234335532179122996503089034344008498778534813212778605639978373847508793520505646989896224476656705512874130272081992180003839337373991380857346623299743807776273024198419540901338285933818702650421482132392664638508744538594460400433186747008157598142029708144988188068021431529443702391999096819030042869402804135882135317812827326152924620024806575322248237660569839941338562735931711417587011629808268791126647480790876580826926463673709187690501084392248629661574131547014262207180171179204329533495335438203804668211319229256498509037399485250371961604304438099178625244451851607471536129473930389891153758271611932310727625500795770095267585416403965128100466332376889865080929629894410686495215900650450149200287900580270888716412286820826101496410188116225047775173882773765324391809539372628917399474075731914661651212961813734352010424990190990425612330075894986168558539404847460743792314710387370047266265218381263748576213632670462367637855507448926240875555831038629401467653422782826487466405159154450720272365092476785096159800532024025670882206262602254201884747253215527540670033485444138653138594682845114910037951393156509126333505090353343449421035541705804395699334527772212991156401629203915479208849909949802222019180963231088741250149656178931826402844999621664972482907552227579706831100042400359372414167096759535168403700205491279138487421708112165440009301532334868724003115321877481036107725234728779910791744359349759203376970744465023916086811374512672564534932474883050535918198054458010119207331953639513377642824567580316944381513349166318759301632241983875129190637390035126730677752274879916969675601387567035122342392241994362958304861676489286484827868024811206692142594069683762746744440262431577033743761865294186382574885542004278665344867474397960338415292457799175465123342966366215661157992071720744438020064899697410571056030824323902133845213689123044903982524773199645001632241744997970433164764154826045885278964603552822220189863561642336842483323840769476693862000567986967671574168150327031196478220039486743245611433544831919208610396932827714388430270568006944448284637859865985129459220210586667743522323954309238291662066066587861357041446295128749625619099786293820949154593090066089862993590736810757623728986225987515526259281331474014501971819341623486459797773549456075236525445537939514292791201906151153024896365015281129849201236402243005038593053284929775481575324007987646408194763415064305229181541442710898666709726389852721929059171469039093006790200374631375935498572186517427474004854665440072323834838607832120431888613893076706071161137452735035539734384261558499434239430673346946057060196532859093972861930024425965299712725269445101291613422929099251214970801106184120396728597492318595178694425256625232782605569917664498113884482061014659832643567829896169600784043260353097015373917360142562442267989731813338273480445115115334796012571752944301837443851522203568468813846693328772685940691621896985487204233694215004458359485576175272090035130917239171684838593505681825301335154325805397486877187811656136467024441389001446625002682369389673630639643730472839822982214589975463503840965084166587325810829921411979348293805775495901960093112746607300623838553474366998453452862398956333602411235535173893586458558043187888145457311388391721247798257616494690533312784471961611442216567030131226616796535384462933219078987488826735872832981463910083507424032088810708077246207371847589212031804749066277069384451466337817428662344658183690649430709384185578074301489274878342351010777654937170492331270673729467220499451511767478242431148857741057963582337073503414145678911362913084804465188056208132753568039111224275746104051567736501332826056556858878435384428738581568396797355220717536286782298707297791147780514579862078499968230558386518997687895467892465935677625866747748197809251379721268762603973109254388915485409958223819931862885190909180968581385489157564664765688335901741342623682502500649143968135232134390019894493364216731349220718905738006337451470794620356800489679846098305118161664495402689324438287810399980762966532068693582585779643267720722227529168628982830482970618496597653691959889337159423376397398291357231200138151693499830888242212368218231641630448371860743152967880055195166661488706340675107832532249747135841996143228061626201348199476550210589642031299060005383949358419673500740444560483856942424290507257585626930968980900473483736063660545596877442243612900866011681568507611916169633596491194414572640543294968937042932080538168890101120868817546048766521880463247273071497204533472153539196150623960508657231020810422411062512821235296910106768909291001804032903178770774249929935706212902073270693372726423446708631284545297001353683790296088195347497087121523447961560137801403040903241706732038032186106366114604966629961867732452045757086094040211155916761976852143098689893798635029988077195695933961088307022584173905555163941118511343568604401608823402329970371070126384105580822925202320634340922505841662148892688588165843325024093339663608014791027956174738099124430916916541486256125923036679728037923722794626098509891424895895687903230678135064664170012957284987590522784241374694881308335939391452996848965037410255643142291934334639883433726927649837324809310452080965898115807202440539904210204562602083911039432223397771069076479455399619315148566558248082688052838696174385104271510899971863925280720442018197116625076108818644554955105197373011993034127335264105744718780024517315811375379530454620000793551205454752174334875358403696136976753222094420919559382686470283005227747585838147041087221063085867425883371036491691216010175524533791308863340127117964847519015738870307742771874767960732605112104200767037881824127437994431022294953832927028130978540893325942017803266067329924558113772431317226713430755545719789034706614333804394778863702138384287605559895273631182207404400169520135083906403497580883406924008896284265332797591017194274700276451961104493696805093441741732430244417489922759117806031381176507995005844352588684694384376872001114089370900648770957645432810273139336683196561184083523335897173953511019238100557194370071179324191780424844943653146852952711237103635606427679572875499275991360223197072705364306867269975184472097772073832060724618702503699810216316732735165184819833714296743298263644609020393425158040555341092829582496035460676875331262513524284087094428492332551333388780863923196251904412681322727321963146846709413111154009293115456080669617245259689596731137133510071130510678693622919053631055388180614261064410428099806670143544620709367484851907320096528346160883360372272137296178820389150656937990589796882324124570165314183280662282111279250666911688734344115305425460149261501525988036399733883728647601173305005211689310073458347199852805087843461104555041664681956701709713177278947067284350757455446343780794450647657920875035242393695905742170508343278960295131457134867302944723230820942251765362576774688913060394581011071165264973145088586584451950738710437785540269463960121735301199618486967283394094024727015634434705941719798633013220246632542136238104290062215085060761480471394408529817656473457572471248981981581065388295144554100726428240895052331887722130813598465311818760973702112010640514874378071834439099623382318935970637505336289606821561271799295003111192175975223678035345603795526863070734095728953603052783946997724106143039789562028969365081785739423055823309877280904857953321186971327998455481165261329748294719536066266409764777569854044801474259962018904971791557968993006974045173881255065228010150831117207473324868603232562722840095819986531033470445931134180606153633659422525108636581431898864689690374389853442354003931530628791716939545262072923954744076283757592845764814407677878528769047777381936062329523192392689460149512769679871621788639900531953229303397541032557777878877741481857513809032361537349069993373733681369489676290331216739972644867669021321944495965619314866498360666521582044085623229423860587348361446649781319302056474110592265647096136279663356589076431106919765024197575080344949205393548136484781127000101759449853620879040193278442743711301199578252886322901197183264625338020114957772107090269221530056097501355453258708868405554788235487763513760663845582984651384049423334492914222131710090099951045651970715923237077218241640270732815057622237925401411309070587720270061927381756796723504459734775954607840801817728077148561682234570104810262385927991891685139939264923597236004361629737014034731236891083246955574226762563549677333164868186223131417546013167100618246324893791962737633822285430779584065710232688771305440595518048240749954254725061350403754683244356893852379920815278880863399809946421997393066054276075064138242823299405909368371736106719320223144874105657464374687561164361583438015236361210562069098891861646128204355108199406698151956899776329058886066000206074052148369983262577267370068221617372634057562604193446024002322506780431691913133111713354608950668919502858659634139843314734386401397504130788926906492512431314949066348919904736527410323897282412264082519671585250737129148748933304517800862007595613834527183808555112667190542152113456528757220917423788689008826724085868356623197623347269588158663505903652810922626625455983484850082314207652266109842121486625062080180435371183837613315067763792567240939047761568750536464513865583757027715993019973934796649517397685258346250012887773124029422596194260196627065979566738758386357121097613175261983412032054797809181974327155246853454286660715117258728203330449358848444509392465330651001437468921549155530195719038907433343255543863318117905928128029561466802835387835023078426889680840390834639348592446258161559400468253904582246427232226305790911916356777596973801211663927159338867283207744322605657405239985207351881303433942773496548699527546942996609179120486318416040495475121215105866997583924535752202473318153033399661733002018109994559896678998980679041903522102614162117523485017669489228050622028740098006317114141090489998888157423694121823881759428887686421890757605004308836519483037417109559567793070078779746749148573333634182658283510882583647467925016581930430428691349786394188230414818435448165103455401106285254284527071704823898324292282556896853826844754649201318032280300645553032580053442634919146264566874667997862683202084163321397397584747389078321590338045247360583434752226976933162367237160264897424626720187254937035743160434005383257234994881846985626213189371952807354285471530182941646977833828886912834284387611763561068395686753214810107450280464552997467448602881128394002517588411313321701937030233109354855124053129223490245850002466515257076683871740853215744289878889413714883745500467724616339498573889816107861678936052508977317426914539568249259101085551956907212923025169083607628271422029355587407511304706878963484675265305724773891869553654056970807311196904562474278684399728197593210287407289214504308232728820694336120273003239000765195048431989276682139742915622223076864698450572255176303262083311525326751139491660498935902714750564266360009472503227842170609776390821077336604214003505217823739078876454758236425009010066153591135510742946798343180855258220110243410515459796721968656568667527288224452505013433588565614473653299527792890378451353024453596858355491245948002917409981767316556380666586862240703163345392861953036509262156984416090391625624510101991558057004062280647642345871901660017035102644379391076825736901609209012844267031346009212801029354208740940110688836235154683392499805543532115667310757180854966908386763998632969963443491151954947267722116862560366331460979795434441212698319572741425007379604048233345192016808769693007397082734913608551113655608683852224830835919236168338724165430965696662369155039114404444259415268475864295189312963818857697458065791074730098843425634654602317884968524368970153566114718356043989429452635938314004469365801105447322072401988891124574819486903604835957742809277915527351370651648486559672397654971703556114930015541811175231407912163540890920078081095704340178636801091235187536174329289975213385350874247814509872597265903484080564210382330950319403025035247535677458109162910749095510172110071158528966833337334315356394795316074807402695974091538983571070639230704494545166187421605028093872310120149229129825245277764084286128849675313134732751241337354403817505794812669648627019741437319382547796734312527986604825712840074294819999923051880445193485769131961224912620050913880567093851308348087244913017673722064753211493811988641578730733999810648546992915215724114699041991757361568501747810392051580274377199267591916596185418879792995687805738283547929906732816466163487690389060619490334904685747894252082807634917290903363887536816189521268441638234833635390415538442274504955342588069598014543674235265339473237753009101351698404506486179064309134015762994483039684554746368767057851231824082781585167805503969765758817359039795176663862817802870713256078864146903316577486334760700994134737805775586545804650515963416157885801767905803332632191332707513992265308808214342159451981936673122540785189268208640946793310274526555426867432360352500444436582504361144054211524404352626448334043248152606682134847013626325421746473189009889725676701781522691627096197953812805884947877035444314530971851921759766207499085777467323792847280415322993085510295481948804352399233765633667119546912950359466898155498326917402140289368101622446247118131222931579156841630751206169247997011820031082751624149592554365308521748682496714506006211225380078910556522381557030778575070730104886855237348220711278330586290349706748116438417678070945400202649504549167026277724503140881399218377524619375910402927357666009095149627776025091217123499511887647981295787692038856182260941845515725178498706798704235925853798336877900263579865275754240945531024013904505828093951225448711965845047671638258655430123407288511073214343288291749548735885320426520650491222123563216062539441442703122898197188141617383897007534021777446333611301792354648114607139382442842414460119166743901110864778892725157669553223541239115413850455410181711523829581606977060221002592747834147516103275409549766762606982062855371924162962010016763242951792940399839957532028104675501005856079305750604259630720699933935891094628518470106760239277376109468637453449660804953323792753705904173236768827475492109890923943227714243725408367774328883535440967407535271302170510761769959484493630102571236617788013151203662938218233714964329776820453986880948404913721870999500113194823261816467600399644331253395943001177021141689426853608174111610692993501797939327463558673449170958637722137839473742593835876637817548472380326197545749778844931025950482620653495185524859994085161130421332525819093131037873091212071105021188635595934416591802623660420823280746039722934462435137320848928084538944350016271730970637066043467522025773535324652784657183327053326971662903321798160923996872587759138967471402484257318449815555347825930697328229721514080302538681702012673824124977728395511370084331572572626933518201822574400180235637213531164788813429582743624014797221198148327909831687989587122609140150519894964114176639207668758152105924765858633133797441116095788326463387508980440954403900006857268510886863744972947716941786149840988798718290979699001925171248827172119831123827551325916889186433093355348694764695386973177796381997149214589605048163845215639182869074523656275058327737959364414273687708364073199027926020814261662305240992805108721725828787472251465229761518697597854921630217021645752341860948973263064198110723943717164239142111135932129384807198070034224039566689561761650670977192146959654753951579553891783102647701787072656708387722225704912737876841273840452369775465743196120937712351488033821175027767646720626922133700084049494171145094212982594524473434809783933189847567130790114164518714404563331627715143192667120565911648172287908945831600553416321766186717242744092414819518524393585560576389200731377135199482250194581936606700478552817686268465686064636619956125733120393728119983970469675494712658616760373396286666864938457822039163521703174023712330057946736160200142414634179101759351828055886461296036088128020946918942737115649455647421270763119934783540918669595068429600695804577792185593287327997556968467804732653221360629086100625723696278120684250098555645750158041469782386946649177528173695764517010696057785814295115386639721858781098197283555149494165045794801644052316000050964946722963038103466401219992067063595907844802459113038234691746096796771728625167310629550207699532904962520557604946902675687812015222944098951996272736816154586778570879841155760487157497835907796904028962440152618934553740477052490140785053989672758956150933414229339008473851922972116973811942010049342440588997708870965918949727140465910532329247313945867296886574632859504758441655970507423129015877442605267109849267452704555985172887838088211289352734945680995087294691014621894721613887541459854555975774119761932866470099725671708867277917327043377462332800862328466943886032443154823412731569806180787226913697706736957430500395947946824375018133891630316191610930804817510458068054740163023831223411885070060412964535747813884386643287865562632993594191216213339657992913664922497393669439779360650148690376008687796710608363023296770569786870699817344401418261497062188767419548981591996144591589361138557600475390537006069758172248479827011711877506629717980822555752680211941692336962397315805684708017828381530306076586347056053293191760775849330109918283001287015453166405229341132292340933095190001155811134651863284752103986731748985206258516095560490667297643168752620855976862257072111603855974495393886229047988421312599270212019147594258752108209890796022041529787642006374920703144055490579922683618608437443794677048630358438763694777158358552845179386338885641959534383014163028507497523279478911014126692739584151367156071199565169115467786665579360237686162165648078066752082292090546405150711169070223211135654569239668972156354723036458757786465285039995773852791036362700818949405304187773706801754079755015852413118113295751573933360370432634253147059598189723787087899642277963498571748039353566022121856650829873118480367183967928412906283878676186060543950560453942234452949934828922940790024263263206337507659262900401517582946215957282657897921475846104258772095569979929982280973805070056908112856016549268325167439069842097964352475403410146855923506806171304643290464428229709129823631999226661331706091206749747555532750055200038393826736648930149126183004646529172708257088360335560050211573406287860764145527006009196349021001946385291376561986349146380342670989788025244248459085373689167664996913447006012240383479440465104158920857082276608219005226258332255683076529265915126861499376875196050838472394638879515110401937789050166658351685012922359914094090137727979821736664100178411390517048972107920296921325006508095735075350603467896015092604001518747580248076920851519580981715687928356292500960881095732132874261106501786716348873356286169690176516913318411404323831735791419117537394893081568214697787299940929876504590127633944738745158956240446007900546856259304571933826571761302102508016560756677521181760863779867858479313058801654335624896973006077627076680620716456430710840769793290707899638138527766335684227907549794679449764160748891859754188135376653259889806981572746704880436065153947474280742799928343421799058732334396536264551609543829290888350474169115594123922115968853857465491072787293626293106636668389926738501032165705913625264274673358772066380100727282692755582604181467977430106631808480962461682945070830661277943198405204901754599675617953866579671421347725165371938656152443768122743191263709351658063944761808950331683202674392292185169161795168457804555404983555941960196772713345621958135617014826877754570549085230945896199895938169745631966041398128212634728024263470935253213805730845376080243672748584489876799027196314632048461411553497721180564017173701648871527061299560844424202616289035279337199869186947252233336018338795148198550816893688291171047111524350473251814629492973342510459940788811340154934287911212771670343275198487265587850289088391976088579529283169423714272079027226807362620246772971124736296033411212041262007223090584458245416472456617745759630820834225488518288894437136620995831686611563086284363281786487776404686895028818555750839878787451749419129911652379185225146353707877628169586205270123019344500945880017479597149053013030855534786065758539227144950361590607541393331025138405211878659805537110828062878764325708525821924574656647524539089629483858865317910075022079194618758653855585769222071176655940030755265196084056053520983795890009918814674372320781501912965873271807523384026825227593945564247139121718672942179413762979982942274081457449774923932360485387227244479804161180490756089417675298998084892599494253134056394120505257484189563106558113223092616052881658832122659001994717842031580652487954366090146363459385008943363222754558180374213141149452725954931237309156503543969139490011764590315393637784290163627558541694442921949728634843688516891293792599277661474156441291740381394879723560899140510227184410038999581033278615116387756386960590792438649905103765906851824126811728140393984205504681102027264569150123625563896599855792481092612672155912562142104533389253882356737694513030711562115930615183439486065860339835923395483352575482320921136160023702158108197236314396452224495675823850883158029709113336397903868424139439263200235842647308760731991735281340893444400051136512699292583031692662427218237032718036444224480081976172926930869036247493776290372555306882291579650464556577214080654201906196214462507535847134337432317478616341249039515260998043047706577327934594083448173020287203583684925541542359962486559438105896988721312835358408171482852533818641005901185431020758449649082993404771863831815022912484590507618428822704862564570853632236023513112523749463083498942255980629154366421054247635776090281064457169511972629183422683454229047670256686008365021275161358694418564805323042377232364178445988078231553073116163975185917379353420003418453226267942418307527931262316426633420738502573451657663183547863748642776614015399203397744583684507880003018018616671538351356414804527454906587785030117623403704215443647251766149867540468403087851153884297083572256297476279532049684561592599325827565311848846507163577574871771091538610463129517427990794599711942232489591838519085654498641232183020968355175269932250573882016841084155136535799414944217541886980418087101638756914474578266556977418551849448732045556964597283623068065589590665677390346612916464901710083659520314110827068619873615841135927568292678438393244383764873348017934746115661323322755253019169249778546709958789783482774924766203399447023093290277529113348896028467442953817269040768576029845424237885687355849237726037404965377934365350870117696779540044417845553775085754533140398508538816669351872472504554174717135952365915263967262565705903698010529347459791082503232443525948654731974528918607294223026667576859834935463362141791503412230366733137252716837240348239773052767941555400748082453706233741191223861510775087607378759072562781453509805859684467480391667017676416690383377223983845544657062645898763450888293308547159889063879589452184002679052976730352532069642566284171041016246433040560071306695678629893331100490858859448316399801755414707593308051182350759368921166515304439185204412636721849141302410847625773181124100572590300821348533773498408938064775652952612280857838034494765847641423702612111938939443774257857319411790613537623410650045273493515323493097580810200896461498455962845188774282916139006884567401040207123709549114659085446324941998104461422753432433867286093170208442155331893684940921732786934957831633036799029736409846876079459665958464578646067014036922636043579413658115569071179975676871967992646259549032437732831293584252088235323147134307900167979655288165131722446724222376738212792242269215571191456229736237517773726724770676295909081076911139341049590739767674087891786770966034780838223696456950213591477323554578674047817136279149286875227970811440551942212963970287785952549621456206791307341103828120102791113619344676119011005771621149396548999883593636701357874612101769259617963898291209885867020103666370367012201441158283403720849377615970136608015453963666964759189603692726730874155032671700313600061910037053340139812243778193486602805545488337543975375376304047340775140494414661606851592363200136715355865511714878293019255119801440454266163705963028369028311879108430192688777487076555024131069279495026323210256175214395117431222211556193499958546868017024093110542638364875151787353272567653285922850619849400389939254921555707163054694141122245515407219265193650261366997113272355803055376091805679669816777441556512497081888879329969986012289236148601504653065001218808642337806832363301933447823361819029089713128784870945932539700314400284047620810957241936569649058738899147078748455107793816845337661347741449709330648207496535174458091049460273186707426391708867720698601949666611686415322641997353278886117771823384942030470759674601785060350739013028968338999691031395921511806719302201738975658020932374603034819009542044782319211625673579521353826174186085453888864091645971200257912024276962740806686740936629703449523233642832769679141328206159875583670959222655468630602779645081031142592223942437256536203046595047597847883924210847559087595427966683000462872107488227239360174358415017480633965072850852129664125975026766158700559361508243324106210330936814689841360223533371494647133775730915891992857808291772633410078645574739904666882941235322435963238475781257479358247665091285275192724226995237740621039569074217619501770825605122221525706842332456174825054937044104962991864168035648841519032968194163605023760997211031218727832610598473573572942636559331371606189140648816176187585694916470522553418754360205791435042898544459500945207951604066168266377389302467495566585372340443060017061250890668022577976022460138854406578202132785944306606388465090048891192606180642469601757269810933963367539130019850606818014830239047547653004424062240864815841412480308856296655964173214104340463530503633019793419584423473920387620870220954108361805236409956150640199092348012514104307391255788498885692325805523764341499874387533574540676278423758461721223856472505159286489600461109558611480279014134479196533312719109157429325412361220566848027110423240128320919319237045677304143408424717978566989127623972816534890135502871195993749306500621208934533380223834573859787216132952166492230968021716644877644744099595770245615927661383819347326416734486959678156516665137227248117973345760853976626914756126303513791793942555579354502310237909422260165865178113398384946461981155647112314992077392597388378594209494357110284983736599679494903780753322667550780429549153927351945482580893653278303258500607635848331941127455836515321877647185542312004178646705519962328055981657719574696563830134347057448395769331271129276540648767624651043933483954748617739515748039512637260723127158877623289895734418425431822668569554469921680013723967315704578642771078126098938962802661897782855841524522637617069629843803687614925208493563226429059130258183879821955635270936224433656602733561159073478186417781150575598974708012319362194748469285909647954646384559038680304242288090764224241222491592308008984097554465400196548000647886650727636806732916583172222062129789497920911969403796854283286499532203597328319006795139418016842564591344846847356865213769673162674942229016975387903593712513680773789236847830988177926326924917188766342315897976283531973783059183436162345926974899819660935733727663953711373067876358607324988106247692768049274762220816801696359326231595352929475887759949200758549237474121055304510619811685000295636351060135584640992469646203859062553143832455925810354345374547375358824610156690854473338745058475539735006661388688651536444865063470998859424728963990301811209998261253183469184157061364434711424945251220002546614055288217628638491354256376523493246855581205698106731519290266865395463645673930463331053456259173668005336400004569907517643003394647713181418044343571459342524304404939085146332932634683130596944995662416295641503597505507201775842147424972506350165661952730572920196398788024671605339037757421893945281509870441271435570552729870924462849919664271823635855515095251583311675190512176538338057143758181820485883052385588629753517455941836586482000752386855461610831703172320322356861564284068795785073832272386192201143598325111695647122210470383151440856357646702489506682515367522110025642599995773617153046647501711771005010402137913905285878246025145982724924806970926029638247442392522479275822338765048487572943307740675614216897453344220719193081602721130042422053169762361187337347409266097672665787238976279399654655942897424246053957506781547225891001622189490037850049050038947676783252888934579247826379191823541873450021341220415942863657098924222671665479415044102136092211333096499067963073982138642779937480820352811855038658605252686155837639799354580241102851962141560073305520898294803028837808062423689056067806638631686244568668789107586696330198387743232951231716654314220902279942536083927210018349114576866926815593226158287532124562427727692636703350803980926563559618222051612351239271005934329224519150983055980651021878056233759296295010884408925082982490034422209672895949148644924554938234578855277864908278335076475757094759930642868856720252615782345709295593857437174562921419749308020427762121400501727656608536888826478105616892470443148355900298239506889826768736188311193055242266193239082497484584352990496619564709027657173927243653379619822797827036642744321584307504508713479347657018430114182293355905916436752489097455704758383423012119462468760961105258243148385408409399099088733851234816819542341812993759522709439254051016401188570552044922426457032663998240806146829087378894231245101829960259197378604478681351614017236608806404784570448191685932362932968563307374809284544001708945581043407458870176240023961214878609794237126469082258888432653822134794072524077463093037461342069782825910702439271966430927174456776609338755646806415259247554015383758477468719681826041837709020078752197351997191187149056240126101520929794430391985050513750210016087941526385003551218943732905515567584961184282523311146697733460220091560089580735941002282506469026969597330995336781372785521782917840721116859873080024992025484371329731354872701989336213129916063990303752963027655712703639133772449143593239243180185950985334465706968434260652604057671454366190782410476025474093622937467348108992280376594656785933687391480532595447438505183573153562595459771646855011230414317743556711090466866559080936974623717684786126228654057371904049553575488996166290620109093979291006724234048691910674750090174109098677850282483194903638746966970055534422533422034911515328869677088714215990565855449834676157963472139535820795671156815437283510088339356588750574740691659210228821923176684668392141770205636767280080637212859043660468025102004858202223671709919409449814629272127390730402234909431949874919137079527375504515863144496604159523737737984666598266201496547039594383760413560229634759619967049473648826799684652271891012477954582585642243758921084620554183999119924018460406602297097743429345240164021075575382038419266108662963708002607032502568903828759776831966651783506536383306833308303671985059608416165065523387778250807906870298801123684112677489394231185900635945605114404551506800341498177768335837514841269891462123495083575043442178330161222918740316240034256554694947156948148175671593108596273510714337046934100440073008915701490401685711580124917469778458449016051665079246961701907754396790432557186388604787978729263904098400327697312129977253698046509431284389874037213572868828821319588246319714384821124961261068638045991497783443507439712333267861150672243522387507609881140861642718888380560399453440500666009345358787676642819059890550958851133181984465999762120443415015209231435130908167698225833207559514823496132661256380613734446302680898643959227101040541045751242013551516580738729709734758187720608668371698712939355379156634353341666414764858497123705173263844795486878802449409412917243701282995280969457322357351447861959644475355677695559850507512308480632730198434130330417504589972635302116185985943836537424659605347657754487775921787863490893674648697085994912852073322920127849089381916562687980721448419219137532470390466124801013908768111014155142559008866285856327886262296717385345143814708991357178292952108206650860749364262311248723255751253818452052218127992104925512763598533387744664346777031841691377913750046385808873001969597087940878516824714071514726695104941552458929802822198272457922564198508664462179062490261245668042091820334998405139316493389574746300081402277849283462331681754177685387493067573229269597322105965445881514479308322700572370528002858050393141935179818584541851620900152519548710045636642159602744129697299985305206537069972214582671010403784825455657043907785059359242495020804669654355103912821679190401408665597014520560444931267304223097395895786267736502690461725705750230913192042761726686024714047778803918665610218118536187659563704985507172555161589014362565084523687515874539282477943190822294450347364275558769985056721116823377793542507907429537014262577137155827749814702555030092793295798931080668059466241569148360303597969433627119674128400407569346096298747201873784211269615229278535135228354577892291869393796956650140852050060766006542342882278491921713381577025556464678531609201899910594541120923339498526741247079316965828281155973120581417711470158667485989378329274317428800059172123690803500003862084008242999946341691969063166766277167525233672325618955863367469380649592921096579280291552790236601236063845260808059947086192400660342723764486671384819230980066072338910813915455418813185010243960708988575564645248398328120492057708278403441646953083656595160762713085098458709871951926135514354143030228376729185921897716807137359567206335328797263919372384456034425187051144015062823378256607967218908651040728307277439382146777968334717844982574045371666264129426080541186086744129278293852498073364171514488064068985454424653853376777100344334918726810125422529570726300355673343751086119765439688274839785615618416988677957529503031286091755423511302325998875575882550528273942861692336741182418939111876286174077556541842634029499603169511300211114054467392733803108004464747107154809968186054443813679831888940919986364466624940686015390408819891827462374907975394384259899581579359562095908843587109479151709226366711157171703948466206691706418470032249595500349424476458755962565478787222956189196232217168950728268634033462088459472691011933317391241799471648870017470197411591615175469045846398960610183595189878072778436586367990950255646584331874021305781583788652069958396324271684423722226364427391168521884519357515189064108828993166559290024429858270745167299528134008870306466937947721280692910028463668549969543159904979402604185571667997060555061051297874930458104413332108188626120338274515939579064254568217436535784397357276999894626297016894154329082301557270639794221169523858569653944375635171826765864957424776345035478173749308456131213759299922976449479162750588274237140170130921559058192766757974503030310551149664221930367825392747581005812116521138846577066409704733456658171236122575935929381885864294973056903889498297497710880655754787232365833049156906435292761370875508670013848018324643444149949259374652333255587861033683176223350816773380901920006065864589447918529998766482126433587863573165723401855113237982447718331268067991919591755108535985577455591335008375848423499567119102862778517825045529023751559075463452546660613370658346531860589582858077932956008684792526286585250031251070998109571553374338575072752221715980789452997894541108775238728749688283649888865572151924803762723259429730890742521373687804455030270079241157054701623096448539223589945153667266683376555342862028500766332790990080042673250069737285164444103171056724755651997103402040768161149333796059898334584636185187831682800156978563342946827735014374476535787069048473606756999976711271804676096958418148883457463263261545638524346887080247528796354546932803091917492988218286255392736458825583805615494666965328165524755261621325320670764036193285923816701141515897392310808221984167171797736028525715599562140917054193953432800307337488250747518922430743405595767806272810955578186807227175844057630342880434071281579182344279673453950149868480143311264132620675798569337305785525289287581992197057271353930178802000150033304391096016909202859940440754692682580485162810598540804582961611866973564496018833081917150826427766329509806622992917375437140644473531974287973787848241053384400370792597050365481634094066270789286563770330753656895897391009026505702994009330781484735657193788764382876633045631062410038900839125077373757942846854195598968274277523724503895649724817294762745496633127764927542162078033539266127150673270926648961230159208622903407721570601006120683478599668943418427823096638965246409854666076281749203969502339564811826057806806125761185839647443388020570080518262507293634142308491802293066092018243436881817599689894554264334558075062273520235899842825451683164016069132007070833670843768907056835650234634848515467562421508559764221024338225042188879760411785453399546210469988559489449952097509900214056292500960595828415831251256474305254486081393566693314847928710210350490939737318174586511969055014460666579146617248244378474191402393562038557883875597510071825303735879942163687245149203922011275897151221141418357827904040866053441842824235721778342107860422475409166772779075818878499055956517318707939638534108674197052842334561511694136279451854790354025107001722156627216797802277610119071030750518917197425294611607803068373731419274478895695764214548920684024254415809985952795535991121119163613020361556799415019982371511449221239918827143273852825317831629493986556152145753348678191288573476084854053951405392553557597654565205860038659227226511960101711277876621252990802050636708995490095881318213647265974321337028291607804493165911070481890736335314442452411007955917916702283627701429403509390239540131600128905021229994442162568125350645244189996448708421673835593239604687194497719182021406527382455778455082964124165365074065370509104122608060725963412143338409462081260920983604397556490599823427054278798273491706440435574829503889992031153111902301566632249926889024777426185079235076058789287555229697858050157861382289017099082048389388179602251160010804580164592698367582955258591067566486473601143044128660442469507158888423313193702481866508309669544548888481130367951647815411145540041163339841427620958376278411415207911296626264435683941650185313824290175585909307708785115208079880376199715108023583158714765984080303074681019664519993774118106800210965302875040889522857047281591645383148068721766787155357085102824963187361833626611282946290015267488352837250747246366476847926868017696446406124908438276732613039981178559363801882885857613095443302797738990504707390219497506344639520287800621303379981121237059572352951532026679749480481615014948683270666835066367835185328258349112181604171299333922289592566517850752546865144529409106683034595902500481517310085411634250640302392578189948338984677257932123317691862812690028014141939393253811446012599841013788776486359792232289284270951033940764546975006123045674106018279023286971843014835564675768104387297017749842000334215261413666522907177443377998887833597435959400332660130098979572015140860754250956020619252188861289564211340145387443927736975207733292941864892674222150315563737423064120884405420616450316907161981720441458170710942881865501078732513204170821602330021235538147552393695695044147333100795447233540318257162169788466369687722690241669292094438497474515147925065637585349994482099897034416054593520733641952721748199480557094573420940233806110388412349110925755760670299592705009078097071362992940966539234459052554025291066091204990174718410736868174426792060507385684730503866875053487634503895288705524717870928216234637273796259297844761310411383995269058711535936461766991147437395830997500596225503851619686564438988987489297531262786860780819721268972148247927296985919418273245561711245790464749983839540516391918596127462380078404989193915217007155589416778734741943397061529625600156467502713609435764030341799817906184548852814652521545652775445337508332758548799241949755471379590064409787580896560078088120531021744056674988077139301704832962860720249486908823010013412704153930214026867332990591742772304580762069377315215769352485508658046666657269154918121138413701358797209470106819268441799922778974147694455906967637358336656399424591358412942652459402130148558120768170825710559871455077998196388518587713796471409558363032962086825849649424040370593328558724634030043655185706161277226756945124025863156351174609522529638969645757860860553197743898459059873746487369638685292425544907193274284340688937267241156731865965151901373515118186972379129106421674038442368022591508761929438766711238748040126807128116424669456854688534772291746931605843368388990520679510861211370613587865754279775225587999163349167393545416363250701383572639151517887353719376382384364722082274009046885375055005675131997012155682592695191981171426460649344347516412998038565123319242541659445762213872089843247277928247026577976352083042628037748695672768176288722411408337846804045939105162504360860231580427792237339910848431015992861981577156154574661207443103352581647587641348337309211155260722138646508475333490244891452559327984893367708578823750191235472640038008470652184548982186759537931795533446960945811656634250496338967994860786893749469205173261098842589036394569687539433923156891900876548564306615375204050837245580454200836397520832039184849901783330173937800324648312393225436979151496414371787172917874465225822468652063647524591607578405048266147750215321847311752928354557919886158798628040745119913967887441800112321267194421937612666244762300626685370201644664228321531941961956713281924344126220896366185938740705656726893708558128399211413213517473767949579402241415621096535333945375992159163603065803993958927561383743103346774116472845340767690049479852039297927418727138967148623398021160427383716959740579942543214252635793476178340625372218686355628660735209975929737839827176024909805997788427933064992927383151569027915916164842208828590561007939361263404641334856330133582690778833683184758848997753838628941011499959578343611164770062179689763671165830155158527311054334081793482564601674068665434363439661552911549800875307708382536535424707773817467072484541381797077308499146222233277731976321172146126644951330998674782769960159015203962652605177196608131771852397416329906272047097955233859213629249188552781921579841276754711018727226452831963400311266002369128062668310708745251386520830971605546415981253444513153819279196612063741520313358806865065127719909437518696499220343757676554393558832936304864226929883351029945076073964959061902673614407619255050823757752405365409458005599759135405209774114679000507440246853484152283167474987262326284531807465940781640858819458678421732574920329227532842829670998511149115841365776223303289042329801791329028123571406348137882883457350930553761558581331333525832887709308507964374650855750590402471515122991689107635156565567926345637008690737984158180876292524266060693579510508075690057852378392082584657827797205590966255619361456165721157001070311602518481958329425423946453367294729470984881386148265987729372340524907425175709352887721181912042654893144916634415697452035395476708657158852609414619595388646976287121285153057462919736263778544666554115578874945065822850145618828179766183451985038618616599373747779308925563181478534982254945154381225551363548102757704288247809043654439307819565524804616419341458348007005347193263601723544766788516886966364221795156642811758618692959097734126385782323517306853664737904361161537025358840530920121116993028350710135833131657276921316983094257882685962729794310972086487124671805103598143412461419815341216713565878558652987282294384873639563660294316773053276011556300464181746293691974805958285395112679001815092351105512463896239494925425544445335811668828233242756622338070358524492874435416250422495361660593782706595352124437649472539316602474627978286608237267098314921011240393904608894000270439587777012950695799691099461815600954574114573819498954277831047041226216104833949895707912891698932791260243001731074846613063555943628895091666874185990227878108798585710571044512146689942951659072557432830767516554457609556319667102077265278289856251838587250140521146751358093989110546925848033547568094042866419681108443491592452984186553914564680399643557942229409997639876994072324454431501247783755658447515919044371704364829656903217872270285799319211834813129764270213578980042922375735726925110240416282592988736836850554434674170692670287633676902314499067630721500438641551613726059868608930405676041069559265125498831993423258132437518226984729246319979175252681650630486417748391337000328793538961013820846158087229793341486401079848714738314177855238185331564516580336123654772897671477182813860891014548712057008429360964006911053274145228310400624612204252858692732084326454905192099673573885334485084241933421016957919614471389914282609585379630152416124285431273657373018224997800485191622093495051633036964543303513044613352357679592803521521834599151664525644062620616872781946536390956131235801814690054989742458973774232154087479204461000499353869816228569772268270196836806266166699152722746436747975321192918936900852830747813209602547516236668183846947636613236530420118286036726712304891656004479282308849996938532588601264017774073032124941503038977314194564463958339152545281178418423709368741774023864827419110527034194841353290985833040978150908174861767152494869397702733710948838582414921566092746753493002377683243951915129993194249239620232619394507922140390031213899529184306592129327763712434969052817802590934174065042917183453295468780335829235730599871530421715891063777149309421632020862127854174901885588904730461614931808278450396970625128702494350621091158485024348846494774921479269348608565054987131857984362799447641129444432494025313722247239655433183089398421392195480142899249166046113643677415220403594039491983925776795774573807601156018730146064804276872334515003186637441066460316555286786691250060533455527743282380966705016715865967798153108103114902218813521638437680471310263948378748334010530549141423589075281592440248137886364239219548338151774817564311633915011418450015356492643757246051536542359819021826929872306296170746487786575079589073933207275125823051085596034310780199325815518268181206484915054823732226810861605358487293208165951535104882103480860453221467312589749245193980195425453379490496907353559136294140737886151310759131903684956846572268139525285403168562965361989145192396486818838829005395554479061034641949666887606990913267808018971527482438776618410750235848188648406762580221918684093317464805661045092925708408413865592046658504794692869934540632020113205599013829397605932249700404167843660073074229383585700337661402354669299133501673737466080813605605493493041186168994894248051436541277245569387989671007877729426900241125743149124307416668708171145623885304009234833960809188490713670777634447992952918136019259722955962794736605030960267939654402144881640639084207120117122939610472014778585968823095504430111481523515877264949650559154575719380044256889889876532376042130159790833240621235229485195093407498631266398369039097973948771508586933242712990861360504365445557808966270373802526389577951486457226698879566274912942504131141671784799610584775954041497614235489352034390215708934362624426109140230385296397934000119323969320024911155352849064077846875911271687065599388395262944948494640543457874283144231466395755256572433920367645691601529116618710209903912863713741886824826384069366620722742680616106324235581193143527051875966570313697076701111580484894710213585453845797424625238081040643630385119195761131435719472753762751112291999831101476207543784197022645153333175979314140264290777754496010104440115818156516445167054309338646988825299256431044487646302297354309271840317628816016884053178369080151403188925180024025258124451144439252717863611018761949450965227958812208022211301902662790168488331777444459379877689254864102767852432996435264795984796967437750913952476037976537086935683685202952817701861109531176700696882100814163662553103242718229375673101976720410777875812238265532033975467376191655195460800394231306336339274471990114430877505160339449581851412496773579637529108703462136541876784061483741326697928980239419295974341592492842267277775756592552672382588123499066371526643338912460807571140838513012901916907326338707348057920385795475443612880915303224342165192332673655480791324396014991966920294195053441024778256946344018230822106480407457261976026693383484545014052886267530764581308131488684012268733753784728439366649735698669085370801041912950832183138626927871488800190984272725527799180307414051553804337040757478701973976723650304195267534159199248647269761372411670412685553336079814194314143211634076104179281896888164946671611913500957874603439315257505542466151989399008758112657237610456800445828220835295819870331217079642647745111622105009112069752989610319187766417612299878448423296797537327194998631327023817404737172684170103650433017337194929275425637847641424187004115206792421614475322577691268534163530451137741635516956149929868995806193101155497033449902979337120670577482976973508638541650472448870838380061134188737618541813984595434201168306908871652158180431979567292797610852878348073200411936048663304326461918140667723775195731907666818040183605615440076626179110893938672812851873498511165971484933277104901948143381792144994084002515748399450807895109643790029823252829584158762201013806772920763650170818791509371152999943742212822255019315161425730130419491418715390920029021054075341027885138831248408883529383318322102650002679491955722728994684073135657200921468013027897323638934207931259604693355869385873398236972684583994329911602105781014882493582947402109188921734667129835723223221492600600346918409632992891041946810807992868213010149100839839882551906706108799919664537459865501980123268481365036828380076029900436415913032056798114596713446498480520248965671582897383322508192461341101487586173843403804664336686780430887924733209147163969296296389631349984394599934065306562617331825308035271111386166505047855193287854826118924589944514210873790655541708407390021389412059852439194922334898686758128685128782091485812774520092832330841138046707958225780333052227124530171871324681301718890663499443971817891343337680805820625724322263058289628907826151939235576500699470778117838749506028135643444653982760818422559074408345195442173292982128092953125644911820944995564539434405663545579743169128967929504505777646832015809329829308970431774321023930808384549353147831818725279836262140764389720760840897723068637536584706841775993711450332586176282770392040095809236412297417382820694549790032229569726033667966570883300930838968408936585721836189115444291062183279739709186274528414341666184631967381828859883320820160746157173749185664055302329785495375260795553560684520925103392748215113892021629389236445511012397051947649396722601218206278172832547236872841010056297065378678919094986784777716701947778173840909932204277659039710411130155478212975441784988625252076583455136161027781062845493385577755630973721898046065729143390589699710003974139245973175119119269791736555288781828109944345003840379207326408478061204134294856379178676409101288756792716029914353610420032677400376306384100324209510555493985109341818737295996536273800468236148458063173895236398641304433747022883351048586987519906217044074179252290415138107671368268821069044085386213225711758121020378277225792511315506951444467168645907621847255485257428605505650703368948516486754337272740746065113302351121412093587136319755457332306910302247178861974881732401699873994804506377731814316700110989354006751391603397603869820370673572850411516507196491465583841469683286242817902784788101615781315165190443116643324706016431527818227493191982257914918228072176588462578036758292476694556152306922226939049456638323634417863306667404748756081647609649387930141570215875277879166758112470403282415687565636267019812143482944188586948052638486475303354864372827915450520344531737944835801133054778310742802018181676663842106604056571303537705054275370698372432748550770610512016051878240380656609550561056000595454029448906793947261451807909594239489277008645170180598403183844381387973672237510117676475774843244496080253416353121751081089719408739722659631957972018199482242292828198404696066068304012396172413878679895915778279803709958047407340428935528006003542311239867973721866061927470510112463052106757668030679532621944799316044625949215356712106244737112084266110034525116745619988251669078290001639481326464483485852222747379639278270003514870057957727547566475755148593386166539444175269803420353621002125163298100738128223561904242261218837660935562845908058706662253227254292909597726889383291098953999586170249715956611420576084198929447605952746566070010535647542883334389680558279064401530955395037431036014207560826515305514823208369816897850616479846150475416186307250214910584428066963538176239521594890444206407682669018209156360080143000341834158111297714893425524396297144757957182465673514752541021402204649652751374431360757132733964731900455896283667317163133371032185379960530071027374601088911976672107365467583276453097656128339689196653852208244772857812215893810150825186261290367245529792271064176980560724850496434579011619702698744644652857922110618487232305868290627432286153257253296738495116074853043100161680828960473071142727672413142585901391625987546441420227854786947058561978982391306144287299277972358862587227039154573457233773527464902025880667542985670078046950300567544304798741510781233127081099954317501448545052778604142399232168164554479027286301998977450759251436961770160442995832962538681087963849872506636647466214761016088678929234486114948382399842272745556052713323724120766228054112249912628765876419855240350528974459468119607043238394623332589724080304904945401119804704056141641878761560602885222976511346063795974321122476795009892189604663252863316648310599586051507361889713687105865598967334198593844105991818290590820888682158314960476455369520222454698781955201713078642346793538073192311181381659187009117437141323803998812932217698978894470358913168969199441732560800732721188949593561466467556031521519524044799149552192031853558188953941368478666137596373190680039433235222866736528027687676945680995655996667299935659540791033825332104779265507501417622426218362086267377043946735281357370694735287831269355072468621385788674400428197339013017108776755579463154742923887351283514158178932111430462010278246507207153250981067374701210117417871936437458228002936496775603367035335613606824246414936719076117591828934232456208953819055968944837178296168491154331415924161556595936135053904477879197233594960448521876893834878450358528562553790568794372463973341536676879858127484427075265555423038211279731714769951684511711815659817731027291375289382659337043926480750737934310252828876186728737917771763624190457967874092400919140675324074076438708565357206349247606766227778420149669970340484255382835633020921912317709564325228467833498208684161518890306363835534947902210627337194644266436417499829516413335463268046435781641792441281855554068652382834914153942215898699609268202793354943357641950733752983943755090907266264779167539344560176621336179195848996422565372094395217520370932248500069498173734296591297707005243080872159361753131732679663753146321127915071914033770431947725815080189916002716546691340033058940305712734154176008480687441616507562813999027191961297799818293040211452299499108713626325971781717256132846881509358211925622898449067299102539728388771640049526184320803119559235266502527669651313351602227075533751064684928813591907858188280523965610739888635105317066578890807045694059327312782506416478462072144188151483152040162426435133452999710676877568047270197639294398314263223648360436899169542776072567121140490373295306606883433525453006249611942424000149684882760584856622912131650595191799685469920668780586221919795342765640270643842665157890253318968645277322212799731436626539055356477753297447207524051324377336950367615237014960599563836962412885556917079216432377173085780377793193920002912224751112727455541158141690226985161061140321405638149646228765779452626220094181442130353552427010844909203153481948972299974427685215856787711857126908384916237267413667575273545766181022819775690813227266234954017537444705354440460014726972340811505224336243593940488652940538360657565419139983719374502596652234211979269076133176910108278947483014923827795440293660137343197059305799780726533679699766773621479268718636790460433810736427813929812403865662047747579087014362922120639476699908855030689624078363570418228597113183073951446089597501287503717177290239602404437146224826972138322996176636046254074606386638513900412821215209545222385941384621739719273710984103791794449557990636605381020341712038642665238768947559742927575434068823008238390461995816632266464526357051162198976645559765595493436473743147808637900729126094552503762887650099451628510202465954959402617898704267146144992337381705541919068202713887558721000037102570672370087412185012504355460146831075732008214688426657999750529016912443397107407566057057381965769474653447831376058407411825093238513980555702406049486921163282456443767033403344691179032917581162649564417324329520589531315338100165592266799496531517298651381965339373076919368521799362214324302249200625247334368665211263252117039789192830643038741157229814657998346742724225215570876058939026932236086429849725348021541255787945545335606927665539953773185622140381446824606475532222081617496469885413844466463262665151112819330380628302701903455986133150798972378805831144781435623686391767165541765725159717695343859034053713279168756260796364128241495302813098871750732401619018160746614145622375771750654549643369089288467084263067959286201435880205330435006238103280744931028036819834806130563054679369717027808841360604576113631096125885483045113521998551420592374803881301614814298584373598724184038294866343125917574983114249864290571639229604129819758495610948101894095279665091868174108730740536804175614971122216445949486214665605549022946560504497233092778051554569092259361726984702369478498287005201986642508542998203576870153842746383067158405684066264515143039395119951554750806301320726445558099343534952397466284592117494968501912911366932520014331990970306264992843712915418448805551434739672746058620623706306795720097485055243709490425306592598591481857900421226369464826257591608661258263152950406983343876075684580540462554660580379539502514681842911935399212962097354490658183439839190816523435523804544144824662452136165830899134387729330763131053337491932314761339352640399573720353143446866164381976701838070591138990709862239534969041939062318270393487626365179514691515956563349360169386233492776705562224564880980694610132476959425436612121910310900545719775478836264199954262436228961218301391521847931279275805035321572473119080417924669239060163920177237954278980423398901615987583222917422893130247059268025412188142842754372059252914410556535428037388430062828011416479458503173937708083931505664152975612848261456639969659127254977377210033626935583211397755699199577802987642499714521930660772585423657516287818411777670831129897337792699571703832738040285332427296419919812230193807311312120432820198534679802384323605988239875575861844853051223732663965217475690432704241631645953074148477145929382132132413699100475424132044971345071330122156802967088619249593386947873281752591643654223786173202288350061553829288908296253879303369322802483926516575854657957220990931791711089864188207338813043066274895438610188796834210079074288901825215643113521588211890787210926728619935667457940541640671128075725879204293813309191342182621582018230909622471242259878826522342337955198406570043642708871848190201582052455046285440606763815105011147968730005665345955707941615316317088896028539157555971047334973517647877253275983587353600142847380290984023761267330966054554102832253799622929208151780075469481327397570302494129720476694658951829093510264955903588370903018745999197485133198074559446477891031074999424080106489309927585165165489751002221653694585985789563170446886153782890904267978045383274647801134994044639780973332271658646449760676038251087552391319281827828196655161945252119974368790377227453766045065596461763276302646227547091553003298984977740496955570372005151834962019799601154076057909206519240430307476833319799929272311794673486645815819051153863339251190387909613370688579911474067280829879814356222493106998798008466806837955173931654241939417365966433877960187402186974213446590423978323257766120601520387603931821296860723984978518709549843830453234057537456269484867988171092950979094442794028376370874550186659885292247294785743779586111802713723910939981760954891797115734356685744398900626588036700050955707668867582737896646787581002603106282256770746470823214621024123138055587078348458015673093962697343276743548935288434783640737643414623184148861322703932235229436533592361122559361050535824035803962333955047605039444156743222519271426297991596602826562234970596698758897629893211532899179114057388092761985111720038325455475372940474093426918762089152915643620284780671361644102943575056323766352442837230088508262022825380232413022239737901787570615803569898876178734180429727508031278363189694006251424596789444474053637077774894816508594668939257080954255208973431533331565629895550020225446487850607113880159314462153350950106432209606043151658090360608318718828740498183990759771964652426614050671151281807156590658657584238576133630898627109159912063036950178655441415964456040970779598959931586154840163968578745224622192286782121025185975414028987338951697666070429109290860243861189548193452845420720838952944872492611563423607759064126926788879973682839449199779945871695159516042448503569050753805359403043671939067289857760631451191425595052686052730834900044976579783882959430555256621891722477869833382696202153798263503361404318372338488119048229990748049171109169217048637322000933878980595891977235861512979873955699868109337678799550022266540012977349276456142110568129524175637108640153424801594317231901440313505189414840413505956679113580860518436871855297269723660504019668329472584737227172917738998171274609807858386730506478765580061615828224487641915063281202231562083731314249420507699053120076430274587948977531985653736418701621235199100512122526718846717290065454320553663768633591835542335908190405971859747759131126625603381626111361508083839567029680229084236722614463231228483711772388804213594243894442101311434707951058543134364407730184130554887983378737773508190086226235540091200066281156326459497296954883892676715910701131934177980103141569295437951082062276884158827854886248275311701492840640241925373647345727663693264446689107360276099632699516653724491587830632180168568569941719886539650370543714499761714427294572712294761061772601609033505809621062371282912602949679546417195794725941986727310777312570885559313612226407159496779024946061879490918395169624875708139404866340831102159880119546679257892346725680022920570903076545832683281774906776493672974508520270033420319175419981811988759978394135574059044976191964000783541047619594459979977724533315882029145882512351556229152744726907781018933377852402310055935199616715408111351191621291215498642851452117075976275010975455901399174842991400459242238394714969511858964606948090566539126482786261794693624925267264241678252656294836356921041894701394946932708733838347523147211264334388875497539759288281166395088520767436420820412864616067658897227230050466521243438284472348705582637484120219814709246538383236979364756355727216983715972966437858511148046086070252385920251021276791409270260901981711715733921634409007421262649368692908993057749295998502668750008650087478894176468364067159051711313725007321299986132898748286369396686062279789190269363926689026178386613441670226432861406788372527509476171821891112541927983363874616480795513531808685855916337726875598659590821127758393587793836917680619502399356350518100832095715379694959782041428669760770440948183455380985420884088159293680697589336327282395463815590786149072472565545862394315298487635039394417315829230680805752910874685066694336436901935623311247256690650703304577142024329987495532186417533875115200634547862666692067188944316308145451108823458129356810215297352080432797815068370431719848550067934475232010656071999615526027947550328875882499090279472569286226856643197110611761227238346289400279932233389221366724355538172996497921571698664773725460300041180848727940577448499064051840979728264481764616904245447671941781623273588117922065420339651420351001850367088943140183649172583199330399668378103057939697639775392718140382817199121781771690680799622324130988968709976397747356692977323269451526864568382397772993600333165653566606683574637143769339158028026499154515515652659583533155467679083899739171556963626721310781688245834340653343144965577914448176394266606145164948592846642581855745875388195794423956083708285661012191451436789452872936779676745433975055862618125062489080124956085748832469044076133828119730987211870085727780709234263159773306578379521354555455007310391315369419859179017078660247517550805202697436875238784891784240962487107598490944443006448537882096314646787962210227979374300951775323160811410901159257473831347632035669780051391023449656975756411278950232625404312921347980211629019747016073753677735611007449428898426124578869683314506043303425421000386847509566503495708810578965189150935546368701823423376960195421363493556535676398884363934492178659543167972675851770818734883542411634605475421939629008526296643157740991084005676921562154424943615153078348866578636653225911465119019913344763800599627808244223326846225445222133845188196293876863193054777589841826040103897602802532326183618880141369648405388980018628739213801755791805138317111050250334431125415756131618620060047059154014743647555610528067770440669707441435862011070888205912583234951961498253275944161153792190467958967766600499947142315125375964560007852168314887325173281543483854547922880236146958157123334044624224250563869829819616602610534938044060392827355462372971032542798693604464778719238144098847454871070237328431497563142248191503468269566334679366487974394570037061880259243082291124643991655039376460267431820856938052686740335895191860171854190057644008594561880064642994282369268136792178529760167079905003856068864484593853677724335721170567345024249092514941211910382870673088222153726551004537476241814469005932023057108821348384577437688654162507205831970796689275202209597650258121498348716665400285857552034712765944834525927764512160821743402840612880560264413793369944986123585285724865140148825284190410414256621353932019500974034938369506091627096049792867155359279511635350894509419171047809856561307149767676277754298670466330444119102069895151002335746651835307673567288171546464287809154909392094234468956222478535014125010800681592783539953436358995957549130457770837684640793449199510116946114642482909373254605788425332246509329035680314003232401320847433552183875573899617340522487514604066080013957279272861075597793646949673761585252241794725758740206807907783945100824213999233525479171942192537639266663102061171868611571937399095632611482013494226774823777263693545177160533343571106863384673544894518811281049733176085498152173762719794030242989057510459910230493671519364892541831200896161840011953685554815750430127069661565254327218154785383947133122900602959395929867770591036216249010928715633409669891260304460625878953136629855465985645126359730815394662686983881515123022650509126278983986513061533582610440005005941053538837763338367398440490916748058041517627549966662040252480783980076756764468952331066054099641809525067291592882839840823264255481000277617320964211778661571219907194078633551111199244396409883348999389790059926554847041653234414890091582178927115162224756433315051814996727221946378106766137803557945994213618293037772875686390537340816855221089984524503782434883538998285559432992117655216027875306961011981538894481947555851034988811343728164836934428099345397250293834195256506420915039718429450244447856082416355115858844601641752709892535518342274847664560657272941281707331795505596069476081424965361680942690557031207038186416494631547252375137743942954909627077238543820934639015922831535610054512004449947533015151670079867233952012826760887858991098930330927420628132845354283432902679672228945521891844183652351495932307568448703286182232674322702739187903024402413037693436135430834988113615508139871117450963663008731596403442145107292577452248404698838489459126772369204371135228147200661950600729479467764501872339442625958326910304486499737799665147133743472586806565546494789753689053533303827982301226986222574526575656545491901410603136979205847393067224475423772735985233050395072200263253314989673933169779887327342162002441802901117347933347505295948973322766065267629465244112588291050708829858478081911584701126604230896006682086981756504520640480549299827833209966714321560309823104421089981467660925985667648313152033276264191586616309806072414533546968110927712603081347818961601087999833732986316543255343699910168807106573533677899639307424689961045581767821070751287397289562062269635506208227097790914931556592319591103844427357125499223394707381582962286879823321495749384956398140985202780442488770574625459084794317992502395898760533816016065972033893003692430495324651332048382059238673714600921307135549056086980882358509657727607203322965837562421831949989790509487031371228085084395619877632325312409236053973713832401608606940716934669867762661587514967993753877750736921910236050625404667978536417454911064824802866093627393569165911421584161115975342848675468152366635275735631701753553935184952691823233443032373505136216987149014082694569013398430772400443524640746856646979872983371612599166075215710104374803861253287040649513496937831323376370562125800846168148139855860779761677064329222371499089364253828226118554169829450880718884620982047489633536436472972305254082073963893033224192303869109680320806980837299626474058624811425550630344254262001632947382014939783246805067960064379898037323451851886676448598349667685975882059544138795791377954696851861377975927814737383511476043731620695016396466021044870106329445925190391960149202264989521970838487212481241824467457947997047046375104237654231517730872249553242869242803037355867875089265156189135046293964113294536214302828934743016431558060585452856707080051226697879510580427615490682080628065997002234187899250635512043847787106753017036705319763854494682159575755610766103278136520026789409582842697567834363880057664867755144498800828791039038003047906637999864367969242206383686212328866024583872088044922398224605977642595891946272728670579384461551837097302262658721497374671222847209387248781536679314502203104790004846017847319423618127135504305298537112980223101500805748032324015904789350577492461142432354243516428791971904172715184507306442991032500338334866577857853838350658005425380418325487054654206653941620050924549379081851687675334159462057258425860860134649559191616432763255797766023933094052275833539343347258982013838483177950039100238803907549901797063046006711246462305864437798514087456684931637249655441750311107578201156851783285260033127312375000028463508596253506303941619932968463748003256143814210083856837025387890488282632631611107153830675760561841852829280589035333782218364889543835384294056159360095663274283544596757045529077422966773272512381614989882859613661461688247297652251590768487629320845417898597390989667588580704105762353120094917384764978018022204418545764329167485287738066535588141117940077391067902111175810012456120781381212705778790655568760423292935757435812651604354236550486728339609853165314355260506958834895504054570576904846164385780482570505300221727830339430155606207767961620506809866945947617298780286915309276782700983594338720333634245453559943282901634962683213189422271523366107579630103362952693910360558121594035241222506364012280856145699394764450758516448388165112356684075653412767314736923016048249656644280683073914216121427640429875545669536035982275687310526857958357215081615429246904664095025004177514129194575686227979955778611154528095032019470022569260305608333279414422025367103114876519560310849548754486300534981125722717798353508917299519166505697009610346754337091976247600518159575750320935388694152472282539868058019836309675886573203444611122324019070283640438457047878377149596673958592134018923232911640084959823217602586151830198989629076689685510062518033993296676905348441066245557811706380998176928953950052602693627965490549025149385333304815596807824252470815316454867770782006943005255997918655690496061338798478486081883802520239661676248024022074520388709369810463700572424005618075011180928792842088348394768871615655615201748803390749644939656830588968448504258262761583854390507335024183239506579948618034886415453669523986569398567114473872236167762824553024073731233272764972591847977996060887275356836049506478875963892529126416090776502971678756985938716288104996807321171318019714742939997914878593378283008675674494947030242659676810004851283194642518861359119469525535412691473475171844696929517695191517800611498000660593414697774633828711129820790827065501022615728642408802837425461621667023119471431132729702646582629076966246723961107702072803488663378750484520385884217292168199661015227216032273859547324641286442343774752502465386733569725955047199812833092125613526733594945403442854444684003703879860103442070039824159384164397544439476214200046655002816901274877916314588410275763326441903252425402872467838483844739556854859883927043811208183888100646877958786341740395263952582296511048966432690600048194492092265190942329313216626349719651344565543631121598920512391272878694897654599059636302534965549328869087163694383700807539450550563715277414582604668271752606299693396271484108223275009455747451461513695069640499844770794126560248410809299921074328010087249922310733735430798684485249893782146285454228890326922224225608733705715856659477351084848938852091879577695749332415207232532978380320146902834933678607601872178375182736653052881850680658675076332155335583182074554068755030569325368401680463054455319602581090755801925796765444482552665563642141590583655237395347204285933488631093430299256723718423766179701777284809827623055562505059923057319755299690345125433141344186634726325934309029329130275858162841253746590612506291386192394220575156395846277604992412490365503078514252181845587564976106659339780930513165410866241377104336517958520940118066131297662870087585407747090577453229673508358668734322051960508292985543553245971307839752370124367964029073486642497460307558389298483521442221662028243751915015251759395485409751669024323417039296349162555896391261099649559813088363237063017944096149535283546012606384219253112566337433857676091186300199697533016965068688082206410411751134979942885024666246092145733952520239452880612838059031687462448788932059065397358582392973494152696165185622047298992588923711370752621977538222350951233780939546763203831714212049826468737440673516275848507674714980968111336169066904695597830111254636243306042674230102845808690119242401666255503650563589146074725758655041763428410829838780686821221633868667953357441766181542401422603191797643146665700496605863385234587344309108014279101747210015981548954540980718727468921324743863849403943666084338972263032109388591901965900520809270677499062899276337634173845053054288017934265257331336972696187094066631418297844963452325677951522209779972611362952609343000387540646780868309578129832901218012391839491991312239515297254424652359724303453804641209646943713381643839095379532528948091153223149554229657006515583479540082581792583674179052219371236269075470908448699163893840000479831026042440312688567900443621929893819194517631754364176142515482092396990061617526400415043456448489308315040912900984593822656948956319089687072086785987044844046175832740957272175679797523951727877105590519571884931703342654739671743942325618362369466334116651247498105031630099035726765622081399629161775449649817011455757720829095259950288458534498227777693824771989970139895656531360305860390465514725457152717261456669268896460079663795346822362340894729848152677201173447747749118152534007921445200649786240563291518201191038077573196949183134189716351654283482039455875310983085106130265032314290729167594234118419114844244750772085454419611608250081815598845132929539962683890462065718844578359729878156265990796394771057476237714591650510506896305237649494528181324496531239891413317203338638218744636692039952645710096555403476212069202359055721653155937260509683050933380451365740027518266078871220501566558376670559607317739132713780312395491966339548028009574672902000045414134973182961040616277494648230939244357883360638865738045399157123932324328185456086617503896221351022776133781738009178090997325416687450376382930622130832500121212931761920727779337468287572874626082566999290402110205759038402503452072501162251707576944435573587350691509156152531357855151286671701325452257727763894903991101091878623757534971463192319903403042934883383968519422581191201262514607281382615548586277127574108819899793437869071546534267672886941073550938837974614147393183110910633925129528504523088905410284379364047921116275981705604905946525200123077821310489655172221611652680732159578729078126235559827995893395046003026441899417173622507090414245871838053136513499545482817922379510681406374637092783497332044475046601672568263812242868760362957272939308669830093714670995555589097930718004983786662053843985206538447387458789691781615861856472882790060186037257925023685049189687985903951837169258717389439156392138484467984280352397087177288065833650371077190952271109256420149363258972972848045560061395862367962973661367346017421741940729584415717767670759411893139145075687000525517766296170251998979189085600846839712331143190846772881385955016735180669629843436526759645069882751993396043036309055585628480870570748583458488986979963795582460450798015428447645404125108487063141459435526255710179338574068686605528548265588798457079164585039643780066744599221685005582132178915142402445865237560871324294489661742481847177666447893255229483947289525552709864462299450162153181240648009520369696415633890243186442611879459017105398092776011795206809192148316747382574394126458629594127145835401735628898581145434783848591222204012602577477308873561748933959915338862815074618812241266245598173218334272804526008422836388615215405608512490263400985228577741492534184005392357656611404161180569370436603872580244683753459100867826604994545613889612047417755672840351439007722880126962810195162680956767605846942438533280564563823024011958566008186010353053583552559417432831224078462522138198295722184564133760734760186377731041987905329794612799135820151995228413055903585320748793790357024134344793862300697833904377488675225753549462306897494715971770983755211942230309738871762087419015066012076363794555540180344971669624567917721382129018752569384561589545834307157331355468334018013876758290792969052414983220978624478577456978301427624991417396466625065852288421270508773888623002686581640640057994067032185885210304389281510804054179115058696260056579749671702485070066142884592360029347621457297015676393187144943961269551889586108127529230429193826775063624209194341244674889401262714019310108986462630451964320723238542744982349629736828951627548521724476626461786562682398587634786801747082655705858703401632908266871235009671574550348657950806529893795547459442117921755803957481651823530870550765100690559767144581562954112856730802459578407773365168155660578266245848476328746775111985662285997612799330042551995981407618208967137235125847499900275247237216658266524768046700519269851611206828167321030802877245480445700368891333695873289746563516827759212988381614328547960823244784638075733610754739619207838538121430354039557378207257649744018011186628762214887539693928605924851226690218190133337545377369924724713654362802550076003003443293144113240819148107014183713577816747607629752829781415306082356427714671432447510282658258740380497978410736295090319448861430030745553014410718136963715295237895179003273591316723304002277599912106022592269591952369672868524543239023020136427617941660593751563678727620230798173614396947333653292473969134685319943585633927323891720781438682789012768701556436975342105192463439291727529156573877906754248909676499361940285491723281215659485994620707516991854490501762172290598222792080253565000645483091164863360989116972347811011930276361642664162367488102755544409470464481435082071039616064102471905849041724457761050288363637900268768749507989936897651579992994862889956171470360031032438775214796846511049434247591738371710296027277183379458016666218869668575052908145462041257536466358543584807747695605399480952003284449626096570781329253920418926690048387386605411474631074242979389828885184609926075317263395811268018207466045506268344939229519902282979603298891383428907037491130927963948228174901560694219401805845647710423673050377542520844024658742385073566785899797393163333737513943551208931812660247612222955687773529755377265871359026728434322293093684411209109095610051347924349158088119567879173708635202383034231959585599356353258376192514961493985081689905650412124169130002646327123289750594420565894791691318289718986586150757783721527955941082879245133658327118822208841657285312961986035113191018229817592897398914292062708492098266538882839738316862302434563763758840352796087683300249783953366346375077614396248547565130899774260416264054407743347230979995998809674394544775985942095671882753588246535672853768989131443197891229410500765524730382756603026524249003498652405184553804506645889357051584286548979498625340087288302308731558647350798102235897386192994945915368480235887548237695945997871962176603476702380966748936926624729501617384658593428673788924729098928052128838087183078873546726261287200316836512706442386961591636239296110640220836904628473713603951829460188938987658036551376585105680829193589615443881669856526762554342154855190599700287324761279889513738620528040657556304841791921319228115701020431146868886844067424055372057091584993893254187616880769518482706826001076314855647921481288639623720713381420752911654432657110502407339334590914366084654802610310133074965545337341502450410459976364124345868447117030385547590269861770009290888096824788227695160604892597329931767173358654364768994247268324248526287787909360962422244731651807954325925880298972337442580718547155834823551801810324924053083330597553450336944364373182533674231036926564126233023328106700532479416044533601397598074535266147774652507629314125736960720484382913085688002386702383697529016613933988524698031939961269356678846454085533388664537181981982454019436067973941814155760308112082032466789563364729267134186974866108666066707991993374660621295251450956607657318619302645314488168097434561480044816704565922043724451202630871883605986238697397231671710265186046272951827202978529160288651814391285274237565225477594553336316897190964201015513039556044947584521175286166712658693282964752435411650963908571130606789515918817843581843373220584002140908226917852163712840339569162158804221827667764884108949913557274602523736279167217540617261565295617843112069954451609391426535244060530767163394374143844123153671274123744723257502703535638088362870825695943859547352129449503749506805354241840191496432670231408278184247472295896088066440216085839680886317444703631753565271152664185271314851147986319267626625217525502606444105320736180614224486166713216937299912683062832870140644337214952000073415077330411312078594698106086533753316692431707955790073978072395272252177664084780802792410550554264053210659965275305589723475183585289891111010782653891385186876094755401841600683514228550933236546790658805142201934897945770099953947374458869508639357563121162950350410560329172911843594974485607760543087150261650144419865794297574101701417909988080373195328440575234099716852486868922888987392450611660355978499117850721259499090005042914709659940515358756570491537061615808567425452227626030747980368618119755708312778637808697052585722280170776916144508539038784936668467683475140489890090920754872562536267395829394850092008500653546874353506093713480282823856681822224833514889177251006897700978307828612595908447406384965725001818075517960829167987325120235682806481810524853422458629696983287971653681254454602169457588499884795499323940235668860894342273588478892448705864495646458513419537629200415648582477441088638729913138285224613424579955184138631334344166934095193728601792590717878245418513703602795527751193421396460117786467527223581591807216862752315219876203108572800081610347704835291280796846326268303000794875479693812006628893884202219188869624263821664521846357441375025080710502897209834250064582590200018586779555289197805004827466644936884814979815896646589935423965161821958911790032013068203441472989805055716698515763788431331810989111428871531518552058107124896831043514548821765779976561664921379002559079140257625582580023757939869902861138581740233091854855269399795598284275193588344795920010840595332488139367034719588992900778793680656713700468379461443249725980422652732180020887517552685177344702240546553389576129803653327049236227621506486254452327446359649611725704398119264690347067446449494359930048837569327356268978582354809065717850640067342632466085053448210419192945319385954299063333815685160207016295920082871555173013815443118452499102050249354103955366149964181893972086706411560562821674250346054466840239770748686897739662997827805121265147384415206687694292104753848675474634258647814258416886535428122894659903129186234144371383385850438160329588142821143772588049211456540976678332036820062321689865817969085648614386066002287544838238574716713682542083083659458123343817453841846070703835057572920826725795443038191566564255868568875053777994682278118688952079887569784355396754077702282080681878103168175609550047079160601348665468057361545582862497288313339569940439006284852915537914253953821380777299810196334761713459318311404997360195683521560804553888322079541218819332027084168746854442210291968391803770474439086477145163809220705563235492751475851134102783867042414986487685020457194833546000979144873062061528789247871013591490840583511048401493515124834791236386979487794256606139636761426951267207603117615099755412444534637699221812301982268847320106518831838443313753457736057301079716844636457318082249604387040460515449719494492774053489055846578886840513509865816875779434210271982670043924628535645402578760443826024096555823480862876012285482674850395785878466295785054800536949158452719624471547370990865591861367253650698052395671471069721487380101105367068527411692560517306639899167306000801759137261044790706240525449782629954812487186639656288288188096104431108412423532263964936192633886241241621773055414787765137079071150643269002858239560412760589821750118031119895386612888361001383128945139712501262163416678668139526793702965145381626679350394809257719911751028914885025790372633348189599402517210327861378004188895271729179574646449591855470041698984990470571977823223430051166786030595654130866811236477879024537913091805923217333662003315445817601656216127298670779536658432694096209863137933218034834193239336420347585729280380896126448157936147750912248506694768870964384486053530622429099207418536885278224958136386165382742424134487680524881665777846264242416752716361688905407591301065488846825543938568899561721600118946721235691257949133451589470036605331286998025348000120446305649038455717753372367954353743070804434107210739438398007367129315350340328688700071626289078849555484560194530235926407016195524819853356016949907394635729895905304075538865207329129117162658437135534047439824920389405938226701809415755770311925481362037693027512046564306918903585109194525584179618738313294378058921794731920278453989724733821357035327683776446577235317471662782292850091385941648026595804699091607213830135331838069496376101328878441859242490502986653536970279737151003536757256010317426413144335681213003919539884253711197905574760032082527527918991315723014451453090544104988701163933975666328104353985209279968279425057003745437766199444702164064709590063775095485681306649271119091687355641918085154885530398108467712036322551370340531051925082332999724407161498519769943062046151108221680061343163232393817531104517282675559744498676741737581727859600356569258297507410172334061358743840232812441907460878965556991580184052761008267785376038457985260395263788497412525500784454575106704374191752508269333214725985373947806648451174540271353624865045144449421621228151161400970635752961124625966282642295137647853435183209624794040479556065956834858497523241132278523032819082631959989081152017749944547403411774141530744903314477327216344039937556139665468407661774831047746490177071271345045171007642219513440102372435925937868683046658049110231602039564922759663364626071441708799680836429577944005613021303924844892273895972122062160756340260412614963968636234615693156433836808298562003556840265128684861856961385264736162361657986652162389980615390629675917409168558875932634937384119348765907569203485836407416343899837415605744311020652676730343667395262558250562467574910515324146978717237876880909939677748471669512929473279922952885302690377521065665340447144568482683447236291099160037159578720820404233542513187446796085291257360240809808527896558188637443035074294479613486837068433595902664927029610355516252202490164879443389792323136887251729024328295481075588303720521269302660078980640647530240363645358896017113558596014920970275806126059721937456839805459596496965258050554078807367330163279822346912762211928070668133571637529345432661592278955165778075883965741142553447846252950469405861310293195169742330147882748885060832187951552557051156345305667918094215215112391733609561754922711888494097547799948942517142798935625002257049890812340355998254492487386397944437741517911231944785796013579038022653107680181765139022875457162341184087637151793514296011103782617112274483177781177075987715925290274043746950195341230004304850481357940272880970996660707086769928321110384442203105740825850773050555206863616563498386118378894097740402677359666888822007245022274398600132424409916682580055432211727990546644730060620575071414980215331552605102735319274850170982339138584180397299758086674294477204044438540071493411378659507941876313978460346322292845367476500396529480516149826909658142665344888223930760293756284579265078365544275244611079751583715012148309371769813263452906800864498613153319280626047307010920727032868614237922818829751292216182960424240720750214594387065515624467762084627714060400124424862120175812493399587384880079728480087809262147318439569187127555700806912154729162818133877594270727884335241918606901161076226500689285134686489505078343755138363732099427801813992804138189127347236865321512240567676439411081975759666017779821930951407757997187618458096732857551070468989991484326174086554520170078600844113874810269901054890779830984180850423964455209033896659945152481515597320306289091650358872697944607733977352795472693029660143303981756777025138433085302918286127644366436190471181846019174534529110818867182208478898391881861106479441132665394102991375721366068560259919699069355011004396764800796398158448423189505072019011371910706500528432420750495042719367894487691680410684929605258388846987721841626219129713971702557749791677564788269086438653881475754631176226004478129450888632334436820230891426470546071775260148658796404393749720311409406892717189211656492826147692903521582839669764958395209973589682820522718767121902605621549745624242390328628275925371356830244177294376870465559792164069217201356314526612395328571640418833521245400779707006614941055581660368911881385995726473151825369498837878450004942144562194343182271361069663960702775688658568206934970088041840054181295560949060472555034590130959589806192250923393508528248990403746937317864567162098875417146837755779774134331709426999566088999172874703993990255136451155886131405548857205937961740939172521756186323379172529032830730127046161474931110526742112819146954376714068666531954188510556736712050581238881968882069804164476084339283897207282272914733860942316515501571521185066064116501301794611339473082500451067657186124052144333523546320811810363253751091749969234597572106185527180320339449654969067368853882002901625601141238076495735340641612785774981007320370742054185918378645601088828310326155651645710079206680592007945086901727039365991734599169477879513142465456127369931963877715665726660919257975117010405785510499944478352074886391131038189383784084946147054248114285854744245616691702797895625710096227890782896805610286338870741297208853493238000898070947113016952266660678066154904124836706329139193370878819488380610011288631250459348015577395673466906142497445806072838368207960447213950280739112441346429541675278612853076892432358841120720118972662600987677443346662407320076136318826725544210414489959706433439687850265977003583505454157168869107177488044188176395593536886548079642571938889214283298700169456565156189348879633207627960208560058605839029113829186988693051044659479683445610417174466416905577947383788510684368963781968240791237135022955520138632412480868049818670879427161505293306177745595378623647650347700767911256106337017620154731919081993327004461041231400886890601708542773920008172850385708954419284668031033154527637835292642748643095982848650943270210717273245701510626380492023177774484131346754495377708567410591848562205716064306010393198201036132587124178207943211552198952414086639001880622375568337033645731062334656093669723585295009834866078403740010659313379202901679713483606243368437072560017185935132987220110393661541183370945513645775647566180135145123598461890612072139101627128311261198124049058256135299035000440013367313318246478292646882305151400252836837853515448883477487377789886284924578066902734903596371207323478037212577000108786926276604235842097742257704157121142965302775288883221030698677705368423668177118347941438233389933357238821548315735291611474602352597838523710705876927976405199809243620754537876148860771520592145652495290979315962064796675059644315893591695664291227725839321950612567293261217510459800777707649609296858697418709196724250118422336828550080427397209520315082283681211030927056207311304219990687464868931807876992207002516392853176601681969953279404482546691536740400181154719791235048682493279143585316311142853068608925949551387194810449818453359587822169860752761392241459857813699140834461605337243275932452745844076608742365605444735642837207903531553504048977416715408929103138230585799474892981249676710261772177636173554673893414297221375418431339666523650634301755477424141216338165981279863886603068811782667767867534377371802802430645240391597362236876008848540978759664263115204576763615171133867039937105721589508913026653904364458576083931146439762610163189120685680587436846335899579011084818073380148349918866555973840984453538970546955702835611070378142701721212188631644536280954261233591342343140025770835164433514420899285334874164599097127422638641675931457206157737243882509839368681222282675616160518564065137247330831710325432873319989230553265347366083400466184210301665826288234265028802269260356616970275848306884555937642013620449955092553331084292519761040069396105835970845046800542149075499024451382942271011726917688095595015125887200683785906343785097946729929331809956139189219203382548602569409009468477937029643814642317306309572033124201547587139744317244435505710624382575629083251657643549479304901114532958933557710358040048221556610903362140570886178734281470841036400929452008113519358708574860332819992190725191300015346162211628776488977349990797735661449009692441642970228039889212453485018795735023677392429115154479156778456748466400280708480673870399043269160109284378732072394816042405700916583232923912435791920778420906494541895385434635433459816343245166034229412120464048415351946024306926911936414637293586963862207863961900263795436881409252489143042840910338843248814776726982429954698676591043078405333254665479485692243786438296967046828093816039787995830823918374346158156774929176732691237319842589355270492141345823011770263983904581704069874158964157999616582898466524304345708307682120409266577211235289789684047292661074553827760338715715308371349747928331564595642469598465815188410091476048041344220741311876219628025998365172325446325517492193177676599977179806064952040569990003932872389494902356241143103254438301599010236295008577652024975607342510990512576426736964921260831273153243250945051970435332316496680157872191611962863504653442679882102611158604129907713742245300697047618725004674946238771839003941265055173011464763669980439767274718515710250799732395622363444685779342891402791684441516029012978743614610753581042498387486948788796323692287401186197969307135062274895857648333488996697678666729763236443729041714762798264451636520706671715990173339127349248950278357253364945427233736075971834836055055053278921644208910516426810701868003479812893673127783309665660423791102212695787744797357435667046728389997031487011628111336987095862544567040393869113320196295962283981311113904975167636982475255121637769207083412528243347503075998483813241367452706898577993768513999743791818086801941085963454853236683774136576122302163819873033454357930702689129378538499857545045399769129964918491205920121261157180500652243635692086859632629360794509344990720070433677899095269671846734798122337766693285930656044682075738990493642824673400861774681145966102258485066945666137670741331661380107252252935138027853116754528135502981739959629132461586218166485742396062468963905257948848501954895933662598747578896530391711776854925609918093886839352868313469780521048877308025290913935599775773052877536184640896626753366773109259018205130650728466241164434135697421196540762985705313603698700925692400898958524917716229317238648644164040152217156945656478129854470599775507611775285617380044428455093104678110107795176240987877051238539155385558647995031619011325494565002803183022780143823320187932447051958393916400729119060847429132378128536606378046554368903983214395023827011614841779787178491836542211538810571526064588642698134430878810254432426046221811157494392095289599812806694572833137443746527613953223564258600011996901128680055293260906100650326290539423904168143034090612230074384145554711953916927583258279680791714963095669983439326326510203445906923872857025899408341156251131260321278405101054989454941963031681832803708451384279651826140370715202140950950994514760371671961705855593985504000908448445087160587074406980641914138281899426090861897781425114888912552805178124358186490510903126240753812490669992912719658100803200865224304304137775604283452187062302069139489384928959353805854910878269599796718828730482687188585926048495579989191469187785225967571477335846312187387121445758470364916093402376876070229623640387858786344512372268890701827215271415416457920470132139743816709056017024385022041258983005415311954803259636310376045006571864087760950921014062601277283336436258100154041651343853964324497480374823430832420865544906642721767412053045052020764606432647475215160730197787030363680414747339007739704906248835831371636158588838590165081059311437289615483179405258615009023643537002273933245588113684865776391455901110744017462276467782477170790987474404340253826654349911520909549927222021276211011774782655158826889045813302379147546899011358437281670962899942184984447153796503803224722412551860812683896397946477674567171040636449316881155880181976696043334389833178143794380080559012537761842319610610581196566602352996377395764894293757465186795754440255211103885421678521218591915753956877125769624874073829662884558573714011103830727486514304855756974916513355573013705370336673116643740278403459718043622381942255439465449103807214693049667286246198097951734047363517994055436441717170708895557832076984452897018162690514869296724769113895131199479360495440921590606655471467321443233586412024732679988304086338507328723037625366421308194597102467140487762899500030226845321904228138112627235668945796600981364436144870505862123364571721726727685976223115264207980230254203648888006853056248494155715061044141779050496879922841282207774393095023270607046287834916897019012997968056075705139633876545920777264361515138218766961289659467605979906385929427810857799434224580970016342695834006692900170247327214176295261838210176099395623095368844737127065416134563442807826961632133417678122432186716888025860162040440248780191354765780919423825450414730784720867687149744690332304641451376696944002548913212616934926052549399373458974624663030040372482269529789431971489053684827861112293108798269475640116605337510597161162739008115672023714696693371976210202542591567064585926852674919579062136448092161596316401385600507705982469538434471252071536736024941945663114050519730465058525857943207173707664921911721258418369812372201362018715864364295123082221944026734428100928067699334144073198828866612035670644054116634661823173061660251584871431540310253667311875466089123507903776389734761758205151951889645917244556885605110722951951075401472055924344541261577450219730806121764603841960880534073215126429280293673800400318234580917513839526258786133588365399548010647199879807627715707488073848292404983702478379664650809124146912923318045662871839995683534373426557759236388963428845823046695926427030244508581188744670173561620043269331399397831095712489240574957626743933108574087684986904551248498060778449700622987624191035081881647384669970644124182077027533691126738035371345007595782551416858898626698704651928851015764870157439403741426543287873337152372966802910367449152915263835854386712677719080229241253369730064964184197496257586125320983895181461539483477174711452089166233027588292169465194219328687198209408154288141737091581810900333106940046973560276489979530126016533473698886447784282717929960644705315774652874508973291085320219183888102930003609915357783167449063142582272060022421277128775261307082241733142865945901231378855016935270966346617336402400774736379374039631309637452635314097850361646586193588147584661558793763075714024026586831181367360061371573183729832022723217646953689867439042964571260325184911660525010114532538062211065366643484309938705984577894106003047995490790547210747110616995718248016509236463850240820820004965642154155545867656548298185431740629612786839321813823781229176046538166328036945236534137777489446908065849243425633789082402750105658301479768293916883164096150224556242083489437234235989273077408232793796880697939140851526638219810082152034277293462200048367788828282574365703306906080343564084561768561979182018033765658267727628955350581303676164711114090456320433008745646342901665321890434611475012423369078086855190322088978134809896865680120915476750863616486816899688246974315194931988131946186788659128232581352684654037439212659007436366243709800449410188946797833547720572222591373620956436697564393519760331416993583060406259796549070752235797584142906824329577614242086149474912607959478457170025323856237239139222398382449382791512399100544334563914599151087245276051225398145152929586927311369387970181110769487850160320689059835407717226336360497124795667060803129598189217997253917335351828214149386231526550746931581340145992953175390125155134633518365670254194943165539760107082493486327214596028674007107241551854473818237894389719289477314800171149232027892259675139928036024603382469436399626986299912419393686221589169106736955068513841292749854989830372872490344236466068206815302492485824456071247660296115481117779892021716151196639389564867456668252311405341204142822302596299970871227818654179807308496324833071964348587106908557531696783379362080370443871849481098959658882850554302006479929142904959379129185825021202127721324535009484730086048107736812210368612249863043657368839246547428828845116910084522256477097026724997883897389465121104679081096250256222285271412023078310214404370272690036491489137834256613493527439427747877837128422983586304447199250402652282032024880755206857563408736985589657016919824550441624841650097181174222871217580957782466444288585549948792503688278352054869890862071817432704995629940263455884221836180444700389723983052897662199407074139893543413613507725789053701607173333949045411368660650127449643711292623679236222394142544446550534043854777627762070644964253632705418562413561466083066944954053591757827623555122866963584743099596454992945311694149603390630361873860198672386714058291370664649378107294795606160710720003498433897703855246111516889965428487164079082250505941743940758594673625550201619822977659580623914332341314081260622073549049414078302372860983112948720206398794270561634280651830182721597731009417645858811399093301495277442053204414509239558065965303857532650162523227956290734349389933161280834962487408925937521430990099655796787919408910152113969297784544070997892036742627197176095895140544573947797283048829039274578013423137797332351554938387054725373374967665204435636609547763987235244489625328431885300601379759939902464666183484774988404444264946961906910676795104902804097673120543358289050966425092322946396958249010480017233148489595680283618332820358022878262280020880382595497285263770027166937352846306911806319672386878127927169718336606548586415088942449563852110436934675450210940528751409664166608497753068868696191628249502823394340583915941311100103171690735464578394567719341494989032509111849431441058433627479565838764426215870324196758751507602781454780890934063399529962554838858959745084867663351854859993842518981448269283368861489937755935033150380875666281635744881681296318624175351093357191046951285475012574580321543751749646457250817264789576887236762514490801529240705141404751569776297648403764643701990269477569604758580826346566314582082432517639253842454063777908034651460620965635176408385430858419727530713665042997189716910172942094584884105147199676318519784708188640167420690399007682285659097351008836620120657468968693609731802810118289342005436315913712116520216901829371983356530221096762864279837270835224178094122268770115547693526542037489505248269264809073660834920080311171749202670245829343350178975960695064829213782826587803080445995752162846617194903045236296239555192721201786097068696493080336379057722045419760020395964691929973885759341590119876834429266447518283382859311540865241221604882027409202788563665190103052311043100140542587449672560913721339637876324298378919625073392974606757367069252730047127637622235310453587674085164096063296987714975381271070069288407930389144054136411173078256503363845457810830614659751833250021685181029555315109618812319941380804902716236762814361742168309936797984666885397242497558545804408410645924783494932587271957232406066529652498654525372950403730866721140346722688194695803694516217415705211471811592499180313210691658804287987307052964172013773834197608725834986865583172703324289031650670709995720249949406329803306026357752687302137064081654620492332907540541344887448592519106379618811356602182636413247045438734120641778832569521428962588796707715054658871670239391775177677433997458287734948019956758872361206419753756184125072925580798246717091462166985392465711294976753015273309874376109787661295023113893794497700421818968675508708140686725704019582509141688661988904010712657563387396603722265219765146246176999899212868624920704366438804559876168807544059047575668189824039915325564312267350676152183740682094190598093541040671894639501325658516753107907473744117727939830367881136389457657454102453274129407271364084129271844369096276022645523785297059420174976805898010255122930889786002159880851324183674830135276740404108191595412932533333670467035920821373394284453091341844865113809556547268663381202054408390299594996919166215424393507908502307028401058225600113502154364583465048864086255202274173279725724592539286106120874848199620147124346682838734494449974208586982243772994639789323347423820035925047889691274902547211851263711065652128283212946122696785467616868972063657601676605215984769782272118511953744598401668884328428086861137436287896017370177788776070389465180524968320187500384896518693140819428576760582700143188411659032368454482875997279368317619660255219009337705746102162573384916945178033997320173688034005153219556798481131430294417961315483823618253309577954970923925744870310931283672785148870464312000947446387684982726585564285726980235204440253661780422357348162171453070764532578957961142954404502203760209476978358909396513745050786443094696997430201426172728227051714787916781650796242250620130459438193234511042355563310100579735011844740178538915788025457499162536567794240997658880898921970277148302753732097732129166237183528587401973374452922252953934829263987165433794986626403311118709778987458925852182236459723342696022679259589319177094471915475773317049785426899641910556192214974739633575876221564549136831543477450469377919302190418441675578556805498231233921074696278287985624297865611414470299747283892792445121480745169485469905409223232752086899278632159385019493963313910006118260012397757013068710458240316755172615978544169189399292820596142732987497008240332187309994394261205358259076669153031515114368913127662566679316223755340492052072234217058868832241832047265268558030623201823500613648501420481403297353596050078672510306319302997118100941492286662558068875049943597840619739365115549278317498184496071237585560450889884346063097594574907337124486394405162290732478780923829638935585057306955125846705106566115211065651074277056967437967081799856297805547485073688115786149964331268320420743506343246687192583485275142949090296471730395563586710173405395519883820801024566188077964130290433236403297149291260463549754330583134212114381269293212355409392506473605286750051414176516509620091346274001961449806367430074493703889270895842018124900094818756875395830755041552227677082125809700362492319887079555418241781410974548562053596513730284959508133304112549385134538446494759180339459979391149158435742401176021594794563486931259889556897420473765897127285267817790743888700869801186526876918229983478736840593566169403100094116619756609498620160116728676706891586897229966204934685759628639739371119904928909210388984854749185632169186434185139946167603009674345307321828687977351004639680181163178959262048396702810932462569107476923967051559806535996011036549984615968928794880264479822636400908559056709071884351476355503097379353219708941562672788780599049056135685527985407754521522557256069771775237003666341242635822748852758927924437464708331970489059819888495047959884730107146541322686807187829871794257620138485484119631237028026199278919558208096289622115964654771920355363657280981764100874543513023627248322061811521272517708187363620061818909956310640326471437306356456603805750338854651120999528207662431060744695108898883162930616588789354592250592212508037550603753579163451854536504249576738559526240918725641404239185630269813129678179881472119822446767815653979364181734485135549548438394085266970890207908689024262006066107134487351729023005223129568812153167405977449187204621522033975585772821766738606786329324335472228914003216146402313943028479791876985656197148450883677132941511832400032044465559389738609008515826873489569930739278102089017519140461128202607759922768681887878537362122116568912152581932154102199067934030287235143753399349022000901990896319123866844192685398767930490356586249966711344972426000031159336158659354954079347168121937419516561825555594423428113467089990467468930785438372523757342037538110499727442016996152790542016407902503565645247192769475568998668547877894528005101809668768854863365191745659989495674305028601345548102484502729717007760754401988233043887932479934205973010703536668536703744481826656873676328866400435872389908743867194101164907512573091261809121956471868445750826729409025907546559911911459920230321742861298920859492975952187028727379069093569552064027342401000902542811736261420546780212675711224188684325131856330992605680765766105771117356142977075360363989876891435230589060120523550516041460842427020463684991648211452793818953684033946904180221847396908946934452622033342235418146086734603787655790813193027764948892691569296069695201528181318899654150611896324898442527271276054259931053211062277518460473874080115669916996550053233376836780857817705059891988499172232540490700061071186972234863543066458403614582306435042657798597762642332207556402470483194319903005510515034764577768026798325338789369592248804096667650469030811395871519403475027856251376889296053096310820892656997620307746545432954215181058704689714749346384559695394443939507478739184647927701233892618006894142725694404343352118971197865497673344537073568384897613536980569512409966646560374785121636597863438851757876926023943298794776618171622600731424246881071633952150438750833026524539362818229269592785855830909901804144536232921665019833231885271676317890408455565730117460838969887650327216800112619737871429056959955350429787650932414957219441904938121625997685669576577867291662596017806727132633457808017137200071414209791309489631580549858428523192100031507404687711337209937398565488193244167504884914114191180980400405573812427999123759703257209664871941735457300808032833497619765600182953004972209430178217676406853077714645561571464226986513900934057010610036862706092890858408976050929783135918943586527997389855050004749810682444389809072106333251056845907416862032858842119123716140094636297985584151026413645390753666847209054764175921844184252287723097994430933652050041785403787106702935346149077536350910007765508770599418082860946134270578166926552940897959108177619122329848250227636801011939123247243147798435530129430032803127949066909324066931693696906392962630442133903152265868863688494472828693730739643350601214256967446881739244716677859412329783299197480249456632788356533890981350806090268550174952328685134601384712044626716941538543231236397068700113521112025878427638839904821015571303640286654719622919797450212815551045352009914090573554537465251157824773088750701770066338578786369372176550468084206865478001876491613419709857945671164136311485770642222269097882925130437186012266190414219399894754878883626267923247366116861018002739708658404157623698573816221823752601056712599574587070854489396019518713091200180693596327561538209122598052078908539738869798699132761974115630294242206377838968851899972432157327243757262818211771388254278927211203745515759919795019978989210946777559949832980957167040152025454047302324702806637778756081499741625170100046791689062241905778749668455626333710041842342034032318130779793544443344041197102293836021814910708775248211797992189350765723490175332311576228455290790779321025461864210995130627775809744959809144198645449058281155897631261717504248678309958543558382731803711593549176223539909841469895233607346212744485052635529321059429269206358763146759119493146992857003680178527030076947747045475557874707407349898499883117791258501921801354936005251121570370467861103592688290739842748243235532038604304816661036918227977253813386320069799507624166801843202356558507007157077026053136668978413994745612977526639475755324578960834085766776929630315920363867156977312837923972014419750260101382227581913811313559631838582332505716877567208516892578728153203594913280360644523166054013752860312063173854184947387422128712649864216321415865319728393074113762430184137999293511323700744279629999939094752835045234257882184315875801951728072750510414092802529327412342055362020404356423174924693562997784770944782833103490399480314323866463931418724766748528599139727675315906173375514716653512820834990254178421167186519396164048909164541954736731360776382628116416449136614284547027805380884983276408828266883707724285162740461698729183364236285433847413524153896399705535125091836344824649584547328620697490831519902066320515025907434935047539360961650747127318280946286960446258037734912805529468374428639643985870508883624981195286606997861342069453340283791161374665095097484487491065175452436698930465972748110241669275332432000368284962313562732503446500054466679692178821756239739029364780751195862200513971752877623818176355815391185046737852465832022192812915756693008349917684646690688949741566572544986950148507120201529415229073359662361511871790977516611908420001543349802474434676736351623430278975163634002139892916574486798669444267082206228144917575104093990580148632388755231984153583071005245331482809971756385501037518636257478458068318939072559988930771550625160231664031713152764048541724285961344783946270100515317352631259092236650033913177347339348129810096105669173350690451845817499567555023720188028657854752185574005696668799402984163383766864076805695366416034413593531946937761280799891443614134578040188883837418644615622721500773052976228622100677989951923528956520060270788388444343064539994282197083033759007722390527189845074171686339245427697839635426012854916313480925556590580809707532769907263900812450469603845249231445010173783688630436566574064233703679108405796938196991402257546090483361311491255353199433782210751088332024797893574902801104124040674673947750865629048291675398771505690580736047659232781679608218944319546973569262461127843120173995364153847497879861379930632414615851094181059191031693725801420509254662584228350896750206974150005362271800743046228564592708354196776700982884925957944659159071347125162324308519913625047854091586560205028478196644770359069312019323497958470459820751575867742053990592503939165701241189735807032821808939626999192611684338906695494800865786075030024491526647583782184704795224678652472056692506507156901877712963783892002368608997815038587360156889656935722783032665459382780868511748476571937494730317419269605880936261776607884083286973332981454993127495040134705638617499561878536438703454667348185514927875333666245593713284157022096109884370959253322478113845533308062792761511045799628977939737771344210479117025351564397988232370758669353594037032323520250426569491311186115787801757936504807652165182954256731112247336647267165166853652237766975747333329095324925162090886367196375047253008721041873903463863266195322726810551519417723539311031688997045320628836955227282545540815197612018066324243336375265990154173211552050860096236985295441982884345001664885225584274987209220749573967778604507316144742569231364589840525394754689710093498627070517506875657894567847612823846195403778130035287865910113110560816321963498609495650476002837782239059444433483997598921825509413657141340387521889902196525210708970550359138677161592857868379680543160067006684340477160829524651647286584849627998353034209190712194683479917189069769957889576219559048031416142594903230473800299907597161665768302897059929120117143839685511938883954904802259466901570282434772740550761704004408388343913095337055710733628096156155858069396942172417082563451289897522859135115874212748623763022709824792993544908313466033350513211305171704193539467673850182339404990816721282149744670577690872981552065124671360400196407866739127136467644906015816986148144305349278315822283125414270656746637746632846949566822214570930761466163333468601238873803249379026251773274248969211424645201107041055705742008595441664451791166593791924021545502483652835226899163279259758947521058564006661559514124035881348144622134558053257841792683528162804444750325206586879019202510065979086393790032440860128173304044859072204158585249577360558227566290159006013471765507698542118707290079587377188567019390214882665440544264507496379495898513626031138275403470082554442922295784010043782857626882667363556427438133889695492695888523053646205470774508188210744952748990344136091421624071947625465648108397632112325790894444557810857638645254148751864859410990917618836687175956083908095222602154317542609236499140588908082053613356452278175157082764335465902809897789197425676489093715586728376494222330677425879686841419523322401506411308234963413169590935721866612065122743330696190990479634572075701342298603741313075775980226409963726344735465083326620804088279675364015708148027492394730425232035217796456233471468174852806850507172374999315133871522925733177223252583297637655060022290701077995092705196433043925199705327543275530701192915555472190060555328318342265287070787608897167257137747167210421180029229956809354907135817694081629244505098580950690611085153081943079820683950197912840125549767750445778660558728709236156157499574268514161115192861893263713975205871639500730626530222891426027630445886541603856503878460485746886046364505161405710481366009864139201463237326903849995596117000851555729304277681331179804209896272179441403849139466281289972350486893939420212690494420210702311110982325702611743056727534540998932217602367590576144162727700963463973466755454470393919672040341385759733235392036948034638382051873281999434236777078163953140099324033905653309311562710487923273079194942700112497270876631009739114455190202881235196065345539342966538832577638201115272912788290848428576344492556367053856860934945211414751039830161965904212760438208208717607099814408796488960236284478695772802901234870248502213845134033524101003098349054605539857591594066784550744582826929869771955471938323941862477394406003726433558742745285811599081363830892789417269030294474945478933188538268975837734192179838617641441493062536754388571716509567107229806590302798753158948616820068770851707596104364202817505068685928317991579472249500689734278423077562266262724996169695807205815847365508687061425131224046175365255691402101862298541125111121547286798514384208059358357747994472258656966116786003281517135562852136798946590981004869130615126522624406155024975667757697761738791124787712362266213307829204382393790322489439406602842912623729607074232359071358110418029719688951227931143093450106382742450109780013454877928865974147875018817480534790216467137583577971260797448752397597099186434893423835847079837192827795611318388207952363223952216352309715316715477365494349913050917101905812765125673883505192210754467061239677042914660911345510632866812097985919277930357431111373544997996917110827164197156726887041696938294892619955151170315409697001909576092074373497723737988087341008250862999170871945069569035366554791780290003685823881908539074477562396432823781572388634532887041802462461016531865866915782931290722825093450933471785969144660036424173373733313890044056811088123690659824278487819294686748490943087558108503616665084816979655913933207632486485495613205696548730005555454154826104183564948348816117816515417691807919079935857228220002336075306949803076338142654360477137110000496163358373585913794752035670975380268224658430172505673492516648520910476828891320818892825636882679546215086302738669771179609390454480671348086427967005950307719041523353681106663111240818863535563413485156052262468624985390937915594793465440072166287427162002982105772887347938301324690113500252002652317728074734410840736995729779795892866959465098976856271999124161333515564349209504834837934089970764763544490922072549814710560108718628424305878341136094945163415125191020961059541393909502127337078428636643233715935395918757851129014771565739080520958385839810922885770885758551816760598903450200812097116460841857425754373213517195437998848171672051388933639654216732995993237073804585729495915156372123943658566588355125787121759843002083428728272440291172918037293716470171487637801690633991930322633594444260282947577326934833568221645669150076375304800803070585469838151443136007474196138961736483688179752193481733634150968043288218279517317946176507173041921810885982408205770381307537855467624008099437049575869016937116075961033157539100198004081654979440258509614136880023096496713523432765156981286191048828695421577325301862771221297506796003657208075026380616420319003827484832471122796936078896452157499599896368665525730889696645609081407581865162118572658900098481278142705650266099579089532683723338170441286578499017767389921193618734603906954369213494859774261178238565593923283504534412258642101981976701104402431888895265756717886236101645291231212940856412057178448344991686219103473059819732917198118153783930640303029067125318865017847980577374203020626271941119899646127207579573377854485383298783473997269732944373575640113457037173328167963604535776552646456722347133033946322081488916877678756980431402649832405779262997113534629093162567566445658674578015104822875490134593890112584146886145204187643103611098090302080300183324562062512547948166018658222301563897928113198882812362268463423133887518718132447222622860356619056164749507652915874129153188986433603658257894875963213187868396352458496870341389836728308602307420303780415754813846603207629897728111529246191087524680760843305371512991630025024974937245917427562557774360796124930878402880817103566588290390975242052481865942087677908413266051829806918868049784853601195039440556784486842034044301897991953929593151980949123289564592887906318185483944125278200895758569332989789680394518630102624191984855096936849894107629204558379676670137894773169594379615234921222878081809076698523160892765615003049747012659463918700778798775905834178127720332486023505286677268572055195609552523688465689724874050875440965024496432209240823092764606434857737354384068663744918705125051650380595213756988761603933482113840967360021730996420346004931254924964067401717757828857008241992162972631737312564346992507107374987564174445157167900861606721474363898774866344674925623977912331303167501748908893637014726847232511240344568667800723211440422190089804141483675216548243521377204994199622686835757050952066925780724075766459819683508376889765932186114019840358091720624323996914307043405201760127846238108756151777985103079846852351771646871272966813308591876451748976564496143994679484172660260554319406305549485723850499338638351294717323557324804269386815316722736362365285231739978368939645002436468291665749360965464325750196542876006282692530463192402256766777124985136314140815889487297877846027729449472038977824848254954684402137560496251513403575263925542883243825309720918354514395659048034472386909507262775473553241181538135787445812095662241349741344578601634244061929310935670597598394807796512556301750677058403812466239605345043605548484738691791268413487179136116873455601813760638428302474191113644233071852628644641548822784917210260191580977544213624352394454576265376369740853443199418699446155426392353394151463351140681107148548905814796125607137108091272055690478728097335480766857135944444427972542374403274943108345699117982685495839408672901264789966696378212008493036410752779678475846856220266118891762273990439699841681702726867198951301958933029085817714242049529670361893423743717161179395605129552952223329407514675358186351062733427044191266194968303577522365694635251024597379414964457757635161927876046174987505895707715058288183088466104491157274765383582555526031209675978769417526429902838626145023947982898092873487137265768511701367588578391110529816468230458008783772193034689993612540683868835141253542037663833161072739517912307204293741402749683589532554028562541034096370714338571904538646965776936367441605273643980446994616939145361976877647589466899569999689915701627095111675388605700910276253378316336571332416363608111130306261637121120718513424363425955567002362957439698837071071194057465510001600482900346356612274971217852373073895968880925898658608952839054559584586012399927472657559853972733732223530551787504909876783286979069401345226667660486478279170781520116265725564242496576673814434231221270356757124802540852182480593177880842353609641534103182519582634605796943676170663798503658388087305329058411203506541150748280066235443778077082234638516904477165515462317007206775010403446495791270313593316368737400901358816652772594318836669229763533705499591292549198909109840217451724493600724984144786267102756598302331515346355364403333891000411427443900106665087092216200598203375939342008544728255383495430970545153954761180686735670424149948969788786897552605359018675937384848089173253739350203550998804189330301444828572421560703466170773980472224843081016336400940587226129927271330410670155816066163617690573320765304659487484960052379693724396801594712365525810604006696221814960324656191919216233359955158249995286704915694185332263417149735780602163018320019957963433433709168764612261114361663346151563750457582549643296928824364391220503405330772069358580774779073027370044317448253327896127932837181128272792473143764567774596926410397255505510158262676647627536220316160701738331459045782688952607841634243269243848057547494521133019131824549426754694575844939165813332209257840876502824218330212073193833930219653652311964181006753502260455046561592080310291546511199014018402116315386403961083916267252704947085967967550367178923367944397837755505852568128375899893771668473558506041185770793592550959179506545369830018203142461628108233264460662862663973722390581617500968068092360966053213234629863821008317747630665145450668128575881841234861896816931065242809908749586669730509835749307694737609188962930990467780862747337964413858540203369960549164314137681032975602132889667373784056344937206132668636119568707622947673730869327583466715735322496355312954534749827620694361506154755568683608079277053640450566198615709294471204904719884920321109681575491973587912179396066644966896925714755044962787615953217396853525076625589127437417491889092582689982977464624081823162833163948048593569343036997829690030858213540716041465829259005919646598446456671443555856903706545890475814894339527372784884289468145880861120927274161340075179857482707613502182210899111606441655159319853094699483766759529037341244395986458956067982120445459854117291706399424900513825016868614275810339395231061104248886817375498526264915326302033306647253589841154034490628837637668077355180550346486608759443601867343665741086637302430955355533578826683127584785714461501782550809528505384433708393145645163989429588931038510251484712116620220515893198174768749366349326940640284278488823634505693342828142298059024542006976935104073243031090271955770118214158912800249452385073875173862278912456636129055093389277105554798833817915228490102288999244174474448500403070702913233478864773077404409624097941407137155370246391300738468676934075085834427930485758681104636717418754194909645629806509851543648364343280630996301813844260789475804207453530973282448115316172566967222051415755629408630203411334302052103368056508160067121127022902279298117278996493212389242602851753392361903949225034101934418778658104599677183556625037253046849634063845817648149533196351090563049175923134410532663820783589381989621760301050742059567916912224318738537148036603254692699677886932689341315930598918812983938402143545303657250739767160663749333301407047982354962879474330714064175122437516624435441946304642808894484060048837801655232232142274107929501587408205318238746324063766175158991965900701366476744955951946337008654765944933163688664350018482774261117908230542491787617272320825843533359834775145736645587535183129974644952357490832037119468479962776799159362111399083037201948714020230083789715478342793356723774266619050236334357028472783049491814552707104180614749317526236271153036822847487643859534599606863193413475764822629930248819699231611483839580359171656941035086868678577297249626370064976133342272439384111968862760567051349362473788358214711974838917429436055023361364120776796930335604278732240159628621463553373143853417870446244802069785982146034270958030417440163833596425838641500952568223747551344602678261463623769595070769999812768203123653376865034263093387881424553267438180089864949611858018357642619131740494020776209177536585149900924793222583821465822345669739511777904580204305421244039647332649438105269765700963926202301004624968539367098770406773963906753170730068782838012832979794518330231943840842041285831506611017907763341915130873433815565213913870993280545038663980222012193771177349515297971999836672886593330290811724851262955591698144485960969067034227096291150953992984156896245507663408243174302030385185821979308920803934053146832593132458586420316984505556925564296064516201637422350870755371809352307153181503723725967166529536791442376182806313570303674985310731177457137252545870917380462375288775705363904685721880140985321083015414517566222256775294229958347480444785990475627322271659967290793236288790889662299940426756618412598548279457812422368256242712291844594344420757899057414894975619200315868023445337652772455649658695471958930066532933301160258625123149087515570471490394797326670893850131191898047873575016378237491044368422111752947881119057333630564763021088716544421298106550546960505978187373260748406731847922210482281081001782291817143753339217736228502596970453821742805070820173464107371660932626113133603876062583352176114791604267318601713972291388554488173005854907096216730523748800740060030578278419276442901300734085729164825591111532213463302750068772276467935446033066383814612992746801350367150944512803673037020749915037095686141516851854975008956115545957029672522178775088311742198606568774026121802979490605479615959988841123146304659630202215025630644044321066780195505721335210054115751772183753943747316383632369399303891513957263116027399315030755560049211211334200983410667015428651907317664388860268386366802097195565807689453982382034969993048994016487145678047057974624764682888875453134021023193549340038728385700948503639218355539688585515817508577999370422370036289697766332052805517022366824133275716739759394407274513208228818044331710108280398133566755167003057126201943622569381011342046747882916031419179900455081447519437002191715377248998947878502192965307118199623851797194015036634399255923650784391724270742805293609349468311328945832114995411033817285188215548186154445811452232509811575052307215849969748201345009836628993598933148667687112528304636074322219734751869099989057196649085661227981397797417299854770399796954548205158223898860507193469082916586567105848343612883530241763628724590953247741821335240908854366059627836488208076364593176277998237242661852739789044372081496651642669408438826950971393466396603734565439563299862518646835584890917710225008398541974001265480339632235846497122619920662042377704898265169010706216589324045992934526684046574668386604506925795075176788951916340030959777261733827856068166234617581524385420512256927495496145449770287685026957959056620331175397189130473616380243740586700875785923644924587744879044990154463114003672367965721221517097847154169875527383463682132417175508642258791517580025621360253741589725408595713437387703715864262915271297175768073726351325142842054602687768766595471970350271273950675545313368504503035511365095802203050804932922255795194652106253848759810750011743866467951529007106638840814144873025322270127066074465776911141082393297909904619412759188046220296679899117702388837765513577749568665726676177101963663985491467357958974423970693022359615921158696085781858770258111819848853042677069900678876876122057511598575660244658589814155844985584822749325886328708494061143917103014988285210708235434345910702371374515226075449256946522136387998926810016622251924151311954947818752161752672261988880254578927471410850146187831982089061232471201622371938621136174681006704624824452203705771065045680016739991696708981852551710372863819814179714153332065864588336410212164169096729847273564411338965976242568584217803905104372995132720824167316177689176917724516269347564695066368429099708656795391861919932341248431379918775773465520216981130631539262064438765302267284276454287257225651978361307461422924202409632900690610698919048899486604489470177457603405353461312118895152280741875123383986187000387313160912102967338340486043368904989419087666467178832838377301237173332486798536590578960206063565244463105869807433536304327291809694259394376413094953510435554462025219593538381297940629907111663768526542764297095475053536913370984874062481655501952963066740178759813005966942122262634369832481507870893237942851888979747938795198754589162857678521122220787665735562235762711919108899302989344014792090494419631650514173893039243561965092262249585104172245752628609319169006112318589329268446637015902306683495423243823054360628848311530768656259571422933476926110707996987169272691753213756251362919133733017739818279341657569628457306774048585492839481139154634266464899414733851241131153656766176868783930530436102011510453345063926293066673039572962635372855007588293446956762342488365274065224695807368084569902419911482351976899813505721641205765392876248783894110628032841043636879060562273449482162065387775081827886719602810477638521284320446697166815144219260773807029959478300023074008208478214927784494702028802292379575902303719282661006421542537247360825765031612508220768228335328032155402413292682796456640314133179979749124932071337364073246175590903239656673365273122742144296971075635109338863966168248918986262956165593343196157040540328347693572446146457919458604306668975535619494252473431205283346712268574975992544761911242714761610669643243169826623908964927903677871010377326402951217621404875236864671741130070237587594807639523393160513797363111882618742647476614404027956030058196789480900923147783647284796478155930963249526059307166828630419792802611931530642147202081438671004891247906118800196789179667789608022727813430026293915516224222885094894611704303668073264487052399979280619078372393109554873571708130401383596484118548241328106646458518604944392701755431185754983893575012713689371838480867859230686651668656506714148289835556465901576569330461362147681891616421235670809979233841515544595846616559410702890014487649225011676784270057926882075550792649881500578887844355263096897762724716892899468666339289261661556770702516263288762766969835542002491003944859879972593009955968463987073110981438400198062996697157643471129005844107344683052522530578044196767316410484042092405009885305210212396708171037445614186699170348144793250743059622243210366499456511249051818729684846191613286570449381677945729758059805233455329360058829628948870655797188103125467012479576823708121848996254920511128611278311454960459276515019641969821271169682258348588333605881880635595434712620787194644355842314283688350731004805884128105656137682761843665429857788785901844300470140023584062279242186552104748517949298913212745345937534180920607195414323246027975789949546676279796851434896989735388919487154824289173504348994130139256766796634941401038413090055802923536123909193252962630579847911002593938830318401095079115275440136783477369600590454436334878097626619311039834926523222999675519607388369931730072420726553708328326736036672156860814853626180662243946305184596817367780435640597840445583472160654513801055680806708067158163327433347005344239801806954987022873573862859691989250794164655900883326530195254663417143280271149226482728152705328181115095886132838968596881351651557860833536319165550397635034684920366180585734652240904866805827313941146508008900144709843436520480214046953087150916517391382429654145458051676621543545031532306146614876089890512546009510315006309913585795066184008311513120846835960837175600900902280781426634725477482292642777036485168028793252439844951387113846144230191902434346614038771098443158036191831964161256752539357482153828207253064083475511294426415451417256105291094287268199475657578721040173487742982106359536200609288743522137208232928731550444704193634690479046232910589120430856181203707860003466395975861189780928650200287404006615040149110479589045773473916821054819078436026263013472172772201333688066514510420657233681845777445089134918279097262068030778371805394226559650427531986172526646774788973862750267981169294404093077115001177569411915334709734269217328932000040359202345010993077778051434463623820642840943068945931432924492276766399010347907776836070362095651341263951477672467474474426809627709105079309338029755802918686275439984107014439698130875268369477705470417818779265792122832198641785120368218694100736879149061188497291758280317237195633953753959199145348822513267613814264964234180095407298962755312268898279486399063976250511346301518945129159823168636594913129708233072432478352311311639823579249923063415078013825453098244451920732802606142085840421612369004436554587836287245204714200097999369183911672063468162446763389430632220969969562375114104662186673413781810265152270980618445010750467153357362187048488645475390105783525847279870659419525268942701795272259524940510660888681567107001693764714796474973470459864154670283039129547963377572759108842973498830146449014120981307842986378574707117351099682735342415701618240977210867230748776521259559350324462226594521782196823487245883436248239357995566814125305656358052485730643433825445152426252960737038220171505701846622498856083769886372792420365940803345181130265924744087421756380757243977308292646319334109168641357102987882897925344753296329348301359131654016241871255168258410973228731367394852217276174219995363112634086701470026275037747573792855728732077681041581580627057614482141774712002761284699063035434054467982830878380222619709077385388185165366423528186313205686675400890474679034290364765400184458840308084132998517916220086587556672746010690722824234154889899749252483226557689521298597768211123306894870679135037374650069539181821105493259606395774961472368304504524654687573561344510265306202692818420824898269726005817319385905060955512686161720510181250476070573752621797330568296805614569359246996893950471399378116209012915538053661414932579253008570082825863036140011731771298547595089594729119028233549838654501417896076258637472861454411291893515715828532355084346733156119781504666855090268671558478116802502515131037310411441748702752019433054879940424239575801579557704572292219041748290914016599477133661270243579291344135007358071060198807263574891485870277746325655009720329707246603289996172499734138832585210792261521190245201682346864037828143779636015336846372534203196858895003667153614627709999282812089625544153708851613274691537117709006234933043966760504256161065076549237858045823413388793810987269811528407880900248509609277952849988830864058663272614015367854263674669313037310578849168200704900914981427356259147242030764780529552043917030966150350164527410933255119017432534076251336591047679875539028209270958980809207947467102551769100537835188487287010070243484742184382254466303323004386186960319202704583329763737151506367810824703791251407857873526953097809767203793402211777020688836509392984655444431787544955588889018352003638986530471792534997870193307901752979433003368600655821259081049202156983837190928085235759048968106730875313893069564736621492449425076062145158698157989016482107677937592395111187472588041095975468133881124954993503654154504374154290235103547110404221865649002658907601791457224909607338188204022643897600325447754785747331012714107664284874701491820567721469055635041402328731750137762021774553851155989431744871436919281723320568005662512602820507228541425217680193815725791990697974709635493835403519049965870047386546925725104828650663123446883506841277535309467437488157565215118442338529017197559842850963735927796022087457754809125795206514213890451790993664375800793838661928910543702516781270316949350746223367427668029073507836294635578719778949996675874280063211249522816990759921475310471853430247265866990877975439590029071382045554529112671506179304718937374515079763553671509694194230528959265069021257165900353952380684115807500874103735176631010420320697069812461304006086605751294369222079320363691892054560489563606918004193688013907966867282683451389074636385446825826587354154645713466092130078154751265455857382549459388307501565513774009357807144048501615157602835954018862702647390779250404001644108928008178293022664518447290882913559793169869107128855508841426203562833983207617736034171992574223962437015827356557920004650385896515063759721158868625998851706212468944207449389449502273699919881410580285720840347294347142387399869250870924269202137124972929722135734687786894841116802963878128887508791110492509060071637253891158102826302897703967209667881845866378856047212007421269874164939945126505751905302157154215698583999707003259459072065585438844297688797981269224504294964559482581659145209145957534361072391004529198213988749887597021067904458175760481160562539034711464087647999499014596280890127543491163139352114787392973207481373728267258374428588929500470592428780785154961520954932723759442170038675458475363309491708534342282291575325543200477912963284799929987125828396134019011463327238927985035660757786158075312321714064217441746929160862289870305963205971026672468851131422644955570212813804280452176763196485158546209379780216088357243244475031986437357909519233288011667946405747278899891311808245161248732866777630050981337570671515552293894356352756937153221331817134063520155804011531602659594351074948401088685396562926942323124015334152584976346251677837854007781906074705944646914309702939235944595748233742968718182698589212708166791955617950412935045619509260146027891137536854474919387269329730411519641066909117560609009077242301386983606479500812317389218524609574312014999526818534229170229966629896246428393712105676722173212515958745209412934866713312900421249975092338102239463578208196418620223102503012593619277273118681648315125917879657045728192146967644964826329180645742695569652650064603144526395609081788213316698258440193968593339009495950917622162995205008627594085084137595569728365667833515428252043057021093282770524405711073268512314303797325653341163682463246223831798796537894849800072291731237679273130282621785110587080115491028712065859197326599463415007327578168505149638647412668319102717713276983705024300077836755130684916472257572901441271098966689124160102444391614845652917158061696675425299204500929877878751992261466622339406809001659285794042316844614357656973954714916413658952677606190181627769365808859927143410486663948714298506158120737699294654201132190226682085220490669233378721578695237140690291010910995692438670110337507396056779586156424893156151620700319425964174320546248808687148991133759597556259495716386473943183490975018177436256594472794735742335171541513612264784547224259190545911715471071256396378485020530578698941755323990106888972901322168762036732632906341721722546699642836311292920626706959951699099674724549517674464496770737098952391786628900953563440356638312646610723235513259783352660725844303992935025862980766625370682191878773560203630816920260487138581116173155424388238633417388060051826864935446434458385968490689616550958995960861830142962585887210475150865641521284536179622070171537571795412810820797030248763615676680092944268635700057155361095472204531614854596374769230208055410310102634358655255148081068697740543678018671148025703430071971484727300335290022486752650510943584824067311822422449685847609247532625912187640158482234127259805680572891568883632681807152986104392719935917893461473112236941698295809484106202346670671222395397178006154279982439929683192657495216694785042467151661268378311637396000292699401291606799164904112197534346470331680259582701449007118499893148058455987393967359226263993928616248547961385720184395955396490905757968827409750047096741977403200667176153393853788479817252364964043536947734299978109729532420311258341992408766599514538718178594313863935800134679530572564191608029243568414696052694426362112043380083623948450690253264320457213341703618374573148519805955208012300353014160136494028573670665673981857027788113714972409054403813301524960770678977453116517307859541047541031920746724864683574139919163569525054692657510575068176030373046701345434431738200149752372578485496921331946990370406253070362754307580300174664418218824176153962592261748383347036631378702898765927272595396573278135060502850028027913532200641817704483409772571039884740838497572916154715121422073983492608906623878779321497069803581315864166685336420522885841675397937880648024284838535736425752201723980447567372174562699032706797362584143435203431853615709500514039036548481286338838247194700131439541036823327307886873293293678702893617147540953147490261296120042314333941893225654012538271538455084992644363547093921128778847106311306325291936358905242556969776026408744994132695248291694135757454991596337979493340374273045322779111906803007583898952896999911630653107419284449535368017915182381678419253172057751124099060322591366379031487357349429256465153520955209077649225358866348403198460303078110187808201759934551822105587340813800644181952547192488126970883223762302921125544259153126252409637739172456839792450741716266149599903928676096449561458518376725394998233421263587650062696596975320378719789303656967409310728861769890110444101777798490262487436687284434355510506046659641487531842591230096659857992434041453430378361478387007522704132413209149482191969774069449307328859972978339546322102415680954292007176204914300779617930157007956460480420258612699533365140849898141530829567692954381528569615599036934204833136044050338922254937540755009860298728761760412669725545053893071889303003266493380430442979595696574467709080984354141776942022301463929384589367285167247909841196525201900714408064843216520052788623229168564074519383804075497339227190573757931443655406189584343987888634079723605644071876476066527930705180367341063205707582762858589209023832051221417523593146306559438440625306408122688908295317265105258961401165271172157293199069184774827720709403604358381024326909379959048155085775621900767718204743380457271939690634185512839056828517552563112330199147370078097314834969937339283136859973381887810518667057304681399114093608128221140885216380685353588769514262355857975082582418994032831844464031870754991741678265705099676901646118513009656486164168512158714917951174552357563384458884285190703241609928402234900066297350826397429623375257736499540135344722516277375096890776101335143127859379647754453190505289693600146336713810595783891873076628250704198631870132014059440105018491849750297066354600474176401118552245575657669513474561160863248369376275670068906339037380304174004118618170395925561556454358851454386979063261110690075120717005116699840993611896104046983813875194817439967688711132053148323632636724565697966086571731520821719839776557587199349341331964198708543645994335503621976632644721003147408885108462583309508488850929455026991162444569617356395805559684888324905518796047077641453058779814822959509288172785825613428505009440214895896916360550438212775290043135894850267007682775012593213892225119252094197251824794041823422333260371815549458125218066809872096618528787008885902051590076971690804656453911768917704047650309400786925787622332555416059608233252914836737168998960512997420464999929511163107902090469741269730306377025647657286641382992234229581561260668892760375902322340816999346922860660671812247202551349430262066410246971643385079879910316608660915782069124258656233821398171901625854983727870805591304570565731238344095944220998510168701743054598617218664094226914730523957587708659605689536283571310808622492545064768234776486004626102778612927002924221736052229818904282462430540909741464488388096393430574459769237891262588130520471766081773439505788104390705052477100372132654162720948853348207507181149187452333688119928243861759277465500529484099719503276294629391932898844245010700191112671963102971665142193073416743228881442680449385492251152660592964187748043399295834378076878440591118135226089175332738346775589903215710627809569082962279750728791759088313392521269314329532522159893396589424569378309411506511626960739335559380536975860987439752548418331241226807737501724667276871096357150099251779820452585215836572803279339267959992918564523500714643956027339509958751377048777195178820743729224895447017072887587938552536237573140335158824471312840610467820121902921646315378673198792620187518413661321345695758694610574822035347426345339981727691221375921998052861340992477466668539063626316092918636862213105625920987610428466605452932547719907808838595812646513424017733133636493316343656431387342530528778980723950963691549028592878889673880344458211398292471094879197899003234400646306104479059619301358478608690361408191765277490159922854048169109835155980998739547302690956866166576412244122823123976192934470136728362502153786793703951117588244745227925078581173042043099515152844549168522798971132257006349223428972523414823562861376423739238463222758918101202891794889799494590736034328762887772287535022957421751685401764159015038438999361287008201079282337120991818860888083237185282444406158023628478709922074463035784528817252036903647312583230238332153820712699508892274344750883991771109824416390994925681747174329357191075176727407188951110756104416342537502469784797525659990646599994194363393271612513346309106526362140330230640236718597924818540294247912768955400361936645986585129543709218624819633426317795836275622006105996059321298468664877899527752228778561697597416019387693277847534797115830152890925619444629580709450691644666254559986694503491522737955249963587997095051595605570269011879626882982632158266107075078136408328733556571272596851867550788917525674294824005736090212452537297845111073438951940852078316419248673962265919124569025989490854623645683242685063379286404845307199249421686115971198015032586203655540191505736007228487786839083649935549018695994780401920093160545460414464991014486371514588851525264337197658858229284422277870887589575572858712499372460904621452530126566747559391475525348282811879509569854669960593985299353192976808637204674596089610753855505937187799960392019785505490119392237924663104984396797679689077320047142348984160656408471407400714321657518483561613858659407280264725412896547791481511412450725355943288424814661587640549927990357328968618241515584085896496470304905332240248116270788857532743737397010711014763234897408718588681243793624962030040426817931280227913150083295090483744699631246321894756283473487157574656863622970795802947109328246505212529907697263675588145788679488232794775784454446309674305583984152698185338771081066575956512751626754065379778466448244089401834962763318703214907539629763458539619972420543749047869476480870322692276258739970219017660772494111202287193374518544872217760511396445942582013518899737055231601577815867382958120468784583131865063979783756041362552339015527563759474392122897790835242609889929668622807632495007006730385885812164066174608723050181388079974058455546366240271862043795800440516287095627465947686619860053801474950895378150749494141456687838588559719185389199419923699132258455883259649200144333247473998487115354041033402895522042301296297203079680623708979922828421061973000122404133808627894813858050287197352259865802856992476903701089063371353439172010518995663904920308898143409141778091899495080807005667792212339167386252281239780057720819826901143484982831705682455391700175685235196918681383005227078046148820168283842713615881372612691567845978779088021990586272028901376211485049004829139798843895571818799067767594903060739552175282929887653327066545239459787677846788906646994336032188372952167832348665268587000026223266188551175071111280972658074266180038603125667735651242714260719790843207769994255571226685543290504037377543277273493159907888256571632810642480368972161665995088872715864153970704925135461094808139069117420473421821167528610377956142086307212638873198794099740059650977267806496153991867881856200757212452181340190180159532051575574782864413118463369884365123771592048460564574797741900697853527322558643511257230236870128976695034281270312773554071903392131123901572144993722064223200360203301734191159799321407719101827000286126401888888778334986143725059362995725776750744343847288905533474950850054472789606606840154791316680106708599961155218279654996248986053180548562983821324999135507338747173846043060174441989547197141459782731385673573799379280523707741798031879511124064008111317068472912520203367119033671411427926335639446029027070402325807128757245363643948835854191314268183016770023524619666861717991230895851251449720905077698527606005677195908572937627945310836962122322889565811319472330902296437382043175810223501432040062283646260624869117604750537347725038321169167576972084973732775617257147192778288660251092215044472378922034949824286466585351551639551332348473469678737530769961917921381725932602089433490987841640648942305372472695758373668511312450599533395216866734582997753431141548274560102570914952510385936949675079004168158058362134495983241860432066453536791882907798225675873867286520994191819383251204642637296457450732333493509409902817880985587870625798769379315346198923097844660254719134646132531543722733470072370066750133040710685533858749662175318246771056624041266607372026120688027346482182965717485524111409285841703044350401058383489117326514627495238801191101555628948551661719546446418067046319356377649650205586691871123641460432576663393849527594046772149027581135223689206789835064888123333363556805816678615551758236521448489650181244466768954560353736835506835908451125536684138958813518425293813355817906192149213978483012540159726446872967643449177629569733618817879396090199205164371862614751612467500851650471256145360986766260327418484750435761383610720288883063325556952963736908109770672936431956974969934260952818825203387965726855485164859593140504254867126666648263654082167609192406351582777991273260296249264207595848083398400864116072447075524145215716359536245251401167189839326675895916106634792088784812515170525062173641157911786284581872319226284370404964381674296688161173461049828401525776096365175208353531891630379822295159063310524623804222963135211429223966663562116908396509199509124928041169878433284803742129367574491671269519155536777914373593678577255486421739726195091357262416417129938888699385000376729840932904969913946469822326040240308007741788246313230267852868218778797746261071153180584693897661444142677395825655292944001416816096756977853735636429059416388349884315343097216201677259442997222172807258064712830048070149243009493552391161012503099213603597629509024884955507435677736360200488734022543145623970071901049494010006446795753167156101411184511996559139011701533583999115126211582562496684665295636036387908453525497173356198940011399632093765446931912778373839693039050825471778141515048538124826988467050606752276403737327990243120268063573447540214376346282438662176629485891217808882680472654617736058431061070043822722563214595281779545452502911359134996578635668013022100996492226018863092008450759740440483445668626835693009416559590621946719820505620190969234390519415234514987270444197053606250595071432537228781004218889164004248771623362046928463762507103923063569379909757841129988371930921577361164691317383404193455584210231552600877171870820197543313874136100874851981715723328766400287608368810713713970591091669048912432994517133844045079797955394415054243615437939880402979061681876312740881405838707036728329296394711505129789042261568434051940650254707279568285151776277738878143887134701978575548736740348434470929212698100534711574874447278640440922088577495224567061307346453462319406836950300098145036754347570657922398046062279028249299906772302110735549347114365858289858464130951270550460223226460197365485205457652568540686994466723103709498307030072975995060381409138550960058743577354440256398797000446858373483558837734025548112525153544750935029417660371493303259958027594015168260019551553719421975220049915606804705130564344977760159049187009229622469165010584898547699717975656778288048934347810186357374114341146537401341317637755818407411640521824824587954244557428705778408777360311378456198743817306507554409313632843783313437840193242812141405233187062255913511085024370759188931247010278220204619693521824582278185767373418120886576852714673885436782724707018470494887134741658287797351074573016639404119254336150936360089486945706787748971963897140773617403606355118873002606302626282416362362980269270563572277611145275248362895992467074896940431575361760096802865765241273021005692180881058941406165852178467990918336830697384192274726700601021984856289714918158520592972793033830609226430722045293086939138763233980442259919585398204125629796010829073612361419610937451583352263711952142850494542288202371259526431865308555548092029514494694065018679364139915517529414313880962773905941416877612496875565480996971533887135994353373775095007350300508741156458335559464580688530208614323191327295190753237017552172342196088272658510183495285878107656214522590920968362758154494245386287187980812695188991710357206516120913653280447191914153104698801165898985276712631222067544662565940639629569008402952705329341389632967214363744426889502761915497141961009557584493226403868830526429330866267232796289092373350380347057827330791909874218159248131760122878300901566635007952883525152289340950723548303014223961492570533525100096168364746375318026216943198821981855306590845886198766433835963468564700504257987034673064238977677254307949568020574254727321305964439103726191551707350512840976688331683190165467553297282982529927962698554600570673099310167245236358719251429663474976520628250275650176966472134922717904368531910275852400924764933412237863392376078977868047441944636260447436400611003361715867459796244264545178798869418853492002661330100927962758354362837137870143684177600786394825491564957296676333180336647669898040354471685846279917280785965433509718507871444098710020038026502117796107594347687874440446458495124068881395791506475366553326695921357272941487565068185304187767359990214627006405531565163502580227617964353839824679092076777469994584106263390235391815675873709087902010049728133695201462811902817460524336476230030108290746485872947953911441870143131920464267746919925099616779662797677768843289772155930200673730794045751845680228620352054773400090350761248542632194306872202091986636420602824735250503324933858511876360893197358374982086413440522361529509487721412090055653020849503879114558474475004947003650661204640878723385641679843915973408235648679724950372020025784256765228565638309162138040509451638763771285107202138319504221124523001500620553514246239470378079891235987822861820725646380961288837745631315422331138234608401664242244483733740526004865984332232006595506636046293809525695375948288032950764684826860749222164522699051422153120767660495464269876277102979086579623995072217757488376547330434904164888048412526539772366989984446094228660987838348461922852459758337886336292489380455209804815589643639142581693582558864160255354183289990604538985506270962739223169892679076171878368757072845375604858543608164455337038163882567192631118227867191770901591591056872086701112682632526471633624186723515063413928616297356029182280290049066928018752328070168813585629167434512465982494145264356438706023343879229087338695455563531460403525443529704102330367016004987369241800910487320326275177951272075883744251320760505873848903219928023851544812018867800422088872469996882304683194729850141397611719495568133593621035262693304210986821253934721559306411674882551151345607695083258517780796167114497707259158712190166300683609336914995362796658237954931431590301390764513437964839155814621963093535256575225034798497174929168716459814462076968726215111090981828831104515932436218057598660571093201234694305872832349617599880025306272781608071483614787599480920406852918701381563203664067885064290700364461953725735968931111912106720946733644788019457929709055937583120617673429958865048323937923610552765736936220270577318676148272145124429967026745320720275105666487040053455277307488301416686908703729476529386499943972227520663260957013401726815776054296331192093030261568743648209756735599503807516664987296611390004223130937566581097265958507057858728412677012876880144681896686153029124850701226567236271713390135981256447229747660399884842353433996759814530331346970104774148350997777213765668806018730435908611684997612090381145939848823628512786175205616535027431929703983375775245212726898618431729621522221454002968747421877639300446198589656618882551399896232812675045251466397392706903293489081323720836193440104770962608136568401512124149596408310175792632871323614009522550245884242292118853428912166202323324625959250127633114555697887185937920577024477924643099922907766852116791674595184503800905463920897130293109184465877578292933383655844414619969751352751841360932616554557767944535956773475300623905882512803349008646224993951085754127394904728766879115337855748686490754723047704253950350731304530022765408683863017596800926298982365266647337649921267467319067865039551200030741724393993278502865441165321777709753628268281136684825923767716408893966518434491932606627297370026839695705466238913284428363017680069385291517925553166394378437947158039702892557447688567228666004871334739506750963021267565017900337005910336989012102354142120084678156947573042985706970347090494357638500279845480095744806945055331131698073515138648959108559608338079985732171632791861504768753819426256086121671557087525062432967028526054869031972280579432628578686178691841288901280651302832133201305319281375633926903585831185471300014285003730752907705874482861673414684518263571360808654952702551401084253669900682379741077543975814840660394448535066635767114328312778348491654628839517464123332233694969946073041813004414141729086055350453574974108516704054297817142369195523137050769581380283545571454706583712323540929832178986204644422456716068209424052662738359882034071148890826895130829684806185829360363377339658635007270277290547175020644346757198098701709577226387786248010270858840370666042692001232440716688935420869838109913793097611069515224949670967917443149011016318321523467177638498298732691276825624182141857623512543092573502611194541272363839523232939982012690984166335536459293539116329848732343678068680730434778182049800996383037426381800762648139360578814579269887813126695935049052130778310045762483901375488452474167472525722357406694815673450611682036645849020911860842559347245062394588508765047057775729929917891977214229463372186170468121121334576891116052723295653371574036683165198990152519332896527251882701054198080407380238208719026692296964018576000471176567155783444638062436249599120065707300966382998804775395147829244875247063714153365956284830536291979629289701353137250385305502040965233146013256843628695646135559805768646390599946444779797106533467419103087989944063301312502810656841230181181416077223594336540816275850237034195172821791240042332329245974581075836691378195520777167208620224920266232904634144856871616994703234740670550883675006908852982804937462248925223444044745360676573200395296615051738952216227790963188961776144270372346650801690089792276282430946616890335383947026053011167635010273392365230343967340983005033791712726746149251440731651092727671670965398408717267214045871428290598564609594760684336787702345660767741132585122971305695361380154212890073409930590023939941545412591218293634924187299269996681944555223161656826003603241515959365354360179242824273292799220373639709085081758515393309098691591600321761341367185777617374262353475135943846822068015306502483438515971603543302521584589294767572760367335107968249132103375836193869104647020904403240968515268582759536340773445912015807024540895586562538859642544720916763410892774909537411452761931461710137432968218660836632701550274910615092529511060497251739751926134066383993609397343692781856131043950721693667516170340124225471322698707089069984171262404197089892306095867190676832209050091520261992254350390696712252188533804005395889488230298336105335180441319522920516552960250940006455504696752231094291297849729829501606916333172114512003040954791442816354172011944576549876003899501628322856698587557445456722570185123880553314695344441170488527090154600238495082719898532256528015356865980114315881309923481992735571146460430293020599114929557432647339525040253502563218528165014249562559063435768872233087927068209056556614923289535663020599915861886039704580709569769193333805346395555905536304794985012200968100106922780204885472621248196696930942152032850815170367451396993379875724802706716828964578683717489884381496523750677328841620237032938058724398436533518437778182396226778965576179754816802746937244478148681252252813253822738034877126287016350146874973177522011512659756992542683260791580133321539973228189253638468737690535724704962127194509296562707832711134017777612669439937411314522782174224928752941022403375100776881080723271762307787106522630855142749847810065246605340495954820822492382612557657355852941068133270561265130272371338529069413715597873533026921859617424926289454135835091928886602838296454788788767410719336401190512158411296575970039858105536995460602004828925858863188922733615827490947386131952866161587770460691369895800177905922810719779003040479033036240098140477037401215030094599705765802698455929386673513742861224904749788164662654122524816130108243135861983394300317272665307142981229050169728253331615406694064686604582769640992623444371212869555034132677667381369303341871824976732155278977426687263359052890279505184687922566564467051471142744236684918723355420272299387085126533290720272357171139275247290401728751671000443253379097286827213396975903443724833264195354325728687654158785938587422420278482973232784298964310842337968370291672320266368582044317193669190820036649853221781184045898859924958914867790332305180408323598360102507916554193851804022433356464065303914181587930551269999750688045308594665349148917887601490875684637854127423491631044980092014905755271592087515944684120107892430452968131613746250685049693219199487479441563158826771095004514623330301814263582678336058435766095893393771256614871313144425311333654885323185240109534645940125151760289828708266481463880285480597674708885365402615999350912888788222953325465660237987806219486474323784685148481729727955050898594506181574115186286438964891844095877863076025909421215207799435095462234194516652860560579266540796753624583281960705661069051457316144560018695436281898412886728471639106728565643152125004581461148993441680634477042552984896116960925316890672565213612141438795635389374781676021009450632289945732440639680915990326132548428001041764366144257230680156902139238927825714692643962761251672098287998974066827745658535160787390792254848810603037958628541413761123194635586119328114321441179874154132320414311784771436340420831807477200926610665599437688582478835684444727341748568225539330516598866586106708306748950898509685540937886243425791328574298424277211256017281112975924134706646893565577365597337034097613381569793374175042908671256354049339323485977726990070545893793376133409529181890071416240932962679226262088114202727107692508020663903052782576805980534767558106503318396852195047676095130288888623428600890450363719851867407787104784486404949782972815425825850147886300525426451877225771817252088689017315359693905526442548334089424154628061440392379423015971144059023438892526099189049511977753545071857893394201918255005743773191153872216821346354222375710960152634889773657594205188920160100361577195884106442103975044291943330688127668810869122114495187186064449230237996719751504794991845788757511630461323274369123586972613649471791596481237231187352409516367201586016682888607532580041859096914610346346138025236892677267001865905170356648730530813330602296832472227863241647727548698583561070561232370493803144598379857045937052612975341858261673704852778372483974249505075087598361890378162835711912372687927178697604632273203004010086295018591155482677068457590671043845606507143583849673059128454747891041020835714007932309002087896407597828757023346037521236870054467835182850705582847300792591363934488240499327555866086363868395523709837930104942966082383727976824086556470735111266564071224102588540886167950643232458308820119924229321629719030283576300132468260432542567309984740839726806233669681622333025820471944163114783706254635387035689141991142337332262917267032608582680755972531859325184121736764427632469635767254995885077596482724607953212356214734605155970856033582775215250186547699979940847272087808274287590541574476119885082585256956760562924903292053529597269834335130581286975750574219020985421891921286910007459696508294536940804208821122501628062281870697629581962559530183162147274124140862923373406427839873751205177333944225280899142057314241431652146048185561840414645523484441029877915380519211715281880582956350010925572937266771641612184942440715030595260387793375472648437911323143319623646128148331410241188017256040442627035399071025986161483657544908205648155605280532684945583664985507648319642709419581006962573781318790314981344502282681483280553285374638673390904685822766961984784800671601563634370929651883018833027120373669795919206700128161293310670658813828292205564130899879121018791893443382496312260253499199992333626724754860306208452496713993478277988912262458394326286903304852383673492441903331525872059784974917628034254482358816421457875855366617591686906364932025846891114383207334344320783234088983434653560570836159770044327038493017718126976972645540738194177525675735499342456533708504550617926550948702871858481142692353136373857769438834462113242916525587465160982119078308937832759620980030111160736490770815144304306235514260633293061809012173778643145603994607685131687165396890288736862466260963511611310900006850910555657674102196910714149781897277027200034528244657983451041849985479218501595283831273406372936500150165792794126954212028838125109435744724754109499139378803157992538532764275965973000514605645493526849643361203265326365574600754642806835267445505279383112364083683180800312908558352009114124522910623163328298910168715742721040419439108879757496451227578366843912094501896949860219571293750963384341898536658226888127036935444748695264974128809047327905804344384793933501293407202492318127652982477844193786745759017509900659151104586214989709909346177291729414157918279275342442240196945346026035816397127826823668355287775070820199483535714253391599675055811939156835957141851608152605949419949362286011307930601733134158146239881340817850017819935035657379043470008714463004271224156373193621482086476073969806252483067465642297617157860585447676467639647068022943043877011175511992705491635837378197710178912316898285326322605717031317062081797414217680900806345650240264323906039775962693280973180409077610934545903912596662653352242643704364686585739712471526082727470340208304580220523061561843999627530505437357630056841183570108328191067008100849999452005609809913002009252179006029781638291915901794483585880566945802863330553209520298423923918569378776369793212022297428662476169700871661305195345244204830055522102584369255486977992635625180855539945999187558772175945787493877590565991764187728970616070190546913710536575749277348604812028997350821791526160135849543245922178282309284357644671467179510540589056198402924947756360793090758020905296096145476263364396308863634692325278428292841554789226575206004700969469216918984439132846814739108274335581570514628364888057048033948422324435116216846963261987980602776178718184962789543456697827422692820172147122290185166222729195138311625224130667703273039483206175670707193212024305556109351941784840011293158667108187794239281575452725049311718703988328417788719844272856881719175086538481729099564355702987974589205737213203247383621474886864279309907485563998234789184191645013342313426344587632325635454652585482267337548194652565377470661736674161135724369399188117725169230232461301254987279641264458867245378768465898213468176335084830920813161350044810404168076659801941465895150221253386030741891199989389592455865241923464648458286556361476828103860878578732120871360562678850855768224745150998536727802556538026572541801269301801046571487863447342304460554125517908507682982033548609560679477329197573740014345049093489256105159111054516881183705972277484214569886882682348554377123312756466773581318368981034043539582478911169658409899384300017845482297921990434544046953105460765594257688405176064773492608746285773605706358058389280274263027600232344960213186838548016892733416471361043874968057423222010480972786117575112443785889839440479918959759378308016360235672030633769355279711007128367299674277729271798355644871729251415746313634082126741452052863427507122119294372161966691346457850781483928126678747719006380043963623721155826560959210060648003627193828027163831553279198663774697672004024404622232768602303890230143169415820153375319922519321209337885281324815813597001275181115918680513663436453642519636768572879616597900918544638833453455148091910112444280924199121688135606323304796680091398124114024044417792407385303713111584719866220757720995427987776699190122611799933071311491412699850670375402251278601931776037023175769110112442277096098310817442209420968379561048556582416996797717620031455698070230248046445038733984983147785839009319142284478397214358293357259111728877319837979342941520112165842600233914531308403865557285292554297418051702969055718678150759134920336331380283936904131274375595111627395344974667883610374753563007011248582038281227338223257487199952838143826602721366825074929252054970267206626421075174662560334320590476020354518285857603573465341258458511298295956538252889976497298694334851293613764844487227348714230159024791488113446332806173584049550929761348630290076953190003542143278174002710246419590009485863000422139418597286229677194932532210213213863750538822410314786062311001589395097681055313174967384715496417111399671248409726385671536689371287922299232838622870317691125533851431481923765083891752390071615007316125994774669401035120019624039010593362758169782104127791303314846739504460542799509979607400986165527110319878721262531618304876492184797344540349346765753411221304870122160757639996412075783739820847634237322508710450537905342340522145924146338252918236623565293574597830018466916311393851201015051662927894463763876698146316156114415404281498871314724065923113569502780419035890802860803915714423752881351767497615614849171045376308567867323431974311538667726902195235449313419117396685142777453946840167191398415737960395759202178699444855083350026559881833545974756288233079965676886730377823541760008245855809015749093406017951361857573151998030660412709819000693172605946947914891884987323242706210461837627996763271561891849482296263840445503200854700473291152414318596777514556445736384212688895549652163391715023752014206880472284716320758003255447309521932767290499420452722371849022686438782430172630857057202047137348896241935076634565137629348598752733184024759242919388211091592228058543024759936700867323326386088458660057891197084321103498093367561862100175290308935797723583269933988026665158816895393644830580781201467385616304428803514158043367399947406793224710078099829900525701196064570579425794905132745745857739223662169112208144519559926302831768792793278910902898637607508204575246730121049465350880833586869379105608680818047905737057846634622650204004651508269133825127531655848093635738151760217780304843154390966222879283240407199475356687396590494459367468314627701007551988378537577576358177551185270559353429961178233657154159161179768749864075785762191417551514610575837033266856980565294868697075591286465877188442165118265349942802233769752474462483735131707890752319605649876319109664486524742198545324201187272384937490362660044495993162219951711727374160444117626900634220069041036552128498946310981589761009624562548890358189838897801880276894493970738003003821459332780503025773248991114144654924437254447788271536014659256965723959179967996078267369699701081574968305060623082406842680934888128519887249785228503375800348496712534499150286254755639075843120009093385732566683849295018567463661775619404658375411507276398539532079857471634775688468358925420391963581671430361269232873910749522995788108749912098369682767920621668348608450008619744265648097268975262686143133979976049170207039568402105404993448083384845634722805466131603042319788716831293974505337846635247220379996254274293300635113336677191956535661503552653811038869595581615423533091773092315142857463284488788496363421461814797934011343710374687085651349597138368906944044301266647993846699388398581392695478692099760828342102103018103271702605328625769685508900333185642146961859723078317497110380452221261651187229408686247453357477511100997977716051038969024281991429579238367680897621292374755911508614058408126902086496179350699320019151286796906611985879268400511962211621835101771977537259078286766643008643513762803622137847219457371362869992093612811582337797053243979907667491890793643245993034890820246571323067771405708231968852791593142126766748646037063891778239686201361267110061074248367448194376667000981622887780377601239108120156842238502321955069145496773759494847651352146258874006015486830547158726128789857296759374840109978597736813027897497652885922580674937176698606992926032248289053046291429397974780602138877865996201935030827080126906234087395768545576954351999716070530748677350804403601294666707455749876352625941493287774839630963733097609681839038603007682463465680281342561840575480729295065321582403342498924642900276553934341585121137159287529953264643690259928583648704077944615901531717491240947627673530135273318782047169032419943673715053950344238964039135201640491273857020506500695441378110150478011895640038012112345252896119905028362836159282409961792886210698663841347472158815835286701051197528267393573882718459428406747101857384544846946461477990778061388337056072651953477011948602338730427152377476643609234250202108836688310220674235793076517627031078019613448322080124051963739426902389419995210396024560935238245075129643528189349887823270904716862135164354884112428458668791036698347848153895133985243985840026580752283792888169043516576152355803109233316724843233093989249340165077121632252174952645735988775859127056430964739507955931140923955703124359873585324692838822771983055485476291061582602472294763745123393683767603226652797402232565120473617416994051147109762900651189543427724735070006560582884426911031552735927975356943865874363682010977917062658590914865618701817680103769407280314597353135320349071014864188452565999622101628459015407188034712025723602818990562241166860560888621082882554395922491538351368608952280261591163093487728947759333041109314614884766073618946857344608973461818889851744052545070419968093542481767120773994939494919427239665698508721678631893998329588824490584898817981943719250573720545719936481880105990890963865540872746250071041791518870300446188180508973933062731903165909096754528830288287197070203426296774820639719215846072031997874871693004681247207678267780985224981633652525442902127908258577153797519004262125606216826056111768072190159287372442137797429570574815556069402737154597723993794303431520009595399967614620786700156403724328497033000764604197176294004316574631947423901022819447695594573576175262037318545328026488221372957674188917863867829508309154165742019197119149669247432052313843574097406545325970544922494336438711360669075606888764740838403969599446032820942830242699587221294070769713056429227563417745449246241257214704772334407980797850049837415343314845618817578324984306310409548378134225826748535031875861722725657977328276286332726451983392908737671733793232379827340441971306419674690446411980176083365933977803504206777906867903129210186097669627081330067732703500333018703130858954786730219248040390885454635434909744725857331266562846368523505287989583157818693004655101153143075230048081013799420993606854394841904385316671511645184453580555636367302212110144315492369112609537120133213414873833978860053104842778404194056852255446065497718245763443688532368650549512348749844783642626410641991885800604957161566172631780787081565089218046938045591784192897359389873289064062326456992378830180183810759809172745808373021447246732740858313959781928459924280840435177785901549317366444021104496925952918518787290996913546169456697893276588060013861936369369246802283582202719321691583283652025735352512494886104048877580489860664433586059887446540082531800548992486319419511870928250971096790985990143640095222518648284246068965412054907562395396598858568443002101952950342606257952194774047404909003529607506459075616641417056263552683476650473516652398320755759028407971324006478652682070716823014894801555369753947270341733189555871594187961539950973756208613817792441769410298351780061286000802616273312744975580618678695177744021998414949722661611592273615487195884181142190723320541323853782181237219898107867253903735439813180530688891308847038736453146144490878735914958793490150823729792955944814275818790699058059085404184469783125952267087393819400686287957272395832604220308300236494927932781086423021442871956430531795002168068662221819851588597912950997397338381978013562297273019143015514376396252969152819585461288142682891978604169556121585654074231318520336942152960258487071604846841541102265484397845730947670906879200466420100732789553596537939028141073470513828370384958986470816068495015889277340635584352620104216571538968456850893420942480845708802363628462129288993621200735727931277764537690981968261651560843546388993147897219948132971279502787933778938928093361127836234809636914847686508672754725826057938883570664954960779011486050679061441924938416297836683155111985194526243250203344287373036298357056778489063617855037568089835165285898493925478962797669571820800812665366534570853433481754551886244904192328379235908237914013374703633134635049320120415308079571500394722035190442506810683979378741720386451218893356037612290304753360882415561282887808409653113438384522683060025074668794759935343353856709305456979969847801224244380244388263274772317388474856520069137908594960868742213855840100352455038909074195069811313813038742990810905282834788527856908934193898479732253366261577115499506662460342601294291570507869209966299675698182920449512363041741897950500856869782641010897487825832283792677416111622081422930763842298790503866585817386013316634163048763463578352967368571307355254879651749067038356285967364405831743122792669675630056988964704556551991183926115195092556824516310210614388698643816031006469861932512168774759790131264444626761576509048110771264590979929271955862574299659042492514398367391494055951169670168730290883705743510926283167855387443666131053791338367722158383042047549351774301251188516983813063005279965794960328104166840578187586105615499585807074928813435030242064482870838321905561117698672885511580638789673119696849535077526169911165987490866219657466045651314822044347689961615620026616034326429552327953257937098365224055441258267135294690195840923157986656004751392229101389073536377582421690230640664791117484691342223743572546362823779484865859270994504562410356298016194813277604797288931965866966606980127478084887356541177710377320297482790557511167801378598590018282818924002151253428627996935311560080201637304461742036836591737032646087626770842051086138278380653558378172957326192290912925660841568760343713829604006983248411817675646146898063923491099617250869110365335760140239915952383077447469394715357593379995230050836817303150956404617895356903698801911910756999706159540535022705906897426332364165446764469501451731301339392302154263902119199752644228836126451208429804890157128941876621234937973340936108296430705697017341793138952205877706245358433960890093417569576350758261496565270910217490442711212317252595729367977618436335558357617668799163848184391524478166831997593820848352004327034334306243473450547387443912178990007607747450988617574861774256573655674018035664249833468568701889382842666125630654264191511258205328678553808432442393758533664977873031313864318681882781403443550483534210018257517114009147624909151094926492989054714086006083144567146522070594504478082764539285781831072846736411582444918779988086453480007845790438811517663234319443830449875813991990649910573453956322142901596216756672963159123130262715751579640326910997137595938420087963788641797386397435512932978509093708460138606630461839771983751147418565249633914266222037631851909941489819444311536354773033076731704590896336954657918391634118975337689826023017483422262022541585937513174831575852110384490065476036947077980248501928900825699382014750027654894463189921588799315232193954410318034311124465834575310865273195516344962140414555877322554168463300651312828258795434421006274193173851946874621927436066466038649784158106628367959959910250765408249017289165343246639254809820290961269373107389192573956512494581266735451933386706698648372592236655092913911569763605601811466855326193279602991172376241836730182206527892828071630362133551923059639159494634699494860645506795049845265399863407528184242625194713120255505084945045870344263933299777191419232761520310625167056208049705853477479047560377404881207317504069845179870650183392572856449352796950912471486870593515207111882750692038459794582864183260349627012108721539127852606992285950829311646605310985023836007908249881690172492042477297982145852266768177682180440928007944526788738192936010869497835437709949357823737983923061252347374161459331556889916055952733462902542197074561440038758452449428050419274414881006025974081474262061580401560496656828386554113120377474921662340274135873079850253842917577607661183155511040998694007278441838387932493626035529016447627406186906493953993302369040121925285331852610014339596575242176879261529269370871120021269866491878036749461801557877107293629997032182223343871848676828882440077426099292489497257159916162031678475192956152852987585418701270993099253744666543944939466332213787848571783339631207641603037119020510994621823088720424336925232897335509867817715127555169807679669222455965009236028924196576697525144617796261376970398750105158359230314939177274838536657699421037463337285040557588500419624476453850029956882249269949415126620668041257940531996969031707323931672146723190314035479538136546133080411073807156795797132769366742438840707328360886002984030930475487557353480279152694558737263819977391575548879720467374106184018511809565960269136555957630324258607879602208823296163252213249168345139282927526007630149044311692777267796799767203701735269624989331246060118878058375827617972941217686341192827868807922469241530786602995334772818390709938674768120527908321458986009203617130283817582374470055324802712312313288323955284222995541352515906753848997983640248502691050414773128984746377779382722742105287992531145629622860285740594942099194679103690657576049581447588593783306676705523078671990960745674287927044538850150225715327405647174325906191650359558808723744913567915430401351889972110793941810485087429846081127787004561650888344500463882410235922169982129828360413337542898389275221678151717786122392550640794899675598216471370683037467520126461848849298124755572045386742345470787862639985573428035443085217821587780941116513338831972798960573309036399387202231742835381969121244743952507198154842648928621881790596847445408822905226284917263631085356743682109503873654397660969558530928183907832418034498297116696493924227939877518352320163610823622153342282636784916507141887724980966908058934017668448249792446389781089623135252024885708604802349673763743423756749678095333808367057656171525048431178524149364976604243557083482201255638513909634792109653381912704307656419411586681168173046690816425127631654864773953889917898627141087107522804233259753540641461164730583618968008309466794683266936754953330254452867678157984398954512354930008924850999636498265823073737863805212710633907643106772103622089982850149001721490673622458828347968341962624024087737123826722543591818735282673934457576491266232763680051165278927342018763314495211641569455567157833019191576013637791456148515216656444806278973770695736895076505207652349470482338127220700212145023375356306682789106554682553362198001180355637474969248171307786116248989819726259848615144677817339610349765406396489117913419951652477171830977982099026227842374431990330868627174029063576820108773801678463552028773695386102253827141347189566209062416137903401022555092266194183813491646466405073173052297443954596124106729242633650987562203319021290317249769612510950941273983399228289531124173319400643853758296403897524809613225359683722974969500848611801632087171298881279722415746803023254479998380337087699797074220694038340612666774101492895408878117711163711045588610025470855880053740001983980198361299249276354831927459081614081983291576357373172009464444827555519485908447429790241245476061336748160924920263241770432488395264976859891282799033245715160860163654061047302363308722620858713085946807991917610921871834914082215590674240064147709296159233279471743990049544411873050603707524294378459559403691283458333929002660757539182088849480408892833118563772611944843772474565245928377037620905112940682688468533310983208388744142010272673248863953947924573767206307072528708359204458901657102646798543915920400896622416640454159825382431490340596510715656362374600120991911196279255153663082141554656222005436520441089012082508315850391585277541018936924903222209027573188166540656347006485405885125831050664283236231141675671320018386721175952783042144926452915373825151031779621672585514552588925952102296586147554065563069006958812705698399489733861853288401022183756665010756646796820045778596950370219128415852299322362754778751078023830659727738519530829346495756714825030862548567151798322417058805217646061617076281512296511710396700279241431865727665761786070438757673424086860473260650690359169850008464228542305621173148358810326883634764322767919856336036381758386315471192357286445676233039011622501406925945594046164041314316947134684721497005113186290207442183003750418602735375060832721368790776132047158242730223941572533354237936977817461577084842315918258976981631294812457808893793824507043085222348423259919099996954133914694295602533613468485293736481847809821282367496538788521585775518566476962479626438191671902784962438698709936736532618035337731346574169628001500113592017566173829773424100935436923248284747036221602414135853259293765573106068928603843145846605564429844012335667742702114301845472333474998083019273355289012209249395534749782867132572620059628809702334207727728935231718835917197387023958930648997585070785761207692318367999472343797266046138823960252513201639773504216179170447133983184880275117541136807877530171529774738977892644175002631319435476008562106149816293788366254620336370932362256134588888980093938935277799671735710737292650122512026596425572316641812624441548153955963432796068852767842113301254196426460093318744936060579872273394026376213592746727601435590863685848607139640539561759253614632568393934767608301211159570288599244329531135342672173827526308639367664586701700613101770117812195766320409246190651480863174935169298880653367902202706140191493099334978688793155088106115634488144215843101278557250598045048661050358360879981888629371537683432347826945530696706375678027254257631571911016157321337546445533938907070678127153091887192667342393734289923621750622033026365353994329236780263090693478243829289163327390461346620476719934017184221971646935038992777623339513468908946978914058080403827582209629577734874635074882541849543221368887174644139221797671909613423511589693343738625009612140272996008475909015963683063585410695306831492844927522029284078203499759936590828421027996074706661994962978792692356597263098532371279704340422131156092944482648546005519187837782261665291408445714622321254461258391874164915865378166651601669831609574156502738743929036655891152588536204646497167658878362243398366490238599016487206874023935805052839244271491434312551023163330390487685033146983380793425374091810176615310884758199349867857178286157072646789787946600968368836892531563004836438856409108507510313435324568738614162130548658306456730083360941350984400517879084397700200468398987947674586650424332161155774618500954284486727374053030304498582834108870881745526173203926211124570537540575058384379642908677838813569316737916711384433489048861590433261683791894733217937878558005730873051244213992937082183084255562890205564901409052372879282773007802424140574884013463211109924414317358168293441344236795160061105034746927170815814532908228161136597900705356909000653593558570459222260888151730875678108044273496053851482804201466126901998418800199407482250507773066756672162713334415286678898471755859130581459398997195810128683534194791093349516621758349913858922851666446143624994876121867363072745325340381276413093964182251364469248985308118146712344846125113065241531895030934234655914944647691464647764838521823169780495763904314887593653830632782445762190986287825771808753063982510296870352518751879399488460127941144246909051004864824722893215500620543666484794383928990100243016098977543085742156846836993399517667080140294867088854954976000477510272898590835997893734865171285453233457459052420524160781805290905871949998850536918847444614250797483297474385177945454159066468556848793800793998235872525692260760898872393607924786501296781720702793106258144928045908110386698389071175523046547963929362299994353674494246980050173244523053655866745241079157552764753653868585659328532710879929260711987317241588500182850384142436766601637959226369504679394114979984392156131203869020643710347226291609784504920412096260759060425431791239599794775074560420144222326665555123241855952981621910806726702091624300468015323921628981814532787236651606426056201366753760532344978420697542320785360710688125000873954700826707002918676011305526327320158174768737210622651502660498786944401933210979460677134521819751507536988742804953343660443342789716284949771683755161125384264999524580814773335126616950943921159752165195775637775443748489920177107554322312449696145773017660981253154113223995465459001707205143686223171749121848689625715875995523124369264338030367360237690115676291878626339828128105733794326065161364336685487976311890986365276260461495641079684563593315872389447737316988406952632795253694257099521647131943884351690798095737655225437984957675323703960552623461896948761160884709808763125624130055354273349376954013974977498386944387512701371502834851515356755303617212032341811525878747553063791648963316874546282066021065050685064189001980552517202511041341463235705098561141175032026382522807614095726441444824449122474038881384993411540095525625639700422289453912978501513118866390008158296290321622237070536928628943430747174915571902914780199688163338149410884161922165041138312880805417506968446475447541931439225091189339990755302694934772306491519019667183709486456088794340413982630744976041822501536117473163439453277088698204461274224714496002384962294943411977951673293797694213241472462456837449252538221513766500546240900097217222466072180536318894680458420113960785590382179897239160650434039390174333672058669696683023933978548476090891726615280657582787454562228167784680494189520605023761098291580963501280791566749783749381631366958608303621825248169639244220250359971124407547327665795651085461916291729762622724610663532952030508536471765336915064341189487796506326186353059742013337471816854602859062954686401979995604464345795684571667888720469082503474979743059953902770223477537894001422617554256149539187007507579758846986997666554501485478186744671895350196261670424893127491452235291673371528375803375575114534475829381606357891476237633077091864634523792123079059321201028238541975837095688552135111310490970812878992711783492996495430131340520231135492961774495832096629784215752010916689972850452096429866059142559462467902304062359530809471281898001299103482312999697460504480786516478517314636194803490447224561751964192792582079535583566366535506911673059396914055647468856366065060113882137586491681450733529986614120136246725122044546333658502010333378844523628461682756196722848664459396646993105995762078327146187706847315245410254903070156061003999745112359831467862500112473515714715524578151742321094109701923697526068001189997452172212369231715136005099281714622528119199652148263078384906127639171686345102342106073005993595426334954510056177394527494530490397265137048549614101722954151739724482488560815384192042675217962350071531464027976883395090532576062993756106454035598347877462201872467824777064564421041124327489656168188747542277986073093680040048690757504497888437933730363418411034016974230892708219770990563742552548763549014945646392487566708289590799465849868885414895403507446764850796792855310643831863472144894678582049704967583568124577149674831996367340964865061192787051432124937789985300812305490561472718545156109335749015766949156988203383420278064892297638356585579755994536225199266983107104384400111654247015453881478398237307893581737130513788550258462703884054381713775970386148392070509296385427653305969740806816414748713717982407002238002182260208467618065615238609418228645911837886198682544201253366017656805035027362710761218296971958626265311439137319174438506009216024499316709042493169237912695588473563214297519715555949112488170073537865356512616370372387385872308481679762459725466189379103922350971767556152437397414971784018061623741797172374560855573429760943579809695810058194098793296032223752982691918757107249136259821744681290265265440506597959601047064375437984444764537944535284404311413319471016303751737476685333381211922783582098030051956672959788276764594241366454986164319256743475757469499093095017552357302410730987358011745771505310605703168558552103676977032619615653655853509970839499766078571373940312672109875853220289741913046205425576444677283098696639565623562423112657423239385411203981477665213290273845048183524593711283417627414942758406203478828157909977664753402838751662834921135732488358529801891596599707059742925829373549956085298427439662390401595606000730592863976171438389058281294807656476463521793952136709717031965597717420892277178207290082034738511728098079436469882194028301487705518742711107509266255600155719495404625112823737307209342386861398836086376094788070715320022854813133474476744225254482163290667623789210797859920624977641403516462910796436216010478619171119639357590256159818399084182999925247694116271807481352559151843619870777064067577334237829387811137543519931113338358599608857141311869510182211752228269049730684193084366619822401351734642281166064822814208784103489639156146351471785826785960352431756441940226833017713915416530423716048843847462650074225527386076842196316667253375824889251557117740503601166408327249516794292331961052538258296788046178753647208413875221926220448970494952787264126618416692465774473608762150002866021410675242149181893902262101633141481232328487619793876669149932110039698792757160609014239838060071322694764022418703484560706928166013554646412675190053402175999307777899575693183867740204112509660802767824944876051979771766526986516973226691093695819035710350140319528988437116937698599623133031338804563068351314611726332997602567774651553048624735874958572291039001957220013688988212047403522732657341359862480714941940085410345892377075104315976060833059993096394863232354404956693192431070553347277756255524373089971387088987106182735647018228878939937267939768999246288617680796572025726376324845428546530523172631964084458952359719847036345036172828180116912391146691935828082218728409433822554893123513630547837731814298548951422030236446983957935232521574793331825142711672395666878407784087063357430022021743886500046962951888242097403717664945513528445742919684786996031843976709011519994749514629184218791689908776272403457694835145411893950554200671223976139060746852846131205866361875258163925960463885231072731246076650288586771680455883374517205552998626592678935590301340343762425758336025938273537049910846903925072123236738959705191808165397649588098433544244767030584618679143435712614796138589419249244800793220028046167605236254821634676857881155056249071575216935605426525534468107031930551822048532550052607072120713922128355507530404119802677419980253189404447805551762838590574486352203088906013776190664712757566612593738405435783080309097428572833628821388068826796693938917747365797143911245573616088310289238233930511593904659327435742324792015744369400685063674957355292072279125222303529923880941904629592930721111721311970193289785365289439334419194852568099545721383956848912937014706397827765743949163568028557737208964262078479941301658451703601544968456105609629376019850196005681094717204003106544217506165864104326594665564557136929672522768064710857845032915747228085234642257242430189562826073208065095695388087636855687607755286677724751666903838354443946190241218496686042214696669018384334719529135968670020610929159065019044940471373285825419953579991423979471633225646342362917961781573766772634695256949525016420650908422202310414036529883601003354794567595790161370755778351873622768701389820243547878873216653618508473551015468857331803929582898108709600397914439601500934083758195584147010378556330071947870823685324130529982110222554768330780733562666950662145602383748109501851711410630550313414320404375146573196721266725542328850989447648737488889181311840887673576757350690782753690130653108152359430748579058451075940236814253127193715288916932212810431847388892905418216671963072614937383504841438963560848400474203907428800262171593873705987736331809260914478786101930220090221212099227253094420565772540818371794391043072428359160926877617269619944231388975095565634134752969498555854802987235167400388369628241221117983417262170299690034162011980646791018382720700701086544785016107341702026488970915277210774209699417198755798771108010803757091511423871275004740034471858721725324101173930013298074171460341312186438580357000053534586324712299701051724702393890613265860096079465794903100285615119980785296219858095523169741920293071668934007840009047139179582489060164048748720721778780124463318429793294927022643367524829638868584358282355364194822004581110130207199319622878620002171884770619822261349122819793161367276531892527319462985593672296780832056772920753244223984537463406907498570255522143425626844953647689365533442442931385251987455371045768693826808800834623832762684281736779641971361021672622769206374955916349996182891404372159642464240700982350657337516927597912234389177284822122572029246848365312231940608680616334492736201759883750078444755889982551649218307462112359922390586578430140162052985507192580697953358680637481913170743462875593752809397099421303977175276021432060343639362818721841668365973800467504774870331344935722523189234656052433969391312672456340120945754520561464803780170213359822425554168725813295772553681106301126751924999299626589986312366237288387311908037443407896711609773642632667550831757624461727528363023042229821060059502151823920358442157281584672072735423766214630689856561528323196968732808029327672922256409166599785212424281052672365346609884513574519456971786220660438518426885767318817375095807544301881758441306895431926486934613148460211127937758511900251331984399625689017701472268968210303633112149336616686974950747474910831570079818009412135873745830166515862447618768665310049471463354861743968725153424236423836123297332767142107251705650949604872311523316030345554734604792169700660806799485405541473674336183091163931009139966889284349181990614709573008526427166707016231103242952735132506351303540862490951715247281185207166550042825859956767925754856502216202879909116381487614604172586092790994247979380398633980560043947401239070301165592851825936558970163597370997302396504760435966488306956521205224106610524395035137511302922325835472811035650411670096128465844522555874909119580711576467921975328550125797436761801302296079573459049555880409502025041889659691460327365723930986218116203187760801871113651287157939291622324290473844022060071402774769296199575692798481873536737115482621665766614816369915469980442465436597569948158717243524796768122357287685469949027780807148140026512271472407505130621681766146877640234762207846320137410879351496799027972164748976178430676359377111977526325144607307689977639701493474652194536955950424801089722498854735872693158526616894808311868089266251424370572983930433095117731978442995235942458735354896887844742342531164318673507066135310876002422611664844058544812623127978749188630057838561532806251814654027457518028123611917687683343893923221741164735482165601184023508137943491326154688806045329250591468211634598868278801918688729835867307728019894627119795898337636278092425833053504704956353894371569287210378490677537947153604782814581483239959417205949105048767989270402910667371638855022763271095716695699657346942137215605758982988101180885342577982825076863656484274628562408384698382911044661157675575994743481014256514592805677776182485981821570392316138888582879771516181899718568363601385823048074229881978376233075709720454792462114377833930853158816630092881960955486514396634111818683070657591053427364634683876430610433054000099391822500270240765775590708917291800653246932997282165003840169688839890383835724771810234260930431276702007687606748412829798400958793284400129044757707425292180419365869368088510133468708531043236990837017166595219017414644592195405100606787443707399319326937578447501687367208397279413230762040045808750654961832383021974871241176462614788335602272696790149009158392843443430043715338032456375673006042052806400644956669014213844514684638510794067985202841432900490723336740411700432815941648413030860548612025187960734371177864024176897897416763237305399778958537098619492823955162608838563459901907147132278714492503355807977961993993633717850749996611265342336701631130040609159115832161532910380329379399230611606791818964916750594575916687496841998959396489248242695790879638587089370190739007106333817835030369242095446748709496409328161941438021086208841405832044711771813671938680180487766303587233959558601310176182360936617786813667242784312368311240031332712708794303258417998142586171831429898007792308020230776690698437959416351293941402265798324642191868906574593752861968609479801784380739561989702142043856474884510691729546493719861936978894495510893539048976382180428628673543882578805187735962884983213664774365648468164141839278195275546830204804595381911917850590384164609919055808251040236180296341542782740286469413160533009111842510992411545247827953789876656668659747457033855919889498041304340048581140671534080573963299531023024329756300621562876867405082085341100836234050842499198647446355536417738554738176043171609763965155416961075118600122514061002203677255646814476728232934795473338686572379268537707002249314497304325043980843530973876978692736546057018031385499921522509911655713979754005928854756426787467016937708965281296489109515565251669292342051835058877467397060177671589454221839577193663398845888684141956361176600944856211810760699804564022166240286002266106773955802845092168803034112304387617994895183551270144481211019016935445831659535360861333193520159471462106113430994185311089971992070230198574426775376316291002947917251268275950824695663947953527048729905964657321750456769709592917904176935596840870866438381677863937591483057421105919689363975687553037432005353838374103345746201975402138055999424827566968629163255562724598135641930407294441792384112984460495436094769933785594914770264220832403981082792940372509539068492774527022036077920923631168661687735249135181828799615052993704089538724041891287451718416884296171851554349084191340362742145381303593594745134810962503289657991892130895419587068833616510497718452958797281784639191589370339952879043629034230335770063158682465286864076787542678131199993643434549835809445531061876346478791537978961193450571435436050810842314888487825742374225030295512302170661089271163044969298876498220502016309536111026308615384543159581815764504702560849926847293448709919837922647798325503306269175057343165004490309666151281138821332321191424098720549440876207613842278649280822332508505926046255375498310247383345106484957886970108529490752233011732729117940915344134249703805933436533524012950028621529122687250775808718062490804220022909175273261494019405830745731411822443699618678445682615116872909384898864099425278381956346520530312683964307200211544958358312210968020573325604930829797632078369560389170805936080879098132014861615548138586238116002060608354944636843238019771934682110053239895633117516257484643692333857486264897869955205437886325352583490519190131955644763075589305953644830696779234946817349723434597315393158399789330240774996327530799818209299235440995987835705168256970005529695254513919409096082323461632369838220722066762517127900253617899754147026250364857604643331557845562637837776550233038206273198726628921243142309216038394079197095760293069098441217948879418330744804390635015176742173626722434992881599275598592219222237808272028386911064649461890713932748972834340778148085714211611174553032791818303459065032885537047518152467121416108131501303209527313337774871911481140956829718292984769753893835218160500002840362963785960856973765796204510144041409265111702771185530681614848773542499014171575122047027034275469844753410947179791247522278807135174855180704216861658885185387561293985317079182141471687927512243331767854039855520623986550639560531836711533624686422483652188032340035437258666101570425082797829482719900850818892753612531287684299307878930477673362205321270816811143167689283993638703269070400502614788495178103229554414164103447911996517592385052229770815953875707462245083783027913584840039699998122554478940501684025073534774212599740080071139439600741006861237071035814952672216668408931231140642310171731130845331026862234104701105331290087790512800586743441038425029738541446060569508987109703964663500497473827970751766069046933008862664848176023261084044190057754285030401273437973884038299390152204734645933742232772786610320569916921000038835830034371290051642960427542286916241017198236644740037301585275292669655098577591549953296855742950075602954683481362619671586312326943956099184156777849904454731969476336275422043644465241501723777678769162573846192530563484008918171585350176694605239398384089541300137841342710712170034703440877623956706545682621557399896250098830478223470388618548878605427067893949175193976733303491574069288454859084479524983059861708380191766261515965245181296775495861388955412309449859079545992624852344482637749066044863299210616167223379684817164797997779272255493144565304423753812295328227095556491854269006745519349446233903372763573854910610042371259577400711881111472440161473551541090855877779139997610305156902856193546513540299618137947929815713312879198865609393575605576634950370883512730323206511854689145343298064201255098804339083319213013749773394421678721611502638820939922738120309935253191818676778653750442707924711139383056637515873098479062841300866387755464613050655102490372504371832623556736982289785415094950161993174655652523353085113310753566756532076857923706095532241099840047477352915082391785178352332257654906618491512866112546379680541161647989180526732918011893797017895962916972386129262585164654540925229932378875051475026971255614747034021125901839113043129241069156736700725662246326066668275886451840790131940992644853569840354138438412095900809125408607701738274921244821404089439872858919827615450820488916919627055914581343608599221429978701031015974878864683130796419558529573991954996903832581543204592992063857105600020615488506663997701659895895458789211191708430487497257974545670981070240999298603452019656034450794846878584184687915106931971526106245108008902834645841269040891184651264359530215984990003540290464980127326753062426808993798240289982815477379241002050719119253123811838822364922207527044360540382228338706592505034728612674318599991342745625176601220500643202966459980693654212055338858284532231494918272746056110568204370092050951509531673226572526755842143177273814349501061326609590817822712522631851086305307180088244285325834008183011971385691229568265539250815114832738888219227783593250448047360513638931861668470666573503526133860557820435048903658307538101734708698479245240568905660193034951797565646618982738033704987356849787852870961012831687507224530741305622614236797883261912203259656570377865251028478913250613587177961857649485002731197541588246123334547146107485759533316119669265120000372624258403731984455256252454979600020175481140451898598428228780818138311073028309938309515719734831540193383458232301501962671157594518570538213164820674081751599196969801771008117430113950005946427027325639878595740431805619104426973916239975550316807610863930262758114064860226012732219298009443485023732403806758459045387820579603230187460696046829890230819546740855349779153534130607313391805174324512249329628100713612241324849561411518076430066140360532308072706606881022489491612228695263876873390876061189953356634661386478467377533765539037225349517188934999174048815072681319344493686637456017160887840009929063427168122169494490905737681270886068915502249381333033251248937153156438991653305156384137757052648471621200503087667880208065851313600751252921991449007245469647227876519835325415760981669577305718339983892840209131540414731344494403855169019403693068999417196990157116866729169764534449679859735151814463424520446426490174770494467808491667254359411060945348891201251515782297283354215376880344054304484696406330358890311144772286699609927170894428030825079359193982999354373738369477497397681149140816755481309586144326523767645959744675768841730634237362268341973824033156066344347227694221871732145381090847832083279382991388318493669200515100672323091394595809275064300531732423856216939242981994763195602875490272707314045721346406801480136893319436388863926494615246586807644823490911531922566965104345008676536450855492405217984665927715534740442825883698629772079454746207951364301456809815634477699587930642629258310665608681992196548949042027976119717356819978653602182165864058904577218617152933086159852520900607245367079796850837512453325200018509466070890514299167945207186913232715056462816909446120823609381236043510578479346555790229820869676129377501483084867248573165712373493896686488921190713244213080710599595714169887843419702747337876101499316358847304925238838580771574781932028387014420408461361700636417764485655625014437578122973521816249133968081573092700689267684579182162657834232897521712392219652894260779101113314775003469468453664075511645665348811908682762636234810674514151940364806193989622875690078222796338016373451588725490699018106270733981708832103187660118501954487148150397030602818054845669528088469018514957650324849428482578597072240794420915607479469458364498364144724376899847337511763706306061092642918929131088682798980986386074409818807961116093897458713474143181459453204717255137620625664268153762288579427365543203202249424411121016817308517438149155307439140194407073301319683512167934226019190761283400530871145183744130304109091373712551538580942526160519496106368470098355540989686352876763676999706593583866897107321599392653889998804258681877099337928855429758047469575899743656617642861393765462142782933957911559401632814249393421135924864912860261089122792425140586438166944370713899552369882824948172142290034344431490024814977160128097227906197358565321478889611032727467873753964692567297309482824350088267308747586542926273409829078341810680422632923670429119287829111968601393314384645978516755491178206556369968892542024511564016990205860697193325341578129387725593942985434025054310174060703252540321915497546829139746765721279446634498254942069121594487820648471595685374008875249827758903742473898323664662440860905649782338434728205783392696040056051156619880204474825231163252768561387032854623141448531562074481531458846227614469699880103499710905195711156727730152898045406721164117618004529509448292366941685662058845183902764561622070165299723478821267689861045786176778386957902001068599999315212859549695068728394611385947751351690088075642632522056276722786286165249277990052079886439202905761321592811334966926890202722852517902785549354137228100959819676184430069326389689206431094636895285857403848366207204488170390489119289686563830710453572153416020192342657879687032599149915357265257613188259219339576017675202492067829587831363574368289812474383629480600461143976429221770235151039168020501983172212391369531431849052829829495189330598368793142786865731426285814609610459634460598739544998708378734716261270085770815055841325217731633649608120548267517211574895650605883858185693478300724166044797036961254597584876756749409947598973006619347151051846499372915130411861700822049111252306084622909831987163278123371910939460133976729279575699719657983205813460056337836256220912384783414788823409442297788752146844031680003996369522126856641985522459809653076291819511364670284556932472756577478785868936912103227536092864637884356351346470805678381353903465499746353616004368898173398442141343252610963623434614935344287208822529064147144947026748037330058104648665720419127786564272753120472539942865728211709967916973242427254822295910900626708441944768435641012475315255664111336969579759625748817077306331520610539783826224192731749187030384472137097424971153830733335155789036329452739924026061852559620177734050586425691348739394498072975372317083104452385207103625624169684421730238594093573007699808525368691108955673781665675232517215489051290415701697139659708613519981238832890342611532986418600917720923645342744356975114671985431338486998819773687086192722140101976943948486162436889778671219162640975025913269086575502370811733276460237552932382438952754432542298946291806671388633604133043635313651946631947964176401458379764455221514260479678435718547364784587968292160370456792731889829993599019675488865687845387202767404018522440766365369394463075358781907509982433291487064074310004036648638848505478812770439072412554958028430301626489070031809402438113695133489076178914345827531961561640068073345078771793965436619418753904259440550071034854849932662270606868251110021133360300753312874930923495010466535820631257953943276559186579974832553342651454571444043473923837220574540921412149916072317119768417383090954224638547974417016512934543995864503118975933518437992071690224741637464347022722857864732760612089437283413990687240589076701283432268754130462514870352432223451297215893213789348499665017730503003803376949876869651938295426246307840339646733362823537568794724753537718949893940101701991905047811355726033364137824356091453992946345575651810588425598757934979832592454884077060200540803481482973910608871410674573377024612304377409780872078899214941348585083842814836388763999546411022640205694018331314965684524659646731339676108207177456739991977601283318978499599891183210364183219725714711594965041127650692029521694467787291318012954626901367293589752551085002507158861451105244510486692894143010270631009850722954382556247910242934700175886334532820455817239461625929874504537909689420277878440019657463895368749087920309919066486285511107248215562511583498364022623840890958348205992507158131168950860392839443575374618883777171195701229197130041977810184024728687149865938258404325503657009069057966110821306792752336491496824795041035112408386356518737630470613747993487200542624690073017404079766398112547311107728981910926572370047300578832814648509525731289527579983042897409588504860035925311720948974535881236676760661840347061181905959347466729474460185422477939765108942749522437644011809395541682643140752539654585277107635165051510727871231445863212109925694009130748548514725144907790534360653995541653004596649891335886819952985768683110194126398506991640734034333525602741496549943829138749797488395906484518281331221385390699963032170806195811991150663746069179031892919046454063930355011768384568988010220452792682448077565582163699864927159287132378911116646121171077123837032296765029082831052875476107629163542264041812999379526138491325100549440079728726902744199955342493333631477853169127857454451976522427890593259809308094528689490854334696566005248040532235326280252902042023637151915186706359106800849225646835299671388289483100605136500065437171165820639736336291431860458797917553191039353441058334160503191077260108201221579431424080119894784518747789436472525971559849201221206951382966225167781339867776232946615550358514177420724235531591287293364852700835369298297163605979908573522938352528475871464590019040339506611339983112240924203804153605897110937537615749515847380758955281279125880046052307893439111238629395777941256873079084378080860237884322500085656912770901675857575293585689236880848914999942003029273977569187099022657302155998329280024764411564319917584219996707704167990196601106974926358999667339167253928689193273207818588530040501967629270725210335877032936957933220988342505153914829510952358891363478627382842821491824258744549640428795296780835643572039289548245539746725487408512889836581000433910287207912359242325053596301004884355006530957245925940128616484931788665350477537048106840839028060312017455306592236070833201940239491932105220419475885614633156563456120828776358351817921450064512554877108199202652304533209198519623259226767023820247651765885288768609178155089548260569687077229552109067236097475892710666472650768754153353017982477841850657060446162533105241099777665121185634286701829283002336295329887315944302742104238910627281688812578563288511166794011931462613639048621523859861736571412874698711486387236333975705801498343381145785352137807968556160174103916148963109327434717454362415845859012281067673126012793709932811890637265200802107037491710250179903866955343163048845576562895646779347115169290915324992377322743743952639708041338519536606913313761659501392688829235944938793262727375978817629316779731898780463716844781633098034174676082525393321755519482956307150266504993717187250483087975033600460043191606487047405008260125774228977915531958101241034972019902422060962186673715231517243268351394696223250697747511890197759623086692263170433661261498881016921785932124441764788831312738403357770944876811947000760570354880425611765379122344337103155524905856062326563278803088738490266827214751715784377526940583637363488047676712726328088339726394789441049512943340856427699223160435323376135450902861919879628948240299068685810132352519860539978185186958465160298325931324105291812434029015943774825568336677615765843784531605584935920523221675838547521672431247840007528385593467826144904315996403420636824386482407139861491181330612982775630427737734964201598544532579871666949804191357025802208448703393175914499558449195619458635613768267493343648471711153993943885950755908649228871643620560537784156562135921657524985516190352259274356400638494085076301590069147229346730903496119313213737859674558529457027804836416690849307066893591071427686748040327868935674193624727227291003563901585610394026293731042719873366157335747949508843339332078241554323117578821063198582762619928179446590860590568468610243514780508528431887095044375510797396540874645676781166633307654172376360541990305604048947852197104531980195040348467452973347736707036521663738983174488296065170418425349959669022656513968910127753766206590262325513444510396057053363990575701478545599770194420530463610395208948952578970633596879893431496739009718214406879439332974984330069514029919282847389328610154693063110834213621515014490083753032408382655098402898050467323088558686803526927135157765389934751956000625505556638517625927189399997219161517081895590542593211950384683575744503572694441044460208827608193999307234566218058138951577055401097972353009239914064507206943027580505218699524927262949947697777459348453404234994298249680509557355798424498920640600103881948837343269142142442482849521312041979908367109014565522783802348125770930576043785765994553445634476773461918454149638478177223774525799273524061821062660889640983716608273138208045513817604787170439687519155685188500787613722002782434498888970903781455994540004120765300064494734709915518041978654460595987003350061449037106999539328214567923114717439839305604214494541798657149237285627905051305908379365830152054930660829903960479034046712623874074900790155072894361266968889895345929951673320493035517365852515384180503693806724001580237073142267719259411090300805658000114236993811151411795506491786630485441169282178762784770058172634428398889461061209683071616612815521353439520878792681369147260177098521340765159096032253769792675858879610069848050846846221080400706910398837360549478018162091960436838968820354560060464310134766218854188437273148238386618394305920785874263298287106956096076454696430493164426973174325356228138746415488028240942009152862026686950942740436919060434870150820540147876197221081800081543023132523455461833883149327711692805164606165828555088586663692569274212865087242486334613221086335790723059181944426123057966804930701763148943533232711919923292352860793865064962564013518251297858455252274669935985963368056005877607944918887149968327279840925065571353900787231454466206758563850668750873231985799947222900811613239808106421198518502658194164767715566384405426076913573761966100220015503139038176375371388211589585737353540452290102247082658018288974193285784462433676649943997363902557136959945418192403368716458822026515181114728760919881175391834952545661718373158777392939876686906995108866231566448234801283974027025287763235797500838873287986865375804666207217561842966587680425946296946291301552723850044540077966205735515076618463449607262892827842769264590028701707570326282632462269585123223248158179806917201470206445478845385122780089895765444056684443755448379393360874989125874561079304026491848971069072128905658355320229619243003014465085921583161272110323036430123112536166420764959382344347127755021507003533331159257775624242510958324045970820448071693857444678914359481757579319292265362206048033143035168374202198526259590846805314379578405006445041461796915490979747603645139411696460882958011413974654618836181249225348685917869356881240265085938222414942120217729975579859666341173680831205880268126717495025440798653341724024160556911774313795557433646756864110269314641454722640684000688521108731394605429751097172992824775958048050828915412554152867386311410467808551040353610260626594455307280428260707115620870208610141582166919816024682500777245485673337456553672255718801060760170692061158431870249576421455797592167453033672629898817551151818326144044723229638724707270284576846422503361367112075514530248937243154592011436680263848512817977828669207519878554370695449756331884242056025653844652656194733143976190279694524642526743120974605864156811143640097084904660016684312653545804647437115741482794757030337087635746302455227305473399914994238335777654740373893836932895056235368559868864124917636602484826917446269776871290315510676442209174337091795631857587355495428340020393391420052733931000867528548729340694949469299817220545914444294673425200412404517814827117279017076860119363762401513862245211789912562395401293444238309918777055832244882710453038269240833117584211871254563293515573099839701795112580373831600190653524071353000877646316975752552776100358031180325388386235384749582302704248867655332078924955274346467336093362949286840751139304044358907358028303023689360109432104091520195790898604571551905604447291604734993362927360685027493952253484669087101251049141166116018691731765508154049777399886891146670332705062018357179767671476773565924944739053206539945040884600504539925020380397364156870161523068049485372626489456142130218604793521107443477473632749887384345588508657189256137734592769518085437408506212837657574259662492926522561660846132902762984059426287837796442565895318507360802084347205278413812025797889603293638867606764098774698046767739178842980789987863190683845161707227963691629741511168264937742003176164168760558766664668552734642956342399312434019661469682985393088978306184706304576832221698553108160792875894976755272688370518382784681039871040984975419108688856979155027868132742917243215041176409605839722920533001403479049675634898398457928046733052396192300979272545469191330212720003502479673293841494279213972685943495963630338846115175300940078358577044742557559906745104481065575296235927426119075693444860581087053941676569246483513156017412550483274533129699385866636006177593239709047631570425228337760575285066999839508231840145880831979102587825989722176129848566420728305152596036938555987684116329196651542540058349944319550520938968098452092794291076513652232480088149033589440706811230623807882198320544514242772739623491883356580070777233503278239021177834457546205492655834386483017026895557523776241987491788623477552343955436748722919447076316956739218535525661350584390381647253630741267499218933666743171705230644726908981870220751067933925433537646608591413571176542843307789183449239793009264073951988612636195616024031629966192712143322520170052110947055985996508137961756442978052656616719321365075103006217692495388074249046316279886794360092332764324796105785589764044107294983743715752958186904702780930159627700996325405518878875900039534785970856059383971298240436034003485932816571513038773127862026600447047474285705195946691301254025382742568868152818925064004780022461957003904922800974973671333241182093755191953635453297736061822124221622043511606518489535760758603432587096709939037341905216658777483674379414963192401757103171170631765873563823894882623770724797438978587470611302618133786997789935577874789915610062466534530482414080391480544275634431550124768924111248125571639801407767762611708680582632941416166252130111209392849577289929624677173984879593913724669378711109702603678944610305270916871169660632056759045093576154909231109965237816037887854135088338073728188036092423425296753227610355270696479003977790565259361011798184780716943469495459131246164649487854387663702996003020978454099501929666523787293143743495889793479652855260968067820513846123225137356047983926677181268751193061619833964041067616295167215814678343641744270236925645950641282660067320656958847327434074997588836481426285430018788539129498210892405161147877319195306098830642348829141798590695090977967427596097272588417034082414461395346626337833934519240336050642293964992846062286455508068237267095881556382292889493868271859537461982104226319334539898948770225289615091897755966345167112260682065330496390513817625044342406511496845740900621794531052976892609261054713070035727642163108886861449460825089560830784908549571817077468870171742361128541536986347056169156684651514971762018455216930137882180987655727474703554128443104120345443111277384227938807338683309787369117519513291203901400452996260138237837079449446811185229383019251170823826277978086579089541784347583741208326063899603960300666267638584701353044290502278901245197895983590176047998748207970718320085017445672772272689161944317356185511838909130487590469033894264213850249671490986781912583368457990571831459438903220291040254025656324385413015092886410674139414037823603840322997049761471056241925626825678367043005104387375838141791787429474827085511308247254118031329290656780589614877272779532232251753479439724164663776444572169918589758417578600760785827907722604214439107816974934769258644825624076182254895173530294118267010555598485446039995942840644585609148588310582497035614857837257415777189631656745717212502867628622939332871803395823436219367574001258857704557886012114386983730218482707302980578295065475755201179810639996464195541813297181400779238553332710935172618987632670289439242599669273959304366183816879656793131068235243206590025421446257443829329522356087752351943887769979963536859952022693870509529276246827796238228069806946632067808116331414804554288943085187958572427180337030403898558864139622855770588882543589487164070221636653134785243337750050575050592163179822695110465126503845638010530682610438181604646405527822555029208327558872210161042538360528041239704285104989122397034501419419771068899627007425847870877183594140652034495622363730631387139326623555642364340487630528105788088571980250300007944699929479016474758460639796561211262740015751915806816991069957276093865127115638031761530040660577927152468822475239578564582497458797311526094341196345250679508967528271945274716195704028366851902026107341517136990741950131818102544073179821684458676628342233495252260150547447824381300054213925353689705596301405794822009727134244050430871480139001705321966570602801940699730530332128893500332003242353571283566854890097900429457336408396397925752202360015169823406412344844473211803616946765757669342853803413440995329450261223164134273816609367813151423581105775035414135615867684763061308421303811105264278972898609921617188795610547536667429496381175718421149893393575513091666427420263181530773262400586323814252094011773010827756797037793439705148950668667012695395856458098622648001978001441487010464858434898942372327754001114306962854989829600862476557669317434792573531636983284807559624627973544679833799336244412685139538723121819234133387823001235580650159960619323485923685030500163519218063132810574066178532385305651034079564326573387758879039048523588846736064512151431140005843002102073676867806718893992476700086526667257919395471270899154005801624427817667435334094717994563211177711788343653955949590967939278715550787119897444252741083543387424219802829512011072901746971657962859723607567021564818431082506851841979328873360880246664464464510289582247662924565487679442983965571680954100024469889590977944304795854952644693879372783790703071327260144312692635121949083845676585155245322212539037457482792898257411641278798535041499126242707359652472048996156297736292274354365322146173059834646069368000269121908431595112903804575709750741277106218409752287761630190665545790960871709191822606293790182174991267581798363309802779262861141795797036599594547386722463057434224588505973908246830672220501826367014688487374523389527073492211561681504663219360651027109659573032591358506645004318456803728229435906601625272798445276282673092756065728372710624262539310873934798423566760201409806097367554623404835433961767225211899712864099816212136336360325063315657656243084193555490912853355745731163876776062142459773436662388370664124161346510101762901171169287087776343938617164850140206804227246319403268425766008078804738741073171657821699147593534022071068965779659802050628101286673197856474188000632932452792933992207293616129163707326380748324355219924222600916805819385760337022163783207205543166203352112295860059770829463676643943057315356438775772155871984684453941151183218209328706467065608443972709570575560141532168654069396233687482890274318159448523844039124765156936930533613212102241346442212393645957361760151270919724644813177739959966909329094017775520721836250886968306837056727703806334662791504053387522522998199515713391137028641491635160282561618855734196385182748792883872013203654986087734863206870400075219912293173637607466805906030488867054244100437271905599242821000458062139988448339365925532805469119064502622989284309448691216541201281996197749363939767945332476549005992570887131331160267472166996970686343728086281855757841521761859459046764644164550797928393838522577500945694084520612161610147598228000517090594522686653778210438731262051754178817599222978048227801298486358107492180794606554518496790833465981018750274174688963001299485647313997890636628859284072413485343033699165388456352267029768397407772603772476772062933127863903558383736563350082276637422907589570886045331867656795520527315105473144409552338683606741556180818960643590805299854942442369391515323566882956308994097075682795034278359861995536629111821640810138084951047906781088973334408565275739741721634045067039727852432815431618487774456734321123895402712615620285327059292163749831291302961693721044010448533943889236157503624800359259196648038287899859935971180663226603161331508961610339305073194401274555385519112814098193243659181711814830277745674556855839707462560057159205398552054932419554674457162122120684588032732587746865746776835084362304466210589385921331813460741324382664854132073973750410146942840364912051815865689050570660167612564753272288452801630779635124496501262704750897686239613696011832340229109725634697519611634515021578630117268054951393900074660011686935328853255014379730146530322707731813616236308020264959111946504021839205822339758140019577354454048204894764109767476258734585348338045626587152425975992134291547480929470948215010101700132563328196562178039901511916817723605823313595477734444919949385065579000413654230638339630921741886048967801709698803800997917597806604296926700739715781497454987210337335324149306879219212220188585397657536262567549439905910722568774117346281765606720912710509700670231263031347692072255713026569904659353084096071553621517261954475017174239718526991589633032947287732744675427655839094051955847035158430615597095279260801982001348437253286824218661869999667323740975385015190774806211570919239111907342062248263690704869975236486567777957282089611636375964212252465671972341278376162041515940328509965735236157305607115687372202394326694524809764768913380982172524570255407675468427171139303349340482890650488785004891412711223794815116175082111139340208252520685646297799921159000389758573031810346130624606687129477758705049182493374379749416881173882060149566786558740969129065139872344136319867949302903021574213562463601404327584035827485209517802511558521115147672212134046998238006871753380540695925860586947254831198638924079573380880225054881262966071719830009775415158126911674567473729117947333034385848435192330564492957080874048943198721248973172040734099174343618602404719624305326305381183902886766364338481808383934547242512673350239554419818750337381545941880723136348925218607056174012145786623318905987262923096662767995635029529515336067013166501151851102966866557220072491084724599380966336140954054693170837668498326454607761773507359827064280671288547059927160103840152123348201289273323846240369985592263547542648089306028593651826216041941595768432431176877147522128337972814526723545748086684176565937538610309374097278630948941648691934985858980620965672235794509039066103136347213752779309506852904330833390376776102044063844719832370553837125696661206848652001749814418969509588120620809316573671911229649003845603059118550069689267177883638521915804614344575259107699684221598990696247750604893346609143299086934271634279689418597818226380460149051273269996426938754418207667380364031245287314787421170957483801294817737844172772894517816930898961514275491762783699124075307026590415737680236732207386791688427503353300303496764076162972448639357215751691112948366618775287994386956008293840548343891625164284577545808351574800598018061251666626331893914862344974770651128143282139347287131341504906548109178263977532755947540516927313230820562149808607885862208489004781500329134555728078378358240691311918082330462799681480547129360698236825496599194555187733406009824435370647478787087933878042708905055314162155948095826609089048425170540145592410097239820943069620919200351782734611021500541519228067457389679633451296075931472279514934841493006114959938483342076116836560649045694201183465443444836391259177988819865517728534810329375706609467938828537430059211563834199229435234196794029833914222358798253488978322226980659021969044204363930879718613557614723933597947140876626710323579797615092107490867603722110515218678110937648082815004274448983948519318478315617872323621605706956754431508756582291850384155482883847504452485050033976501509744258733918182078254934186572432931800771032607129894241165348952854518248380168294133638472090268271585287013064314223092046458705430245854508604440114628122908952881476589255623455492383192070463129712956714527241545077177601162315492123055095572170121127915268550833515271481251020536586373586419756763924965537991765290764191381789537346406708047441736139559241486494444168878380718443130272510288350512339311775370418428492215396388754239148637787253552190988268383553636485122280376361910371611903733535735604869623052290774456180502349355402991485163615970352632610791669204746689603143936439380282711620802795444286035691864823872869351553640292713151936798750268365564137009761284377090303012353629381375746994062630197772907805165360585823101116045963939985650178729596822038886425738122391938948664017309273225627096174020947118263828499039491474305720044497214583165180229663087160651045468188585368647122235793036986493862586667829677518005565590937853560956344990059256293933958922864552597432818362598331478585584028706398815195016829275365253813446246391959966873377689080807629985413526855032567026164340624870574928576550748925018527159845037827995461571374618722538355507509219771867829621198101263346697454720574293259675964769965647539119321131080436916043935026156916141588909529547315010422606562024808438283893072697163616915559762188715123302256810310464812105589387815577150694568643074865218854304505107777502212814807454527829913034145474012077199221297823180309915851029519020514208014072123187210664315967714654657265996582771150877474522523287774552563790891188394139284896577545289486436087409386855709428542908145207820029358527563768827806038263358489133179019159166555651961716846194128316401083600147619037807810051994944356212781788705469426463649837707738882420052733682972767201644022536184734969558186909462818817496978291161673777458698185283871292530458771633527526932272345889962293195935232113609409289161369232733148921391843108646315322818007246111980482998505454567880660598108010844855989934062216548878659983416707123391893000156535080981571826463024640314560234792316187435387725326813442632535600959183874106879589801191889223830273774617337619389218369346581281123075946355788472434568753692753747851750462640725156558448886674358075858557404292253742372454767867572918663521174617726056511342697301759778433950776898839792143687448412217150820120280336413765423651903645501750630374260998061392862950265707661003107186042881696331610857529010693510110398286669682806305373430603342447806892711767993391973409358345814209664991961185028696754077040681685381363800169330619595480824818838988382415490945594384540044291662685110028941208807940673092232017934854224756493375086015010293684102483489844454117247211555780472891319143507237663628127048886350773044675633311591647607393438766167889846558528262571918400825842178552907770124950724683873069843509116241862823356041676696961493309816681937787870535466103762688465914542747164007145241680536042617528612335878978065907465946948143671016813847755806993330579572238982526298834305233543355885533169739006322892632792458439953342631238513982623581981798628602392204797821230458920767023535082819987127263429728388711395999844628928653961957260746475141783118899846885435651806473683874205273980751158550650318224100858892727853872715461578778950205406375213223887858814441856596086470765535615455691942569947017290645570979669944290789599944715394661210857581002048286329268557676686737326298030453758771551940331200542439457682651477424231014512099431708228244863235638286158113615814958159312122265256582099902983227951372890966445734547736074530433414251389884964959117330574262882768433271670151986365864582962297138932179279795777477759806924207208615802350743516170266472710030667800861092843033705039393059593369468639046545739300392825166862745018720218733710556004466112566628023849067579291079417613638739792846910874289996309737483645255775134229268256826347237806673410624371740017422463989702512892596014426794654441177794186094569506293869059790487474972475341958893384698124071334501731041054482966783419997982343928104790666943700942819902561376131315398227252521472779135859547331861096380843295426687807760076731688346109904678636148276535639364442586805015604911525065778134695659495365643316924335100979076706960361994436054084333870915405512697853962132020054314175357980847073496321051524220745177215325744133356941563731949689949028975585708960498519498835230162809063182790968985747013414449015689497657250520635912235157944042159924060434574132183738279882648586046086728040573320632371696744008248287888380346095876901354190508027352250965999767848855794985105996282689658386919026592364902402077680906260002461656188059798701177482894946546652253342017515100832449861232926610531205417510468244849847421085138281252281552999342903667893677248485993838393078775633453082704190800806095796425100252426489653133644709788626076885309200330358553411375912599656856030511049365470782047931436972175153429698566702518591611126936276897869442495034981122832819373521787442252258408989192649604889133284130163063937744226348679436059477608736368287491073204151450109531526705092821494728353727421532963977762300841740142725205152796847534569043095115560982650330124908627375723407495879889384861886928999746901662471850437548820294798143002011631587476214486045121536525089738149651038493309463541688636859466768512062771328622461054813381968564187810860098388292751997550032092495557901512528979414928212926560156761290583994212728329193578270345868176554678062421478809941703242194259843540786194417541741451676363868933516888386277410219759708421222437471353693883507780155478158639383766241804033345533084409777365291789635611504609710531815043092766091733345452227573852847721864268374794928169612999474132004179255555315694835310704058209484841889624021863797032340745655202436973538026389073274411028573852090784895865040671583534927663379169753526301865679672973102149240102708602171010540143515489469055278629252707817105810557428690293782804979937928858140827207592927968870291681993145611244844752546771490979254990996175172225399234210990786191192725747010101769090939035520924373105118249971081671278319687035725496039046827220494206742627735205896294690992675795149891777792542734559490195882143729823335502854663120076997503572760355424125484868031027102053901477780229290978145143416595781974330179195100241718258503092797825204661385947471498022531173057207125049723825717452209372720652952017448701842176097682139324635312337346243049799619913890516980366698730131603733682579883090337654989873220668562848234961886107976087332559090577130820122144474245129548574504481006183463868521059021544783199946271992090132336004829845401600430956728791382136507851411366351130352145982324769230905120952537503677141370768207881691454172198576957056422539774279068439021875842503020085778390466499395691719424191940518818618554715360769326612711121173492647980321092764991803839273507822487015356263261619775728416069887470132555531727000849083060169939282629023798428549161589881451003580245429994271648172604907548850802559011353287421313070520067078155994819965566339496091497431890960499593849890678568084500917201911690078188310817927220736291934071313011521966686759999925849320468915686598975881269431394513823653246630579734348870920047985013416969593388284161499233303453785570205815282082785827934366768686390195606996348576256965187944093138919039533145481807167334204771240535204956504143394095441251700105041210785929842951422558640019672019541172690220824691281924579927266312638390740296010625030560656587462982029516187117060453179831233979579722655423299469598252242363136751116837161811231629126515177138902943741662804803632322429186406196496348934447149892813254305344629786131952608707922131349651163407027998328483651161267610197684099279835999712089999672634644744163958655112736589529118110377064156208861014009645910958390938204724098751843113713661795268233884733087581766169782909014824229958867246204669683294720790435905402781703310399304031126989699660697450733706070941823499681480989294808313399140480758966854333007372902554430407438923876602886478315112412812891906559961748814531922949890757952360971088697316386828456798800285691811975910385681420422841100253822952509150726423370403690205788976779733769775959837471209955992113943718367544449569317374631358345748222061243630342645778080599217471928876952005882563468333214954381967760577687363750011362106018130730374287684411814748703674957418800507366410146288610292257918377285931875657497706754171262008675210718871319959259289769389449793253128083758779456974885940952070817952852253061691706852271971613384842139803997871770489971673719317216410360432229455662443964315496530130489679909541237334646448894397155427741297059908184754296657823098772910784345797790213827417187024487120036172531669440839513524411986154749516868503546324925574743445323533447637129859722030055380108215774017538350860480372214541632396541501861820729003730006655166435685018079000261158377800894163677916506505783633859413188848535209870194862390706170634791344121100810120754523866449658988489725520913603552542163770417712878738621878813166433523801618644492647500342602690506707912601644357046125140148187883260359698320585445155747283258411199313891786150850215165755047402362410902321712035830425200286584327462068897923146157452725016217441937451063111250813760831402681125721243052356008055707066076099703870558536255790074059507030490100886245342295999591466901117120587229764494102198659168570315491543596830430077994721880212296979003130481719870084309108124849124253523334137822541516863384707127196314804021353002467234605502961427333998629010512439286545287413979661852774336277470307954164259777038113352101801048928092408108525367798931270656413546968080818558524405512075837353701007367605571864971425567177897759266999311476743845037033558995010673508694693464123632407485416007455830960387214382973121000284684118506176508271415153436701210584985958035308353126800438216433472694172186684420212873223468844087616556025768211978420985027635614539012533851498687439478417554317595616887181913378836966672838907454486644349749348337596599752903028462533989668716859764967019711581911655268759559557573265989167505642573093553310850519475085495866730860002589159635496576833634866237446022691658156147169906899254413093221146860827782912880948310283019790789013369661109540162629032895058669863633491442003722698571579019364624052913753905190870175207681657414500876058109594458239535255776112182785973936934029819786702543268105139705195111522165113226061234080101816827655015984178144205341064112867318806071573893304730467098079962595197893455775767570139500056773487698691972270168559352437249040616886267614029868857188062629369323833566796069302691282103643138940335097000157396318771231861788505762717276803196735547270514648832097772343175547803518181451615045981300712404048821601081705030819148711082089120914775404325754323313284584230204342726047816817178631862115463137091617875082387499061804079313900479473534424927325611246315472578068053756101848846531972152456052351146720557893701996211112690080304419898578926311607896187098529700220495557628576693497223686013625900120090404286218154896175001544025048139870316308501494705632795550529352001291907857211212964883610128084760726963752515714181794757237692988246725653105044547889141341179111983177123412951986459700327283408662579877279920988650738614430097926558230832988968155944140867422251327127008962380317251344352711167082822606836218586778562626147369254585424482861457554920814641142087438419530517597257604332954707045845812982935858735944880403959151222518983042533295432988326275928025637086872895155966645712344117366061670083229569382504960828611986829339898856733117298689469107753646630842456535090100754635783348774239095009699674529326200775667872250485646612235271870386441057597850403171853863186007770484811708616829631524016891517343601120275756634100620259780592334916435553858868375182869386206701568361075055983532037897316062848751559198585802071188356761413356139273296306358575666836087323673611874576983753469937110299713343065935742428565123288926573650592282717408628920679376364149741663853541235846599861682504336801764909812788285361868033528962814156480758126367513702615710175539078422689726642533472919591135560971391756236507689924074569791880681465368031942052369195299360626735993437890260914287020591611915313435554360749798913876492056719848032303131119715845562206208474803378677458342629834704106398922142131269937127572835746246125859370734238204260449160964774308726838021678863384163134577801547551744576681965198485201176424370277086233086551014242400737763892826204624522653376481462801460176855736630371120794900072730935534750047293311991286750416748541583974143366625451831077155931837085254838005392017817643774452579023956066357154704612965423175404767402846573838918386828163629538910692203369076250690991428513101498669851506969445256722687539516067222388426667947749134593306302701737402870945138859361943785362715771232972826937723659332839955745814735196482490070751440723309038725916070441021923881256862438710570577731917232039046993560914398213061458283449730037703051666957798338533928325626342077335125108480959357258936896004644576847817474320360170369345303666487977424312430590456689343719948174414695870295533832433709292330510566449696019440502916977249190583090243149825438555127669267818774554066835635436518387855046752649190425082707115656462753321074517797168381735603414067843351643040199008219873050811054758458790055359703683420481249532074544173727360805284333078327646557575908009945178516299143466833348190695498430820148549493574886653209028249669687571895985166943394485002131827033765483030542373663683821356426940801357726222087985961461928220035137584809414058387407349736406104141371804868356328908012565299383994270808242186005539059676582904161159834988126349951508526284474792830747772182319473071685461605889523006558652886895857973784779543357943472362941226776374381271497107792336345104087994187491946730365201674667235699780915713066228052168313760235914298949962731879379419626121949938922127710372616141842305773033742813164990538371141443783790116850237290067316804669922039773760913473230884082013268381431523431476840408177012567411993543038681243961890818513898705832843833827820133968452808431337774948005891453883173806117040374704989109215300382291740475986718656764649969484026766978135149184610969235685161698233001634990540865810359577389552729223686920343346289142232928328459070144720336289646159312576215341819854332600899512686184529463814482934799480600506262424467378074046381703606706271390912141307534666311840839812494785305050352851848869638426365989106508770883185631275008953813681740256879539759358614039079394310060133913210392568536895624551853749954480906923228993170598066321055476290532542140393204625090079483302793852681500201477962801949050689267058388879328691357552656277084273362319325997993924792087268720286511523476782943217324008089153738707949290881728673140699142789122799529692314714313739514004650195167840093186927153856948353772589186481010108520400289396124735066488940422971671278445199271615379378684561773238871437782738400746023929153701298117434650142856360631737383273712323128827836395409158498621137238748404611602962469083786781335762866170732731690274135760382380240316507791328229930390943288783591747624849582226473861777622312034292111133222085098744245140194671669504010907478472970663001400024624649839627717776173996014753683134475728374149596622332550233003576352179043601669500681632315019235972130389339377177005087335110227642296256027955060592629983141495806985498009650999282790911422267529166256245205055754850388869556526031120889734010862659656697085635180379083883414943379348852318685924482147979654144075704862154565801679029391568465795468665429335863614701422927931080019878965210391696997163425789476436366349462286441569871563961257003647880312007379628600791359902647423776526740321113725198537687792510195737971175655453207993303139646797819470433924020420285447023975209316713890966554191097940024325068941599502740683660701641092650309657698657194216188542329561018340563825068974496406342389171606701009402551496838513734029351916363446728580538956088732209906681137710209517523753481637394282225343852224973104714754307753414575584684163721770067660379129816021501109882588132448098331953949002846766095140324870154133021572482257957729103702949713639189516667474372449914442287876394409942224070663437651911811590589339427537789598271689596890973864050817937313926804606208803302604455675399461820663976662223957071070651089604657443268888858316995776396664657569479184431989383583017094244423775998458696859225108602956570021346238494903805658973039182432350872801095039350519430357316060798610487784845252791211401008191245256226320189506189305050059291389434555774375415740986225122724430557983458024191356293492290133913358062448527520648146828124302202656248647771845829940552340172959192461468941179750569491216217569522140718689412298527407979838804029579517381281447530582981228635675476196280951278337617568361659415970541260774278272810011999013421395338140580065489048979169799175456396946573600599452782989594302169088148937531123457545622126143967770768095936461663772796150251487694293437790107115693000826510084770298563086836153514032571704027327464697544550377620768102196513989856823977361338943321500736257373615609543649823155724431726371798970831457309616441128434361349974358145187427279955379459091248928866847975083658909099008960312754151971258361121610697589360858666147089761398080785997822692407938775692333826622930629801275103856618983225227382436188657349525101144211754969958891473992944084751787948429470114566411795849382710780719333483338097139205411647072937057029666025794988019401547709510811228470501874185394864354950532009744475324561138412234880506308108721240581755741948868930448464650780684262328380126276183537191922172692841228022551762393805587559869074463883252127754959783088576211453854747967591599222843579906116153044454050418607831968907165642427867971742654299192766620629375000198290525349722332808262528156144851689174652123377179394955053545318176427101066725014421779766669051385742585189963835092582475142156379613879517121881174028223608125290642304319301080744094161073215616857501308547784372455982055315932254127279755016645156124427270588473332794281789140491437665269713433131174499136878601613562966644672908573143142602376484378127269472717219835128214058303441495304355530717928574484012776224775097986069640078745063815471284503038171203767595099496340365934277851789539881265649070848698643455376013428263352628729773675214841049680815755439706228627503688944500545738150884707988289395585672811780507316648745166892902527569494625573280597311970533991416517290509417119639602441718114483800060010775317981957953302418875289023174319921261491455249321285344840914198774282776427807169660456536778327850284787985150593197201238522484970814885261490555484011391209614930641540099556716700784513495407855637385681844623303570781195933916268422297421309410361762651214356085299479635792284745769408916615444527105693446566547150400461654307451622884029778268202387262359336045343815417480091442405395045138626534043497792771935532243622592264245077583854181458089252871385718608202430545298010619866088685745726061247064184685284010188825190245276986068852525718699706803656412359901449611917668546516275239596620146025580200470209037200674989320060418208467426062679488206419453253587111950435935239704641578165955819053159897823813217635311806864288125147790379064363465196995323908025150194391898064803537169135376022486321457835455677019750642201545871446909761741602130903086256713272161994047073463102286462537453776483623385797579885872035434653858525732232498117680734185901225476901341616502312452064964427630804891774366102647743459980463350146389690837552745503835005380979587843219475148784778224564259250465528820064709375181178796004056381284543999820677717411369174507009599483438792329262068173991733083578577970307561366094240784218843118146540569900508538711355309368142714381104154586730594295552273031768502445948763924190032836097300438394510611384891382997102914368733064336612990457226005062275596384491561721661857555960078302253019910303592279404682938417332632548231559474196525513939034233260152080825384430801098083865901435706223577415782512392387301372618857019522012798712354874713309975764829885195726986797173437344580885864610025460718249385401570443407221202137557406177900751003938300802609203322449751338574721468333165551288396692013537797207444416169411030903485019838092621681096077836549334656971133019680503284672316327898580376176897252413449003139106064725866479291301717798592613469843798180943194905722143921131334436919980291750508844433660220614369836403519701544507191746615761103195562454410862201345586857902804500555073163331505730290065475146893387961130835958668734560690966746252630452029101026356037968448860719530279481562369165117805522372314146579555006195108899194022992075685627458630484491999198514751504565879437489331222875392800857153408718641335330937260891920259030788331406315742652026232670407943446528313569784390954903542917892738515054723132806701110914090923165547731021587266118531906359409836088673051436846221133231891141983553889458194412520764491195477618488374476843359273753062742773842224954826123928541660335243985476571816481873645681903104107045291779084063877366241143140686052983458232075406232763809008082559837646856171646422103812922572635982567387487315315475521146581616144092096784155446053302972853569952330358058163931630878939224326307184247017417980137988941767894555287012380322161215390342994585438916343080634745099515263448208246720373086833860352736309535326075896900713847289469266009514996830471823933833124234412696224621992591419359923887809193558502493869679224779139233704588149282383862884333052535167248909184330979392861321240571513853015104891726466059833507668226626979814520685968383560252203489221598189934679269019719110966507426632508100849771267278440534878060075709303278729584391740808176366333764965341225278441941446253800362905991055163293386645316815044032512372681711821039879973959920887926317866828401297219539229154537415651987105758062017688053971073160783412333904083515199430869170303640734304732853698500247754037565224337865898157506598210127533961291713155837623789721318528032993699601687915281581398667055426374109355616590048910807422729522467136457563927355880907949363591708155698613916521511319862385699953253199919874115063462465720150228950846807584639425149871879526466696885068165038431772804682749487188111967828478408281379396882835685875935214739981181022608120906549776128130949695077751554814124039708898885155865180202369535914664751523030211625071580562501098430538596853363193558973668449772509086309793449074872447807792258864482655225126059276455558339933725572991370216881095612066492097516502154709378579578427381179661910865661392375950109942906674526872686110138967814134167462151312786668843561464406201065730972590067164654651751652840205052305843101594264996988758989561543183654842272641399541021319169187281953381686806689149253421804704769148127499616742824988697940849919427261460466420509045838731394146826256966314908728466547279064307779283022644578986646344753523292692521063638395997446435627314740455570409023396828904751843503041654852083100919730785076573530565906637336446915509296724090398736837153765306701988228192481609266712642772796254211402729692041673760577951822486172236147620740124897688886438215062846668531793272402472584219573691481745575176403678730109569609961186459067527055337157645371245079866857018199220667292327158795260698395333669339332345731674392461108485012042145932021093295503717243937257540378399995170617149042519979826527145989279477167649221018216678605995510690913537347769272317319976411787924940015551650335904960305460136316562614660087269815195829079304119175061676701762103876013366976586749481561484265756536933584488771881274412267294290442866785306499731476862819045304634356117516635428049027309849848013312343609842375839156253103824000273042605361459815366377344873265801161460093576442406780348980826696747382622680734528919593090950354844592554779698625225597035086148443045641451326797441870501464449066133708577300989983714924173550998458515943233980779759502383967638835801591325501325455035797117314178133176691810124273990255925221887006697093508838800678461402217999214233968468385568207095804668575704235500991198548344123018077064917236579119865866250995076462415916916829762140259830692313268707367555381154454969692345940938782458873642082566475430434580611364355193067093863837875641758526255909887586706514521537851518563767599035967575536323341607447714255212842810792788826461907994624776314947355689079261103786560737698866300651384351523296720355382491039775427366159000865134928645336797935766411116422285069715507407990198032789153814380387879726823374443178860071002021843793311098652422894865452459489196817033274353545359812291442482019663288820582573646163758562512058914356371695943334737032548028324501842493212863511846407297295018744542029663275172556841273852615405077198492831172790615343358385439794919294023478305394926823207722936472001633386127960179763115911945438424840795384745937293825770774458034192260522510470287975631520957010553649502818423464255581371670979217573261474358796252679494703300386648119896191676214045981838239935131718747711713295460980240915784542667406977851015144768178773998142956830336750497804866989380625625581558996175401523695078890775056672226197067740583543442198443111688490955537935503056593070337363895987947540856439855424912374637853068060397576365045573318884891797799191622751375864445790758021408158860790671143951050420773228284123150001202521883935706586044981275748318711654054722094756610842637599385834158259537710567181493078262154576230077056798443207682199421247169970545916574922461032615718603463197864711922415531439782156385676200381990047815200907201999221439178691786618564196267700454676217412654420967721038742634183019880682878470609992651305857155358653026322628742294832568427126294307466259097716970328162508027468496216405306317225273964128984615773181698655846352330964817242276433494548129627130007394464799813849657796505948596110777560893115729875293800655626594297167600678003960783023432375543130173753933144067489406532979535236303447674384792151812781175260018996725946158081392731318416647465377965524956893537372790421519568178727453025609533171359897762147159136977530922194499319270369164854970915320651012527978525213787493432655023562564358510260870412804314255114234878374589576997167801333923643336030590636411141842375511227731459473570842661474986496753237822598431987924486564880747081199452589566623225429996509573969772509941526319421199669300314841772132615942658257059621320379598454888039825988007381777510130044413399332162262802429779634380450279722759247974543009433386851685875808554288783925362298675342069022433028081475272304084330685746593047529085853854302263336899852531787303886758781297851497380695583477340542140245640628228711188661903725766693619454300226577533464121754826372384595949575358406526094255714603774180291515786289115867926272387289571372968992899033415490506181954450173883408043375941267480176705427203430354731224423540016143930599106242568248009193808429117471342307984356502073627952233016663472851032206541612189108475022288336325779435656901856758316065951327069126527643723598826327926905276442456310672171405270483857599322777630739404422964562799682641887543728175098847583568993249579397704238859361067976787045131832171238685182644659676195622531798146482305904397853484786953827844112995986825247827052763874949864146697039903147754166541826304960109870541507022343429734440634411712506896053632965735405940380904398911996567099693234944729997165233700646200670794887378005646025425567873433313474122187352130808447998837323649267315265154457790085876394613253056880592304542019650343654970659419152404937097734639325006416080314905506362624903852398805347334239304218664471366107196857783795273478093751393393644865863564935017438391605612070923000626131156087047190358788638603362835565588084222872761926764333390558636740331861295260835350296698961741925319237755182181274303425785348396169312713145481718154154256280447670663515502717668035093922853191124324766827239929715989281173777752212926045712356241658606201708131965148927148997973414566941030994994079537414271590886088180456565208021357487798671555522378641056319740265056893203591486953147302949705354962760484880814751344344303532218239748890294724463313784604225467007599092604777417549498745712853721625917374320473041901706643970922114079519892218444543254494507992934046921635879929533273878455950789729406801326426607642824620884551573952130108495730099316280703866965625283107702830436208747016008434847478206126508746010013366230167583680676188746876529520565856913078989811625977357781355001653709281155494209490963182770865450737375186520842224376114578652241645655833926181412357594075168874689265609906737507074258924276081716965459618741319343556134660760589307457326619738377971397536989240385719534610391746933575759655770142967044665835566772732901748179463501505781748526448997383338294581320594865410926144196349449111528807780683585483845052390268531572833822874862379830530880013175210125593770881261864557391147420459038241250528366721611319892993720018901305971201269087137703486915922945862646367833419959133986809032827750049878222003991596407005057280002631146739158969127989657890597801747514551738991683760530758405984665621937260774318812964104321416046361747087551491390752049423470209436561178168353914862857157872133443009623292837866846931977119138993028380948600868923413991283396429041202037178161697804221506260469604118677323134126816655835105839037878963753600966023248233045398563883266688988191899653937975516835599934667136894268034849852150688083405233201598885575018068800175807534967605114164307346893337490476874679699408734868796603729405795201513621519589448356202915014214999925100355556110026287309304674558681921689225496426660365464621708140595255460417863853132551630189194212564437181419222548819645804952970144770293523061578442101848921803740774398914805223224449746508252013578236682327093666027308114998274191479658265705223048426144910273000461779699866043569381573031408274356820317740179532620698473520043404442310137373383086175788477611459538186838351149113297908349317158074400001253920433929621887744545931432572705763158926298567193009653229462616117983578111156457411852796737938775157538647191682662407157659105319611659637862934387615073273900272196154387094114787600885079026285465098784696184427713943562869681242466719108725887969520097743856311690100701514286931368963667525816660481943472538023636934193280824298304811129806686581648360034002024602573398952705787367498455560447190946772371542552732775729209555903441819530174934415136926479110906637649814856551220228739339895712950216226147227219181532768474433273162688896687159492181566878675059861033669880712340230753088428666935557106507462499216571722296415219288005272583588467201024234717630422034401050985565119581354000136874893116376629609789984191193364645063299911995871394098495435522874484508088827704127799398160775718480659784080062836378434359021594174764375878862132070539280037717584268226743453282606324712839601590415046144815631848686489729051766167126164380541835825903130911433241976505317678993440924780080715138811651006680496313480300478810219371733070889082705928756827675877654911740204344414253616690389297907359554447842623227413622399744253384021063736189621542251462236222508228079845198581370695035624300150492735752760869097872430194669428114010190088147569904618506907185152414899828852209199799868555537942742822313830902647497786717895424441589382507817321237222003499448530060705505183889181238453215058496872401266154220001908787610012440900229338098502397284020414376164016291091207430110901861327127807139836426469265283222948140118119661952291175582468521162129385968654809564278060030648778148195522276149057004211876360499625302109567021879281785821185837721384920618146365392630469891589497409037436812102048387950939366814147495959932021309860597030513310715461064058337007543800549272912452804347282800348898498020502339961140089881550219822913295879483773239454135418412722000620337155093122662173914749392668619268509621967262342629600772676186834577228961870500630032161110945240456412291463242822108451025543623301734576969001661119167386654597158816851381675966980890938530372371146959939539663809969386300886988283812375810247358710688068533685514007988686923838071749480097449217337003470201324114876393466017330796903423419409262173944741974900591291758988403713398113384848865712224581517531178683287921341290426244705868376881133076171548538992574578909477767261974906450320105505274139017279451264099696654257788173906548337835056413096309168977497985661311071733373570187975140154323940403507833982186171461618344775107363246298904796169858875941680761885911156828526670175942090123716119226207390003686998448542604404354644926880220109490338160702385886497552375982540933651083952310427542072726641904565044670082111543549850582703357677471826791602246048347329950148604364790435529063419702903844653921105394695344447930067784447168284332027839178281167944476974729616879607029915537143359151392911454822446643097070661758193034034371645650343271624150275649529763118084600487552938354788193279440241747875147690101727245170331102354331233426855683438135403174538676855647180161075618549855468624048449625935509969846914127487727508158479177202409313394973785961268589245230180699087001891858090744155254594736594011499513940656320060146080073029832472735144870210542928731457763176864546781624720355708510253066779854532273184572404067850294521981831101640069308167152269443054695611641208328088229994566815961177020779361703034465500868718465826756927518497601024965849248088647063970935803997062918780656061981455649432020318617748207516514684247407462348364784507085886338696044906574092966239451382529662668069387737106343138674612247339496825148661488562078670172152345388932208173981432487362850091306802779529950936047074870085768947574166383332929245467264726349523353787459622136507479869674642958526458181082445594518527191759940391539882971824246422527573430846052295558041431993916682048726604154882579564565408320313704080643915150579059454858174617298679618746869569351165497533945868474944774350722601144635575530881394489628739456154770888212970289648921050328539315727255475413198558552562543315525499445134015369057826437172952575080709293108935987724766945364698737319088445184132836290369393690584079208837919381620551464995988039905195189688018576848770219850335688987058538283706953023158362176073111999715801897975337160620135248372652633594207694632385680110506894232133417683857490177550530156628839766513355795210412111528994571866283878807082182667766862147507082831907643554899650900653327188806594675713945573819001365793080947934701943994030052592567017296035324214284822174821825432112824665098592437317854755980025459710720134079298962656460403202748837438996140142679962553879289617496586871294303921762650753480906822272768114726428882883957942510896835195081134992554972523947496314213613274614894877691465983082780133818951079565846045804518348984767216104444307325856737014583038002324207133943633362133912992159184212406878412943606891950834868170957050396599449350009227041671867934245415472734836905738993267366564916549939750488732517786127753598085908204427449231838401706104261891054505267250695472435309723098745246840280483061490756113429781262701366695230510410409017184809730843687458676779125152401593773100442469125681360802922944895526472566633497604765997589399206329372577133614432560698890653333405987546901609081465222088218395370877754828034849280690456923836018212067074351951586427243205249006136726440431844580524164812137603572870784647375511027805027741538755411505110711109510621549587293288291599755623173600991412448639155420054977696730058128207940985676171131345915144707813521295515573426549369080459046541968451198033444651216451797381180360699761055060216887537887064647590801376330022581644484201839595650266519585814726929897358442566458142294159143191285708637590120306271395404210986016759434090017838324870817302585550840544077020804689071217755872481654337696327437839474066609959823538118153641187107987609601307173993060142815935174408829719069757587635353214191676877463425415059369879812847252103479652203061775662110666438605009392450206707705110161733279326514495946106710237735875288903195517114471056513382039488208388063583748454224949411682553892338355515858599455997995499788664448979525526032931813540567016071684102096561203761116331402155505198326090090950307445264538722016620199737479044169246643939004461616060819040620012357524716138163484756896713589120041973626045885760841551141982975450550725185909355571213765322931094620331254870181135317595009690845526075622836508589739376394260991788248349171253081488565479704790941160115193777115727837330756702494352771498981278461857893470675560022302821263161741653944825433557079065642210541272932648875765310353552657663328512200994169915663454842958223335557923099483676855059754737287649542095808058879212943600297825556206907093153523746059550845020209162869841864926910052564730678756693143740171468404138129441842787660309254573825602276252568076633849966594854959901706170364703626767270698746745110658554206835484146142448272453859894654118270597707698650805869484798188060904840812583995924671037124831558232139373637729915822355112637759532614648284663133327946299877038815943078551902424274652099378870964595941894813775786195359878141163325228244204152650220779201709838168757560112630534680972631399740575757753576977841831627971305420835513754549072165113220963084817943271424506210345817758695705936713213341913210489071829855359441274580679612008209626041595830939661227721098873481219923374609052235012089396717823339018943999632847600986681580256677138538990674181684157096086325478000062215036535854970586081106639377117714636029544537529275221570192593053722632894822761476205678802078682743596820570588016461277147130601836143378598711416063961881432818296136252055167951293534919595735433122914787047440209310672946822580366833586084797311222515578210842139765007397153816644910324719850006316379941695002420243418215656418259558975219108865066233727927020048224081367269215313258507135093013645038719474003354494509367757356027151944874352255578667909101489790134223503761073197129705556692746073461075658573124048459792968872380028043552848194572748059994450124295883183224002257239050201394309094987941595093252186683917128026548364137604627248574759317430806944924380651555504193838081626717363816941127362060709408410666394580075528850714972093662860882360268090195286817315118024737537979518359693483047266684886937161094301444917902920342427727726274659135788400302479398554652868966336969837567641108494774048550308925295558430066534764616288619513872457602157022731539624686567898428895593441374969412546633879799122315103644944174559802886310786901917595216019638225511974037379912106897466286834692336602691370129123228451091129027013652770007772144393006496787670512076638258966716376645052482066412320244334541357667075051415561729815127951911430729768541602904120561344884809120928000451242086872055771285646561674900054887392177064758716701677367464147649958280624980045016869512165978801868660066423785154617570370448352341618024677506318889798741751840922122970391609938607553486924940071117401183375414297339321358712083701743528302975628406028358039807129553309001667194274291862624278536042675916898761794209246462433158269433363109910474949123529834285774416402738690390247358533235702978332867350548234205015185877059487899928003449046372450823863049679368876038375336773280304786351279704778564613475795721543665168380673311039470048671699112838743111017009877604361686197106492122950406056511291521490077688729510315023578511058217088385902495955491206241943874225155255101881727795318434667774672593915497962182199881583767544597350065277951663205991828840105022645992279962817593706058721575164277408693970392010048731624456319994787955906348854716953756631345055789582793353439608082452541333581718121733167341164325919316680762615409674307316205215621688593289119927061281997869558694972880551785393334593017543738782724930924269254247221822071933956697836849017829541400099211533047159231010445591623723397391314276166811022561640528513497959439383399716945935977978825244245294072057306900402836693622581714563029585681564016387368399337723881368363054723607072832668346087882570578700863383658165861711063785057427957142643729540147394223408064173188436553893363125073191607232633564715864809518107763171048683833776687760518198850953632467124688856197829465963255849027455065257829653323861916319074027887027939733042086273456312840451071140587390364293074364559907692298922601320259824121835095898771443879614262229835221098026531655367070450451773097309527079026973998561231013561806289986762026716710792530489555245696376436654968781623797810121072308049522327134296861736368409764427020590875414017850117763459530676544308264474215230781139619958553786049235702520743452541257478774125885467035552630446809535749434201557142236027879524010587624274758052300042568788537248690314135842230015398021432663125474997218525330081118579278583197644438404597170550396393104849599410530190828474077289949400977953895219043375595359543737612297355982185427926620906994567760474254066719450877122487617688834032709142918531205721010325606693019160070671021181496620243555522742905772920576998683073875308952450990689275645513894911804674121872322942715878494969471830711769576283013184997796930758958190318692069082045153114112102165146947973261317813443844042975427729108284516978415588490279427015299106873425901938963618633465702549655517034897638654811303548395304139642238133889481997983161695986202938021317448567393656788227784525406086975550562607744178813496994324229473885859980536429383114379538615152092937141726375417567655587311449610218002529068157009517657825619311218695652939739584459985665849495811881837912114190105325225578860106307887284221412247016565764563705956585009969331959426350814997068275656531529860912956347851663183479884738381498005436065466406505781874041280901967696790865789880820189906881341042325879095205065189954002389317321114114447412386685980007665808585767721349958992348581902539263548053524042977472043736200725768504437602048766572569077120418943865178636881538998232675786904966663158941766255135037675377860710127822998669750173972161839430666747851098149436276590732037152674890777548685640467707415736870011229171808113035633316416173674017984371233652511356559515536600086860546138739508196195388045812724258307059796443767452302308706569199875123529310399518600656717874146437199158827442755790375273758920978726217890633758473440611407283027043143474908335330618251099127122270651244027293231755085893407066007123397854472459354720110428104746466033840771177848463423614238822435286995051685402128070956143040027862455040309958640870017846493516126757884448239237951615108916807263377671182961201098682360282878537144871616904061189893487429053985646748702008892906341251695225652100073525729779618717682776608122253541098211646604572335930708633850289835286234642638728021793588487648887141761599543452691671022278349254990024435056765241357610487651571646948201435290287611781545069811025238930752319400647736608052681630203659865530241189264674610434039763600268993590041280566568423212541483533713642508583380005545607894838534285816253387411582329079617231336134075130091348912540787305812525780043224898271867410112380033920466525821570746859944409190863545978463230503553398429154976370662897661099247389488874760709288822269911883064502594289678206119894400046327209291727857931536105129007397058399732321135350244178025319406287908986325617768696540144608586351380996177989529393589213262643922087090358276849144069254783674029196099757933706448399687169798956536240808171320279745312709318495908084408690527425178153216677898292997463454098563306041632624378429759081271903943919713767795553808310350881679549665565412245790050618242576418723943616649027676111583630144841194941908318468144730988672741704192210533635118050438069937589701968391943781689320817191642315372897704624528988773497173762306797260075871668211235074498245524186584056344529397511911431862875455396568147035031663861392593916660434403395536317439789102405669057751266483516381312161819893843032673390705342850301221213092216818747263120396931184055875705600060523832140331437012183057060879650488514344718915816733841252128481238891006106162581498080707869335572577074880621592681016389208881769519716917172190987949480846296440957449668078148884446048047315116604629409838856992215451082280294707685081846409489444313207698181754028863626519797710561660039123546187548308951552087871095603991809131595730743596515256036374697416986596128825448631795616290466298288975439884032776336410026630049668872731903825001774848211832903276698944393551830491151099176583286068751017004424734202110145383149379396806865754927464966629002945496109636703592528854297128861578980258111357909891388432759393022862936720504417022706130182033695981918013612564822892048829765422137443825952868074856501775029727372429226944596923370870997786469563360543516207409666700350797892660781800919727936178885818150169581157548655543066375556057176251245936474283927374882047347896175894149943834149814940469273369173567055788277842267965842095674477970592882929299509610079911030658330879672404078757195836729857793198413766069906585145879856329844724541511085665412237458039541914959684977461655275885775929478827734056872709801717388499870316807424624370982458663982907780488890516289893245139875500498745760029622154939098090012859086608255239948446479972036120262305749032719208897853697053410279123559687855905224235814228705653512735898287262887098150613814346609087102108068844151915762331947152429776652726366175805123626345779141879999439521842118771270881460798643654701695625178661109237182887843932985784228253540433830553156698716885098632038415951919325857132615576151592101222791907157842476749521620532778681995698511306115497611824951512128041599082282651643834888198882916496330964884526294402538529008148654300274664377425535282327920892469650586036806091746618536461782946652560898908947260627930105642606047873943998122396712214832011559684674498360350760796709355732673149733556591361667462956476629152374083729810757576714877831264015861803429649964802795723332896106565846150954223665770740243056879183694127483859347170021380000148105260307835411567943680865752536703821377649483349320806011537736733848105319468728996818436033782898447190045181279062233774341234707161886372082111974507684419305497099580958506785356258437275865390980864698212110839847200801453820537395702952117899255646494666722908210360294379813012158635133909806673183142453303863288396142252033157226838152092609389153783633382218996475444002014596016881557196861152033171346530907968917564541484844725464163418158189636267706330833562473471352814693026216784294081573488667372925761246888771602027065334378046818907276581865783278699042744813720338807570310700260428177546341744296765343527630075389387984054339575291260191382336501501650669403229011760609708091820244240549597794755722574633290623011723013978659507909989278828247244971457090017990452098331980914974930160374304158004460541576810966327650043274023625142442945248179182366416867028585787783789309216721884632821764488556528109887219623902659767504403681721167554508641741849897294428717886996912674000778474797623472400875216270621710302198071348108477184976179354705797353700949739203664962152360481042723563828840995294466485629178518790496976202241960284345138059751363656526488960141083306150390668397600124577600168076920786889237327627644283394427782959284069945203109575313122342899677172580311927269125339516335775542473033878504142998868483586881012667994385052013330772797610859830720610381306906161487090677647814687068381975439929778080490889277241440015102898379201577541054463849894010660069186330477365565512061418375665703358204207284834844166745859109442224674928314017556245491156416215456292077973789479596946472109887040580407862911858431111489692596863511857610703065402410965390399814314022829592442657383256717624112886952393516645975012783973616898885911644224657201730560542790082789556661295528582308263134997914229252020731438581699301912129857604206931542652144471547328533899447592960210568036830568051942099289333045017326426525856116831401224008299833784529532344945881812101027219859766637218744969737398735556905575473675760480173989987212365137802168945919058512273019504353062434106772550831503046497956027388684485986767880610334747851011327763487661597802705212391978833794207769720524988406110335659241161234909958863269011902379351522375259278636109757865590046412509710824811546696965074335295914163734412131509940975210695723206451712999427233977396306152058579724211310799393605331796591886551648656472562617608876504255937153030650102184536361651113757809659270647897282864922900638426004037832368370033490262970253334878139214158691739693560623673950464161594454741143980113448931272362169161174863564523204070570687098394220304973847891632032777417031608732735680523635976717475771389471100722373209981122303488023917040009868358994844726259251149632103852379559270536647225895726090907023918638666821083127386659257779791381385917670134346740882413036810349472985734486431936007255971756316337575470355777494887370585632146646509619846667261251226403025951566861748960999789165030678834138122823494735415052846537709416551993465406190446833067134636588464515750249557700308933526795841329075747385359516244313653774895668415388761169572562703734174678118529840472639237208311327874807222844653332758959814278838175743496731287553619008399562052908212193041321853839036194582584162208048102218440494425435597741472556316437843093001082853337251952061747372390100140505833288927167716338243812510525632619314549813119877772701398639929236187854251777888491423074438305532274536566311134591404042798430988361072446540764916472043622858232710230590730545967867395086527285778204309340566770151806639997811657266505188549120686517242681885767451988652219769275005005280264010241567410975108580037170545396536919344410805225197768131054518429728697602275496622256786589647675049172614213661463237754291388795416218120663650168087712129457502975657187338453136661710792145591092177422371862491030424141552563499247240204280033789014084906544492728273603832633905867678685390288570759615098570653563171238698842658399869042710552971946222600342468817653116272527935217824017341216811722984588159619677845429902685135926567725235443628460785076875798653293913818371138635699340858759734114921311951109266561051873001751100217618798683835525433878874160613692967360249020366135079318131944452997699777609987426849923474677987055043654095741735141499483130946306431581595099366157131484793893463252051340290195405591462984803480432450980289507881204444362163166196350056523412020435671903160628249049195844707872085851277984689552314937022891519069451964634724452758371777163169417620002539167712992533039996234955282640829182526994847220195594398867651257438880969612587414436686259178940807537677421601970861196767049237878071769557768425937059036879219024641691427800045609532855951838696209530594800557618684398515910048639015291496339688318874078817838738551429559655020653240844352694757057457673143098202493065795389873353559853916979365007625875345808188817406736260570557596542931948393715699205845537350707032136303739939395529013128260778657781273382555645197433123739562703674541243849075581882797009887380603842380453173677785761396781822569289900752057957141827576748749190081058533636760191525658220148176075295256960573669869568622853327651636768141754631317539281637278544763383915930508625090056055920190388468086120062867725129835776249955228044058517534744458833282208515331426984344595704408838142206439227451845699367772496596667960314444703333531796578507834275407582686177901683405253468856451724037036005625131606544651304955951026078650046149233695602712727908076725901245589288660704896840623737526855600092772689476279272564346361811553898524877250418081439618682913227950632984602519545043287857391685517583326567779388773381061026344763475618046429864155331764824264462327045622805434933122253299203560204588192971539723416682304252646404552406494923789354876441532301282274078976392732275884675577868786535148545805378262318551478436657210344343288530856790954839099691895708368975452057768637986062710194998255528399667085773616867301857558271942687678626258287407140411059345793969402258649597749238542338493888999545397651851105216719622287831687024534745440058611262868686644147981640388557164372954892657342840408674919516069557320636301384188982278658049968372328092860831301023238330602261593406871619343393467797858747443887185818828009362221485757521820053783283435870719228639479875628319065975908008216557007364411318016507316120887443185128755423786694337506026765117141920049239687753880012134934913434091155977655500959581261958246447989893327107759098378491894026962213950638435037109799033706071290997199086216977220070597545197570753762896832209584661170671229330062904699129701823558151953444189358424109032601677618298014134630775665475893116118530299923091787566957663565974119763499799794330774746377647130838768693344559040614082452465891519780521416616276171360759745301823730722969366634823285338274407872614229425976639043641429197549389393872265135495430217377314052623954044720388678315398445929654455058762030088217161203548005668894919480556648073626405777013605225935721017266196087006216939316547563426062270414975060925669975009801464850133915198753359060722229829193147836935163856977069322227407244523036577492372505096735827321890082402954745403109560957083496701446455049915587811794468138511596003888292805176405267336067964445897958686924451065238764221420042596552683883782937253589578901456194314810283041008011054990978346435581227488502386665891311665327643684673468936444927069902915851239813857829928789517293871398046420317661096535585584476714214614586650388858621530612467960896117670397579006292110030326532516284586417061493995790050626775663179756346075479529308458207722499800494288820704878480231254806574650219530229252969548230213988366255425417095693014644185826462282502306465680792300433902564171960573979191664347392161664083755971052393099878313183296103106330818735256035456106860554060039413308444418553009340076743088617800612709313083082242460863194536642013597162834962638301596847314755736179509930487086476382765872181134187482624194119098691015683795607311014033782066839775397113822617821210115897902666650577234118595300215755444764231462914805070353344633299553974327190273186033247437473330411068482176505812121025331733394010136218317720906129036701465996195790564937390320184242144006400946416838526299312284998272080988651174230628922992802835754502363326274734351650300816249783657220457189050172587375620478780783694190856051818293527815850723237314082450925441817667979723636542773860455723096073042709496670192578977011396817789648063089897794097044306799694127979264325829870611079014169640486337569454217853948118432474138031612567671006657126591417807780213529362150399603044595547395116958374390922552607384073415213461296734208610655369377083695660428382847574615228773279133053014966953174268793100714639532090678095142980891187893017074079396148347970875338760287121550971795094014264941294937688353893541341974803034752792939883086278627845675849618077917675859912161883783587263294749207440164800239016440677115624366025262267945349843469265500251201499436124149650413313137942483704328749949271455512202942225300378982889062389940771948362674264167056699813327923467616301506626479380385435127576244181704582840763514953264758297324958836277987098272373423951752521190992335652535067617613528895732580109775779745851283923738988387922809614346098369775911802195994034583858162178178689228128548632916299696146607750220386298787388746451630535665120383303781836619841270248740941435874010927037198673380807704878737768173665127222152067830719750234327738279601332887088883323091380291564342527680866263959790275609536399777052268955749121749499203452730998716881513308990231553119970174966261348610483250017962155452321741095393265186151719890034725411730284783867331929478066503736529126137440703125089146119719301124969317127830261454397725242484469388457649807771526575212286280522275753414632523876266319803878439816477330678729775059203709592805272720560051713804521578614877470618215963524995387775310200278875238049812330302159067904141294622512048739579848872175996653955853858038249846502000534565753743967449842686652346251527118425856203374028266172228446198955667603994581005315210297066963176618961061019616628179267665674563162916596272225202274698014978393137547276499454452117748037825232617414987406602269546495717633493282411480007542505634024951114622872007509283576491433652858381527112277536415554356456969333136021820319281671233420435469038329116628424393060285703620550949006067812107829103963433652836833627850877057641473513407934036495810690642979825365572948213735672884232497676481516943111255641149758506058487723105710760278722064288337675838602922704931680230015114724510699121193099556996806337376556532621154464563540680824871294892558345999254366637570816155331363529774610438824613057204509538702534315246314653285352893810120208026358901761021319880639865739883577632335563028518129645793476987325267679661241920799169539675721109514713070129820675922601929366430657095577214940511661873845033127689710317402981462939763054216223438939456508494928243932848867342169492974787063342183993981979989284599546443970665315141579794240490862380045238671796057816081995089338199527368014485982321725757309600824419168354350378905304035872194651162970009437765768666674138942069069862796886685038474894161176735589178101526797605350782091920356464706579096801823750652765224598849984139696449868049393123027907084994671584336491729228886453364349564465172421164960603699988991278983145341548064229040969204239097397178779989572490545560481416150505212619308981386632964862490509622906066125881732612717628442179690311274925453047133382720547129996312817545496153435852937203360690917957334266492534778199575284986822598821495022555911827121810225882265115836923696662806110923759508462758625935689743346892860765294627105642623435654457354804176725755335601449941759081028738542116050522696655272008900435406741247255836152483571536109659709808703783152278191429566847763232310629337268015951739150922165118558678523017659110633250705435077207805344358742077830426547135701768698171774012953745187941126624476611027259562341037471402295055263254361486278237070999426904237200831532191045863791439608514552085492196857693523413632937222440147809529807871088678433381294061925566244500008751467463509608542907252579428711382775210053376225506082557308872768154794458367388302240853448705270191965041158562824190146255706635145588600461025057124062245274744134638266458673066278644144773144006508138466052350694497836715624898801267527644385036719228301880561926952604715605745825007882377795703431172200237648873497370520948286927066190970047981267026081640607339710103497187737598850734987997700929725288245815488717489910173452081096347116880346249793287271101385055340320088773855736766688785878697433445441969654322418586827027623090582081741966062576402682582791285878663213840611778169690596461438077552937686072455435548531345493963950363125540661620628290867222108227539579294062808989945890586149905344546957015914102813087102549040686380664089381644195120944014356491433538249138535472002714756284847325717272291532188339144683163858933045775262767340671558603691470517218667829227973178073803042909778363297854156800259591274387220759880226832109550526086157397937600304287556860613996821247336005120681533173828584894666255931278895672457443899035168639357156341088927471413831197057567042107586281527134177777315450762478406031374956406593255654588960498026361700768236562373507997134378585693103805694711191442551582407555122759141638941908820310020297584716873018074720732350155444623308192679732202462784661244117935250553278175347311839218816073748636401674422735321665566511480058450687423863028987439963673028760575518017048691362724122399532076916998479578892180929060577477722431546107344066105456334432005319886019083691404742764280540432558555189935021743868718166627923955938070549650012918250511254879657788814456385014183375090299807496870963583381506780657067273870012027274139606693819585338011187984783395405759061401962342532002700816241181013562619843991583968562845422481464899735588913056104944739211055441741108499493765537065685521724844626582115383435294741082447146520636087713793621482869244965475433643878510776694907726142706095054694980583477551027916919542857728812491298949526973433732379467542681210394069523713314369051782198251826994614262608576972842101814411847143709991694829628162349455768155388819476310435016990024493452158908298541752769728089258653534553559620573859697673117880874402583859721041006324442470384210925222440287292917702200666789235431964521732529492076416293793981914976878513561474592483883083182615958892887225752823675364044651784074499385554111193286825069552934336218259250822282112779262756892564267176883847696887166735954408744219014486485656288136542547597461893489047672303890113538862941763737242731464495135108902818407073024846509209626543112796499072817770850236073221493652569523200675304502713578300307400319156355567974633294507688988875973024583216888417494288205591541153526117311158284708408786164081875022418579620805419810379618727083783727126332468399062020037434605260109420280850238487773478215443164530386429484962024579234402598792210119581881841155382153692592973060165234134658993359036331626715850658439992420097037232524357277524222616874904409972342090531270090778342349290524163222583910973506605144983231664472369883443917632196506454500744940855874485897448075791642297323161180509304475760110519593527722582075683204001933466547117326647123988785029244170436696455179106212441516060014732988197228169150264726524795393147204531628474026134099764766859292062951278495009331525639170369938785097514121599635331431404246153315421083759607016827076849367499719911275404025567341826810834602357897424518302084397977350856244301553216576734730666118024188924237464164405810870128603730871549101199204695149138199855660238276404114866788218777938403508255706179409504687667023160336772302728997159061936819265752781496576369006101707513360275837161458241524136035613275139299814159101975748188246354875452850519213548855732942431342236427360887788027320777433811596085391683803420710384312740141989689144842445530350142825260643745496818690203814412835854799570380094229185064478200851644946323247274858197739310866426320154851416022596617737833546487562518650906981834976489890654515601211564087393974516783221405572788693067340182582015265260348497229427509723706028274020155560268049057279732026078877129807700772165246098976257414290598110386858625161081499406065090261350605568639418360274269943393251548175061477475211452252933938692825289778681787665613544238192350956900173165020029561635886444631541228595842065483335221809401537698246717260159239212784152958061391631730108855305600571517444118001492734660384818254647358254455094224301235904319186436513458446306613122979847319881353642535066951958216862943230327129345911389052094571098717449194233267610594876671863079122216831439856928810375023076409432300263974028117330603424961558461380599044235974043272961777140652024610124189510970051129225350423807265519288139590043469730666573244178742039581525339406933487396287242587200800327890051813174029381727262499416593631364606095005263885153193910079819938418996839071458093992055994883006349216970306010273936541285301566661007460146737894121579240747645117792750571287637836192435913900707720763728041419186336596505035661408494874414082115696139375414458179238987878371665513207943105969743375994603168007143978772456765142834320091847300402737317072904734387959441806090999564316454436155378236773019882857445040777679471287351920682477409755398845189955412695552181234676994442837974943420914980267327652978981448495288310542091459580642230951662196463178721792985939011635962360960949314085144080234717678779113657833134770560391861233057953308871140536173907441733042288213686944743168355362846370967707431194109013954835274784684300436357801862812511405052864503534763572981052984450321040402617876722887736772589503506165669642928460589956492664493966903044988459075717111513859073001663699745680754642585777876023953225598356419944922070581234292950736263891939183367881947462535317976171664513795175184049968836103389440022723034411676497483599733823883281565208876969489061273489501680632312807356022618996629381403044986396953167603001989771558766976962608580946153465489831000429209776567307001134772303370048927024390714373967290170676146973601588337126329969855470891071877982181144721284981877920112387325765397145733790157766207871100667196145276589119364867689926512667323599599448351848153477151930207334201961217573266509201546863845852532114830178918160178335981108813141089427597634556651345298126944559966846455452438156287435297616865361310506689992036049797862856147348739940651830895563808280463053699976275235192106494213389509483387098340057822072487938817620645870873386036645418195097602064574487671752838922956958563768502035860581769808278608465475142301285148566339528614563779360700716263168715296679376634636074756844025844967881684412100247681115728122717659007551029189414462541186206151298775345584404452049655280688625259164703198241256062801108459845139337628827591912517752632513561234847813931238170700053311460947854694545035494261380562717653284401233240578571737403561663543927914955074540243526318560845428376086624675422517534731992089695422892275030228905643350694560276983127142877174553372700979126643440392650279780031007310267669034808603776793028033571094605832789499385885284753994456777631402749969037559678670649193326582798377237467253661422281729748730231138161741629603168155777128269094887417836572848124764567971645974189226102178673891362428812150125044692750494657215296045184814310286706394708867111422874797498521097529190833914714540221588426404094643383578651220266060612372395654182522349446717480950578087401681939645074363485035052658202252465889351563774244090642711604481603895744280593022262262735237638072568262616490719679132685754572119889682136622905269246315798138422405461125581399600473397176768415963898774191412590139574903481782908682948840951179168028983112949539402824157307941681464868159009323407159186651788488710512467989658352076134287303679525660762830419036440317218709105342014228688531284214257378355695535475097031051463792380456580452086741572792543682653481240117066543281115631217764161662933692233923558828019614590473381896965869277484568553420133657443283862734887796630764555028278272843099730434451590894975985694553963159175076789908732905742112507334613765593868004575864186788100007432150054561224626210557520901386413412082452105332850004735842584727444385700108536385763056937347797992096146679653635505132299777374976082078153437180104811300263720377042646300370048659645952559392534923504959463150593219662481058256032493643084374178133217362615458990022489256564717287326300136142484219491298922688217422833369448688688804553928585557205887194842597040292701177998145273151728445676188429548187464607332157731885235145544194972748802437920992938513143431676952040261686509859370676730381380010612312128540937731000208025364487024544849835375816823057061201330286443299544358608946909590429202077370691887843651673372913353327318042780250525286663012170184854997506156582441165982324075907757543491062441641284302869351062300897034311948346676623986464245081739740252454705956902467719231161466026721820253235627015446294942692538355502682378326395824417738911090686636635114680331209799892384497960851851332756661937686595469415900311156726774706693961772141282654303674535007059419673003410334016432654686318875443644867316581889745968182891192846481777569585746301411112769602728874705752301360652001252210780135581486059683402792331741165971931772433011098298554982617889934721596293760916825464227891530309591851870605121062089023509370887509673444031434769875062014098984628199112354816305591747821467324508262897276323562039778143138002019323439447601724486164687634126332534303626347685073894833204040469987877883421107603110881830987475661471106340220262790506135686167820385676074085243980529517382043115029584183606548367265013580924064783127505302056005539758000279630650478310500585949151188317662572576955440459893425648003155789261159328256061918567231554667023303605888033183374474785494609169876491626673710436570138650157614612879436859283412528692341295070567657267148413574357582899923933987169960886802720754733590310360971139597896897178060431244125514010513192232595604361671746228267600623086516401798051002002454101893171578434554503991667164919084122793076304394693911506788563603937666650056832205744170761457796239719859022445608132940141255379036376593117393639251115684078878574109595231400122939438439900767681316166025829972270698698343157623274798549162151795416986017008112237939502062152484544239225481865884398858542507195538001603257669436021537078518738281418508856678034086044050648856341252251521154846943067458318713330595384062982680460497453256182025166282616709587529754473092885018179762032069741574777824605940302814454040235056847854737292387754352482150260208346303738896661357081704619663227610068480210930444594129099844011379231024758235271268669733630106707211071890068029247764807468551022220449576922594699700723876017624045513374424926172295641150923800833960656720488753656151481182564045512834428425436554633189651247142473477008756905614149274953649025892008272060134979410337033085762060568088889099561186323525216077038693173820183521990350468767766996180192261626530601535042624757321909282080299836433604854383647646895019223689799618998417679527817480130032059476133268397841144697220258988645635728830697565704266348158745860851151230051154392096155515804463872705896755627057881862308604736190000743619738834238379707081491719711476884558802283146027519503888034122922434746719569473964858863044529267000295407234867169410780684309331344610149761221447003009813170976510296710302351576027039923953228762594472900923139150957831119873434678436941012638290951200289285198222356101673439501135126890355617628828893125992209075972642245670901799999827192428520106979217246421253464516735740762127341290537658429199330758173654521244792397124775460485310070103141700476889732306245360203414199357731679714369899367039464682941195451370427800480770651920919011640899275119356025852422175341623626776095647483533475403575832700287878324177375853611845074572743601774633248886004882919963896040057607198637189500969875814415004909061773771260496388251310818101711443866300060723756013229586433214604481020218256759323088035360169533909212389170375921160963490939712866401515993177477943706543420493019415973882476941214470492944915783356337896947936314608595615759826163440228003286329000464698792560966742488563288108815763491333248902713578299214825922103413095241443241396351039444164964570173009124620413082165808958865649134059695345677154767604399047807248102093184105117185516686259560474733765768927396292305157058996783187510846898009669815424053941030571289132075799235150279514924331796135641825301749255235126563687465876820781321425073569459118478159181529509622016979253250202624648185338803677213404969623457394978941498409268789740728890305308685899511370524142815571747597913828272448914833193330419302936524351314590743607384866739124293989698411711744045850013631640258284449794412703892514627621287211746437693528376934712463490438296601277979290001491652783219208477803918550661537441564917286426888863326665174446435676662442493692515614932956987873943551450585454848085669318597096919574174205105999246629367236501525975203851751506498506508783646225823875412778745893812940464925039425776447175277840051502790279800807587804430760305733310870537134806663797598616084526904254761355073345943438518605895650637498279625991366255792980179904544284591454113629474893958176044841531568144568925541777307213648819676643914839188021912613167502630060026629076272385075935640992404210744773143297693738801664453929176435160012130453463528854082691679588319535397625958024449449141713302875741280428698712774617991323968629245590410363755675143906607918685822409306284856979299899985757999538415789573310581339509663603082232893353010935937670148610261142037752818226181716788111108383861350138001077797749893927016873631489492717966363604065651755696918198738704080221683636791211369904295806806553066650068372882547834345148409383464487448010076218651983176626253659164168533081718012937480975160509079475151105513903511482101696647680371772126914682969598754387815346270167164960838399654496708685756483319334841555299319444451529106691800202062156900619386598707478905435222060159748417273150195430798112932717481120724409667695824786884278148092121857211333956092963922936861300909650106403408125557783831562055590957014660383079240661518061303606477186941221530832229000383642554910563128474002076279959127503508023199176032265481253160097853297359569963980976379948127457010969675957573312712471233352701964413845614430866885997472045691070006699455894993727593462250046569533621138961591879527817297237698499014856346463584033144334361356687725596232942414844454532287249986549094534469467445627324316559941430176654170850167155497334608905934411511743048121325470510487676942589360687250408211752620719875048276738039739247314388670182580191934233716614068616879099006155284697873617826018003431366031818427357847981471414217714958340481070014900644524367123237065462450563241477535395966658216953763130246443346743680223957503580720612208160119247393685934546883993207656578228716395367390342572746110600445095100273712387417794743653429365525382883394116162694580663304633726246933474737145775005181297468210960412723354078532247332568389386264532610742055522087259734167383005769443016699874991854332893745410469445355661090564537308787528320813206315926660886998538943183479979419707276976671395102932066743508374152508054600068491766656507241713229558985545862595998884221677658300052348062107558091687091698246905801752646469497338672881778698007368176799291502048883467715641020000330438921131848944707574602848222988847930565108429419355591792715002491636247105873687425577006934359189153815412021921474497852900202479469645305421195880683473425515717287550374424365186789631190099580617829439417032381416611041183503917856643103507645755429216170507083931532681753350754504743243191792664491781819717927431727484316640903595644101398169781549000087910006209549573589614077861387388576588086047965338141999613692026780920454623943482697567930054767472828683812292282580286186863349460681295853768586348621569611365859747300801952710684416157397741663159514984187141323153580369604609734207297297241888176076912808177220610644261278441828902555983095342017346980208150511197379889453283270127881674619033693869180189513875475814852765612446483100999094600199926085120608901145661746248282761652860541502578991258715605635690730058954478112757979541556516127864346334770364320008990475233974672208478469331329722381899998194721490044522645628932293045354294821890173863709101943059182515739711074000985522050792672348347482715513413476736536248051101309940585534893459370250200832929844763901217860970848370863828823160709296419205835995659846696713209400815161085561326690534312735329047649939887273097315701616443187783996471815949954057250214434264279633234791036053255315446703899227070183352621429498901605421415137720424029037090862269689306522379523348553077500998393315731069637180809536839122444255207725754882699660221742807704243544848829975912796008075212101619430187085860814083291065931926772464163511183990844239834884972562841613765259059363005053809085098191456756240168313345387281495204642049974447489666018141893286929961714324222558679115623544825179007371449974062603735802790689639727350444680027615038641294931231359730780049711548475057598665812963668567415263854572706884678188641472316239183340882074340325817724901293633039488963601757932090096539103009890236338021922048552075851206811279658105093177359534810118595441371432834658645319000727528077180331331884903371417368996252669627578436151888050341262640336339982729095784157147058282642621277337939130254820493243809391225105971877982601262666194015000125545942490507494682144894173921697612124345525810226789696967489926519306074993345204603803685406874994895323576035545173814974541432910472178515617358794215323332042583682077324127661844814007837665733452259204298380573153175568419028271740001596352695256917288747184333802717038903271237681435317247723600086474872540847315483005360459164215171413568408205659457152553002458655032848115840252506076759260707502028818919609181309704184714062383019974543553264182798097842106683152665006753760006243874579055831416582118499715239611611910245648262957414020986396773014888436225743982614611067586762933179106096560880923137610555522317253174875303555098283241170271145108968979080325668529798171906175063410351151565928200540907355023312230264427025008760273854375658992418885406273122066177168140670359639449044187163927844582666599522085947321814449558336269515820000628881347598091100005340759005942247373773491828929285184726422385951424450750553175027008195365671175993777934172788088824002287736622379956798285753224473965809648426583606571764744454512605822453375746772694306422066418929480457149685858230450442161208524771575192680497211779528224631959468501102157432540275721271141095322685314415014657022264475440462829521477169000753961592762579875105158429882481492623704726396745055058285832955871834104513464912422405529319700737650186910935536184077893410181617104702591249726543302327891329425867696642435823708260795836277212586225725315682644125319844112183695895700825546204443079321355879486787203167238297008812021674190344032559641813329192926402489203555581671915932971630260388336446148037666865426673845072104415722915014485210666508177416073279110511635860866048373703684343896206630049265578749218511062893781690750052057167909400380219644528068985590992018643965678523213505032289084871079524481548243289748536548417430546383191951687492155210000473967987812211633919784604551423181559609312724212414152240507276111430096049431619413662408102739480426374822773301477802163480548576717798477703441573953274121576084000848287952674082537182320229342483003665742645760737404629341755946841347466357772703418152014177924931894538599260374519922644960717752575007908206920383538130132803885572644122573948056480217747596468461699971273190630185712148734606965596662948814899806426290340457629351867969905162199690775233059652824883860179046381406945990484679210070166104316547105377254053726195318378291635939408555623200794400412975837468421801769560970733155522767227363857102929427810603658218026470431021739353351707479568746044876092682802013795894395005490982004589339166965085433394445845244170510796519828417680602386583886705990708732528258792106440759641696072642775777429222674224552502338540705220445356200718755437371044355755803095883338884625642629796938325056340516351242725810759287764291022463667337151420090029520965651973562513208231086663565677199171732353039186750393945185471514566370611288596678039132505061948132769146758860135372611742824692263447460161768825192133919130088992704169066687199545510546681725386912764925545498835806793918379669002864056899088118067731810410173564357401857835977152663402097585446300074381699916255460150583356159718134310800347376140590478549042800576271308148804211904028729421842416187165814103552498316976122182610833398011657212076667283601532980696055037566935017393762882554902937305815848949710160073396105388980581865270634408615191746496023775503415002076032904094253159858688611186559019841655955948627549049944386804029274884752011938448445005478594565990505221423235664053015524786328294769159878218941435703114077384986037250180425982030246927155025230265153923241545584366472575681617415436950761309972810023082719284121195501775742541880792725456657837624192288345506386461022558805054853203425034744253955424542197780925538298020853187521584119299421507736300621130684062473553041387882620461921460750818214898140627781884857771635841086926651162846421493278875350073525665158084176260828425587365382687686847292139163180170090103842156587194780083744446893622620941147925950475223479320111154670682394809633503510672931929029903573677613970077044889613001752794774787752708485082526096340133827474676277047938686808828330673410236628791363944670109337378941761798553165946204772556225706201491157684133406323204748667278197110084611790974858593545508014589291278780607302903057907645229800150132335450927871164997247760605462563417859578358901901244864293902065456766321818645434290444893022961700686646648746042152292830239465049576941718527749809233217725889768267183630891992433152779266899357463526127651259973624321829205471417104340490160545370257296512206304761319953582083476006500680122390000568657504246424978481762146601284758870532513580067259080364618008347008066059852905635364135128808636497234594383180747541356535122358847957651007502975302760767238703808622728629034581172071073425284765575137835411612478754395905047272873602578971048880665865997094043362226060989526743881270617934612365344087423134208214960708566957809810383503491664341400631594709754515255607293080484890435849820042822695865348066694969979381931654793680395296832009393023781352589178510402781942600796885152279817307951692540916867717742752484040502801294967107177908441908591887516024616108338235501797268433608122215166242777368306083834299787611469543905059302498732800070591361999634877326251399842111120844419975573110509469798805742319008427266223835587837370558456201491648326351969227517349179770028819001516213324425600284502498897886809820700542366874597779583181914738032402385920399926419477986231733849473359667747029509805624677138245127486071437541134522177444789519307553952839333954179193678887739254908302054029713772757504995671879893469090316972716013725838233496207996427229152862036617343338842737722660601908035917211450453893051187134853761834336778801880274158414543765228164192668660872589556925899281590658224501173906813824892754052586740886411007511908031380667562388102745863510007073969972221545825372774123997467474283775763948653661306699771973661764104316250608924837426823088744552198543032024967849913015183470556737707517620453822774681036665244532150323582046608371773053992443079908572474089202632006771288193451660845446018127698711014306777457498246037295451265080717557736940435887960453320256935825803288479209128105748484868015194133501493302152198741143252513534899405463240382155643552539562848910840015854911588822189749293421285762309780221789920212969997642703007228563919437075853010731792117600756903796723792625053985409734203518055721465276336315889813721798630328098350432104265149617450273151764462108588922948794206762222559506463765116815649350520245747205706457719760439578261825780915297834120833315911832971346183184813834689759022591509445843265088613634702485479875779036381209383106245559399672002671442851696763827783843520453653567318136868575409211869981317001000902297636479227923085816650988138168433795365465537315047406405056360135919812132582097222541411998415731170825240142543137298868425977986815698580544181712316929454411721454241624643199610837903346369222823093354281806629804089051155806067140202456516406233872919874333672007115607417278997801579234276642904468466779174216964016398738123667542145218277028917100669349774298556097130449660282949915254023960647058936278234316462846390630007642610080404012323684844273926574676314125620846384114999256678932783080119849971637750540712159056976648583836451147888388163745912904220504645325105951383185098503616136884695527936274542722629522430043558916326802200883835482215010851606081427461851104387489671461311708657764164725909746793748505776197107224999252288852400849710785783246745065160796028771835802139770051580194493186799027422735796071306794037346301902366123115230558315452943661832338380465835510438588466558811843022650535328249438100365975674585568122927610236129507773927944322501586275638294509261682916552058336683922534290998036217250832517298845450514267990933929396962740876716292457273862276929218197879860384500031422197216949899024118734794951332930474074050647924939795589357583777219247563802196273263482585498778323775153588989455314002451310665199186717357457329833121301698634833294164896433391867561367010994520861234252195057430997228811614773792587675751727219843789475264481927573374555276966939137956274132245427147983858263740513892108065441841290723343423722285033603107112513747207269977116919459474826764210468881870384625212832380497284035645547052796448491073755714464608996059029155482857619569162164145835025298562310333567922607993403845514349356398922295959367238726478006183037807951139573954229437052101193328894847388083713340842488514936147621331941870180923044572656281043240097761471463415145926681138899054886658737960222664111158644649060238319130509019537361287595344940051842917096653869573292546928344537809331804511512481480877903345118716369914774772086982181387956531954802053010177412681271917469070995004407534939723793989639018832340185556370916455110204770216850953774784195079598156354608162831841452646226166885903935260504405216045373926468622352332523394871684440528365814275644042876335069192997830423528499501323989160855999862612265037566956651112164154893535137324331202188034237976663991665965343329326930980019202414381105663227110452491240375292141281879601824189939239078013011989184439431532645396287777383240248739411456102824303843117971287391383817782384044883806439507199175089212795153049045420644108293863918691983247950096357861686034552730848986338265285049335480681742654121516162942640954553701440833628770908877606770958946978141283905623615434052052731499308084624719477582367138300927888203964420694814569434791564954595756111733553768315267057367092234709474989834139165305306109664376393946255418912610333736036820985305047346047925426837959168584191683252010043007350643750422153750073032864860541039892992509272536587647111405916510418340653788559848221430065887718768003480974992979594309985591375178211389287422328699572222980344397669341545521997970700508365111690188967930152253991239651070817095972864179215117334719381704852051315622750132067823984737444786419165528824757290844099546699753931971171804581815290506428512476155501200679109278937626997689849022585030087640251120075437007781751172768381595600078718054874164707019702390097186574972164447802137494566232018279733977272720109211123893450869013707980061504567564005781030240477370592791431068048416823111351973257711592847585155258475811579314567661974122233260065762992573072995874746329151435938998542570381490846377252917729862888620064687951266702525340239039560815625203836039852195397810129751709127439026604360859299104572708389239520873440688874253905759309659958718527011592076624805077781861948431345642058429234584831813267719817576119427208928500454955843278180207098986668572102970900950426138466594772070334719313988471594464382926939421997111118570575827901382373765081232218913468348520758199263008518303427312879478257259570879014197663930479726921087280174780018691534881752862010259485543232007066782527988530832711304975109021571781516261909813511687124101174744464060093405622714518145247650360465006904452571294476185608361233048725600680039158055751172384613732011543681114175530097421365313457357322771289063344359846134174305645739569069165577917276292213873947688625881560061033598879230469525542135190932424046367777433692160152149392002408652611179748401188384260999165189133228743307954901524861475225400374011945342756802087582447357345320225815333296427534215329859430626049244232919670746799849911132119488773665198081296226603592478946722688769705911470287579222830017364665581568902264525967284892596359841608378033726039978290405727482399333960162177395013260508772656209326357163407461570248051703757275749444918438180999375628539197127979604726494912668362657778555850181090184093630549283931386191349262055287406539486936648637753021674754633232961864341930781090681373329876445220577155561149122035897311944107862340039511329306632074530914942163888642850558495036830143243706592665120144253915777417489409512842744253559101644909042974496383534917998680606154774735399241909138342291112718568536661967253594708595666797703524009197378391861176085541654068298051624305150722766578088963583374944055733319419518253740015614595212162472467896060182729635640650612225812763892342385242597362774018620335008768765994511970686877785411085326103770714044287271921413506652180758369804663256812612010717110952691648919480523502526862112767358142435662241454968927656041680956567815977560267656271950467677120529453049854004686689878333340826429827645053155789634443787320616705064641050574739670268202499622491255861217469051814570489143307739470417595022768161772923412259425654892932313273472699295006349683105824669076868343877123614991491393640281356842856315124343462851774053796722963954649664566547134959804604919535023093944462114157220632905409058785345283712509677760073953075531147676480864662367331548824894046300215414483344344642395551993618882530703401113113860144439114855377147216586813019552108764874874146829804708560419767173526481963323011104528472401158736993748332582190469580951835479608719597545353627384948184378143703749661357761127391577348764432478341770537125863572027640149625295392757733880808915473062738224114174975657040214645995761037720539028844173503802803268300625774742809764365634120937801302609085891601988526401370647697502246726060307652288414737170698300960987320845115805981757192409230653608645141757383371414028427374826745093941479008201735694964517004096909930066580148692453698249407236461985871172893736729263801413489741531704020630253503462367772545392036014702995578035107739016848373237961236546509847310577218561809264248131878139619386119220609501887783969584327443506257842100252677816621585234053775852549167561036246764650521564292428443940738872720305378738941345870532029633307356235982941870440795969143965923728437336238860015035093293721324616718973910206468243344907007006262624632558336111009345600491440925093560678426537167282851614132026048355519898615310628928510700597556081853058322918544545972317571601428419223812884357484476465486840349763849996772065927219340108293453637355010324710363624362284879239803009034539873014927200454675559856520102451999476936395347687226818528681519680963567201418089954496598911084863434229778807404391052997206966956103154379268856190549942236612787665559539538080539884246730489929341070632123542544071420896097893463122476345754827281768664249116091049053258794464260668321418459422283766793053713119648359154451974488701420764834188949288796344553444759611077443136515105790144761726645842702231891903573980241792738923678359004578308662516726021798550459961246512913841778519880891887496884075802538962041692063336741947288541453323507768130368943022652827854189464713169310055036137743482452875619879268118779109985802089618854920207501595796722401658371046013712760435948775689528437775540634284086872317270512886153821568981504702049793294881974403299436145155248774881564087767090105689643496894817011194682262193568152564041612845506281765207798147570359596540739195759767729508869166803344144927717759206862175739666814176864074623310532265076671604268031682950256096553991733176512762174511254792235317753125197561237849671976585271083360032243387625269105434692271637316229739332482923276014854351879075241449137230468493457438476062908345540669367279594580633010089316869959767402364832776619820331460456141207002020889253902397345775101650998220254949941814775730534158456485245973137922359964061372094462929507008847247188946953404481412686666093841517505560683741973837405112827018660236198643485887905620678276151055782674281199754376888589824493866912797823460777199262226854810247861483679326867574054570133378361937952347556451920570548363890237831024988062991775585319827763724320300954838242980679267818808415517648613524603255120909704446964766916553415381809975100077279364106761953264381360440935058778256922419426874318459950637179392681434819473461144749690619125889061998028446117588269706580880382986781727673434417316444835218952436909558708956334492249745033202839689459579855785624339498200267876911955334022959421601179018520107238691130540200058330652559645311082803234975016316915451386166763272582981649726572770294608788393662327426619554238694160407445227639821339974610674207070252308636137964426942074363345573405652007902234947235234948234261615010499573160227885743854773544005887127054856550180377930051393809237746516200133109219626360996045351025740391050596776070896475204529062333950456931134369744427869125581201292153187263382589807095458294855439846697061992364471736833072247446745829697947282837539694705236248939021006454069571183426806430047408133268553508696423298376221575140282183456580869131643700709898807102479733859605650692283403109569519392142415699297465381067564066841606286446961337281106848785334610211877863977356084218113029511679923416043355246464857881224635131646504366676934925528204832140773369746227084140350388664932335622164353092758263865225895138967222537201590067809664433807359871583210226280374211605061014413072169496108734881730074375367305146711365579025166512763110726328714483880636140165403755435230995828826184652549215600305884724867392632300031748549821726121420696186160263547371818392439103268472857738494119065181243119884775605522976839682980662492983536121069273816544854130528653299228812425683588477096628765197971805304894507077978381586966571293833658684896297737753319260412370118557436851502096961752468878576208093120281962963960298289823461206292834373632724359039956694032988934141714736336868613711235197712482495621537604476276274182569669798697409369650974260456060404926054401762812807383988668713614374822736347053154162197966404579989500621254889608246882217987346443537008135929984931136671113143059093516657444352025198155643693299999417453342151494230034275669222148787852575017419966955642546663871291141002966365236544042869026046423389568688418269332420917142289034439083946183572298849717231232646436730460661273718336781245615752439156805931468652949112381279963455277480472608071608760472345784119919545891330791872481011431969596065619730621844557993905572235851129943444027372684372682131300335011585884553162347227209086174529858238869911684991408522971642460906910253476085825867493801863772672018243571643838283935756538558925430918892864900759866808052885454264441278216890014993163778472291518260290677881993059723120044043575770909172973785691198077473970991053128264263839476953162441322651790922070885312296998096049345621233159735848613606471739984896801046302410978685557834167512541916030019886679675086366763947205071575994287825931971508812987626778847732879155811951503253442360420405882088344796510736832397820676119357337678587379507932592995463256211619199672821069562149060192175523364484811478895652172377302754077033030467995600564681271082202800886000944390458741540690174162656849182976014822727401014484822428349371890219770826023301155560410958527435976984663731070814046721778145570371932610048609630772390820868310350903043752178614575497459463969616476501936363379444598820666882548199228972794650952618262605998697632842940905571637470303246380360847930797612424188669499590554862174057657569887770597072669849495240850362604775150470292935716785636412793190794009133765362100740682811904957250883371727838515602446629404524429886657313528439345799403279752804376477547496965485105463362998929807206399983576255767624753153230543524013701278157221760229865858966152971870801749427835223771123857973413570030401865476567749528603671580118327369935334871435298736817902076103425523638366319439567397223633972093797665462450408120176767542167042894250721474372946582327342194889044406239832079799002953753849402734550724925567702023688816921581982230282120422355720110858531678831220216977892474172350257438107752139455662792408007737703646835730965210229089091807369597654169050352917256872482912816425147284340535974269196303002554848045381401572836657727936487448061894520818060189437448483171836402164345004008783098187862780585716913090147626340740764466825994995517694815429712427758393465563684732928328814833833823051043845241408612821789582712984341318983351082062583996891553647029013987889538707726049966233648690080037959653363301994713029932899501178557493839112199388391320529553007044496331726730207655058500766671724858818955326621037418816124560317131416745395147870886200377620371994846352563524557713506904857644874667397128741952628238161208153648791093070579955174588266243073872021028495068672850816941163801608817824322442115803806822917187536545148822080600970149538042440961855157536085144700677336203387629312958900567014772833943930256825584936447544797160416319428752439777397460429153902830255076112943390887878227157425896625208290213633779163835581543362291409604313946032103625646006934854759544554051523741156681818524952289568155451419192749385050562802629418330211306697771353360080759827396619666197858212147059980625828338440985852638024616184106522285189294899379550655356737145495810045224070760424767677014254791303490241575664559952472164490186360284281740707962548847044534919348404835773410340174422286255746998549518285446116121971113164396245462892407937235119205711896410923544557484748479516588968840335749667437910665485335731123685043028657991238555203192079389985433478055259818879251655395035724658132938802090789078957671332683708264242959429679527790144400038519316194354863414623423500508963559344726002158661362103178758478393117735858220124342189484447910115949805616824054525345422737478050400798067269891178216306822162118614249390929419138244651860114263349124448724966443435841907032575594114430323554431410569919623220481412877156936676999433187524078148900632181494929498794805621533835712957328362472732907706789863321822198838002899340561026314676660285943215414780980953233467773284784506238968473108471296839654002046404129467993271026039831927619330390387864761191268847136225977876299167641692106997121846449835974470729299205316041065517039202106376334965831900296828620637664183840675066850334127526321797017491870004364373603741060122963593723150531811150937826723018654272140657450288950126961770773855809439146789554327576510719483524042246263632038345623780120492220066015148088265636696439015709561534755600403430104152164643312597473596941854046248874589733988478968448554111678738700452099916761205739573822056616784674994212834235504519118715841016629564652132180657618147627847091519749026148981339672528157878845331448139781303504831729775030757577843180762229693272345211242469415162101021870477024977632277846578176848236984305292512951028029139976679059876130955227949436988777218778944520379498383922497865692554334199222543440071823999664750810655510478565425967844026830001887468861589842889910231693467307957684920921277825341813407314516879183039785628298451077762707175782956024594298396472153298710900615676378232745943647729694436911499866184261331862228072228218291431852309845148984683895328581187585097118640880340978139474083419102985543835397380375465263926987791723253976528900304055374967829105853886918793597309241370663951569698971232597326600359586452860017201592874146221278897713369449459010414880449792646865573043850180047700644953717574397402235862157103680017928079543801710413462748339611518409636610469546964058337701577185529408718373239475988932061390301809820187994538309762624909176866795561385298544036124208401289982150710370050093123126853769798634167891981030332816976325285170934401073144663532219305245026014541163254765069514263886651455339676276275551575848112339290175499218310290947699536939462112262555878088836377785204780655438522233596778942993053244553617433665681346262025971076991079630702102795382139975814504756430119855752249351550391657193910623854109955916936957979103513433323971239270905597388564302303239585066122328591201116109417839826148931880959781123431417917898857461140477020199413864677832636654768595046373957316404930944238610723805968695391077804733831211346559654399788091319764841556389502274479603475727859815536408437513625553230304258051532055202932179574893463509501926826833112654862029336830709864188585669043520345693977946129859620125488344277751530032987445458311833084559758409244713568008072636887681409827690329201565937414089474339601487017119253156659973883524816320426007920949036520557815712003759185500749441922875409274325140631623811335082954010449046351827918059415125376991752343969348030617703078561127208756892463181686581810456773421610716321345870815323010073688495089283334311835233878998610265664786435528930606231022686773988994161893475161527299305506558669146653834617356831849084357384597604027175942788806462986953487831853979956970205144911348381794615037162232981895506483864939196453972344895718528773540123879415858312752450091895398759402052590261245260270119630545251399882470767782026721114048715194457203397504119833908231677232304197633379736215214451533348738251097259799740612037927923262338440616255398381718373203795265935448521134328894597112792465809176635401295889846228549072207847730538710904662976433193141699198105716221372336607789255718354978986866988894940393212596187911700112418652583519262637884106729023875680408082759469272169334000178683655231092478865601763009941603554052906950920166561015781870806499511730924146572823566376086986911872586190219665259046256560799135566620660991549113953905211577859889750854812025701679305596955241759530369300276721319766539229152242707771441806272832617679279678684323863022650065958205283312820108859631295239234770548272507569474064942238872160922057936268236180412420343747940152559931768754542198150386052029078983011536562590170839296334830016709043519307446979244159292818712947772026149572052033267289288197889894271200650361327464787041066891148320730196836862378414610999074125237268231057005994073127251707923609167271428624513503603442834406464362399984922650318511128529062670074976096306656020696224291208171690111765503782664448541985102891556863756425954111083956445873421094668078291601042290190055649949019436603543099535543577692026455604186129060030753815207482993761546735120726480611880319029552744616907195975419788303033791880302855821797624031952127200116845545379491353090365116691161711513008828908717755665672765525501861697862393209865020446138688539552227614296259639725356399255280537573884842433797589809404068553452493651417430025742673462614701273656683634560575391546265055994464994690228452857843440558274251597693137590665370055618797791549182466498531203768429415672556574592821565765655190634786581137218070436127378614281214851035555290941439968154112911679786626831002612383282895845590236517754652915006460190012561319314303078720861789594956080592162020140465680768103055816882123604858864051397060509275270128286798439665525146845924706224584666060242870376125003747695339953233364988235365954075843950197213427468396471189236704357370820469313138141021362988274406792892144025251248021986718442711274150522095534735144038082955644655779090766269325401503255330821567926581624477040024055720532990650754425077116866904073458034439745790393354142807983913443084124271329634453360067493454746648792028715766309654057899504217696630642863031181493073724582310792668046760317809740281725062812291939171953674550292339131212574385355655416142746273710701728645860481686612342359386032364816757818890010880837991683357656598042393277753759454362730592308422626517872994749409440465598244643998820812410355777096058357337584768208562410489837631771704317415994961289773714516408149395135862655338248774108843664044741637774948531214368195065364620427085391049043249186902144191556338742219742218000214505730674368756899853977013043377400752399976095588190184822731527027546961241893502301333371058804498333566251957384478820161611177505552857042203387896744982717683520345053264273982638184978674307871635400641432842625977856513678153909007443133066572624122922217457880340784952530562119413359562018336200974427245270564732069800050955352383891437207424637901541366679705346767528785231358863127738324055501709562709050789959996524800632609334469955115189404080475305383924749773388242564605873685145957022417486220279622030546870198984134781464859076536780116556967795015814904425174568995684188667203210796065983578274978201935347149825407537211000557010326281401014475137807350887695720305187240812515475104263048117518172019611011206300286663622072580099681823228395553596860002065260833791613141038110285866318689273076821981064305092284350550862202577330567066530446828762369474823488240768768402963065083632357781494650818707811202523168529892088260469149100584501885809258194308576480991983805296503231247284805607983668506522793943200400625847406749270016627925442318655503701230084379816761580786192248891739946340710151360487779860690494184039740127389989690495116646573696143243842294199781018314291761105644867660106651870892867422175670142515494067797422823666398458486084903553762997367534250696528186896220116680373957643714038438987968987699997545917247372903291006787334932019815966348576039845533848106203395767254636741204670249642273055418794565851276704623349514451018566169989380934663335620009519038816010304587207992824181275499486176589147767218219093700252559195521835979634719384695743247601134804627809483853292056712690902410756005480339876716173721307382545919235966773373641219147236248047022615203818196890042045391315870542917274062384896216505193951411619570122124046278450346461890793875227213970656362991903191067452256385240244790820962860735664655909210380464510348720068057160250667412911766450623959667154348943713951950592361772898949994151267806902598773836557844554369918300755816293325065175540471984778592796332883715588050857687057312584602191891532734061337522839738929564646363733515363822948872921225295933954400841210694016086033349138170273899546601484770127262156898879121267453957242891131063389198486910173731813836021323586318884892161828583923774312971491964133742511476755700240943105896304433808704117950137518802433043043655565077417345464725161358189991812207460545393412089516712771121678019035194506031802629334294037376183959247523688259415138883902289182833154400523400992670672221464911841489056873247737073356689940041700470998823324976045578397353583778339586843769591338189281256994402599280848948570446704360887161739593241214935641045307382343053380059330103131356327348740686953445700847993498890544965608798931146565755103496600399945049912883685062201433848243894077277840142486481718303384861448708654745904552186224468997872192726637801741164647195876217898544340228569466731181385428935413690755828434923630748013715164001499045485474481633857027730803560304246468949556708505362462529385362298209299114530938400128381712447966010934396551674875790003856916880050609674571898380645724322012960753593452891341573936730853575073939995563308887947126986424203500551485649967863360796183395029737028553429638836411449910593491749689174872159832500466883342526208480426460268708241239244606828278842301401313631238447170411339812223816116791138883658727093460408530610992680706741767749717053765613703227030955687923705598669590405245471763398286108671904018553608331614188125988656967668528240789025786728878054739486240385292508407646176004571423706313067916896579587387075602155093711282738496953079813628801515880238543899973218044124235937870489901178964054340190796898563482194054938828764456377870949287154736567441858964471588202913010599102700641972553341292208035277957700754260768170981856268449991042470782374113112418784245223341916422630446303705384385524790276159013910003496310825709247664962799666354755363643454043478979540307002921430187876365196398556363875318790955927149557048399576700542648133406993135204605767329454204223143766286142875463100823346099579955714017271208052161656953954172759540797905185700584954232288729255357602805242146930478542963499798892447434899939562351342380679660226045236794963356510596246707820206492299138542144119292301961837500963025153574195534267293683911660242456579877971090022069543180032347529463649466191994580297374986814083926317623702274402645419467615596467359635664423429429377190970055204666071064899629504354674540418332489202777108253584197476023403357628258528907234495907922454052581617018220167279303497426716702975573226141276558478165024158153372414640523391612622810310747799252269260704959773132545918664858486693643224839643304765778435731624423632049317924940787001209877628644138952361893678928169431810296555445704638957172887749525019230806647522621984556597310690629562463823359657221340470278058026970966667279867368870006233585783027174572623170173470835976576946536784192096461415841263791964837413790611128023801022121740076888608131652639493390112849921969877538973816915296074723284288219349735191386906520513411224155578027394017131405969206537959098655515731951407660344325011496174063635569987045854254516783051317772032889604916512995089008991838273143022858840954904177762047347977662832309368255928558085804451808979207268094706783622769053193557883273087759750680183137164619244113891298051782834824573803228152210358700391409052624817467166665951173951265713285081544009713877399558284251022386909503543887995921048098988382161978608389027314677302759270893496810292842370232092184899567676635518640856601057393518860951330543322634887927234583714649081935527755196542837556394856560363210321249590149137952352662026965678509316510886267061886028213752271293184900312201714905597174205741815701239770621398405119746256718822887938623006887676843544689487199560614552970459828055292636964360674045573585219142783343986407472473006005492446623846115077959523420461686607157620629262904946677357370079475050564238553280241450405584698884630636579622972187980643814281105483293802018727450748044550249782338671531407019752234410876548080310319658461243298471230414811627590615694519054183631833240031135381261615820020141507899376988047427996304677419261216516398580615140117230687034876665715250888963414393593140916849304246118711098271158448330495202897029763044098698628135704497825492502459350391913889255909420258625561719212465830162727122584480373944203765715439909411503907065267513660496697277421147453442446091648877763171811741969274462693952340768681704347180022657225506408387522556063887019156054604311219988400722022598864264503266466065534323194378243770843019481968104746570530649087685279088995484469102948119263152533255833166330258967465474942202793487346172932127420121737325960201929275757392587850076809296469082078559494396136807817594186834150785235923143379767569641110885678538588987441518123860548230810047157479447549330316441757004779384662657776991046443941513627516961386490710449527376325010486003123180441513325944835742377140788690215708038508333840427180231332782622151238763354218396995439934165546420172665832639265796374700829400827096271245240023596349140358707604694979889224296367757846085193022270322807369751888637205381228111152691354242880450525945129183384102342626976768952940095119800414318571922176411850106339720091923980052018675569268418478596979338923434325415270542329791983706922936013505118797934597482046159208287998119096895461151770824110429333775454771764357456186980595135955606177262404834197868537027688561444120282472524171466522157294708838767467154189334346976650034256462810032846558483892842651649489863363208782997430068700851448874934920917021914465386491361979799225440241114787742584131631137247726727648017676153597527511551268768234193192451472349180095076919612022886962115081135754328001660347535755456878586593278557146916021952300264492094201244940614021390626280212657124980682557865117346614164219082109259868534199749611989809734093017826289913486846932271383984328743495317415740259860421142452875594375168471036410200606673204360471348473237820868876301527618655691293114820493205361349443349501073464398140488492491855726500183984196317393212419730261213292860646837712889248343147909537372302227346751537480236791757190108304113830808430794924066015544498864354171794739900555304648598985448691811658241377343587788007118749393611348345767340634688807768078752769163818744339831705327402602205253887308955441737395785451322179001935323032625101033128258727251981110930812924224686025079071112064756883047969067119870851653873734385938090379040381051158124179036243540414366696802240962591049186597188666844842032388319474541534503433826805116148210736787638261715185764294033489627588832032937296031952126577681446390967395526176082138342554527365089340929517776333146822924842840150152867312625274055160119817250248718004420640991337136888952800698018886070431451450859791781413495270983576927219060861489342962930656458125773632663790887410488111296124138815184137446640490870411922586384108879859217559069358225633886706543825330420414867771522778473061883145490475904966910574823771812631912593069165377733227253185903095275235841472052544044035803021855965654857084337669515116429561689866881719028326207131466956852330326666433647127347038217458304610064671695259499029199194709806536985346978840452594157020332076336943223554971952844630021974643910479188460361737628643350869405754329098251041779560113911503777596345066946335590856689520129355468661094768711566473562805628365951894808223497399257656238437336124855337640627080366280953070659452350075300300565828324741338732995117758776343864261084738141096707853577523356039991017552799677690298178589491716635169587290651510780496154311048129704122582886223294111494777953136440810990055256700712538286790527081817861649227027625571339976823340968956022515161837691259417081892608204791808960196436350951923063630508300726211913152777078085169198677595172920621670518791434684454386053868396132660610406533307789910292995677189279393838826492451037272339376951551596487203581608421962997380379272196978712438396326001491919037981423443865794113926062640534240334150873351666388316055370617130535936890542472940440343430919425770940198653043101280634623546433985630108519916155144943696242932716486910284829973543348839933519860897625125426655426940718295021724697384226296403787286564821003020618717796655776855009675896411830087258894695168002973807775940630572337806991749127897877872919742240082998470971614606631546629511958412547842029511209676234320381557605806562948715391187613194518003754418520308028855539854425143071905113555417499254070646902105466931244380499265670248935212152838642702556056834221583795493715598656244832545958571656193241378963836947779858797902783446056799323044934058323811180488175860826163690424175027404024574912477764100224377825704752947096606164070912666851666863918764432367957568487267400217180547750318018749934794104847742933810718591848637189497017624584633045580342825271773774962543919885260628520763330365831232236415063282022251571418359845868338656944572163246860753964831611067131344349086673365012588758968642816318208340674547874118836010472021367396711488617024711174204755450024753897936975860344975746256725380519082018459986612477345257211799884183902927286433652505870951947063964156339573987781007265763370991385289699837567890669534579448611208193712317354759680776391282804205992684708722353406918562780895731773178184285008709305301196732681382505927932247304695154037329284387842390044081229395012118394884405213774681192332988005708041444627859606319424543589422542757518658106771274178579816455385139719208625070683304786574775287760215645293800666200281484968111476620334355707938246630524364061659862456139701976345988789741306361392355429768670768669063227455861381646329332035503216104280717648180914747043938707452361068300553777744147863686629523286906893961677232101462929369854450702431809279718613041464042965911392396240856285133211013205552351260386825931238212022962256856357045181333608983175672854934953059442934374229986392352011366415729849029794215461558042197428417469487287390443996905610173984724692491073813227677393206176741517816738587460006220574613026432130990745759745229581548633957890608105696338490462112199994412204652272536797462848434218513554037472081879807274496086110522127658354123869880054235940927619434086856890382961121387287736533182243941292830024331036333345948950629465455398962395285801216800714620807533691412668454338363128121254780115006170609120166972842685493577630028993614612401545073048226258169746848022885262969824160692072155743481869272345510404171754023083065070061744037511904682045905067852512354583364585822713839995817958052359229104407229113345466300101735468225257085448635934765053494039778797234417493602620071524572372793217540186471138903070614262267512715751746750788948403436527506627944501271310876828124027465828436864428014386485960725397640216967337014350839340324645597996729174306488283597687059562808133398361763853402756850831310992410928479971062761681536612525345811367456930563273497459331176541163412618990242251302858638292366000006888728144284125566334122405861209490014447239500592199799393913768772262098144212234108467543007462232269369941167075433972034267944209263475540831469066195928630725710289389620885908733042456016245722441148037687967449931372542539793604673606281656265712941248435784176716188851670328498481433626522980620177568439761161676811858169323522350292530928454511601375135613001701616788752232609962651905707938346233391696263402962166175347308751354419831701659390413468405434463350044027602314172239991142861209053775906782973098018077870259761798937640680413322994355971604839616255705547845902491552548173037556825044866466854793450726237691150074258694171483156841568151997312868910466702825840098434922168942724014395187286426213848188506931820403788231242895030320514680410225058282968504851891782306920514550839675845391302677646615338687088995168037914124212969420804881196009592120673161819462041475065998232965761862363076455716567285210904532788276113256783670354609911467003971887286761487538714444396392205865824893095706425778749861614672299582841141542495863584874569294534901216144906542144925362069858103996580544008413921039206784271399301721751170497742716050499548252648408096331104093269908385161350071718442416135723335292082099175238318083778619061529683495234686606421135373525032717625911528222973399001666622606969384314492330272030828095864495263091020106487913486692578732638632082725103049824293470880939754760784756664277618758859130361846004231598930310409832117613865948208744098099623697113584207061501008392378198644617134493760854153171766660549224541271608803383646685596447002463031994219045736389910606652866025200729154857696239532740433399286693451441492921717842834904378316358453679490636017874975469584132021364305596808696369706324574929974911529299500320079418260618226771647923715544209001766706439562054369277006085375358264473112827732041643814115946118942040774169272352519511059748960696266155218684725119615484371909886243598505262175447385935617844222919843441482051436443587354384451911861227101730406209029680395461243431273713495409854191772129659522124201630558919613295879317761588884878473644852609396866943098302602200079421977772513643770572469910443822207379506853572901142766150064204195136252116653564498592409565898111165059802461003877887554583489505542037033720079000404960031096167364834842481212244007279674949832443963868500913592633136576716038425928244065510259237057080906324443155849554229957772659368236973902741284167998989381589828229365484800449812030569979770725990267344426893744405120324967978737289953156397370514841683051291677470656723489658855173897823897513635241406453308690007784372137452867451074067407739187013118171710566722438480026436163710432100082919644709355472799101557832214341666083349634865107031271029498293498093323505916722880633050640225238734663337347092836064172140745130898682153688165967846928069067290848117460416504457223405592917496420858000340153078788744306829884220436194029399269002199740224900391436380788975501351199343189875350454894368936364199940102440519338692616745286230020332034640615859773868542690710756102214848346581839795808674730846305741402006215118013845264739803552724976323222931161196323609654859949180073067953561363905466401562342432716595905405019840600200615708839650149532226808650251343572451498834940190467018831407191859886497066167848154280135239307080528040476959572328026558083991374449553827937080358633166175142086854127318511594408212073183697224865686424442926030860457377185155360838250671030480403693891202592001615177229177680385994898448857602865800273440113066344370987491317132698416756092397409055031021582839191634335694087243383218305768894287126939441733722757323825708414039029382435969509485315634561677178687928426066391436203413538045705810459169664623498174755899814982927166589240488566593932384469555617271633143786702690556934690108743600238623317684003206274635947712291525284585860320915652579247717054775128142181685659285393766764519374175289462990421102291230704939531465742687924167662055827100034678574537695892074749709344204887861324962252649514908428573257330541746502108674275044836157527618756881902099846066858822307048750388597668999329219087804347588575536743630150701478779464452770229461234175061110167790122025349580894274895274052638858381525220099657301154985286154376697183638930664493861187969261920732485202768751778656005445688174954797456525741730480777751653338567773936429582681391460700907584287692348198575076693548944364054673377609550099240660604145417084277349994469016680117249265659111504434315574707632259555706083884828583086027198930780769044842993592948547216563853202666139192062788752000325920281087659016951808837519902834486054346095459803158152418198197191453740321347441761885550440275541241216883699490673771412639690636935583680449715961550277795797992074127521590565108941036160956700935519043787272970271143440441061556575275101798851393591894422769162751635708905822458978177211040094875348369468652879542716106842572917109169393846497400621009579164718223112701721311773768457311866299734748604150043547622054992656963231388199319316836411541407448842129352639066415058051110611969237956521924195857039451555225328918145525125451802746547092217668476044693302138147900034400795152080543533581747972114659748009152121936495050635316285642302366038671368923440820134359673233101897690604715111561093075224114218166510188895426986677273471631277123568481593218126881695562578264288724366716891514765607969423182566816070325705294705450302924978665614829177610149349375835673934673932561925955543311396168289270943221868087399773119680804750402063704173183117581256373376645929963350812176935062314837455810107888080603139358787714723072026962443123259938784725366279878141952957682508632889402846485390891395043144005854713956371442606443528927527472511222693649414956193631239006003984226775496741140492183183706197113246490823550931591308792757381082762066761413613621354309010764713498738236107254457962342398576027929905500014572798898075677272308701153438721585619014047866143798138326679829082111153887476793039709616866387081932861963314672446123892194399342226972139595611691819516024075115378157038513017203027372345646513794183332101800409759308976623812387809804621748536935660266254898578076381270541780876236886243841272018277098319178080744038774287970138382491635947992729174452492564937936082514859774471174202171448194214472199872251078157958526851791292717612582210207645932178693579427977531714448195943769893238189572658438555547066549043352878226632802430579951370883057685881123649631190538227894516734376800434190792810050733060193507263227037815187788160010226877767713309756241893194107025326870302888259107100651402022539461074148922394495207278997006316546286008578486196138533278952523635705453885065877062460596442137732075363622320509190460367613485958781830078385379683103977755704866326596803740886244408705463033362062197425039702273574528154051524319879167531838769099585903455141143933688294222422922032151285617247519697342336506205933857322656817030708059106698801989848896814214234184022702289720991242913063236459962123212443750514311301052655237612889678526344830096540865943515732125994395400946565757069774454226094380566655858196419084813082758692619098319217174546910055280966564150353096477496448856446526607961670956385380511532650642557410281106325862356028901070617583930963418100098613299735117386326991950690555235101709708235952748464718017716842175243890375235668898654289930242133758703924186998405952849275607833323092796476224633386996596629641739981209326972866947830069753833339620594329025259333598208652543418585916090598694388891073202321705068364699698540981386377750099405010790084255793615315887512523791495206340992979981231783865474825921282018620029599934929574862480111122822974806251180807589620783306103555738288492062711077718952121503453196658956982289319272167035593342816668444372506345933762294238249337670283685461638953143442085677866910387078464062020402785440959006743686931307460055149419399827788740181534699183300896417386075565744718375992765222428626883901532339682814963677465579263229193210628295641407183433392015522264900993529218913136635489649659349932395033012179822532808240399555125980209758374328080938017551421727923227145389886170760170223038717925000434972863011391919440487202907139618907042912205385094816975064986213399984089858195302340548720459475727749142524942032232054523405431065513715080544898593100169890476450342943144981266945965475382742846046162662783931932515067114959348467594926541718849384949182587210773149014770089672557954275632150675107930124122141957932314811221902407183720011227001138006732308687928381382243216295912943279884570300930966071452579632702346578210332944497416822711652795553620737011970296715195509627632694750571185230888683426672742378627989639927209824677864405080542597170473285561710617461343493012717762375564694906960622791089597756735776104392493494624240304493889336005922352111922419051912353683885762495445016723778543973548302665294871071124436678110867930983051383865221736108867901831844932943458784641733636920690504150589196888275212246304989623212805136551513778129273235399069977308260566660224895920988505861865034178847182565386099198746073745327272100499317174722956878582900059373011632705325669099509401744866357829304216776908015959432148500167371603290315154383598426649050721451958270681673976713540055126564188183492455020852283452268083274251218882594996042136520447744594637762290246965071493034411357198014317430210725842372655832316194250209754686677053569911239102829038512402486849928026450510916143102768343484883169950291443621067737235089067292982287882116739441503159119727845885403632218508967569183111348554967531589306584709875257616996922490828930530365037830184716933283548383408909089281614769316172257738664583995051865510574399703817247805075528846245458628053604868353189369913250562845061216238691216648583531561942699527645571533549518457836140573503273777397804941689985303755734488834258798572770475921154067375283945606519688071939193718637245913464293299968466107872132452760324894661936314539035013751212168815764060030798175432197580857301674469578562690102516233144278955516977653858874153046309002935705186796809120800007015323726684316533821408244953969635893136688956381014616200798973445430030577337818616011092416512552974172760994840780854165948530644225457175228703074619287208675243860341285371859455408469512029662713418621291286904169948523182660370019118031425875588800197634652157890400776344290344621823058065290819928440079451099098242179076950212004133695507217938927090969628078954983904150654115484690272125299865873029407317330251379398089618573299291400434395301761439139393175245958629698286021012727625170520317284228872749447343085519683086401531438590899164584992660946879673430022991157489859150688345916615872816798984511273889054092426919078354866273392675947477090004379721346886165761382162543317737860443779986418212366707231901584809451524604835417611187333683857750425119299960113680752572274431237535987874532478128190184513853133742282418857609934569869676107264539457689749658352777908862276989234369623071383612567169820525147144450284404553557210309707546947257513272103722787481438899973103755546875332211119180831433908219141236911466456902932889248349219963418642461364579638532322898352626222385786049442679444041309844177946494572176541896791125740662532068894533090530612249125922428565247595213107246149297688296550768678951889683105071689639971478859261743542247516494805907513129010861091640549727067139935501540276307091037651134843635779706824793924658316243378515748670702527047655041118587339095687106794074539941691230181330175049035076340626826195742098593715491272124341958060499559749296931686015819296394055481843049953845181084337197842472280087865546858170865714481663366800053064702656021446368810562728569955063134181508246569351123164894265028587006775501916365162621507209100196144638954943063206970500994898697819387381188753055338346693641944001150685135947294588822034267165208920424935266993234411048823279143953793782088923916589389175675415644218947759672300184918690474342819177952756975279892119000905098609016386989416068361883562936372751510387466360939053120090952221778107505624962814918065208211758591395245527349550316970274619284649887207787982649156936778432762244800709734168050935228694126231159127580262591347195735277928070470529338878251295599105351539124893706837617125251531566773784582816115327039990634957982445779132080847024717247562849260012539618615371719329703146748112806574057820939980196046316988548281161866194433240268709535892240021295391629434991878806013092366851044238147014900082772014496859419989002132426356657332778643307285925375143007210624922208243284543016665770096187324696409764248035923665100975726196770729548962383905599493499638347751144417175501529751715176528140346031811890308858904500085965930946472682016904287753796551928020144479459410639879412404877138530114295213627452334150062029605936446100821327169200446360787269812394273680467380380290689187485391818205646280346678864535120628659466324295628564213453797735158770387361782889372243538483460922005256503431082104584143095118726563459921264511158557318945221080703182878055331014115816876844192502939408975957257780342273649312865524329122955521931772646545507175054110606264768744272351560536013446382735341910082690436143569171797276285223320975625288043629239183273593624365705702860736539116857791416120771037871029901634612665628535268726861514170014296363945988476752566889051468483499466881845565878513577679819141309226893679370882191505005899006986018282038697184387043193017592477213880480803751314209824770384682982299380081223416469922306222049128199907077135771851337576731021113952877144004637736229451281880502058625571589595196816673437737859380761394021836902425235490971525217837086951454982487026137532868019259706389817352919189656644124278974333810721020668610733378292856895164165387961716404115406889780141420744004144084630653492118822251651854915742984609214285641954630055146686281439860744872148448871964404532263132760721637972069448601605077863139681787497645013354825760219860579918849228783444408812913936962916048472767658086128931964084835286652489053735925973370764614967079369048210360179125247801502847215939627377056368267251138785673730946854586097483579261425304894076774084620137381779236892394283234182349536187561658907974135994183086288403659847967708250880515318928081408608532960342300895431750180006227248294839764941616748451514399246873378372593054699885842564384635279084619232675522910424626109812533459306585764262713282271222413557951212779605765853999550947518097779831498304363041702885811201363697620588145301852273553521780103872822889179793421772247531585390612263053763585260487772341861497861332619377426984218353028224298412509995055428321010223202527088646130906779000934289202122537719531054130423219111180362495355667074638665937794666696080763850508964925823240847528991545207178353686904091982828324408607157411828265731652175496652772111874345786757204113780946648757369473156550450384640181986984942100378428354900988480958473827901005944256656314300916299617923910186965271853265265190131182937833431157003464545886046816345703288356186444599618442210806158172786997846280374075018071904345864744651941885602341061035813537846029231223788212209537133062129547333018985250520972912559109211898194821094198202927756820973973515198016398656397354977751247521429572333827320135127318995087480641683872669040961443504971609282213454953661878953431727183303346516757989770764636019903559991902872629723831935367099285022645682121203728269331569682346188179676252044732917423540561863043773854068491737925477755820821094933445496584047947875820546887201070737026222079325241315255592769624923303941571793045640934232029502445544576485177047877471297124687662108730163042356143656189682980342033288117791980737403133007526996675157754634077839528016669788717689083436044993396606347705810008486929400760760284209759545767024523486808433224952840081575279333479362634554453486666191644188215708950731756997283889904886437097626724021688880949602060291511280839472172022798248844138976527806529909516947655894905976135234699378985438931132773693002531935364205875952051838399892492304582048208296204394034811656300362070162605691564312561120745337046173788187793738521728090667447903756308437704533301418327959802277627316555897975578985020426684245982232856009837225588384902464350033574156345967126583587856300235178060825824982463420533746217748740033486307615576130406720116534593043182272395860163178341467670369208863991211772608773641901272854675407857256262360822282031918148700600165567408115247095494863446644404152958034036514857588258541768739010026852247460350176785319785615460581833726910300976827253978437195448534352314193119865849304610993740339426609495556633914669758602268440198179757612831311308410635285505416661199216571262445068167370373129800068539871884311527019148555606618640948271405990837180626775446608266190426473326512650936259397729222501939260988297329885250983523965532030184135499374279117449171419284546524359733975279089413672309173917261040765711766322496175346985882430366975447380860740478862444427079838640621346274902724300782110154823119163596658432219928959534474037781635145758188427596422339742213870734514969828005235492122001174955131639318043773149522287177049384242889747573501935639791809481502776165641513040698233964388333717921159645548246023894706637014147157264588976919888555743092110797121853527527678363380887879776887596366573512315766812177845282662417281089384672395262457769003924607629783469874334093480031771948404217767138922056375266348059922276193343761932674275099143457321696841731667402755355874442481061528218702148624908509414656138416785066964994131690455443759813479742014897628514224391369101289163317465913195197153310183660905867692813365225477368675939941024589484071830607725143330785022399674545458692089555698964628637127840677735115327731786016785240044321178411636816685596768218602389378416973873249962348122424189261489349891325422976945856695766100120716841687523370989253409532751634684109424713477227743435535945563188983980899596017636135171396199270348352402021425406159509755089198650470445592120752217131762084312973001221218325804760971555648727757201099143393976264901691384897053531693227689948197302614746028518065187011995572979207255978961972961010195582555933549466313831590274098490622550865977482845259501057179201889068869967124902798118739653119550833434111366824768521328605959934978833740875050656821641818971756368511914587630324702876751060486335142003243796391052766692467173471520542471159442585654535315587371554452411806365654396234534072383995912094299631423880731213877930264980500469837132916271316242162884473764913541900414741121238946487117659473123835488205919223013674377239378276428869120839813004949430267677087258227089725231056594018793720255130064054071863952459807720610709884646297167755893667134439458817046982986739377553913271761962514048563049953116174835786381229727227737349117302446972527943295666718465255977839596739365947129201434646032276786212864618981785615014949224528423218105021280046657724363660668228111489757886324104436653395085672777637651047942607516609472541702417953896797887778031612614660158216294217603165482412461234211787083963101105833340403399647750831695318389029407286686199468141028583153187300319609186454361588879772819213342925571509882196574665072670309676596407316597311508308491321294949263394756328416077368600271571016282328734065811597323637865576634591089990372072950840156625993964668164056180368360649784790273634495483013873995033771544747353234452189943575539539280848989119995788533344816217046318004161205415514380046618185998075913602142803329999792214118192770084175282133839979512711728572898026538412191647647071578520322157109191499656147441950364849416264211139440123803041260704098994721998181834277428062316199608687856053894618917907456245440728900398824062027774415818606792631038610237608121935380385975863290522258744009590455781038209036102431244671053862492160712125560681819042530320606876417004732431031219712671894304251525836265532571610699164274947394034964905611207179661364910031280885673144276815321448028022731286838317760048595399693822299252071144103144029443494952375860559162199014146861680675480760219174929802699082187047814197927613305099144712657224855617102432335811451752920742350594426063958672019248699670139967125580658841539831773943227606162020252879259966590877836134714813485999890589083793284696277146765548036638002855867245802685155700124021017290780630349320948117473262315081378384292311620461814392646075668944195521317040467329840834093484137892441364761071431293214875819334133229417855470846145135164667134425063693553554670415421114369709831640717832891081028329789572894572829034561873808390821382093262202205313679195769024031732107902040666383478374583073821382190932555538760466066226846738376728217797451743755592119911050876240114115348030300545628774569759431051335673565500401752813623154820394550550750770984257379945227040990329040582652791081832970800976041720831137384500873659199073521055872361736041402963223761242459843476548261672717012799716106125195366929660202243873784347483783087286415804643590368429951347704858898723041112044489906486052335532888108761820517701716384723406365062566834741816787544909349563830036527431680840350231000576645689537810587972064331630766430465931380979835366446736388221691970165300159579811912395891218575844670307898995909992108915540243674741705139112685088293185667283595853733544262754551020868658413731429699335411489783114250132834302872216688881125792473950063413126362333419953902220340248892937694542612912241990830064912084659856914387629759376142820452999297490833563651520804011555044975635592861330490532631267004576036579656584493351891870549469371998729894544941420506265871777950095730019027799096762075363162169523157520485989581830487829140415064979408160381835916930915844963006422313024986698832611663604970570847542674707295239328424310608259395877768132087615160541833551525775730905776028305254883621537675752143340917360835406314485455574988556932431696083246400375290671695286945156533812351330342849063704738629340946368656141092145524782476671309183165118003520639420271023588330966176448172012474133685231958741089842907085121245591038739934564604816077123614681910889125928561169780747516048282007286318694710373232293635899831658251838678418810609240634989499239019189363681932569569986568670133720263558133618417368984269277741437113621730676754282402344501421256932932732458372099461821636655077820254114615707622704218838710844330869292038209765021065214761955712686178579081253638032573023616553544939967969456725285938929482570610975491127287004969798597011273434255733743882560299279134686323718097322521305693737855341782385101017923156506176216342182458181064652823861848128646585000581303937462233642439296588319150872270767661197037032373107091449537944155877717915239098096085640549132496708991458252325692416354348079327495271134567236423961166345532689527278565477874223882838151052403306572947079604857388689481748091857015416416047222866705977585899138605890154453766034795187184793498942555056126930340775147836058890976596874618291641247464263477078056624227235554312397016790613176251456756262214626943807570086015301950236233243160144255603856730570505974871394515985359763477687097621049563405997761864237303764097431140469696231629719671611078037678500296095793571538721386580816791965128929757524981460887806576386628190668795359093387965556985631459191325153653402289529153502634436925995395694490707947032579510634383102470012100326679838480320631897067092067507815374360897460465314661644153048399807413528717223414539551701388628549524954748681378345171537040357118063767422010712765298551452488563764904672842413524174993262776501639149231383400271284613659278741857487436774269390875716045560295124533306457880299791555263900996232475076086819028378491326138494779592474669055315958765453401058747078307712542084991902697511951824782006747133433450874243502586321940744044062351223875155112181341788990439223059099253227480474953773192159938535766368438034558621177274608149958046916419639120741281095416379614447303112159764219967810676981538454748814061276545244852313892270301653349228995431195282605969264796276458209821344580066292328566513619883117059133384144879686087368546663831563668676400173136569360356156600451727815224741148625957728627226261697413174881937753348946208339273172710831787495448103837020140710853832004910113542886292450052324186700737808515008158243732775694398838877839746124143971046135448622803134137529050422969250274440321476449467985254114790599020904900170622134801823148345222556112194825279913127568318582020731464596688813476145511848746081500660482575190515761460490726289619539874393034105431505151924051535452256524695884192324696274398122417498021035093694557727794074150584550901804371377178821317863083087646932507911702012935690063544536726561533984223402717960235213926305102481535076734739434591499074925274269370914919704767650961969878302589696722352495254415815052019560353616391225025803730246260811724570799134384492447929520478758797180561131849864652566985783613199269535347621487127081934245247886574605380328900626383835701068645783733168896420851362745394968999420406296784060378949212382399596561837435217415083240989459054333061201257038869260645654237578293146107095336349287070354874474291571967968179918502950005302188868361776267309554827426405908205854217880796216667682683673610368351727468491495261861024269854546583376748724960849547283753063282950055299830432250024971398860948591294865732859868774783715801260889208359796396429992426790768787566173944607669231237163502998718080815268980042429196851118611702338863441110115651082910828401617430636827378162456698422871474597759303169503838540865016840224009325422432702561376478411121380012393288382366569317999962759803725365099331903991989386199694508668855796340377958685598826738178143218995811524291180836774059039360044302541400381274900199473466838862141557263761268568532185744858115664409421322350304624442582314365608111443122286764110598265983318703174617357572784972215298395956760035334063862938524116233849328537753711978134462405290941498985096449432288244383377981739384035267729815856246655402170647640479970595896044187667920631180013817076200336003769353068538418068535690503781899946399558536370234002452791174529886155805510946215312793414314545753785664953684801437956970782284245572180414621961949787131267326609016138438904028668115047386304978793598946430064738295279503408857968772161241740174663971426356383184539088463618109738626289116176639107360983874262416414360044609943985463596153544520111082639866025050170570780144814708373555077848239580929204934314357737540755678250891995760348622845680373004236887605255909114799817148137508808088827255768225044478179981005337290661774116930645134692890013696710689231684730682067937587570267716058365642319608832339062830990433263463939916273551725258207494679850024801018968901415636005213302127383267990763270875624033075177903517069854110375209148824125306111325397163132150992980823230372648901818149578570842405418406136650626445993281451978746512020582568445727412272263886079461431115614681457817005822566309441524416937973868652547708115330562269162987286913295920153801240433781383906308270668149259245716471739097356309267370078492902588152181142302800382696932196328423774522823692298059532749348775964795182351803292731263963713378918895836109347682208531572551316064262307427184138697537604279204060798358886871892112489685700295772948619552325192948910654904499047930203547695434514033157037527417138479530029037179753231971483666419574854501737469852100341932067289736463244099600081242887144480803996936903405540167958882587848735411166019197300432814287918577868214815963868130495777671399397896084255672778173107596190876527064856286258419002703647974109291923913196602095046785841293783490844381738353307581096783407275979818769176587196285102973911537677637452592438510982081679902610892816401940429264356110731583056160815437591416189287503665264996587404871851885696668979335175513505982375529550499708451433551117108308760840287423655329185017739102939559979129604690679190910396488168692306244332963653549283457163151873779385545970891939591496342357425885609750624788923026773029196662546493862191366647795437072614884950608035456733580994976572569902466216426794959179989149442341962511404843873018018418628711021064976315320071402646917237076525897113272128404210170395029927146934698724493156478169335962770110308349932733575513479698218281068940452072157625893677934174136399602836579200944461464174601482175698672965167731590317876929184751936464575215766394608390831581207340388060325808774335468443034948846971076869191531298049682534803913791739469943325802508884371444383067374853375140832712308528273864943305050407719804481606825602042187192133757757223453552777857299583793274623103046633186011645220691929273080319123987604655382324975045600839749815193528151022204933183230749295479928231283979880482032155458943340165720854603496245852081319477451519598639374007891304949909442740949451957432926599077465386410743541072535659593443863907216751538508093506953958874724763457487432036369330417653023550484401994972125876586874898105491540659477614413698185686319952032207820360056774636737056934296201386963810070322639060230279505817239631780261380881394816450658360357046588442544008386834032065040666790389603247333679839055713937164501990720117520051871091911895212999322109938184907541045929632935861345562617481120692171214453989825333900064463726716920084454552526247172444811425129276979506309593349813789533679100298681993109540986763086492125375825088775536166505929531236229737530454980940708689010256365973540324232782883767611280426626074658844443552781192633393965569154357661885568935139693799354279730840016613893079934648225330266626606446345376239494179733979548927603696414231902217132260231470304421130846118519769576526901181502321570488221469254161189743848904882264974554905816380905478897580874054866335030795393916599118166048058196470636718917228817870627918179976745904293471323589931272713624495869470138602880993838101588914327802554000026794926313707255412825232223943595409121046990689255576859585176294782134976969835458588492304528472124741699912601842144274122774776214999982045726995692571750285203468178622692368224432053619905799188928352886543969086310458594528220485371968216658985460666501546116318093129505713444555246506082573551169004255073107028264673111195007708522375716633836358400216425284479325438012287569456852584313261817607214668427976396527133154618474874363382935615060933015208225103420434220071976870078654627546930384399768092302154160769745111655521702379477475669880959589504275946198700067338859445410009258757841885080123837843418072031330356739812994685175022246182694021816025936121861116207211635900006527166563784200107573078719305587157371105396446057877250445644361833455014175165254885707274704071716874170316305525679091419172487444483161506836948634933430999010749136179871573878149929033541348503268620824861925244627511068633670863042666958048750676476341266010884854357998232657973095225178608568803237937150950710081662744443269572573919721374804326752745398913272120729326072943877968926502868447693970513414663430232123970695038773842016453687149935189611017469287877627423028755170466333166046895663433347140677195485815855507457213318860356592288808836732158347254117651994891755900801563901219168158010745939522824392431544685989040567424911883696593602901194186976936055740772041014281779481598529383677263240083535523347390444754578843042192685567680365822621735814152350614312760604161122819875284590084278124705899914724308031720944310849134475586203886313872232409652935121352240945067635193606516105714522920408426329490801287596238264466075325065040180179053620270592339806130310683478958202027395178919333275673916776613334363239538173439862061842149810225935644638169273345892112180676522746269160297127073615412083099962230317167703359414443824663183027639528609802299148174839554647536596676669532457845051955273439972474435558382186709059460176705310424004557863810739959835144315603437055905031889010955172558955591213183182854404429682153479127108674736643235619257453617928956100553981021839091168347931317608043423237118913313439432950773261218429547873323312882131520959111859328125121408856478596498543581155771062512647056380509797759188110461115521184648807759231871125415726767106358482811184833500558062982634609867656633829447991798066716287919100879814096049736738207188580855524426920690814422706539074084572673851162867748042723000187177127108820028929382343433170333663892871099213781676168527192138631135587747336779485771510328281907276459286481352263613578129881328570976716878449216479476967854399085676172054037302955680262672578278261683789735026573181963224707216757607787114801470314129503085172592714778493165922226451416867149327700791093702386326022391517649844310632692540860087300293267221843402270533854989745559418678732779022903863912121191492848027575579060327765377535779949327566207748648711289849054827838874745270638050423021055723848224954700279384507045819256135552461212894421488444178382270495831562349469488601842376403116134227530621244674404312237672475540437278888368626816208093595493026219542996773143352398831384153784464815123898569480121868462358923335352222085889211786524060852233342627196728775250620172107444601473994575249137995196977456413509313759394870382309622029248589342486542198928712453992315066893955983225101222815788220817155860802864782590363116914288153041400725426885886709093823824269195296677857679474080969271003628998622598123690545145300891092635073753533296468522885654387629624775026410751079568148640495148297649849798634948593996940010411846414436344161602650300930345784880506423811301238550431385030639630094380260964403663607825933707873547382147873183699251184052255706011634035579923699161954296773255459694319689809210679851087095891979391902834037827434476939804565903956436163699826792556175831625231363842876220852303731582978840369963029303214810802321061164981005449812888671843757092137983564567565938990063630765985699572143275926257902238461313097961365283842363548130483122420892259813829392436844917934699779281454689940855366745871685895782823446348273526202860385618750285947092892111541493316331862249904928504304424305554881203047423835930420606552523534637855124983424881487600990999920439829805836500101972546741836818334078859347328592229668173593059330102939444469877415659508948116964142612752691436720721414942127155084266570879935972566353097552486955500596965378654868569401186863175171911793796757599402690042946071125474236822734655110213357012389608744929640316584884650205330902219028189322210830213918540024794003504374833949192540706279431186591173396466858262586107922630549508412224447184742224951484952124153576505778488574490243736745169725155583149428435987043662225570853556048543306404511780548313277946494109964362014709160886765444471278536705323689583920218762828246101755355895689965832707625168514092568530894565029304377581266600544025640726554176104875077033778480994010237367101278405594960321013634031449118413131957063721143890782704544892460670872735098729904568114069080040322392331623286783558354559658293909869485371092208944581985070742060975790028480653399132870701775207576263118079570564763570289729029490523037171072376360733906806096254319712161773864311971520406960389535849276712046750708384401271451586358295714613699295348616558089891244128048386551641987261538421332811536742230405627076259930069527630117190022582925461567508964849266657218129918234877319980346166132659068655996434157719924355499013382766892585842986129292328927103542644822943216493471997561296284891547249140628242378870474135775029325703866423254477310712818494818066142093586415776746061505695757213109009467886613754468336973799756500694092482900458924241284798775285762704559119017059942048145410359076124467066156511799319188840136340472251246299032942505006840513135622133802926885573160444356064258448490638230473425560007951859767871553185929854098360782065695495764394341333346669271397349779426651649348041585716872889232075203849728076588912769802298465242797892098712875565962849575039697086644824880261249213651658408191626337123109673168143725218104015922362121589905695974599711534857722164097716847179772029047829294755158209298375175247132046769946539944164475486275143156282222270588246329202822702131465829649049806670150467287355762620517040188351530170522511244181992300599835049714356966187335398676822381536617150166973071119142476424729546805538141605937188164722616196732461031377798059043525876463682058510695047273458702076820717307880612641825936630835717142102822450252960323624494492437294895726146081906253487507298338549496566008107380109575862493030486863803333783370522348540746206688992371277145024256790633673250165502750494385474383532300560992634628706024718485728578093193894290990267117135407285022025583373825826230947381092156274637423046958182930757436149210142813536950127819520438098313207559615644978716060315153050653611132052149527614089374911629929133774873845289759015080454017193274601073815669594396935834637852300010287262215587132822886793571156229807793689151737841064644328421557141049619148095550752309982723031798654810772674989173378286459912409926441441991947791714311154536302544558842293180257210321758068727252423983210769373164642480908271611851963523110642472206696987692471504496619848483616006409887293632003989050935883430496845005385518678534168720723997829806327016701181250974291940966848479110467258462992343268735522889379376438034093642970615649996843136947267656465076387593881839258697838273041818581363176075297256215264150347085468138194177418222898360143167864981436812021730623600991693708795761916014551176100546617744772226831678588486383293184544482016283146121664819476502669768373787530263605492001967189141121962465869264633400855110532979673022103682393581210013659346146513542275066639754702315041237812868799153350801051381434939911617346405274725412918042182602031640662753973736435082207226945643538848425582069751533847157971770622147840911393336259775412832061642943892912933452854683149211695836474134152446274908752819640191964504970646370532724288922038874128104035105439452140407060461354353183807552568643391643247190463010722903943474864166502642220260662295254531066654936737731079593295400393897454063670758411724792434242233705818503559908903252129375780844900703450360432219489175382418324170883021014432402428979736065802111218645055115555979846796899280107546904965399220823233002722449949410597130155592563587849027315519778333202926407626526973960893692875341769808293896233200362329747980940509360852132370711281330711614645452765740926603254573301079965641004370353753289600841584534575045994064092376558911741287843421515581460252943632558419496219684787231963657230231869375816007395739513988124638455212014955689676814333855708265870796765510194336205018524304762003011250354938946896603722626688617449796420090907581126618912384174057383356811005530829551498314195383978974001749001112314650839945737480925929785517636188525926521719630860004146647799809219231926515542016816408022481606235317947857065484156517069106857886889794331794026135895825425451024645947882752246664997335988866663276993360915777520011237885048695322988910587395280959573935507440782806215984368083433543912670565552956773069349022106397747260125946955612276437894524989143420659627559392418176578129314942677794946810766959738073528097452329661883591822062123918991516876524606965669385584638594343997674677880706891532604921053532144820869059450422961531138330680613123699818429489170126501365925926418031464955206144725017904828564779966726889110042395759051616909320854932457093036928988220246316763434810191801382868285203165080606315604464167151783841609005318893443193921972971347787253064584561684050609146192581146639396279442963484798682956111376890520483254606153483243827354760785774029484357097953530548230877102322044117681516712660880349936264219670685666215042528875208630899073619165182182650818542430914793814177813820342220368277330422906765225740481327974510255882102970325432631427020382274878825029259605071080169367954750274968861315155938854500772844421942023534050606568011276306740834970888802864142257285492115591621781204925472799780643496930433554623611694024997598371669710027143399308132878860712372082071944345526571530572645678219663322396661067662220749539503163192747475537508412962698622185241615572299782565317686709215685701546019130104620510598868582484514600993088254093396811256856535679558356393523674590226089588454395301856934180397875482808607579362719482120660795345607996002218543861006267838915813345445985424672470489832615064314872962453096496247522496812907859367456971059374309849618624791432098456109948029794315023055237141910535905816338449198804580929403828961912800708918664358303655422270209476184638836193558423161552510745329656548092855532541671690163292684111500609358623373290199944791328429742926499877294504517660967333315025273546520300922020059146046528854836414420486619530843688848332475360133997582272839735743968741409279644605627377692291294979631960767289320579985394979873301370697171720009560645950666131752209556129112584464811581682200172399494849655542250665862603807006232197535689930686930536889535461570961416415870581152790597790233995228040911500422456718617877593346347026279270302922399275554187170232661446994003019240038016752307496686393458821829585096826407953973827729476758468298916443181510199699040666987492752926714635090675224582112514596816184706942252179324281175998088379554739472388219694889791230148280410523664159694786124496800486791708886869114821794618760714867639938862318484114480092591028746666843043612579463164583738959436817448042836795768765339434606460959106864259677248459580316207043272829398555038962556998572734996008884903206739663311015313266714139107618317389053394752230745384951504295619043900746271169275558608438714069936843498276967497563351684844396094167389606868796888098900889327499243528688292572947979817559453346146121929824930577387081797907700178783641396012742755285875166819244225159925669725750646674787727414250884922099955611146018726068363488374437119182408798134859997094180327792785845530779080664921792796663023872744787867406327930007653573020763222341659922882019327619761675679501392826901072754213299581956623085827561873658203589356758883752384485525424631372888580852227908978487508939702562057242503620823928355029143584318539722473509502813125802482541940686262097141146806431767612656566598636331345643381614179844406663447282737757341932141652948372583079520879363774775743624737226462945518281866544083140967538990913303875169599716764595287211843855842772388159277708660290356365495831067072745251621218525798488053175353528543512789679203762441085715768107992972523157605117568982037569836638446792140343801229091149844103492245520744635292390029752760094333995190005540370359115777888821835885104012130300214299497754742329410136776051504756089408909237831042800009468414487900456161418497600910864465531825501944605862152242692340787558151785964702398573720032380158106732518138043856773619275859665976990059221146016800551262613530183953425778685853407351591862559059309422471568529707808355368106648766657268857211483676220658593768679984210011892471925062021364714516629547266139242444560326713616977183194528357623813528794634656181360038921184458567752271206188911357951721620365876791164781755749322512812936783534333474915487680741700719508100289266121371443592861048050365688224654203480768839351868144337520739311920010773102431395141592531271366655540273396901788340992560701174853038838202987341201785319641753701205624441307568779577855915161046774162791795518648167978385770516372501344913097411558168052475982627342555325506510372636272294934231751543309751893872442974959816243362909069103082126296533970594318054576298678211908325721519937327524300111357380949336938629644475873212332387999575121663039877294133984467479854079342746435705945220820830412790432623409770536615785355883035618604004820128178179625338841624141997668134760895676745425878848281582123529133291275923044295616534135453907126722546862971782706302870410011015729148840771355078049573934379995700162221653159325360759150659527401453831116119435782071622704019170384327830360450026001140620453339954484642031371769896336462447116710767558511716925452590823748432212228927414373591850951164706982823007050152929949585772153183252677650991279639347510681896720527993388171692779755989289184214168241376041405723949774725587383908969905593599218114887280758841303705507575958492379053093948578783987739653879161387397142453747160575090897125605896137707246306059806797896950985193359643241368299049749631706200660186920989750139244078525354439523894075300963637476991990470407856155968187141659843825671200772106363441572817096739583864524120361807059461690836259082425586860948000282180920525087798375063537121181650933866307580245905598817980583910985992772089776142562431414805055853720857326845648085872021153526926135305062421363788258561350832557800801770690307972135169685637840648821008258428579070586930323742625818524254348296154759975253255490408735238648080720157931324241820102398081799221272751717441743724039730300365439330961758349881840117093057600691451286752123511516995536585299224169501197191860686184638617118202823327547591253535192087441486368704546502464940269087714885967107355500420327428354837463024205249901713955826012837999828477740732321156173085113165323545981345854257635941764501517465710169963446258609281802274581437549317524324866519232522159021912325558772278904440592291075767637961695595640123587570838271245160935741716398293988320340839852699273101541429369775193134012926968752770466904948803035555223205876190264721548143667994907149200051785741400128010031291776305946858321079543274356858774616613200633206576739319891461550226160787019245156982129428918065508794927226904760152698640716335602008173462423924509987284895806415358807087912088621133684704376410223600612695846376277835745175424876208516366476125848781054541016308759382504989153029570583466170867420218285825675531577417264847553594821318322743912933942474867534495367445621984674082101459738809528735011301416410897244773892926168571690183832099559640472590197603769088793422079456719162393313872669921647731217831374596661747152135088756109142576497857853068969616467223117238421397305811115964825470580775607227411356681769879661959329848182958248086502225020379729771068485466053769545523245987443751557839364497651988930847190395047361852756988931482628712004764015107840418507373837774539849173408151798747517197347611612737805458540213474192973071819247710608495931977382027850748708748122353425384687053836920225099042018827149778270253099705013295456228439724239489380255350872878668085733450275971712964785247274092706597428163886868245739224418517089256108703552691414482783881639770247871426850846494846998531264743642236471624973866149826778929415205724156354578772731653389108107733954933962043534213697291137098364269550319416113680983010890404223981523859839754714369559990240563047806164328003540404564777834151603671356042247099669462950340440508393105995064330145032245906620234085792439836271288920062714848868828047677355206485493278078852378210094793720095424388999444862520996457458240486799827354012924047010756057600185580345044294494802872640285402308464087773770933199633620128610790195129589716542654556236307190683772398566396067233246765044377956252417595159877499270026625473496128489729024370731026013719777321913207240265434248025043687076428603656935762792891306069269190731911537911153520919373220801156312672980084373779585775083195859157719584814868974423462321616678065972804182764573312200874961854490921587295520311545523020688401557184077317057871914107340002440751603869436769746197989528140104359167836253576365747118996234032804994551274880208396352494983714558447516872320015854555374568027608361769170373809896702274585045162266933505243446660553525582718069111180786817275387221112960122411455422273806840089282357170556009842832780767989031698385338376447225959741310736920867816216423905016138171605879158037941140339339655776584669431409404127869680022121559963947820240443368492063984016308883693117549965296498786150681502706555148206886469739016785147829480174323640310181923276514368100535235178753496667458659489988504068572134069014312713862045402996465067042287316243607938899264907930372831211267798826316104597845175891577980224654753154629639787947212359824948748943449632745077738436535149875403246809592487249245978763612756174481144749132318423937712836813695275590659184517681594994755105981322847468546575612321737233850568890624191734331076701441211253626138066897862607761250562913676460435036830624178108565424440506576685083623301464648156635499803284199023071316402565209462830021420791318213742752858405776483495766674439539941838897934283046335459435070815684598271133490641802607954124898969174635622283931709691579497072516878879375194513708638833070234809588890703694336410397162159909227642958996618104141823003129766285296926276363649505541839458368705496424417148390095187398064272505161636073364794874273054753214963301399568275155943059930956044211080939024094955338285288129472881399148701741308985836435427714532884575762647945395894465301380045498073589518381383462922570878175243527252152235674787413724699242325393042665851141645087532097061709786555421634621002044294858051762702622759643134395333049879094122220077090133137962990019080102599262114457060340079477419475601362648708052145240735941469611913949805690387242698799422209729575811400721822289647598495583556660415994140299709143150238995466602489886315497832938617006981389979326975381203135346169073730592833671484311397373299545793046006753496862521747308547638242713044488095392496202893258930733601932465488898619346587344534608223764256333553919898190285348858420711838647788286314834847162660149724991559290729551430321194547131005425602421316762287297483827967279773950846151998119286519879021196371199898647309889030911159321677575989359198144358301855101215772781015905625776626637550336124743030447218086597146258364017751388201005095874395975273555144800118697970851254009500658551274899480603713586132659768817023773258716085605509391634549292327161273944004304341839462671585687326683735420888432143952984121068672177505502190528817846936545429357457772212267793757153496544993261549047785183422591762859184288666256878339635837595462203003763452029485906345398017373470099579292333652603393921706717659199988103519381455984142592054561919634411217474756660946324869130015733979203574253822090676527455513872242883581062307695180425582578727513005686807140885436947336042331256110642817686750840360463885580428917841388884911638965918958245114028421539265837602872076484397609906579579994368952710744304734607234232391883735390708452993013876418467051546173419226358587017612335086779116462924890444844190920347486664692584847705763400897922689159743699244106170665440845290973784607548069699021470344470763124372280847058460648975242008603462002843463674256016307945546416850460399685650710171974641464281761035372613208971285403659216751667263165553721696440525523408421120358852124841666802432674369693083601784856714486073428802460338801325108569631702608229474601075783372164241001158249884122696435370657835221747585107551704971584459773536232236098367233373978381036315687855063359184051655860295039756081923277390782857897707033013471262514813519558753591850251772315124646680983978972601717467386367134721496803229384434946178579892864825463618566853650261384409979166334582017766298845622367634925676305257516614265202704631863196755185545240379807410544387221685976563575481816451694567899641123389467774257263694136663866862019310098421858430081022249230658563827613848305187106385616236342774640656429809251946122944429519017526693317834533328814532791710011216368684133354066425950432925818482532940896473811627856544435931977542633156594151553240810352323184219927202880345419509654049203090372463368888525343394596950586125887426919085450636274365262201496750387661285502782663700180221554750004813038787025636907385243822807299585633660103037807355568433541068560307573410014397352247852600325228283579612326795115665182788891093646720364587651219983159055126441670803868372040483044661706517243074886793592689986585912413014088518519770402014696053929923032760000776546277756803731944397491573594865267667719585673622760691531707526331470737684347407541143883505314893698223336687791057006268194719610532609576486438246769482454672594072185213298991284475753466151309393294953563799256861061741470464440209596319162999214331538810147221653858188329985816291621314881530331731086763548567555626246909745037808875108176013516213612356325674801759408385361927761121697297705420065333248324771698354446151734714042122197264911038927245023612476832372978436549190183381288575750856064609753872180294162118412697904982624008831108982967824325907564950057183430294407867613179141370301732473582890243741855432671118033465314600862218969202158356675831245508689073381300193523486050964585900361619478267847551574533821051549655312747100129518864903511866734697928780009093537960030515480714015940096708830484652025948414110353648936075818676467237018253782085222143563694056042288307123702961844202341675919391935946023799900347446983097258036613109163543960994474106555967599884937613736971173623552316030029092646324332252596542471635455384962493902761369436636676054126753646532761257933880292423502156142828975231617392942118872455155256136550676721208503528274539410692359500976286195684191131151271780417808770083557812772390116756641301307563573531469883021667341251966405525736808932984354237967706358824914050402147984965394042209558479434299657579020132843512371471780473007113411656020174900983242069234057543764259833469676894982991398536288629447706918876878439682318108923115987330666270519353806284565045121820987540483747552388436157417060992936006527389187347439434812082525471691637528511486136208726437850854886495373679731354575289175578433120384248739245950969787959266502809427051141175459855091883228548856223787878067139459979928836918475835627174061937375302242704913974899941337031461481657065067021875245234717542202339481805477713349279365213063915482729222954396787406317718639187467731696867923221927794442725010523484114081045161696385071397241077953201434947390721538088438720327455901491721611580550184308270129742507430150175296851896152604321998734444969132684408623533093764793042324522390736659664874965951846473467399012610616077697540873135050596308659257326844170212906142628410047908930996634747110889587906589488978139342574168166581151451472192321096930016300597283899038087372084373476564736348081706173809700843589549889197923980689961697803314050339642058408154332536354531333047803432993583290059227774745655734508222224654642765944596533997735481457388300495288403575670300645926143911784608016159233612154777087552117627422703315336501172664956196538985286707655070646896998239542782720533920787325903729385268118901706040357341323328344594591906022769054643312534674116249114325430819671792542225509859135057969223856202597604719715472312487641814191590085587488831130243538849050391016669900457818271862143738409620959043530239039822427110047432470196396456070062005719379162565107423814563344535726877626647458623227237883866560768364243503192035575004977175824267208101479697556872799125603126778461675458720642641877365721843829914110096967795321426473646177753502509186747924634933096016410456406576546236125062077969328447558591668860409360232235150576463964701364834642354446428894696847409149828484387228492123025310494825040414174685010157597051466337946196898750930130273656908669481821258409316207967008883718351746374136815000313121569066452618451058141131475637452588760513001949239227701633520885432974450837188283060327720822089327723032490402195077954055838489585080097727852528345472744434575024071763148686581980445663303018287667853378356510056990557365222571162963834152629251173284399510834306620925725626685063583505582702510936099508010639029968988487969088741603818265262499788692308255518660345971399235616370407460702138619952433851264228339643069073095234636794601905252258373131617851959714172104354944134162236389323031297965861690246832852239508115247685107179677486675367617564185233019576289311774409001979429290177278041924139693519714932699568250538951960270103351947353346543730469982604468364266941957831489797370111523490063441082390978407850678044482445989836881135057709565548519867585226384570100483660230459180803186770967977379068398101362697005714943361044286064646858096473704388618430064926012018241406126074610961797115985743472759941005123206734074301134054568247477162228466712925048123493353440708646178226714534254445470449632822148719253638854805610484147235671615995142007828851959767743025247477002547813586879908537290688603773851127287882750931732775191110346021948032455009603272465752154416256616419759628930958247111803175016599075298996593890045341408211244080906100709436352123859149781884673742189676766119034256233277813752583541848708823488130353065701628038924162434755026560659379059252469574033928906803606467785650849309338982594672889646658789069935163701813748646867579332415753196520480085675910434193250553928949443153446104970566838470355781949290489962289695693083312148637284516209279114125566412401822805488365615057470601912814220724519600869736233759781310791576095251489417433855261553108949774337606427720227103398163203791957525842599206427629317383521431520878299852868987404007105308677305354269568536287878181478145597423588012471944370386277817767814890827278458403227729601180340920193624338878267051383405823857793011675996141964924993980981711843389607256811372109382387014358148556248401203493215892272466229998778160768520074139086093439764750979169716819784336293769204200280683486116455997149201491488033447981551704640160591003119383516512828560834813956114584609267217236407989716165748701793304248875557473749242216170309970196064798757806805632144172236545421172533328544138095710649775981921070205382601202140829567402791315140107562908015605870243829376697113853702049236224451349024267549752001071146509503246237045992888858863970837854983161767006602750275504462628918858749637621849409815554460650614137444375724051480654354251481623703868365611131080375290349115557495559998526207783448987970060175451544389763081543187094641985444249961478763578233811747879566536301647089651835226631781092719809995279063760329871200926346274393184670292712412985422737469150575735580092262428560509730103096437395051595375519106438435128583109212447776241029019923184095331791404251126044225752067193711842353326622696862479652681257606102298537085478506401927310309452974916024807728079509684789452953076823958894224383555247976224169152287753536385965628652244857854830172200722005532761719226639447427815264378401647977976945692736625298430511358314728194814734505878602992000890648187216698711775271423344314799250323838896677567878045733828243964515802494302486446020579493729212312872122151707922682717131282813068690869132736095412248566341967728288820779295622521133397436768538877519944517754454839422613455493698391797996860779435226446785980395427194775357028658703130231244590757238382997903058360391986546728388665722829879512238804976453077520376219899512979222907500838363476423088692881790840230845770091076370025833933647864416775274245503641442973388664626152807810310522792282896984692360099924800784816662976598373212324656239044793064872612425032243516746834192814052852849144213174662742771008394186467830391612505677609675399030001668321909290738356528545892722796176515110631215712899871747865744198673219395175051728551731320976100626669937248018246509630065724237609160599233991717964762229640393487679278297116347069140642733531563846716646136365930034582769435541503497138378290761816529799548081871390531651801679094522359338794426839103539664586645330819335798663427125203594605431064782096997825847786620433474036153545161214891085493943129391953207218530898104827435684343310026574085369743957418455925227694293498826608715852411485667209335318255711872724921036957009217402473180679280979572309241934315722733798229132501734980820150951828589261060848837755862522425775785567584616969619871835955337927318997651773189796115976270079412814470572275670463252901207310532112604970265139657969383201979512247566354604862445593095207971587498812707437074307771957678629570439753874828494382703111429200453112436003619502816010864498833478578260055012133159997180848492256038794194342969082560199948025196114087997104605574241126190977569032167792000673605717783376542653976005019122660046815379961738901260602590166513559842169831796420802259858198534629956261668330845123468183584607431484196647433790662924572183393348570164673391312668470683001705618890273879703271075301205837305905091557454530808438671288884642016705978655807583179320384299681604592017639892870812463631843260488187826488560548741912771527871014695425726834640526956995218815206653178738356897888620005600499489899740979231146476712860104479131039285470557720603631026511852190129832754177636952833685689538091934967527792059861520988035342531078959494631291347257658589218617776636552823516581930565631991416423644850017924710152607875055376653554563828577184558857252911979040167240546572130129818696095224832206231361835480324800586431081041937402334104644388525908687684300895979973434479802590210760415984825856877287219510386531119119758627387575880984728448270104164872852479321380885323232825038873756798793045519141496369347806582276225240668798252393417809484843731346547270142987166417318918451662883701403851543479177733670202912126493659642323383230760295451848236959162568736151889614046447059808694458734484426304560174780107345718577519599047799099683286044746994480800273841797307396298531321452984739557834230601884424525396572094431977382976055646699430817369517112898002201487815865962220234520242617285385754176858750002306861387563395965238132309535825720403654355643636844229801116791719683826774802782671127350165100913001727494060007888880949873596841709716278090145998636677230995799423226499184395761812750828739686420497790264940565812997232270773955550119467630337582784015051009406296881163986696843530847606440521920050029914159715952939765008826554121057963140273292659897376894690880719907898403646608022505660380592928805776479685894156394507459555611888921788522681750408835832167807118879832732852667799398555129753195167581123133374077332304290068037762174082576010971428802744752759991429650806712022087232026887385435289332000688813485314619327685681774468327796609397873181971746351747703073992463068327485419266009791846297326937019808224885192664427297558287849133350187060777043775667436341060093323419553175272255726208470042386601800566832245248243195610922563654213507667343284778329729315157099189610810293235818893978654483274874671142619878247823124323576519036103762353057596053331446692000627545023165776443472115994485401250395853280240890695837127317539967058115615567130334380091521465723945680387871122661311575669241756435898424226396577789985490226179366947087446167913217897245406104118554011432380461731129483547917546444603644737388617724467298675153990089390067734803100452815123309183698460617991508401681981212164904585963926555616848460408541894864036474180633978457839170071638759936987342508342620843396078003973330461971738002329462948981358797152644157028572604160582945819380391584272528590874041585432798555731926397497481262171122262380269569132359664076038132407399585393178429793696448035510365612543576018897618350527567095989021424783733218632360021530462106661284796041033642017683606592861871091803891415935869446894102383718878379644408768638127152966257250974845985257205627301230182663449017013287983992781806843795919209153696343753755107990710698589820600228535159082301719533166236207866686697350555553257932092616595612589876913315661340406094842999004202612237683533144729872008487276869814393254376021287327580351224008722485016593320958112353859061842101350770980284892077882946938047564499444717403341168955422142750939893666666040851807800591699560216434339834623531394155144989718501858640096844395521132389748632575863760494277099044028555316515034781007114333462445866417918901068148004262582848612621988829013253658918141431764394168395044759254962900578007711355157000646900091217012735375804320517893560180406618312183214270611858061964342213278739394523049086842515653288385846218481228320764871594995172183358470649106598115396901175330798039328644169843647151091309707712514174547165768277593295317926697774461897477246474891456486339231300792411435536778963942187780793417186680308738263588037858196427844574441816287815580591872486463792772978038997689645798452584756196709461287350588853994826788252701025274247197432575648338212177429708532355527252256579541347658678826266016255442381861722909327128110293648518434408330153173996052401648136879135076793625381345854251112158208598842556430148094293622182372837956556431124133254343278519077402533873020370111748523062304773467560458612625413326564071500172460533742590151379442330934546019482654725632806303216117895949933621883265217030160094381148773314355083269833074616698113511015461373315420520655808993754131101630180566484678716389775273442180795442111671497953490984002004165799847529039968055953452933855388032172728342953942190971592253289779968107102743185187667869102954523276657394836253353962409205893915855748674842596106881267103480180639517147519802452262550557051808384460990284578129639565875385252575185394517388535619592174564264394365624321217842408292077248061177153962897751382973191190943399328524755736167783342563026429542068178158305960018090884645349758150119217499913340143046898222909568154244211445296254944273266071295314308227778770437139858011671535535284130983821235413993223785886402337696096560762866921354377183987275695610020273306104524689666728924795722525100289490216847492249848273110106585150286226350993161281670306223660492963113458261885420058101154495674180550716347388244946953905858970032764152722580956744398451858609093850994294237026925105988162000975659474190339530691964048610027234891815273875313916047167095676408282915215949414121295772616882632398147380445330261694581135983666496583920513150869197786573751627082757390620302397546920114245995929511319092765373827712777675593347256063363825991984049719834759928658254791253664854387114065912069459658779283436113194214269181903305871353418542695490338528433704738164337949088158762786197884151935625794783784092607043926922887343697684554991607726737429315523581011267095619867476969504169096979756663894196647565601910639188333241413119578029095654267388062023338995535322057416938043331798389432969933688271878893705620806441553120460515853417745684980089438875547260861740190370100762228372926846010056751201689063948732211538543145761121472251843294024912280882448224896781730555711924576316635568393543012610106248822155842917795284191403119568400951054425062926354498788342755359006061253760342958751808562508820563344714527546116141331253915372918531193510784972474718189640859673829593387585560805681933179550335565928665494237938630637641737238222435061559098727057597506758110414141264024301046626097610252642116675111561307188704840625183812327704486554851657597664661434828657283179527970604914718998961081924283235622387806443538175833781624966117123698263184069009283036012967741893377134254002466850860151180159302149481721590163882232115687251764680157360019145912628163113246224001138429244579845922900994370117893323190517677197143966843984741842523864902536778013828553409339797709967875548916471312881692669710643963951588405738366675373330654573942984008105321105618514372437201111999203777043970840678285499666152994253442757743054851305618390887748152190390895855654363604169875140514564891602069025250180786264294913571204350714658447818976839318364837206042546970569566311264494479268363116369665565359049973431184540474465158926351163914854166186567861638607528991969183911617269559864366558404410357423426777379902026043742240416087396375683751136306977991579907346523590592097889401980459442576107689791788233675983417166270143366377150702696240469534425756264989049756075050377367573857910324337512183552997407862515168465413377764143124280624442553840780033810986165232224149415649690436922944792963658258516472670798830560808604809004791039266849803129182851381855318474584425278902131153087251589448302824068217051763999045320727963450627403212543161360533834729549239121308109322905404098791769303295544756401108994513101820545356549946748701119117454702410578905851882115416838348864573374257881048034062941053693249244226983321673708033192642255691179526280300096924763659378907449506830484355548097231821859448741519176669550217824311515884616784137685744256168770066774914268324494133381252417759830993783808457802159860737808153472457298324874556287555931264006358710230894768264151604905429935677936861235340120685229418768187364471044240057277659525244382904153491946081545462626550828181194727570007992429810803292728756837331246819459471693982491508747066704780986020442831914789368091641749317231914978096415148356132019579006841535111837284257141585517084354350987705464996921560831455007089738601926140424896372953268421176459406311281199750783297379285032267034652092934825890975649096422000004509891476356906995244890483894751937703884772406534465184245180786148693800475050974703526011744286106126578382082063694777222907707164279104390129272976099372925259604665305937067836781944224397543855682796942843963428079873146774417691193614310575049774332395380713541001306585358635172389428046132264808535740657082546066999896179401472129386864754044342387951563039533078285242149391830097918566758483626092807205604970296705692241584759433188626385567362386342342763387716505380680715304741686136193755263890043422547437550315288668578783555262994816570245233924664677120864001337912570134252355278084429730817521645765973987859082456208459136340521186222855055361794571313911113114465618041785278640823686300887485754535718811902825097318277228996018276365738866976112187147797034811087703173851594271235638776708933975565874905238541905689744677140520533426009568847404076924356739578365911466064895378010968236027911256035383817215423567869591498545489289143121240041819626255213968083086416616372109115139814297768555627699346501547295984517046336812080965681966877416309436218880543295744903642496227058607515897074501248393870343246517597522343048722458746451689715657084808204228889208977071691435704470409370589446186734395272347207909006666333800439084002599012381377861188647344098393561738163175629836026611266997361881366145371252287094503861793585501681453764776467134034739596361088037047442627875891429815765907867062118686649630544148859724727901496100826884714527770756011457343036147684327622222143010699352853241267349478596255886920721260232711288992020559605878082703721794945979466956814712432505533134879051748280860770369240237655569876434107304662392003225921123045349856628076139864592276705311554983285726813370571434196556569602310678019230312364069467526414559078354770761819760386810609139977664083776853546525825814970384225759376039216224657226616725630481273769084453363231509807885040430291286166470431091871510937251076228357368188587775583189631783266509547451732424060885481241787440860296779103586269269369063647668420912942604970720579064796675020796574179304376084197042416090179740602787334652599788341777229352122854622416642135799203476065195225765804711536748604435610822312203287353895623984904946110074628750197448748481364114437277250748370490977488760237305659017677416789432425774691954783625946977650564095119035557479097164817026636399546172684269680492379452989182674912125686194762114008985351329538064062745733618761965733996331590409781481524026609002508829874496865540275149420036508508187882129504560342393071403246527925443363207590821809886519878539181150579580737777423195054559134952783088946133536224419378018354639803804561779681094769955509343192867296321982580418235624953346409879543204046953084200247407173052685978756951600771907442869756006148157484257225486924433598230551772326264220363623424038385375633882298373650755126069447521895062981898721856875645202081573974723679609763221386170508137796980269164962981737340489428413000798730795279842635243131528833464603956543012453292423540252240936087462284428476094182584229442229706145321926705885839653123461338488529949961734250685794129478255942067774826615734529334424953940940347447143721006125807385318251115435943770552236169776668686843978575597520422807038035526682511686606486061520483088425669701697719884164920988736842022310340613378724859053712110950736357922503705632668705964188665389236671527764178781219924230495756813800457079370222660052238057955195449049492968262382085535116649488443185998092880555342433552319832981897713952351975578264005602651810615681409786820645834615043807264152054589998098310928829772150760910920371242210238045036885203770136389900813323968820765937350359935262861825367870542347449856659308853264249131524722814353206530419938924934438698160383114012951946363317735811447479748755332790439857436188699104101788405152153766773557713837938942018064228098496295616360655713182420705658900643455156496098019038794195585693996588375393605732506775087841265613341290506392852570914299836522107121410608960727520716974923760436434789448084060911281888638213709063574996915943982315260672398337131578034715584280889008573253110757990838221743651923266548010594790867307157438640640458636013656743288930065669020770736820897088412872052626108740346153743320168061175245502032306111718438876766163023498839987489848867384084909682081631917376477476160052573525925990765451961652791949273542104444533401594210066380301783601874294651908434726416078272906773015730909112820199865842701047952302295801941284733476345447344583337990105960592017783928208534786808800868878290317700811707775872191850726025044300598122156378769847849494190803063433593824215501054820627275588226554670006569823146185033076263191987906289568582268453339700625080224932705907286911646976075592485409897108485396802964355921463697068301398818364223993081936687173842721126995355265780185273830146596442380982866573833441521856324599432994977965149220608753464863897419595164928421814263587117846859921742540067737089104671060466843971549253209781716184187171540411217918993198311622561771397799442449046886026453531442447774247020822073335212721324451637377815021125333984899700411000173052200878235095374664659925641238258630728576079055216021513803924518302241717035818374774051513944368511844651957317685332293151459383703945243494996109472482751698084340450230082654278883030256725974041463609157838272905120985303451308970124434656627485007461236570802270204511177496973450355743354849332115933633342709393302460673595620828106817611034474131965157600109532221609303199937555062417293941602871894702293561984503660669468031919414866800482960445074719682804508551847714499800932872233594551212714938701044926513871653126655110823877562876970574844883366150065190654463089328184764984854657311020280392860819902149695717849840080877672463992505737928484087050635584665904016378870326233374896194215444584587893311820973711858872935581990605090871691228868933174931140330991763207881255764703509973674349942808788617277150545743943168611721117997719339123731511496927794039906319959707224018231932093636314498822925078476977368471234061490286410068188496676301155240321233078305072562952917894668026106608314029550935218578094533400050993944005073876074057346831693296649863669981573476837332879203321368147730222598639430429033785948646417419388844773742715299721123479313280766993924335066554218644539023313194068631613048653241591954689014591000557646983402451957823435023125096396037752279620019102819346976765205811182756981736494048718160715091337726332482446763039616764106814014478975558132425019326655696381572528040903100547806873036452966918153160249740970090184231589020258317098258236506037500770277748507115871715914647627706694649119878518436973877107071029773914839099729065168568595269311570588269182413861406390027869241094301402414830979522079775643672005398023367004675129367942036860279958676970542110248350629368376770054627133620810843616276021863725744332265278419914196708495424846563407017445288839989278291064563707908649427770003265589453933755328748745593538423266233462080236707509503651077098242722169314263691464080448824899406677052881893231770766941574983445352909636523433233261671153374509909449640110407898831174818326985090316959529118087439543809739369856933372078264383887853504820020124372401035316868591390176825385705767857232111706121110089310815118556525611028453102000061172667280399682989791413467700814532976361437722952347458104485100693762329760858302941347790319840050387856271277699386853803509044160751528499709548567650637949746924021937984763239402011431700903685810783702631856782670866985547598345684388689735244194639250197132990038735796842853027902629105089292211329052427124556253897983662688793027456533589836607363995756343857192759527413648924633591878888703194110225983384404096219823338885104700003471334119888791768215645690086529403701050952269321170979282930349830652271373074043176863001868475566072102407652471131904847498545688158135237501610498951645890016721964886674958362711151715349012080872316974364412670284285914815839798899969430045918952961751258847230225041116045366035468425972614269040446117058144244613469003476937993900895226349596944426107222236563973586835993435602247875724555146559535138633666538193803556124015550983234307685196626743167566150637281188154163881524526465304595374926149841413348324132535644209938655184605042414319607600087203351846418513974998130539422235254208521358073139652049239969576623373940777050725994057792346393467543200391507746059039093932965202392588164680251236382740505118303999439827547176950152690103419171567245100071026372441356570004141610415884643369475169153288130710554309641079453092107346049978686367645330768439980676854744253577804823449194372814221852536471775388941574223161658273895190471356784385254702408546398473399839809233908643919834162541955892996328093443229461577682557827861026345680395625357091961996716871328908527350761215222848523846914275930420772302970823656226972235936141465240776551482940007506986942316865622036769542730154388590418309378644347740558160502812443668051732244346343725988214349332937931941953557754422306152302294978296156782807929735590980891798885387491531573858275432901430757303123106954327696970368189820154750906841652429756584011723986882842514729915853497722752195124654744546388905642018289784468227448725014868534192309242557182896469368888305955027683133071896461371706188435131209342632808935964551519439108735197777169492006505656039097254481266034419775421177828991552490630729640191884642419620775396672389802895663963360996546576342134362892520508581409644487125058858319598652132285693053949949671901197003188520518637398346025901817707903786101845305189494385025550763156268987798019753515322065153846432701319907146027746004665324191594788331188684074439281413491236542649467107870391069733767849376293689973019874522352017979845431448108110969825075040948108650891527544927532368485854476419720855622140857454614113716338241588336526423379375262555868561223808509971038124235902666644089008837049562012740388814318794490081974980182027687856435988230242642966602716804681216735722753721467738353727303150244636840087079392189946073379155144445118326767815290785750862000237579928612928987976229578265991523033774532789842481495815095056100639310408993181467713659701548620537182776375641566988986517202715089934878240973650671178391101816891362738078932880640054495591702968263289856289016751065704995744415100503719054965359611181385029963774994735197471224941461859919735332683419888662991646310336563879668768322957258221982266053040450908006408155810741526019319187436540603354382213316205950283718724466506052259330809396207518469348738296676524931289500227160053518954460513964716520496362299562500161081116282979466364584684677411500049851101309598325127954086598708294482898904039407779421900954465692279857857112529939754440603524123091828642360111861868522219420895877428371933126130710311615197027171979271623166927720077215336350195730717000931981760875959156867578678480954994963670630427406372518160735366882370086733247867430094394675730332394897583060902972849192543217039180049259161421839970148438168230519836172396593241884077112336895952159238171770009235673530836461966760537405200386444589308214163332443217835185153266945549569238106905981332754675761483455559600512024769845642264246891959688756108284009350611360711469532545189658637768572207855668158433116439383692411254198179954938776900650732036579660054722054538069341864169770243442366913501550439935621499623882691697032115079934003872028176189523207242959538924666216418175743450845824932791066675786371601738613756820836458573269822823220450252084809545377841342156499419392987421940871650542941225307269104942902792452756404434487778660057712850011284645066029814520669063570258199616899762465387775015910208413758493053069369647505467169625485316179539877084825121694199389007762072827097460478170178331793768916705674104638786864360563028804185277803870976561890355052844006897218818419736034945527106342660210666414969943196043932490685297248058269790207987273293848750212130387495128516896907888847510723625389355173880302600364351915211284747370608177865052851374866345721125386038349682099887230152358124044136385042984085196449112988892873423037594816327871574438002027653695456495149871181241361652315545512073181074658776243501808139940690850798277314366912540272911088983358151556966062534076419984222787977524625357616456362333421883521917827671788988744602418989090269409500358230149156381927559067201049611370907801170051054835099436605483716141362738232273775401223030577172417624877477136602784728006716403890229049026583918089476276292198055299188625686014442195428478396579915059113441851370518123055100751518071662825896276276233420643327337994256676638655127909579500388406138144497354552411398559506131480491656580363517932739293630674208753378414077645400565508785784113503413869238280441459193221201344556776890761941768006053201307818873598209256446408517289902005267638497056763526413269429169567916127922019448860566935357439635808369639712172387778578313267322047646163474046469231994552483578685453560974012141653666392867010043909218149968880886689995294876548173540287037403268642859593749559792253033957517266533252833726246484905740311009699034930179881307207939029296371177178322698666934581714863901410212641784385415427289047845273176270372472164244646128564225748485997686888780820990881450285101867484758015392642922759493890641573307534916835661751716019471723638044716500565028543183725559050925554350413552906568814729738052685490904655135484669388898145740202187627012612662357077995633657792469226755157071014893865375152863955301556163285774158944192348322928972160641835043844583961459253901212452111407405224565089964639375825739192625101690498165151996460207906368305182432123639373483126881578257467150407742897539431878890420627822418955844739387212834952990002596776901190022041863896775323552803369118912082295724862910534305280328750460068733931512330096392393985285499572176579095665064663919569429839100498443698342249829087217750733429217579199354415322171737547311403453954715228875587440946775064389001271677153409460633965436787047203692590385240321029510520244063371920293973200235011726311837831425666810053276875028073794644811457635218617129223872568950534958286429131801722228458613321347015954778968877367353377228960034591125533135837672570270353969273603060682451617749206890320482218089894897941946734728033876256563691421125650104843196563419032235457319946479930004476159301531389253569407709292514473214857800932648815434127986518560960700757839206453052286714103874185495774013787704961686365149008014530196312327991601673236839203965119850022352373532367785896679601324920556394809847389767282814950723844287806036566171153457377565041821358676813367317294453270818007454031824633715106351000889869191612451463870388753414930709114353256302774803678927817988199271618613029959830118146343097726840929767508858377769630402832358242930690180091570862655145045053890284359430524119224416019026795225554347993780516405788264964155485893381573741703959759189114021413583160816035730986933072884275718334333588102081501607144624441532554973598851644012374384955243409784412759216513077840354354772750236703288751879420298961532656461461105973629662362643634570777347205938450833783987786024012636506622315549622605246775239028804431858851488162884545132726923979936822604399069207248847830813005313915457477639862050122258006083555704741223797058876908678860607435618373374620675867747205116812252976978213669420632680949541994108867378022020617692647586755570734490025302779765709167948410586032186487699728907825833920905719321825241944458100728377796279424591354980943399563867217284440713097922037855643569051173305846630367539642869605160239277276210475025269847671239985324623221174627699683565006560880685495346302812339954346785346326686398253509033083255319363378371380396099393855042985050226687737014582830381620527273657074124335380712324016159370790266617306146538166543771516589771536697896017638067973855023567907200681281899958411710280611977511665408671186590508155011742191364828974492740524682389459508805741612080979698518926173891269405114714645162847043348803551244489364358895995523072708249986919983053734879398083375321556200039220536134630680177664202633999914640980016015222563706709796076666594639972665871108752972659127856165908458886429704056552160099345489960368379219211639979295616570426778974581982070030221603203235755002583824055943861561210644644336104606743015948721221768756634365028670562549536812195830802994038797509436272003612186483976192962409575257959758099902960784948140831245924930454447044014081517807419727866230655834854138164342989018702151544930078295261766609617204139117925501387670608927155088344321941156691813700646736582438043534591802034367668469940341696136505520724517500332166539351323174238106995740772949699710915047003469381661654291008746002035715840285745316816911526883077654242844453629721750768937144232831752984712248577884314533198754133291543940750246963041112057038654996205034978060576865362293809792965346003985456776666542777667116147532009531525858825976717048762848292005462265484808686606795539514884555752311570668436763931384089250902677218880175504072832204697828983029323869495004801253825483190661508034437422932638839043344461246012790309676703288228437747624074043999057911295125584270588500292325884058960886559845062647016647526737524122260853818624906706950218339318125022558933293091260161237310816202298226495095742702956854884382941391081397135070281452029034704456597877369867206982913111203920588262859860885983885855002418083349172195402627028799953028346093022498991698921552783410453265858797708230445852075598766540218774200247484435547379558690174434936936730305627380677974279493500281314341987188871841060851152430205902085935336032990950558296261344541531941941627100345747925690146203553156039757611840623869896389132282958101991101408020677530852167211190284248153757696500342575569652821618930114892950679324425484808597730354206324543244002022745528258390468351913109661636350895063399087579533491650552967863155081791489398983112008396120862790968424585370550219917870421091525491043455759022943184634443989033369948491302585263488935769154991730774175268225677194346836671674219071426695519653118963201919115511273857744936501171618734315576420043412216910970550051761846194457057954862767582663901297271267352881280598837637806888596199702226455411035732925259876304325906864175879771032433439444559969965473861037334606899327700206718384510833717747376281290176079828235344437319909125922790845194638631573632671659612532369038192341443082517069007989433157732057699399342912724697429894697898414045714801224817943913908768198742285475919399998104426360474313015443311113042280794276069294151339881239757169979360355897208223715317713833312697957857721200057677109864170265250016981153218341391124066947246215200999914972023003781706838694626411276192484766049478479963201832151413640428956200559712693880883556497269152845172829709978934598953372000760728232203953317585556126431571938058058547537384746864925545919831439995442852963335207938386082101934784379103270453487800973853341753360099817254425231827133815869419718353998512747391068296728242152782247280574445143464056947481823315232148962377257129942569885661658277566589722050118302440030897813592521552066301840086011962513775282338430566264155847914612159254723255530058261950191484217837487047050186332802234221038045354712104560199898558414401219559369630099157494007135419402062187462878504965713892770031984599665440065248431428701623003804940847460060779466504610844157992520934570750408700231640347308111556601600100831389196918994294882453134258462183553493549359244608217827571141021699298494735274585437631550525282606926796423326828803973829065906005693177669964243119230185849817981857429478474734235902221409342552552175464683991128020646692506189959353496107431400762973104222491475919793162039612248169825036762504904143671533517624034835253290340780290020274571557364602610703581612912846551744042569014550738228708724015894322402371894078587648417844013193995373509607854205067808846348685312664974869172167031611122054121886811888794847942324511341530238579766410014814445342495494728806163170165311070550835699179486023486353299299887761229317615392193462940097603114263091832023575805092955497974079015979000801795533408078315321443075864265830861433940463299956341459258493201917541112602418758235511476014686334752848502190151153238547044601264440905721159056863109823646917319698441663216157411896566430433652982142708451649732542759939377397200850261491772358587783434751086609521773377886379907505567518469449447458851651454277534707372483399691313944623753721916672763609016474265621928886879790826589674687340348025187552566145075989028205941822517467901751248073672029539962063910312460361345934797542271186180894815018065337565134760340444223619486926005835248171047038998526532556653591912630389143569441270089678949317136272736572452289357131666362397535003132810202324495797754818626990498371941366726440248223519831322329736727194736614275605249207737990205900388055097736309336353143425185070101173806470421828724046524157433036487527828271240125366926149946239373790115943164763626156086642043729205091653210058443953456455212133182587150984164137826857034418638497840738866751736993025077456604200170383836255284651313106927938950405517623649089434890211944516790249973032376567084482265614734766868211993332560682525034966509865879568330178194443315932792612546611224535022940263757593619313572377192985700197675405999382241733871943941886114718843486779083210464386445185948018380574873209314568657576290503111245524589678702643562558460862550127030854768448983574401816878950595231825128614608326662574640491448724241486661462486560909618400650088742575958641524593366766363501747674410776166238736830884229510486548721464086056252291041970206212818057234619233286422114863856541301863897534738917830001032330048569490452655668708384531949801557391389771520920735696757564312074428293420719531795249802513573482651030641862809644419478845080532563442752638666658054011271518980960108344643815606728627451950796029354589322756881277148767590943228342876966400271706286309429958359209201077781603509046633900520616376670866813073221308475256607967304153027772014931432725680512801792980428219761659529179498591596845089664119981073757025916603347627714448748069456282761114210864914436011982887611625136782516216550734490741647706961673249615863893053721124948731200697472280195102211175544623144181256695456615856135408783903350063197467580213366331374360977847826878508152506357247758203748515564029101281768273366706171664902976040918200715324998614315772341994039856970239615519716307967264612623870814632765779110848880614675306642772252108199731911850536319195153713612964214935744013389156022992808019027496023024909467852419037877481674422142527767708408849339001964123015188023010646313357476585539271719758099337484776866544508237181947227540395116389074597373923539236078819997109977990115774862968941440483673673721883979105829217276076670858758884285506173335654030576472101321660618775861383003554026488348927380130234214266042008904102411535603353714032717291562657902785031965140507933405561917168740067122461888549426678481814557489766229100383236353644058821919446757546299493215375856139748913372236270033709928302955148373473969524896859983935918037327925670580345782999809976465220591813666435376381598169610429134352311587987024919509253303434319126728254261850958265231171874085297297124506183901987280436844782628255961074002179714753552766935902846111490860126842337863471404776244466899643516729720784257545815461229003367474809442884005761328799347066286701418643720666663203858471025806227294836951627461579510563196377395371007535746916077157075948145435253243924223239118010470488538191853614376270040853406278520236246567043020473763044227854453873529127174596511765755508752628565447883304218326769102263330006679222424287283343335488774606868925933518114825038206255036663592482146583973813132391247639594637877338382838554994203513239833962763281962583647429531652009492851850288602696409299913086024144049898517646703372381832005844482395945715673688694623444604806081137400690593695744016669355925199016388585649612631999498360734047127206761790833558447073604361532997832446135951117274311339072781461388667101578404531267166130427467804276959605101456454585729463728356572406351144705397021896139829216144939980415189954135850995729268656924231395791277858424931793493132330275162509936517603559657166652603272111152920634909421776929643665992434124352726944169994481543645777347635509302363808267908279496584068688071566358381377569482122625133883705542136783945682036191061171203089330166955548132531929582321255312325140551014153400136336936663547040490170766671607304462611078633798882036096731026955206888031884366844939141118116384072669227126944499791220006423382979162943536415136714566501907167427989917677073529522579628476706977725373574945811807999222516372483123343538549185853403866926245852457680427266911440202505617981531210576599440823016102540170208854859756819871564852705806160846039989381775781228467478969332632560063861827068715067665922777400587151538057122756959963588818922357213777308955315936740451566436944182625403504382551251625271302363775571943834634337718194781474495414062342171833136030548062041238301124395098691122831185569725907812577816000228661299214155388301925720718824410308350380873148747525520294671436111483897096382939305733468898547662045848148644910749665651470196350367420501483649559636837166101079219957590503477797035877615568873632072427923971088566519317647300884920092796733077013783339779808851780217292393582336531396299892135638899446576405454970647856839977102261633087629524197213994520511019126094420324512127018329722165431182385278498292905482279723191783748639565413644727315634535313318231716827193714215357335757416184355532434353646484103481210450538774604954144430899014946736570960536721671658782691286935061830180792024859986495824857758888211965122038952264087359423393336648125649091074437083152485347927828573076689992059714142836864164636530741219238291882290482131440926051054956547684375210113623694569900526244534249890466850365385226293041328106965523177953684287845249771053981709676015623192936173394799597974804059565517198717754099598436680674890609151372418798346912163492808448216788748212157801032835975797732178704390324687711045802226676490124927026354772406789929125876678022759566336498411452400526523722587492210421237252604824470959680054813475657893997113510001074593776638155496949498759987052916430783191016192526439905910987236209085369525549639525441427658568908585644336697221063004902023382776682606768245671124183229272308332521600226629376396836485417925248925297926529559785519682608087397586162097557512326617228415674232870037341331791171878666694725887803294181256115590837695226378950421899918276145577202173683325168134739835934215915533560246409534124275452180376730268332393216625917910819970194368773194628846481808692049325548223298738047742252941925704938750950419833621206587200147683824863501223712825706415510951699216943833897840547785491022846962345926092463596519770799906352409544140657988754866923465495573781431987941334353364590361529560210397544537400307634477363308346495402722803133573917716787183032446099042197667275337773166484206570569015676606966857937232768706234140947368318946272503916589762460375849511281757457706174543543761961690522894783559808507382743020270890203775074453632484040337307972912619369210704220657124611618767536556500552468759673251038806650536301179075732989287441166747367907425976315587456652903051561276127361528101588120714392772225864204300354955752727939164632297116057265773297967752255460601987496570206704632766752909319188574348275958837757589722187113028257029298714130642184023201897194411668217805019683852169037176222413654773716342565969073403674470618789584018312676400157442443096463640510720619353855311547751260387523987537796785925328574965085509819685065375248131935892767828556506201113738879493639836730667123740926009270120818649244410648219332160909276154229037333342205501685772022750643311658841745027428576865580628794998810686994974350422048858412174203315004603360775617759556448453769527534807655310851091962930983754250270628538299531718389344660978065412761922401940048852100370760273001033859867497644634105073784702904052030656091225720913428265261616189832756639439869313565234658687424723262794446529175400826636519911057779003734843411681312528771221478813414193776538210563861861692663651116097516834077435418393826588717913678070876286609343536059101041045351925664856495368178203730837838128107526176757206036836890701463277399728701111284204635258257457129135811146389163547896139369869850572559502827904123100646637572513856059759671987456042223485979997216060157647212690245122452069705652751971686096018566621581389606801220091411256429588486886029072682718850106447351583257110472220297858979299623353617737193528393868666584727769714177207743458513120360571031720925616081093064744478896884208424736648788159247256095063803001194706810656317723281604194145409774574550891937988698868719560281562377371084973377075973104040099264866213384055092539624051144114778621366629493825078492846709144690014379920773973412617400947691930136550586970153614336942495331964914930194178878364333773452312902463075969459589016924407596041142707745399147483547451748353915248326726694154473331188626786287932407051877580817728733815247094791964353766743765179157292264837739235018940552099633808679662346278360695292694741737792901083228726802592300065050708891082277132132868378045214784148036388723070160561889295070806605305289245121472041029202173357171999735537849055064249387590244164315840409126757123568417003368716417148963653316089460094783298001759029953798368667625130493499099197873824590805327309093925005765462959208753311005820839406782664552184692833845200361605466866039071489971077396453884912419999376604618540080047816108399175433539856321445682285510532685070185347594862349486509163449521088125590699619209537384042356373974432569040882371184504776411874625497887110963626584714866157467098592062666963406712286798429685140638089326847392690882165660500238965064330996169125919740256360862030401583451695431277116249295282671106284991041557067041615401504290227303570214240183759532271971222767003386799118850608461786378174522016369374535457602596770780788581258981982853613958305917404781160096931039081055219179682312569188651679943297737041633191168929478996153491169782582436268744353004027306370987974669152623373603363048320031302308551305342244151370022081052012850908854911014229291696626743117040193826239015771018266671917142479552541435955159626541866075705612348759547487473921074093252511202296866975044325402863181768125118387901617497495365983773304562533706535068919595576145218576223923862658376753862352676474862258776313946467221432344625177044546318194620130755495797869266891977501769178688015269153277625000691186612877886322060152431057929714375109458622382552506431246269438945602083910580985927141220134279936945263836105047199394742256993800767718324678973397333567444880255594375206327432856678476868901792177085517028155810471887767989740347257911428219919424749678767356032647475211768597692016896664786971485884107950702289661090341217158232053163676090576439699104842426071416818999275072552387518217087431673195146957000708765499104607797590971724403763729385303081671419613552131739335088262455699566699222267619604669277422651963793682524670853811211238887456915940986608095786329647090494041095826219068840236585383956528517198088391780162871978232334050052239392002207006029442119320234309634502335875810080374147576382692771597559303552254768149195947339911335958218009987946753369551182841970633707788689797322143653470323448973212614988218092375313962707349300563240342144764235081896325662837045458508298737814378595463698324556505870871207567215853139420112733553940822052915053623982518318612164271911378866485933598109916338570529439714605863826012624103810234047244257079994758223155167112612585456632429088421779310598738357310968032456813409570382844262079591750631995525127246201738368431700333688361414560087044307474650026264051728439666116310383776424920983810314101715887146415472396109893051414097452488263190002078924043137867446781345143049154061066804959108570045342714048174656346509201317748348322189761576117789878576208278465181303621290337860932986238011716796058717743660701410604899874098565857433681945092056538208573713868057580417897364319069338768996293610841843285530393301984273869750112961186579027674019724987534776751912211123641635643752849107060791230047465148631767165014055770190516650907199763022227971477705577300079370391002256637502064634836585295069662455799332298685787505398816272026793634587383355734714679312575571160179822476703132231761402880452928374492919488558427603126112035776439497124079356147537388360868897449330399263659833453085724525985371772504388515473233864594452235766539352340947212964719990386111266733415377231618284077904503779681290888098291682810969304906807418600390582432766171392249175011828785247857287365136577495127557543813226081803166352273269836957707888569751135538854651948447609702622447534788341655717875277319041775177222963772425692559451283868106508958401364027307392693892122207588565284805499579730426272851613494273568428439494549528390544853894717635339509492195074450224260878364398072537207116636230544859495091107310662941536428322619047492720272040989612977537493946744430829196224654346181987798403682299650428281287312135068454812317359313769263283967050635164355514617447721083938262311937512356666864404492920397102112311640253158356420682481229890720381216722672422116793006426014334028936317928107460274475351358474554784498217695568437990128351014831908408835649691540844582123744858729480505952397191497808486332165335006630781984969516574974368797583090163712233757237301058238937403362800325996871087695543290421479579755215975146575617230071321591487250867658826315158985143389523757601150446190633726477958989278445588484447165672159256598291352244609681359430568380113863387563210314899401888820832896954252103865742324747160634521067737501497945265840869782114545826241160870624179984655451189420745085356239208181081566977080671123831587390628769616960132300995517624301716683383882843239152367469017539407929690948903153518014081798206536204484885199092274703875621908907270709182818492494406179043780535534075949611066686108495668601445709249230379486329203336004137665157764007111302551400436726620745203191420822767272781110718006946295357570631248443924619658623299388583066269600638241603023628939683979057281073871655688828559803186611845844800712304567540425125799124021959286524905333981897044292722096838627192394125860603495183892905167698464017888954819613990687108420541326067023855885866637727769257565665062038650068706346168820650666736555551625790698620221658758325164850896176630581945768044245134271432979223438792052622247770538056288190384404907049544199245122831297645114793869966940255733893061440371001135148639225973069811305382566459807596708739176672840421252974991613890081183378432570878332105894796328007587831029056273397402388091060500576071447311707591023432104108808204811719749113649905306385394396684652963148985216793255444430088481870821037909522015211497660555381457857140980530864513949631470339157839646741121556533921325783937644711571906837029963051695943560467192987192874484269622990658508735693453833452737580368244924222863206832320478673549808422234731339034586968224279359291460820224690197908382170002027018069836187310161206298080638912529540107493223020524283582791596094464273717122294353333526996194796776971165485909737751392527130649082536325314159614532501373588801306655514786639921879704540261356262319309150808700071377526154877834115969515394461797248657360742911949527969565038244938872157320044981994308651242469116028269545815885557363619527149222751772575054564089005185767417594875833856506427439502222052809339679554425994399942481812613510055565336512522002426713431931585575873353572987407012297305374919637539644290849472423782096900765133335326284206409960822506104798815190001583217057421733349031233550055942582811301132129023804416446602039267970297766102248938486853958591098729230092485659170786070243203690611129010712047658024652246026320135581110830504719384334870809429418696442501316768222902238482317939448007007125492492592933281624014029338401230777007704948296948059572466941210967955071604318413962376301764562294191545460813012081697344478481760198550187584928920769308534830757953484690305848533204981856390822956343237045121557544706987746532212665362419717165163293282183169160175164442273538676288781099306266642952674404157773904152513214439369297671907855304122452829999517024244238822883181752936964329531944119690069563728713289958668424566239023039881825970440511731229472621933690706727953871571466792687204717803103303921578816894839698905806016181964334240193490297334611610372495853530216898714057434754850404580562479709525217864417131524236738924269842628105185310778109864852746658649354303782947011273965744650933240902212736522498651066984827679811979997112307029398974630964883392336251433729753588378627590834061786709498125250391200072823602076174924227618206364077985724747201632920690196360502111559336095240805625607288569141639893421530013026843644252443814786532457825366947071650815557130986624073886762816591474549819796774485489031267016782001491202238050995478730268372055866116885533742895692421706610467944715648804029148969767887350899107255793841641662539543687725915014654905241473830198452043377576197954438233507681760843503554664957361807358388032417338658844268057983809506219600477204137862223227624772239678818764447429790408673505049566617497782621713846548738867262386608101818814685767459463847402927111040852463292096231250671706059002091668707248068565209561069893569742853884501814920944108727428173192641103945897289774733722432679124605754889812730312800551972615837870614940822822127845312554499654369494115474196403973930454043435396630998370948557628223771100132545439276866267374474948894790024258804317864656620453420074578149228086684241272872717969618244000516046115903803161411728858810974651215389875844260787095558788250459386463657008015209894670536318636482253274258595880880942908265646546239067687016959338868152890422155326945083401483682159602111905997614658949750711487667128101279681398247639306816840535720281382911515000249160979065496073037803326237643206287644529341338027181490898806698237679024084475799790138462263327046978978632226262817993137406462263488981543015770785980174333772013038058392042319790303857579731657982218161848418482280896562794106417246711930816595147053190205157300394273838272031015970862071068609715705598096216848673279245291087744460759186499714827309391413490126522220849818443189473457436687877891677324032662735934189386067447491989050008720752641579073775472729330353376717652131680591242298886021991927083164610086851414518686261554031136436373381057145456508087350777227397932878897660466100381555783159223577184804032625834894023310715069599530198195129069740125155879804515443170649475815336750114709139961775827811354514766960675142651294499084105648197417724511364446238312662713886088000043648315305616375835142958073153161972906668245051662111064048627884138887361367500355554504871142512068346041015165829911594841795064002811217395030975577370787966909561916807643518938484930836788973386745022300224045372728400928813289815506888532705979541084721741635641810223899266813608699484221165338953953205533681399939852025374494380457099332015951276600646751310044765506119245633318894977479490838969328212600291600385431959459415285024531836858596126693082418879448651302854378741867533904622968509028730776549767798980309524685491233970826455050969784495456674021366147311231915227654493083804041583927155832216523323962497796808007911952773998539745421569091335554764254703416841499890628996876392894296285390092470791562542256771975631961070358529271865003806373376378558648106542875471733979272768379506628748058908967653789632728257580923996365329430212844082418781266756238900750453056873579376303656509692839920676404230133353844756966805213739219062874583853992974171151669189865605131305783972848736645262157777467074625127974629951205354047119603082791637977060373443234644770698810625057611771039185037234908972453569514944343185288522541220976371303616293595314507844925931434543080489297420999020334557685229400676677129533911624033169572321388292579362478208667941124048351131912598126691594467094398591193635208292322630406626090656010473766914388692737790853354789242270541944925158340356747577343574168767744186339030788501637395711017048246047780282458201462964365544253986836406637370664413790177492314684305126103291655268713881903240002721022299085730401443285033600688808607474829564409734564684882033808123732822711654126904468093441840676019411200310930625928326856643570727530024693043952568878809788731892338374415931626644886115822351800089205432421850246331528286348487377096753209800672530278214449331893814856046372076396134386854359033043853477026422148148886476519979641550462594753118653145264194902340276094553512388632071337764866115239347304500098690722724227215664688115511343138681873798790180792467166701023475668572449973147429518763534230668533884956981649781302104597767848990058103990540664624841304195020720294643695404561769139743996089029382320638496065729921257162371010783872899393297177387044565281228522764849510134250098585778755073989270099150674754765886832714917338501430302269129048069561133868459894325938118025867940162985377043428157602628195396766757384336029108257250360724623758326398249351008736825728522303218602697546553316226502970365278038048432867992345000450757452279114219632290401438158003144758455892047082451506457200397016130401863259532575088443436494786236416131364400518318693291503948326725487919468061440706050637120418034610531243882545307772289571263005893579533772096716975280359429659984850667637692534166101740667689256128864993964699912234203958669724545966860177179864127209881944657622145489740844405962330623874398296911781382235757448498888547152246718037647031111952239430264904549351227809967425590078315998879083173134586708275863903791070971415137923732780023777238803168977737526592543053332628993456726592148575575162528002001572045714486484074495411672882277016436806269855419158624295578685580858470245136415528445956428561086381708417201440601744676413239874354608457313896401632466837192167952799126659453999773758636880022616175592503749215590918576848178748115663358728944215922701389295842719859977395246555250031101927670601754534505220349193502240280631533981163080429834068256002273016008655236305037896042412414563927660776329737499176722514199887974806815588519281906178193722695221481691901822383160754959454963478372370430969614091126237115247535070782529259384734384237895676000669578672554285358671382284494646337842063813034681843354889365631978699976324902310047744640428615337886788569841318425471186958470604501767377895951189940047414410174648281239006512626403304193416190099485870616689289823824959326954718436125429925803192445987672042317080423409911749548288845519553126479738501580942053787208311052113489224484483904594038977649029212523418668938685193090284849436703826653805506159251641815584983747455400883921764654173030164005056730884679250577487197034023257972972391306944315803937238863411004656529368281437403538735777151384345129751958592871819074833364323390725512344977375770092574938781726893497053968758807437375221650738642041332745045087298025321775000960318637744148642923105406418919257101784788205000020582578719188757868880591828007552997390559974097727510030669791362567274833443515868541302539722350049623515543524021010447431177351640602075627912264195603685981894782093793364159585564270335208049937660250753410195636323617660980298934496827744769772426739321602706141748496846994437443105972451253766767447042333572593214986684381905947058101316869140114800269872392370792669280921877155373429199906043166765235780299844736107298985411186738289912025219453603826652918285674545575013365259085847077876957301510252847694173609009395544009987796123150135139552269407645411250755280075768497824376126638603698329227744091137149202230435272960511510658937661627503570763020206190747861855629430987866695845674491411988649792839111049068497422161287092017755884601981550003040007240909706859452659621915774576075134547381239531470966874495933425325445645910347930911994957437960484454060084320211705746513276211433486015988586418478085610704153018016845156757863001780972517445233557695674063013584080529295250585371447521461476562796305923658033926920728342781265425847523924367242386763180501189204277674032814610567572822176872921470819871658792731805261770997736596428127822512194873025200069313856805859440377254087370721323110538943224579591219553154614716151641261336576755860957591650617790089747551863426111525783334726214790701924448682469947360353141582771780759648379734863563931480550305134179725753816663148210581238629349219655015845023252746423180122358349590334143421728545468797029809829061060603381872327583432516473261528834348635329851120865177802151474090346448098452412673271439188387791831772554355315110945845325613094791333701046227582565288548406945074398591836423212476995992400374306852367275292785920934518958589982796999377031443458595444522604980198910474094139929631573449276836108794276865287704623905721894157116056772788984082702372551588586570851766172899822985486181022046996623232280491158245612400207358975824143440433103499467214889240360528320045281727699635095215216494619693488726954010544701459303685541925836796548492194204498051546577177936074781345058173124641525194697908198716241011610114074111233342267179330756612203000601498263927696786697527473422277897346871652756217193910048697524790620524967221025231863406155716707025633775047648928644434877032098882576770647972632830237272303826716502683469224886290755872286370190623826378525717574454846827626412167794813882464304774144381401976135727645721017220174479562613928287182871733854238706734801306364053572947089489702593678181062830604767298830581770838194524418107850357946862149969684161400294045024999030142158885089514421418622185092171408972019108569133146434155777972105392360899085110959512834403637414921779401587612803690037040549613853751900424171972261335197540008102450929049679083095844294962049399049142522537883821996847542670475460075097424394170896443067734880494319819496485735644572468248196351459483252132589919144181936824531059963687430254874396285417960108645571897942874646268592840862503954138438500895238390201083999608030503244879288037603219200552165815089188225891894001218918929169152881167177005314631175816516763944141659399051020788619915531945410389726655408008696781979634647302339605620149334142364320896464554897123611673630242242974844823619450143592623663272526866438595018164492120653075349368758970563552375092032874971606625445660794045664157266751600248023822631811624338261987222382430016689994019079998338558048926238401067793628887222186790610911737276071288852708867967413327926663208744543237642282526340817576982097674729971761616339161087146236031637054154969312875549451295425675465837824267837251009607698685486973962427612615744058144448762722658516073952164485621417541830428471366184692237908549512349241471198175750678474210498389485364557621765311958372553703541259426035381822470213025657199930601035580479768382875974004502737404511939570622187090383713358339086685905181453913598168608306928206704482814780002203725308332395144688129505796483478733014626163207130331621795144245026081101759762808925091362897662108367253566795053419486831715976140945724066079106805580232387971320639913217230109455169606562759845618476812287316761746662141308386308093914258419725008511585225830031673744522326030209180863441807898326974284578106764753976965437380596268127259717790017819071906774865255407266134826043173584358976952085093760613867924418371244303135717832188711315999566178426364399694830925651558244802806885009536014602335041559110670105464936210847443816021308701887282882034252222269537020616707460322536618143936121540521296539759416396000930990856127092934120800949067353844404636502351825068178422785301467739592665150899086474794181535446965480234036769041499874355781312895104617075474323514274548468810804936364728063449496126267934336714855772935348098884223067490745336974659349045179012340918288393116122576463736696275198666175191477562994274821082022607929125685135882581073466146534017515101822722224914712653541958475806564372798991164892344695697013592915460244384687522459235013805614957655540550888984978843665465948574490033917993064632168474235712936697391702679297607164948867115569428377497948901987169288668910029026930523512577476196662579920036615125825912988514773279495480127277130766999596887026608355950433397666082035587338317734357088270126376108594478390084076229980239677383316861226456254571115700528499938898247860130196759970292232990251946355324659483370624158163868100012997428327474628377213875219210995452403388424270958093035838459770470834378660498430788411963358060057114021204279343931922316174785030715945697078963338397257935127035560321575468964190461978375610578260623637023555479808005970415425143625952389656223717863158840317418084042116237214994972460559241543826560441642423373306154790663184861179833927491517249049829820578675165535324477180900643493886640615765587510880904441944403894781898697415408098978153939092107721049356862177142658416292466944832846260772419180088657966014512305791122524463204899525647237960667959666576816024419987354654188544723629333863639840554077987234778942239705325766833521402797335600112930400977722736100199239611931115342370355566003762007953004562935004229138437079611132761242327434966565949376373639714575243164282803206803297730277338699039980213386829978049863581873075346890676287537341291348256294713823651765906289833496793185000706820560659509178677423199886320370150796314255199618107650284461970032642714574660323853467167679616541829330101662250933652276645993871208891592478202344227846249002198327380578550649366638166321928018301449204177818338189754283988174450258384155035410388659264153917397440605661319550093540823479561632047736540089371578372800910079645266134646791532400679932226465907286676214506378922229794342230321951254592983897870541252913590551003918467592955214880745255566088765154653176756519314974948815449376136420255147234265464530330011506927338604602994787468052880675650210809334190877802851894293150392780151568463298248576311884430478693273298019338680188769402139849385836990057004868476378843954326053182759347693920903822869219326091256217319859363414454770283961186430467914857554164683411259612841324494500411138690223594265336622771731108973236948176093704745900864537027939713231819945948149314518039182207721418525794972794940673015158887595219857241672440455663789982161074203312499832089109003262231513142031702823785338860865888254872016481808906036183549048778320148679442501949891348240025507686911322781094385499286871993157450733248758183612956536623576243399740992459806724800616575747565978622221639369652726598149976132438488947179295180039497586770681813232155395093233517131245182674075992003587242531732515568446432632360222873394092787306350602148621338256446419417857376308832049937288107490179281799010240149151863749074381555136464409888281731946049189520558088629307766886166358233550369393202217092115231466751687658433564840737700789249234704760626556443120571685193373304206745001968388645412929283810443742833285539252714106681641578612496940956466200413503544011928360468032681842855737073732550275394918698897842908419374001170983421092468038332926335173173531412485480235093751498845818867394705890519124237470391686542985424222204795496729653161675876345943088032438582950186595262297168884512047329603589000851780830902952290867289392379674962036745094463017191570580969511220368952342677675661018105944236408996929691656742309329861069130796900805865453119831609818858697730267671069352573160263104360223095595344195434234756123851230350141447870605132780903417994530351171006635780447835551948044283984577976262068593202516157357498687395074489982016340181798936340338126645807540570166813100132475186351384457082362389359489582359774099203063474017631182441703508805745300380843300475236265628179167635988818252803217966084897645599616936993484188172772226427171498188176369598480497731681779157923498247372934917400709914557656658848194243794399705971127802053130753271235023979335768535424485924091113075402827268442288365808329642996241487928292199318643134952501356706061567281387246134531992169020022356489408691388546673542219282041697075306534423962363781222620631098005257447866918878365112646259821880140091549711906720966875937026612394310291692703787778699723679743558046264970478189638400067785846191683780269012385407504361086307298531381145152433077733496198031022129761315458055538790950359489645440988214073493744227131961653516477231590413452698931277970578906683510309731200762986094800457463724906636061191168434504956909671420662236664135808363394143616709556281479594007918362307722286939860615866966497821846795782320228647125727332955166246608426800456176559988770183596394514571289066391754388745830031834630738082480694839697739599575251084959534998428652281474168455706765811594471100062190577950578136831358689613522649029980732966751781883376856320816722450200652276763253384695667284434920849355680322618329838804438791852597992661688155553690145415929153832594256639903826156391877482895044661469801764696671319686467765364628613966667109061398336101322575468218941769010084462053271030157242776499389977987023680906226846950912907432381401040778205666282143897078074310849946913347918212875279209393584733016897121017174095832639638752676328316150207930061603925526623702881661976787457332648651284874074828042865502306569108518343016732502375328131091949619077443701703992385838801435008061868950514865514123126235228343241957299703092810229902431087531348042410323285457706101993044234648116946964678997192806842782148833506740112993396411090174422523296038081199434101359026350573550144563217007043714309477588799993198864125020090214508292458701341411484630861885949040064606829255210811089364555779820716481891526396006215749762073413434518300161571239283942476764840565709725370265043998754787077541203422835757276024032525789792898207075692262860367922289656830427681920887329252025542534488023275922999621197637911482237407173662186177969362182119927080723656438099768358126761256722625186316749452307811265745828733771894116848065865378120886578037060871530728814469742990042095428670589892623511191250556640770577567121479342139041145480696018019066896018774444030953663559327062982859974532695866205620910346094902612913287824885842577105431890983896098072364411002727818196296137619302383321939499049438711002385303515365878856081706808546877204834984622771250218179747753971152288415164456384709903071162508407218365795516879519057429167892828075011130878098584452207322655254896430491111462794077390403512172763372463219068835811651017323630001128511413179009698950022246119931461426248724835364574352769307642290082201000517021989162224187741963452125011537202022278801438652216506409551799380768466544033173592945036982838561438767477648004095671833028806491544953100775715993559130631192815296884451038780756034724500484832248158228589765735192675322753951878480226767126391395001305278470384036322201245404759296764910875539548964493242289762544691120688201548781704433795140996561001006958724727650855461839620916344811496717875171263400890281766516810835667071112082166696084076455713729581286220658905544866932264460271148894811115275963053912575721871239130996083314188574777159426302099659051712600261647037111337599154026228023336437974502603205898594283068443789834182887558267067384785457757214633350067474914778944131105378207585178651367023478505238424566465143461962683370217106696297858629233980518555499568956994398278687137878085726221945546099171607615437918043086777725650220933958898656852654563119024076681802321913693059110337610650796920395992685447032326307181309093501509481751382904934326664342503286207389540591124943623653938158173906749018809903919582299796806725170727144667665470550368951109116105465387609329468587397341982261093746576995850794940094646021264807329615557216277807979935257883954195426213177559723385018776330854713899740567093818114080976211435190054444184484828099071373512761478755141640847850557648421900941038867253721074616305188634212230416679280041494941833314061685695356646765778961150683264868779645299506408913814462316683611324092281618511754865823984276757700013095738210290690946610932776342704203358425489033071063534611101845802911278179889390028748585695737191693630478877047766695910894156951768690091754966635993293157485128755611834958584770771697678013703743771700867439193558503374327615409864369643415767889734384632773255189316764126654427964292648502337703935703765667443302064492583260595643300780025566078763577520226537712309983727266484023747595875295383298027607565663530702466971575385726018202654421573734742559129319907631479474902424670716653260483803200877599498378599141546111477537573391790073899406518168559483845476590632290475948007405369670323799503167784626005878359213566657189830692020742790406900985803280385455720987962437749360458979840412473516855970794075594052566503484981669161015134303073071081607943343439541469392974686053552417831390250872821256777091965970094024293233264677153734427146918953046641715533929051801817137376796310563466960084781706246650769036186050858359908134058454176793412593887496701184923678019432133380352357254616574102800590335532737269626969398900897984178959383871528198174113877554869904997045505685073626098491948459691727317302264233415436943205977477089849895398363053725467867684962061964029717659201113493291707272803233060422392839686950243473373917623342880115079950411514154699900461810054230208696370376282310415139898276654883082851177780680131339064353085986023243462605398807404726919474725411462137156661435400938023574929236688338076291393636836520451199611635985919732653554947109913435988648669836938491189572456589118556858263867948922436706791457797763301365320837750988167795974234713794439707428200910193473612581627224587544857534385329488092877912168243132849662996929687410224922395101588499906681148630762772618737620765131540546962620773976351594134044779545935375959985535279403511723393082134021159770273352656442797187200288075240378645427621321827213706149055598369204728520098923806227980619945045094245920806601799113580306704943225806088402325236332772830811545225490430868494675853391555273915264892755882557668696087143340095495121079063256215380876770566037682625983729860917206169966282112587280625752414198117809982160608465964241513192770868094057430533088826794455972423687253928879418576949886480754819817827045761920759391333120939124769055869714399534539110468488457103199077427558655995296681735529511912269572493238155079875286850671104524396808085679122805957404416618609232499744965425836187215185606064603963247309415405762808280937725131229359807953684896159081660457644304423394376890855225169479223178191064554993312424398443045518186865193170879948323304110688103684670224164115107357727739366130017722048924061175540447971734647992137859098496885297623856761691527015406307977629706355678923650541238809975178631218744869052607646000183392890605221161443799796292105354199324857700892845538486176401211362365477331634307671908297177736659387236469614460967004219301701737737537529207072342886299650736163752071931798428207064256672337897288593705224104596333579967411267205897285769737810846624159032088499938820122433302314831102790177432383435022199938214060277771271054676113144642348907692289730483488648203402142906308730332804569306501552492328356058385849848853070137428028970945806305182649507542772610964974074215256944596342123682514237880446423186580225224113449384993512107017801673656006817859533690571931803312668500773468230309413188227732607278781714309210256836098551883576538938325211443602635053964749142876762216977562476638587246503050702669972654864909841386122048189917586931291825267062186446679622067221731827048337368774215730497095883720510360871199472830794350627074305485821201817312017853857248622656391360250898193324364314560580302089160733627843861435232655650283597033191678850899317850220756427299014729229374471228110538868592502542110948341359496919579949090763477750633895473160807518176252128819411894182645831629713719230845552205158271804218075104100405079869583675093124957088504536861111073556444421601220614881626499052491085091471522583258084771938899851071467501055338453321797975773645380503329831446165675147076059899822664130558337926883126697144044042803755678306183846155238118858013357504322469424092150991949710978859314393127499721860274990213966710209270244380028332765742923171690533391283406401310089165111109668883938167150233171069506516819827200576757755881362749611043095745256079925200031211972298776767006534159412062407111431862197431739098728068492670419730256178253920066014738231501232125227587043270744810616768984370752156323201682676141635763271492602433256732436335395397706896350051806765543674859736937205899239965108939896258447754154555535777204070088820236798551780137143092599281392696921380175131518299548601023166432736332759878225611826264600297024571169369847701262311870569953189525048133521375519926658384424942116386145979956966780751733998408685253830457082855757123607252056760716385408037280046089830142620902630795913431887571293490282847999406724316706353920244566552328715982461633624208086577063647388389373842601877945562513677633864321808211798774252846531625072808501714486568259969398628034700028451366988569606717086894517903584139077385921334409952358368877062389739077806352764036584530789961429652156956004501972380973858178817917905147771496582816003618412870466692862283655888698443065848185735269333769253236595621460333360012326500562465324630498862973504055307272309087742153426462706244564624889295090148512056404221424173872266737046289306680893881923203982346118500463475566988288934800407372826513179780945740490233792254281392816839279994651266894908941194025862495652330259776551079444883147483245155327847254436930222173564748038811951497740269323028586411827809875775754476568938621761121241893813703876464399210669967590346288885102959551606738147095958699982887564927687559056256765792595718339793125899364601263661645875814813687902951628069565916307410053293958749181973036761563382615502083242836615605680866247028523810399057942091944046398883700463122775376042173665770596876982198840130025641330746773898421694104113634914636956893500387579950507597675226271345102591875802582961291625252818427444048722396409772478267430335512322782203809103515635498335012306047424885204685102379271037691355825596726421291988574906319475228607724092686898331387911678087763004433794999739637032115087887822047537580638120667567558081804565796294860825721214005575468400283746874219953454214109284255210076100878884543629843361867705427862220733902689605220292468323253357440781621846986121889554239355082253362571916745761189358899739756666192644608636984652641598551708079945073146511647815756538234448471791735350501051677858999319427872529958064869155361069268253836765119524423473574630094722596062805464132423927441242650224365721450301110653476424283041946118409583109207569073522346050442738039819684851200429084220833086821901200508678468412016299752106832755416803365783866734180411992355894346438943628649344859616120068809629150378133334074145208524366698410006334829240804838716684376219118204260277550510552513790843518906121216728145491962293227134357193888714209681852365911241136817418308351127990031901306804882086467408050121091864535265384416821302375451585830664918454658328397727090804535414888462717398067079376382306358140966717325917677414265409036399947105511894642163117118522532815707443078308458841536700108635649439464695691924719327558066155752215455768436634011739892301332393563116601128149916679336901100804297621371415920025359447450711715184876962718712640663496784940355395514340929414205801914917121931666400241852159501442517224161710713639185344607856152985977119065906698666606431026894679575558750925352369227623299953261861846690653354003570179128504178352033661192052556579156902736413900314494259151154305465002262602592400088431588434027032865733198910115987052833420307785239024309266456497443810570682759238981414540942965725850610798597664597090908666840028928356899360593907564941827465102587604709751661036145360297995117564726041503305855401641574641364785411167788352112001064486512829666695843102977178202004147123128416905856064928575303985236810924287933286728260512252210326852618451776247630909387095033250590142563232147007096051610955259392776625417955071621166753389645998061817352006127107830926083893287069208892840169553964896957897258441561757795066117147487598884377243157054230806331928602654028990095102867283898959394963849793999377315108420210810269781450626489249995795942737503728294710618152802788775625837266849441028377548596319043262952238657585455029064724033732264324949445519889137630549345317404079973555649102490417909736742343926783780089467237048318727245690376447262858652104220483844042704011102201277323965856391449904366073136870519771053325867501825094683509103501814294248050979818160429281064580755353698476044939453298664039223137402018006882122715816553152527057945340981336292579303655397831738043106995716732319561959533214373008229763759470922250857524395007336380532480038532257204916039861680052498542719201151262263682963368297189580491373475307725652853357269132769451573692906357825765304688700645465210223952588610207152691357565573830534647109310770981478954284039469479646671712507424690328758339873356916310229758505261964060899776407445492112929809992190333852483447349043604516916704469098602837178058431561259503898051235901601668671747780659491410895386107704524616023911995279259293770015818408571410578619618898152687752709535374651122759184513821197143990564334114907822898733301109919299683288387985953632364689611690039242991203334457772859445883613925000303497582945327887991584985254602527264923481901884562594102859435654581329529618242381755636619758394623409369784877916960331913208850602074064941216209023569773791309487840866957134025560724360548754609951140812939064690803163363248272585498136243187351572475490159381680935207996722014044451325726242571293215842629775267658891764373209555887509333370651650475821686686639309181814466941083930819337401656067562476655049466722580443868832467239931613383304003491179831355006529895354635033203756633065581418378037405367975429215454748266850803744481783967782351288461507346120272447438373449566538198798315586107423022867501473805659863711738042488054519781524398038492690129484651907577052845620587358313993973588040484964750799231494854727398663064785381354230243255338207907379695964923649421953888261737066359846928053653765195328743034421841682027438595048325064300044969355555370964235058207703541886839262984405048649344676831628844461240176159960728823317697910496447428463004885852020832020032340107596079150644739076216051893952414318163133946138306563168900506339916400348641446287022194342742258187812500594958465441236797841803994979072074381078628736018734588900413923235166165472635284178461397293363704400576173254360590520659972630595466708651568028878133542915151964598480085263898634261497467808154263674439020013726082358484583060132502287382192110830331855159646858374353818603036584597720954367218018903227424114247892980715368749123550026223009886588894552978010088600122648995173009932230549152199770976106234473190659470181527946883032782059890043199831927848615089438959778865207269440481237607412598491424188285457031204477882983045923450838007219246231240563522623508199770281557189612130540527480471895415722257740526368516913451994692350973059155850821556865624183352615875840775766927478781774394939556414696167056035805546371968316951350921200461552424366820737873157532938825721186074945266903889789999864968120154922603967173925250333472778107584477733048973545500671701622927151491206091268942093888260725770775910967101545529256329081513423132910096703359132561174162830422291076030803408706573991056125687264096765639355627169626780896586798391936925884476185544429729779837660333845400049841066948104145999214939985918056913764209033094417124957417949588026043942882626162681332667516743220001676434768785117035492503445132951676972017310833525969914751904397039680269577889132191706901178801453860573363479776253141171862978558820327351352738956166635263418746176530125855882770335412156303394426240910631886599336329189451003951189195821419259471753593981916240177492606525106429532723242923621011717548934320265773838133165510205099407821637920464881028367409508586367750063565950509007624260530640949465357904640800584984884914449028575125404796853333034933589004570243636809063216107068473445946043566828161016401631888630103588008866317913923630001291110948370345079789242353286516364832764372846141905049354056915550302565806223747988481934334725381472814567866374770238293079736819218821891660020138236766819651300533189355999904655303898151962360965390675637925349980859890797373048965897062148728208080166839823303456434689268608176486942710487181987666511450019743661398355574632494356724289724862633084154786155214957794620200789855160454501347740519833969588165398384171635052135803934500769552136074452269655084481767729527790978925222693761648071248726272473157290050470140844860076959633051415138506309920875730708302601207101004604271559102520481277046434744038436069567278168448493055740560001382909861493615392658198100129644335924056071643073781776085500209168132583708518228195460959173187166655306893662592064626888422229925853738898239772707266170373319108351969801397918101229898378022258238554841499476896752345180084577968414398710834886807611641314284642582053913987319930937621679293169352175442173064850757440328956372541162661434999891813856503464885882634491507781176104755326555919360579831839956967275008857768564753216787049914609725000123562267512769953088577748986487205115557486932720792146383152102582631693641368707368450359644224851941371177114931227110900022138389337977005930609929943386501068786030247088290560813098466715242040793731816818494720965834958659785748749560318661210657169904480056332358974177837389546953204292948495804382833403650340869581647894013615466403531586058121263901426084080366196385055606327462676277312686589023454016176703612600626541945025146466667701755470151581911417514645367982884138941598272509474924444396197084501475059389113089046797299229481811958982841955320001850270725171856725110986394941034969203220249849094978249380927124211164900206375630303423394769715935756649574019353556840834255598928679507505511570383170922111253693528682146182393543785834107208279975031655481579497463342675588658149029262096687517855604160473987906232161867541187257706552468063744071320795922773557626084764603736418531024105042272534592867802648554727057715711510843896642684268557262296184603395095756066120933188599211596342760348097937727909602109755724872553852420547299833244745349740907976500701474790866104721218679106788411023919728932960557297131595229481256310204553250652892997609681703765821965638879445236361472984626473045766040428935475085151889211293738937832456937410190473881644364609305877122745412811667924842739867687406836185856480280142005654683075158091504799341924717265736120387431485671887226259646639270557246683507593164602025299875174140207028957820147212065066860005603616570526770978142253470987500795728830459001453071153564808506483676562624761675699302125318776471056913766980457905908524376606934558422292830496216738656044488343079503922600908658627050541776728350315089691918800957835959800272098642592472406342742913514889375550983513581776486953400061629232418243384615247024507120364566338111636464040474503196719094731203377660929232425742933916194041641085549148510524121789367621706181748852800697281375708255349497768600951044039870857834386508547853035457319824615332212662046753452934107150997645735425815621169577915250163278425395838492612710631573493616811837716157445729099155425387341520797288809397036949182007967383181823896158280849394761890854475563225474186171441281458118406645442415364129510770689450390451251693348647569554867460627884462795049884548995194033696095492653345996109393812431192147063702761018686092391255454850398866042281791389722940965944881289298856788725084928951743938727687485254845531634860919715266120836729566085114958402453609181813954362214496095438179974703848047176562564536257654326602120298140265284103165807211284765096810482583774840769994744602033874050443774848310710834682293182762740415197463206898306605263947710209057345524102078284188694620023656314357169207766565232035032291631445522257312216559067145869682195812818175365534910631815494897780727813314821564842275856995276318839234794000236464221647785652297835578644538506859575164290010994612803670138007341486991889307910909378630853842697975424023824580041495035218389405938798029203432241692786533726247492441255606840796696417346233623871464079082071190262469142603032679758510827916497667794859479865483205067653793268819937416600784827319206647336621609249594883664780712477315441823795215631198593546571520588473307195242095262321635247934277348051111141654319366160373634056523076041278961971784132698505680708855273533336392818194994027295164869373531376208917731650877361619538990504686069196577275701355005558479016809973513514807494038489593089197809218126202231313590155608076417054956500848527643472012818313912551816661194304594016751643544123272596324784565268362075790807319285860959423739431238602408421871855636098434915225318992862399123839130357462029544285583610887636674791225585913633679377975475875227533661856133900721595409698064062854753395009314501611015367228062658875202814348461610034884457931230896744483478681802404343726340728441113261377205753568947162358105561415399186149907467365253900059810725570404400432035855663336308437061164169742487521186005700683496134804517755642535051241283865569262133170833035267950709956214425090776819311605612050446942411481628109864505950532497985963991564392051572848898120776039333728134512209064133090503780531121308897746851482415714253339517229165741878017643527936086636049609247772777246532740998589297056113511797872789815370339398898008400819815803468028412949701899048645358693903664522248703932763606229167061760402869737004768431309549443219246321316716350351764921945116551322170055339180037501396193870178435779048915566270264067128226695784396759619029297875813647039001244195232049730862138568650878379957397843236126310883319632882339262990856980745816293174416041514158708412364305589288990308642921348331613299707761196621931636960480316435879118145559674985227212457583415801141447070606307480803070618066561844196055056611420549458065427291941832946380949508488542308910227757399216973330440934662970268761494239458424682587347881966347851967087013915234313740826709856631362650572262839999934572963686484599063279943709830004186982313639634795824917605074770490169337205594140491323509045093394072828290072030382800885258668046415899048714200876904966558279485078881460374715288008142868547107274425753035762308563106400467183596574959390482926067809036541503876259573621754247409579197330392919085489374049451001279958585989698216395986203457599942766533162093166482650627620515437864313857474358342177442613976818808713300416379401458906526512573583395713942532539995013027140775869303291872858498751608760473147870461863989490140939235876161525648638445373989213670939219005043229623147812848373819325485210807082009185532287419735569319407299383550813943144892639638482143711920492233972333129722773258725279855701863943895590551784689232354863966993960709976281639248277131781418972911619973238318230786892453616797191955586092156050319859596665676776996075112628153359892328244650856780403867945295518288796010918097774947720729574230214015646434092772343230246371534240439072753244995830477466706737245471556499697954415531650150608717279318994378120778391101849928535814163559138028571783616770547177269691946566335006321394830295533189429944010258466202594926288995194270959091597293243060520220875603989089826821656637864286970618850258947048308687651354252541322997886983867727535250882455062473121556342651119302701266568151077316738108427334253400581251985519521614797517754339927739913481329256173813350029778764283986660993678311644045057125069079896884830965316077991447909047229460437960669846556070858651181410293901269176256667081710912488276089969062534893898314740373325822954655780545021011448620383250465660667995161892772658593305443953493980297652161573419800532449616751636062192903314779038875633311975662974105607456189511001343529223737876432566119468486938975300710073528834098816281769514229881621363353829028424953818490957003135439608207343052068399747941638190746144135781786628579044416382674492364821625499950311426154963672393002429323315631648203693075288874331809982158524770991070601126637523886260209373420600428249682920654168543372627514453154366503726449008135345883279159379474503962168732525455997574856949725943291194630599792855951721649407410949388628818051384251621376856818425900684327369039165687127701371055014543848347145337418508171660255929580811865406914317335498507607643715083921875646145591218966018851159612448784610690395151440571168191153143759938270069457512718361721558678508673315840196866577085361152179353510544367127631077613744745276612553705269334637760623460653977248855452667118075163564388229699503896259889596775904192252845423795636401333092812033086314518836928937418005047686119622112877864340174191720247792699078370170474100875870768322142889723976536728802538583162703702739597546904407823084693652104888399330939904029961180175313299676543658800010807420772915503651654305907041889389303013923881767788275854281961326983122065633298642326248184428006594014455145476868444659340064367514220352271121874747114324398282375022377003135406561942527402253311462386082851456778722608990111799334890429413854408747252377449949845372388531054179122726390429385309164510804824062409466046307068441489473795505997997058630236625283599906279265985887960229064294183065897421806494816429996739613478245197143254677305276629139512011391468784996815808015973721932239780943715549518088680243542258233752954454328004511645533267899423784360001467825021324471075395533560635077084383964040268872934872320493746200136757070777585948312249886442981960837832635926928605630484130687782770743237036098806937432681109869276967554286053931590692830686669334175970511595657919763943742064982328376275575922629430474117800425571761091721307750208666908439526519000739629606598820248654127724091486225572841938963148624329475576424470276737500107821566503393255523887526063544381887059413768827215852189538234907359353159862321222856967955356927552864231074122828163501587436765349662653383171053255390308322513449912952163167602942716633673584504424770657541876385039310547534416583068275909184076628723660412727942043159497486299890037253386067148328338751523230231966443860664508609062045261707133502082366073413658619438394078962050356156021862907314839421953927068281425793024968300960450145351941145515336497096502891685118715901167652887574178916079481593869040594008967216490472013516393170626422077776904838131580720615656100165295263841267135710367795121363861515397110075650225624795141523711823199002079903537626997405062499260189506541188683773174319735351695233283055613129690663113388145011736712770394821769614792449416122416139205354473160762741796460178880436749431663212845175073112803362414049548122629119977589145347455815889075427811154912785207522623123218945015792599081629099484579870264325604244023389220722070946749425605510733584400093358381805754715409072656734832023515707538021020170812338755311122783258252720052420236519840993936165517141111185811349763969177595776139613892625671504796073712624192758410910227327272386585265310571367320225543618082281772443134317782672382381560196387967839072733996138208737150924466504572313787496422709433585177442171878615936173117358240013741678884367518842007742937505266546621487539898373734721500970823731695277945727591058495934108602805116446942047136478489366892258968659298253701234987979204831442329369804167096456519156335747826120965518002575794823078663800211430851130417829090756371126637430411694937309216824085225786451869886360213051798967305841477212246549254727672582177844794069393728303850653732188755021265426729700490285781954347657065372755433388728552410540181033282980981955556955520439518825583800492870599214590438239943369571629278904715570901546768340005610759783658779214342957193649705460401468342661805370124951037352362402874197073845953596481736338264613993253285945547690547400570274419528273444818131352853589268527933193057979750142146147829589916371122270635363137249646641314853042932436234526468062275456460344426664722717506765672539673115809735540066707236767299124171691571719129666585132230989392675238302090530756888360389251065824450192434387377697247380102963201466218245507928520814389778717849557773274854281047852493793512010096200566921263651106407632736472983682776889987192633510234512713659095794057226147345267013523588656849682727177068479293915216915487610413953979996998302763104243467724538480797506223232635257728712623420754910093164298385684441093232136965697383799583248387358125858038816220036709629685854140750039058264758004596707782990113349955331557579563222658572397896620515078023420672239484605737687119737467273214866857880514946049723982397732756259027572874498831179558494436643551751510037482284335131058912621237307216586752507360243220932781019848718514976207355909891466818812606395570190123201579951772940568320914186542592089938785512309134865388872422516904933036836789037063796194270018086421869312570324639378990924576295237527580639183764074155673490079251480827639068361367383994597437012511690879023461384410375032119827329543017252517027784473824354576302252057979755007585291519335991007325218352497543359692657232046481215845826650988513739735407520592161749825525640065250667093359336495868718645575781139362737381127269642867499818862791228734043946932482190424380568062854368650256918519585087574436123331331732735599072706529055958840929682833752435180293269890601610268320330401763532583950910208103151657423611524954830436709012417192364262108223923505314423773571609407346260632826811513435104848187782927121334468326935239676790327582403331220209150307760868936820573510659250520413888132531042658622759018262086115426912474881583125148171425744749168829281866242100270711643602789298715666884989771980707092667564046041255993821263217797184436546053823143255764606214450161030862444170785947953609292350166494989852291811798346468769355737011499884351246753476892455996967899513741667262546919102907265891496336675447745430275185040633220166657080585518328994367207997428186371276166707151869221760306624720492923965838256255639580219154696533962059870594204496113565489052970580316044874363161283898523099251428533836486856532865999404579168713817824098545732484712430278885633335836680541593836390977120950080140989727860558005328721721663104307188349644853386916703336122718546343658816185032942340515999944797481240939107049247781547035418958034091383997263120038333216204900508793719059754957928206361367911319786683408047757894007021618056174298370288625648624006208047480752205196470038103387545805150623506870426709310849653127331977867363592997683860178653720388968071586135537022463103048553814193764512378659640288872340169452027702562480464654554398258184884595091034104660788997158235548079068561377087563745926148703504212792498675368320222552161624358719047778596395167997375001833684772906577930798601522444943909432693523557267665473460160953154624194882514272409018346915823004125556227602223873120742911540254441174698727653905130957137634504789644107622392569632797668573681326485254445303604707706476610281783834446682269105768201158213908059385672080478336125170571372642213584765173589745365610235085940059732293543636129650396260946982567454980626986476584961645200988802797606107410163327594186930799204791417771077741399937659394834014981185462467367432292240236247564953571971783336743859091237231135338036979598502294354863905066652064073085106440777772869792148515655026180985333104717867291088230645794823325970282982747082772782818160525806853873832054592181582043879670380582362781332023971468199030708562093043202098165173380832897034861444620482824083209729334978325096816757927431822943436691460889150031528063350689065423439576179001414266479587512032241083189414499128558438454073287296915650621102652543655741091865479882585170339141462574413703844541568858992972043656432814633473210382893467721215623754932642976514997024665699847024937007304868848127479400130908854425099396351547102193916826302386905416474823179402440199498619705793010519996813070690880326637925057847438402437009802955360774682972306565374274809183307108940395246217851226139903579419244824717375861224978133024523806536177543451394512573211699543484329169716424540539124440421763050722365835895331041364897920023255564643949700140408528842494020694795455315038252761813750141947667431185277976788159624011733192556116246554107148872996918095479804071105254928699494162170466244247548761308357613183998876297462546766775662624759125873123514639090667485682160665482442824269189115489332557131349576197482818998598616404129146526456963395546038328697192233500941850431075600331120153802746182139933731950792386052550954634560144269619149789927136860472042862823402970201251002768482183824114363557139449204788580898898387686769495038478735487732377466480175712522047418883543502706514628220007581555246545355533617850471431153181935004078955688708864584754388870768911488253578799967052203039693401077924589754593941305548999032718890528576711073396056436388729478221683340688308393230140888468379268664711079352247797773081191280330564366589268906590211069473284122394051545439453195813013838863243192219953257414247939318878056655167697374037732142995132416126264008708950184661209611147883048253476513664493719457675992162477594720709773485496841339787924187617901982643463192581657138739126209189696422468388169255871169336919664965335129774638177926718861466665195326939107817587867718519896684742854150483719142953711318210479368290550314601108561278586839256377078886920966096673264364062674767166813841156256411604749640210603287430928727947104992026142260283375142304869237279553132011325483595221827685945313256739709319524059911033883411794164717939859740352374799675146865959206325811601212867810729005742547322173128131359485443203988046070542153029414636701169047007119706229251545617803027233158102502447493206157406198315446811496156759207285666486188361930381663991453072083976462684290702821658769121675037956468925729088547435817701508083278413343589579006894175992141975126280489528269081861784694456417795209314234217355635789886484526377217865318449574632006310279773960128227499333216667566254446921972701221698639866485899597026650751213494903962052232453121952809744390383726461692359144879228071355516497479934204632249186123835609337038502386934362572225655479480124122970817010880338044092767685973482344290453742935053162974026766161492664482621230863036151709738048371336700199702732886497682726502538386096253605227084042903394664282190399608783964551710938627884884606470948719863458384833112409720991316192303841035453826071336553063968696417849605826364645806963931868981094860264088008726410494974547797983116802864004273272760414926855305973938770639240805887970272508377847695443591451884702283709046722264480100392478154430053585544993200751785085436074745431579238691199842708058078642453849462537886942327062971887545582589631234698732990925208820778399837163205453970950965808302919248962231615906477862063442760710972064123924511912251879649628433683426980085568872320962104578590145815785402942003401089068614836777817808870355948856061229440433432079857149219176337223196721054857124616949316688100933182334157807490274079835357863740523399651768280381208984960477118508072393179588136500462648655412580837075960123594283695295298976624433692414178425912994797309799673660823155632116897532763679178373898090261499991954230942967481558554468196260506525597438834527314331718405825372039734984014127921821992643386175398188897823589085182228127964730252462796208798914176536357000385734218052212395313277076771651926961671336420419969228333229295243361046037364495836319610935166563826253791456102693483753497295606336912430685180203832957611105428902300468821926653242867976502854240872160697034381909757993227599893445617197169300855398256505466842155350414391822350859956986300207415090585073118588181946872015836526325275874825523156255800727782924532224991250345934731377591392301666298189350852481515285545619253009248288350596765784388481723482959677845664750278097679284624488048130120756588982772304074634115660673001225100774055240896839166227447992484804844210131542447251279567781227801843666363168605658343110748420919924905973724054338689292579039242919888512408418948306357013883921467665324369891757833620447421516260248169828306073264074250218097421675774328495130254994320289594033180919514874756031223506942595971095604328325233225319449127980458926697247799261507429447635723326754350267025051389793510470266807512265355761007573065657173791295246837462110954386308031489339537162891188826476860322422734929622309467780956243558629178032787275038444889716397583768949911187661104199660556551104129434270061971985904707129340937606067921267663612387933175264096675450151387422524844959551523199294740658746704020897084559472959751858599850493669461202914533633346075111528733076395745191738272561708313535474842718067715751414401015462911909515355817045369243013705739228991965937617294256313118497859148265387482703669762648581500589799389997974371943263815563135678603078422538402716675180576132011454908022640547438066957461001708244301935121007552867427354273480979199702930196675525687637986273505246420975943083708585949923853213312188315706375208678338038221050679426182929658845397851539054403897444469498231914125595428543989264016823265507374014194840142700722121988078013719037517066141436728065629968646552059665636482732916326186312361003169607116659114206583718574870180123672685555999030165727890027549343245135480762132232596378457510785491637258429685418948636430461363077280124513747824374018995966995442598029799890665368425325455827134198636855806885230094943935708023033447240256929677094941829829991226625611828866745284782267874294940092469220679176916834221759933978693443666214297565848779566328304974433939966508707327419935905783664237867288046675446689899167019781165361970849733352598075932631312895595569518136710893023110776074010937759875015953731824021998528664032073088395486260410535502784863604488620252917773261908359547036473381327984239520348219735283498929194794070770666790381549552322746205730818261194093381261896376733540032746160255522193562877776671923511547254038694826554425995285551612465804265093766820891962247169960070449062885147689233726343846950749842603738086361092505854589738544228283769729759263432601103420520191583572580394410322840310184391672227960798089197895921864071790428998050988067907418009437190844878917566967298393445801525380413037591511510508400164464253179421887296464180006318366874128778030450590945793194149250936002850235716855501698219874228468333742010844787934368159819341301888505629830179940869642536807820160019402201000593298732373458315392446515582139182256794114498138039637352184528135789685686303062353696989280042224888186056549795608261467057304021089425138960563200224201090891835741008138890729999068957547262936192324816623978910687972083425442135379422866275396189346424462179010000173612171301325150454054855259050288078953920786254353204502977981567625684758106418504996669345138891863373558869285055405977856016604357474869990566272137347125664727918172405374552120354833197992196198025315881208169896414757759431931994385773113936640071654334188817702176359952982520599592035416296678068737184245044683917033328896364795803603253211034663535206161282002313495805587173129103724188189015166948502490486211873482680813107603669241494195873066743873911778219319192140554779243379846417590673315548316150179373390768009459919545594844662454797726869713859687835878914090012864762322130855163500796427396260716579158949259135668122783646470024440297009355887256733150773808120440222411716117357479967342183061717620703947170060742023319715339468486946320972392185926904552726394632183147604985616090381405624378911901021364848004565334255378563901858410360830021616288082273552565826984459907033889837695600420519331322530803059279654763489716538118783491635201166428183597874980513658551689476849874346457448035172156354565515319563223831674635401204501960947399723464961250047395229120803977213870984890799081210391017090173032023127494670448818211675509298157076880034345237513801723841993516955585331001638586735930907319434582204050638628173193216012794067155566270712881473930078797185303021346418529313536899774405128285766755712812730436480286302367937262031907296336279157226733305621339849272327185069250419825202285947971769325215053768832184694744351571433755626338255152370496801425803601341319297371701485650176220405681873829070644478972595012211490289963126027822502411880414635845226751902135925251304551889991224363776232031504406381284025711130511383791240029870635096590083680311030084163319260690630718608949711644279759511727674595603235316397364367720900556097311049283064535374678727923957362575604919262919609022864165872613815753363819624952270347066068831493345428549884350516004268300494197096083641084391047494460634756735010456100583844507917969675702275701458649058013011241550090009363879779455854093479394778069743724141581229122065208837419336037538216308277108769818222695476794640569469485838728012971968941817673498243797593807923477577338504487253143241052931766077188280804602396830316315732277283453783012346907016895050234403609400954947603372629788277479717259684891512770789317714304797859883896645788083906055198648605227059491628209113346282061530891681458291802184801883259448153472962275238123190124885791894204213916852427324090075441080911741489408789931888520056967700712147297585974247878287994260050271016064348870701401804868750706276861061039524058916978143367104686294767864825307293753504888382948139026730357145198171861700149208937451501608508238215659678358813825767994114707701395964104237371764442541107354102434072510792711717019093320291974610172835601416026592086862106256821750955002094920450953568375339105153315293808160832809442694205941410566065282261667355362819490293564110509821979266903964962937191238942264315428079128069687191241023409109182358549161939549050270700770198410271559052780891931610190081188139829776593262822802044830102183544872554872524896758506528138178835044187259678407751960762054910146714910513848816393007759561481210301150550353211579310525012472690350981720566613192145994348085059038326742663483738042446099131556362930470034417413349459007416683794268510622600535652380502962343743954886165406953651118697535915251303477570467364730522006890874911932923846834921130362629664636284773921651370254311527554630046270730202746641223995005150814255988759171927597004054146559658529213325736852056595668284372294606113407465754574932599507130583081565135945003906625880520569695353326471030900533661787269611080752200792541187235489295825749660059278955942525897543013378106558763989680929455750803008646231166539287877817126537684244401293020029630334563959291215295628452321171848864645613872049237073580430814065819039839811474243790337872845966917061637942461629457221266704698019132752040379464922169739735765359736255617130561692065993643839383276331514503331163368210901151538108072769676059562745395446125123518900577945028617502394063920287359282279989387823595477565655276600705141724500017246650410980684492971165199903246347308686335046654325391511613051618149367987818553977042410005364373612439391405968161480059268184858649873256348502031763177928701380337788646917360569767833939826349811469926801165653069658158121850746791864993433757056968735033487493392902839895651570000927986147365765792382150056925546567526302555784387566935972712475422134732218775395621901636466478973881334266460770852672788677132673683082212425815742186105953785799171188617753873165656335959757662366505117372605988895711136662813595367192644102842877234272284590448238625401185502872368652638970725765530984344456890888649944059607710681810993887450317301987846315327913534433701825434379915782454216529548228223856507399340627670374172471298191920163387967196972007689521719327843858344039927321336843299143192129562133974994863490029656214804237014407082971727179195974441662160795930720317130917042143039293957015053357177587919446681883011062415219902127914082159631664949296867196645679661682657445586536372398089061514742091314237026572259296767108036631530124581267714521021350490964191539024775242488657722958106219668995422266421156990299361836162208636745573507320639744050486693451200693212603830745701054276788329015382193610205043698343714680535449871801588392309884233948360647570819301709610334207344273185571091736838803510136281359212027795231124435521184230683272718400967994889439002676024709037401475569212926175363414994301528970935161672386769880651032406738038202807919123723164068170384594419501748005054261857149069629034902687612072156301615093620579759290211905312843020187646614661515254816181572802084824383735578422775659648792119551102800475145411367567224676763397409548644250077649261934521643666068748139624046586520532399517879751370895661136152226640378744297059656457547829324484292045328205541029789624673312684843896827543473823947045924158426398544029678807055077978367593245309791935262001131950605193686069864290126382165671027407895582510210217828831785984787845754820800744965611201075072143815694429020023646856550357095694315050198866735703218857516003710477989540291799680118256320672209549204344589353103500281241994025603135640074908486701676881342145902794895657752206883435579623102893366480452584063799100673647399430456773431847237166966090562817471198469799350166208034924066165042383361868744731220236512659963022306950808760188582106102954136629011318041043293330815425995635491603145707000036206899723795641750006999707132910298285384382866165167636851457626462073287027998505068295555104562015675428542689113481879981215935959655459616786391514277893945035725653628135647272300230685595815206939264181621958380417470070248217822305764838417674748683798264276691360297469729993288398551144534736949516813425346215650809445679485762387763899831498920840643413533691756452424434966682863639984951099516602646414562118202889199512398493060772558384630129459494326851251746732179337872198750864477533063954710271117718934057656008161375180196017948770991089016878820956749972167779160501204274854694565679119443553026858654896908149575497480455880054767162729796171263248962714997757435769636635675435183476399855511091618792750697431519471307079095110836763445278937947805238299685174116252180840266097907010647616593479896377867594061846500858903291623327932696327339447650004179420728534614264419798194540202483950171172717586391675148910714779511690727526501469979531769974743626785432401362227696317847285375027865471945372193637514600630130375701098311425788656919118427038393596533674662149251161578542655327756676395928770190303288970484881048715313830207836271403894954265395519307168942511502560873301936443227761306912788827721344516882087851078194908904160425717475337187407003753739287355567223282342992486149850939174322373513772311787682948768550772114309858441516518144313905665888506205874509312833132163471992846532675685729096702454557180253601810535430198248512792151527755475758932562977442609793501203721043834220060498147177074403053165426619345732625670624874411728000009243310422199490573559194249864494299153803001413196797359209129677843889744548579377867791922057287674908661214188050091019290803300990502261753594397384266496132573264722105057030630935360756615764041261134410438236977104508549118434553712920730247394876402100764147648955913516732261782285618937596822144219064085194317353320704188896617236217789804767788877032238906867270509726064703492925530946981406002096455910479395278824685770173203243882708753740593471894358823876253273406877599114827155491695809023345447247172560822966484585849325766865674041688530345319073353788381918416904464328498711170956777204112714652868801106700438042661228433625870433040594005945932661594871222700293319103459912498437215214976596932439559760434710293867145248715728602515914823107424099090731447811189950450210138643378933855365732678772277546421790534143243493251701980148354911137661526004079965121859808964926433121245796979517449331227837111655757114041753410037778836373868330181913461132596982913811678531009090867504300240507034143053090441575754733823717698360327622035983705317567686049180335308564959812993076074716102755367850482946008400859266381814183923733135230716353152988327818536609211851697087011315562076993653786959072779539264217021575009278859435352657541855648002063721986197039924240921709541020225759376968772324986108220215373432259997925150367611410468412993039126876145171275525726909440350729795105660738865523801850714592538148499193841435157867083787461460659776027640351419002878586581587128366552161011454487997285233855342189094769703378849834228334844967566692008463283982445237533320296245999674766897204615036700082599168904929255735145151221483759844053624473920482130232510705078574024759047544011441946983494989115301522212300409397453992257203423662872695839270538319300559481192410438687916392074996633094288863310106003630241615485003727835587048048878354415281398022461157951406515498340586550018479109359947374400710151906346358438906224132402554761328398058389934779597550790460791831663445316246620146421814840353543000766880187283675096932452651825442710894428969750028761535315563799595266116230929134627195983748449250667917971886773148022605066133551331223419290065109494013817171520890023822139936589190220260469683381447516757275190622104612656718083622391741983366195249642130325957178689791473256074341019250557872577587838011177771130724947143246115224109945577323268625845684282720946839344757308723222404939875357383121705122837693712104699656943732778216948806692086360255995881723548880288652240982276899000954120863773006311535591074283724936333580877237934987541494255828693973781028619380866241107664180533220984193157980724931921168954364500091473315032899693211524638931941877749029284329864374868898524853658203972104693241362191525992037611557632583565575806511639964714492182515126003853164261186895221684466318450079718034235330193796112008491698921273873273168333390250501700474648138971057798465886443701362216086036106833759835913963549512783421247982238789841143961893603769817360786636363690538528001513617545800600239814183147184077421807572375050120448939115734459307433695514319747904199542838399740524418539778886986819720904970107841755927304321317863912473074464009894836533480964578700352416943165882593899899966928153613640100548709860096703281356541162990427306695075273711423576502940621748074589293108509449274130317914070348452895747830965431121542491944827374069564512728404625138681208631417082235367761668070099694927151073254226191597327709258475532484894002270247427050470495456393050614842146431416380725484737705667173922982069382099463012805431924104729863024659200736399193433392102618858495195253029922823627200607963120685046914971890015095290391682019683519501953071474584883877931257521550534327008770440954113956143320741767499933810155535351939783503963466173509290722633097502412169242307889376670662593288682883980952466073224234222540769404847935744347917561092724711554642535783200636786022912454394856180266664223915730053587453221335466176334300935071377735072232872895938196568905850269541089171662569322286630571287083909142209026647900420832143338134172839228042401761813555387747110211205595418407043619314254326242689866527862252635623092145766738055642896309986658435193676594386285948441622724264523706942696472400556552882298351368814105048507030195297088933792800874305669113114130258911405904110971120354792559628957627414486063305415800550364512446111030875595279598389296706618152846190636483946775902922244479962728902335837713386576310860857824529802633889298632726982684723043322948073254588320414943729106816202771462999994561904746874438806013488100145745024975804068987345557879172982852883711200199667632839408547138257273121660339065259742891064264112583227743231563560762677099614195915553524475605482584434780844342646442277931102482288543563505747879043744999842954929690287768901437161163471446417256215654547765145201834771257668840087038985599752652963002711976627925593523544143494750723711322242146329327444951215939895437756183925073443623195652562111871918072632681216778143832398525439116468804072577563248696986218020540305407078633971776368465452344062868736947132176389359384775827657982304604719589517446167464525814132396033351142391224689232025160226839191605356850713484705998364049483302251981889581671461618052233335948113361728065725347395983307586592274271055550894697367225751342547938975046444196628179717185566979972590065352675454952708568436011860257583904644148931813823591283462096156325710953313956938247045144201145181029099544009381378616243076069679247074681790506107440383559203206632480043137497228192385634837848392852107520209713560836383572854073984133096579782640458291929423781991427646704970573893423443030216504755337000351014192913839264336325112912998068091447423390839007596869620409949329001535875026746790584258681901232997640767269995625039675292370548991024033539117338110864965815826625788626102230744919807065370504507403670426975485177243259297144988246655927079630257002509078492520261293087344893821081068805158553181745302396383141782974614044432029641201763569536645139702946439767821635559206936905070375519562296495459095895653515295909307182681757151931232355998463863395733715466875068238383236322682290614209000059231729336715672514975028654554221265331694912897709626373866304846763194669338949273050372452033271022057929019102527440892111227174917902315044007561859018711934541167122586275528969807258647812495679755288918012697300242883834734079052426425015255677901161628887051423789067708709066866282447678419136367732277471996514889584421048680359428698199289275925801732922701587437313234377639157738030078042374361047603089199246513804080814914901274679620503382383367050044128590256357706567300364310805247680775084439217946170362597208986114906353819617339647479172566609104321087549329361056288420110949841230079944401450708024770213780630216009579395663635371286721116444122197620002097159202662830435612741137607194666274549513960986358651473824676916265170938661036648688834250837166285177802011154505181384116974155833352361697590985821336910738928890830896690566897004138261961913214517506025413102772661111688581828348900640662068354531434076047436014408364647178790593912456407734703009818398428368604376332148468970955643475333119106096343121324873808196529974096893487365790820596278662883882578039880650687073976422194880588850325992648325714149069827761902164861722925825753417832585928741999385365244725485780955922122913971161913971998299463057711273056098999398702103052373675275789434275132937741318265347068461232530662485475228277803515203074332750403205598986943151454798119012250271888494941588627854590251890026765589141229735943822948385736984272165713352901720135484519610314737420019092350083633453923060422615487491946954984408894510575463455107361157345950062559632809688535905236295320165673713301056159925983232957219992068248217556117077218846256844474725981354786658461658227562150183354434071472977602562561200913799654708353976691364337736379304036940114067951899215348564610622490743195471958211786842796706752130868956896115614866483122694738809259684022987652720987790714814292666417373880342661928785735406519849484569868208985014312182140325813879561673538009476054880322024343044033924406575001908972745775183272409708365071961619803399052592929572402117604206756367736262618870617461969490736516602065074301478676924417190327689887245134720673760594821509221059254579888486164275865095657502625844538384070211812467907221202078644947385009534258992865646232238152082007663934759414638077398526570456919366360765740746324746996319916423935899430835336590957124831290693700963047274916062649788661310066257317133364702627878161851660789924021191521575350549767907378130300709562927919617917040134161088298717823876266694841086055561472734526758452826303640165824801661835806808828118916617185373286498019519547488055801816651614848019483542710672886172647169647529959046267891055239663068916377252923113668904445783992427979128269385950453643779299522781456258295298248742312723677832623054074098128262605421130421557079509500352066903387833983121135352374756940207519919714887501133703590951175755118034248149671437977449604717140933408609387524297955853736961566574048710525240011633931124071446231696248798711998992533845308023588428618988445396450504477093236074909684200470700121149483316561403010737200106502324250173353073155071750575965744422137666983062564929312567831713873377080966064455731890770368851551053442154044980641847580964393933865169248831358087605873773839994225933403623307545428249538197410649502437818088411943153796091476030995877863813743580634639880716451620597719286215522104324754615796006039770444255849782690562775194272679867847517340963918116288020798500216498019678563669315155438891396196998603737216614206867048712104275608928955807258073742634780274258955761298250413049884580090724399113770487225582370113004215879819388251714740430306931398284824262764247429054318523275735556132092610982330695553946553321194031649298198565485326745683114802461974211297322568644134115345763799585491483095014348259367931066244732663710627307893784080928763934853289049047883322036680529084961314219202827222985671189234183094060751000663229914242552291548680271119807550407960678005215393247754769287602654524968851851836784545465571565891661230510586142696494085847029433275016273740638670954634869149870129282323163214467496303495519009780806783580645013631507301529605617965446295926342673567073770184241173262204234145086596454539695788540544739842154808641843402967791917650046995285288384724620828741997842054978158636207738791458015570703078216415475959394281617936253614593762157273822456947343580511789516111343979364593015227478891131098116075367274758850604989832992603619371979090416691125714583489242879205039085389120062045113637450494985045619959699174480963128346612739837893781086798501554292220156547647702581550894325642030826853415873931232421114320754129445542890295466820131872130231731838133313901062158025523648687248058430054147184323717083680241085097017665630562573573318167486955899618728279623888204214223074792784635599438802543453987443642124863738546778259959983491937036030625501486669523300894845591203013884917303298076568951084141690022975294838824971906984190954853589098296556346659445190545092319269069144986084176888538945288715326967815419065101319380753447973655453880024884382436264635163259184478806867176590601721516336611816397166147039582914773832085362948029002409960135568908990386427731049846604383196841958802476496264964757346694262823418419113881123621257104297475826209424867850907286244970343955797400028852398136591608133349893245947856770905683235992889002220335548736661508519148898084321279736820417881464400314064975210548177532121334579327636349004534309770063816532656683650247297025064359604350667290159356358101317328394898224691189332538742459427253263183898215461126344591406725316394085299745542088783912683770361378055619728374394330956808367925053380262427605305710828579609785451109841221910182293905744553140510758194153306672669095011264947214438667004667975538426798770072732306910510260661108492601636705057718410501581308849041597378404832822365324580792171069625655419016009685496373062584290729077726137538016366002582089397395896611759047806342094002151068260806916469140057316603172064895086615389698301698434048797023479028345665645486130385630480459244856236408949853624396304561895233772683652048047212852930778459199072070005799905390419482325832303513449343941976993088393501813153331935937797352321129881255789373005552354126490843524955177605061509479177812807357790014334592911656727155707044227084437783310592722643363659558960961439243122894014907910360713887341903942515918168636431566440319257931646133857567025227333634606331528496412897917222595005971374049551597183270236225434154088582079906288809536988909288384054411047108987199102593894189562933439600566962174273522364769852284293677204159736302579174357834271796923345263815807335457512210600407786360996677322987971418107116266262554084026410323898143140361887455255115813161863873067917777030267257582871549792377263726551378782029531536482236399873748363389687171369093721532892784711106993925090006389039438469719208223119807786525244730157783024536811325640389390245426574603411476601699140964949261086844298012224332975634874366962403325648830414254962623941701639556796224168358357740774993786454091705014505855955539142549974955175419263408127075102780420343675736662397642316803880146889905551336108230888230858160720066480858791530799567601812393845179894060792722333050994320192501749614301362064580232198743447405426134537088387189070044973256864842118174948154919678604829845836830783570998696045397326707803268344546096177047081271039351630429361408277882099305378329248431048516664632479073753211911637506454154803628975778035127653384396471005348027042157488377615631718727814924581110825760917108654082944404135490348960295714374760241127732386086847164903343126121794096838159694184470266173495077554254295247681352847346211472219141271011438518196547256196198221623739490602413495128111316060267910590038168067575233126927548413312458825054929269186378007947489675477608064463139738765623744505892879284339383210281327901884469067461336497488245316319647940227942874558225104239219008892822904264049456080015862625953093505099086729481774245358698539125851210705835014996015003219378696551365186667163391193457743536572750280524103999594137976924061191587386391986637672671998793850601087932030684916686288333147033357845807171332037262255440967617772642599376140348214390890090226477160071384624745062501178012764718801268617161030204981692310616774821349136567980966476578301919395065532286462901425486856104559830278773932716641504495022376420624022209294902454180863246195867247358953146258686346473721361525011403405655939575024173519496151716210927832835224790845083772057597104707460783610712122514287626356523301048358119397141278604385214975326094982280604466837486789066553090328165765088780195078073772356382658126972639118121195948037354054582610151749117642822608774304067295345994980719723101993569852356223106776051170596803946967596138310385403187107669126024096049036378118136877836225772676939351066520959023548974411804301838488394842331822537890929307799864498973735579489370429797169169629937688663318316621656614904550574756681441248148030916239754843241019902656680386330631981724086425165303314927425235768697341016569134233117377669706037742370338946766336361115700126911985877851125631489758469955867443213922505838441745067781438669387126148431026189215735716907866655624952370346312955889060002307897566614854726946653972645355997212058895111436443881865440545991616845641972720398266373441716965609751135243796873522823907298383921833589151244984865553103423064748043272178913510131786006301238516922423614821798969773989961043619052549474067594246210120833162337915072367659764345787586986593634925869799103471895936305436969386508981639437038247767347254677323945779302566753131353017755788476048309291758480204157818094333593056963719127925009236332814171276752158752981204364963186503260473441194352091417959702747822736377818212741060649540880163510057052460716907000650540657660114467584283841745732795235561380392905658085703406688121934081616478822873307029287819097655642312892399193101784968036784289563615128254906168981830161239980946860147487318133459599164904963500953895703036924802289123231683185537910727992246729884560059174203685085540211308346416198911365208439551031004465373200114518901339882682561529654306351583743588604658239694026679568127036563267182763155924296237610405889425216667066619242949757824676402266380374926005953331345877604830061573241036723495062758029396280584470813173622167989463927205457175286857953714879564071157186547914549276828812482817431795535188294857773507250858905849557296431459056082365665779187686922574717060607748061698097158385354026311533970222256969258508920644556077912749039752956465696909999893310219719128366622661947654029683618212166239829988486315637854248170774246536763971843326006925291430808797816117823786343560917393530406236756992117781192982636440911339123978415599822156195076184765728528442655752378049229867590081720057818021372608832015548698688052505748559081577219339747846315546517516309750778532956744804689998161278851087041558385355623894987868815093352579216062998358996187187791451574324436930293518819132995529847580403284484322392349836839182706814068631505061648401932421685236952124361727402116759904765655208246138969831880352129969192068058804312939551268846894480205865496097702865226148308375708178566404726366377888310466872618060015403726534843065259525725880455662487750818913429750356889592165290278622584982401724043906056343115730654141037958549873928354049126236349286649665548948237013777736923837406150226636072113697402142296598595314481637848410238356066257342393107025667726862994181356187725297798935471191625280490542410777137560931869936562382097439485340357866570870542903324717484507238693937417961686841086939404678175239165294917805717282972085075095731203909718548708369057412461903416825033861105335724904095374264410806334741948781432425085764175772701822406591879270597511489181830752422892779448537941174420354989520317870293209192018337443858048272395838808427741342146176687851932946075709501440786171654823430430087649950993838572184817437529358301146996083306732676830500854400147062185029582932041498925980711187348972339731006045599198471300491784593255509809173656517326959981630434892130670995277143719616071080421639266248465109989161703698540358108619008118885879573458851976844192750384947213471949132327957961974192438635213594343206241328930131017100211090044473775268174416150471563377023922224134369685638802281798350888801175325651796908778902713165145019118977133674758722436299418894091945551005453792536895649848077835509906281475148256142277157592890437226933663419268030673925813015237667435517172286198454539408353568912913303101893981563275823062206204228841769300138146089704993967121148874494021656213665206806539744201259274025865619149587947223067126885985697027701021393488323617950768038598039576330213801395672972824032944951489030291871101024501026998764521450993136166092610761475273839421521651338545401362961173432051112844619274808657768108612493147353514116642778092197628916117427478577658962744501332784992133581711948577962194429425155321946279365968791621505144785456710383919191659192786286270376539484113280461947225050644164553848727777667131844549492210219059952445259731676301102384926484908379477083565888874207028244135964950665335539954966884190017186176415435651004365659703596181102176706123688387334078693822467914870805561476069351949955712572057345671712607504368844237124421083603957909161050367912904810325103300013381294436356258000758825701515174239449447156951062007444778554281526423806897714180693258022288655331994491333617257996924672965700270759648472737356111627232074306860764765557013311278137926511673270976840804663795210043677734956452871057625106740435336537162656816320459537276386628571174254428443237258636660629202041353630186333937843270794302307379918452320806945914969605532209613268870692698942962197525563591266496186148154160418437349071827981728495228747951900950391377459528198831714427809749285964532544697935506903969292831451489949583772881564003422196528023991347492777824470672663243746334397643757136398812285594818208709206043559656158158384589253000457256118260124373764417478651483863906660311252552604883614425100409964193772616447286931823098741143992621090686293545583693859214635383090961710256928724605615475566926114857012096593890415947055541631174812325160376032244785335683834403144415883708647756492485874815689247018695053783869537582738187243307477468768590615808742020111208085533429980940643607900716800862744216004573222139319004617424274195282678775000872525758774959399428585268022427641975511739424158463256704565605268757832482515084700801525000069390301721474576127414183961782401915886923760231669461206520178280996438050456080447345712650602704388444276534279323071403882527147709641283279129482543488560927112508017565573399892761058391627738912787809672586503378841998910230483812064964818920317875007283409119987536684163301506261132661384692920638913150913083849994155064976104053228737729424718785133763442306687662712617816359121732637541044959686007313607263156718163837015647393267272527358771409605514594313976223095401310007773464125109134353384696765589912556620157923159837622732916304750026056756375891476778769149528764959798447573176956802807409598669830272396090587228144198597450125217069447786140719844670497247542378539730058725608780369712454178250249453902907090256334816934414865075822584587660483963235354946128438398907380849337821751514951422290783092329884929144912673374694509860818472272213279898637296084089898725182790475332512837573813734994104269165546191458773698700063217144855640272305466843755356418178299755950250976947320083657689164219415431820059769919869717718734355450241333054512471444378405321399571759201483492667310956723683884200736983110884167362200302866283409362267227352075071515218731736255227993868394822839846735971593388806447211456696231233260610800222440975909513122452993097855906043407596892352325168370815035889706614119789944205392383282863549906615596429441519467261515273702319744968796532866367106210634019074333628139332446838842761230288912005322538021637163255524360437605485014513920470586639504107151447876054213801934194355395620907862571761244846621119087150797884678015066601080024084465598391959881674492851563600477160639749293226455017450814938904720841471350442427857955112194893492857671100800134773629538748236340066425190841408566021408822267179542621616791866446031300091151903293514784129879466416646210858110537487586616831381881621916016957201636235256074802786439535300766691286146291356374765740027066924144485708483016449244872669069443026256442127579414438753153202436302255174728392859205811353075864822425383619431321809881950212558246583571677111201288992444355304024752508863647651674474795420917965043452524079702483360211606997070202714964876490702559197404343032779947356228424003017063452247481283671711972462512888402468661050952722603128398907220325987520521407491416824448719003170577272381006343293399084408805766767798624011546963313865846134941283240398528148373764210611092059259459401454235399114929702293235959444517739236533102363825996453571022169495379395446427309918740408311362181329097009484272798180965677065442459543534328121642018655157541638282851417994326413987293119192977067554884236092563805727893810068759712033430673406757119512004695267523452871192421549183823543662515020619942472363098850891954795383117815984505423594595900918987975389878352057341770047342784580303859348444737202769330605249731840094372523394547100336647430437189268689806781705813029698906207058355147624965486166852177366785066638719895698645353921598596364307399810085702897009473171493181002048870699333435167876668935738547327780217800677248582942813435202089671988479433170373854690690897802946761639140330919276073681270955999926076682583767084650747036282280609215606218046031226884174267777829732934842888319572083329302943988043503349164975101439290378990837784061011271401970268019159531122624070483714003648019670350638083832686997611662961813324576146994188181790654327185796730123964392753114955039378147738194977123344220928875912583984740108264920438240336263038595829038412135069295836841068295702489484068035277520889939028818977755705923077155732120622768679444668053615686460882205477029396500610356948347223311252362339621961757260978682664677264558647145218824181451596019885070548065521931487184062781792811734995702512169277570268714121976316555522506457637034743599027537549914032895305558434665744850252298544947873815274287289514806264740410665190053948784050714222694374699722872195268941682275503931011973812858414712977805584136992788193657573715014856104063013371715210537555172058073879600948747960390421388192261177766455939012268164827694178691954297174843201593802999631181118327694516092593594922706123392498925627475681645622752752027795352392306237102592996276432543521997372809059997707448567595896230447588106729086725780108869321201744429239235936694896438144448966729069892713653454415666313565776520679284308782200859242485454363736020388313173037339984073347503287213655018121582740932662306269838771787896879384850749104970469925573891507398682031286203491545196166974761015864300958932998962641774937093509807984123436358897151173943842773694501977064623555995776030903477557516796925324900388517687083660472924137607236473449347771325740246964957327888268546244134185206949585491703620795091598618244873860709895760833152698258528203445135329312304676860130716710268915176925315238918333717602815723648855552129080051912809660777555992793474801801944687822460631856358762195003573992763091063249587329731839587477179755696343818716468800096993182989790597344061493883197638661223261365357436375443086406399641577562631118420902289498180239082814293873485306407170198771388715209504333419949018543838664545150792431495155700502955317694342440756073578218139757525916202077564946046053797562773352801663235385805983014783277695741647201689485789193655857895295699317795510610557331845788057048817126073135722854418076177483105304293138515736537923403664202104134945475784958089649097802627170861081328134353633056022695131107143338723485996589845481490855590611150332801669967835140819611620929872560834955302756506315174202775895395041214945900196298374339178575365751983755700365380683086410433074276954372690763524554926932841088589803888953945162662184044265790849847561291639907907609996136599181270275763333977820632785408860729983776667590887612021807220907232081702581891053297389990241240802215107632372282702226989580803160045389275339260024386524816660188701963384291565426252151472446861969205395944570368563176759291089030376198454853866258731189444255848882726170597452743495469460440614855622739768900930719530153529532505889478157534858131069809274359979510154396939285714294047851064766679970479192875660203003885803185624320250377669446955709540140797593328889687001685235847443835961518463223914638966281163110569753345610293814912850519649201393285087928402498585798680261521124336760005978743723082839257955819272351234028842907426890934668661762727335393744814212314550827619270817132534930652456385907728244496211206616643010386389838601858745538812145723713301289837275981154454247082777919762140636048131901560274128380498271647363430980508747404667491205750991957901759969406054307836170299518611991664442063245335796035875095834800571704899363914141381556141865689940138859793782082688557010222260120726577918570021644129332106915367096785634752519075938183068052963938888680251600477759319937018805536638770050816797293039021314117067218515871696492891129247011873485975277731716734396003199914197141555531212330452216006902758102686474097610823179248738058503693375612539161960386921107407952779383276321852842323657181027913113457354436386458907458174450641862776064797121119345526030217543438040060915607144361764265518829868751297164742350151063710726322277302825003093426422320693086939224105077809288300196167428139204556218520696960800079942365677023777697753768994462342306993385221809687030077744414843699391592953519636016929155629775182262254122166932848336729981569837919886761751900981511261295713849946640366123647597686522756229634332366423154596750354602587771613768989438275991911488403782984186890467126799229298251687388762531341554088698798416205575440460980083295227678844040292337982634026200428594420723587743570868035958754842107792622540620987349967057148904836343937865808135925079570836912134836204562527192096519519822145755546613596027152133524172067722266009657410894961517626647460034158367901878185073476922533255263248925850229821155745359794409257028261183375483399745982940219754185947332397914756449732531534647610904072634347390523842503720577362572546983219704584448696153612160316217656305499317651284908722039463158955152229088481210504621296135911904250511552355682820889006666660892957962481181119645356040998385653590905411793730849199809899300613252622549709972250256049942233378458300990507109454027224622120804032684012408146680011915841289187553880724391176534982832879320011348692214321239380755170147729083703673639006623438662235484034229512465721151544672167053801057163979730005051275345507515433170725302566356219771919065714300951334192562089777660060009960513154197689290133003952738258197319083289439477238388532232020762210650063171716151554441329629811885629031211321436570186381138553668379942829602102024113565079412037310034549136867321638321900904946378324506998456494183483918070579588967433538118742291877255964997810416671650136245717993044730571538201935406345811230411354820633546609747258155034924916901215555834271727096128110529855317539281677458307496944384077081230366761744349762915850507853427093140115469195486666880939829289316312636177583524092469187036195372834865495053092089483323319457058532326002416263495414889640724086771659642640114776987292030924415693378468224129514762789935984415331672821184666487062113607844090250256013211400113358507923375057413290648452852188054047637216668087059331916211535335727387404464430663415815036378268908050227765042900693186342343237610177769192600039170785416137101037838487692109890706033528062222266085677888213703833312754392987294831759693351137738624705608980991806145498079842449095966178390681082513164437521766121215291424152612996033688826788253795193496002015175402174473081103829764710619111678844603884655440204627087112725257032014779246239636931721565155140976134894703500756347042779958490415555627300571776608011530736511016680697044592342121695821209060704898526593755768316143511136776150328789646281356798572558532699289246015713360293951469915605768109956602282414666533605774844548677811245330268056756748136156325220241408509178385249934587079366818174870538029241234411177206911495894447838083952081695296122964038430102626228225026417409847289164008650163414455566288592690927572616888628938016016603409496909316678174925656336552265239713947061281208546191167031128426013702482741533474265396492590266986353553526940320570992230531091863133921628119903213955095780583217436768541486499618470161476117728777974964119470933202042302732935474544827913943869268606911153013474417094721242594608395888295923056686736950089907470163426113054230026392775432658382861676593579364096029361048568834370862169327556881580685300558037960878760470652078488465117405075937187142169127900229718733459483911462558534631134636075570264583309791984342499495247842316990606375219898410152859455656866406248919347810204535692421600168927708603993726910155311148959513298085053571892045174553924674968486850719994285545678546501452195693738475968958977618397262653242878691647424324956869363418386035954344960189533761615219792133551113644746597345110572520540599072237993573721326089021252751608400411249662404045848420151415533190286602658051678867072380378411026435849072212684215778758857159671121461533911086639677020769942527196923451959636514272291034499256767945145739434367867321994617711745620599332933598048940685882846222404049269567403508824602659881188764652627075382979526623996771301771300839494736565105818360577562375480423949081846369719888277517957241384988218412306528831704932418375609911716466134437162979723261002767050223266288245110412397787058501103279246073927580974952701356980995597963916841428128358590006477608999913882931285605400968973867517870247484487773250198778541243846501080312169481231007686840156932499766464423889287876383258677947628518037819797635925533255079463142483232290666124164638488351199469355008218102254392688515846241578086924065229917203247004063703468909211254638042415398988295710752474008596619872168042156830663816721596578692840922155984719996943361689014317386488558254290808751160686855761039240050895662730268484936965095925597396957528301226772912551917310604540348942620141953142165876964545944257619173382746096706333932293727447149663393506592729530336283566093370758364243962134784704163409818536886979435776306219274954342678449728119986034643326987022363172740699260424311967812957488547257198748078090529217021958171716192175429176800221757800544067985065102130872948165319852701777514376160558246050409524154014213465862054247744058758850227255298402439319271271248029247449598310000910241212122078333747384681038477426667036145500759490330431968250570751483924386236718374510396172946870185632834728197692843920812365906252343793110122152227024852023579414657561172859374600443012928837862967915270027785615991556713458063374716807967217238379309504578916472412934903719062887529320507347864531999276525045929256898242002570965476901359810466096078305701981316950089746902861160970604046552463131641829092811563909272014741261503467190787143481075386957413876453521786334253460691230401926982419561828331128590540406740540947074877454781633426340815248958589061935888170325462650136612283598603606562204585795172762470612681514818375764298222724117422616668500216389555591555988404733497466697272408025642481110858100035700515665375461547580345138556956761964275080610065480339025631272455449202562522599390915932328124229220651081564077052922151924223355381260276701505512400946506353722454263704978338911632446693038789715573220347675005564560919777513652686866354855450638281351609646034637066120919991224104723681858736656546819158927778565067951199822416111003749648552378378056803004633532856863800359748594450231098064881116440232196819422165941631398897213414321769936773386006950422164953690525155536280253022524291396590787340515043217593573913941452651884004566637902710941148749106356155739376785731459031159544589213915438111231613438720524022386958537003845764652745267678989461911391967581980060153095945662482785113812030548708008313694917841843784118423402318826249177557589277649272709148387476701789390376300608873470879527428368872518274342002330892866359261316928840657549731249773415655755527091043270316337553474549479372736993339114302860113076883927724637785928013162977281172228678832363845626872018146275920604076985058769061285762619276692915750320465709757302178092721870702847124656816611990114984721280601991155999121611102176839793375647934516790939667375357370176237834455588401860409588277450879774825430378743555429561107788891361919901817835947033316078648329370530916678488977009601228016294124293049417970744494543639970820554144455160568296112899882783316608190143350976876737913586722728008779181505214142717805920814673907380501429247531062725100226768314381718728350559315478779927692654756000751407262822885730550772049949474818324940281054290998424075275998992301192853028389290117510497707867690808583287802486225998540922694364655136204544237917092838551320855534865804237404119187805148850716778283689565999552779640249813686757607541929210523851497463607884765835166935996515087353750656911297907402169525215176756029790314658530623187752613856310552180980531572137432518476442867583945572348736991603412317882307848888097550833439574026692463702406769171174432269083817754932403596803844697553794632916686358015021698294247100376025932135992044237120487177781645665336740471785008476515224778637409332459182585966162690611267307350594324984917481185096152023320915088257015847133996841770961872222212167734321293189391918434033938994084725139310852889125173307753556638073626202296586330134962009222709232641386440884337458189475058904734241771755100936277507260894032005033113277707870036855634994967585694850573426304888284082187544701858032016055612092007524860904703997792143255285280408600539842673185842030374188232107392551626536339824637003454614442528403736079300202321059928848144898852134790735302416669307828162591581299233845911168941058485936084016078858794385151204099659939275662960773198536547067656575262444687053043094017551825593477293462399033812499443926493213462783281579881627168126994168924398302625097232553352866372458400184414448326863533940421717834685688872552863731353787881937156185298174204002915752375821746392307878719470128178672829660098298451779041140560860727943223969514152194868100184482750813907306633152152726315790557050893311463698417706187668772115336410798023211388287879748443128873074595392698710093674345696910602985526432605354490834493708434574020763748400902615767837335348656884287116823378085411686899085565232355313388791027577162356273453989664703077951583901405755794967341388025766859983628086792095612034234811485522985837922935598961646117376458332879926420888339679512622575709543317983815689960838277726827758249259682519844769393791156668012147960834888595925902115464176643011412020172761131188901605840071690182168425670236358758958225401182222762527973315581245143540625885145754391998686745697928151284243628227274338487656487302377366211467874342893631161353406773988693266586115675675634152648647101715269668842336800503143689512588650973051637136910786145004861632123580671594779442466401496642513453003946430265513467850033264086101316891075110904630040323767348421942594689278354378270736786148327368768832554070358299176092947321760709427254006844620854899955433211394588262588718144388491705773375206762330519807077568619726124418495477036286944227849823905862115058320842115252137411253563694087521159678249900586062802141538416868258334380966820428433137235520209637051754519492303835165009053126465656548502919839695439436156592326871468224674849543516307192050782721582880846962842287019749702164196842587439234866348643173629205672932040508900420061086927576081098553765848777828761990886994818322614133124150451972696214035658615163772558272919817835815953287083501700555197887367395290918207754644171243102448924438031430257664958394300353761218616212438218054877377181402146959738563851600248950305862807485763365922178105142645010496131506593020247325076618735948178258884034216199219400951601666527112796633511755585389584648430076594059315339360817177580440387516560644113082020606200360975112663298696595722515503025470329463194298717464682521295265242420757157079421630713355880365213540757570191713676106311048474969295963308102062855541439188046447454038964440674181049247348178674633688054231442151617107981820661233882617587695430608323042695192820048224682501924672217464094935645637507537230550768954384111565399178358833464598472359309091284373068491900440286041418692133706997832886410376600643635833875208059598033420953055016736800842249169515037835537131833371242243579891286639062558958890501991719355181341410518270332835822819137778361503887660057196301716865633573567111846432279572004689472481229822133403266912425783413317975394951332503783740024061018498066901753636291790656018459740327843260235522825773087016866699807989706143026556760621163396974785156876730032823911079472713134602281561737719597195618297030391209459820114112425925769492242697149875793088964718267775545653238637039761388440940693932713856063345901401458465778964614428952858551017751456497409143597124738860156261876624880072138508822515588331827131877258078543735956697755029553344582312904055958510131068208454183658463746848414993783220806560010139478362762521543016313803346855030254464324425552422886637360912362141219884189394023977472075999952863434494946582893569603983899569729797917227412125577879952751689938813225133798346552787212425931279118702251872701849437635129819802737761378160629027295229852211816605472718860125282979034675957135517683825365618910529951126706844363860823593236916825064129796517886896237153723371588525760322464380989356969756747737071955220826607226437134365413829387373891028405432271381187743696727933667228027118410612961676030764697242045585946095395185268043128355789453615911515041753603861090304831174741122368946910657692493736765149121914936708726752520981161551320574401395848076543613611062456167300873058887012358963173593672180681890880257633074101544250499147212088061979997943265654685484168453399933480232362492823020753739891659271451634973526314076215948751928516423556197573741674862958930366664235718201261703916314105111081097807921968240410278422862382637795591459920698928022900158459462381821832938631897172246408249476305317083576390737070616930810054710062218370066733221733041535729654819090112130209745606856645527634493682486918587727462187099045636348618646416864162532300610056674331043647041905090342755037560979787550115292440763307047243674971088267610166731356762415059817169282566706012008846203750272241952605387810638780102901409168660113727001143513539096155827394022675349640016237211950681544973587264984038992753431922550880595350539691367372138057222354963650171660161502301030242461189020666539106157361490307900188917701874937637469757288158825934258688875457858462824134596058712066656438814298800039373872752124506632432394336945737772164156353909931082503049385184231486990844439435874334077338812177893779890637450650996403084399725800559606698923840817022651848025478656625462489124910417550813962535141857897295228421685233948714210107294463050776553227756614725538828761524602561332206092443684388125214875607065202921729694899919031264566167148645794095592414996674089008717728541229807915124392915469979706921654059623521013338342817977808790494163363016883485578816253087019144381653186526279507304080123962809973514691381702866085440525781711302458808432503717052682926084812478814800553167243848316329435551660671948722311343642247557679854870282481536429934824549704516925144848676711154218581055294972622240081166758034498429119895717206118098568102456526615140760034372038005771898423906788251869925432547156053388238950011080748265778834849093672304900132046547095051057173235848208693591139907463060334213181012639474643887880523143514745933425661548150713052149766460135469653841841987196065300472168907445263996407357239632041150070794263205538569342620386792115969941351181461383685008505522748872670676680567238461597440789255249446387754234866728736352092620248979274160605940827426720740081730042189833189555666781271620205074844203102620407291248656472994647673522547828296632703487429408990306973392271505957958118106378006895625725594687220572031098782219316669960299810953867593114345705957180801457948193449238712639607111751327193139208748045029299940426377593592761556828870135489531816268169450907470177841996441213918946115424505669472792181507105783932033362266351270667833582045347689874565467744629745392226593706179373962183661968883418375849005269812188966546441159028529117246384495081581879176379938534363958059904186152454531908379032668445033777140838332047865933289903092342429216301919780205520399605750076528217632486279982332379256233125281235790679558944766929108479334185615681146262479618245586472239955728566560375874269456934014122573021005425517628479697911531235615127606595717650646742177433526434021726032232819498522891370953689475770461392468221422937272650486660700141840117607706262027623320550580960738307348084777248133011374922209484070958497465994932552395546913347490458840708552453740651552849598453357403315199750578855676011461342278875297741022425462454020721943279141752047633606385322566919613196807901222899695066132768595685894629627934601360615997099035932087009842308863951537323929841595817515596323410255831339124414063052228375576301137548275951567285045741146416897184572606004766819977810151465150404518532423790501711310502729208418545736382182989420193226402582979277836941821887038367308010164011068290796249465640061655861361252883818981673781059196496969623357032386620121504801854750633479357286943757083156391660779560572522701845899453360482180028549483689789544319478366377566484870884325420736389519831367998735399171262508917274313286762354175497972811910616531147807176368486092647913262948995045682146330126834247470257627626298102375710707920423852335664476783289915430042601675559643674078228873489743660084798411992661730658911840240009558866563568840591057855658071691907942609308756599235833171599934622194752367610318545191554651134008266361809554839303939935730717795852773665025876757858337703935556381691530906230081567950525826982055051631171342110608963707358428718002131812958520773816798738999217067504007887878394094349325246081530572457404022025062519706323400299804212897284756922506787761670660912984736894340333899351675677763300777731244409571743175587831921491466379192299700125339980981597059425625631755055438736544873751617818899532995543592725161711041361984404375041358188518959141728336795293479505068565320609088959315019141951628536119124429029171715650290758110503248617087832700100801056996646830320516561986188337446621728983693562090587502616391053438062073151335123334412167752226052266646212175177776829260403331940470870032630257435996335628208955249690751500931387304857673392560620238106968256004446053066841924720253624456358662485656387919778334690542471496641151134348186726539380620741925705472804140287835315775888043049963573411185182359801299721244059620533673235925693681733754237561182569439659093946498637254985446000733116530996445492825629998856300286947893950612768952263213687226912769367373472427447578504728088642496378283487280094760081027979253023400902559280678215808623207269568608404529668334573617817552446076732089273875014604694858530945743468891043096138533424927240495722740514821976881498287978454627254480390482438619112570421197079421634011526466958012715856413863485227985424313671276489900354108060896966598404036117906516434703561674024536920003659200262580904365883879400621531799984181738003249714943456569441111286134590840645971373512184257673901636608199527541947358595957015444906917461356133923349733021518167732395721464850997570020896056131704652800813680641290668948142628149060085773596615263686001905524220835074819878165482326724224463856612817878149146855188022882969400918358779041610819068234218695679207563124646638613132451617327307539455453349686066043469257740635895950044162684799757409149577100874476637423956263545239989300709271039736175290040436190764481357803319840646773474666105709726018652101867090358253948697043746322303716183225900511541189790521718226869199329626803651242326268070769778735103267374151443453688374502421152379862107870021724982805259196575888835752661678921108425502443202703933002856978411454927035773937523571203955001657982107763233404332455820774081276003907349982466174030318827745478317882519740553053603479971357176058915564450285797068925776106004264871393559923540646230877637928471666132919439994728220662978265230576497002421658173561665484978562460075914765701184395297161922499540799322577166308422278435351828229720594297415975113558444259113255252465325068211644481013740524709692477805950292347791091241847558305602046311463473930043828867833880559421554207536127131275173714704536497498451909947141360322960872280878922364087757540574645967839140939446287940034705509290243318244071743403168883991310286519037323131933109917502875518400536191366698178409429236605510875913860965863890322675899924539520504244110518686972180869662729970925998897079510325057631857657532955197331360245686168186931749586471897390210284150891402176371164534273337778564258510468713849778669541891323715329024070498397799869273804665310835282915796002131024978072735026228010732771670684952681224467365264777518019170071630467506658606611465700920904267851002555054973176216790488861854974899704795955382003046650937873073763606272088596908139588821132261386592754140736115693682011531919544102255179621786905083997848535941284739796204288103378267034323410140546972233956733647269703244308251242835604218586956052767395245633610293867630033307998214697193954045010554118858671957890215923491500115068924884035344777395586321148461260205259728507036279497644186759947258189186411626380782758119617655848663777363032093336214650313432006755122257988372900430280485823092730268689629693030406974627124097066805445640575023667216842280204873056602949998842611399724687927852026514821021565907565552162949426195594198324101038898816238365387418120139507010337446782793330456007388446948479045098602592118340233017411843330109933893569585109614701800867219018887868796890408020888595170392933400086239224276432804580029612480547904904304274304173475642063369781987293886493691518603597927211211109371864179884534748822561788134291527515072608100197824514356964265132325973656004080202262119948612593442762086344019621158130645627221654883091380457596160741937306641172623761931449313972859609267961362970461523707195251889861144741548276442452423569195797339556222582790667800262969876559816794705344212950869782933717664413481931933888005722558205201999004035750894011749701642652182379762292034106316866639307499359502689489447405365833146679905623490981926032932740484321703492729082819599733133053716794544685551581815416241146972316186409837022423740742840149271620844618221032545635030457842074766964288389342168145937855509499290288651399865023047130104135466211248502107656613502221042706469451482457373993624633736715931785134126524388312603132134677064224948571564356983923812650477324618662890555043134335536754740447804765575163274962900028235651235986383155412844726315734617043141153785789697143248224601748427327891475495851469944236283889076940880529737587506990878624171396619165604100067598277104633405319659512733580596973704806117280928315471924822665021099543105790415141534605154419227158248069339427607669983868325584782736755651084863394129250842449693853294192017023279212787062810564917095128826048057690592629979882444842052631037002678716209667504545337209107476796067265824355940136593607060523078661737893096311199829787158209401367819290538663163293531924931813464301021667817371801674417617491869298605503336695462889760676856171806066745795140711481025266754962623497702790036680182630211598165679309520526372463534958524055352638043203786714290220678265145501553641794720799848035541411719640446474917308934132443197685855800225481811840969835701385854263682998660348697068920191185198677053905439075844695068043421838734131420874735192888589779355498249080412697138089911742602399648748146949105354649370469437699368460556696472528585484979315513410216851201083207086186024213194330429549651936564842708314713466609698283231277982575979366328139472647244603091562001889775839844211411272672115399558386423817962609525867099801432921390957610534144930407808484210176406395903158959284988400603768417283298910770124014250203450792128548639831159829875826777223702801702259991821810033541922278698409646950914094935164465699107396836873329638996791916541157967628683615921066104040519614694616776840525592341992753965155927749788868974289793033649743555256923684691169780620669797901926929120585162491285599661929358189942794589542337777893548651437395557999049140743650222519960567878341506235093109601099765316153451524729580158155891095809779521993747533058283365961225127499408195210048212821855953713364812465657475364550196994374830836032939150821787422035033381047848741476752804794374193832708710727475311064251246571766873805031250270963680385088877242340299481593571434079724587966325809474598152747704511767999253768443125327111390594756495903182612323009842002892189922843769149789736703113441663094133032328535887273997215268908615406213489258928080783910937827374685883961345475467092748466699801106099742631531746787683084909488517725216859372045596786032589983895464012578654495961021732279087242391748434280245023070240592984365889209058420705640256467811674064016806470054005706973433751184041357080255794910967115154311081288828909799742719590999128645685443542098078329254358138552408069908205663218578302694364107574360046276921989241366576084983865852109836247978815139727708083162507366939871362116459779682643397623114885135290278458160246750395652797143185273297445583353593551992146494012915914555451884672100341379895584657334581537762098798056182916195026847986148730851223870791669686327075538084577991659597083578706333794829773538890233301215594865967074110327661025746843808508087459380572854627133702837355433825332790686033109360659610158153366649567760746437459134144278143128866765251241163419813318919984979173102151324566237017180901278419366859445153905276140086755125865554229283199866645050717377926465615514849712101041906426952660588763013852910609635489059790818917146910853893757713532573170933182244812180213040595905050729701416088139268602273361278977271320505951635046749775783201173306059893220183297084543658182226696942321082997919639416909689991358342864637868648405464381349447539870212303931811495779063126504112206447612505013604185295108047567014330561158244507594614595471767671081625150985093920733211183345351049123742908051705106052198542142043613600970074725884396760543238515528763524074767028479524472278619150904506161295032584446779894375213372006833985270969409080630273643042542413231220367017052692740222949800085368025710185266018268141863211948321300251421343747164394280396393778552285283397330699417716878704210861453132013849944287344384935215204870794574660299622370991523258071513785543884085207752939400225245466798022413178238532641748357991612449003464493742154918702372745841015899382789924649785027500761922043831989536540237409673030819585642061933035519572755797107839636616396205429832418222189127674393996731938979236536888645255213408849871441380865694054985865791360411400704865690163027714165975069665872617838685849636085696455940887987202736718465905310783410258097130954142677446117651312476937416718856641868444392258582754557948103260940472377637683835425257927944722415677163817095627800201111808815690043419379889677261420421337351013901662127213454729141235071784586769640819778912597771494032147977773785203007887289456688604794752204675388485634945994420292458343715287109540969748196069817468214412474214040253624525185245201390080142345107130928967956725696290734422468034690553108284895941552117081117248589015795421999410713463752908186312664505568432325034899950069956919544141730377173735013963243277497300271999758425147052689154546126572612893405450893188578077671752979642537731795180193089617147166662563574578737936487262702543563062092872021960897772614381474031750437594187695445230980036258394332679190515344882577408810990108127126310210609601089126465482392803071718981290023322254097100394330364743326753678058050239707808291674569509480762453551420451796952551620744861094076984971832028042418579722259362284909148745720919142537765103155247939605815398480457451730749003366543218590824620994995125052712698686429531980671647044807072785011070019198622162612852017040283377256229156655298817036877683247892811275533382826202455200782090774598546600724282928744629134612370993597407648969239590404247237775091267768170980714107649183778227327271459281559755905116506988862434578276963642207164834503208498516845008721690838183322919083604364769480104278058254468553024947390402330992323190210482872643804702505889491343720271477494168680885435926794582298944723548455385049537422246194671326838618248639199129469683429126472938034147722428451024760048289807955841732397479147846797214528183186890121795248267819699814210177761421874296568202987466839222844829049359947785287371998344893894938399512585667959941202763739968352087164142692943058922097321216541020006056327233737988716800421144222551925928201302540278653373427186177667915934331715791936509543231670481527603679440827293517325483054653992605862697675303021894034176120143221111981127644162681336869343651937601406239265636096967353342924589614319321461669685139987410841195631496692628218926503742645065510885131574217466729890106055492953403023579437311923988567611950134534190397469508213216919230166345505085243629187329675149213902581609665997731593227517903315674996875564134196387477360615745808660914963963798715960824542772412798211260175899086340282139914676980427278909570520971619514767147707428177615927999617163085295589832929125248381342332945649582270127795934844561698736177446390437360308075298549976873403049841939010269934264677699340801128036494539546603630836990676840740270118791666742069200249656974037253297595902336268990138736765273409419770475871299527064568757226440827029695772725410809978914295932729330626978395015298984153112591996588764774798019171516572919736773747554980739914369181549150844432955988719197806837352123543056769261313612429370753737503395377060491508933917255085906137379821790557997905161795836793502359792261282204008685091255379405865690710466644675216361684693639017704895849647219835440231259766288719164068738106075032966812816838121334041084437254883923103996591968423514103287695931285701138297356345276466681425872597157309064199743819862848762749314144784134792329242046980284155974174938474304191661074808351990835584767648939267370840273233378385398553658592906484929869115723438182699238002195396583930853801014958044795096296217981394938788863204238556741357493251935853995645449425035424553717476008524431235389966408431063511426497214371228716419509057427424476204600978985622722648093976684025014504547445182948067484292306168653319866643403371806837020362210908613017359585255607459375802218283714397607024923419322634902432831549769424708684672178244932142913265870330691200528815584262786110621278334815867289148956755601415577018501133528467371169540708070353073151704692741610038559425923740552619117293924918761793348218395783534046227389333024606837640705393772238034358916215052553003086505672407685021516755084142042816406615954215109931908883693093413073212700775764229084966946910246775743183141857739925092154815501577326016001772490110435872564150728805737223791305726070637056826506166749677487210011507898889577280063640019580773416099800240453079691696060690737990386865500648008610011564030613724459519873234031706745957262786672693865431818479915888962553522978576402426827813622764066221365234034230436767117848736799128007322721338396469414139757283075024561368977819629367634864389145839178243650203066366189593347385702324787322278669278969577526243188045934111676683149588117879095321605646551930641561862824322882356212084052054175460641003441543781384934384963015948759483637707949211036248245853335548632711074905293044075988505181303599808503786344986485671403924556469415933786506680328356015091969315096211592135147728407751850331002027977833690391594806873863826622224149147177976778782834618736045634659381072382194123395588407115176669794346380055299392140719134247148615324655584951727162993555609248748825242217582906968625471397198710148816375116945292293541320126388565512731600248649781741516369936875661546124889824626911951704404023661133434659600962529033199740877949031826538158239551805339978650933334333132591362488307281859129474865727881980421830175280437708600286829425693205603621426496517447242333996507754316033055347517413576886666145498718179798514700486428837125736006954459848276469381151284842449549308531768815751081011685892445393751062503435083462914220398845586738156837920074147669198513902328462438256069270769817667571416517777792714258165671210773806588207095914815880006329123975871813292799975834824076286849430957061667954524676420653060620066565982179589129383498625090800388337949051923092058658003723173954052403631790972507844089699289467901024917799823805992989578473577413758031441571690012429195031988215938598125967545644788162922732242654139916664682168446060388352894571433605098529842791765443205572695770874217388912607145904821047960782081336779712438188021464203318018372820312093981845891237674179429682205529671773119168012152457558857727545297758477469863147306542379193025178716148522197416178531533078309825613003984421520136133933545272074672590371219950419145012421520946479790629829123783903456736129432962129972875350623717850840752352383091029136601395370766675565750864764684764893119939951949241346655348910790056058356755176484123065909294003380592074264238322375575090401256780844374977146412155513147151943295890276944573908640319682116215631232696459290338923686368917251257581287610198235531382828953143344949651804529445622813562076806665239378530057908035567797909044163431319435561516396689023376460222631606429964585545661729249802169968496044538434704252163340277726084142055917248392855168689848773015282266923837012577233212428388035477762438609782891399917013877269006866790128330971114071250295521075750252691614175115302149281527772481201107159375600596549778636427307126531529335792472323589021983299270620535816601522582883381769293430315207106396644386613101014260679175120655019188083009433319972157204624545444457129367509198289511459109313040294482025766710605931735688758468587198486211435746425773837182653157086731563536662574363988200829214415618233479467506300222197616810324305035631780641355535253801448573919832915439968893230199996680054523323971265899179101099015161217653003936676665074222177553902884307284231385741663156990931347666317689154710721285143625990717492302333732011718991011522417036668291055702847447347059631370211201233809528896798985720217472518423244274996167597265812267049057014725993434617839127886760461207916107367628606299756434615743279819084939681664772348162697538820808782722806629213624745636842995781924675231822925362710854607194097974356569308319985601957537595856190576788082098515300540213240578118914949828741978117691489068386500316377311838197222116897973413191313169140866108265121484590260330487011847851395250964982765422553323936165089668967098487523973281713648997687229555969171150534179016475371273775853467707949916078225870269947832976438189389349482513585441633029046481925460448290811031480403993175924351234265860526125084666871481964696297176297600398943112044850873774752535045772191158065572303313668627294650977604524304885526702700473083829044319054493646669670990050066679683111060114362884857749769497765342314788500420812754774555155768927267265703877515384699278383203083028367281939641311102874444607210423123234170879803289333454707879447522117067755123349283827746594183958421776445239883811394320709999668755602985001222447204605498266774128395091544471872330357294165595569922119024512770095295953342517150708120551023371906810647795180056406895661835422996996387380409584528108608468204417593683380138286682234042791637771580514702727456903111428462278381877793151846347015504625785698166334548500034145765722268168901267926452234118203985553285768648697676954749111988890842218184364009085190188056928863258037514731280971703436588481025410940126562407036252380042885144340447418519128035688353481995797564642249964776235900222882161389526492591585309455516339985073756863424860119511922445482100725767145926663331645053987823074106357088614326456634803076896203947172059999987868200009077710709560186007617613947318570306260009633072985602014279414053472717230060863347437628882706408581610747622521261058021627954270575237459924842501216432025511120036920057515384548516411612429299904279008779543657591726468677702747627504944850114842710632254593875954021718379100173547481469319044890688314096442015268725277194459945542281201198541231327575948154864398646877210070759057068475475278179971182773868193307695642292250464973055889819123649562784026776647149250592331830891373464594792311805416249362768761859267343939365995021220930750162341786696928073264722019319514150809908132782877185835634087861369199287484733435166828819368151349118087927626840217514451813022677857857518777431542955017268055825709342819804179418122042523176847032566712809048135602301832154866151662467893389143155214416997923096215927610636036709354831929501454063316901512096209840375910617576107992928694906025448898654477903411819067010447334320745495231226527566952371281696691382721761477680476041659200083356929656167421201340695744818503509102581441504893469394364568240798900246988028741157516854327722874085260460772321590617234729995809648575898983538629094661566679397133301981694775827392402809247172457783388263390288348428897791486987724189813267374651113494426234846110161777632888747203314869554165841098777457515014566673922938332756717633713091299471654586093130024749816119380396664177669795357587130283754789132431017998834225733209193389468984888239912676047710854003258443316690116781103733800370364157480160955080577240615707422774257566451810288035970597610607526542786001609318799734089544425142335533422478093176266659548512320285803849458224093981847742013198233913645951287385540679129301817357069241589424398192002281449826540604217024415239788966689723888290382287698039428750276473697292564037038344741098270228120595663619328246619885330732924295637526223754166426831028592324590239127715694621709013777007310670435277832390827316807027126866074403426877280459468919245026963579873008560917030142822165532266869143636486394905816149917801974566718790053865539565802302604888045654027380135316184358220371339560239793062655866969559983851254005250766716764172015399515012957142821620117625550260961282258443468256085151986461762432628783705869039034815707902623061676578585021991326531083350805323320406408448712005434896344574333466346263122847068147125305782960648054060201393069239917362638488319660033750084069867440876497407641904725885362919499541198512443854646162835036719730399793807880796367732333088338445154532496868155887691093002454229791457411318413341538510013497420043709772457523804499679555231252530714402301426978474825353494721201624091453660777127045656529347666680857689477148738538732096966162636203147663586464069340155802971686263442661645098652551653026269242823629811833199139849052983154626306770768701293355615862936654614693208012477580025312049792903031757093164426562583284761412568717321444566137438130155728352523195403885695059894925236521060861122598928740390515065092237509103317148652149819786799624618074964795828807303994505696175726347827445754652813053197935026555706840851901108403077671028952500409866262221390490003137309035226203346642001238931123579932979250167661452147866788697714066724663885675649015026594705186447860437089602121970871016408237679051656201228424356010180617805747148212947702727156150280567151747101226328614081151713838924956874451203958039418235293817457068045990086695852475263948098264353473769194535305141108295521679658038128015473905143854560707764733673501441463208095557172105121845876899502433349971419069260444916281636662680612739796110472706694299625683175380081583611192665863614781037270758028571555746317678189819656742340755618386600125729804664932470787489217469304401080206336137407112922732877407851717902449687869415099350119282751900373541227046548669434044704070939901901116189829436017733739925665807453448329144886562755437353692394301124130525416371991878857489442621785904547553854416579775796591893743777702852367103563498211350738287126223109534731229915498173450160172484574624541695776751552050125094848181863193218453655970540290910960401453074275051830719213984119014340125985534684960087152204771275597228910943499512123122051694397256114876935798378686240486069391262222831205391553808297319987155240263792576286890164879408630670032508675951804447389711476993608623022519564022519520903531518480810114363751485135393171511972055455250822455548756605834925285269860072702369443331280214459362281094521216629122848889706722879227234282260178241526793083817009242120325732169703405650257537590963392237735219628328420045805345067633271772991826665762485883879671710235977460037677534267093924801789359890446592945057990825452457047421896416095326543628963484316551603473163250433722935770719324126968419269860991574449591101227211102798557325880533331025257551383277240400475197665633036584729813616715802942321103824444448696553277778162094370553684560853252893046216623547893729618858137380387819946524534946096124957791971959166732332452688740670217570870263324639052704630738495685164808999078501817873437532237150311610689285323947949725603871024977490272128799720115620278418492808919658075547452670517621074793975054159150368530278131222086878608741195945071223215425568647908592609892285240165357569662285528265547121272847051430543675621518375918393326565594135976624593449177110609658067194979841211398123330158370157533634524661436092017710130783045606354264059520607765639909343631979889767889918489560544226900404078674703590189399156772947280091316457559043287517084371602392161650314024126828996054867975596439776758024679464818438869653505020210241422817682925811903483416269729774194935515103755275543559822258353356153199795244161940163209563512505673764613038209206609517014040642348383468690079961539957562060795381718203193319018037013721272219933919130622655029528851968262227792457252775903982791833607861665408311371066471549081826763724510755701970066323008403745574488506356721689382887030199513809041799903333024695103749989065511168642960360261853155164376718607792314806845918966157540641420250388773014960971662364998570766551352732779193157349721254660796015973396154993008145483961900582017037131764119284253541229169264159377547894727039911470065103475080958276800876721305932812005572471084599837736283596352675359055874748746611321585310103837742151665232491303975050515555922215698120491769713784391228214755258930848848864634871795967307369922603497379263988150970595307211445972481223738820323067603392592874615849449074079758784707632442097311088700892474289591407959703133052403328301805228542489658905077950519206561413233747388674469400499412062313540492458545336721827224844425851814577198855484309924360873535061292886018053266209913290276355335468971791387039833827365825356628878558749695823595471023746897083984607819111843473807447369667008754659120365601677289801304420962579906367411727132630348314692274771040335435955012602987112885267744416103853827091139112608745166926781208185148537860195111432569323226244007165617256781710382171004309392352672629604416218563453170785893811682842369399802604250881930721698562394818850281374744455315736171175678572257598561908268923990331099919978944897983609580387084275087673613235747075791934892678243287729752194604650338039567653422025097878844182353907521012245823867219812392800849840487054730435977873159302698421343733801203915778410221664675720554898755013972081399818707657682257094656529731405237806793331965184362916388747044699972001016295085107790991667606563276637798430548900558101318516789281785368028146386217739587688675845700633459166007629512957801685779042231707291659125087527299401356185067285923091631841243583738057282094954931729877115206974731456483714468489137734691002324105305845060288477113677203004363330821515735450291746180443687347135685282564532727472385275893361380935530617082805401627369962487390432213270234773054906269204087914755866107899906897153364273237986704845120775440559613686851837704413164683154466069365513633061201594209744473567836417161194776558031302277340894311688718488451665877760022794148769956250441634133141981937783106853341666141353490022635617286522871850163088827991967792931978331081322602907149198036506172987371253847137872180961187059881338600874147899726423429133931590199309502010950185483499064742179748403961374163815234810248988770582629373921422376337411484780144007300409122091831555013937254182151923867738270433200518098977020409012459053261564544674868874702715335623453814296228159827003869020583487190572190739345920157982436013609146071912470153578274466853474537192895984488948882516024256127666506118318228667541079708483593429743995673177938775482769684023489270001200560816089580475650746674829652076710075416010732563337826025369041404968188984679356764449506773219170355689848337982462214142301685320919593588400861388254892871335287991673115397484522815040828260641420300611466594986383462807328152691151716496233966119638006499348411557010556458181441133881402156606361957439627563677817552176677320731986279011060179975116911526683856859019847148213344348648021990770905015833651006647840049766400927102710482592959557216058569378096254826235966943723717567419689140700236982358133302288338731184230149994859836528175137699014564546046042948883492255328412486933138646376187626672514267585603576832771125834042345135869229669079780190630131050373375120349658771939870309663434946110707062174631155428763785566098484508429147398752805184171016997009954614424707966134688116526667784730868589608619732697171812155350769159746898857970259317516152662196562109826133569277830552994878284501528685904141716719908276137063698588433649773214088121813712135245347187918092813373808977551064832716913491811605657237847696178362538441237438825665539674116581577362771724964075592966723489098268477821006052607125865230958374249345900301833463860879916258296362219317073188945802581596572378246673712913196072488438273020299848458148272061386468866841611224211032290851531519858111643671091931996136650033531438745309384244475126747434596360475703209805666457984664678647010261739644375910489341331451851602687916089649229933863445169970990822789166705602165317886023689189059216702688933352066777217228999509580849653906739092797646075183365780708347623578962053117839590239091816059266649267039803674548183680402586200909143731567282280910925930765366349794323499057653579995238407189020822719998528185519594097942694709757500487616928499582437912971415821781021875119664847638983832147748124863820155029567000135394443469524449358762754789345439727083633517927062046529651551781262272094557405266540812998055975586332797249675304277988739345110296741537664956551229661422276785360968370189052536600457611952032229854885324420744599249967115915800829261631635145199134883162755601813329818378956226108809433012587235000341996124193779705301137517689318697299588099833798368038742601961967300086890280313158760250961136849587508970191367948855774835384924261028987730019494479703513786594669009173378460177905280931336831622373387150587828513998032861308533141466864353861892587974034711622751415263806821018953659704185999800710808701254900988053222405608978920000926326992507015903226259510472851251595658422282156438022954526602503345710365308152148170872778944211769040022375538982901141295511455148422713411095184999551837315073994097530371587833818018258136237148814811220131723886182215581948388408176245478671341065914504842012504961393434411728650037818108467815724030016057817215170450467966660356630314523874337830586008619188246266960453864791653850591239337798287499444346190911289592282038687305431764856486888725164181936163744591703560135368119005599640175624525226349828718335917182721168539456071692333693293835267281340277754099233617579906802807830469426837946030284576231618684063816786797465366084300467912998273007167087138543646640963083912092454715308613646970472533977530655597662057745890975351406018618475226967218557497016916396251753091619459945207151086025445008730308236473196951291195971022935271146429871693550435403537882073208941769993013878281228568456199377503096631143649152834279323288760269968264911566763276861777400336222894460699500489998934998366098924623384979637515628163674908729372353189636949573264857274878597716729689295136088713879362394251658566013230835285357537902919187907123018373332824927350437497215258361037182243930126510659295026474425268294079747374674997799016594422087744685194579554000100515900790439376639668371662319671966033859724578960258486166891723245318446172616768907965212911592307571784518047895561686319418363109501871469522831730866753780609790114980341286574448069342614872067523153453022662455085635913982640572169261298470543886013930904457077550799684207495123141012230068112397674991210234256900448630502346957117966761182786628362423472445866071804569166764827988927827096680604409929047836773574094677315576035864517048466417471404695814705948382307411837879585322243879935495999053098143344348616188116217925252920452813891435645667064594009018029049010565919513291276491729228514873480366824370355728601673397708820773068362651786879063670273023635833264211145282251919266346274289248822534248722972811206455331902689016301106225884012795879376560717205331006523145952068236332516924098639626002593120522242745712808280439883369333166037550618802742062638320763772612518317823949255481174140524333377635298895277612941494528050377639359982103450994950131111256155969920738623968613188000899318000206804950728938829189042375875759352856852649871586014886885479064829252680579621912422678486577481539917617400147887037967099833539344884507734687319288182955010466638673998238166584040664335235714371988473564740566296284234227733725507954059050036917413807935818687078320816881832234629393444018163227251549037169366746136702716128669220408552235249238655041960950931026391483630598954237277645051165684047086921586935205976096766571812584655735325664794798625595116102736042199517905741638589689668946341372611979209843684974917103901251755647608590859628660263924976221849019236544024235129929365410670582788541485415310480547847418414109014336991292997624546822627515899971663942645712723483739024657227215670305901984423597978720652338524975986530000390970260300976209708476704089611858613000830976593264904351903762376440216845410262683750681445947305932495698679365768405160281575178967523379571947089601950291106780449111380586260730168182609779174137076835631115061567494524033919274752993254111952926983929625517637590825697649511471811444748568196227456130204672225979614817637737752528271984088040699106010497880524780145322788948712760451881315089031240084816868990179125894557983643794487077882588356999040211579414448816125239337800264906463758776156997323355814167060634877746211996467846132145179229851278755649885525150798467717182238213616927764058549109040646000247601520293879810422349751229137522914840838706910296949171326654194616690873727936181401622832895941049263181332221122697196180829028691038258448021022308561420816062868565583759802279474591829176899388997522135588733020728483196829039595037838592125359647997225978936195633784168346936350546120823568196893067795315761381456621592134795848983195397739233826480509030823500044076678936981128305526709725154277669531698938428317897232022173177877718080843871677218878351083128255552875287042046744951272504433419383479960803103453240370908918351986135770029943691232206606175637979518116633755700907231197153704591797598180841927576895122182943492926857678454942318561523741780533864342782611537740236625119985813106884510020791728531736469653956352725496474925030745537359409807809160811197397216398071969876048412600613836727115771700538227609605028596693451654675264954823303896014008821832723410889415643332221905001550357519882289021555471650903452684486327910387406725883672785422005413830333069032153940087730802845572756580878020040998395737583182029092879878313972348822119937300628404582204856087365827993463443943124869726562981241590647929155404305448453785648383017771004268338138071518860950382533051661944901719697004381947137294991417045675878955973520599008831045351863494238015476593406056537672416856728070599185803390745616643587148329488702382248229639028084284130600868548945557878628039180078562808441801556492566480358901033378490204548361023303448071529165032527181172869958597294932285218207042072766639775583197036844615779549291655102097249644834821896885304471020429152642873705592547681920252876787685567985216761925396002126178380330698547361504545241928916501632590746408714550323028311418455574907352615862602157910084788590006444276954982859743081410764163925561746674029654171695005587483334937203813946175762776931563103585230560095645009938436842999283507683486485333327532011572202555587794069006571806378561033790481624991427756514637210777218064308638481389121884601827512863566216708389146776395226958960326431450641414165082572952011364374474212592706648239941574755290821026532976554380888193136792280558032389283062278768507804286541965911683559053311193708987985368800092286671871461768978469861819938747431984561028339051183168501921385763134978784792149095671294820434320594960861655352745763409136434387339001235190388212405704608592580771795470754539597367350736059716071584740252389209579280708577335295595062171555351757055266143485772140497244251479951561314382797131154618799284738536159117942280786916291694865193067253661806344942855511945624461371220448444869597416653327469789480261698046839344588186142251392460561907463545731353825023620804162822125906690969491059373099082926394083478768068012295288314678617342996246243373385989626813098792253871818044559823539707982823415444821012051814047415184991261343867876020647859526118177968444478360964737237231580740180944030168617623153698689865597181805229412672252592202516470727571560362477026470056991890676572164610385701984993681467216372779810594821474313321884006900891541898961248697492575184181358508993952449971302232814735704805867531201164546284386546356558014513913531903088673195915411918672078221379496882538745501260962034920680000327275889511203081710213485590030439718580314957147242907805792841830914266774780814506911812436310883644564210062551279032916036793672139178220226343375247934230820126287805981732974550254447799343719216852348860487455862100020875378163253583705483545968446377095030093336565239793856511994294156520260638175413317096048808984007109294028271239482019501762231420785991672872369973259706491603278395093497599775584248884310871481176283470452996439883766597004287009621356244157651004646596423301005404830381312213314969237560592543698375770227958889001724655023942013451339497647528895972287730592640620638496343325337812307998636355545860424005069816085433545453873410014079790695589536313687016763165117698734660616063436008055361516308936541846849612473609779071784712806771966795583937953822460166506466690015898975536390548546602655037908131886935042556167078364780241020475486205728230073319779362577552901536927280149759075916423258404422360748493842939509003878976655506619525497329590132700178954620648625182115234624891996899266502061301974188529554359721122782068262026220455134930902558373908029743034470182888180323711817893135007946767958118917119962431428915216694190649326583769682276592979069455546554085526202675775911838778413585500848774052029302909081444024058784531901323561182595423309186271548753500101722509752911190482225036152149913639819241341198501640112364648326479909447549918447620784716412980778204498241250551016502949287616984193033081573372774376258036093383005590492890004815728769337983149592092235021122379620414295017714526436563547267686160193362683734220227892782172643242707718316082328146730616952082652842799600058513511506449810953011253141713013986776523836453669105149185389206999063368691482899062814388304587116512097006509102371263312825507788696457820205939377179686989461198607054238551751929387637727435539629716653345944656945999337212566683101007809504836710976230815108204930441902474938631925335513320589254899025603181765039272987943169353863028656741999306279060685872450827319355206954190583854171651078816921049423424101169315432658481419342043883562290894087190936397993239901839614011625116382679967835595290792263190277012957797838365956807236107166361044489717434812641860195145494811388523863124786314978739554901928232982885791087110734182976637642629944920481262611925698897507799255143534181567081549434053912211659483330497081636998493582660861392985203736078571505691510769803170799600697305649389830784088876929272952405669872039136803794672705366024619917077361103071000899130800882276301129112638006880806782174917267739057644376038428422515493171075369220068408699177365938545318952868435500814556919074688008134163270914356099770142762812479721267906356261432478222072551587217030351444255065559747743497254404225393410486693903503924741098727202477661037032139663550306600086066065860768963802430537246100207460736909323956593524954124555474522878381137082172021754562616554375982196081333989978404845239196812881252149424422421475075112163826843325049386947467765258283555023333802862988240113095132253687272324298816263462060215017128099789355176500438860866795399505459316769927248565612857780973917362450624704700872442726854110622305191552263437329215797888697136140141915850847023759750000876264996971365127151833101822227117097966321899858306153067350693750682169687109314617530285107694601098642487251121584327457590966149794559275327257132677504871711881820642585478536449079253895001521906271664478335024158803699705798300783708394367200312996253179135527013381381629659681530655015305800576555730808668161369507683844734192850696730722952828580032898935410245550252270786915604072754587381179368749128876535877885089009101802875875979593381743017389460874421875419830262691574301221766633408017392050801954993589259016636344457585070522936529335798468008825669294717867578735657909901555656567593756403433296427887478889019916283177279911463439903185725392469350722291601315746407502705043859196467179161146890794225877343092317404621935566422989337925520529900595695058328570894589681688252717403968219931159316477419116477438099285631550384331347809099287776402223912190229801185963614876269932511924546214313983657123320239226012998772500952437208794545664450434429577112115229018157722073392370990126943958095920776345742242995647103186904228771406773246519492295758616659302898015480820520051583114585183796223837621703986780260592612910767733858214512770012762759272418252211048235332686877857108048876005753721114598208028358027843331462750582899866009366413446344896097730450448753324457288205034343981244875546305318797209025312753178080537953604820001288946767388922890709564559584912530834862048272520548232300713848713521910220645010950952248461121383624329717461837741441113389803630623948229068088827343555246656751792418025193371641566208597376819956873621009611962195292446008378176412783829908722726106925970231923859522189738448682364679590683491602798657560944461096667833080005549122819962293250153647973698157012850710697630083068475398123591534658542784848711604254449533422610182032522336820014302162425471324961935880307779418211355083430864727106871324288985568019279332468308380663891455326003925292638762622301638866647716810276885338875608279425042671640576915741859814242411205062045327644518909851588111471152088051991212610344708916385675880207036381533325018605272621696353902275323862346568749806586208591704981852208075985840195905844034537547011773203113397079928141291503252861617682298442125044597399511831776882517357463510704364823590530465716382251746471233222196501951813450657710175571924906918504225444711222120335306972504494399667909028158764382812905501585153727081324552433116449731936405592907721298669961388403231828462254401009493492078097685568144277131670627750826199066459427582118254690531232291012772937363976340926935430562376602885576708413949521276315562643373220631351569541888014114720076993657138732587132674767695297395012526068877309494884540912101590831536689129440586268414977426126485170958179021982609512204455590250068608933981992656638777560177417327490100130394264125095271055917655811374740899625505441754023602929337753164381698809412658956498976804958932190058504958570822778777244943097036240769227818622489551527941113364844581473676324410341101565076503913706459859544822726117016862962819349661228798446596513165687167693231467633958664725667811118477248365553576188449875825199239235907764503195387000394846569749771116080297977174522390098592295583427851782524307153345857309567438783242389336288640113818108278332889789318179281431307085838403405327313871327600317414129889672174460149861908768859133724091453830762862802170538923908260781108635484193086789800263437286644785756491130821426325549329194052147668558673102779206227811143087199896737197791987843679367865225467839616664576718878303452804187205839063495910614896293446800880809613095628591856203387835429368832820974588210611688808501581861043010952838718680316940624556506822789899486307989728360085281370360175855597947662954898540463959164659631622413926518113464351880491622475014306577418820578876267168926746662701645657434585531677859338461969901662481219891123302390601127190633227921949741087091221175619259567870884978680918095978905097852165239095071114118206710810342406706253045892904233885298290809206834811952448798835168473500365957747995551590733349508424994367925345449438518670058597003772254000014898143600009827128929247751038656629200031102517995014024520802786959848610004081141120225927959462506163786861982023154673796371635798152213927365182306565311907694631185278795400559007108216199616702793894497300434965882841070317307635498763232897530791049205423580641804383449629052064654423508003810846367575504037517301307897448768827245297324537932744187741461457286236399418821878153841601322325800371764903552645019061840148978726435358570106226121990741230243461246869759496809630184317803490918223280471359427673813932516610758732756976456229828643620417195507710425656322997298450544506937996720758200159742122410652213844545202602197838883112591714003947222933487261983046451394326388166146518483889898759035435926092540422143089414012054302135359627260757702898697042513417803976928510041302008530164773444854711612577474781292492418189157694023370525992684830610198887362330863147147624435445319903573136824521359228541731329732883881885361119572348850627708823826364576164342129859920326085204754832033343610991234401865747102219428561508619002097648196257931734873409199071883747939394110347165643513242232725360049443392966943168074008977881989888549398883199553079727898912056376300991528863420136603016383281278442333801388637544533763218453945700858194999837732079347339245455967287774496757860691100175567716216041836059944787960248247436137349768355953391408531901469795026750085845596640602773858263424300659526699254622186417491693378912059972566985072923787096219863547125926680040900187006261514555855123054552069936244194367393571833663014463066099941912648001244908298180124864949301606512758364882463668799601072940504331320204885633934478176805229569984934904704496311813864096591715193411877786858931640825723759464184552021114807389819741935582214657131016642159639592794844421641223344823807418931404228032832428578006860303223121433958822018524526507565264913362802309155192818017465613058499734030831834605122831925950008716152014925806396016707580433748141512357326929918397578246582024640316741409103374125935035529798254576598358176817322129219276185473609985932500778381448269638352022375608704093199063729726485875319757519313688505674413920032712267388576128144359591999121472304396328224459454956515279910531606360899150030066523907486407847368216635459105109233445590711361850750999471153006977193820536762693536014165498174759681407078934780720079083899875774086861300999345235704426903162377548450130736659564087725590115686891859438991766648319689927444256619752593110581346160664518065090969373057365620847961530563186351597780038869594315977276017768718839014569175619504932591406937518123379250298689475016589517557292320410492215077825755770571757020070217469901955522448482152774735790596813264261964572835818111950784315402028934238878454814967172026409349200178921736935376937312445176601132145253013921309863498550257493915438180233775844650040435765868756400002944941113315196426878401707199031065464419379644774764828904466084724189405233522954254717338420676657574146511918224214872839150155890727375494371788947467321652982626237735320787479711156210976872747259579122178215656427497498686863547979109427775428104133859582721524073885741710321772825974704697480388421419626429329713423093604403734405494684680117423959420739158569585518038434679991277138572676249635454990750613618038180835409749493630002596148394127693758547103695942370629066529700815153425492441412495365489745120734715917057304611952795409862427790958760792960715016051499560945037503318747583771496069755327620589855626627168462979286227576464635825080987535574816165116420128762903604589156144072470423122272838081526440209521530932132746112039845459201752509918496975900645001806834115175953123167115133933932422401812054378581964340798585045142991956854512525491513038733989741624609291228442155044319287670062231305819783919962564371754403908405807824329537160260741615463436312120435119776111629082705618225237354300101767640017481950149829698055735758066766869874475732754982886889491203102672914638721729094012893119257928741738887024350494962587660500432989881338107335917786774009820166210934193050915081595942673603063941310290639281948702578992207722943263467701941266006019189305900008529350682867734872888117462099588733366459237060764791527665089843754703038715349363851643430911554060706633904552694033306827373577982500666379923677384176584625983821243190331369393123522425092922970657621952400020944996806682412003161732915377030944125976863485142468940035081844119562638507068521081432022696254791506042845097855501401549866039209619714122065432628448063675170356265802136390371724236712614713881731107788656702064045860744174533955513314309884410600844908226172751478402995469459020435295794330713136666095829622193278514968789698221588204201036741148458449137376101865997273187647468468176443107505139344276054391942337848285912499033176022671665687284666084812210864990774277136046244046018564617440768121686961210336861912045270278656925868049278026261344327020127388040287699889874973060466400404209477597526575013800286296705723146248574393567830023418896024026343842732743980958505365744494171926483765736463747620649774493255759833875377307744805404557929466552542937282531966081242772347682352786144600650833999964653367413290355313519240142152724273158571952842431707872676981288394335044167709288023199518608045108116904160049970285969379762852321011985145508105492825942910228028166613005311890965997751961634978625125203946168903540300914257678139008143662563496002219441197210089288812647391916581406691501178695147850601489618544738436439973969643352524570725302607003149126583584870605181448075806399115672677404411208189856644051892814348231189232872563402292572916705316339209218854308926013243081450084352489094627542038741367977664914472325969658646249776731864872059732150755192605933291481728503043154145120875995066097635718495894329408032957156820677517013520738186317889711843472447138546733868418401402753008756860839463625592172877466016046836577907191288744368950787242724360705309004487206804812337762135798063044633907934534430514116778163965530384115151451522120221822328561532968079246183408570346636990335700639480771441221925392591029427930298341816764241213340147071453249395638742832990152352351826492787895068770705464955247596805193210822220245363113395586441232839465264496476471219135158482445231718220905180466368507672901017838606450704052817224438108194067396535159230492106699866387234620528992603811150129164570475046941766855377296039305057439081519396898051076962760967958684833487354366684529102259548285825541974727908979528954948194639503706907957305576179470113344213332441544114669295285658196722521847348239838286577802653850937139635797543953919607236690629159758611542391458192490976401120966651150582215031104261885373717658618742828148666872417675564578374990620797722485941223987276630521206615809468823968768993720745136580714956624808308449213881901604943508221551351325949070273534874713660905547153731791772924849792865944014440445274750021583527415643161467775063181858695918655740839950695505527834323993183756657209273368671471500659449501047301385269941865011208646336697070244190815082370091915480085063431088644924462785028645953747667484893187948769071071825549911913677354474424532117219126981359340315146180968553735576232615911687637162029963134641843049084971864470284233561428835886118272654122474286309056066635547335288914235911425135498696841303314463995747885971820083472770329054665046370465891980444992115260091296316948601754705286117309490523370046865025314433012327102898962963378475482684189400304124673971842124166529319957183511932505191771664044776774022336876873709303771224981578700549430896812450336129418834219435577939975905521182472520532250580664079076469901079226523597198778864051243990927636845294943198729305854533088455513463702541890146666443658583257092864330699258270320616305568240107481157462387255162401536185097663228232080149750876339845779948464414290590234729758380344008547973992456316506636579481188635254166647547853024157344766320609488598807229231337211191423930169031272612342563325689014393141437242525137214606115837701910255411462246002590570126706902768528386466280407231619147061117922573773108868576691813291097434607989683718448844655457438340885649969210071736685268845189923173534529658334541825662053153808077281425403921913951279217123003013880717101733693035382379409053066351266219488122573799287926506756596113653305361021117348625935473102739187916771158975423065593471343795111110395823892382004190553130769461237360571605082615689896385175588242887894170557721868806057293739128810579620249567729245794579569849452329748509087799567308279262833430566418757735464643086955785098823190191658090062672019240357427134382110090829216363846500092471418745369250268711445565246312108757084031328485781970993149144496939829130184970834845949564341175398388285118279640938849523063958352435806761855109387229694429988035876217711355268170192855774531599892050863869083748764056453566906687576286842492458443989021173734469657579076993788042476612367402856060188373050328603014111719138167058415098211915916421573548551410434318692233351461763679478590118179843411199450765168336525004997148208820822255942699606264335736888157578791338042592930315164717167331498512915675586299883524046115443812625469973781145596045995171656936458037697694127249169875928249389637894357556473707360878702664792222968783534960714756804714210565882900652884252493906773458117941176072455023009544338440671618929966054130778427341448859780831830370240564905537219406707558467325554111430433955818760175993481999510323456339459815230045889863783327237058544795724806891878411152530758370245434960525771945039142927611259690867232619389330722804291581891492015058303490320348477165386464003924414533434067694007704835914190651317177588850808953099853652324067842888080998149763141836316451846357993237630602993007559753415399766337787688729342638195010080115175446926467292600288427546460781865346302990782629206976400316523389827159129141925445017648484452351941480679402970036800995249148741240522628768472354876848391688079382636155864785539917994423249752961964506456811320219339193491525558868948683639804266148258120651464183054306881887291666034230549536956603724568658631479675385100321579162949695758511181882144636826466896346047248543333031367465021310623250758295994747549223734644603795903774602329569354265732108848503908080296430694781805328424357375348126531866729116847459947018678349105571132828220188953556433574726749694535437021485787812874073480939859338924484281459935200466562844585716236064544848730229698654663793227800248484590713552618768685148422655361512140833183939796117324910762862031540723149346398050833813874506024347052769224726815860827429501029575818940206437121944405966899057174261598189123277218227013330267437690993949216506870125412068009608834384055213748616758844214677285826404058367715387899446154144684032302424870998477662311568453945708291520923797058309117589817094993236189913470638451864192829187205175796211108572118565625848951745975030241185466374483813766676222617083725047813186700971830594752240074610095042498229160179640072998130229529472097458170535033638232133854019120477770666878408193835017814689360101836582166824709232680126033416985047642461701484160409922045543096959948770505901462783736736090294876896789045666647253903291084162458803792716376931487019674619865694745951449234819423262178802531419075369038983864967968781092607667406121994678814244305355573150570510025525137692191058592108080673965329661162347781017013666909003678206737563457405435958113683185599793504850437834626796339551890084126847133142857332053618129994284677087777563718174954759438223973010674017811673546657875307919403741018543088040766729679986908417995044330499526034348954858033932826547387528941777019015703672823504729801384650713765209935541694694104897381248826476243606952395271634772819206903125069824341083353494963850106685158469663157724623043707099259676366649321731312534071129221599299712860005999966880911374905156505638017133553779322269392135872641014235435743069456584254710039332948163886939651293099676637532547931645980338314426670141786691086581699912925475827834364474989848991977450878667818918446710509630540950811565366447120109731360411112097576310761346429472136627747785249637616054106455632437505311928729261832827949524820863208514920938467304271183999452964470529099056002667035010531594666763042835317067827396194862273816906126571646933722159517197748339363740550840473551525347387674313115884450431238233438827238876023274285700946347741214387399643066667376219801040719873672107556585902369654583829247286164857738102222242422451416624127540117366896853974220497025999059424207926519631842049041522302236159633615219611560685631579910761881154866966373757342780560143271990563165497448172930756231243036268746405395173634160945034859878645847060162309798906811866573162438788193538453193433161171645477193891353322165946219985035280839155272599407190640648151029056439954448685442218505670896862012925446721404677012221888005665033198861178446045632985234222628651682333273109533823262068409832937914340734111031426137246847227871986187255646946383828675589422870373655014649172379660616359882828443659711616156050920739363465035883091881659139859997146274376844102111445573415915624587085874019457772314828453356434741377801446956578039998104017055614255219997478224991805573520268223887073305006502698791203751786258060315141288762886423966297241986943556901468721470542222362330618181043289397467399099455618304495178045998323989128328734571464699832280849145437318235813863227370138582454261532651867009052263519102429346030413576474869016602713756100165430743389829963899080202720597317008110878269499099698652859014169990358738235222468355870193708579840132342947510182840742028664172266583197211379913751531208927461606505046606591443678792329059713421786714713399157853681173277386543405043831656684165086390632722584029712281521305389750275141032588173027892028597904971619930080263737045761758196228604842408867518973301169875718863763344668468261533182246571987668104992943433839532755159709672590860674961861256440649166605978194718896600466054851924738543114717101105988539414255125376242419488128765445057185857142147018195752928096802985138158241033927435097898525472351537280651473937488915184381348234735352281363245687232674548070820220591164528565539682517534692970377498446328891731632072126685710652675896362913509022873756555116583769658170915988791259087337730598590749330685859090895552986177713310501703500928624054386259456523897828534545924027394677434026020502313264486738622971210203982480499764936477936794515195571588260933146108076632973130053543304085509914118085416554362837311811763196144966964092673861120667276132970410961044564631025491257253184190786331536278213206606079454350515268464044449683168137064244196039170539382036229098929561422910702231218856111577658038312689381659248549593152450987126584585547137989259987723622399033571158298754223351368732500732082932228441837482429986848092780759998591834793475731188864217759476836399719672652752105843144081754295488467162260461642042807153613772024632469093404942561690940924925317770263180537247608234091890012558162736943060699409674651419482248282297723837840516859818282436814764527724298215862547479754094633230629567579359045843656985961476922345853283086805056720781293453443094934837376683020643158190311960928813154361099855930970207667416718612797742478694810422027605165607648845102220720533913647546609626892580804491497687363286894811010408937402045704862403431789147954773881345575814517485694164115151550366238901216297790087072845425160601485921908837267593268289291551236381632757149060492228365864541551715840344879267430643268431206474925235629419734663447947326911068163879658938205684544027607279670346489101168172419475201486112999060591015427702571818326813672549680333218227998471848311221344578382630567092526854024961056486329461747042141368303821927264027276029072216594622588475566696296117975040547926214223790506785394297871350771358764068983900056475172578927617940866032995460925347339850809300415129196345820777851014349979721829047718141360157073306530628885883314274598596270789913762614759948227259295006638140275759886804801456638209283984425015497010346934765527005111754810462071488125429006836814588220094462347419425279065705657330039646976164858120299790211323099237286488650761797330791928073641382498252751110270342586331659684376415232692319917557150980418663088371004547987370184275746568183398842505699573667936715440503287370846454506977245123944470719648547635993601384415400232984861969673344626038387113232719897240995507371295203147327167583295974401906695638734410307645919689216423922849111376497362062578950534461146022255414445642850152843144832791011973139254490543993497930410601298519678971801374025380581667441574129512562309824270872582038744782904540592154751103139702073021489795717580240564158376749653073256130275178842719162482417875445135302048010326790827897795331462506703961199139133541133133559237080911702150010974516245937832384877304378355746284914402812216172106532170427108064744642392761683558911903936304276393339242251942332816369742628980826968189474342233528243398459614445280635758489793990253118577567685839293201241902351670198556684983888468121098819480504290448943853109134099662931996694390051869397427946871688957834249866938987986686076527393223147161200187397932959016549715467210725309885611736451318888860497075882287871863712248859736078141202234658409637902987565969512689124217825802829051216871857605225399788243951057951567653012954884463351553881807999481695870819087915712176415314346449024054296752745682577504813102343199509694336006299555246505315554096583384678350508807118539413032848895603865382481657557916134754415106752548009230581612556647979794287135810228886368419061487193528925697137091684659240634763315177062842382461302317885233245312860270753908513594485996792208873848188433019997701990992289406777721436465325744351139010077785092631859920859156643029919262024196231439316291853985283629348033080469942814029303255350878324263329771755305503804109743024097215557360998779577533437284292987141910640024228836793807515961011308252259960605491618036803670315269653187008619800024740301541376628979240376164996516960731246258000880646812611819640021640235994408163618199020567585773089889637715674335109139727381837355645505835446655487618290328505200213835084694472518676084975650750558425072727232739161381469869631510477981355125073899227486870718227537607085107754479353626359388118064625827666248973207250473665072557878087818425845845549232926499456249726769285922785621029869273232760137769852983565837237217200617522097899450234146491504370874860345195899326292876490020110970998574130142466967362253773551350214822456935578025954346846345105881672744806501409822225905201016477094384384728027740820980889015381180045243467522868728107475355037889643161853114091344124312881802594441161846912134720381748599917027144615559138905088663265587483686579858088953959351547687727172825580961239799618051094270376221394818952124824153914508995414137502040157702522258565269944259142432396304848654362022503652096334149405754766250794469616311145753625704939826273499144693027731610988828837467459125026792585537119708099211042663825101635236139713046694323741322211367403082634076664832312838322282684847691012962906409458799062662715157413169332852478803290300767138541805597742337599219320849522124334618248208861870630172152190372943039222284642515142976695755814251289413332579734826151431577700430243671868961717326414931929763518287561969845822883622112088043586261485321994139360873941356774577906935652209385581057473309592705011964932226141378367732322726994263087871123840350041288552504215761500582006691862744746741463465943567638921971302417639493418887042058153881798095350497934328597939695167610157376917858367992008811791076019220120629425287332106723906280848504697625180085515949792618872010324475445950545214153771116668678796234843899664265665397260033249404149797121387906447848644507843156224074524716612256202313306482360895031590558766201042212260570240193066727209233538710371527078608402937924576791170538522939581915292430380801743981081082652990482706763772962018398100418095797536273137710467053344067866694195484185976258282853205479770478174744747550099489181324419211731236688142425051876388351302876301484307707368364539254651329728102565395260459356727440413745744570092780975793523214279580571226586621223753939843133230165959857167501591206386121068662689382639633710410474811457386033614592348028214318854255204863517699595450061344841772101053852119973082735962426722909622164450879958646442894228691013653217720515150324673481025593796258309980963812723012251327671025852553139994660296768494786363091632903621942130427091377089319403658692798354665460684196336060678049627755153164991627558061669420126245143190755782287207573391564514631053053455827181813679569179753491602012800458636254941748529693763072222141964886896646012410729247031965578968874772917463927779081559490674822612070996987216778844005612867956794326576817800107123351874270460002075586142908821036729982782235387010163202211662988596842986893096991536116929757023906744745656723550302804307964918922133661394664612683598595690399384225294260612667319838076818670828645582118395739981062451397777976726204780847450221627308976831517473337032077541427053408094373008421665739791143515026366328901878519521314981890600095216344777243237952667654119765619967921716695443636661765971719074224520875211237298364045582292537262129684369559722257974256163613007632991770763350081977381994357730529144735890866743929900998331155070165583217498047117538155495182009922138990023736698066418571600623912312632345829838255766908078799428674088557127388235140055651572283813053033629033597305400268754203209956405566084643121610820193564080484302085142828012979530080281828353466756935938856368138237087954897604439318289520075355442230262430594065373133566671389175237496358281991187405301401104142855329926916655387947048035121678088101181047669707908331900925797667795050201426716411476992675187339425887204971228659708601717987429736497702221649694843566832973134472080167070008437890816721318887555414128682063154837664649920212955491114877619775924229305902741784819636370292737642267922892725117116282906615611662032151384903788565466007710157626619139144517495295887756345381073671268200840346849940037993855763332040092800667068013092420563242111034883744326262797833850979816526215863925976964976200805170886754300461109520758389877336569005588779209525178249462586254711354930805329257965452542913812362365901496024683885952984301052906292478603822377002340342620751406175216667800359302625019201798626087971339210650091730719330774166926017745739833714510300372282066430761457365520153873094833044006110625753165417113925430805675619251047535168904153282720824108150932385155661142180857362434620253253438683954399446231134065648073022368759831383489537974834359417411737400165019937173734486216786243155367717616167981172522754877642199454177149254888594181890880281091106960755277938323039394945318681638315640570904711341903380208150228710202033736277791906986487463366256181315597059294243588147799145559601694974189627189455396277858937780749615355645648136456144514076584915077692017653107469160846355734088860784846632638401842009524475223051877688112132099881240857676657645809463960489750965740662101928775572453359549953085614852003704387225540283375296101955095451182968112563351146717349140591207457839590634241798514305336497344713744544661491733889212005724713518813849932367265295321025045810486718222344259292784298027312943232736385415897592102285867121501225286479947384691148822438812911857061298828625286010315898507562893912145725465289155313031168595990750769925237943813770372472828932029523035774309876205690713674306913112892340957107887019231743905777053973992890479032668263435135976151437227264147560211046341262394234845533787416750024935131068598597035188487623250165950330217477395359205204432695976017961187396657900199879975671375606677639672451433644004752712958315155933105986737169002109295511543712263601891694676999002541016922705991838333974405367677333875643626241546200985963712996841315038095438431724394189618675680602378812427341370737673950931175053226042658023304955053340125002784101344512317723764561754847950443514541275780265178778993031163553373790340410953465490726937257137581889510105179065913278214933253181049211793774026867762989688512342015180003145179680876506046296164035463362782714766641214661160421004530378126614812980046131380502892210748868593888845478287398033734902411693015970670172274609792171720339023299347236343239872057027086198686354637233268114946649703368836985356221809397396067800024600505024713075017860411146063993540108991270011599265631073149059365782959171977203827499000845774044353590635183770582853328011589555657982405696882525443969632122182409997844912101662784066435770678175180742025206894795762693744783944906878401176396320929662041883209949405551286282168326569637495244815969176069305530031505670017767388012857826384393101756691516046149035100051564895339903625570295046869270306428118143296472170685822120441068832200883044730092466839794606311025575777174395269238806315243318654550641283912091895219451529839630042540511529365158769060023865562312249713955689588801401079939024996151321545392193150668708556030273811021227198059916588381000295613193178237474172439650482559202587074963898402525085122875901230221521683772109349796485995807374938913327164522297716791058907460747765851349772455351968489984630031045701028015687756146920013248566467453701406962145316813475716679778043686175707502471139363914429997069276503490058332434279976677839215319031108551793632019487140855417443194227302908618031940860910902661773420836528670495238309542254419300983913211753283191420800628833769237550737731938121499385591460051804006691214320220613241799860970995670420380901934564408654173579870941147207040844483292585860988439076265969243654324991367650069202076063014377393310455098044662518660342138292652947534895931977456966121860536886500818707538067469875837211587371005455184335058306157983474536132897048157054926603305542294698748424758950123357661564118028114596816555651405844451538362883039841369129368872057772972368142055117235961501857681898094141769591621538941503446177386520120364249006423864418322997869271784160523170379766196563902442885843305735672987929086938744205867934376877328249888269235168862632739527075084522051826557535692055031904146429634303618028378950618300660865784166006059809303505034576658739419857843983799115976896998611467928020118682149542087437281983900721857987217057128821565219076815373409445699528089067335591867829308320709723747670141046970207263707847138623668490080699554413541029228797275877817833982101898316859493985301168270011913415311029759981695709377513275437319203827799385332690205731464460620290207153884115063672051863552354405082716862163710803438734716949850576449673362163554879619844589865428345073709076249607298564135476296425158202248245631334824601172221604053397321017150345523165563866818944859600108632586457669707902759327145995008859250211223540912833930353154519911707557772438796464093266815505698890024661653919171094718486950863786677308308639553572601711033086698736675822936332760958085028078789678207278965799034338587828298582908974685243070867471685034314367007918549559156237025715452815204618344448124173018618612030113069500040797971404838444376518707843220039615771229767684636232541092654389554815588405013071271231566269699034431634527627673527030643382792381234780816754611064314125334810379290158841557006753477144486721980553492881581151911185293145848670630417822302859390163295843868941994276369791268182573560879947803145869553580978492684702367810888950160537789718794319807717466828017458205427610994468731545897413024809253663468828984363783883864194544745598179210458228517114499674983085936888401421568948369424169788075486340721382073731173227480418614180595422781989094820937869356303068469426603562592847115748546306576147761546978816095938850493291199199726690414195776253912595244172050102232601588468946552964954285106119930415067271420850279126587191386619079255351749037977475047147209196330932863940627641994204902708433872065728914223512226753666220028167832438807893964823008085688085817701144855368486137006254154047494388933530711128850778828207458761912470841405090498753987810250497389832874277890605364793296562076166691581213711898115696880712392137696431298920693086880813868667062066510886577924346188465923385902835441063352527790001759127239257319158941306820909762706926340782562837267503743853761688955843141368527785979833875128717249216038557233159957427263476489181306931524431427154046359391645332947381037550480443903967094810975366320422701248014619689813340845991355203302072632013223945918390920093058079477898364013498407305312596867871352523549215763402492285629882706923609914180163410588035209920278235352310432873745464424084646684169740546504159154835245701793016559789120161963583717359349357132615224792092868931165019930602371806543649347817363984644126359233398486282007621353509515143658444792214790608610171331669507313837469231949734130167897294154693423667333415928750283998094345468675137527971945681422429995874294822929832894495151240655313992472820623874676962321195532145981658177880875089088525732863489317645701193498780172037004991881169116929916492656431933629461973446254129020753214255849204435900550592165798578438452578300740023554426577506459047983828698738570767648884495358702191749553368769543241222493021145023985097579642847853681697924036325460760730211459109128343593125034708928478385951906705643323339558617321737663031087503642550054887175940046703896550936255860250027175344899453579270964106154555874758424837179147493919797556704731502229032844954209504416956303677484759001040423909724083707767244594471351787141396164234119205781639836772373251707566016609836462120661142535953592754859171139813292881186098587262271928163699410999956177514308337483879918424779731968353079872996099551988621338034928704187011013970967783869431038761001478013744223634001119522360698268989355029386380840353847438726885859121919843227338054118112907962798300311705138459925460643380642174433789400339116777467955879946151387359909308022638771742345883541449602129491109101285750003288862953728471350654527492277325090809141711582335886644757308748348022176383440968951014095235569965663335987826313859006574295522510235119174645296787384060482712471610600928223359745095373144921096325126704156276529704231311466259923422781479609335552534723195832495931907552820140524452081949521673948395212291219683320627014119835362960611479646631123793369297690819247276745272050798005803023435615386246003766703848739284849935385278300947961138447235438987492654971178358821483652295478746141002297265737344957900125543124058933611634675515588517254827485026685229319990178721996086473118176112039550275461007486692927280720058809974998813246906890591509296568358807210942897900913258308984521685854896909976080461580874813476655772737864711293558473906502191815171715356699127341755325144591983356813805087346429592762048298347409782080857394175912454026459543819069782213017660043038022532826941959761914757508385804880825844919373860465982756179488766566621252245293847288235142403315028025896502754144339470759082393634886117178712864676729476552122433987676190407806356540486490483727163974536820599114834852433304797002000799436176778752735502946303811526300473366492418548991030732202376009206877351903767584765178851009340295886107667782960508470002583033366315429127764054982567020216316361333399775761327573279711647723798543878346449589429099784142063959061986022286802707853049485934606352068412736652496682531265234934262001277713294675698072052325836512413684805604731601128926676672881770038209333541974305582305089025592961231481875384016889337185516374091699376230407627331821261890844682330438628980066220305310272188039517877173186881622869397545619164092300435742994003418682161901363908925532133135974366271366949674401818069864391332900531893656898576829606523688964418677853248586070500931643042009232679523740010955863243840761572862047251602010132822479946191461350836737323916006027577545307119481248778453582123268932597296219804205270655148636413205720810397042446539984745861627764977746473744412289057750756802707718709497725087895332867900110558850579429394667735977880763435091874273380908431172137071828722349986143030600706836213283290917089940155038851723705963020291072042284774195707720074334875206531257916867701428742647163523409716113369702533240136985407916405762631431515833955856333940842008431863658321456003549528320372608518971243439197108970801821380819406764923625863085207273590976552955673603601867034103015932236882219741735513153072634501371020369565632019201469784424891853996461383776526146261683626682319180670629436941578794787152788135102527310280496014693926138958914483955974836920158624449793014710577293134673125968787899654382171724270595272562822341758392778042307722977821273585368594992595656067770329237224339304173855987413861845519484686131754724174976558615865052357496017799234875441045905705111624533010553123918166535913155437505639260130442386505509950412390796869006087763600923463484066808141304073021560492398008023115417699583004178830249951020815314879127248160709547844476592770724142181053647168152424541359394173924061456650727658898203962356078186553027285511299457760224748578029404921365130628296060838819140858488809719942190042355166980964178485262090155149499169927442353048768078809143674513982757723589867814086994311657042857565101589795107328836107727765950202757964040417660916139240171523724550577628431049608242604152930316385619931497857285602956073324039006239619156594362344382047889991118705121271455654833583316490767955029348250016092468431628080226345934098701890627430661781127246151755516818402873484205606325919724505843025676259138000412402262444222895954090716704117051082851655296250123442956768713325973298205789354558059333884901548260913517394337143794943707705208632165224152842820501318463972360984619977660246837537634776415482122524252694247424163511468136283870717877835864104257100139501509119615233793771088403226266891641059529989118108665857250377741477961268194742531631354199696069801225962221726660477161922950142180395991722676598580002295617153726843253580892549349482631167925470973127154976834023314587171614992688481222434187650569058344603705465628522646313589826232040911276604145764159537645023350286245467779702273185294359309668059941932300520968746203438024508040632721480138524463956664678644747999476564825280228489910982530330001935970287868203570487264478906652590224327143276906948969428722648203871314874685688802093257901713017116063854245587593380883909126033031506158919576295244062147724448211997079189581916312853987098386828519491270771001517289679611381091820123139660570973412621498059902511696613146301469723755424472130325795630235049839438396616435170490975477554931723018288393140400449473056744791866012741137005089710259133339180113345457415343718218501491416004665082645767136708800791144213559727857705494648120007853780571139534454978794325549991273119340688753989672372106834183139419718910160153437401300411700086267365564560783448240165820522510046545882660424122682447088139106577580014946845614057054566741625969635608188009616710263099872132821960833106858980063541000908604007591659231330432598524375216348665862530852599036957182808812016080780901193514694416494292048076460821948400258699673620475646669558942345050633263728346749621495596665856529792165462529713856393808025262770420905208963040119072254769879234469514699093671023803992769016089137061034279394580070257603175422218160541981607017468783146689274544467259421738944632632901649039806915254720268506198036354570805088478915774907876612142629672751332431830382262542773118916053872647533980367926311593553724972436659144246106631611427129754471731079388519389323625504830402778626108020855262113484872079031998960656897810906644397437889699498391274571344902463685456213894056550828852057914932895793453918340180330319134247107175983422145504092642822712283467457037559983554162615831337181825215091802288252637782409240694906166649530806793156018637452715563979042687914959193982364620260472930298925554482549050624050361918433122064763616972405157065933780690080210098734074591251286180757612304662916081744876636268763723955743773951867520828616074772630651952275196989703672595437251115717905891574437812488097379662339252909837192466965917739130967872976903472578290534460042852249981616803450518795780145228838248561789225727462693677760131816892211248461551159406052546283644842885572672768359231621182375247508320510847878277367793123932611861717324671531541359485685339859765007801251229824141932325722692148613405388689453637702326083155064123853245651122552619440734920675983455659482426012141054675451409954706524812541044128255317749972889100663473141553447917806492479607111851989594296080009982698191393710700245562948682252680589941945645838061987048655308511042376518235509919002778200155016569948352670405199433056797147929522752946242627466894222975032877921961650305418936939626301066409745998840384789366256665001678016297979396625717389925002827604136558230568669289628139391981082528276455979041992805974160996326668760904355956662187402932121813865117692855490075332350032702294065821670626709421791244065687028529667787778694538379090350062631286124399707469394355025327523727410563629887737445782497436239972357897759377128398927875431458359519502311884207631198493019311117658033175163187051571498857584891854464837538045977144434687544758139846785944279202867563284329406410564413642713570037747528002475493002020359620600970843708349159458980088994699073264221725535123599162494819997340069193911091688765065676424931144835250233971735325269122521533747066194305222703659186318208863036384813837198372222478962699341299369766458664943897803948071375762602847843466776545904942486608803127648100332627358398038500639248050600649086520494129746900195844745626780214932209703039377495326021521229205188932147635153130821752006569200758787788436474439946484450030034652626060718908437386022591511232115898491889302340722903216368993341933028914489375506282784402264783080851225116226802635234153474691652527616632113571728842530318724642599659122013608194659626315899022252397297299184259923975901325808676409687673454909798364522969598345836366232685694952146438198792789031010731286916332411211971432649073931997433955715585298912992432007740135856667397382929685663593302173886883663495428968451908906979689584190839846606089998695967137178036638824663459730195294981592340226934534953819367798984018903113497018510274068122649056627150149563652606703337186011280720987123276934222058065476708660647143429920396584135962474882408796318378944145337558089709335286724975631239628567456051924834767467494995048486340354424138599407885455298266870293893574540669986891736826643122716116644821465757365153326597653701817941989308337710222090794599582409187295501671563252466449980195642095394164007455355466629462377468251754304590073620472571120348824903313973847423057970736610698503349754925006146759191793224463266195594906641751794157051638412154136899590436925803659653615769018639184706146094609299249393508895434040747621160683473181557762610362400401248739674806005358271833299266346395640143306975335316279432957278121742325278873410383671049821433822657385451454549180935058445293743724920221448714394868117080424780774680751767292144838153638953129413755668265496765845107810857812043179279259882780993398152365118677675147782463837888495171547992765572012148481689678685007300592075431481741873525430918188055089038890818208369967774481194037430666370622463880496191919861118830910561634688833730115964681954269512342574961613604423093297712325011392388743579440594823248425234713633912489609773476683960273834040191041587211345808740685212064234719636043291213408449095692096012334134824756000814698690860157894587470050881393779671608630464447074146289741697165733123899011621179907799916523546181663368115896555757557532235470774266622958836430106133253868240058663655692048063598892580703545889936778943940265522414512787941110115319032726278688993893074725365172351349614797132605668664906386921742608574811980995430505656701751749168150852759867906090760036599600475447222065681328588249228845427202862500067392664143471711357903286677189523590439522501878376009865901876039417403102855996854853438129202250369797726075144951296650109887614970013287627642149691510060074500276343245321724757214206816798418673353999144219646840149584159676978867289276014949176420512989663517746823677979821354211933215010759419381255700218359715778534484350855793101577383435019530132848188271266908650524466202964433704635966921189361167285582288755458096232659453351621312770903284581612343868397648299470459298948628378964545583081556803268667249295439859493191954009344331477282905791424878922546509692231493649480219900360405341689979452894908322433292230084071562163050030978921659254645096390143231926765633257649281120505439128009010499410722977975652712194431393079397687661603092128157698247057280784628284504119740163506847042695056507521856327045448769448548087451072232543311923405653026856392112640099804702946043205267775333538995922587943170246326815332526488248685089656293196255250341654869609651175449260116376722469725959059195058577744172217032321211514683591287376079127075782219352336614331123643005859792370047557440328019480928154177196410638700619770214459442607635975968009815579686929885858953023204393248492066677091213821871229723993014297508206715607537631871289072075696153021554343449181171567492116040907207338320140894606118914023787023499631320284462613339509498838960677904338486304942716594036891759215353030787112767286464348746753091538109808203309833926766036438956816959389949608862642130284096142165557106467544310090862444306965883195180315194905716366817297140447274945060527496909158727378330023490577596617166481259878992193495771820124011385897052029472863453274897321963726990376288718602095734359689167044914181723503865183290027269224480909509445329611715893104158699320645243152107492833150280462663608204854291523244786298386572635600136612372152152014501309871964624103310397542121152740691278670766581622092221350016617931227241396584494394464397177399053096608003000396643942493558295872585166505975169176114626336669029993568726019909629955164085305450483285455100782137666682159759045694149425263483692218559161927831445527471937748345817059674212205420415196005182431318413741346866436507380890394548116313596906951512057052937824644974687808225623619819936088241670544903254406405447107956069109972678755324855929325430671814165098371205046723745020827323638530411141776879866757589607244280533339594592799859692126428896393745395355765380127862568834322174726116179824910027066736519543415556130359740633235266470333742669925812851448861386274607697095880341942413789953064544512662342556412693329022158593161458364860566402471894312146216601262639272836198859793228159532596742862017346668505547901674816058183843124605061106334037832194784950566356525132731085340064503777940472322299434830130245772612588451517927772515640194290512889802115306179150318036138040870143953152101640533236799878286410003678984745167109403737195092134735314220794857917733550694795113564561906039543645297513671718056175804054828793115351103914473273582644398654765372882404481459873385328072625018722158624287574409883293977980345010357341415767895002286122419879763592865797957372882936975864802069059905285194149745584182015550485102076346467800416929607211088346511417343651464600826587272816839927064734077871591855515646548248914689645681849126553715922196509233125534344429148027040841522194398786056695852685116032005475126199359953938900641658375777059555650113824286162260135271138658130472664126866316723455338468921434763772530578800276297096089938466808272466563252503963499083049062415884988552709121765290720238539729902397816954732181158168993077159121690965668697463037199775792193084656174150972433114203693929524803558204226501585683246527908546805137380466551283209299010864219524924534021813965743580697004300813788603210580560243108461465513254891918679242166387721817678711411112927053832155087518691746447869673219307356223992005153000245987482163121692003882471132694253413381055864458669410440646193761683569208867362261516950030636658224979523889200489299939830307470418413711014220958437070051796345053755243175994403947938443915489700293500693967788722854184461507981819787539607579577027875873457211878151245263886678613928165491072253939308484882350591697577012548299239233053334758777416037064090127681467789165986810325049947374017696200701646142193126773646280943342142791657039990457008779382804453044839123710224499112326828020367615201619922426585493121324684980183921321160096333549078263110048151520305739777530517873188877865142919206129639793716122232488342382278720907816768660350031359425679514232253944011492767569583013861691284260449588955148356857806032673474445505190704673010302019029503987186193994136577953216271314885239300523843481979152043292623794629568581710568571594828824790565434101324023179308086251835908965862459112398316722299411892414136103754360356591514886672521622435424829805819575757523695929980917407201598823470641094849672270323589105057996177866496462987402229439044715582820061696674889020266666323408290328410253572356294348270212326966777611445522107161778140369630633516212284895539468872936006030480405188874188896884136513122319062362801816536943144808417969661216096648330851233813812892774289178851859436878009988443862334252124649373259632825673796842821798544531355355976577721165977352126992348937210729766781534346709667463304015924540885610461695609704689593792099738699764674872124961248329619680499895921610825890850429625815240710007017387757799443184060104466445600498605005885386487905067922304895940268395724089351363986924709617831150371102262982643663929427316593149024866257092066639982879588317812804514047585712812879783862673399373768961002761149930509899035811090105693123684989771868831123547952567833389877442350514544858192267714688781946767455445000820076941103552396438625119678290044691487774918576730081145975943281068242736561479194464950312677106917444504815266177370910883338132332335837588722061154679742699577976207412789752665976411587280649391102498080184596409361248340193243345240886914431434763583100957685604121010733964291472511321027040750419983288535445656691880924079823848395299518005190107611828845691300654183008105030414497362511045048031240351932546459008868772564415587635875986961714701709931299172550985022275386312588129667842465366154629084401367055117146272112328210098948177492916292880904072847489115166774269967117644638315789153736708241959783506885177582513159548575767637787362924942545781122347639867067667429576587277720449937097927759941780006606465088858406327239270413792215965683027150075314110491939463574075671151663530511135273153870773267065214953814722592319656920023370551307024431280601682617426022793164881568808430277047902853152861664724451721012243662424127402558412218943445697929598560993835224527226718580444638472581285991096650902531324937686152949476072754801174286911922311164550193755105160126530508445886114812534203721596221200065492948515955637565291429348729014199880868521822568717035971581078119504514891256605464588770955773368718192178040839180841013429238248234551878431980790509568467749212480522985530779342670645284577347008282234609361945162687129592955113480514180046670022046634654351276120419060555887086443696715881014419532276012232027406767853331017772725164688868941907813782488936589782997796546485610338271571637229981184405513113936012930094145166994060512283889109134212783203164462107472871263260817978709042689373495990878598182477516136795577782615011519438063193908773448980046494265230307086058013323521686390923017309789067188990920083148288695351593877020144439058097496849627571036888945763444802475686861313018236933687567815615265050348261886298484011310645412589252914299820396947775167910867231228338699543108502330704064374735904055429172340195722966374940600300386657444706035246568418775514451225248535077636608747424400500643883818504120357834238531358801078098368276399017752299533519135437399382166365272676754908690102550491527360338552677250919848188301055897139933335097196312733402448299924578666220748418601916061993874163942575038423938359725757459864919706729610340894941646661050470868920369375557361894586572801191376334486341889498063405862927391931011920715217397321081500404362115560358948706573217445530330892611463549975137787942274379586562238134426503971494447223405256720696758982728749592538892823300925189454471311953122538272343165779300304300219209211149589852691189277080680105395592076986155714866568407060706615356831062332546957938059165102111048694751077009808130260395530013615352197193889937810540038827314390938910808518980613157412921539211667366879279446050966266398862331562853656810895698511893207552504358929016949634429896584549852795663156542743655908239364226515038038941934316629297851272136260226399780137584435418282987912421382694993455663828675074433735726183430999879557361259590945448223475250952270599953697066494901155319751409125929136634542938928019042372473807586197151599365727770089822232213382277551241067904493399367703836271713897367554476805270366764334768456354311145892371113080757456301776770830416266582943780988897596809335386756308116197726788345025029768173709730258854003218908706274276988801456346649623860332595046536105114794592441664708809915712742160858354091464036061604139870249537601270575432800404232780709530777543901419035747586370491912042018057508452686772188988639333431877350093109842846813189106626750044268039229864302023341189618920201875485949626610889089398069610327553397105458021304938341550541024898117715951312725756188717931012752099103432475213951689846174032265657967207983273531476223518040246995028703027559484489436618939426100891430342876611557945974584113077139763914720201686830950011436496324827856496801819076736761320241640707824263335637690676598459452474146435742069753841659591974203344635952902195742846692101293364205945088643540849437934910586192850445854171098556545059738619823341396922508265505082579714962336867309565599148396873581526008956999166346474323661045339543859072729870980452185419336159367691590488529505943947181451143184772582442988708332994841948090966258684558164805802780402050133637371696198479834026788036414580090208981107555678292911060628528427667682769849902751513116511462527694901381239430129002718396182274703607517639899829723945170309802838068823899955863891017124754383225182122126851288774115007180759445910865095318457704964852273262329181108529315695737836273184016250978342424185123521542138538532872403234502590180292367688886640661496319612611582583436027424944551635918663736455457721561996209656140375406130187591525143175860083266104380144903179805621871847461087915051353264897416908452519978948538550312428313079697020083397282706479463499033653993142304757353903268313276007039962453053316233498965910738812374655807759674822879078589498129079257004137473672204461240731767395618281453862922817400489700395955596951255627246170011629292968027601899022330807015117382763866798578466004705525999458925435520571719747957011490483798159242941273965208027197901344188543120688928016103816297130097785287186615226639310689023808384956832255061894558399171046409255681434375034362735476198389615631180221799335983977651684360612571580613152983211499012142673644574628395720562625910823589472237151031757763400122669703657694953090574397148070781092441290218929463191022990398681248377632368010502328333527286448146377714363034788069083961462654592656988268158816284980233037499418315726166849071943407218598655612188404066066203176787053638475275399022385025323947768539275094425066470169705827108725877342108675906028956511138124235341127170208850103432650881530910221931274723180808384700955324541995629152534733743891275619679833366518913209331193508456347530245471064696742670885767960632869623477202207929607805590015529735747363330969691838529661794402847620873307281406791509385409719940867626438278028548205260589532264179147343211532900318010360622616459753551333044354164690295816202731439708118771790204752019156151277486601136311335139255902908704838670128884111378891369730187067756205850578926543686989629993787642010244910667595764575640530149108187008403710127703545561021390211555608687383130278378245542380505424095719557163506743124537672063999560343042107000732716141796485808184513302246182199229949534736194626113929488627629904262004259591081651509642433644450909984171137147781448865184878989304046518499756982746507698036649637408523576622545198231954241924900020972747779451293542743498769544751233324403784639015892514541084344884047422754663929787671266888379652618367733232084104115079956231566747392439649455241286943150195657509178184866949271630270569044301015129491361830761960452057509602705716035277583133924093896623962620059154422935349393954994892240232403183924962670413005450403395467869939375346277112462343386263901213959461798640395850481777026636444105790167937100880332999861996235906439434968180706969423305738876547999482178960042116078023364483835475479032157023057290257607507002443166991761992754300404259863036754318393129028117851495331173539512320697675011750717835482214026309679235754135718328057568013011721932333840984920515182371480059923292923977269777267971019007063996193467227031000402534912302886285404164980674215313685891052782714525155391317762228268767100463485322599096719271849848608555822375005819192322956824750955880285716190986040348166414913098161832797462753492029451329694460207843930112636205942313526722383063756926545445063233229543321355889794887124874120334978602890759800941547422259984253712516627951028896928572910367308868410850102500346233830929371577847174030439210445407075531024800250903676875602778673506622595392346555743668668531016576205456062734946955947973117255114353430162931234179147416096060293994128820223110837061722731042058705534984110871451778634489620581071539719877489434958393877441216749224024957713463531862458295626336704539868576433977736405520026071040217795795911623172469486953505634358531734459562317326564330737843931998719091669839428808983262708298675745423814980419130110500795035279191833993642514604093991111811876758287482121048094903933417172672450561842953996759016364406972995172449476177031717707069136300331965497515553089101024864981893756806677691322097679188109662822795054377828472046179734573151990021190184391359434561955194353701998516435638621619031919485751122854760525180468106814765369892267116896783540605071510612233256534199421774650926423563219593093125901751708444924160124116075958826521273795658290474928447445249040104417837856696171049444980334507392921318208314433319035600111451035957761488323088719745936148436646539560817944298428309112806848425463955604669364342348095678340608396843368330661127188705432072700399088375858569291064999961625587251539721940623802003619418345329175088942776348145245328730652674462027554421509508536288910046371226255285946183780269784174753007912746470054874886783189468463342437321877690016482405343431537516111445247881208545774899694270299820917715530102003903580622429413892400131130230661683281934959689728455028333380433332877940394141114531993754948606661274382873386523361837389392625439099877819371126132689927285902717548653363584456020108196392808721528536006977008836630599484063992566058299409892023546420375630647959697315762097940384082741722458577109393049427691607000123833306296545045966944911747472027183521049409883580729683411743845864811431936461958297360155686852410840761868336381980763060545994558021235379316201765483741965784706423237984248487684870652174473117076612715972000873007523745731118421508475809969592027254901659086570479539083969672441845281236176961176427004941825908342198302056711652650595627411341938414942209625336174903957170189161733276223865635768180296338644741743865756674793454325753025052072086807349735171617917645073968450197310259096595638021055452175056028369642775189137736743251153633879575801895704542385697073249449049353040968038393038675976053587525857641026555076035744255517697918237064914990460359942830575346701287132591645375999942884852851029854171760240454650887668519898155165622298228788326941164066931343929517927775889037992972196873502393482650501150285086951680795965877617498680126531498854938419725254043581529574277887348028304138217740500028222675824437557868775612449100093371335329823599549634311685565767867118024442328972702420299224648917010084451010291937140077475989056260540386501623807068529903335766950450819056256588647123586677330335210352232930583907319035953681843998616331281028401939592366469624984257754478606789853954297936752948914762723224847334196874460117705741482338771763368129898589858774343812064076967508899466348860752909365262020996047063709519205719854690997519667277703542609698975886901247814809073712128130121289213235846954600493942857111193727473545938327127813959835432195658946323685699791116031160246692500211884927347698078585876761445202464089380706099744929251970012715651991563931348543652567265218130884856385323185120906733839163734913061248578420363638107202622276058222739621236193847113920412435068868641004260033555974118922356754099811297912538544369879496811926140852996522130202628344938373637707912641070645420452279933563702921076270789231815459324446762850184410002419957643244825107876824713132169487747973384893116500183457681441815794912276475908133833502797710616430708145891437824190203769907975297510030957233417599924283891503097481936055953211804852627767859356287004463061598530144885415272290137647752830669042896958377083475089901986767780832051830735560757261247558138093292155397564022848946599015039870508564195349604463732091585720231627110034822958209025052527553279095712739784140106400714905132563843614932264255912803909911565927551725288854366854908657613815458937781649376272828232151752529350418796640147397864666038065924987852763052984188870418660679347442496938018554349885115843762262878178612155440151253312009539117833008249429927363126338227361286281282919634369994740376474202938821916221122672936600241586224889234986918157912333628463878245470703946059963690159639779202388837253908745553587011826943890646637233414006541285484503175617328727979956008662614329200348982907256087808258175226270610867755858778345395313577740278836122073428695010913938685923348685928387232187948331570524539505170136663191953848473210756240954201137645453689096396216990207168408867529818438329174806468786840439554905579908329273250272262896060784666790856847987342286434618390127511947364034558390496687027708531423436102193674416628416337199850472168235516004511812355366928859759563455831715164300517416076421544942679322387113047785008623659818888273198865215074643734404784116936635627096825150859187370721920383428631343437887445399648626059664378015388976098029411431921679127049164800307545422304096150704697576260537197130024263506329187757645980641075725857923544478749344811787317436467984942204245615432634128616618495917897084477883885012121441918225370941711493987318808142479190833283900293589664623226204566613610857999298728899199008438305099020012930046536003642888808875896333080821369147844853561049646104924292588994613172318440980728928829976478572593537130234156306755580229507116892985935555845415320422138952813075904708980672404346953605198379436805183552707906498558950619848493629987924723084202054327704300991935530568956386954471834007210176084941843780974945396838384883760872200797721901805530698132357974274963433860832872098323411648649043542193152762148930975831028937044049270769774530976050578878103055537812474581411146215844922458172314156060424060161310567486891192986641756237055978803024414282780754562566349110673492919129884402836160963911859193104651146528232658502788011323187304990705383005748669316005476805577068572010425233603811280874278389596728759309261533418978352120399177412692768651624622733800170783001094520626655434361664394404685871683488791229061620573009952788773965169934304203037509610298160898090537839726242751990062658599512569160457164073002906818637379486918076591872760598823569584919678148759941238529220804446788204624577922565415158386052644965089944747916528502582610696381172648935742842241351973258166158470366698517881971500805795605643555653265592081951786681902520004474525464143698736170127032622163547025078438769996496576800001759565555346403992724459611177737488649596751954910673999719390456002881043340287512963020082291531052797442716966734841897262764235054039402743666965243780290090914564211398964661431836824259312740851801526043124821428011516200999364435195327573101333863388918283230990265324565357501091642320378326624596754049479971279929376621188059933554700235509255516505166762256077646032194343374323642043663348728849787635484627588722509355112228650974548711121447638563415172339159334241934569823573714486236680669796590150214236966464331736948472903668359547356675313106121594784843299765972617376131122116670114295719382035195221630151050039961520219258053096379428081519467378729721716054013166250854598652332752067990709306853330239663335497382263897141831535482230683534636321857904405646322905167899181109540723033094197360268645073963596488539136728033464513887297479547666493315978737408854037025230234980426104018367463823264720110060138900351349460841085471518808843991160854767565079222647787996743017705367300574425086489161601265307943984953826237001805386968883945877149366015743871031492291073120493257970212879486737920315712678903794101702741033835199910330554251501408707093419224325679305872631918544237111434235781593178076107429557976026454447737590887162329418990014543738901000413811815922090045597425919580156713120107943754753231248974558005695700167220709189439880852693314531139207048409067044863513510225904559261891272098341864951804225477492152247030851816538926570288799535953821081190086246895205570054393726536591768959411591326996021613462119898865212740550904580541010227908767959779371926449646287119167584019368422032412462015928644332347795287656927206293919733463947382432010792379492358278828542937602925442086675843577063436568899133200430068060448016139350656723379681800089676742234891060558617954509842166224726567872461414226561728474230520325722086684351287706107064104582285341030040513593058597539169987995184104346517252858542541368478627517587758235402044483457907065802451862084875911470883913559440471228492180384759637837579555576443456489918549290877177540485579108904316630601329371857650971367803733150063672662015081886711549605577224359690318714651889240894543448219296358064968305390073270958296694267198530588363011472254349317888580418173414908545101016285771577797521311132790380513906014995899761096185402928610752748260893750889517491938571563105761209096931186763674492372677040493359945943252551337366430141920737367396997014224707569178457748106582622019092773159813149477361470992323601631932556805797121236341262424701184145757557331973043732876598677819292006697531929148042322573567433426819864205923275881774573313812464598220531382623552103097024211592010286775229100039791998478155449735740757061132589165785329849872260208448037887843454519703122741706835106078225828535431656012892544340971193837084638137870667492094075970346820541494854411779627392542734377275791133269983635126014537808767960912904175084195387253182137603624330706177319300443452587057497107722789806893564645336068536198302441449494169627860651990302232027468829495709553720662600815143043172924103832719991810842627985823714644321355217051729073178203482815265301555036774241975815040879188735722339933650567102310890099706869791821839902412234071338794718382528294827497797584185767114853849716942130566721365608223116860750551033457093675606587168911852974566509020857264911657782036702061018564879966396201256415380242705683923755834417113348072118556271728408120959368366977927679472467514734083570492327658851810374542089424176991400532494797136135631972413644687097048182552319516773117166924546073827620815204557957349772704750665708808666462341090935413755304979269207141470422690887836402366949696353311399102024200529082693549877470356052516602973934411127234823845635322464604323462677570852369026616931852005461310294325522470196498713461565676682440243219064606383207351507817435950021845664224051105985898460286223240431059795449404247648058739740074850177858799443486514330614670828551367558797281139835832151182696708989782465467737578285627183932756073015032339499482355297447470600122247155064953540810539852483155404317554097898490552535719901007702709320207096846711308365220537822194749966694031846577708841354678250958961111052065592479166584615953212786329190262116065967139905447248968766735041492285536095447084369503099492760465002810017116210963291924668388133364509712902100413800307056176745163763775863489764254726340687167065444603604172667712963068605754082648514179073377568989831253484847411112728321401895028346137777077618378327543468420561569520642648397999839371625398515993289789874170818080953534693395222757238330943857481794243453808398781334253588835527203461512028451532223357389436836837176265962487662605971509410097318023245120341424549530809471711916230346018865719580087426350552431042811925174894679799964540551564843612993697996191913253263211463287746890269229426164807779278470563641811142216260072944113972743555352177369267112226408245179822523875915670325420409348284388432332460661964267070684593685777619711237640913775041148291153266620587091098906902625268833201730149809826979057526059589489463414302063331465696239414987830529158730582047448369930050597218337088920775945242653375947872488010794560616703304853539347007283378321600671287884750409883924981342545558338144798792200850547217830002951511996428105438094651915584318731470071722275826950024627931255555136042396774504024684337398635491379968090426639942617665674525752902011000274840918974079480718983439170330875680371432241770963351714304073481597358125171847791056786544057391743935546252786508763407494573324161629183052248239811749001767716153499604791355544889052269874077572791437439565983800804619082953578457834026006556937624210074339482047492099478177577612078995656199173849941903856635598042306693449216527190359892531575283969930821631928590199979422537237874027292052230518798608376671463530807005275896372301664933512034710752379698741548840769411574980188777069270583766622403979966453967567924644972611347714581505361437221275943213175511342492817318577326340000426609862017673911743840729595985252277385275827974392079550815193957985699314248707547918310221374397763625141519968295918690492005476770607004124607249351852972103862539829177960376319830257420516445043776141208591241476329179668852284507049630054502119669694257656387772774702896180432906130606725989023788048656474135305273485055424400860961039642348307499076629901699702108689499640108147529917651537938026218944944800356463846190459624361442189565866334968386034460194363867384140306051988218768509323122300704088806734228527153100259737331360681514508615817829271172118909575400190020454011790935650770915002006247813712262790930246187337885831309163571799488471264785150327598319838166162115601154579347099681682429156270608818541816551599585739839678964216941969850269046878025082984465132468726835103774810012311981181710331316877776724540622463249611871969048683760458726962987346686770895221055960468546254644593086164300116428279749331658907311043932578843940188033164091925932918216009320793313437150983425008704698532091308855121143780241174562126976574798074325139034478779513208680395448263732767698695938122000563011158252247898336055700019364882954763519898999732759176843473693690945552004619717230904913530598010376613689341704737541545464669295606079157252480493728417377133463782749515425527155153379886201513972148161303713141603858709178088642440144407523495567830846126365005289753246246409434502218964963010365637052357990561111728357400553742734199768147085170897125281085814968657841540867971295895110823060396846571925689822340563377072057227495167074177862499561851511282375467111805374900998835492360238338479617741776832273696609222297354074637544094369160271278527676858220120677871059123701037772085615721662567412086979561147211412430828083593566620696394052961894742648053964101364856532121279940087311275244382128546462716435622926187965097574251773596242300466195450076801299943871053428024986869475100193358885351844535220548372210694220367871581499002804220646672578620691288735259539527083817052686292899765608035441301314588413817679591702008317303674432672094730973839739447623887040559725916211011150826580362228578495411755239643438240819315801675910314908247780388404113591231938433368608465449828468166288757760321852839735675660695587030518380955712864507464673794599886376364827617983068263578759018068490505732362718202014681864741609295193598400986942752337151797756047540382921932873596922679933177411862423563383623599712373313303449150562944493232800975968574975777923411000707666317342152209158356121135851868676875626912259102571968893853221443319494910941585342706418419267291685154491908022416768684044807232167090833852212926733673286481949649778756433119749863598885329053264065063031969921386008468320755356090512049823504046682592609614065099275106656780024317091209586226861141250593149532527115743761388334060747044076717634967982690543233291285153485409058879814966581548121049179897509810763683012641011494944879025617645018587612068055604855348386547249881925200676823356191866087201970076727603791266709794936404115914082392554756044882738181419840309740035499614571445150080193364296302815610483739227236115486605631522400866656849480750177226241164042587264929827397604033418260114516829414869259981395477393843729150367652121457463601651486034329809872998990704813853195345757160443506926385927024270349777524803343477650612746622589192794835817216776667781030125339565738124184295335767622531126712234463744630681703037738365824414108664762168926552176933234653482720064566570928707572655231287095963870400065737695706226391227671049250112498085031485990557590049853174827273945764491495619633902558981172465065973239472101955621533851847670835541811535869884872926236303241839091529033429676442245597479920578000715606876112053450507410994581192381521866431562287588897001033523236835268907871446859616386814528796905779304582154410694522107709772165178808724665511972275550194620171484330925999541179218262004409047528442423954081073406856985782094517961533331845405925389419486208446436149613185376923604550366953475474646830330919117833526495929595594237501775827703217786496432013755002018969799413958345232478293734494390418850642206905137868704311596915525608860121095987483698560504517692592709649572923665245973260619424729430576970338103912843263080724287072398853410347916577097221004784519531046360700226156222854552785839977762653229342714164754424187809655208309879742955194368915562821083634305513254538831069661655546223616042071144221274990423606337710153402733032704014057785122249250733459150296439540175684506249706712727283959341087608881389185129417718632376553410359400971524799798114312342440405695169405871513349799341986785503174882723026415101191562877085250489483077563088502228078305003542815355847022928183239346720782830394305085935945998505411042946589432758128872576951184317902759675111741532668894720977328582764113548657973469752578862199992134424374929856742370747132122816149298360316477364420637818652257819381440861431653602850065426458208101325668662196310502502476008892133133973066828477209220698558492976492268130815709403774181146633594458510709315421952279651178708008175138979040078147715451289971750268215150872764941706449943845717370424377722459519837422715393244562832382568319892134001898107589795966792602370103089081845651189527510515730002993469813847894846819090304567116593855091747469872531078190029956255150177933788180637029038635613242375537622231400869507269681342749356360780952370415568905071936852041142982981223141873984915068140751225747799030296225098236185239227421052577603127609620235231787149733613902814532460094492126957512801429352058251626390085257199101968654150506745907801674381389293831539313172279050807360815500626954099998173404840920497434559030956873822746843884958425910597129144586534526571720671947248762432777361298773087887995281018640960940094566324185219933851204905748556880935290280007692677098532467463431453657532024905557717688625055737232834509295542544429739966488965139265268403512744150903179281576448094996513241556570306178368614326588779721999273884332279007716060029129378974311566987184227947935231603750408047500294958705732576816255668410025131910707944298829368202633758770972791696318982356776839764584720101261592844120935961854577853485563566702425032745403296936379700390466941402683146537623643595451900650306649770666072817146272325680000066597860676867910800717434306050691663799880893408953872368750002482924714263941997382529238325875341213712427832112680519960147567531203661622426922250587773131929360963450509016170390013375523315125613960111008639655071543125631122262723904460569264310427637286304177164713018068656471959008816607355808820301743541641090618090696561569320068037829849175706805688271733953623185583808537666181716418668566180080110318447326273328542198008649178841186874474717633155073291274273874878456636446341856749683942788237855869082761482483963975389276678192924988639506561092513168587566184598580626690579035225025923264922431754691071437800558651062959332452761092864126461795236910909252915751138675057377764718442360854107451729076758222739600432567046186022063670771853860634410045211713319533150197131575350681875893491956301205861918563855834258889480852799999101319709484359180427222764886957749167357564724734459136568972733843036725924771747203411248355671588479830710884371714667719623395893164649175421185674662158216872574263855230484771440517525509425965996894500440805296341189303157408344235189519568784008258044031782677014721228930108986281810438143220104349905133116627980027835557494604451615871647935390958666749825188500826813891107872748986127634982731964672058692129909581657382395313949784589255932666774668426490359339738845050685074188913165288307805839603875894682885666109752965529607159453208025034648876146680102487950615228073232397357559145445415332955129329478387940627558176691429920609240857726914134438426983627757716586055653044316533935394949432552342979721181964724307263280906422046452061568793916007575455350861419521811043334685733149028202532995381400472490820146720882095513172727863506036356507958811407744455872336256293826088186716834220314690860431746032546042828715522910180261346749376589396383762577838042365330931496852882571517478532521665285696069635247837744700501958438176497134738194122909236680115226157072379490204276432308847961058429592812511452604825044352591220152213246578213884455342490621620654037674747559128495288407213471866951753801414574567082386003656472097301826170556130474289372279985855570563507237916300915674226520448772561121587958572697027679768603272332925573268924989531469162700469779809988890760035560979328758604309294307425808603786886853357940911778682806820684508266029445292261870515460623040958079626980068371119526795499582704450582643965982818663426711784895934487282136544696186580115822246470643735479021236997665051229325858429585439431149727126459031406875253776780617175841320252025293614781861580067127735112223593526463965800795696769611616135825676881666040632151026062038619609052352289016176601887124943404942615973467920762952858197327421631804789690162781443715383554033423453636776803068750904866640438146624761076504130938717779970319301227364977931957497892629670499448952789797432652764234166165678513311540540367254816845047756086293000104759428202851457210779895475376731442184226242490693233667019090575406774693262997128019409283833104064563859430796677511215123855810000761238409322877528273353743225890080283578831404224863042818123351105543196920278912024230244964534969920836340098172123296816958362849699700567996350721235886589206588635968449025616815693147345352246830173606880839238761870834500901331013156895761210362846665588647346282212106939369827423862735860778229527239730402831575996699820049513165056976610886368465646830590767200722922022231829424279436517705492053950683055456537846417828629446110568369563438613200226499958228469074678777608061554637428320838788798718792304493652609966934964998033933341852510361654289090289741981498805985453835760009661094789429594643855279723109258806230326492668122355910905125683627956146137189755231894303334923787220934348985906971681403106140688951843650181262209045867924796849869149695703375724946602012596243840558506141134804408421893658963870551610070687009946321030276910117751714920802216390061067018733117190654274037453897637235692090880854515922848992229621343655067612395279694993514288470753964394037074484807633023128105208219643437567302657346440239607872040685394661692950156644003261158759823618302072718545310521746464199660208577305229569827848074868303190030341973928926515524418486583583197204660925619721264485965078564779117592175398399524502280913294786045254501675831013084440419863571431843529823674210849661247172202691550101438104214469042825006331129015823687816002243166216112484344671240746589805007580124642980920079637186821287648114861467861340927942960426387178560412042915407894392512637087568079902461309767064389828606182104521650502500914011109565950403521129900957767244254176993601947625748557726745489412939299941106575475805874105763391004520634770720123877967963798172384467343832823157345961266160679417269921647641484707656502858278575821502583672460402767777773104281658106612267327227878120492720741200996394967921173501936271580036849658449953705899918121070307885822990454787091458112771063969496831764095814857145239305801138557060497880131327460871549809444944384900324221863821813653814178223497276612328140948955381182946962917009020554411120169646270051470635999892706034086857375836743378165177905161065965739371325919845367961587217113826068811129404846114007142948901175422235016767767528041902288287522336362867987399258911790934534752894073349810269162702700546912060735924029858702925155916136388582343376914001367462259938772784773066808927566192421793907278049220521440537301950868712701147577919556928081698912340610376711936887507805857624600041544437469466547934581434311891429572770946647301344989609014307830393500310895781557926650536631050695954529608218996792279205754878054109058845430684123923809679441783374575902307783942255803924491536584052080726147872528578005189492101268588126101154092417306280009069351431442061626981396883965816867524730614672523973940072239593957322618430697970424371235573401648543974003530568935933365995254793873339282382114837384528131654584402296175328176452473825052578607707698606974181291398056319290958889886799877788693917949702879225559736255508399623695551060491644465155971842887826308670471185057330806949630454556826482629237573991670470002033157366659987464919984529876424081894567155950075391933540163672013728598565770412178912823066561914774165300512815270751205894514443331381201066365477377229957852492814391101501372421214018283581147640025801032312416637986866477337199949235280365618179109310751378478917208046045693493605734535572581920771221984101450666585185426060205320260097871652294717230953404469454290872456817598414030052944071961410796525537241822959676599815396150742492133490213795150162859114543196774690840546554381468383850177462055885699306431128628324989261187661828491904008265504204638934531213777452717958793578025015639445206472556108472373275926161500418004235690628762062989425760440530574193618207229414809811863437445725163372653035981926870622542730656977680947371622366250600468423738002516781516064414760352317003415131035546441670931224972444260650436145923723810811420446554835889922568803334965977576019664082699555642271584949197353612992794035555904319045748537287819665425073617818299081727917740774953394359389243620619251196258002079095787104080095381706498738651895614932977590947836483798776114478367574364465642075097150499644343715206718862281475320886194327980213592505639118285928377902390830839850238496580208210529197698103545971680887802740729555741490000129579739759408383914542139792990873276345870498014297363338091515510834648459595434449720753890072656452817765562623390338159342075253702979035204660309373112284832569712422811731018648064951104732659732685563326586859352698301585483910589703333517562472761243168551883323544146642915805375723550452148616640950781793344506142943602253236772496960811241837881446273626350818544905692545205495529287529391106572720020253430432335647618799310913149278768217288362488859547115123535205796553082845665354802763567125815810021692589253456459531394786126171265624072792201698503826499884746801391385060038690774813142194514267649918016107049779677889596158530541539810706770231061984880269615665540811781299850406880613527399328100082671984660366935110740913024742611935718338761349921937199477965974255769866249454250296917401318900097091968598171505636277046730745982781135792708076311467536591934799825337280728439777707541569719009257232771474401871061103879689329690171196802762969490494262613979950946623262501442075435287071467594045244100330648872299717759784231036668647249197437593727034896876796871676549031705320061457418391533423746462368482423184020741183148355407849567724652143678311498102842599163707441137193275691343113190918242221041030603602145143452639137703882926874532647554601870147420623703951921514494702437372214060810412883917066409809393347543810727745695513913783039909154739436346700752974774687445294828890704303481421252240653111409461058170766196548941068444667580166744746784852514724339818203617826381103699151875288591822254290068001156302707988426606648669778609220120230420399510068961423008819382338152153922366240161297109695635409477439814866292573366922547017945053171621864952077751087694428226073640514477383605847603450631446050943160732991764479909482540663573583071055009343889607188366350785583284231942465630016626161588150583104876014414375945332347757223654155969831008566302696321312344436994934243368239589077381093794931119271166697568212773968369006635948396387781297854695990453836869794920548870035884571199372826115384190960873491354860078478312705057796806164808733839010732144438941918387021327622427965106799822736088072128766220760137725646941656155675228336704897805944651485033260968719839666532415164595859180054740379007638132645724179254796895210538978628440563075164317431825548226109994499448498392714857383497809615160292480508390793528721335251940959818886518536872435174200424947888255821785161210816864087422734600077910836802572440716192813224289592908291490654664183926306692108446359406204709571250184678986089889272299158264946265085898934490373302497442154750931101894050447563783670585677724123873754143667121321821346159076836810265875688353054921402413100904231324870203102758673515758732918102248737698209883821147521241613757313924898502241620514257210729838882340668537707555059823734013452326715374059448852689279751440773094288605378280049120083092227658396486385172766098102270454298276367695799410780462614249557127389834060022640495784536272017492967558551371928930106364110385997724679164558174306743017762866048059397330547687246758783839289550996593875665941649322107077565576221755905745720234802292964638060815502868843186012939781823229893092348775367648125284091249994504102641053942855096375387431594624493252568080239779478330545109008709732733889483967901638640133110031155784445479520919434614221506194580095939810271234115230408332276320809797680717425739203276575021471531652153933878420123860049885536439642164953781776151978838452941080016448275553124308896518285083050932556096286146642441891842912887308500750312740078322436824374914157825467514892897295985901015254801059476185319293765984790712760583900374233548432020084597205826334821065438570996522310130639570447126873425848300544999040415755198256694725370968856983146067605781328506787001652705535920825351663639256254071383694684050734138134079941682558239938415031542323824908562061868233446490511289713485152985466802499230728699728694610237975797003944950533600793522239195871974059832901222217995195641222256199832170856356438585121118944810999971766902176864241905504320963650999608630614683808209356168896202713365979521982108211781514734217261168651228548348632373627368372907804486332582516969297142030134087875013521458330274569641695682790730087584899773020733395610343935488944458427145356604554906534552206219903581947065836046316971438457448574504136005934725851579448995771909110077676606116710459979581548479951490479334268397295692737484882430065557878714955380586757073400839210073786682921002879712964542273181061816934070025466114508209375083409421954375789887570145739699069494961972742726916575060261084078523232997109852204736888331990325250753791899921326882415946825736963609006980000392636608538428685115680528174576878428452010316922423824822630527959931133848856820686747418249762374046271016390803503407124337636104302910858887669262277145754891362735725054499994901585480025737840178087143429913009847796911865595906943185173160175514194684790920840966315321474361516956455885303169450698993786832789466416226581739487556645953936126786292118282488976471148578859804199902758789825952994225410638742960841850362444680937003274941011665238956205141243257295800374873701911811010328267317237658151093049375314376612979196069552507819308819445494449807727932774643869327245514238519313263041234212964966708510316215425261441794506933392395661329887313044739974195872238887137150762698536491171381221319315447698526786987774580907977178539881075975585159863405622852953284105723723937789682908873072180615913198682524123125839057167836774978406400350467381786810996138146092257422053012748862464870196502220587306957369620119436326029431547702290321069934357174598380655993776103708745952738902123546368703323908247874266964093375158206580196861897358542054327761459761956342648814236625306463426737923788863614649965645689687024218228719453256053562920174206705286654869970951828022543805573925797824557996467168884379991683023159131405792084441176164427089045135224534722715654872489987175645761613471065745063933093029062454405465578599238834163055260403571086485564165296554328989465851998080886618315034591601567551046794119006894033644644731018170722675911642322118639097073250281515827093244016807681114874022578974505520676457839149519932520272837282407457639082076108483219723227060360186032236248212660989361455241774923657458703190393908258238087576183290110858571288269581238835294910160403680114743540859241803390327869598920759143013967647972891608562230009300449504330618215857761938573432687226218930601548761686561755522668564608438291237414875360152143999731475323484518316968464891073556453097111611391482598565975652198340333688188916180037392699916383223228461405663973511847951291166761445170935974429694209809596476849498222927556034456318772742990668271492740721249662163806507452905766243857365455636507113833007333566772773891762128666468495493139908226521246441548265440858502813456069830697067066059566909859806583045103772235972768319445761669444509192091917321064861410662217938906973095361305459457514119269825738892516252050542413820904320770497853946333514153000836447651180696829250841577247539354790556367961065883482976003254921873279741613084105500236349396386333728794823901396161714234398453871275150963208757272883287448345332459363709378409525058322841701123865857315582856976873786893398327710590118666389218733542100613199511021770608490487314873822051692286306488030771798775846540591322789545414308519345571777119756835156624557010409733351914233394813036665922471593103596451626305296757458640742883632935098253330960176441137482236269085981969446501374371618192409406560369058267730511637174842070363755738195303861391979088217855090685342532463982278359000641295623746590231903677378458088766458727814247329069778887819438017475275377739671840652785847395903468271876185070459245731237449830676087131463155247539419342372375170240567082834404774000653465671074021707151620804443569788503015846515277383004596951878126395725654422721344018819344962076275401430523926638150871253314992068247453265267374996136518330495669320814667433286096885712778209020611812388370630571190002303653384969611886691652820399841339206360576098472328357508106485543886770996444048640968147825203536404835842827090507739874417818779368271198239333671965842718624715703054451920006804016059369738733666731568602352523564275749811067591151567862348022171897890164212841061629926358965538983961945088790839086653697707665794625978195958728444363261513721845577499412582947181156051294718589180086277029079844853895921924964328746258981680702767400788224880490922834179357789001600759324124379610327790282986117335933871058742393208012892298321976454454591340993038598092117590702661288059736097272722534238632313002043746348946816581831748099007248010981337607857350059583777697152251062754089653392644197302628726175550453236366644751541346699305217566948503713859007595626129811991034350359365998598223032154699225019813685369572328807589109733351478250675582842505267570961276799684778282606688594080804420221173996757693087701829587654542915166127897972416066744284602222007075763476209128134716893604712321845553436022268801355963937790309477033339069317381110879740900106991511700308410209747560044989682942607700174137718242594588733845639382244950318336648167438944750285836980302408616414680468098231138928096590341668025879299596580205487967965572988109842755883444866955038151521612406873170764573428132513802864659333299453471113746878801246684266196668618505504979777485024725115448869950366195781616653998765174854091677228485812074175006874247259484385311798272437211608266755185237194410421460188792165580318562475909091027488391030466744474756950142743323460700169362119352165236223344757836305489181015052321552606455514886035657036629491617610385932903030600781586883653044916804141310918989565293928196557784265294261310973317103440137185587657165845768324424713662281622012731850437341629248412649401199135386297134689220763235724060963927061611093281997803343176901202029172690992758036760232868523569594203198571890989344501090899347462570137322007250988573907281840487230100164042105838550348837856680492164289178113538828075297464274663474725333990705325518283473713154849544903741744228705985218962443372716400875567888503605239814541670883383306223811490154186503605831843471493656326279673714447758910291793631195258145104752059928129248546430740495902217179680339354355518145522418587620542814877600506954727514108447007371183230227605622976008695721127575129584913154364414126019863668082921048520664311891247959525694813921966636626715815663507616270962726290931073037358291200716514688938061424590778531366788082992661886058306589880802307047907815534856429512196166384293360647478734939024756288386654115890407642318062248718809667650373905320294280362225867815325282307696828366262551779795533617334834806146857825896796188153356006081101818124075596786842706775640979698946004849531387189784438308473732846205905423937672122066629746001002228607858332572058103737634291709975110342363381494499118425474274874832723771197031125333542693128284783852424817005849472669827142526866410827238844083294899245267815863768166982669155779716285846128051949080897780906266694947848897545928615724072581317376622682043286224061470349368144260345857116767251417075891734110887498032764958694754889774328828492917846297075485221710255034357255846929248403478287793560825036255747079774368466304617482068954589077245481357656850095771660953525158339876483773433849197102340539592808259794641262954823367144288851881856865364777560099731237184772425563297388241488780309925845387112094746497345718421971303026462236087965035082760104858055325812484258588505153093950886874796537258955666182050944793004360330316458410952708498064210856369044675264940483639906889279872230880011545937835048733824209774628832932666403233150666182469744207016663277190413215519895567318497854910163117960838321705422055230883634008178048036548938367612249939276215355439138830088594658021311889031371159120677227717312206799597627791902908217152605271449783225049916562470356432234807867054709674329398535775631642619368370125941556165413111414389329114752636532136618248653694224028905026716231654403993208043000568396612625445412729778818066105629471663887466943490188372551524483843947540135982100221843902903651655217986086887012529353764886409161390695020130752951303233046354641177103156498289451967656324154481309023699744170223991759893465565453235335989642736836357172259326209013889967380324139151278017143477449654035434421443300723919797736976400419552069760802612754910613602661524658651889665481266165667805416058508160300519386124353229690474664407672361685601652894736857224779503018802704855756639032440649532095607948341801887393900553151785437267195761325681337753531129372754179340886123435761069757170273253989117863101024521511021372435658534155166153576948507060252045129885654685593862837163497816904265750290174388233403055008894094120201072130261581204044314295284980997896095986502577867788470941878530003598901882800356421384545930971566416628884645646477127537164466256521872273997669014898421545501322610205249499139228220191856307809503158340417142838242936834082261465526021338655105722340091605145934521789811623468329802452706650496356863509501971926303803119683555525691817444377460136029307966844419306706872610237568923660028790891157119775316197083541737286893644185042930407191683362498555645176019384275316686014752642086165920438275926675835971978435506699397998070354084497497064058942478120577941792833606997236986296810921810690859965931672688477179694849423387305759444560108528956840165047920586649060323668349120382309708089529009473580492344278464446255509310984786577021874847458086160928811148964704195260510745446704496593549300853944163611845533088650771546940745636531402888365725899052032818792089250992786786803351442073178894157480546613666485480464034006945714701519634423748997325514427951915478797064453982143928454558134160294338321140705995511756294388251438631223421772941734396761150353047920124723628065773036880069878789429266350331325287592257676478449991905002409005541141019679636730637151563175265393891673191033123112209618743175561575698505740639687992998455675570298715471053587319564477495828859988842784716645545963701776982761072290489048484168869391768826356023343804500203387689743734927260688879392505105558960936730619420000837957983746901010539145002515323911220480034254735575871081905545438027055531590560992927371426402193178065891117287590777969494850278767024564955213979190524274014598392245644585259235536660020567661876238347356922306210503218424957099689423505284143989893774442400673835654827390327969173531537221018334414133432778564347474407506699215809032436605482526597539470502150674565537690200939234271449494061683611009399400629715795989860163980574801445517752307590681077299037692759244599884823205504014833631241085941699931721061244931002890002329598552436673217592860492055655852854351708834867543515532344703039010303197814898406531624098320163012141428384982970285039795916846045616285876277444386297241760721301916214783949993714493131387882130019457688308481159756005150888680642789250485954721264824398139444105347234487874905684813912283066678557054818610428235650207727383717215602455712519087552681814587696227129183273930777522217451268870851531326531336494487076703441899902454302539422177727389862069914357334462947794841461169570241366010252171100927305113398325334714477919995810610790401373992465974958574502285619569226940794937773699675852116970028294437222170668856437355523971226733599993278330826300455013529998020549866497492572482238595019699093191320775163366606674589226698621154352628621160642709253076160555632448639459378613497286588811769384190891500717517310544059449666769301166247739879121460012059680937021976216258120504232372026301256920937261032344649547636587355897222470911743862278575729275537462853319558939201622408741018295839636083388158252447484067677537350261065094126508308501047097966282589739156446067154303395532773437101090498535031774913150604559773160048394977214920955036742027971660731646617311111338014909631298526402783410229926168674965341725126449723172081420996709200601166318412933046207279287364404982141252504331264963200177524691673742795823553382447951921942924615650707134863863459531734167618623526987390912193106319734110987336361015860005117642059282280876794941118123892083272501733926657431052703873524328966493400940592956981634078683293007322820939419829092009360394589057581100051512553381704807180655606372331137572858761025810111723822887733762315959998258131827182129158510376998254796753503181879337552075805926059792032751533557684879182690053306994550848785395706962400593972209857288885748745169645917080189267075934440120538110748604465141437875146673882646383039385295974785439525544737697317185233014305970596890418485268780933474290929907235212402044923991724802310176705339603704546272765514210674824521196899213048321976179022886936337995457059634014684831126110999715368606353007740181098889789731317260820633212184758593134702153685435204680650973876876908491966759260815030325085432236799236805274416786561202437672311180447201879046504204790663010537575372166184214781304268924939313335252976350160156895700225641592422825004337209299634658105947878397059042146977523083644950873824750234302640982368420399401214114296493605937176957373821809223788768602736722348303946420791467058912140562341506810467272858006839178640352140826279774917823468782792012475970646094277625429259118745306506705498031926304992274235673593799014184319801035514847274805473795358926718872214691496889337668122081436756109083901549627177102481199594967054917294138358593313064152588797683035132574489385763692238587935188135941269879665090304613310454708719877998682476848044097438996664370554922023073007284215565347605994144613759536858430283951178376756274203417186367123712003095812973110365314820536940180780882847959490006816821665106937650191903329910974645974493353569404757217140533819607030974979043551068477030226329943686594657274414181721515221165093667135299284774229477138827289637511687604249082934569825877811926224509779101600626701171455758185749409540416671949566002664045809460011166991384720235503566774897889645768508425578070266373554630055971156271162831630047000601614108501920131939711360907632308147964812613364474756790822163245300508758311745820653312463174130294381145033946326387695677411028058638226516601158934933713414845507003450418925471418945572269592446840078372777541526583606532405007102300428616025123423231657479061143601789323918755748777488545168026436759709826311963027163790837554572039128401656001707904620732155290090147043611803283107650664787487699560268321782968782664454162388988347982914461713997360732473309896123910724542657234224533735808239717941830080019511231096975326696439205038248893208518465627189781160308846615412583004102005073755069165769782419397508475299702214563769076687344745946188343405927050284639826698079445628467545816183680116146866487396519797166648051107182725614807421046952668454912581996637344317497130167290797325863209421238770407127619386799639441426134326563143754652210724952998587842263319702737820868462153343198744428580755839762298613866534293781667466411503984036239536061887470096084418285880301677283718474943008478396173435544947543866235980079471891457429355378987134297660803850280891557796694931485879875527555826983413790862151585997167211162464145684591298772809395111740796633696292671333155367736579773923071434300318627307542764478451915803800769568192894299912725390677798638280326819269586980960411207035052219363657968417431495519353548356898477632188919198168708076326891470366915146461703978946607777744200279109156254423601107274871209851261890407988172841133669730832282773512570878765766781138515984640249176000970857942113574329530896940896340795737083119620567754518127873584162158381966984732473261251765004555550452190383816702922825642331779764454068486773806631598286531765647109262653636897528864358801757174513731386453660442958538271981274028617402845360735053053332119521236090807283341397727054033316194858328784300411260483379551616249458518921297592467952900123790633092751753010912009714590355186508809280211681759335696615465981272872563652896068681756429672354716432957637672697793935750586103167530934455744935429321655030609493180094435716674480635491292728286051688306577195814727332445961586846605103764801893505499987882883350396309277963402598294445194550248582177936435534370686666790458635294137839387616640961548101837526674887729968452463654374439620532861077441890340534812109436949845634202453624028129406690334673851727335790723364631628695837070228939226675380062575166735272674008675821797194012110297157645706244253578170069675334391313940772105115375242598365379254410476956231099755630326820258529264392316616272105982751891007407240920165390385756965696780128847976261368687734960180972154134127090061894037238259228780644474318324086010584759410846296148757482556734402095816542842161591383186069684645430613083352901070777508020607989324277831373994843637479466146068071081147711059707067184403083637960307935096216130731782131043392950190144953122212642851944492331098481058081323509531571166514340253823744407191904539150973416046563421558412370458801588044340531004352106335990772325394856632111971398765767813741184089280679969719389273902804116154881506812774322379185091685104274190853776517930513581505777729737762219700469447077728481753481327330952084204756601365354337526017746932080140851737047849885116206640815375407024932328172624718410759615045073284947159132366528135621372796887975120314224358754021250053961347698120543366163182904347226213471623327599645293540255515023031780973028892147313953392149386661918666213267352068984463693357021150946457721672311900197019695001076244161746666908136667115758217602967555521902710167163265689337642785181290091676730504385677860163243842230528044034660417032100612414471136851673448732327977030068309491056516670933152999610723269942390739169221187579938197979011268481583047977342306453539854058632445461924080963963772648211933874776868248093596806529104725126870779273136101100245340695679383619503334690986247354369755619375286276319499331251344967308092717466252945613159423164085465801666151446967576908210829108159807359399833870913293407952271581423795820226559741225233506278806995093130686890299900463943439744409134751985262044378869882160414880299823249907636750891912607935286050871745756687869266906218797468917436620760065419677296124518356984623649886686811229576207447675874610421953191038001687641953859931034285232694816912683866175001836246592589209014358998041775578508512801284866724591748591217598269067912829004729799430153684208137063951458430608538686364183815894080387035747907204033226686829942705804622521454088930128041020922438056334896502827598392296180845426652589623377842253465224611114996076320654289772392596781941612416883293485262647599015111240383704583893945060237200633690090814495929930698468446083986319077243866772535398237689168161111315586075887462441046706973216361438538698787981061288394732121214865294846451630344954386166059093106181540156852431222579994589688518924799583681961257334262723428099834934965725188800346168855252149468766597544851896429590176179672996515135460974487525827645341752145176894946526803964417951346959803517955316948542270372351220289863895182982431805278397079058544962561006125594861524732772941554735715486734268452756626231824597200119883767109664925940076219825278197905195141459618082733272153430064773537272568679488914549944381423511004748609270190694578457663842475090044223688929914717789362279060238886276665143173321331441547540658331513374027513219697140501960487454594721517349227050455478691950716228405291932793327715591117413116620590809768592169282651500146054593676787467409689807363063674022037421061537948347685798572011711604329226076479056513452388319123571638520324891166678409436182698395141181783370207451867936381085790301484129406536439814318415089295309644148230577444501188595501669606487866236955463268641376070568143976172600483575179553139599566839741021292732667406430983309214909786139340459013780456557758441403459592306882417957957701995408363757691839753702424897025034927109326803110188633047799965021914087871399257509872627411974131860250793763794697970320377683708974644555451532247503687409204009143844270336555912540424267103218809962081364654364992640044144627599724176949129963855707586231069179085120460528875593780443174747790195111240387360273185077236143706260112394804765565165736995681060679785888532735709944314230819084969614656248469546245624884569933834186675614942147061109015584726499898520359485240095020663881459648170631394998241442272130007591347820692116021777733249799971361447305578284242882171914277188530081312723058076514950592211685934082379742482118240303944503123615159689511317159880052737744678747630732126110741491675129986147191649608096816511533467090021436306786208290941694254571243761552932224029720640466922225176376079958122548141301957703592123975188817806634128103575689589932299320259142854705348220396530663470493985027171782870905189734177037450181531984408720297025271799776659876778959344344100890372217792215935228198037786285931415673151184173403951985376394983104322922821092309307661111327987213877864236136783462224277469640822754256552241770489259462542507585328454336355056233202799038844200569057441668322474285060966964349975664738413267813893621261868561528739685101425998086515022152687252640523385269423878555961314467244402461042302443805909163304456205658812691783301562408554124721833777731564211476980026491582945200744680048752116280199624273387767609238205111890791524688750682294115322311437853354355057737365000507545557815570276263117515160708964117507342366588181769611144956643021467907534365543266045734767501205779830612936897834070107489742485445188241028675515886642435371683685938552194469272096598485878354308931996785847100883628471459796566204080879014420730481004293213947252770385232085413418636262285284672740044355442421260298659817801467950302639817815580149456712725290116967610687942668666149223633999973043127255947137642344591620279506139349673285959332726636760133008113694904411375785620250456360167979176391588505137921289781833073988202568047850985356649960000476911575628188605325428824099399951324406005654487128940786548174840248163380101926774261305215023031013684793173019993984874273471690055723179836417397873904789420290166931743253948223605637087299779454345973116044331810974408851535280966480293428576409940713723456291919157840505285101446349847429059108656869906199736734360267183032138620917024472928561260088041964289055004569013037175032594979317368589387617115805394976619461644845376599639052895719961339667120675764002511479396018479375396298508779135851014600509434339106094804998766047387516463954339330996764468099230916881372655022162383823899448652859149258975406769105970106377450385889990212249334054253327144416505980335300982746959474603095986162826399773014422528719483175949151127566743651915332125550695441122882726143013736290089951581087741013842922575626745578417496428693153754513219766112159947499263348942588525153102729444180332699969776661724392228293798075369781702492081288346840404287023242060975682235303225315354876828454395606977863879612124012622332681572211843785403148882834349327641101129193944823879399031327798715708346228507908146482820766964903428031986899974200385791036987416826614150030231936258374328571173588384883261200736815360184482518578651151495963203840833118356830078397877196879446905520840653357534455261039483598618891841330862583168069168873163272224301442216129065019161299447020005731230914021180952061791728406070915547191045422581427358091697141303034441950165323427432260805110361200137445173295574325175181484374835296368017688498208772611816234671747994715457164631315639693993546587827468378285753908138052691628895623392823706460109123524971707115849080164304559232570852777309463137247680857550631594274546836516581169837297022989190242939239344087862871304212346582071190916502616534722701591396399775967110130269661484368764279601532095950286736710176183295610020693848247159853468771106081802757443449723325267366654729070643020837248236198720827476318510617728706290458792136276253752631913639619160290094708773868474310108228970079936350578466423584157570594570760846438003994849300640856204390959195944632999214884478265944821557425644814445516577107800848978651267479732306344327495774303619784158245612848852332621337574493572385441854174330709952947989665872342207670784318034800433237135374089299585777757188320598990800604124060333457425925832210635116839562700394037676273019688190035875819604388599747008720867897377612585767449494374251234376603387509211016215007321774474918519135885731295470866785494927620197906384440586433963652171503559153589938357119937824453327980344357855498372520271306765186322586975279798164015295083555665323254472138096471288476401016278984611245619133564761569861972137678350994416998599453744800555788600909590240398006568305296605638069558616389498505757259207252346574389332089773344343379293841250284967040862959251962133977277062354853694748682615821321668924990129764224744693171642484558844372344719322747194049057189547815572021638258666902141137960853926541397653141771109761592280625804536753687750678877235666478497786789871297528444780506710825764392305102457939097956531028358759465010337634833398856512254437747913754258581477160014378958363107440240320116896719833205225968545710193766581154666031936289114128205632163082479813612874732611557945477869223357907062207839051099244916425652114539533267960804408408750147769135222527812825056251070219889557657080737695002087352792321912108255256606133229675773636362887485029213718301642463752949151026144680888243091611428285235304566235603560765345882065330001903816208395593926265775209256779617034550677807625584126885195232639480831955573191414099665198050926897531213353925993868145234164647548400033337671507212977491092559875748399183757722837978224034348116157796741326230753793201326443846526855277392817644750700927637733984687751704263262674907098473587787728207060128976621035867314723545655949579647795845850447471902384959275234977359257846892407673629599327394639822488365606550759604907264791419045826864700722677688273398658560824173706027246597542515728367763220463773126839638752131508833239292054315829760023838503842891495334815246110064859635761567272864738888725155818373479334970881149362160989239033708953617984217401134645868737993762464184327936256176627603488788932158680120122796035413880561991715220261437959471174429502146375222571449663785442149994857432099601163327937622380941480651077379648588871560358464567429798672190156014020695742901687528063509140716214184875185782904608816652378475003131205523872804736031588333564986684612919679073172968636400188936669078166142215140350893926162440164043355652954782927248961927558758345430317869385681017317619703483734536363028303971476254230530974606536033992372196132849139010957153832300868653026621835682786024929250546125183494831822028402658295806897588783667733344227340662524796106646445132273105261065517622397235019815755901446647063879562156343213936870033133517259953438215636681548236434843063522441716968506474057262703121858162299595433694912375812512000073328936501853037121894709986784750441764004346336356769578580936422714118326684487340763857004705421119973263903310002107320719195037716116217860251526449738440956615579708687780497378786950895629991518927953473938545362888665050369101247422978289202980758164747096504243789583819785099507813548979404138507894920087734657760484292098693634362336909002701061938666830804104424763919941702856518591910043925078121047672780315316906655685230641908654694842548677857999763648678325079516041870676965244567173055940648814327142738151158409852227366423731672337808989171460349006118302462148404245547262957560068708295854386509365288284811671131749829771702236198969765097149123642867105655537075691638343040840620171646156009185383487756581101549519008512935768527762304634357833799487343922211388646399373502904656426261037180262018509582739526009802402351977434190987305025675183195890180273601443349815350004653112600480846002445617286922064798650525068460109424518927377476981107540772280430990202627260414217011967906872326020109664489453121723496840610993419553018862848112121640883512068326226390688694199296789070797887797975338093043830253926025805179870900314324610263224679364886570191624567646072140166206975026217866440695867891971913500739259944609572508395924830735757998795458515740834943098733091731627891637337444286120781198649809832373215097214836452915068594501215732629502147757550308433983107831464225851837371757335600455042639192660301774863130740929522049886774137417650047486739060785616995446436504959001293187239410200977933996021877952297901007382414762538826382291303880847386189735459482126110042014795975005128145366968116639656889304037044753638066169576218658958630122800615978794457705367275474647158884983721986116276923932019268457666435388566450203593366733569990377305812109168301377295422428452164245841845823007382493155827315599537886999265670481199243791196695814687936332945068087980161245995240811510011621925909823707177297247578417034546972034242596122858451004441415371800548447178123061326950230759292966965239809689905181746784906958052815300509505752465545031453235334171428221457379876052605673003171349581524203055459142338843368834666572878300573373085035427082079820845163433795488571115899663106711775292368400576209777898974597600677303996092167298081301131979217757297107520709420407864624445012752658454074535185530625435179949689038696794009157252448287953801705585181101926350698481438072022446977537858131655090196870974085365764477181751687476707184358360995224351569795630717856598989139058482436999758412329429648777270613247111733418060404843852964786435691974315244048231621614288566009893858881988551242735786997726109563781518024804559372003711926972230781867003601424962880788460138592499987825763863585066781522808388763023190835141883926579053984669934106229228067157798726525621353344536733353623392226510294686418348181412892450496472079618491730218162615210103099041140814620353119873328354976623145049430464397249579475876443565103341114453854867181298042063295400456136839895716971046564307674903560604783400214777295809195696630859333888526784209387313249256253405969302594355138017917826429079163319881914013466684403841872740663455866016542428311550220499309506557863384196636196069856887553400032480507720125004927992308244718839768896635118651803344520751280277974320411830249593035776121040648583942813782509029775420545491127948829280626904163057272670534110230873618572889687641725707460902349576834848550496721241661676875877096195062895687394017501246583788640929880563046791932146846230958948185950164795622676491460302474579142333601854215974725743183438584726416765312121459727493995447942019527724241689262680674302487186708121617913211209950658944404410340166271195078746941026896648146085745484245748826873627752715652616575741268919590107214503463252635734271757271274819709863154222101504855695230626006619098035131010456449346787051786889683454443593543816411509716844099059170983201961994272747913524782848152435840674019362509834213892376983580626509595158714370371073278879880424454293655890855441560147522040900961218730925341876401890286964969395884151757164905966509480178801621281764374441969222472462851448387051018341449439236985866581760905995681371194187047855456237113390803980430835272337361589947178747362947580520494261166978918871298308358574412779446435835445593584325461949781747833314296759639635053678588390969529524965360319440571889407716296121338013375008780022135214347431737909120891949956576186298977431291851235212383006298085469387068708557359673258510949553146261219232063339500316681052371330558375863660302122960472072064083531662854455338146540033422108956418038720215728257569100753438745184911130417562841519931828716532911625528085731593401493707821097848908638853659297772190641854406087487730011059182737375669233446999201290602862786153969905616617908950245376249306180081332357244614933022474888073168903788904737854874240984081059663340661618522055831478230698913485361580975291531194961148545084301961171173969012475600305948754480698385766334517079617343867621698173009696288289916878235053189628824611755379200932436669457049647566618575011291043548996496221176940762762391269749114654758452659599524488119472854193064513407486524509506118810198913770581125771656871531663550133938380819957773551277700533893623839152721541042026140590541507445248974201978853587884890244060663811041075966371432342888485287798365132067017104563259757992456744934409372106956534827461633988257042956570977816025412997188688252922360221471701988950413272439484090816817392926865531986251797676619499685062676630053689533131607306650637330812004927653395298460220406547439501674520740731021034450732435674729832599250599039267667346833075524975431049847047367344089789362702134201987550917810248163665051243901510275953881678848111257885519386272827107771091558737181824936189493398244454411807963700231270530368457689048966858289181736307181936826410640278537612654054984761948123793000858844964365666678998097456231462172009042374216455475377896562466753775333397446191555990304914284784361061830021375337678523332722329613350892864251516097413999644214457732005477728924981194522087940621473999430161689998604054140393349125677792225175959533848255655597672680851353717895611682666871795626071323000990102973768656501692100348849368927030279538985907624991413425018673999953958954391882262962927438505292851742105977480410639108034183798423316901547668949161419646643277768204656524409992468541132176697520379931982056457839223816734036136701030736981086494040406736520068034937320421443734592326518688856461200981946244070324140378908753803880983930327246418502201438939533999364123739364531831288082338289462981576752895627174735248554366192777767833847195687557801167395676600568307023598537080251671393220680239185284631517845252554615923427561827058180919237922331173602968666105217922324173513943594253592837928729910776954346050612353773138914654263701903436549838025405070913201638180718247863443045310857263818591038499589005115233415050676800562145669479316486172504814931330545682583161085312162314684029058917944419764265961292211185571392186026816258872474807595109644721673020021218290750259882885960537599096967697569737268293201437502913957356134376926127116075466448621070800378182699689507696318291827285240647935383018607084340335342418194972346509763103054954414213120911834191209844227859260690984673061913674767320449348802349828278697440468615788018955232601964346323654267762491203232383182052591320723170438632855177785987122296294416393305427098028980437476209911870797559932057644456536650202063135784110129507920283778211870136561824812979125368789595747572962012160905054229385638217169438342772585676472243671524926122487007262295175288500388231358192020756220414366084151157221808894549688689954482317615358021275644394267129953888687281887055457118875728003351142790631483980720630826872225560954554126945225477274739571049535735883595917238189764139142968712106965206802324282530107296565215215725472240567938951005967691138182659126482113715220887469680135025923128904340125722806705687085556352091185737929995634047671545588656519775264550335023376053795624432066069550073953046023262735145210744993665865870184821579487969204721250204730586697355844952634051285538955246075828149845415454859254258339776755665902153674402063925867516609926875923550123210802544505407020376269837057013193805431332602407422065253621614739534268545281155500169010740577615537337909774440326213781791478094873200354005787453279225560753041423203453562777808446838710001839029811378748790415223485385411966809297543680242361441368193049653112344790105882469849752276724218483790493594838293093558914782284897346522103332868731681503475107125862503265654437534888430805612783290514461055800772561595045415716231369701294662029841146842088482272634867266372836721932246571143666826051745569434273367439169912690830247052680696665168352475585126837806022013184401479670517565415167064405259406472093072242870664855685078766169249631770434860631103982577530964553347601622273990623522171767776535850650517707938577374103953635406283489870309225492571087257299293360967028319099172626261910884844207875065375719091152695159339448101606742453394750251718843872516653698212346183665323135305233434724617823877346397044264351193682250666566768574206718053983335302663900866995539261607845770127558723299512994756772621919412118707558653926195510727884996882459177744605927663438125121594870264812995785777213293752538505281415473926825827877820551999345483481194767371472113072533099024692343679119191624175902083504081540957410845790813818079786427508852712175006324408915460029006240789994987124799056134264039297825323274387070933688876376984568240261893591945376419332243301771040606194211499809580233804820089075628466562020118312816559454212639823079902715913206689193693836482408660887818500280178562964445998880491244368735536189358060982070878486191829332503598215910028470132300019372909384138467464192006583039595125324156028159706904882941526164295922588166557306786628478618854787288762185586287109384037763681184147502951435423987813657845756193144250715506161225214764924927862609858263964279287378293698900827426347298178348867255980218770984746272102512611240875972017651649044609052860551071008645330807483739183468958081875787772331034159911039789699379720742014154870733601755646993830059725305679391934184152349327154111472427576494071285458637210964785870594099462842359702130650210929031047673571476325579395476844687170786042676653175155025464389183612557220085363881260188518024379290987009036262006809512062288596457726595982916787520985920160669892667190307954306544199485651366662717828837930193747634973757600230815142319482847767434754283718578615150854298770801385748905420717196629846533873641553129965529878813518727027619619315351383842634845013122287517832791428634112715379127851006007415157186940895072795714259566860757261736016931876260217006650062834679122960990149436674930784185640378198237995173678938863535249190447293539074597179432467395370423894990782982310037408024421134547842787002921153086995214713939894598523675619235198120345509487660258957410006336045942741744598824639317629302046030056772857202446074688096396344709059650475575141152715133161456841742465638528791852714419749399249011537295881234172726202880731395008061998256509023293812438865775347931332752470882375694801505089651807520338206952515330941802679334749459564039715653229504857687212203362409419441856399942331716448746173756446293600832195002740922926359190492366102121764812156142002617299935293290111580836278638794611596570929484579335683589088983267786024943039475055223356294640455906082336095659028102858981328315967181667083163038574411658618316311668421367437945872078719723329288648048602374491321753514677809894790302280196770511697081215916955871129045460982725890233192190879345212418095496727981740960521841216930265429274235119164178676414479326514282827596824661542055312283734828973164076266550999180786342486876482712544951450545700845729841403194354620204029923445780825583089239378655711802847845697976907806265257729799049599055586359260767272971575101288336568476699147239059803004506577338458731218696733126843024886264444353791373501491335660298019776217476540310729878901182942474314766830543222966545718710697335432471890712099521229099568115323659754149815069887248425066724417865305020357190388899800180691001082025688891041374854537705218923030977494672104832164415729026242983591550031720224602340949750772658624391405609766666091612455781973095571489728539242809808040466479635984012038378028467130257287459414136573390985558313531068390376272484305089242093365736894210014101896192599590216075710506157051809919680416827887283125569290838137158351335873736306431286695581149285500325350416591625594224909735044672256558017143276386714293270600058396816471352259993578830023468600874068998730117308896435279135319909642005297732213687224717331566508266996862488201272338836447268449244440170999538270948621842783560626378485938408833070111917437133385921973201539912416343307169644973385982573479247982904801719464659280790983232351765208466048282875753282502807634588111224236484124878848201805169459105152206435783914126011447815526508539729392055717286650827415191003827756318036599832519466198066111711014300369932322289454385569604970468026437305403022389446689133245538560468310106276295757707422003367669288823170246993158553364211100253010107929632310359126934171102391679935019401565414383226945911026014616256318535368172470169276116773312311745831733783357481156195866573683612804767155729928165469549439370170749722016819658091903169111280779136046136856256022133463991570211536097077464461241360533959016294458371185239535119974570825570541489997532864941802649971717402443092666678608443580124375300060451717128518105253329998841595949674545870904289538091251909670096633903259000880722875366680560474274549226559296620260527002031567863064404005008945175914004010370653108349053974224471668605617139678456056904157708091091637221006234485291863516227127181417475997378436316208359346456111103854742697901924275304435689271564791175392573293025903902773566128839847792404835678152639718582496842054004560117808503498533095784600411881175854863298117547317243153819814518238818539182518278539177547018821529121422872785454860248249800727097451734220014147779674278152610161668866907532398820756016677261940859401018114421444532465666341476379962097203671902819929574878608790920354301873977301738251274473073467681217894893404942416324038844483183389997214584498891797369477687044213756628191058379972879065238844773036001299951400267595715313411580590077738223174273283648222427007447538651500713493562759766056466432160367337155111855636828792140443375390796779011965716937807822309232570035480886090359509124501426343865616969850813248457687361992470368929889300778099588708938529498784042334056914602957191986854813568752815497191208990861156631603532961914795294753227960289373069150171503356653519370965293462868530314739121215763415884335081140211204667302879458194669487805827787944980237780986748647231124967766837339961884000351477257347386003880532880865001464122333136092295861211085882849299933800771620976521262833923547133683794820896751789259257079377778217858902907356842546732003635551196668990806871056345686538384617181978542241962418555554157798366758149685816686232026506709663347218930782123488824178313311054450903384279246852169820898535733700476954223129287336175510929438609404116271144617912633993805073544882730435921964905892942840313399544260104900206559079296506627493319954395824564660896603082181712467111465149300225767096247159091225377001201362318473068113319184562787037287120356736901764358616447645518891121268302556003552179814245712950722057600014627746793199179223101726664986052404135272997343589769228784270100169849702676416377286187872398458161490961854835329377615909344521695018458276706757088614778356473623464248145370928357085821150260291275584530648481398540638781699660126608249022801347104386781365461846346450861330149218142415930852442707428220057073680300624354204434804103617361668045086135182512712888549443094787067795450697661572468162571342333263343064339356258104291177285350142844368263240797189411920177010548637283036355884216594660324684506692184896352264918356696580069355198558481882200466690452383718951585740657714794603054057626990390685379564204975568527155956464848538283343091701062631571467447305679125036081356258490748012099413475012342352174201040339909371445754366844240017563051143485563643770374322884817267541680548013624593333331521137598598932441015075413101199712979433949972848477623145219611024027900560744708520316424300504693954917664842839450682529840140560043211899738050588610625912355597939367514953718183503723860819887537439329220289942704421505650876489724378454958519417712499797659297167407305100951365471134721835295414999142532381460148279767830235933635723153400904544414202246841748290592252491113875746048001303638109400071985684958148979336040823554803372344680416706383102547337558651485181072768728274109826346973982038003914061390688316386088714545997393808335088204082746456696408120688986025612188325663682900665013231254638503117041194954837372286594977188892158935388583332714999359702657465584709059701568947274669425735584694719403639362851287700689615900738616641168145193235642373313699056959255887156020091854066063129234312412220395200884459767950794308116872697242283621057698453895347097788861617904430229148557100134589621529813739899528113175910960474099710714311361665111534286105383492877118308949864609263098638911184015159196306400381916331418410425177039617341122026330329224628560909128422705024685021123181567912522256209165264576234754190982489619149134712107911916366838476692506421815763419093541752103103575679963968544604649710340765077616046318247579408544212054420761404656646196889131507692041716679398827084968030010340628075887157538538590173392674414369470037974127374542178726147604537953789886481718933928657173953812476765110745085852417760105914417823879366563099238674079752358361924555841981754523416233125850794619966244696931393438175094054277719986822922093167598764734905602679633376663210819364826107434488338843722174940104562542859631499649110308134539095743909721067110921872265164853095749987794965811988284453833719754795428472271207208044824043511774060574664358510667937254744136567056276957264290650539981726474122373841295143782113177113906714298690481560521077680934247810522025753843866785394642670728830772050239784403242649402134770077721500242807980171772343794469848717053689634778898208662697657344768438241895672406250589295053084772497097325291729921123358844666448799043182617303780229082543536568474550958011158436730535249610876570435652519771067715483779415936289983475054344089791628162573363747053133448958698751063148701122409998135844087740608489886265372877807580480133136322683841209345770718277749807327712136999065050552976411204356730509143605045270668422954036532381768038068146945501429795873604323129134653186101392081778190606913902863023848900724974593707526871580930416024027607672605151062017523047134434985544256657304036003036947886225511184476827410405535925768353963682193447185290934195277909953944942686129096977965254222167654462138689043458716222509256510605529195006636834846772858374750503802435572242044686842855332074494814520445900627603522690624058928290211021701322071225277031310261564069492814073545153063055561518749077701313116088751059401372565918554921077740788908174556288359324433936454629390630603672658319960457723363351035617654475666470844007216563620675687851823165506273148368564037476570739321738726385085042259821247645097259280048971245704515853152288345204965836381691472023304937341300775496982443486847352273762428084970486020725372351969917924158645123461616515214724470952387661504289617365008300581781270619149780418006451597000464895557966500342601243573013478908444793630251386228942116085426536279577977083512400570457963637009504357309937663304773890035044634633081678041469933081780719518341540284619387979735066040093662333236178148004315805594975511833172894345795532034455940848387468819441272822409355835856822681707479394489873133384064375533632083098212140543714561670249798381613075145667519000976940190420236543750524688316778721272039053333774948968170691071503151020633705402209038188028836508010974182524241450911964904120713169314253930248859371168301920156167957447937979484628256687761597956819140368063145942003647715002663349329556670659728715320068636617698111541929283580222336162026744258985523446897603577266638108357038599111835363880949249365146446958651057368259313377009232590697085208169918415481339892808666838994731967771226246039915383440970483262231345001667815669751678793823926055398189361427565407144025996869769390083607167353528266836836272844918880443910316352875723167789942248615030571652996356408492970114796933456628681887267323582243673443392902945955621288997914231325738864513213448648831465851887604674697281533332061595841018246080653818248366618206777584600534100890748354703215960362602433726671058368026344527840602111543859677414005322518942185219377726145441163014091942536090378814311763002419281455206292535607699770571634816791311470038488906417987904496965304019449526235062100852853922842025465991286898875191659650796950540830938879603082742455728990610395208920318366934037442925276867052335435896279134288597331606333186246994154721509707468072715874034907086667876300951879761555062646184699897880571253666149695411788528395851228696664730297659347028627823694016393833335834368344235514508128531257249419004557800260781309321823272968814655086617315087459995705766416156065239193998709899261313950953284682503501987096698317172531354384667237514025866319891755817752514500402210046306150014804005295354572720645655809493424905296803125422936010348642757477191089266399064791357548447133759380461418209837386405282013337156281041499439467393014722340849037163531598692669018075063158215306286606347783362300327962855229683010868437214874581145028466197752586239061373711640265127451318218714772388355940959315033717854167722242905136543665462530639538465228718284755152464685588129518605217399237421573035028691078063753058335749687320437348872432412115750827260030100270991692097942869406211340189783491776295607792729056196014987263800398023119998206627554941586449356003777525489860043403560090925815217369108244888805374284140770150984843555475522825737912134649987291680832799536628066257485819243965157785743718593876832791563206388542769070261839960307070807042811035046456796719909626789168148693479893162759707358786756210022794378611860543790161627176188192968096238161194824747241547636777303186391661809689270626763338435864440667928491600653442860503966525115822212516439473320941909912560524867979728413436141777145068224988417470708689145260227687876628316866767114614054530585227589339506189690226546301549208206085004093139594600356078420765446127753148177039068829891615083795995039397667207235808468436078830320605405454253179552643442097783088540959598464298442655071355149129223444423286883598895230298363129231653792729360234989132616169127764245974668053535684754278778575250957122698895094568789571112978116340579232056035452095607390239137800490684441224105621698908800722370174030904624796707198028965328631623658894239362327183148077991478688019703933090813358281556170683892416819744432933446977772071748148144101525585029418697642209887775977756387275761600940437545832045427445535997983840799630135387949718353970362180541088135120982751976764987261903160235291417574208579742611934005291197293467701746076665239034016957002242604510529139755404430273026014327263252904555551541663737425418073763365887191895333664356141846979732591225911757729121898235277565516349138125712603958508146190039448036090631758280698794229064279100406214375075531618090499455924624578396843019402331708226868514350309301082243128358072611018565422808786484717830764314534139219238975305809103497837763073903813313019257783624307442208894801216087653309604471977924315620307404691610179586945349545707496688845766268721744155019932188448148735112447109030131151985779452277303331136812639219198591089699116298869011598323453124993357709211928863095940977079110763622253104220835330326801880956075901914848181306715777974151204066263342792500167252122781330282470744265173015547253431851068383687692275718747712799163758737168566964498144771059198011363858503441367559772639874981980707799617264999314536668189163735526988234818127945773050534827389640355019174203582783146577229692695367687863861055407876314424022855979879784884908175512158623143110253805412190043675802666360678169300863522131347651174290062673531209185721681194676937068644953476432343046382147683004999589726236529214147347300854894373622810165923562965526964571786444369229409796004481767230108470785086475560954808709370366209840424999185924899748467677918017467340393783285891034020713200169784065508800123988662621020724610309576742279481407128852248210656542591975477745901523535715522406584798624096219224469920953257217272910711581250616839062333416837855875569077630610824613302278543065156503284924017219431202639871653934004090693309230906857333549128155514837717571815918788130939742001309558526412030279396697960786685203745685619662458164482683525387155631367438078901107807465665349700234988177500486875581627762702603028506456631915577134861663836362717960666606280140380248525956837978081722033795925130222363795822718735896330534901001195427900884558381675731059249625937866316255137581967134670199647716149483578579304663250881740100595049154255430137876538590906582995840480593313654923657495279424954863213728451952552677388701632405344932948402557064862387272134572763473106091853641760770796614857381072303250810741009828550177905946674347127694577837852942033997128927236267472166103070222949909054520717089035315072874412298154379773477742668326052171974614883807842224709642386707853824630474751007613581909409264981178553596034292258723819126544742638691037927971068962434691940249986471835584218057834885019649268915071088197968922202861292462085148227331331900526823833348758036319595180288812796279121949363575218891557857061648470039259475556440879081508824529634036022316944499997387789018748746711114895738706605867866213282316465469803850864747334499830419171285766569251233693753679133634351337521493292054295541384772301211984351364579060072182244679420121921186320065633370357485335174857954038547276003085691572174482269577603592948540279225314926101610420618298814033025968034463407323463575620812246887437929051507368715041239930390268937841978133959495448745936083451134259793510466384761313365105577942873630060359744784683802973072813306974704681550372216241474228153220655324068673599539271921104507727698983809393273254390270554467377810101698006171605526869715057213750472369004171869559843669054950768367856591220832170723321752925869876262087245450111587516541996261939896886283304894178022282080224184643709549166569038778046645166264598921433224582468551716070306175439135268885891640221239397821189204669119468028054019573674586129619570541290621740515463113150818434227478765888211009956498806954510429430564628739778715812934932053733323441267537564847464098375022092727791676077413269438887600731741265500521641257138913718167631792334061256067883512517821935848231414432213054083878057623149280078632507943491780666906016339897663059646837270231384204036861658622700761922071811270581667110766955344453343085704066403676682964660041780282249910272974272330390346263648620572766055088593811531531438098662730820776356839606690082372512301405161610520737441802445806597971677765507898580045697650051610312283171424320196738829013663638552346098893824078318104602351903114628610149183044584736628779132216016068392400751614976592215421742457155823267307785920866553461095431301551257392360272983460038823696741654584197670747815498053106061886595983768278211847614193755636858521511862084136465974282337434991902676480429520520923610889634448004108606226987313874951207733959657227251820862148799335513717424558295575021792227675905109697688575393214664065244369685006395842441506243970150807276746103514826569029683803559248458959616707961500214747254036848403874890555665564254125027135138253916531749633719936896725472263702199227021792220775003074038362596936696353987573827569555138357565862611530290135093534150996889374291985877437068620481021658825100409628793611124312062474708121097501516990247628306344256979458671492087580120328107828319685055314950947735834210339844693583307828482637709982096607890765018177979848044446053889148337478305797140792874035329747982483130376419200290426755054995628186220988817512165199102542049861713265491718619343835128863172788733292039741232656098224503684739594283756894028686802421280686642130566791044346451499218393188291661405331330008137181436512004344043952677462885458585735197241362066675581905649336485726444268993173476336156290469116138160953005910945910465026297003489536122592446160418075956934758778116852586364362244163989858311137252401329933277459035268495006815362098232930606894518082503548748458397092548603733889985841345325480322708781252824268387984703165962603100076673718815107361462437457548520734644443775280151196286918363687453570029262690844416004753530512054400697210839768156154870024000383232990848529516814926555256456166684814590512606777090904430134379680546030848539571709281813275261560097499953969524033124881958289930702375400153536494002139293574060669147349326135507411395118286170609869935042588975460377944942817157055861315111662784953191284017291252804071353231012556382692423177113873798110131710487946622178294077462709603275546242397435583196281002409156221170693813610373134154105890112293239534482280793072105574649914518527940043405422255611504642041651578821640638871245961748672417080210033724165109725858022802262497140577637291093103235883675003707162765605625387136057848313576748086096661468578152159338278783647897228810667567010607238090134193873653282944398854413958917109917325134227393143553312313542478045782076376969993537203476146724390040816784705189756603696244211282002650972299170951265070414441649319594856779330569733642826357038512223551787964647013011669258926055864696085396919765400803623853579418677761424305921409295973421793166718212967252567512468836943075382502046787377260117394600157597284846017095582618577871062639090700681383887422076043736802906945328092521513726590287482489221042177289850159314662957325800100883400439921004511614037861122373582569112535843839577384343749196452853425734309504927987849858260534863133334939497942318128289325613874606500606387252524090503735325852530182744391504985190987516583410423769433232125633133851156551296279231145788917400655591774530456068463408767261080908172782651983259151211881765542046230371214867932184385471777415040493149192389350651739198110464398907139223172334535635153416658673117875194757940358070780868123678858108445865346757688094155124901638235432001187336822290860973295184745259401149400283405011726907460135310588004966101381620125444947072695242336297704329840092067804334433119064847761033402037437225279504702873330087285400580734299143226078946732962918897500677909540979152088824006881509302284616211516405200898780354452680151733677364839068638292094734010698756122748488114441575804816112971509674939276085058511065140908275180799363239037411970358750535314906286505052950385041607414644034025124240867476256579451100947832240161530086348339946010603949103816295142569857367674189032031345856400462930270825305434835647199421370398592051941985676805529126366961049493643636618685510042084193874418990777677378964873207093711992013336408374902704210188694533641862638501841146202443854923156180022439961477175410816531911913007705734585785601784029040417367635734158007099085960922572665851467037690094642012296622397463378219910796579924450468076928606465574575568143431346195615520706126280416184336277460430048173693779807559175678921780442582153595362335883286864266855294336879184051063982334686466569663126538944750751686971499200292395533560887197482600570544662214542975501555218499140999778030249517625714448800734564817703513560504993297046076146483046759519509365978432754099977563036911870927863858998972651717647328534584079625322394349876862229704908998739937328123511382632717755128152682473047789857879129575455011592144556555140573339040917875073559853399826106443474719888094512885122577954004045296392954384993099465766792181753383987750810685490668569566748307704543578075481337029948114980510706389633056794350194895290159742368184539881970330264712288948282633990694223964157159040600579699471398175067561930920448867485701712297232565317987107756275051443990407269598513281054263373871081869706685806921157394058532718916464422699224387130665863022534215045177440482852651663641955282899417040588691781183883950593858551354089457227238194066829998937062398366341767147696520889403315808274602011763836953557533415064442594033657522193710740867952119681331258449355059306269422462341856597707072081946403106274137279885919780276680497135100520123374227437979865708273523383823808259819463389599099063507907308910200015131888435693155785568019064741395497044980962520515932399399899671140817373394528163164968870735457495044935798057235291327296051688753108588329983564294585224663650971814312666111845204547770818517356080063644378646634349972559155376449580974688651567837874887781285570451671022369765847377324965946984499958678702223047243012924046241334230250522883755793180128947430523266570451359516442248452033678829451094994803008518255443829561242927203162892865132964444336553976088900682179454159061794798447696157966128483130358380019394411696010587331938801717538473169510801961297074017956328331369462538139718469152303159293887545168772437656295977987704576949758968753880115542722145971050111396864586986764538245434258475573962958931647082162471822302378459153412310855124784291408840360459284117731806741443567470172246611169133722768460645403264621372336916759282970072997578629953772043226063182555745185285607902655454139018924086105234810577323439460684420014140431363044858546329864963229655133889763172591822037546827533672608875608274156322806523504586485947503913779307436609045127833781530683234660594598168675710322126063078209456773467039956986712242433751259400278336693176105682641376176824720034497163002615644680967543816486112374493287765748485481920716441142672055867099716272611449226545886018249623169134206467643872994712473562666190520396464037914227465040600778207249923383944836051543127586814383119706456162861033804075931161102509365243236458638343729861963971003294206871290724347503792555766520294903184210108560108163516308324170124338628989573309381916624190750714382245414029972684488346057827935330685047574411807780751734957231596898865341155828674675913687981264096000213140975582767581856081281974001847665485963125387049198806078052877117332496095353723944385797692797613724295843472918244548798340503863502404200021647996444933584934281322312838571932733150797800003582281814960082815176407127195701570214314517848621798212886305004729141600386759720206933740291605200602761310470203462810639445497375190732163604523437548592095440183011810911692525423306983603026468161890829133232661789037652052825791874414453878445149149124203953230899072870621502900634200941663156668032487089407837193163602047666197779827226471615041455532781299079274218702029531223970906118864786034748352438278265376966610775904485087723827540395887117172055925922411529023976853826877553103233059423973806456713267292127932741900914167696507610762981614387876602671644738175349582951649123120534422023823683685100480337098614387514764916511529596862777599853582303025724911693023820313374315984028887527081664177829703934491125538562623126989177412393205343252998203242997775714111319944240292212270234541199937890810767740515308817876714896712423261934345560518279195082204291696546677798575607963917308410337511665058149948008383599649866542557224621818136688706763847182648093748066706345799326417137090245623756783848131711342985960855359121304878806182920629456893062579733585756623815841971367488841784525716930670280365063067581108451983295419902143562302044946254601937577160351732119485981639474664899501097676188121009638018284574087789645393455030360349389196712533369739307041492750074028191540281459257607426305148990615451500931600744112776289964381118323187117418502880126604542611750742507640996107282281492442652166879218963574077536265015749866031073500029866262828935537313548817425735977977984131433084898922258466845083606847853701105571474342247458986274358561919703013626537032927389971568446868843642111525553725383570251317787179256447670149174947207485118809339717682304344483410227802115510090752112914524632990665400339020220341989381930320863808618141155063763888814935891626519824547260145039866252321824011398253006898760265732404614510375017884164771459263873176029644191148420303332870644908227060986987874713551767078330625448162352953597952028805199075361663457060367440853422674003634367038801372211180216523008455368111911448720472693650888871522262403770217036311375229789713695010178602680392134214539962072361014220149122232260382926768319160148125314765783539021641602657153225798006800801292201171233556538511344522343185112104032247723975199672211033145311404570325366261340408140962605717298657623031883229526831378386804144115092774291309119657016308194672094338001587333454821375743792257514832842055688548588126692089819572600468757169037111571811736461721135321036588723322471951131252056291719484341907213654218300867874071517363981463829563387567332756273063891307514511076067094671669779932507771378760992353838468483936896197081256609420612643116731580608989465976063688330137126292728137131316948525000707077150454259911738053705205996683184143484044233325996948791914233364832753285545392366578043694964462280202858078587179511788339052247736156233493188716395427808688285274628493516583302526195197404778219470969335429424649028105229712721373889331922373688407811517253568560060109187500532061912728154745239668407139054499324929294768540158060580692692419820977526191496837064581274311649366061365603770509540253266677005155294427068761721762153426447669815447650911471452890323916112335274692583492324079254004146267615571563703089787479541764746922821456454616212748647121520591233225294030847650239742988617044772252635945975869892734078131195947516079889384356060196871199174279979607100611838840091662932987526687483556538918595059792364441879769642214351080137132577880562035527343827781195339257838960685524016025470894177164375164701558149782937585678378051354876671577192109654769959043619714479675055339301317365248634975321309502274735421550638748181071877870894105311465257492468271903307642885330486135083849732812598557960831457635388249153649472369608775936876087165682876740807330019052374691172524839141024254022365566756575626520388879531644634879292267290666709530291446973500896296784451783616803142440218395507524966729170003081829948507784575092729178737696096476488806413329648455964912852019116955923537811740966295264636367057411737824889854457264771875772468973076756978816093579859719439797280857870412507436384997627776075453319711464445412706815139388473154913937751300163435877134106564494964297350574541574069562124480906497670782130058675374855888839652765905708890478679051740419025945509531392095949783722080174667696942056756228951379039402531476607659549228201908425414625543763038191380033659285583621087036453011364853817467168264212033755289650060567063140516898790749137342329218350004720502680879785913331199717579933743094984566651292247345784470067474393677414244754235035664176296648567829482436344207107491117316428618549507182570839445489223738245283447674870706730932163536536290948338106392388554157088762205807433412187079976966485308397936659959526757466436902400068025424289855159785052260271104510721871812669258018869383950938618169417692194754131557140936748293031760658915486501012045462143567838990785607294233282703804760726809057319896981753280192024554872719418245683039796759828538887619686136715558619270855626302643245001925645634936246708428996207317144807110196916269375227574184502819387104528698556488698543597633764348019790412842242895114704905590940289549094905182171039756411737541942494103436673870065591899361276100710959844719063924331579611749337503472778889866653222667139436968345937595199718748819283506360995796806514428153625789007596296835397715700194774166612028693080620962573546903742731030128930648513584931016278940193067558183705395915720936727273975086200360730473636291445742940437421248779504276376944720069330485460827890406702348664985434799674039599948023797560690794985246620699106685699412248965342514892843100535302891878439193151517909187989377031896915126309584014047113000452149985111478714991618671183617252128012513714448569185500184973936524914205156695225366473013757559064457599913212130866101719550949789731721083064797599365108459354046345399183794881169496150208066489703966754992689206054896307081185202688559563063279494129591631020601466180021309411419200053887739099223328528499696821870440822332294247078443783284667617364424068694732724866573260960878441662203119355072906224582282230504969667317623538652290208305128309128348619418593904053732595653341654330218618412950052271929971860064554184951269287915184696411107328328153382749284700953834386967743652103132074713583286077728492768566961100214885160631711662444505599844021052863333856057111762505453079026381726383234875707119484697083803681992180377064191727629653267727890409323734898913098490039123743935784045134755083146220937725515510213748020332227688339293627282982919382889651387217147568076991727191168964425977551754734939067259132411314482211230059733930924823209602881538498718009346837720244224498324023785758441354449774656733735745920190180508621523599722628736994492197499508669769113389863327162734469655618606549579187182758930188783330858333765178681875610992151871936785047323109373791388550714451829341531135409456626445992326952477270956436703419978276875153720735296743826337655657175792214601617522985070043606615936701829229075627894013108971145630706127204052410305753615372514981561159140697190201083949385422135765893672032605823541514876209346204611020061429090132133288547700490758112752992736674101602550260137094817191408479142496035667668846862674861613638661262357605692393742473019052606830678197976257440121261355750363573868011450937520212544855625612477167866788532241098634802415218584921968899820758660174884639421728045355288741003342052655839968069399088596394419916215879433542876454011712300552110244338236159827426823473817878886148196480492565421278064153924389135025957025686687801608621454898606984040366217739199225272269263662111342526644925535520011383068562953651509641665553567181422370526284323105816841414028839725547982131768751540265380120734145128146509836550914587101647031404421887948619438491491215778538270042061945467886412194366358229518112742396356680998999047755311335844269073213616528745281747934981584019176565793812196087152340625324042447924469914104578974106155353187429454488175349591702006529979508473654899790500625096708618403508868603151206867993641808016486563268088147874201601679884348772355201135027173645634413508834242997281437640083992170365513305452997144596702920415889363366026879641519564158290111958377526694025296919678480520827143789025436517499428393484833874783723907294206376824934040241856775527190356856799259885259887519106442920705687277076612211168106616359249191598804675966980427556873870226662880995693874152368956580214892232822451339322569372698744057176861843434062915523463641431942999193043100244187009485466133301212250599711332506764301742722023003574051558535419271090503294982455722648413421383882642254069331453929130215970232643665540783759986399316906185392256478009099970110864264150159300155798243467791163653976193976489324550222121579077669958260590753529233292962998775916671366316637059271768252184251374101841768516062506720634873149600780914698378283685379211305949463061205173472880206596407532125109290440026958772116442706313318015509246696755477039062050013250742475255406702986475716116304079861160583939268953290824727029364553904724643390780878401722058119088405128776774039132024704605961109374585328825875982341025362867406451482399213876652258579939194422724063075279214566412707495375709266522409817529175838462419795446775727186437033446374019602420126411879773711941019311833130394059159891271438792624690339556680159027004160307561509530115792066509778956002987904325395837766891782073602933475196568874060534453670967155697145734855460052759362263485578259016236903889128248553930423604636580513298825422874418582500883741196754021883782860607413219416404572873248703904419705343593773326482835867727578538163617339309851583133120109039016454164431039123999754122646508291380317649341181516852181296158497988209159959554220488339555419200993782529009029108659868171705378286385625981555556453656807412558332114810042723682980984004580718982601432366708049069830496223946575110933998410290787080036722724928591061748121750810230297151502475610379516539584928907623724540991546846585027090719450787367840250685366072945964505712604997142643505004665345962644424618016658993120666636358755701635446770161872491222810341942689656639729866388048735244493118571432947473035200460263663942683221805346455319156196668856234913686129997058510835356988251923996319500249938635845165760600222812941511745978074389228355407154897829881340160610518238870082288600879625969657643951643976420334832656730382954912933354670583459442377875984886847011396258066965325141374574557891916545342793162245968637222107312582523831324548437624267410993044542104907260674172611676292297716116061658982169463750298370031242217233900707389004660701780685584686851097406374449562471902871396237843351702737750318650821251168252668130958767749478955736429221099143313674445836425364187573048816479093505921827752127226848289340985563307683027592725034523180683487601474827999805855414716734887754936726848669168427686621098667845817890053296950887730835040797132228252422555290418359153450620529472138367853675648780375498651448974623227042293855911967152879498591581273697043221014298977240222075182924038452116608754691945154144598358842989895015226624826397329740961319846341543724297603608531284219074249847589948780344243389893732752214372928164117081964113407746582194784121309499554655498640922435753664627546492355883546020917344928709209966817879693191872594592175019611200357386069813729945567441651190994735213869589257590041958078173354311864606562817630669891086628545374872663058159757497922186288899619279335418742755452897879541292872709317531637847617646521771779430869707670796522195281725482630526930211361601284515833802717810188899549079562970462661120953497462987766621521088438360343319611951290037702534475089571869042937718593807326301182858149145233893059916428228839023752417073452575996960151640852874379802090060635966852457765973121369068777782426835692677316243228635919219076808602448231892533779527982226524461492659995758120666628729698449898506757089696698007518432004737296613740660507358046942772326192150870236716778499514583764520388038034516681940172349279777024621409188085011266434584560190593129202319915475348650215335189528035407411510494807380512691705035459899226252471564079125118151314839997502002633106605961499024536847336640215348773968771374974467858251088439919147349586112366234154012688884623441111898476390320319093141061991985574290665208389076736517947377608535564135953844561531085503163248076874188908101317290430273122498755941811672803163430662677305008603291946427387058116178018001305420866801911785777261449447671549943695143181783137859823646714641904594111737322908247639482383280953906403487838441378986281532007415534606376710619699918336752718274602217778767687277189670603134055355997938999832223317037248511736694668600992142893303075846932149570933571707164531412831671586951456603347853836924821689445482629075649698862215154715618361355923964220237090666402132827855748579182135078513800505027465087290405175701992112400858838309104397865984383304568267217244035029230343796968172519325763719085749875932472906782666687268908831306920925789440369011345565752451910313689749459965508518698715554936735535055207305084542926649359074770839973649865363524346821483488651358037420655612995656223494119729664602092598461835984221200952022029044361771860896207408101457487434226202775663353423452199087076904561772228359337436685878188326416045716499784255726900491007865097996766133823918943811943857469083843353579358053935454268453780635311323370551921382260200562529887330037861123689153892744165829683418756152317341975784713237484453734597700905352462363728627693241354863636476125534012205686532646485454081224032210163857663259514271695614128841081322402442462307033380314541215223402643168392644075406874524976697509142436988818172708689335054407972612609226274349178851151082821886152362055269252482083536162080317456834165185544067486693260363046762632265229034400790294193907873688215154560813874239868817596662818030808506818258402719308264712804580432766780039405508372590390593635547173611025024162016044446062221080935515817255963537012377500751713726128978667063260410818690308003433302824706429789388878978437368128261425613819306508677013290864699885917848418499770314528834555313547612642886090716422270277714565441384661617365114038864663258281479674008197125477923986221759520525778900612794455017787639792022291811225873864737487005028061256284984470068072992999581643591514566910476139607766718282729065446928909975169168180044269046138655188775037996072958602489556073074159619971375906429643513098777630871071865196100607031702571294736413647813332124512844853489343611558740424233752126011347800071207853888033994466804846436023170941042955721573870615239238742119339387007036527792296636487577227891587102512308131688593876005531219574705180931986748288802252543890006371297216379435725072308926097502975230832089420531753646529955752055816080331164511770737027831853573364423867461936185195658502166091856179350090315250195823258098077485472852911235650900422455625458007052797018056993897453595035688651488044636928296394661033824205061153143446094617612047206779041224400525697015264975753120851530905460241676747347471042206972770633980397540338390634270685878039714347016097263029422773970421486673596323721369796718458361099402501386676527280402731579254157295507157010571240013338943650657440946484881382515649625471562185532202407167731461931334172535843666398909940841324474149313538072332354351220402437563410940307661695528580551121803666704334927684927746123251934727051039963477465470188089840937193646726627681797822293654214440263967036180131804489054079186029374614937039096583954268662006150121553892961328894693160300054186934674044211396577963052924635676116729859991426887867724863631627484843721781014311098639922053438893450672537318706023434133137988304675566621874644046145929377290761208840881710170970247676795392142681305301711163682908737321752342464558557116530291964497252215449874916911642530406278506327614988587467333168022669833567534159690483417560206105475027998059872294977624420584801607789386181127569412390709244654735842640562840801222853984252688751518119400486902259202877177217062496281997083065860652606924090072337501246799871342328455916681120793030045430315236565155280065467469655430316397431197641631452388199434534967627554422989895132783289599998265897769700969508950182573633860443377442477192683439060261966908901078729331171305567653834064196434338200526044230093593143720513149616309019222293596809238385244765356276758759781195772933600475226842458434192587339022316166554232873213068611241711529679895183068968227577768733133626672684221442157190446212920492443522818736689674543781936570040892281803491151230651545072243487553641086135307716889885915581878758519978690077853474600114008101129617270070399609190188714747365949472800333227004844605182943775497912838696212128456142704604486828800701478996374990923927281376312801592882451474801724639939479863256055618509833366620864917784133689651062458214212478195391590759401423038301332305037760669330326997803328369150186464101580999088299932110170905011221419270090006647295605546426779209879848112879503159474801722668698559185110948546984896190699644458387036439167448678234621727207504479047828612489822432119718474027362903515476486024381343173012934414315981695860776725888441103654043763347728285892862991910408195430282037610940283788183210770595491274149873204704728830971866562651970859355779057089691211193743057996570971681719193613870240391673448366610423567406391867011295756275983652893492033903427209513473537944339084380062243908039984397721340100213539549291176290811469748629393758263937895115772643198645519829568522939782623869483035338851068286359968164110716736249315091595700669361842511602416678741664813547687352552692637981715699239641828000563352076968273011411323140534059832726841667311830892080456304890518992894115984831366191508675399597231859536543203149783054838113185487815528971345673214903402632682513390352237137587896558777503421507084726709618061928171734590766814236111333677042098105469492431440407960889072944322846267964835784588302107541231099358124286250227145475105018288032091464159895013045485828712285776450629001506517099495313813122331224092020624174828999156670721845777905235603465329106152790356634927921250149938804590739460819065757536122166254939612148252839817914542502343353611119945674463090438577807768365360870680646191669607165978635462411364101984643843023641165113380831652556095109403207824377086587912052586600120998650124123873211466150643215299330799929384843342766288683545453258334152659086574796140248419777408275661196518456032669009603404759821929752595505421221728836733184721860357599008420384426804274874502169885307779538632422240179283414777278566668252083400337102698857948561323725692082335807874616328896506721513625380930551231031031506376756064124751589771292969260726658701635176125957332826083817467113992701827534691470887903163168428947278663092634731822804111037137950793317914167965855166832859694130348474668898343295505088864727286999583747969707057697929418055816455450917214498620085659285413762078898390711156469940098425500905488699322684241432364219182696491351312190403718909406398132183519578526327361894390665292760313224117014627621864897391104779837120174446463121994831863335882513818624171291061702399637793180388017655408454537345167723991538482563880643288600690109400560677106789651905524113356594105981445621819800253119719991282068219450677702000463161590540716824062252178474382613785168018522506098265415846987835952192164050873685969933820688096404689681762296717221060949844736494956408741098680640809030780597105769105848834111327285279575216359166905415244600725003168257039521605716864573057556704069533636782781158578493683762379082249965408021507737048322224890596316640697743350513983335261611303499384597708391173786187115371018336882406701795710869870276385468235100113644632854892090937816455397293703694417551259976622331672086894313355641150793605825493655765561110538348263688686353096683780288447208377026696375941519077536625757722809318197995859229653884424863801681798910047283396756678868504077383802521852227885679687557303651016031579603549661786494368344407911049464426239624149684882761055377516617057792925122836696640577280389811304442601090738331753153923701496974657339740589631866081393425217533038226367279854561963185276418532194273414944733706223401683384925243806854956544559835628999618488077951324360255226195137627883679568815969859694027849435921416406708443096141354946690882449999481346762429469345124228160772252473839300020604598278248030134065693762198203962536900002542360490683315984787330665907838864984005512269780459925433621683434748441979409119263067596190800183021122678737102124438422598944945209065181837395925440789155008320077936260440545025736241498201749379252267128888705428101608619414648522601519538813461383466051168765241426307750013629269896251055429468912987308458542344125228887177731806258433556044324186632315451578132388061486296712799382349754804781099578928489480453847551687877911869620153632348803974871751065035058331718959941525454718477634268667651141809429490212894443598880222854630917942489919411879483921119466883226851457593849508863252739815307073155477933182184495993142683267483239292250564272026193775134794672401321705540990863381069414703368598593869783085011438078060396602932943152134310642061010589791656052887785887054254218118766568562562473585315306721877216568736556230317257273050101670057625977255343263976950789180890746158363139417120710714149218663108004253079455169065128414036488975173379399113831603493832969835366065991687984165422569271812983558976894933475047003607025298996294258822276698676412579428957352807762945974873168640856748479114020056211267615566879506722941871767529275926678848129447802943222413913534951651438152018045442825192077771387773636970645752571560841188608031231434427759908194274070936412661029981098696898082458390437188067807174983077463905861861111628630717892503180150016152306933172298581323387634606780359247542174580196314563311347084438605588557060050450194476354657405458904705284679052526777284236216469157805945962213705397714675296037571871788918857045269187036574310138393462589715180177834234283045102654146465662024067818880616052239339587254956467794460114866849567055325575076111399907142050447756924765125409164478878284216488799548179125433397208360162984079961507765982089665700145464630873778150248594278343901423905161418877411983924084759989095324632816694535566001817689712200056410680579135908182556839887968065130390185548474799108510455003164042906325295150069294755469735021360054840412212503722643435438602440703414133643282954549647696234133684962562588277040172196519359079972098723072073286678057243581816931175329633174379557369318784231258485448025937921325953037377036770921906998692970852001214075575356472558777235252319205191529629336383995528097853043050771015387329301947863581973141918662381132599751431622274961843164421288007494048204138100358997116082775486060456069353637512378749033268651366807647362129068596650633918714888384751231803930626319305025178999848724103823851426306263375353909425734125063814181860470459582535252775769847163941936341681060946676566168913713938948043976834565609228186218404861258108067990698555909342501742203513281497617132986702159206695648510828818501758897662693408551981493541127098172067466599319132245215182482819367473334191212990264268214118819971649744758733688809712179557564592577220923376570091482604276042993191325824691430286490538320392281592676528887196023924808731014241726103610490994911490788835890785239770096561783314932961545465350827316262965379752831878503124128014148601807847322284214527940157579267948988085602917807721965753206472543638198779834635987627881233279044525026397748140305830546841746487075540237402655917819762397939108906829940745684340334398012772223839621322007665409695310442292933278984397391345408354541899018578620682299382842366287051618241557075852882418912084665730502633879684280779142991458797703994318715887144875633216045194427912493834664445933697595277096017853891023122161306554111658139961820605069850423168902689882908089808641632802039361908116225554160277418930063013048330864256612243621342695704568002169113570790662309159759096091537234551121580637842702527804852288963195066303867613745698042887416600423043071862129939770982488153573825427477745028890843638185416202559852644839760784249769844314976495767276319590286709105103800863716597058182236079295218465036354702269935504505327687698585528055028890349374287466792360215756330670282850586482410023238077120725651969418818315765765294329313877491735107073708128119867031310979421405685738787183647436012487481280711323704030725328186188221861924920032731015404439319245540387656392918434329610815384536490112779986327566536363581188504200779224311012181178501802560713279736969057965126620998856416344038413098933454283207263233861523962180931356740846955972492792976894047561738923635185743372396227260301593801000987139400000617390188093619562994471747598084020416449393547322656224813075109718075627859348354786924807925563008523535871280092386383829211322832973711356098449013465082521099763219657318672364116490672647924456023055949528162790197521218949525593511425911241453954627437028003325217058686731736148700172605500325965281423622727666763967090582951312289779312933935606462824790445671575279397174137329349980429409870479893444914914564643556223972547067041488875414169771296542844848973991400471122523786759330482534528863678197777137632985527875928029181713639435879711660510870613582306009322609350118909259725958086339316890417776189637921789360464309419936085798654358726725809194201993789870405929475741370853203122907517810004808551784760529211213918895816326968120830491941831249136774969383635352147232512343227845722703215077914052676246627125301273518129047103440962662592746821952810638000541068033088535960008777012495855418343921831471223695098692721380313649640960922028061958367719862119089724855103644518207520019036760292886300543369747060242099887955703982688621179826843979764112912057601045189569907892144216125726493622934123758450730970117465132861734480385707481878495214270100932851063221654045898206115093193098361297920522203360231631777931212272703349179355490932858587530274744157626698383700659340566804564137948208328966514001815434487375485335167896200098774727585415003272714899081561919488573952173310869006844194030593738298272007835809893171033563752193719647685254706670296056493462513063362011082261510764802184552401315033325126898446397195945971502393165588056845064366523677072612644750033123459836049960398841600072522852169173894645557350944569001266855285729341037614003890432894715644714356841539317686115930376537584176907541842566637778532287530734406761726991876635931625556137590706800495843625223448920041194716674875679203950000284158237767994718404810074521410585495227434641652318785912372872411450934973558366722412560029157551590452752195829528540575704150893590205958772660605632009228403350429655902727055307816914015456802637445793608919442232295773824299862411695982538514740506073418652993886091813912327799524701721075375466493326915489612896755919960184141249603527176535058200904801283442289430734067097661105809101357264583694818489016510436781130880992473810002907633360661019829885476977632334334789340362854131288472367801392518327012681357015272123142407744108249758884098559753055935817391279974208931837472980822387915989310568190424216383302959756488322833838884866433642686326639099137362434852557241056251059037887363618082039403734406631025263750468101608815676421570931389611922633073120094998339406286644602060026371462342738861007037110708825599492144185352035807487041652684550434568018886155049499042583186145510482516211966038386043147122627195309429138712662247553976094853599724533226145941175515905829313867460626557271654113857065937031033416775310422349162019106867455581187848050018905495660021779725256601185887328262033994460442034796239253853977722468160974304458640106730444508824811678216053778753915541024524008493231749219334294091992609374070141037895539737950448749879689007515136295282129295742654569045647495308796858885734195643179947594801206402484510157112541765190874954340497622318077946930030302845875172572758639203144298419224186108015328263037674195473383329600144820256713656712285399897157853412092216236470748949299798196140325872777291470716473148859090501471638834817111170971523653095139995598126346157295672102896552315761610779671894608744456712846698646405308617216817178850219864666312654974801801417137358507296296400926105714094038299352270254109759250015275416262486668481783238261445701719947761836132878421952281716518357074421544010867530022933282246365006594609279919758408883646788191407094697120135260960686623327564937812862338265986457397010516125498511541258992541888623115250186925411891687687024210204190086456429825714880859406719262726963224169926304155839270251163569645835892338962190267738159459207180273624635256637644029722563672070324966270032004522138324828741110007700261758657879577788314623135738343374566544582476900003339815556344426781948399348079119195532504473356523910421673300091493737130812055259099215407817648740988439927016935384638501232253290064283101577046013251197507158731742890900567497094123525597782850770654802990156233974582751444726277408455102213952876523101479543016616078865965258863651750700462163469823553671030274246749826335134042617449278743943883158257436304793838441578062198346788001448874425239219718682091137614565056424924253878813185145807754406786576158549757060342833354290339220897518338641622904643460038898253828483790698282385463090530215336539121208988670372931953096547854140272712553541259648939849764691264764393881905652180611136352369821707051409959285014499292734785399319501905254303369925556777492245988940373825954381737354636341033398896413959382611482001619127843154101986860183137173288076073893206304805514656480323550150703591629453999747601810728551907390500234082732465539494914401170261506379808025305160990707330364489086754839246141585714406724228593851156292489843125893643297273362613475535969260800018891563495977491532927587797905591218453499589456900925606107484574205085285239345264013063696012517589223856363142823807739504710241757805736747977537854109116799202397685550831039211226399882327750356453685916121539052871787422506594672665691664623808591546069405056925053999734147789049361916635755093604621016005714577744336774237161613622742097520038693087501798167280538758535325844881723303680636518502534597095659893394974633109456441889136417572262899264753011291919715263209292280133901733958573514074218538378623588024736822562946107868517465526633938391304950650765166343797119047338753070432633151231902398522395750343729469119409486075895872688988699630838197822998818498420924737583393589197944481909659783750903052680086118817313502675919441740316442738640551334734090859722762194714019744081834162964615302673617128328013895850381566703034499017818311508515994413167495796289011624121036974561574365155240715863867258319939481041417090084322916553237465889309278776654296675684915551071331172647373633517005819349591575929772709568301570883402346316161199879271024185687446232585956056723747776861392954177758942933907285689214730882753415860120527115105048549098954641451035610166102851919232529989860103332621391290768402026644276277311034311207499513603491406818337066374647655751260947812117052517217572411070847763808423554068952467794157037908394883008863075899984861910941228172202542602613659921113353199897255439763386230103954624955438604184233940417590667218451350885338908559400268822085642947170891030961346719659011640662362615453276334888464839917586312628168798704095065759611083687125307478295429135544428789248195839474855845238723581992705487009053799489108879728384175721318481679214725035989549340802543545086369379736352907110919094521879122407020063281544203518308878080433501238261137310383617014115599762291662755406169653260898373808198108212051708435248310458090394609624946618723576282053538998078862410770533868944476490691062724005552113885482593799671689996341799072389141219299725371522270431216369904273178874643257309377396584049414006483883896756073263981902853348977194177899307088610105887738643638601888270994932205158820596680114612924025644180903498558230538332727530682771719481996976870903654091919352787078362623002925362735501899439754213818206766922720620167191833230619338995609025743601737733054637510702439268245747372737605724434936875699420485349013940661784286041540165378798615401842220546195875118603708937498553671372559998675996417670711368488100168099739219974038425193062996170764257969125965163886494135263038510706737791440513424886889926800894663612267865774675854875478117373233513038203497141649915735512455170661165630052448340141538558469871183015996555986907146705365133867421725023161791341464279586460559575616462195229429971352943771207709559526103021158424482065534731488907206150137785637438224109559065647131649494881464356500607446554126519027217704843570845769140122778586614566412020026756463948935172451410694981957978648713495903687605279220453978077928489750360748262577214963674942365311382841499494678835313743254657441830703450544282854627130055640619123369722778948038755832099223019609604258745510591338384314258274289271984832595167556090581829811023686505415802007728021310695006547981203566523480726883317597846885913244036549537950003189056939776715556409468462350590071542082784871046980792679858965415314784510785215130191879471617869530431729437998165064505227698747079448272423162231861932933945870254002947735392670192391175812308154897071213669032154589042044582687388073103779453739156849483287087343952825444278044167254410893382575815073801692781341051450782992598182496621992766712209556284322853250310127417352286322917208163999523855548141719774450292713966711776618073913028549388751237455862393631920258849091349535961187230436640733132194271416479799073677410572146604878571222993525216937919028495747227588635341455129923574271570355379670977537271739228584352508766793207585788460713552052052154164682340735391144737130211315241538493269687350749618483005444182191183509607263784414169119794628065053848333064921960714214008902741719781883057183653700958886659558951753917218605364384673131873541044345920191570385966044428489028285921933110302399255586492684004162270609626582556068746534937463740677317237937646958277859744924341681414022277832826623462600662592998684832347517106705662090465917899807271976545573981206324081141042115148654355666033997864074532999826426425033536345282198139392188226953028671930798256538790483011693877509007865048791578420628654547714144386233910010704326654939445633276485398446550123401133324673688965277603790174356327699883638705488603792503103501796627757877436924665569077182889188645119618613509507141248090589368432424376971079621872154044455577961271329196351049583150758881443197968898318029799556501425423356340729552392835461908696620001980912235316492748964102962853925138705233633694000190147837556109379263687075309692042908973336985998312519713224931894086651991137728001415159528863489873374185096676959332514753446876200431672051788528149778434043522873333722803270984504081975072566983054311520391754447930810802450755439407144117703361414582110225449436773326189088453492548286168492732794595037472884535945989105304727177090424791369818549298931965889564414570068175902042105786479902676481853589197992210405041438144330884779992009525501056737587185953780644020358060289511021106961196011593910009256337318135206528360588633863769887488784556987440277897636448742137943245319639955342003634501978293749750451216781713167670012250713678583435370304308908198111167057230675707758873390126627973437100764674746993554539639285589959705325100270046327310029646827735638768116621248751598449437070082585906538523106846103044135226859987256633452861579013692146593095362109387481855778285198291660684529774776166822962464629267666852015123901041393017185210721199902822655404214232050309144050947443220988253424382177530655791573151997701269263220299281056366386094623344000862594343125948376491984028066534501075302163968521942292543404542892217976315951149818476662871783680464372919752589104025978930863543818292195687970774760355628250436096892547988228440846106749819767593489078403022664997548508656906997306816657186618800717183768167790367903734959620357302384292840763558264253755656938754086717922338710202033872223921433981645739172538596551044124736022355116037099452942374438622097463978456108774203940335601799012775123065118196043548734543224774539969977391294300603381135770752912374832576653575737703300122136445619258471700977996592368189266010574419836033075237721133113554545392131366593422130407574954030868798363188344232338098782788520258355923349907274481405582939922650873416488877433845549608091061012379932353470211871297794081122964812778493108348430651135623901020237616975874830434085834561239946553724296409570693977111611793943997325253417555050033737314067018516723578803796109143204579478463087137733850465922597610811198454656788873011261582775022383692177811555773908224898562225081014378343668257962592799316532432639316984524005559387079944944065558243042101564845724905405040016827217804511166027355935906458053643802627437192691816166735032486148550862415556412491422177355287383247416767235343886007926704990207671878443981002334132046908818341179399950192499494161840911784223325482311851149748713723429598348955576317430209604140520064681338349276421312922911992007424367660606761138100356546460083089117055843827210229877479687988918006458509886667468041644678082572140652794682689533585174693542373168037616724872245558104674575565264906539608779476264765291828572831419973531531645500162947737794701374384595985214347720075369705974267910624824611597423243905383450720392367210232149715185532290126335045757073576312634308659761954543708071859384535923340028353182424179974754092827701986332234618733155475445096914807459597474854958171325296477940015240360920424281095038101850671620247348252747508047099357193934707924884991245840883932921110940197894107924084129874581639024630180662143737636900850360126172451548118651983702006033060529382742235949002351620947758573892272355057365616158802600987877877646343888476219951329576442997637429983965676408081551837318059460148048203294576098662598789086762573034765231797465801660171119599105891310032542879766037948048362056647404994151242962797394059253772479554300276990780857122220798330643630185949588384738600680134742178197653553969955349447351979574681750063925190974651230747595563474248909430426286309525470994174713442762297289885485614226715034501221491049145152548675690903006885209507096681368545076739401850900452693855990719591857822674898663979258646853456369596755950825274072531197161763751316367769894804471505237018274166754249866211431330793636319145334744793697994606086114828527879978942762678326462552127989717641263438244399684160005973459083871673640762749878497461791564858426727239815601644765029810893166466599411570824179908832532750958782905869055077869623445671925149971392552324045429122816426987808897017095351778892939619254793755729534056757349759533877067423241466575848561539948628096594023969264969026060988014067179684391150562115296903587000793303954838211288272240995332774438676869674707914374528436365939937711242753870631963152422108802544023646718607339319061535982214395775028563926100108031113945629826865385251189181099191872789794227095043557747868566064874184681320980477242388877738852797345800699618170236172769930597164415612812543351508649746425180379501431610925773788716002136516550204052805880583950698586415372869019044831694584560781993231847493321259087322477427987478711532217700722689795796096348757470566769056917941145052231639508283004960518067743078367544984386255869512593531120601971471461899228064412437167539601436173549868688672809545268235338718993080158026371521280627732979985982579971185511078705879724509775628222142258787213548985270106190127846452134917625604782449387036902091487538445574083054312016436354735560911378734130146999395221599400010752940033903430669030501944246226683798128609083891502525039758637718538721760637507427344666823793071712555749637412247248087209127474020944951252884772692629495281824551885720487974079807484034065580703238456358709094722774631866000910952369383119624282788225788233432842457748957834814283310055261216762388043836019987073215036776804088219191035626316207968043951113151307346768184804162914292783794093933448524358567739486933976949670396771648027704256811814755476225162803882316373908737380990492416073278143527092982913011358174861790287904069427949945954381898417909663337934594342943171256871866919732990122702913497602699491010219652601385320544704369926919868348173103395874948669228170169167617941198187045529661451708689763687204559457711818505204237533874549611643961873675474999208327013730059295355383047133153496564064605005934658608795247032856358214418456301156549426210227393514060389461208096883770554552536150359238784138813240987412731436366395216992752586549936021961526950679330138691483960888689320748712670122931977025314604842330645606804005071926092167433740279860039032497939273633150292465943462601301133166814623523851941746724045408109951012635662857037495856570658497474354152252346091287459335950605193744138663517190731649460975203618189285052636110326060005081686084448934526360441807804740527681874792915538158601266493866898317771774449707489104122912267156164235011694868896708905949067031591127940847615676168477532157812889887895004930817360949887446109933496217669540484813947603926069707380441147483166909560480725198890117365786068459741819681950438354023255734135883048268198615376903895320148448038270446364729390540747995581049006064568836009722875762552820604328474431045794980194867399336395062210667306822977295137436765831249038581046140495636271337583239264665748698777936152662821461886829553256717027360093069677043341786538746057575428311251007438072135843515737790033201555143659432345904772392646253270947009275008536636535398485586112090816769143178997455733719840354227968403055606051856282297633125714394613751374339747183751364698276895268986211698728853938705471918233635944734519241569284791045832351201151314187848318689676917427072107903504432612973551923899523445881566927340169561202087094047656940797504389122101704739808149046502952234898993525831776437727705096102678256172664178873607229858905960927173164941330285384859230101920051595568782195251866212139652855791575338395918526869000147506948215641699856053434305805657638407410783526841745736971803194873613583080544200676178191057613167781927710949006222319291295318930399891432182433823848247008361205873214692701483385061273506115691230084621359193437201283120303288111972042458234240210628099016556224850940565860558846958309800224871821872467850521548280697766748371806329039610639357229953164467884470620769691764656987113760270360982579115559387395409309478328599196781646055459196746092132368837371498935542566702381307456266342292554197610530077058296321410891328599001010241302869055030625282716280922201026345655086212470894131542520942718750790455573364767194063989006581557509406984045994858250801597917025076406819608328880395403872184297537834188123196181517030567103236957340441119517109633869463679424395959712880500149413115220069780112532821530565356428603373599955873582001994297096816326534238658514965844531812026785838228273285769018482607223689127331676064607723022230413492028983805688806153730262442819554131083988401357376575335354767683616563842585823097686016337177031686828428232699343346856836763159211722919750776235971523179755857954938169829680144173493146417701896624873723883155834421631296002816410393010749514771651338627222920997533959049513489153164564111004324900606484951628381344511433486802745696796359910586725853930966982624661831787529639793596030427793151830559582161862210824500070077747432325417161422248861390469178745230561862778141973570385248591306841783079454959739485119181688706504781549604468829888112914662705446263061179023815321572540457244560043232636324671697386861960438359055508991321223245867136182493441098394865503343436847446021149697169914643184705862398100895733940204606463736265900780871937482343002188796710993272897132965096873332454218735763207600011061834475609267356175838344034328149317335165730822465412511175828985261062447122222750773981469388068852137003575309649927084134111049576273068187962515990695223739634215261537799021420882227274819433960889946756809828753281253852172795074859637925572802896302672242626834389054108574456711545675917941990895240017307364967036689026450369694605408342864120869658344015032419514189337516004319345058826758607386373511034217429235963795779910087480096046341895798644873206690506099619422111012386495550907785527522556468429108431727561614434655024073634463855290501132570873766038486033301450498600417383019064630237059493370706131854281511285408837846503141062833466374673691800102759203111894571479306889090536774424565400066100254882822948291230429907122712208202309769989457324631228141196803430967227444290435885409119539246790935188274005956519385719570905776954425067903500572073015181393948125964963189402785095089145995982647331764626944742494234024101345611435993468661493010462361311315167102946558045644241713512233956109206106417981318377300793746070782631019223906934967233029646101679926513626853332009857346610666970059830349757420577590381774791656771064263319642271368431889033155501142297559436828267725800517020657862884057372213287195616612294140436619289279874765393043291108019034367943953542632862699949528902017980218709675623696173741161967005285248397351538336319986613864143669638479108467465401622916699442592738413692115900585392138441883490506129968464054779329654288595183224275957083777240709432620116314511668396480269098158065867523725208084885117009742585214382928199945808612477224648417043612657478879407598883502889268066545368907721495223278107426330125730629278766797285093551089906752472312022506365296689606791558212985318999589856081522114149988740418923092027163433808886783109442402626916711355188461865132099639219580515526356994117571472018409264868851302860507672249108666493219176025644250400504080435313217666512383753222687671474644173550668783554514865248523970081287619453680383663391925938745866226286507679213194852158329813225481643276062201574277476877241827493320219371340463678921920845069486237109019650169745060443342774200830779815093305405373977057312369626105160212749707162718363678963553809511665989985281505862879130718731330675352177511389408221069353670547715497633341046597774403057896050020168231996474109065066962003952333874698499353617136041581604792845251887964748355225497929740769309728322364580150592612403143955630706195594801510658808787591280154740197289989675446515614888948440861888719806758998939895038958453249744343267940776837032276804554908738149482141373936394763366495150689884528686728381255205518920346181127558310887790071128550409921676417427287634324866612161095718292201156351811075180786408891843854902785063301749919107570012997479822167742728981585158621556916348084782577607152194772763162676189607983540048395545679802464710850651815941233275239494174733378020532830914159622868502134227316252895480064155681994607422035405705831280262809135115833211764894099553800450683181040663879050408482287781363818696133752543422330817257839866801810833960362247063402486514767214360296654803234941662045948887747694816195502831530054948095769072649820553274683325208421387801852846229285726206878520007580412579223919403894711620990746845088625755240483265295562886356347447158233851792527099327005373488812260418084492512014364911830559009203464059482504279572914571510903983623320710895022941020830279507536491239116644665876046161521897849929936527014876889632470868247853849941308814178720195500298811770312055934393377600482488601222853787952962475742555639545988804793007349162485245457956825040778986873319408692296875035777477414180766885819986222358409566807703876462430391002604342242486107745918819858322181367608768899379443722865410969267465401463357357087330704236987791425527811911769139986774484498864954062113455771539242003618159188905709466885453548132830097495853357479841803371988579858772906122504547208370053174426192013600408230918338714743489204589877889119365832565743617705653645258903764836270283399995828930372034481680924062194309683721393294614493830765093918873272028975685868035004114659809597674190755168052219525545922846013000347024139882170196599254674695481741662906259338743299579847457901789559121886452454727156453519515594596754276709216139417561649090152179487453720086132945278977994312724781560067289751304273334527734497173486626027149324130392071841061506767350228361187877436724448693497480932125140022575091091320303831496432250862022749986835092686458681555149340848134224590597404989503213579821245556250400473056540823404404636867564210665469928852589919492858744472296946548418290790868036565027463735409042041529673503099372741867112585146775658190001302600341785075406811653117778343215118884289661083659733033150046732432319240861192656841577600188884262379712692478768857829147241068218018078740286493856949102432063989769286934683327694301380868607810942977094755514175915002995178329249153307241609699207280866311157831120901252005123453891851590075770934070310276739938749216918190907495914709219635766017852984211370551686616163126407709796055052662410672419110757913241092244166764901250761805440177009613356112202382713013561242009327444816920919263887145327976417237717738752219836125161734885775635154325819071059087081056449466468365427826393857761268993023906910526539242518089059207123504437277161213685062877438123652953381805430982575334900780982983947731312236744309158238445273274242201313256732246578425598674211088540421523971825567112202641305179346873485083202929688060616217125228323481182767906233356949495424955509024248571847900311149860289108751056887934109862794118078171083224692172443634169151649411184870588331565171686436389711539819080071725152447297570709168965658411048452992917418791401376376811742730030831007412412850243509735569740412380115594397937368936842514411673606981947204742891089384344382156871833538273508933707055550865017785050542268166802785026010950422235580932370529671356065106403520842278471567553645266973586657476538553889844628607568294556751592365326747641964693192931187494594423981359794856744629467288954601057476030257931998889593214822618181571499333655605534158781601301104196583644097299058316447225374726353966834886951565912789116148693232328271509170208177414525016969448386824547276163307016301399746986975489410285530048409993532357484570032388934063450491605792269807700602810494068118789423941131990231327193463347646677371982095964770810206250028464507224762469956036360284980320067734341944826257723610839114602817072983369513643311414236130522051375635794801686303044765826451614642425390940606624873894631964195579092043025749983822173550166874452638093725253033020333979278114634018333228866132603605417436869306744383235114984538092077844056371936682613832733440570399608784066845138771383096542164134657978080353225332779340449328803226601480769483410919749377528092987308574911887596962068009778696793626031635890198313227488671798217569266671651463677790985993448832780302584656744028150490264700730980315045355689740834308132047785441547105650017354001250947132411009429567674655963183177217497007998393492413057509383712358727113733682161689491107753218926836089276879168430983323570253034934867583445325437419680287463639747410711385954604459059945195405840802404022147501568494745429733143658480005253154466440501221182263807136065810040225804977647906326334247911330462443690615203180010013360477319462065844437579712937414457321105913812510263168614263900481456094088105942603664077668550537913246434310788854062708186585395062823636909243882074496753872132599584232444861257458605421452347897074397937298047165837551761885712118464310182415359654609871112772360475077655200309367800647988848013124435262553763830054291535958274218654760229562630231712835027562256071067589958027779912160078932706373325312571702030149909360499422860028567411737423810366089398379590087628465208498609396564779878925057293663065048909295945536736725858219452781153356770235662774759773358035225288533974582732159952363423142764405911051294555611707058582652784087397904341431198020104718193955327577383949758257645979363497015462771188977318627912494904596623691490916720176630266966300582623296345791562414104156674430582564316915425528160250428657712183334485520139010501221544070755417471807617551304907851736485927961421474421228910941224669426895279920388698482055427635979840041728077866593659802080865692546420850903247959551089663055668079052482780189894516291145359210562336261542156358939525739575115080303125164200450694765625335748668506581779509523629175112935884395228701911323103109629720242567435912595152395618573257420663379892371194048278599029305913740675764635981754178678753906017535871861744263224903253262141513813409965640767652317046455372054337350533209243811968715378732891764582397343653957793872077826276989438012359972521779059960651811058115370927563368246992490205216405826445422877005915044034420490817417472207613753220909415060636605930783004321886970171066216483702451384275089013109089955423913839129510336202435181905587693344033809171183447818582114665595712839666151903457105465112746966970043181076033480682034304227766718948280481194215714676018640559931152489636679340356622616848149898373013618477162802261602148160045263702946012902996722122374318183631883912693841598131061727571965070362746163774577484640316331717343460628569249316977095689559740067823583617659708979255496062836672259630268759905180016970465367249538941763380460069438129878789106781642587985758125510339588428402332010290843559556602654870799851457901854873079197769155270877533505079104107786118702905784579746280281155053461908700587421145495354775138682972975395155340615158612627852659484703727469106021666757727945927861377907327993732940932086784120736867163945632689526351717484269941512829489461449735661181031418795537431860227949008761118751381691074898660653588047574489942637237763239853263999830889842040997936886913703159501957144247511283891338316823816215967296495726625742627799564143024948059604776737470985246912476627129816906874338989072970873904097930893016375527345164533839371511523516168779078275953349593750822123028196570562652078385015872721945288305438073872831443092317666877400134162427762421877974626755972946816650771808723938057969852541004178190612856667979158734539058643227690341597586372631011138652799959708714234078809263328744005099829590755711142541064768820937277112671087845702402780149047890889979774717413090567754920108932424087165965404475430558981391561266591760238875372890343612673493854253988084612522384973238464898928401330165250878764236083036917865027942136900748045834394049395734020604247221707865150518206913120588575772344821540808508541469402998120960332624537978888427771573584042292017261086544884623074476641793829230115692945715151434556387432452143039752423864345813748180737291743850508075950632074659616188613412788418705784059221749834104697775940115985182959903218038089453553073799773193695158584384004855470863047575293122841251753999184556409701969106234681466059803595633386763039079415521350376276720186990654099843616706083857722757580611689813683255507922173157656993320413635967403149067815851873079104276234564871314997858380603972841033977814805692793495770463027982855624347931348302734474844229673251866874514847982705120575712650304046850739678258000141810660840596320152738803604726778712517035602118477062098773398460337457275734395284504667608826066084176399007020515333326948634846055100857537624381580668549569125923921013394743176451266212132660849590430984349090695477015062646629151146239420273201063013346222181518147112520197594520074218902507685916207081632671945907052408331795639845234914928696139755119263200145898194211327140453363412575282196985786641460714891366978179801917679105553647537733253282899014033149282930625274228394549555211756663939289487428171188736423528921260082977141918320281587714367272665313551497938533900775029895067953905424434060280984095889582397304505554442708233875571797664259276920879735689352479676205257723157693485997983352281237822603797366117656031730630462820749555359896820087921608111949945834856384892882216274105325184891822183820711939170506378056719987268307702318465573746694585557263975881710911679257227289223377815090403785795832717956031313318696496177826604238219349179265493606189882546617067469650678752459201480749420836475074550729677293734742428414273544153149407656148966278372498296261890625212698748693811474589806271590073537531057969055951498302843138678172955896476728389762017826838592256135465450160620028214576172919535854021715836951968506234780949048759529365602163724824384962825687277770100667555261752212671884323425656384031528710518589441108026874657742886795501978933846361647732199111853068870820859472212135113920918076562737562060781567160282435109388300323027342672604457571761202514928060016080325149049556950184324755197450527724842569102828636751792935345833230535517566846005314849702451760540178376619899818626175732992730279806502984410020631560033114169991267543091375823553107609406964867320270989326737540112752857942153479662850943180383589900447277470598648983547380324234686081628876310991624418346636157309261992770555119546910225289507922089425653674944037558699181303225185845241236277447183915852257049921794783663800722541518047550987111169514965206658885231107802969873858061172606590893015141441854653520927109687576159093982851116946493132448002348008572500124296855136822279855626140579657511105520643088343636195105169995724864523981608774800478436817681677246613237576404479570575890996287115228817027975932291322383008110900069435735927706410143761061086666914265537871538665340649196470589780259020753304875613669149851026465078619377979952505066950441877356992594343924844384354635149904131358770474786651852194258698109523565705617349546957256389465803802604943528943202389540663718354445325657115042368588264393028462862583696090812056488913573571375192961347606711823406880342178595624987870714473243510924023221376677128682361788777483868060459742332243797423144312581409315707278769364570402089079348365362051213850268417412832702492318802410582472692094165978276539686505052834855816432368205289205835455182630646802280818120110190017002076971096780973594534804080015192360976641255203003652051661383604492712674005605526567215224920225070643388761901668987875847017274122541466841330415137328226154381055612885064430805049867489019324191746718699883009089012445583852006310638216476422450790212168791090463139439785558776051136973659417385663349988748544936474149081602820768455834507823920616282629307456515741922657176590553608870445598035117688041566406797404117207186895861644661817689477562205452243814072363402339343245661722115872815086498691033902898366857747674144400442277239645155476761475801044842568122578894710560482047939235960719991744746551018728850136432570399419806803387688790158141779854796897343799424291246607321674903314384917655883699234507673705816395329801216219877395373593482262014289635603241944974058695549486690205720196840719559070291418970549487563438314833400365357782029194289558699989035635734150567328211239645822760132781273073214638683459599631879038626411937010029992820227794897680109342376880257494507592067823214452495620327370419439902432618464038226274944830265238564610196705151666395665115252341538036736360594317084321273581420532601567868420656981172491167403879996884100393617675485261629658851187995155283645158531595875654547799017051874734930211614558382138287550161610587013294561776767721460183518231352592642568143671981742448657557707419642525402884013258675427714315716325615339159604200862540923767371503450116843323763395271855071547960951390044711998454531617915347595290032394181433543154203457893209527126804030885487473643187589656467559581050667975940968814938792081266046173724924915585787890547353076513392004764907429940837086251361279506315840598817365727475151508558790371577465352074399001032869530180627935419531772284869377320118783466270701605982957405845342843448334646212642014915706425824137240159087395459525625029271330594549900196735792885020785846473962185345467211937347625969570236868698129262269262214926318641441167559110067292324879107759613582791011731372657845636136042007309645260012562043037926610390843677023067815926446189833284585127467907036473016268409009840281885988801058669169765853409776367309089259626178406538861637164433423175664964089554419019581098005070518783591424019065069108797493556833416999209348795232679626380010619147458223779014654357595295772553259371767988395501384153974044157553926522488490419337356449160634897978958586489035069976185822312242576117754599650692579367665735864899821946889773896795449867304849460674768628869777671546764767273669520812864392115670347143312428339484199931863079138208768373875472678238143816975798515532043691381369727922110604639526684587749184631291024799690701508765205496808599219214414685668083901797750716464442483451054148499405344646054227519614613363887545821385875619002272508338385692022150558675300337182848613925507208526594403645235196826831900895494616680762443686197852540951242766659482608281605450634469650554925737290269158631586233451688739854227954064100390104950032833024478587610478338928641828835916126167295627730461537476824260152863943804648658222070522573931688725730744493200482621357573063397363801545450002400048637967631626035337794448027692809617997505304855782706289932250200816534609885359388794087439255290808012875751859392355704512688147029472842680644700879340346699595291627471149599318308765907352215675356060251033141228118874070829630035879609527347590296591712457024965073337574900686133294537942573060450067958252877683568716959219628398014260906562494985154997710059730977723881698989127602597374347806371358016919820515174468228581296748253745386549488657087830113578087922265399917925936248407263959623286528645427532311174698334924834300782695468702226260807046429415559037831083968889390658002291916227119442921586434654900731445736545528900992352578649611519093592509393128543248193344228142326071291457695415335198142762606282376677346574404569615505714204711240995826391394846936163616041311611154738703827078983331080649489974284025887754771165194444863699073118679199393508491583144527096000383996095529386907133594008083519219636437367614369297673841792902264222112674076616964746628036765178025874111631595640551120313118310141124673480737390446464901909742832265847287986260173375690987871460363831499663211460241973313550331472540231883629215137968107759137545313282765394984617008990993029219544488209348303305207182208531776517945135592625013852216582873762320233472342666691402329772051243325636433894722639066671812062990290796323310305102417642912752279963754049518250077225185587982686312075141659495316654743304462199707725467538642909842129848638187167348708894193374969744524163628674395411280616456264270564233601156514370359938694930340193889389465992536554289873570782619935961605508964785074885130196147406379352549537098157465978978768955981789246039899783202166337405350667156311513790157848410767271515090511252898737599326837153627505069474790188144332948711364880452785488829169868584441746317367521684153678525783642775869629484913692906863863400255326242669362713707464904813511905552358252641084672819845616496015809219759014025601945347911545436808237398531275461607100847801749999211575820580194892290730840169292874590017234564309005611759682731831129796201353510418038843503087852899505861171516947614863226582744402941253308169520878661469734694704488163419163856100345805839550247372663596593144570028261294614681094864853540610287569546892298508418473163406537354691735261758995831608768259975438657614316355845810609988948445372163085442895290704482491118920940718573804828361216619476569072306489786128289662143818901673042618048667892247598669719512297397402511938469675615052839176289611471105324018797344221024182144464757234047698548650143516319080086630497459486028336589175287056802250693201628479334148266346680845454811393308542181744081604114692657088195205731036924448410378769780184814016726554635534759995574831943502180876311020680803473471246920716781652150546029746469770636191452972696563359103551128264943649445852819296048343463736629687788482671450335160295539364117110110562663176873986549623866210960089402874952013772646246004333750566108888433051229247188377937815266252146508106612282012387504001213468997937461902696846234015999879583826379864491296222894611145145239176656675834076352023057394544190216491025193328052681744959053200486731005006058861408690039607025895977125622990609285951016601459226238984411953048393431155319946203610882234945608853147049369991082358619651035545514262828188668061493522345844803749664699529108363778904433687301017192685936956777111928227020851069904050180715147969726324002216282101317240755595541888788587453200373786666974871603003930309503131438672540165742244713311229356305635569608825609798115172020947855307681661387194868558246480348275401006142004889004549143592920661952791564275559454678798708387230019395080321244010761984130343837357092556508454153957683438961581247184710913678087471448686477690984127562239708213636957682753297329025198738041223790180381049566369863721979810902768158319604418499818461922178444916690991770706775022966264889256708594920752873936484375778649039590633780963076939213885828374014890249581689113699927740317456830709250813333641736454986106914392081244750080886744968730685218898209798284382337234313653407572968812235899625764304567615961839071086058987119705879371857808481706848775324473564596631315257682955730872205386621964659547624230984746044312793587615652616691845957207633209188939501747387901720528089115076595937144152953379003792451230529120025045261085853456356756827528066783828055032845880122807432091207026571031716716522391978611082655833067631761343771780366472894579714490730349316644342744268064960235874596601623279354662421350852040090778271365720367932399729358132599003403727971922003992412272515703627704699496246580296311080192384269487143111348632422906522006431127467435350335084135947663449990529094042064411275984189938767091715880720184129390148516050658385455956358266715626220566147762811112674691835890649038988212962165944461047210997450569912929551699085715050377357378673543772374206542573422205407938139278259106920538371957384380222964997157085190906472303560420325661372011667019861176824599204496987159458736851547883298952857641664968980363211593147975823004779430041850461500841049253490762396170949981562792620172642831173313642423509666531561230490548635025220935436497278032450974985806691484238327531003590453211715688835853064284231088061331562386577532463610069732070139394418207559342535907500299040208715535252084395837233271001211940506683867523736196608662064149046565678190954934571734731474578283585344201856184212992780246067039058672948303642547934508435723807378670775696976906382513183807893551859322127584690897245760271794585162303975196122769975148189591348214894847054624303295054699793551233545680087123111289192760453917964008026284683562396104021712103077719676065740594729904924982510348604462985446845968040878374521644783962587241778149718461520148810828794399009082116804797241383153280621710073751267075805464541356985714665672600592000749130970974925173690478595482485276783512689977148486959398221103546376086430565583272349378015708128438972821335317287463836323705680274230812983661946379607178475472809842613407549482774898963535991284701609053368777973674536083444480669280663231013681480623296100933537690106943292670003895155423918714727842134921380249720785034461863918953556670188595042066421242418317991674294345876615438784582390793901272841923869460393895801227334340005343545790904707827778457141472942157735996914949499176485444505218295351872664309916837457784916637295185990767525688137224370302258639743455614662376727270295480612688664720053514909919940397380687062983819267116936054459071496793951249665159412764846870422928733250047605778715637896173939692999997513553807186779372455401164157507960871124886015173836768553702009698208972525250288679321560473289114582727972069385437643066553566664345197277848025923722763615786378756073258461738642823272424873857169794842135226714911098717158939178135745081036268842952399985367157165845054058616411889037745013072614559861056966850913776011760403166876475100269828415382550510274739716315348597843114082811798872829012308666824807007721912739087773726620320894456500668633106533954519261691224714845508394830898239400409268561423069315042259787576247540396128782320623515510542417894644229754114242738156603119773441859351253208144221520184169593785417084226207576176599645063662585065558124885140863514805848293083045092190394302297779030469505056473955263820449716893591249167172836301918624384407952200308679961360434099731230927785279047686830213672343287524018204378944590142055129884525509407657264211832114173541361838405695445038762992299775212517929226318119610931408596337329100171413996886293612442930421881113176577187193184818139482451147393221316063826553272017759782584902869685058779155434903716006102389201323488753615141774552870702094928478975255856873437001949627286496554272994960526792613908539706005205990632122118571074417286390074300423128981693713640501752768506796912216286526492413115148481077215324566298570337660879109730263117497565560545793149269326701923318380113672029609731580348634423467794064182971572998589357561427199582991825509088962858591296439735135439484653516589190046168020020430011779690529886628350116807329143160214902717305112947702327055240722723085158833747859702047924073663959396022187840081066829061851879225346694132389041945161517871846970716903814729957850997204591971578485119115030979100749270900093559667562272872315147706345196950767211004664526497043608354697355331394176641007688528075134000632264908849788061467706239518105354608613136359097802694361150791479711775710102163226878945746994736362477369665932541484889849877959053217727221758944065405617931180736061643630015990777457891026663181290413673610576512615351777946941386772757988039907968413756100850413630904116335597874925822551479342741338842372693748452765294375373786937697238255747336247761065037829020504323321039943237474191459098774955762603165007781647970984195685703463570481778108795742780062675329891001824276957288459631541588050813865508704042518933672172760265898746633421544254530422687613485698461007658627399862202378198450021923546793498176146034645503543918220912687449553348477920813715008601220196464886584764921357536415712177474704933266340374433433972001052258797720131180444492700242911001198592816143128793681319935711480540743632080861136672149082079875622564217523874773446139035033019246727134563650712884286131575886808644514097735231854199417297224075534857810881408671668301595723902244757669112729152152295962212671100061961129024433009647645686783849432998453887849850680910972521126621293365926124967689155556702509839614350106126970007883054499131989569318519775709442036720816977372644503464832950534904164602312724479975467579446821259484605940826231078278038800406032964535642702931393380013687984808647160123747226082204144244694979408957575553404135863249354762510176465916493372461072547075914310212586398352338457590608060670673745037737182529781024390161114695242916296227692841691213119390434592223788530397034336673101071354525469655314213152161996925647093329934277984876731173388417909024946782633339209589307116182233962392502092150791093228364698988140431456729404481411375580093275009516155206471235481129553064854457432439267030045432045827378473579121564251432249665870200257315273638191757389697376944483455613980625279340456481840060377511330585455682563809388694527254513600179555146647847669779881706358130581288353584936751669086862656253567649254488362110580007183428183666328671068828627070154894674234279375450370647593136294151388802940958801761276466166979531103125895871591855836620438822552355746473988681615431385075737468719831821699908597689703493828633842492652201208946461810186384389672905067943289328613381342875308638859617068559283812319522901372641182717662354248215198696986275561252157438366469618038054583443143009858480703704101137055827890610388146757821849715553730274877901146102907048873046509284880993006446795806176985704226350782758883493471623271383986095163616856530614033079518272588962091275214079977762196464522930130008712382110406264631954679557689493220278646276235870955171673109566579283805501827397333212611028442585723642382343968008144094250198730012847487181131820721683977786831425311506338379395395194887369292393812449007665084261162405075060338780530557758401273620001631142006322926563791278410670748491070210945143225673401396831017968517708083890247764594389207188017975250295494392362076799201461543245437359129527488395282273801157468479978453093100233623010935600316748907410411751716417193265309000132808615662274876242952835715533128871345653946527073508021929408942941340704728673593699240359135708740833251940967123451278361250897846160449716496950772265498974190746509630750330689953129682455708132473254095816658464239212014705327162740042526678583682798561609433193482846790816183016351977667124303484300917685546577193600974618051927445649585750314608438537563313379596426944636837156565186910318713297885332509183776909082320222716270186384580562389416923350614137654264933008015505897605357323127532293238728301251400603097430067550043306641589820730202421038657149348738699580517551505729493538246269961443561569417939120766992786939143634684818936725151627279837610487205166443796576376408346542505634141459464381905812169432821809861042638148832150638467033541708918234510888559236317691235534190427922272318605523084011295505234640468284697494867667871521899284159601756522054868102309253107335817741280719486681658245267056449006626494580823519432071888078173615372264051873012885706458385042027406851902814096742707716345976350352468084020333600486046637111214305327874486957353888411197872624305170308438509688223025912483995379783789128844567500515903036374551337893124560587657737482872524056949988246657782173173308700140131724932907842739025398575400738614238840321190175783236495950447771032898843094505270117297915823940691577488781852329253029088590748873033811075445147899781634696172571966321071266978668493891928801871883451565447091872108805226182796714787902394825648053269668618011450907396272230360669096547078383030883512694775509468262653416539064742879657306021441177725746724583147215387612436752633050483781561263169729059118044729065932876309737515980202398884745590106598521635824786602556099119404289097637568851994521793648914739977827400700630583775149161081093725292882848694673156215458010315342172752490070574051232805889882091555393214940297375146219139418061914528145966972174950908590595676027063089755174738177559675071028162719899728359059384042210542331585126355072786338648095388228766204490405173233400444432012163203224813851512159695734441091854040854884873302703424781438786987213167800740728126124914188381382286076854297682512781508668023380162710051793541990023078256804817368775884402575440846368655186790791900150460121854187352174078999524704690539011109844115323502279156364235023964540050357961995982202420609474569559695868508129436859837392834634472074771215220119959271862610299548122279170384630296973594757199835255727088536034962459318958372111907861632985771604785579719938398330533786252185842350376193616632505712522351957532409342025562408023976173189789049053049349671597954160862828797531151768466645242701276429205057264364126464732337821910742202335014325641583699867114203617425860058611108951796124238269559964217860793526080743860612293079514609618119194137743133834918346495806354031832353386946371515941376666898567256046551713881686532393209350311244158113049964787733427682742437339114432674502724475539216128343744858237313116276702181055836624304687801832197577852108922069158824564603936407655370640931411606531386796068796964115178102748840282306621630648921420464092840226668536079928820454611577823310902785976512422666368906315288045667584581909871199418750462295925471223346323509542154023149950303899158176164525465662776569621771026204613649606791998861748682568119188303971654704071809339628646697331074288068839267109893625337613359312212153693374475468361321856737763180499577365421000632908510235675424122813260293507010606016108382568200628302210849610878912105356509244154414568731795674348695806752459282493016758225520422389481004722390118092867257668791796601781037628042822487927370444925874153187071743532854594213595192726202590931162056321113598541489352082189473854498889925679547781724716515933617667605621384428328417715069448876983293455972200103377587400224910019333479403312926492154711484614549164747218217070783382875296967167985687744205628006909840629959269492337874848396777954282640022254428283215784500010779426725001700506666501511193224328213046230504756102055853794129545239364716669377756070883759686521852595872572786313183705125788130686785473861328632204881851002035723918986821603020010484784361845687671688666222275003387756094481388876417982461879981470725081617531847797279943374766943595521136688921936598125271695406246131487290838648195911372554057987122906989199859284627219724998434818224720114471616147853014583615039714977937706181867659067854040866669502179864338226732849489976619108258248906625356346650796244708722937475754279725146758621112010360927677675723928672653068952105106748215733722854509926085819751370925764752278442692073420615444302400294347340469749644485124662193518325233408740959930164914886638071609779427007819625450957741590603386917091463514989558765985306713962679048294863383361117568351625516614723589754312331342002553079543320779305074935634619479950001630490084029648565174196320137344913480250918870926665024063385215485875483370756965541758476819885720936160067985370824233292343922415993408711213154973020743709226513941886912335949390694130931357254546362288115092924679171261139432089503197298670879381838897214337203044318432575668137433276731485988752756117892174354268953558567860040393214208740138204429267057295582897203618196759150176934265758550299422169450859642898028525887777980053394999757308502912186365792723170880651906880086522683249362686963025539233103811044507806991014853335794924955470066179411630565259775336808856935922078995278885683674638334664839368776129348811097832567956025428326764739151783447065093214460597040561348757211381272028575690522662298255935252814546407203995079202223443716783775992224389822675460617564948142354281072465074423773384293164993567191634374279914386745819625521282112538213833626511006001375653424301600855103025378620422864676201858043724190199877870727246527661022773266093888610789797991502386414365536468350647089402698912974504838006620953976626703052070143435023441541963791781426316968586106757012928238192002061766724541560622815624146866902936461852143472462322137183518517547465620894998802650345639760547246747514891892090801472074824576215456461166647059717455551460518416077561982647861110281434525487516659465127245993296433394104762117115234489736422915940172935549271482380334373821457176076315727161325779291489233224856711361262515204848909683208002848302242057516482337614865436482289059426923639802065923686316265967219972388139683382976589629509117673803069605300275164933286098728306779431828744769129006996813880409530911743101732129481523758040463670182486345287973657427362949150352111883314042285240985865368046644198822955114339373909589505192937799193568543057658154275751639978647125488651063736427806403303127306542201778350930164407736208490780239502581410033008537070778610706750556842892052919174158186938314647832028034797400067251568061477822327539441242509378105766499755224235144952286984327070036673950394082010199365603321865346976927043366348662690295138424863571804097003555733414319541527025306689877722219019405415056708697364591319894404476573127881294456871510042533836496897148946271005174638797363606222998908680260143056494945295600339397484810084892439938498980612785258924050629709759137850797426330041897167569391263647480356144400942083269213472799129027588994696977633770515287938928344441439114818566563972694286613548448166975578708312105831465162212904274094917140497823846443577674942971810069400407610903037074696724671114396443078920264616570857512383808791638863968172237962820432318249752932352678223191338715709265503830153878806350500593346099455516282714153308581855897412172177206183438751313755699540688556767766703416263171089374108274204106245921185846169917340706458075053466441742953925062984969697768461912920095062005387802373125958223218102827697646489358583572265640936883341697511078706325299582831337837690825308740540473667499029434156922871099852035195000190680323892022702758703046291123840770180990908961850462523290640079803809214846674466886104545644692815509118324528958235276082308982152074373646688196230280194327032740294908374431109454906711208673741457729197798512466541686461037739846202981800608609185512269412331531270442733795731272398679972621207535291897257505014250088576959315322882546177130614466012475111621627110345984392950102908947960839816571119825875334260018459625414461791047296687059656656461423054910524442829879698282536330452490166030614811796338426266825608821348556011666427916073822608750166612357970311352279091045657167495651802666818229349596422576779726406968837639508288088657519807727503368699985592049889908264931741004706155956378809866173281471890937236581467075836211643243351062799639032832597567109613419485227235876859365516789513417391429709938365948074537021941661243051563325491000075801278551523261261297080258561242458663290966461190449685829471828519575378665598257965831784700097398349963364209915379687886361958495789519356249817593209045484702587906577234269119490523935630222325661473940769560957999419326657428365283515072962344365282048787191251511198522839227950202132255991362318077128688676004578578280924152706651275455505533909616652499378761496194458858579352400611834056006218569689100012469473818405440698626400160495759242467285562796418573161961528538395619020724318299177093855273571707693323169257480715843420195975687103812056141026204639567438117396461536606704730212596436058327427450341060545012672855215795048404044488503038255463050375284735014265262488699679850338253699185219899622003312101442897590882196118231437547611966704262849870902132818131949970695191129425816780137796025148151770206579920672131837426349546558540562236431424379514664061812560100957486195826078583824893200181489025814442864936978556120912937342713834860394165881601115172536668254544512223059537326447493906832621539993794759534529842328885683372393309065792662880660640574405309541928253081744321902445729780750654033649556973833919789338932596406446494294425701916158147927140321434167767803020812094181741722977182578014678256461394045391697634269010923492877101780330575821555911886191000259578924107677848352000503289161975548172366871918055478055925626034632451033918917602144518476341752718225843700102313562604261791426501210038836368755470608623628746621227141046285830083600637055471997525363065166053374522962359692853600110560442036427428057761548738428910938165871707183887883744415140516550545853511286124705385050883609824594026974517935825622724841324023354235873668195818363472402213971827352189215893440576276230938062529280178429321274487575096294219121682727758432767294129624230568341740387477312757850367006024609363473267683233874463731003909208255994712686021416363029513712305029399603489720232988320248027236527351425243699698426692152285422425812441063735062772784079466536186886632161876663574539458133890754788154738393404918850251036355046541092706803597907681981438771348313145066582381387677228126511199412298405301470537716618435475284384599488541000356342300708803662375443121451998490221336113776221327475090339574132817550821232097651597737829285162759814341123135394446317851672503265841602539903995060246298135555979145567103757063365505389392327900694346483500753855803487138895983499745117297471317220054078165197901650141147959978647706826577666145302750929567619477395887655035840632670836979390903063314733190694837899925798505868310724098091761463782561062190479977561127631908976751962713570078271335401369260106055782041488717731331027651999481407449393857535561653142431387355349554101499662923721716736414378940545881454800985765423172367931025925802314602973537684115824127575856644949203380014753936897274427627567383952503214766442686384170089294140206963906471381519816211235334622695416075255405167519973976651653033358956852422739625075499806497055592710151492235243773202303162888869074379393493896097362500669464236131869392065749597583907160847878905379435305529925895945259254164451644797139250232428250160477238262589244783206887228036093133796047005169705823070418768937171402011842763217560537673159176513381637475281658122594049945894883328969530694062002583501422731410172200407799291679314417271915910397299869328605282717427398110779311007563910506669246923679280295197522758207205845254094303493027678081250776175026955722194934011064832931473411037454642021586575045718926387682939878212593967458326564765648996484730302707627429911779002095453691784727772097220729461879479377881903995088557976614305097422864243850899354408153303550458910673752815626910176976502282979132069302167255603687582477280949120812145032438898918261680474939553354033450200728790257219127899619467740153355007070726629906534665215450221491419923791273810411912331499833013847798958172233897184141163339538874723085856247620351549414362334190819702191451418983824369550026176924633067458662827025371840988217131725889910286791242364964443083073711573440268905224715927778811164842962419369401510042798059805132698736875019485000074363006146911596664940448501061286344276101110195578468729496221984495398465614821080188727410109503619298314143039185497461574765699474634982494442423728672825641833314161142405185593585641235178891727657206039045142264124232183983041502166172774257587010336858440649655652066496464651982798739638493997451284277786949748897716774136680905401830323302662821269391163496561450558233849969345765359090715168128590161767288197633797349894741292894541475852551561160363496431157410376930269461184921909905418375752958363783587253758170062786590068719089043403001571414601130964343694372405315839130361314531045515298402685189728376463209051099616017160635104933705343871714188602784430746278033399835180748137897431720015094885675540296055021308936870975083316907921021218296650931016459712425039920900710275971564905611006407661552447344486289917555848506289274573756430355130549759130793043198682647736295427953488865657478834011719403969129165495849459748118825526603455985975551733918013697520690338295322141318896129929604647423060211211364324397682531246759650516454995893944092550185701605817811263184044132485446625974237165016787785764038797903631578764282752906177297832323400992866414096190021754624689379164159124570909398693884427585260475908702475779723908635296955856665686329540837852563490610576824820396070918999861091600486893873227784014597032326347672242838870941736434272274129144473215535782030965473855342916094772828496652079152295165426517501787986435281997906496922596044401576472208704627004244048664979683237135080469491139909184216851358155926555869665933096532776211706963059796588202798213323232575574162235854366575559846724303480763166559932781590277443667938706433232796159448058104363839059679754496980911804356132241387028627363722064878210940119322895965886402306579916947355666068621787733067841143550904326030913793619857120664923939615372426635106282363819691247115735185866528904836922780094914362114547904339945098809374328241178009887645686023932002407669063847070341657689652982088970174480143126815039430555289351390700597327927833265293587803168036745287844326551461320362145910421567019425026103248674081339819921294186619695410241692128502518947951991669280952569270879083614366199064247150809675749842814818301224426188228533834911305997487627713211543893581189886735769085093756172904464824304044189636799902051894951657352686627813366819100630095839001905819583091342753468297142183873311610857228213620041460733946799142631943042350477301773087655445335401904001733765922091368854188123354155046820159109828563005433985886824035865856518092891790265425078521848033817177347126766849852751291146132564446888870053834942728168838275807715562175967940291047646289840183932174672316715032640944352835022583362847933725759421588198443043127998863286923541646348047245096575464792969395309046761120078063622717408102187164657543492322595928764731760506979804902230597516908101847377692743144823817326944133949615723448173927574550004627258586250649075473705910387687451350407747226920669449877676305049882862008034820564205264045859479987496555818398370673391978660645364806665674006712034294901084189153072411686764843280632488637892294187059350627036021034616297188409101044535040995999445274206472697773512484118663684689870544008740610311454557127891334393561081748824696926447406020316023436224910243063882490700530595739460773248541346531436558988793857013323141498743529395375677033997335026249489215404700025041600095472946878147381331011176005119400906136451899550570645988615808335269350062958359543808462886693801089538214332831623521152937899088008335959113214216714622883204239147333130593520134382689544977330503347828417262010882842943098318895414112490552127140979926004711359097193953361483002560724065115418971671784311840427922160335535831466687228235832380261045126922314375685018016053886626161094630745556010726883215190542090776104714787393722946052903256249037016517003831415533632728065417552890182447513165597377338264613337651087454122599622505132559898052265705505834721312689075719181011943351568708685362603845587643197447843298253147103662882983445371250176919592232721120709110924210970491112733916496409629617116870496446870889112268413839308268041322295950180472480106304069646855481281154646923151892606472930626660491550061693140276941898825008728264640743605302516516351776125757566896172203112939376063882156864193326685901071351892235382406199631005910259801710198880851886203114797977757405696654661281514740971903516517623797627496763689621970584364436897439125904125184932672164303177352104664267489923103967879258517666996527459922544483684558825676851215859867142964850330571615399135563283669114693228673763460519688513649847731240373731001973668320709281802089706637973250689732592298426186887161104331267084807073617100138927153361406548255406876886981535595672509568610012636403453279813207217226013921843675895116834880889090951294903555195732703017661728109853341651725723044293262022594002476352717712818091457936583132473239237738542676624657321667847698068429084346476063651492787800065805580617753143245543046447225625353400843415926373266777791425601348644660542010414805263193983725158493587849316427736003306327418617686428082843742352020661594594875396785278602542475676660353439669748688119628152829448337511410270077762744006485116977382027344822360394042945516161860688082825526556010721673087495531044127756906371369611839399653389023285090196582643567847230184591056927529085531834340607823154016383394228182427455522319445018183092230958736815221779749145873336213473695109431302455208807003404614281407821273454679569846833666439544332456127047814931373227647279559462673103742451827161859154301682015722267659917366703100797984891616905206653797798506278607160544964069433228941824132625832652241597937990759632838166903990057049652978857908558563187852963442036514827454641645691603063174537420717062653381717465406278148818591622434513494677252936821358948280992934920219824234210541241942363193703603173703970427660729958082543737708899288316859828101263878990093018420997555817978132183907500145585885185249516014126945519906071554841523658830401188874222468596078088270619187057240298641592377233181511830222086074393953283109348583297403780561456515390531169250974103866349713560168447901197537254107426995919891114320733212001386500336765517222213802365230373928919377822818473763118349692662076458385700532337555701229360073047786865243476114358831413663728484728171479891452654967269973479246255815243926176503943258298737301066812199398850399170824623294342614541569675086716631905144217779570808970422379760975136002675973483676832485006089229486682318222961236367874620976574502926918519738890775029471746268982547949548650593827864848616241957000620546831327884891589385757261184029674581941880025781105325986929920504073655178239747430689818521011040953092890009256483674310968855205079052836986393937446280526358908869544826903281955901986741004000884954322157487523399999601033883679281205854407753503084721465610188693712616558327214121425864230090152300684430615204286845777908980004115097080460084264951825989442713043553517643070705965247652894253525747158284313532958180742207100971582251854214476425073342667531101679514727333241814460239843586388107060107708585372685072103776914337120664664204806853786303373853921852806490233532298245981656490925808770021030667223701830684124354957191754934120720393355317346750064453976865900762372340018818940124474158519977125400575912875079951289178291550869304089359210869647050381361409269054388983274096570192911882725966752980319773181666174172157398166173849473803878455195508443217147717173026320941349083388145524556086361081201224860292799003516792888042004392943124172102043652228118156760867177678956427317569232471504942640035722684087523405420866741845244063126202553081095179162857103691914019449055577454197255089894426428597088881763280599649343561502077642483740003952182221909182845679802891934625252127793468276722839362551880905903283616549190103294256261883276862055567205359171028913936850391870867007401193231847579202340572737045336098447776172101745951241243217176558796843690283878675888021655474487337357790325427442528979701098944311556631711578788765586163106229189733643980432410386042776551007200129134262121453574102884407044296791721736939242530979235676164912780040114260592345513546040713078877958498701075483641854326119334006956841203214908641491759498907437599738272513468219585649498826818671243373083999736117517268162815098688567057439653892287097547043584230797678733993645459530144240145078635189887691043813699955834769008258022598738736265892614042816726055412103536777722022381674093642737203907307941204386334554250492195013987926971828193028763630276718204503549049701251883219040241427158627479486084989747897089867073530862084390213002069966859321234531038471840211294079702661125975496318225167251542587954367123326176885212661383087901638373087744371557270367732340839047348213372890751993130711150569252456027403561907258802232712499278399939783845330944234929973031666529086534426405954393944751407493856270336175860460915374171863761500301912026248515612744523287650713142265016924568142379812171638534587153351188561552074852257898571547251918608393468480361162759281887656915500901316579512537273035200679216644293910288185256934469016080558755102988780206834793371866690514851353773263734362261184538818399699151056871048407401917555509236124674013132866121735570604256062833259356605002076519786691814204570499674590941615820064905327344076021318290108250837137702835287245847667190205025724586049922346779473918553344902662066359963842154420129669661480663882593047510754938820930844632692054914843069180359621563870781273885351354001571976014311034865026745872366053310806670818674685702296386658104180760374377387323587643388476778423537841459065444807388052233034102504557311250198507617716181003150940095869344991212709281546877944969118830716955622414961966610237532417164635183872998092015475051153632136724410456912294413142989188540124185718352117741302725010327165759008979251386084055812607331394143816917410950648765096918246349182597307242155461261950758107654439466401845517363529671099942670373613145376034631891800062464395656416205107050330107686783232787451553551178679532320395625740917838501287053704903391919144880231062950254790424662486944006898430705545625987013611311420083690779255709340010408079334444123169904181103033428899297025872087690370740108508289819770093012962530156954663785142399205888972545110949232951779261917102110568014016395039823016250811543088744872695183135304610648349929104648147538987460890574400817870791684414974503936186598365923405816176436802760638678165317494016215818192510598264070349389309112922861351093218646417188694954489337371154735740908472733202262205866954935453970798928917197344785480989367055763992656306490213785586395050985516615368704092350144989537866837449895263424418201832521401779664902263624644794706952617090349598964603286739730885082318900983265154326646182113692392244202472219506935597142133198072116025189495040238102872182720433394028753979776253789387791747398215531478202176582981946727492160276538482335057573522572949077390744580539140361261002317651352972325846861743428188605191711843756525968016906013892351940197971094579833767560154598802789362257776030537461775874188149929839019983355142700023235015573718316091321640743345554682672436447035264496542827712900110123097694340088368696448148420350164514811706493518240257047720690485466055373969275383838426777675094157469213070183802304626089370162530768496590981373461496741169329098346408698093763130249698637336785110211937961339369019755307689663044600593896193682125553780390430599627033678863745635902140853791593742123218996963872496441068433654479018631140664514366863692887851228647657471304564328950128824481068224101681225666022292481493244682614461029529609252174401707979798751837637039999936858626515031677487044518447625617416790624173727271919429594102754523197538574929841956746967561458101400544734800347115148236248312263007790968405485046040451987289645973814334664183471690320561766523203716247172044108972221613032862780050255069904764978945487743958887185374661351114121393946349058580042136293436624409385697118702825575968589053004327318297770151113876227830457690666876440031011082304046275702266401562897641433171496512007096185444880372721920009838108878349797902682585888485156452141360156852326091853256181418883744995403880829136813088307721954201662559040075005236547931787654638922050780710196406027583888548451730832573138095228309099196021892743908304110736519861048138848889890593777975570008933895992334099750303395470920931098725548102281789486006080602058833697312330604936234029682820250629907885965797285114826599582566409950847345426503108100309577422949671238808225192179722572925244476077531033781655495023339025119845575200032495522531805477589048502576444351538133417669872413669312478826195796834898520313795630050453881694535484163711734020272691886231768950437459224184573091788624485636106322355874116976879655543003447379807383248584067170952981231381659472500999260080296866067795446091742804608157392655022883830267211771816313696097882783099874112473503220582977882456830120518527820192136582137905544341283944653661158582987771959410167436469349383672695660540526201474381654540946973155527665094810395650846845878265666910201214666108516077566097979269677663843021751163266246447606757142124372995794048674814380875838972631567632690672147837165775032255570656470356693143856267034718823247625565327691306037609068130344428703711054926746226915729247137092224887475257417726207972239537181784338986989343228374188491193937932910253410266523816794817427159914069475741553484894178516221840940590464566454295159636311507440156051967842166478964333389317691932313656152899179044454341006427293189209051976733962784137285308657090790896349886879592015858860940042065537973356128276082551291692913847061914818105490054295217251302129221825037642114664967159613233649091838827018338325039653058732868199320921960341875681896116306778651059410291621909085340140742758789256122254956177927151673345939919797091351146933986214200979208973784021273738023483748303277300756054170313679302770616477478810306325649048827364717511821764680962766008263545988662548730486901374225618753892666771713226801310649824656810832192210832650565624444722940088648116874026753940156721522740888039665198624684466851434858847448433332464111709988176081037348113904315862034746980406239411165010476101605896034627992291294074975545818403658564718178774130062020810823012854062977066159426007158276139254816138906421676405905652375988999403827501501511317948381436390540716421181439500795316447936634788430626118872136291163990938736670487950710215631788567982757052490583207422244951979949882403240797796263406477000961646286731399301339440690212395069363102742941123893312010529832466857277339825161986032397501306188020074584487019318375647552649212405280998377443235994680419513467925464982847893692668359067373310235318394717966531465600379769325208973774209554265794807751316280009035600460950619645599064749947435750838722811106948516745324092649048362172459252385529549745885930481991422109012082312375317088539618165774572756625114399428326556928533743387909575413750744418752226365069672696307167173756134901242756400412757015585648136073402335913286965453193751094634519671049060983232811662677878913441787668810621606841168288769570295204309079548543095471992246951169958535262404280764894791377926295047675456148876760251018279942707035614230796810531480799547991109516820580115926766794775074089154663757063874832845155264546699499154883766274780403126501424368217436352793791067133767624649884436892654943902018439852132222923655196141430176822764343946836395738411889594117229948531611252621345236764892177756801901888518328538042289467964947708933977221770709156959680924337703996220571047310273185673238017029708537208053590659364493620511064714571955006584142887010025977120624494323266794393609904611160113537012932372256905790277621492781463804560203915784146444179103328662657148742106586129904327225643935555247326765364560184268363549804670681621662356675944454909579480258859613553220743361786145004621337503013439895189098792171634815365444694934436504495377063098816611398481880344271656884454999526976312808093192991421505734608720763822316519555079338273310094509400994489276333175845527941593124035415462961201303549262530581575437592062456226945775525625954724350155281999782271667786587592392602602967963857828579905501880587593392057567465734729234573371570758727634509236422921196496441098848110752226408012104493378199643691796685510187928428320084262884919116146811327983285454259519186571116642965970844295625721711624471271078075835390037951348783846141720049748427038789272180626784554923666744361492033749764926622365501973886205146511912721898408012553727683416353520108665150347170130892121294648128242905932869832783466533387958041843184682263099962387686242187873188914656550142127118773456575345442926386658184326937456246159592622544419551063317180047309902080848251022263262388041541726957021555460228734441151406511543621834820556964226762608670745009266101875828815140053515212252218958968949044611470980471524139022489023175104238425069735557462232107219329337654495161185801841371413659641208121792062950909138219999890220087976960740553475747244575614926961138929558617918041898110765741148114673321944755138393789288050866026862428536522743389365899296403041560311734092085842742495619851262722752572573880017778078574859789008884651508989556668204473110056803876158354151792015687274135049663400913435820050843859328334839913014244973022007539561991640608510293421930472750664399434968628928092281821963122810242326014392341651866437909472350469794582423585799758024783110724277178482609915076819865353468662452225639311719245803528233821774330018138532003746354913488634671940639047014073195103520345221326143471163828423284294747202919066075056873722913474804280765223169080414761671489998607208201866624947681282200456521510031058871211838707516045565679465552891717772667309463692198677187621493002213773136008850356764922181109817926896017713299775646273880034806926560876682765758745433372403816566425959657471046326570839156536194322741240735232026145059793994738379926430493750754871557632115024486340617812083023637266918564266958905345704406495818763850440763391629517414794485894325702238236389046648555205571965222253279590314029233055646003380744500123864879792584417065415618805031518133900940727493596468191172917990919800713267641544479089596401486803900354132830482529469360734063984340465182602800727026646857155037869653559829574176595965458865670195640132161066589958049316095632513904091265122208463965008130530859378710091735874007317279090208524430114090212697906718983140077807379120747961425906974398240140498514407629227077017426360809558969300778725834521034089195663169604824279095703913314789550486083927063373165596417525282531962737724279070262970939999286112857779259116410796988264687656050606555236343440162125913942355717154789296618100924971884189061146182537049490275979842215877251892361948633846471813532861571241422309288073523395767721853564694685845581107793759707624379130297557098777921157047399303632871378714970547824052449480391169223239705743786734835802088011253956371664571217749056191707087557828095836625375760122418221367176148631715659414313824056889513204320729304899253184165647874272257148178384395393511377428294257751895417613505193042411388138463021043004114906087860363033235676415844482279054053591771707291974485519332092553862457117376262029909274136377077634669614820241517578579877106362092375033221618878749362965262338031075385747538841750995581906151053063793034437918492990784307821302401879410641915288913862209701801612998642759335496983519951466750291439885647739845608166735424644318063698418135954422406376406801729571768606221193950977049640616029501220104294395465977348938051265377166377320383776697809038767772064875538945513299200485038452391767283414158298919150405455175284871244258640105817360219152914199552313337619830306188607713911582455979110905987540355610752538695389810392945057934021063072818497148848659836435341469921684486152954761874781918705637918102516960410311899138513066578965204599586520006540036266289428911315072798220990225192492742565279701667322052741000847942948920987927866858252899520094065236260175044070446259659803669352287653870886696986440355245921453173131990038761156927118911870963549099886301307450225228546997112813797484671580542549708958739322710277416472732346112932320603218778299231011842044320440280061599578587592025200023808180578948245945820990340532355297722947406113272820344749152981866261909979583645972194653934130476395795889625813709375597365933289092801686338985737174041829535802257491011704580656130295290308935079777707516315071199975953739120357581781889763634405396186511333848620496185246825980957570113612660962045495290516552822795570432032507263308074870284955651857380428560472253665069588012123003397908687692705943132028726130780724780666431223317555340057858972372249374062953352878105402171269273230615134205222460366354859789327283857934143171646566110370163017126371718036616573485017595175550555459111531921179139963799138312790815353480423367605603515824956675601779624956830186633345235915920433744781281818999438562865040288179413209083158648692526607253465644906949053123726805170746893364965159066217919169734403984090833247710551844432022681614673139300479079805742367704314323476115640232517128512201431352948810189074637253735187301416299484700023091791631716263246340762220623538376131942546295571815655890244916705905203793982946225967090476624720823565034689430739422073696944615287949051595518006328624901549317083317623685125588670668922128647016439028013288575389188644688287634335779164999701551760122432705253742682953387405737352237003672029861518320480056132136699600129011643526055646020339764282132580085289765627141116844571459027491936846933028544068784725397727804781360455720090156398004703186490070980680692164147470115224565394401132619667173324261955271236101042653694098517451058390241239516606027006280554566437748751495077211215538979952387649178545965037790207557949394416340275284889004047351958549526840259773236590558781942704480182412709748118563158748248440263277813339258870004619221361334990824053181753321964780276855602993342987121963679772048020744143123973776052281401694026214352231706076449192890026583326061885172549024163846676064810601065777169588691362455571345694850939244414820614980658504490245805486497501670227598955898547639654813314030918822458959539893490851451192264850400282352021547319193777111894449225087424591907530236944478722494226671033869192781955574084917497454648937753582453227843558318277439676121568500952420791912337113604233226123738613561724651681582553839566513932522123723189787390096113972029979037473110882365525761595702305426184515265024333444471823404809625120610898824412683957507455359865540004215976914205769902194046568349755952122641774974592346936529499925049924377413808189897520730260280069305151895486268694838998757570882030528536503386567635799308871392930653571215964539627488806718423040337304605738666703432869462188398643509814785294710697828757403423778424157567080853996319566341408390747710559775862976778403441351142514183663414030478683628529848562543129181973574123789592151112487957825563064488639916474284376159915472302545873268844608309059569825454600091002006246984277856246656212048188118730042509416995413597345393927274685386544462477089091750492326266480532313782611256744208010782126868630050538777660633623675037546271654003274512349701035359644548337715598209959280626168830022727620175314434301181689682120360659037920826073733147248242385462944539003443756048298786970812313765497731003808072508708433580206670146324813238013289083390179270565583371975172556961942404684473071901923201682968119559222351247052751023151713299433925149086868140057035058993911868970983603539085249649272417926570319565156650312557832756370483203762043891744148005981214210490620888224551077846630250410318906472600911290099425950731698509652561392788598435762087646610730811429086402119515835908810294643375243598268470297830648522965118245232568828021593199113540843956432949324984212015627720977292721331467380295385363709147431472726529622862682723451146154243542309805187602391699048549664794125566891181775762759081189912747171348699139774116005440608080541567729318373627036028707579009848710301437824825719524205985075985416961104829987000337674875309577024685775770169975962371168411429623026587616549994055304216513811957693783685309314736479963726247519131979263470193786482016115928634578510384277007396488698540766534451313439675729402125093626569675308209326971425220200622929284885238886618596126618866262582482357089113789785133779998573008170311472323924990882488304193153195558528957347164285633168358550645259100864980403879163636404519383528115508974416384504611305694537966523037820689864343574390596278187448511913948212016610052305076864626341893423968868640398371854009541125091504574571361745609175831469774976390176978214488808410829724210555785765732430047000777753353990689602786548589388333868364436314333903645983246190798142122046126803442829082888548233996951838204103227375416954531078184167992854182952236148730796324048696082016641015032547420467317094588626587128787460822752459676735923563544214738722714488886139201788953696614211630289228181741126231381792863495008397147712035775283869660776520153631532247895471714625742528340144023557308438513546837699270881305791321160698701807728976071874918237277694500405229434926988813818431877678460050098790310307014386871573071107518297032328060988344767692709368084313922106599721209322515378269661995033545276173548493197488545742787808873308215412418787083094168451433505754993191278110737710907941744604943288162854580028232413114312172338513164048687876828219583490641574968437821912078004101118131019236866075379118397711874127131980558612880496235678635076290333279058416645028844593548482878981501466341365119646094298765838582987234052024977785862098426616482894064890526322966355281223183346150756021840134882217819482670599686175917432367865844027110462624798152523706214578332624213747567735191829418032239102871365854263659607644909314859554348129790746359554505673596652745175761040515357850555084733382991503454347650364495429854208217027913379466431996150577542068631640758618186794647399227134591244737296058216163525472609514251749209456358657714710321283801776382868223379622818225673866536099628030537876584159435077879026834643057248425860563376001825349800234839407878960912170378507257253371927787937065602349584751441735716331863006067031488603872079254041233939287000079995182271303234672419247672304088823093192814779840364038906520773299391615470887182758773041936218568114713586882315800435527129589644846816737691391647850440435586523156973905855406362483111749901543697736222474553277035335441159575057918707122948970279400903555985944345154724017435956439574719651336858683841132937082816880137811224169225879885449656983513813576619984548889078511326662649429599899726804657203590342746326028437652546233899582307629198191926618392862689569002739309028755190695394762832988949903142569022228157297243492827104520074154433309889379836211791083630262708766526216799290131676534784644066595048820721518659933261094511769650707634939081959724904078045943788895564672777382053561433298835805685844472035162938985766924300090628930606213360324690617698058609425281187833319164180196128515463150064402939021008369898692537591570030841011303150819524132342355512506039186067780305777695380522455191845935836019358997871778080728925019708578797581999328953495634248518421945148687609887480223463447691022528001317875905142796146908155926587604711722037403987241668400785420949359913326340923823347979831384709820586181822599873099787940127838688142728422510425995702698412737667116602982824232383955877251070104308892431080140666187223566943228633609675714592266268154088406379355082244176827714296529962233987298343038331516193835067485100669111944863954957284617480939331431432749955814888274942031985531517331512582901759202841644963859930580414921627513615837836439769171845578630830935355644900821303324026204268008391708448454884520852654203025097751773697053950931901277169405170952460388105661532526414611414634282907878972529929180200614947073655800676653322533901454335036382838981604685777869746800549378092311717378614370063445197637090264486851556189703556740191137789034990508791564361500353542018838708446264412026367835532284107920058841927624845853494749367931500719601888230160197117243378179289730289216083605423322599638090630286659625309038832450761671328419293386871921022321716893463304017390808281441222516128384648236292465527063473786953097027883955149933182946430666275977915630868543458693558543660521395354150014702982071845950159256228063711559830823091805795412867987781292674200342754039517698726928174945931167812786061955656916753199644298620370500874507145900558180385972832328512035836862888314231567571198035982023113930011041993217842535140245801324685531975952163056239920081432590757438407360200736994079710326887984228867153869839597194345531073674006510531204446558769480837791181197881431432185590756265011239345486574029185613959717378242756845823276905893720349442086978558685360973097889574545867981813093904311772958987908066259772859882584204144873971073399874451665772168209337350092066988591889114546596573712254451115244753387327376965294916629171082925129467731401240814210356869913218101537125511789294641419081681166535579771568823505827152152787552402415708232219947416555973564023206005688754081179154326371747077363255499264046311136413354493101722563070354777262343008502268051145502075713745400614307110777219879495588979612723956037869711000579391998240659956143359983788900290224612207207104553481705875745804470205436274441819028403487777132902045936065488127100841358664811557106775371578119282875194052256256559131046081289580195319717860770347621261724556623290848677676230353567162720811040850197172785554722738807394840734897919784892350702940237901698704921888580151144425604971098646703141000683035801805036206503484558512126462248586911370060072526389127933392852782919833848993970186900079629261768608565949844869100950228733626463326106918499831858017478507148385905204799682450315156155652257567113923474975736930912908123307919781596675621748424937231860481853678744249544407245146163042392535916045767657141428113947795797095572509538003624800776837833690128405879789855959200552092424227976613471826459032788713068487105400224628088862420828312241406660228895209011339591917113826818407166079109335880019998561496211676782794689900066548143274750526630633786380914759771788447525488004747339736076993019951870985725164448266176513646092417113362753757543581493958715960763361237805097118375792898273773679321876047619282805490223272861761237783823268043671118106881573547183079305782702594318316822440562933866630747535416687845841611635932711634679859010105240499059515352524543127980622153766680100507080989819488885189962759368349670941350803874801122083387535762373918728269633442341456709689715250083097468407488022349152154647648607851776279012700062287805409909109945515464334296911355283135666048258489091393930236410330122142979178806575768214077224434428101336754350547879558090290810510281666924888581845049811409489332744089617079750582719436089574327217351030608134754420602142263808758976269754583695217953512286119932275974424193901860558775641225356742717797864899723866766494851890459572919382514249549985548919908720516902953929571259542094964937746810387799036087505521014547290272700317579068575987947780544481274948867886584793992555914808687971129929319793145913875606745544038637086346072391262227212392554789618662155134763476931638705111535394938473264457808019441339406489279551950533090051648837292801626964976846537058465286388799716233550354524434804081906742998110934043870070879258818273448867655654747805244483224191773139566829758898275982047656727265184434933849491854172970888129190612376117406289581544216177555566623336761507617619776317120068894695098024027669818621238277023060494471846297277160458030496080112956360122082879262640909883244753103632909280101623645886759980627260055950309139987846837163283338269141044623965071187092853261236498542507164824252840101519054648281305447528676318099576960038016541952230426126819861026948321865603551879093190996593323803242897100673096745243888567300562745568576993525412810895200334098149454656847984911089982722137459950033840323163778263930813712699686989689873247516187144939487471462284567982424497932048745544030231240643395615547333792956325696780432014656349926452686687283175311402014444836788959282246981150579161744506952237701772149942129377967731816857407745024156583899975215681703783064218744549204053803726222599513142869400645477701138514581798964802893522600168339039470839185250620408623100349448521573686785135028074876907019032675290366270526289934290329343503108058360870600492357416264043700598940298225333233906600916737199854268128636805834474863846832478640681432024327820413307102811401795895616981529540838605919837651491441415615587174257660468995480251811620826334520873493024548692604714180107594872421396697175864036488725405207060095959540242683971627222194345486886419907721147955213828344188991777217172636024201446811119760783336395109170287727348144808380045267240652039939609481535068142817738391070931804100114293036107988505059895311166751005839689903374454142155902267154708525088892348345116694962809943589337797685454090475904748192595366196784293280688132285302054064116417413035509000025971900593633165277010285130506287762061844962101507527344129485903714526330963632264713089012207551580656330911732057026081115309161903048269524028436968093826748025389569757768004343800188534831469810187907057327292485582852609836404664416782542362743791920684971462316431600926622617678857169368772607043448063503098371617201398757492273997265943167254525564104651697216648369300539417927540249658285386607519456995038689260983309270405946540469550458664933910489687172433182792283945731497705321778910900746761788794406761414911647142213324438153247204666789571378231090386444072537887330363949170575830153352798749698130793184024753155904310640786189372620292038939316179354397710673161259085362629460713662956418656025462853351277653901847687641560743740786506500547757312821266182345255418053659507871362150550172936420227526110110693819599775883277479230582637020713038958600861011084085901410053933215504807593652245908098548055655371631857467299967297400588508477756181293330188613338781608377683617182695232228689254613487612013531931477248780542106943514599193238472640598150670325994155712679132371173999781888706762199363950012636386695631070276221637655881608191234187958496356777029392242128996476124046108636063133379733460881126064898142805779204351106090929541469188749927081239648945863275118007398907470026483183205749917506338044142163764935106510798589664909351650705740713670488369693745370074446469738572455158066515280688342920762930825102608015922340926584826180200609309853839925264779461643803644411704818850220505021753677607112330795394723709379030787240117038741419107692805229475003104191826120115738333584736347404497717334505857470167561497301960450737098028598639893657165013297810375355036582500982955324085076797065271921064074109212967967313933757317316805945810981650269133388969749399044616967232195891993681339973699363612093177395401412759776206574024994367263472644141013687654277885231309776010923735328179087635807254672214617846278109054574644725140641203207481181246538420373845067309990546121115354161425634243271116969341155834205187303991639058420183738066264937673748456685907340712263581928031871581743730870704577213555218731802271808761650328837029277701271636571748676673326481675687266267258890174789125591661705714239825985384504480415794384198932775317716315282209630697452986158540060575850995147709328871152190686611167510078102667296759693283344284768273746004967018044011798094368492543094632249240137123242053350752532777358764059637914571643165573000876649548139901255822856289899234394304205483590428073821596128326123558450015356032550322339920040935015954858495453714745487976169267432688233564081318591668602067791121185494579445149161554133506539570293186466262280007122096639902244554794516873536427254022999321469897557558578216258265878195722560481589341502646650267312807104175747943850557176330535599414372530118672296701011874667957689043001210404294098026416192384761179736792212897842044029763552892739174792533171259465325744939379645336252593476860230026655970847827269904855074569122197161747751274080875557369755812492851917719657648717738188784677532771989092988686961718541029762902598763497108668378742029607275022045800997001619044360609388693975062109452439588618387136800278349913201956608608120674260696346831861622133016826926562950057761529589938875996821592794661296428543510164197731417308246987566646775357552442601304352032943353356688156414839550803351352210926022798174292343380595372353658720786370830158970078439302534537741019223957024490318018306049011065060193014448051916705918070777658983874741030683845386419566090495646344067019990035048709943847939630357391377614701008606638879468579596427717881047711271109911114904490435129859584374168573355842764906168349488792399622743765120072654903569869326139464209911460141880464088458878259795676984277376784555367925857217182806884288116275908421300567769657311781241711139512437430129392526511629609124726741644382689107632005181287405850166052103347501440521138043083254731222128254378594292176704809182422029952784384654366712481658784579781212150763651830496561596144099566176836153822803851644410911501511600966275788631587579333481059155008721779384088985479135842365551909237083272954479160302646412663487649268477099619053266666559194999788007149297339632955066321132106003279418634085595924221543496067659117331333296117502096677401265720521638222043414254524791030384422283693808176575434971547369933312459795484268654541592262292000009672181908774901872715355806957714734796642885574051105636379237952007304411541121667784015101585268897240601202163580537745728934775847249780243732115316237257201284865256967980804907698148070361012604310022449350103090028403279534933953453722357960172187511617229113020039075671646217820630840388272974613429106956463711547974883189732659618829032067531258139671570114002281624605907594849036121736731907673664673716384530139493437003882390576814505289671672643825540298578512132169787250799895289204607328988974284729458976615594810739875674298721473051599593291212177406621341609273438677326647010527016124491349249742419170287748507897340366885803855832835555272602436160267597714200692369151853804130519211542487231451666644127685361260084388372770187971782145088738406289827865230698848381170037252016027238119564332762057250538554161226540193904248328803802014553924514192372456652795961393287993814516673329967100698685127789755500131089168601219599998912852998233686582524301841696182198621844233010572826513066978174332777104800126288863075074013611851432828431981144157703181328090438968662325353519525705270224916869550755965569343442192918752316627179776925951980918956456776713579208365858678909519127647529211642084676173507962196479819340374405481962221903314338748584871614321952606508069594799709980247874072941193414874059565728894174303193588259070627590671536285248388336852468026521511846484659986962220629622056941860536472552295016882200898260574771778005832701788984414807090466291842511783108195084507404277309273251554035673357902113078877370565259989542381954934358878357902070849220926488951293291639454727029940063129815360009794663732870487594086602530970163895698827660568672085267624046875481874460603757166118357228463875105892163422010933698869603110617554471799667745081617904612628657422764297202248766015514834188131002583445588228346255440036274601074520561624529943436211408581415938276697783438817047695838433830015405080539302791949079320899058083533907278264644281394937819823607925789792148546278812392290250815436436692287225469712701677067722288961467063209864828576387271914385765666976365664480785547916397928298160759359948295895682952277014888639077091693990553089864888294547731285381765861898478125403356741297847786913160186410500830879207019696113367185774637451533409831910411882960444260371697230708955926169123652195913338834901649878683133600119796526245756740286666382500650318125600719238528185704851959787205699494434584301046271666016062178421685656190969821962034572467621876374207929235103157303012418700638671185432760965827672525925540470917234997417603449047717946273752940476648663104777340314421212768677656654462919049844434887313382287560699385880510317865668077940300342306214203404652733818276381112591649230575603212763787789176173188777093128679453839312460670180525298490339992394784124355093827635521941522407199539100009001747967783528380348839059744866304147613581730272526779717484053159643201169235017980492923147475535776967785805239766650749676469796852279082529439493592929631142785135502891868673249786418423981060771401946098488869353595220979124665367356948364907725082021564985680203929141329906494082347403217869750343662344253427288178570672460542491740112702946729191613859343200392069144980656194790097391520860836224578696582155483295830714790040174796757176538727484731393773575621834745370251660509139327993483784780288156123332752907065341113321140155761208028030145288124522610547928312777587808377904013887074245429326174948810731880625974827988035944858209758271442453425511795773169100307609123763221542323427412904491895221257935046003515041042870432095490547497362751511363242132178846582318135102657417400574328243773891634761706342239349180957303864119589140773974594771485343322653865066393473332075588203736430484176368310522212726450854381655691100729363996575388179296119751144281131479719740674632013754557606272379857072733415836628967004999390118752435990019930434146243467122223406110537129103143860979080037012788332843310863446506117368722754177494845917981042669460253020117495738351196604187859353851856045728752908296843094042186656166695901372641709373554336277131297113878978945812095459458439126232534523816615100913576566193123382326618041020305739444887663902359045442119749531994664032124464696816009434493511848187860844425211496180815559018221516778220260383085523778780267315547535670284075557537798590539647923358584596106591615618259727697547987336519283251990421928140962925819994916982585672451718958319005927231515600270216127799035459318123250644027347216922584378586809482198478936435680381126331588323189287431154516261393565022641429921015401600003835101215710443291732394146673968006934597207303831269825986051829946295413151833260015071074044965644310734151828336535201183825224790875536955846647714131648575828809324036106365427170839792008078486748553159443012373397007026639872157515503976488948086392962987983969137053106214033686106247128725100316340868058764667974384371171782303617844863318120609234889981737535545826404538723178110185998492654830849065325950047462495412564805808879804711658544488664716744187939926653225429923075384650443339307561327848230253914009903823566864248631422753444374786025701344888019075947151614690934178033368420071097415159954974756907126749514327060291986527812442363493135727876681682853803727803440156086021995050133350549971426778490350826916330560965744781868452805632790011556231695015107145772477977356061851558228793994561634396592551891778932998667953019428047271839100295265923711305464906311187794432121239441270033625644917471814615905945068712934202639690422940473472304911627003965184075559979108013913955826060041363106737506387899232149071316909380435039788270277340619423734278543453391883448975624860473263723061094868080514948743647725312304164827659985185374910849739100578566813400032512586207863890594576572437779032040492048703173073720159765692507151623740951500775865793904814824023054044106507789649013134911337760407254878047630914961357311398822617371132793531806638926557806686916963138455157694475330414667833804083697649769209031697957731254634718454057699874399798931891854617645040417942167108077248170703595142474781899913955048475494244613957606950419160845223733667787226986424983783202203271891129019664788604128130100713993603307741769798304471788369377547221757755281021827312489888946499246014577255002294112111908260727908003375501737602493949783391906588790913510027871052315443453547369823357162444132174184830409625840149499901676189129941306719192489175886975127557546410300323141816559729462986727416977074708095426018355770031616953376827492752492804881652294594648010045838775012485744389756860234627562702677738158569635460218115242552921218340200756078760277790885237479303714490776341623223271801722344323881941800896344518851652245433711693699690912988491799263002880467652469424771298294714937096479576890467854118191601686005130254093365264153500668973906048779187258619406207849347669036827019339625551685506445758386531212502687672756879510755823986361739784275431751473948755882625959349631236654893072236508709363761022503262436315368658586820890635484598257207754045298717064424671140810744521414010867650233569494194154115833151389414744393182168754087354213251555798598221633786234522748235500136792066445080417114644712396935385370364828379798548966040339182573944125282316076919599641752441529553595813295964931511489424670598484019711869957270734321693720951259755607561509160707067975900254938457882677197958372246810088420135206817951609664533209992425507797257517873454130903046046159421952163603858264395985587624594632823539489859807447949258981194525959351074292191637820329558231753137197812435281984690188208856990310080898533876116955200564245153709540846249061766886730818353910513049391886816361856174230123884786847718732692468219265722927627506501866716629083205693849354551304071253873132170092467273322060969527529303819406566683136861808423372058770505142670165684229244968885981653671176636729658638522051475415985040962071453483928417792748775925247342555296931310037417479194398305087910554739752915607415563583512331401584057617223652367819612789774845296448520405422745916953255364877494550316301261453461784369381893484987515641159332530279964142495556503645767069630172011719058691234338827199197296717664224281045331904494075766864823854349537444151618670601578386282836560950989468575444387491443347606219124414758765520814335166952993515963227719394010907046700317901296252332498913075195293129625555808336830789328421653988385558569686465592135298781346775834015921988781636837887070237024086989566110234730385571865633906284291754412906846121643196913022134309842711946115603588734606635113357857548306767160120657397884197927650456530895917278592452144011300257162338362402111959017305232773071455676905812215109170217716211103933976073362132610166921524383550864403212573404859330914109337343539794892018003598683842138686275357508021103343987026615008957872459540715872567571264756849070363842790243333546912073575213606940630440239937240397085490585250399119509429391913550599291025850925547806914538352917052648710020925466368849813055954556808387253984424579889024385082305629666885127370945779717388954795990933669883724812064303921536188250766490664073033116113738037170613553373092688507152158427359378127142408871323986183453791768188915428327487878923241148283161550537195875217606100890569018589841382692578444202235194724565705308393900612840346159738823284703996797387003369752196247636448507082662326273101152490471684212362136481681147812181940207484518421272878025271880221386190692623997816061610086679060176556233087703008363160335948962154850603043143077815860020558712962321849387394354074720313011242199871404012127532102216662598897862820344681331815007854206089911086572666766562122252990607455148105809865305137809756403515420195480441947292259823597216606663982894254205022854164856187799361112481227752428105558252626568377391996716521398831750805181414367846235997252375891812834354596548235331168462068163751277179182686586013278253270788684805208923426336531368174360631750010972536208864262497517968791251480720677866702508249421299079592682842760067698946434044782855644302827481743232357078226147402767468836145749933472890641251825278634559124226425038606743005474703626849629985331051960612289175776987258134022499668394928754703130369566718360535001893314257502994371928771439187645988002195843895167001210190927888339997469607698584136545866733250623367137717531552786908092465683275619010981574047473304465913156508409020708097082581215496284681077941511674551959837470446977996155259043600622540619718331910298552908174527748715192569296978224950424933645487449103121325178753960765907118768947093023613365304505096937622028362561534107276126764033684805883640773275606448714147795781022152492265244600063884024574092079984218950639425172538503926855800323011012515571765637124398440431512155763356140420923057206108225219541505432112729882986941107178921094129002881922719150489382335654638608791255793717719045933647299103599439885628578750384021022895658490239154429036408407286391511184885402609990646265221223470568995268261116670793313692784564304665797857126599834413483915935045342545978871942801905304022817108765958163686204090389043352912894635814692243178647482119960982612016888038949158919034064198757058829437274860771709099998580452429115629780888518176621639216652865431912067633504603995736108357654638870348210894217890293794934432219321334653714918265439501056214124996779767203644337124830594307625956040428678601585516819219788659151618162589163878907811377515856421066078294317168124520673895755242660000604866808028805200145787961518054793674780028413269390791380102304797794039579403577146466985471914792550438234403826778862865173112820633058900469844904291495441803557140116242485754403148142565304611759656175095599762908101920920505349594907320603517258748546426224015096902083617418802629610712528680781456814402140688925280436352536107287229725818479118808949753871360724323986631650853826228600118984924717379012677559739228066099572682878687337865119702993266883784462672407333560353852283102033083900301583089463381887923748261079055312867235322738156251937350643555211748312021491522962043447552828046775604426867421574885667204089782564678908043486662924449976740182740723874883595788734511042188925368736828338780752555998551885287779336461900434312438602313312217371349047275741915685791579483853215703539466612962073148257265614572896597521158806683110897757440861725759357662540607407506143070179437224742863599670777329086292066223717070824678406247389784069080965129449866603113747606286338727145524039618929885455776294628852097906708419973026326092248520186726816415889706100981417731717520648880667227584098466524178781435003131609326712471651183136899701583348954426287852713523266448249902756926945473212750169880019082081235285106151521453905338531681998971067290728922998842815097489521185925649167376460277387832792096512064248262219284226365143845214415133097920294744453587798667950348666081658782568569016909197217118121207397868194413841801149151853731480809487501330437177313297721775044870959615489859965599076452207451580654109322276506045240635105463194410287326127178438826691977848857760126391989616824251176285245988472043672214375574677602247897936208324950507341041193839098130543049474450489449396981567006257895520742425204316148458092778390219598460900652358228538823708770044642132771813346436828391795322792427654637318479387918761671136874070444425448913621773689080732465486911689064564512532215610271456159667453690098081832391994764725710004387063741258444061334963538152524395269824333345629797302098556970421061152221820672099833512898600740511869028366625875704822398867027598863406452423090057651584264634761567114834259858257726984500661239511797513531685513549935916936514804599420128607055894875667440918600797246825083740489441845796381257692096330757176996074590127964399776643054469740069735574316468544303579128963397426646931145235427854887953825758162797904128896366447751370383991321546788703088327753294859617839981211738309252236224618524163782763081539464080524214305237322412988918241586735208482807163443851146005563167274197248111402782745356130295817131759081200503691880540996652221645805437679760373298724569958194521423815646130433241627353367146987195198067698635567187551684940842434909210830275565116340074914752896533493257449612328341589760433271463615542628360914445206822262795791766925598358560256746848183769882710707000666218729640011947629071140304803058544119193060515340469642509508186959011648190075648241200991137923924693839363109737480030934714709747121709305542018010757082173279852061496364090419559012760132368906823285663613948292550974161880055451171075210001501913907201629306317977654525759207249019690798065845545657317162102175178059463749601416035202934567670584298968271590438586029836221592837492497483204714180583429109065494652196335718004943906300305945949998018416409148006462843114324252525604727284009108393863346650874578855662108992085188725643563280822455779940706712103289454095072977578056472084494853788438260162842157696110708438189448278807785494861575240469538517256923383746611194615824349917517838842889735781035264736135320712884261233364522111258155956274711877603155251765219963066007049511703547589970827837778234588553335491845456747535297698831581064988532789892264529053514272876096723957878395199432020487805086401826864964418240389637359149596056992608006667356568979842956873861872646571402635172516332642490604717908667991119571260177781466174589977480869353025204779029604965573345024648044819053746879102253252679602508960884652161038788958905942981790267569104999854319316118834318627077081261481351765186242558374343868626481051845889149817225929385614716021075699697386817796830171615184106780058753449822201473423127378768995728643060057890627964367635749184769653926059177906882847495498554251957323489298153077636167312672554961480986399334802313688135009715160746900991043368144649397327621416789198783905702304739733079842121018023034051641432491666560678761353607581236140136689556714075122083001372458771656910706735201064299146609347767375154901218105901761794104575444701045905401486850765956745209121853118885052893415353598141964230764344048569442713404698792252117814895951641424866026716545348762515946254434651963537930752741472059251064982706681182722721084842805310382141398682173625998708287130227846949915103627468837195343439264778329105666223690620345503374891650285982002722700620474731722608533714926741579702230208837832121320625954597742121354456742736049841276939632619476282516144712745655806919297712742020963343585599716539727507468234051301604438438997971302298165587285366990650528624519753938499743802829383928167379039979041733934143491372451735656559819763453044646397625159815286736463187596906277989195923372117950180426733112611836493230606197150286727433530984639868548290874515428901462386660266658705783835814317216488994979244783871242598373168107026651419554423603510758701608733064460248633568572555529198394224755611459508701621580633074950009429659849875720697885867414634653849051955327894770745594290672604353491295917685020428579248194069196186898510449925195203599297286874599283741293289879789507727706543366202403410173857202918325010752397612212003629727024373151691433424648808590296065336746581503279744384135673984581243725255700927221635594820595596601636627678084228952452728278704493191311670822950456355625952624256783941987043685300819008842152665234806364954078756342754471453636362016991220981153230093376990124183381548248466416238139583008318658398563617903680351835466913548120302118838337782008025195050350362285247118149490001666323236120303547958008256536097266180508279524723788973066160492571982331749795779622292244397773897814065265312982215266078854527430482195721433308234617168902980559483104397372769433100995395579215403625540508904701812931953999036765297784221420484479303962020546855296572163884723345828298994474427742852396184589000592009881711241921217181546267371360835662061405114681021398142820654608420808994938452119736257736259505349146354976862054011656681919278806084609611953712093402434302342862379712894708179745900270512675215186833954570653408854937234977180425473344130270452320987218340700628017106399940851529140992197301382204813995230133051373873906702665150308930523758473544369930035129785702222090411156302429244299738374226036785071823306764141958021326791230656794312240146141058741365691689153535258047035878520071282778186659205455196660597921827170491479413594973875792600319496806740022155140977725772317193416884680849896139392557952632896044059696101705229136763969693526993392140254452421635102498839109663428892836240417020997697769061533570842217923867914184175226208242834121016597313702647831427410922078469363598632258378415533383040671719243007311855261410746575738877424466981766439793603873687207770535180641990771585917636910228925741371525333044719073817467854351957368923643907425171708550836490790492818847956173570252441183077988482658358275878353987269725376659187917932123167238093745650109323425057697934829702133471793166660770590428480947687410854150520862539965072201347076993564292649868474759619164615348256415330748728782210005630000048927376234426964229958444860367386151634274606602482884829830435921296953745493248183119399119179629716469619913738221830560129357347289239030134577374715643635052343520271180052920047269191646896766420764725753512058538111769339908148615665020731901544544897154968980851124395099846838614388677891185617338859367257651071829716735616957879415826810216473995022509753484594473969111873257415870667519911072197993893812066761341273622729476931117335235977004220197283639755197778675180040545696346832868529995298948180247285054982717398762785887759987516897712362046424113344285960393607858650034052841345302836732099185263421441696280308259148419186591276347563297136847647192867297990108607162950277828728169104542623822080261611870830469851252433166610183172926161629500236951054402095005884130060763100996188584745902714734579048488994838605108467596596243754548735065277430835380045639461507402612201312713781012904563262605239252125608756400572705318077451981851297248771610257846714048257641455816292145098598848156260089089116656031614836360398337010453276611775164855699557243809554803360267963698309392805434613046776240783950564061420945728586806909697158580173241509111507120144800232635928579503714426005521866186891855535515576807657478398399360413938693947451939830804805997208259481312980516356065414639330827688950745981304000842148609494421316330250801480870300488496825089972041226457960067117879626036750788165697757509817163442887882858106147294562188446916199679671147415282065175568838449053240465420478034222357963033815515888817266394438611134734755680738838702474538733337065544386187834824530108916396250380607294244126595780731912788578726172908946017236454169164430816742616792835269599291761942701780573649239350135433312180041105380162337389346961646609001010739122376060227179589134546406376899463880450862397141379914099088981313041885489793609067897887809501986062076288173741973988935473781298240343836606012896747772964522937966468495590394909540936524080881208968232913442967295225748859961338988760856027911091587483893795124933235831665586416609019244259617735401506184641210497179667121231556352194991937419440089821334256159438058691259213364950599358427628472955341658603339153725026157178757816752167680564374822835402630534387420893804730176487008043530065258338070725516224408680351224243678762162304426581697180497325704053699709892591538121154010859304362337515015358097084487878869214868509795959675098787912844563264711928176302997065456643153224264124753832784741974679658800440878900218689335971544227731927532678490454166717067925295086020221829757648051196203287605131419624873715554468210941217807344729489588390976847824568323813227206808027553032556273054848033808809706016178477615585403158649991220711935929121822598467632908318784772189932992682942277983597057647850846514467982475027973574561768247728579974953217800307452352337898030681358034910298840884330200627397204572315017434222173090745818663788241202094459163294867886255379916158809650539315571030687627987480491427396194463805002917138935547770014016859191586815155210931280157221978116051303915764495152103360298155998462047425455545772525726015912217791575276772554971358330791357516195347916920435560319542025080814818790484475169088474271011924178866882490593782476239197127496096393166220377762417126012998720740804883880510823993378814799258707427114836414635341309492484577805486906597545463654524086335306258491754840779557436123345767669310362204578051143309129085206539868916913217271102471711935585255204681365717444406244758008670112342384630124441511533705047196663540626477529631058142120331137145373707421058591996373466207542165041828381829539546649165029208155946096112804384142039878901963458262590541103969436553309370356771134932011005535267304247572031837440257994230323554882274788505041556062913670265901871043234685245189935754289701408637071939741517881785680412939613006577867356671356243395612834523444453649852202073562367047150918063463651469456493761417120267533460756977696354784679086772401452698701337855530807778267996616583024068890400780565817190885276647005452082297631056393196117784459762014335737863894476963545014602963276861744809056069451429867911062591274722638365227751262539688588602734757879246176650147189229343460480931337849675360542639864312263434723127604324046831143234462417444172305010783008775082271390225501803736303102747904628413870812452489968307254107431841351966419732473574763682041574556765274658102394433364394642828293537871166734196242179886930427168188721702468172015487993790642262294996729052340350913958162240398367276699643402342444941758855255557030636976193357439325672020830518167651345022192579081218843678443482911710781948503390594001924375878847084755992594521504734449975934523762675971213670781908535252525107747121338727915871729493547804231742131770145394575471191179838933319571821801185362291453016428822078520577750014601032801935126838223405608765284271511935465510417931337380752007409570926987602281428860821561026111080496716734319580266123339635738217129186274351719148694838829525938842451215301511096063503082549360563807034355304733227453791419275003765910556228265956996079404020303348788117072747164180343219086811032186427429973698141176880857531270785874856051636254548384983867476836662293090195747755193074061990950666248884550267960764618665534889314278323006642111871917298330855602393221325320679971273940267270018075867852186674861422764536713050041120847836690538028450890441023374967263045813600630375277443810798622180465723045518051515367713350871681821006677094146853029206346323373011779091832663345339023030568606539777371611337840743404161865276688626542005906810105341211560954169945733147231635426323016674326467906910091888274101222365986557181046895635406078446077615880305470013966596463505066669595165761113233684806091110175207029143792058174232734166686878173204450066751999685019082519609407593933727364532607570947012430589057855671349104749952152894202294523555980506260302416892573267161839658197010849768918062312349909157025669681014042791411627263861453960086025529684375446448294323203940179336163067133820883769744911093416080797807788744513429178136818723847932677559058003344998163657702266852003894479853505701306900224853992114563970115754103895010205970891304854401153453784439524083466102652355999086410497553559031190706699900408999048309368217884418145031152869233157845873047639690267349507515528582573602182092937531055072568785281782765499714722192670970974663459049601553583007451369328704524831593324990626486192825959811877366757203971307744666355640762241782154320604005391588000805632372699281358350718767084446860543403666995257557422765125926145436088780113608458642554597392556655779350259901671876426399794504626510028148769354816014196140356072961933577803418711942286708016961441719408357863584578667187193966067431392045560038389601909470491181003462454886339561172331251448624272856729604932088133062555368068043179149298854588045480084183431543026824297088806097433270561150063713383627353592477877259477841943524168272330575692988958005564976263587107231520005293451472908386694630972004590406301309590541524468569714514750632679275648042936395109239467994071007000986383369660389789119483241203983638516996037699051568103212199168496907334897836114118439612617454593820160585411479718772228427917324559708617978894186720735127421490021723975647406369204449594021078816204562593338903709325944165814528713079512250795589316859566464073301202610219842166021093752166126641715993898565673115056374861154405825768971918428962208167047208300648479076224711059685544223325366328226918032763682331207049849905989874771175075037868359618951460201488538028198377075360523488692523059437593971637812711103002367522253207773606132107731501714554216067125987289148757316385588211946582897272206365950205965652669871808869096360347166998628673607108114182644683525928589861643127954325221969754749363615914122700742833328733519526184886080196915956757479344521178046077965912126478763131686238365240436247498903254246392979445649900866108506904859941555550511069460860646651876173474308212376776537121167984723552038249853465146416907098736181892360383676204676417826165122158255721724673316387301826878123738773521964659059127715998805201018869076012873602921665595576397171594412936113322093287667821862057732985644163116173973000751564428608222670338153592363547839913335879786472821221056223204610872564455991413797402028580878730439436143520217305669605213218512238725990515474810179914869967364978773040680805658507410481432116248693434195572972396688948907599485209967930398660332866636022897994451909688592874955971544087779663416348516598569556761163585256010265454714361780179554504997109764278792897019906442315484232400231970952835525545647417305875731151293677856332872804846161151877220382975136375451790984001458309381758792934960766600178414470998649830665835533987533026629901899613772777945727605485999529903011885599383824073487756258434212799449716698142928161000818408357800326266198593789297796375112743922922790774506845886100139508510904298820924039641689190995051511960747209617898513296203716291894862262828006405734149538907291544955200513416862275856824345476582076161931936205779668530750197015493339377190271613053578010959551765697855217004235594634292332321393175864094670677338479999374193363087014427737379489829626147146503933234486022362881573642659538958724353773371996964302639696295391279058986979148693487413202751465874374497352687006098900908147222931900754215484797609902586331785502010654493148990267440136602677385337838732493456435409011300094442460829554532013481691110689732783329005784381769705297998074693608072040467682829306849741808780716370109203917899027800089290533792631880232799761576177912835428484979159328090812933449165803362934496102106768608463347246569493577358802644972380434926044543223393517243481667171561844320851015810915401608418963861800884761634791921938480512075392117164896025218989946633866212852243572845635137336941238734502259874794638528701990991499285494883400266759020702394827467445990624853694416691712702284684241118483092054203328386136691966879537145429886861893648618224969637163491913409861351897335190895364451197335132321129456656584153791097800454220881893046118456349925020476776367194612898118432451949809000676204883406636304238230797010402129876715466306664213500175156057887583032226707011094060275897835516838013508341698412895793003855486302539451372096762012726082925307716931392059835648026082676620468562302836757225373767652055483030144594586917800081652387992276931866059845854326692499464527100278930436878890814886730439099897268348237608855972108534672062602283344204434396081221407313353652160303297960244075010079015328059103272097669199580878579788864027094268034632058357995862335899841540447112406548970437064251659561269806041075192780712429429122996202065212343755046173014773079716909481528423718092141386315885599568976932361982319290321962965403668400874091615847929872461792306741034661187128781020447245284644754478830601630432787186905162919419791100710452612235574320039412221824257943817755864734758750450058814125000817145471757417965474375217541009321180774735256980425778559760841659011027528504724768514055706170292230339644751614793047866285003844103552875871022262813299931765720142563711023653320767358566978013650810996629356228221868406873783830316919075966736710133821467245819183371046871670481214216972643104499604444230955649740397551580310193763584950022337878252448859867580839184906768209384000595069942819407524334089205119205368217488061567461290383090198268879866209148531900478920607596873021526495646365186376956437887031915319832403466743650474415711689113099189186901936616813689942695990227386259252158506563945590639218365445251780235492164816672475235962500843001883135353959802753678697432401800032416906627424943310780942145081956482080309270472948804380193150738518630293742737560622615769978411878120480144383727465019169553972783915511692042797821424971699850390497665196770933333898378785836751354568039346595809566374597175807401089077256988118521799892847686300918136288365212061085386734301613068969112965276146873004344649839386324882236750374523909856367186008360153153152530646492874453296243017806411836385677383345349783838854419946750661208500859903621192864084385911439762004630265904082180861313317931254248012269361288080675408863323949245664979000340327952611475711100260965150388823958979926474647618606769410459777872707018062919029824596276399022566845603351018520323338570089057165815395876248408106375227711259964508319204288756413763626903938243954118737223129094880295315777500179175908113221992653902565605109420384167882356278726642364795184978829590773324054315471051477706191225522716994333486157649902557101214444268097742487458515341485936752614494531930887546154751895935339450208935893850866521624882448051232300011357619935471889585527962382723710409803569527811733733775339600082315001159300486815631890014048228391619104435491173020684083826137653104362657753188200825655679722114141199631776226362128524460607921250512924328118906578709277486280746778488719119574631853999891979537715326320492894254731326196302325337790009931012314338259575175642621422758053459477695820427952618821597897092759324491923952401701157911627106318503240295894626718766057190443465444623601172184988154634803927579318813306009887086724076915617092131848431713109885125329223433654711325968414034104270307770774605227548950732640589612394418042037549362926730002566359942981341492268246644981528565003184668979674977211761209010444702503641177708618620479480882968538945030052125346819078243855711890326722427163255269698562338640399611246382312800487950258842349739872944239901018328246413183261698332794625559425763675682294906637864713002822833554553690662267988935361086401557195395534231555372150915376332701334244092833269419903627527114840173102212818172974560160451976717643908532538727011413581054106798361676299520243576623944052869618403730453460046890481733364063653167199051960437469308136993910039686047459639331987151807566642460724412794211689224337106661541282976511508364041086364137259231666238000225517946143496078149738837467051969818728216411502244647475103644722884296344358736535147650735507971519309376257973426292356852130911054884718489817165120012035171597738376421272171410247230738791668492877240582538701035088357773011109791047640867259443221052310546385836844126129976145870305655268699904358816158166333888063706445715971565988254088752549042649869535328075325576082652987626370058884545866856482606899150220874792971190382865085026742793517189606870873565338628027875415914017139627556138465202377668828972324080562453895394919006024296823539005951927173779321913104374204438430327693695283166947889833925652131850719940073065060973354861066310640766297008072438308320883404218516317383447475668283269386634068915291644295655252770265157426090607387416000382992500822899501601597715132781266027196859658553463554301125616604644866067557186360461098006151131017590371140205447145303833574349296073535027413972118753062098691054077479182859770263158727898484751812868038190319638574409361422240094883913325598074134002033122654548999052977399062751840830458452509543228101447798969200418879032774372113936691377126684477083661711794133119172588198187198721877277260377487324003916232416764063995803641988382212807136825045796242910758485505404660619373819000622011758087405661196228205426072566705833915130288942483784426629762861748704582150214751384449128197367422655682806999744144154960824156068500140831471771695070862039179091518341880410975067345420042037697959001817324506843737211308928251280994054661859005288525382471376421719537537049083714107480765523992869221916463156860211167428592795317467978030023043190018091018521601961694800799072014916821319014576146962530703550180011435829663540245184847138337180001217411866025875638660384538259661102330007360023498274529343864955331456461489583530048149168676533735126805811902768534113875611563835406971154057747039346529912317485721504580408402679244833112587176809760242140681819422108641370854352185110925912230840523307981029276284593402158022650971281626790685260482819830689311314724902149825141925522282681432083195315226723036447123039526145128489221773751351059519586273323769040401738069076525805889610479201297621152621388911300329566562182562828668364603647563240086147296603462977237462618775143894206246447934765304383669514721495086917032172614436211803014284240798744820527579146311098476636892650504659912908074216746532158314389410451462382428297612117414088725900225628412942112316029030127438067914434279183760550471782964861357207704431783096315925025144619911295259504750678292535734943253860981390907733682088438301079859312432742116501676934923112119766120480134754591977244233352732486903822948876580958956508280810262547240246607939526104639483482968208635132402333376054291807829232148781117364627348279966026019449913076901387002751153172719941200930213396780780096811633242129290563044072931541828017561741785196412624474410353085064756469587880855374957370593065009632464867054245342403832913330967232460936490896552202815809005560436976407927034830645583610386440092944249383059319150750592250645282472690462591849284357096989117843476647805258588123874724348178074449802176238012123803541248015330233612598297109073307010854771440389820479311697393314378489986501417391441494586423000852681379944819369001635534327104357173425647713657231066204325052846846770884625088135837955462713293419117894119732442620623325078536956590456256257750662272452101958405393498616887954736339576982314227988855625945980993815238440078130303282712076852127354416284188131526773221920822875547626110576180130950708125353661041216534441224663555189721967869278419401974250723865033344046401435591729269236184365060625546778410980492988023980199783530097006734156877871431206205687938743129205663956952351620080396022167559411631818415636317739375243614400976179883714808830888142137260006052195243510403483257399325730977930775275179730221054708367703407294632504995486513279310884163241821987582174084637737440311916878549062367652068441789139165659064307198229074632708501489001739027545429546905146729239566577707227238371407684818839286203962597132216093462758857087243657174457926313572075136208889400412874955491319168203408491111009025132779255609645010853175090605479399322288465827945115961485199328057138375406393964274923336427403528885664780605817290402161188119272689061976670122149829964462781119448761060286126830879816557066487612339676690871848104682591068225485681755100276487127348556794750800522687275150322019065144803368210939602710556930397793618309688526702482040377880457884143280441798418897646901008590333336957877607261891044066380012794290594085836140750467011957738851863397848094856974878854754970579610919725390759959583618425837184697647628834634029921477489782815991374262367738849534753815442532781839069091496838492897005976931254974910758926949329479994267642833927748204738668697848688148179579459620477586276860555628996646118339158706779781593339705136511676860604615263227987096706579797861821838554041909294037683226326042611859722687558612476189244910597458819571941564526282580365568808418170187888334449781946749935979853954930819429235491222320653597141871638738236867846455598890614045247132131713626995113271366596495727270417568064521714165277752053117634102411879367541704010524977495599919062677606815924435711838816335212910757429469758445750562340344644497914293617116983340603283907617586196340087269823730355801266599858453134033400181060158008105492905892153159798800675923864429202489470193040693704679006095310052740587664672423817731891138235264800227946137620308349134473165278754993418914892245141415194707016223912452887092627391301727600349813380327716946611121251548130601584705942358980088628674519039422830168191131650134087662317452658551000786453280939071170861327826277005262743324126085315274117487715550251980943174770800584154706748704531243143130330259897323064448791868707946870820463752477928783191443318430675435426261387461291354275625313311249812627129393469651051023324323443368517080425476965227994806037548532750237466259862335109772395223471698427904085499137066664003000705948884862944685340747522293563153674428237973182255327144105628255720691217857075666222983182788451342756982677936634438301819031167379160291493452589738974997371510165543579982492237688349530555737236003505325481266513151797749542045852747886632482618649256770467498043108727503946831074342731438239607920657980632641194562590924335942000989801136270198713558209047867033923018784744826244032669835603179605141690743694498213708916338283245347945928948870401750394054093826679238625625155591130149033653704724574924468497149743157922736302121354067871111541361864186735886080470931422644466959536244663366653045887920625008720451779430659642290750417142338561848159274825588174183769558161290433165058856499933373727604368734214846160586844986257451677733443332222270645090149827027348274538699012229787925445053323716818595151972330928796994367153144589551146818539703151690342574942261094554571793764201272517538638251002386385777087486055146538641187880738850014998634348796794126830777305417230546147912864373794047634871116221028570260492434018294792861104124727691028600780510781705807317005807224754251282577563925172318961347080949786385027101828794911546256888844842489028601563595203030335990447189711299668121622342719706706423604564521462061464116591763782446572084897542221987363069805152938359044124336343289883738345315420089413989701152861800046322507848183798296751901966561610354453929315077236776508660198527043085772064706408388525259401722105860793892827148707949219765010661564109567374908075089306329728459210552021311570694273864800365940730617429615134862718067246880137817999459977490314990733051191122767110963074366997925770065249811174075849668916046380956651183442868490352737593222562900343161188931141743842037490532460049827200657183246091769608741685653243425751303806494427487465151746411460588531729901833875278747914954422996744265821490328654863870987465499273113114408773794173294608292114778149203058409995852214199556951088404511993388139637896022359517375922308256066202092489390525888726900230655391515378546062663102345878343992144628350815425224306601344228888343128657384431068223802404987541308774683552336959686770722399956853683684224235542670152357912658758925373061347096614900378017933356102571709793590017695201458394914051934554350244427197286265024765722115942624184167311029780671216247188685848432648217219365323815270199078435533511965338622332726501293515150865876597862413481211516751505748685781476749221298505271097637379861639431524345525790253882129216592632068537003726177706213684359273854486598938029114293238380656174627767798232445100654813006697173877179230071367423550868731579396299412818729992862987372152594769238152704823182815106358512931247215305547007507469177402497510207535446219244458196880955918972902066508870791075906543349876610964345528185871530062268066918697000964721130024241898866498781030354756497783083545837284022435086319862092648493525813873757043838967353739739537693145201278008912022109573064201025027107848617101234058530850938713381545714136119738360728867922500900152270720052528799404987497663876607810084397442034649673469929239311209848110561805817689284592816547126174746784380609734007579375423855941682063031260776244119292582440934917279096549681607574257002580323637304105197206019506436831415311991343197968856812767884321826201967157350558503655194682364683063810823950411723963050649207170964526861725527869511528089651091603261957560638399262704965399731118431163807273006911988368547728193270362584312243994757809617538748848183477548490480916389954429573303864240275966203052785423789513450589919468953827331126869451509632406747852493250979298414913863340633685868346508204460640097214216019748898354832947658576101060319194203388936886809861370990218177904720965685665293133755198196666638530847965824008282857440823823458638425155943269800172504341808718364082147730381093954233572098870581566754283775313811713145671748691856137161999113810252929899733571838353146034525138013749090087599074231304201854960694657151426699659626216628789902229044851327236504386941778750781699594668148276847552130710662634296133037555355167645982879089401265774673519323265562119062716112860263308438051233843123957574066378290917632744529232846063406503146819218981421301148153916913667367020413680282947396070905386579960902301802718154502456993607015519053945356480199344452328294403732434560882151407688755860156175576505842833114507602664206218906732988852012915338220347383375765182750861395719520710388314222577726640963983473974105975143556989394674174539601981703168757670573713460150817889543664586057767923243123997442117122614785789830857757030970422287804020370926285099278531290644810237490064891050358451438122048606907591056657325359948535588109873020577500027548486430125177369495759922972262621821851027899486979660044417275971230353093859896427632804979357780618620572634795579993661622186328448254841646728107064715997276869033625176747179488937668733604136751865134488317560034262575009647899164991902699768932217573868484966271266001893533263731868855336233116048437848783206932770396476010285172721709371704963791321416657546034011173316526594064692608634401282679547559128733898163767468925929937332613811775422131476002582567402079114742719852823194419004204238659088939836713471054574150430007514952551210488339826642342114071367932075359455781593347064383093497146052171925273263076358116401780956421150043082006024587522797021893866012795203442460427868440945415617169446528349628249668354691666175125245816202930492525237697660434889810468387731886429894746480139620656905053364421585885824204427954115609668543619406917185414783187379917875901728531466215839271923183076319264972949252598251818464284114716814535036126694894300290470522841774154909164269248032531554458015071398606241529448340036614796776878994154637273824005691486426295333073974544395793124518269717313419812871193863817083790399309743306967228614123524979443417203942108991600147315487771231897355366616601446270967809762229373427991745751794004987000298941854291027390468030987139478969119222910089102897513053726174849547633081942484429036535346285265110123712946155979135871117473819267416510937147225683482608299885706346697029192344825418257381174029423683809602206294121235135420436653872680469775786329120962794212828994658695825312683658786547107948294868687887893468616391306299337004663672567722314595203478982419227503595310004652494724982139671515527543537680142996540737200937962709083397126834883462732518707060821494059751754958422193525888448216342491316729334092481963299198486114575270183300655977174057971177422764913825614744522224111779178753297370237917920447150378683636057644293403251172284347346328106043507634022272116835025090244404340192684692089137941425992354820843799786976672430338322053135346750617492289802401109194896942798166138276919360929035077454907111594806697706687777606909596356207621694161068137184877215314154287589161230394889179340750244669509977967080546710871224592018853178785526746031899260146974749880931248138537502206193839874420754913840759017404513665012143825819322438622483543218172436809787439715920192417568394598353556518535689341948699529822438885595085360237803544940766515313341277364524939924404233818999218168218041791023866847775725121586283976805093928162802766375022263245151212306146845496401463762983578684144665220040259409523230526584568871528946988372341474478710885050867648195195793768544256271372614665278968359707132406608045267025464602158365219494218640178420135667079982268405619638771007431104805539671269402045607137518407747264588420088425059587566868409770602785203553927752066450537541744227475899316574723743154805525481414343850035267241524435256931505911380605946157398225182988096190778501610292935951507846950220282721153333024416540102955774405044597554860408379635086499643761913675475614538482168577377732784223179467253170932757789450682140260704593684760043294669027042566618099288911685778525584418551641675244295595063693582142196622981028506534908870121224287249880641865896270098026408858998126916280610596364248289020839707175185742660132157203746890865682709156896122443897113236712233035083518607921297004305929811289666143514105307039370732702630372261888764499980981696447045802652165046617937417444754672848107147156901411082364864604015393032715147652969531559626826045219995565136023060396746160681604347884107544479552580650233459363168176741652401028451216625333757413382920294303731448985121105588916050327880592832006423733735310819202233628409449932421390893036677834523793277865473957432813534245010797779068670432344586730814984475826194412832069359553796939262178932845183954604828483204944142342382503426290592044348608277479657678118309780724833770330030689264538207848753057350466694825339546598656464281766554444593685153935704934115946033862856143084064864719289342195107426390685403295606088624720121295438307640837856518925011634515433377081183846968860790582726005779734599549420526699870822901912144877305002226037323883644136074519529849913039861060271560336543164183204969999262812981148220966816687678330883470574650058469491170269390939953272353333968436275917699309972172005051178699193274996972507482148547029096064275520130652940094493353920961474535892591952826013485467234295497196706239150806691842285211311142536126953898592091190918943743366700120439711112461141727763479820921351050604389135811446478483419874529541692646870616354945469808980126829813570493888032275481644715598269149827199388120205180930665778184729696714501064341080567060673285652185707818701267207711911131108251474650056059747747699420514421289903180657170357941646027903921450033591997499428455482906217551061539979457825903148553934570710786932921326021951600086927751887858022959503822624013346461828539411197049600286781541211901203207470288827055297198233752714414538135192260174257027859377694006873009863944090625275787031001671070291732971647531484943536713685629447596553694284086100409962895854974274158337257895069271548722941778096438378117148781538471348419287527262391602806609483944877154324028677166107054161899684522869159209106679424707430496439531307786293203230548893677824014623470703533881264618757124458026094558987613140833788020304005626469147907024914719218953871935619150437285968296846816950069634490051502113397987969826455216106215473862904216474441765558462747664080214706244038286227711368733873083771758881051185977709451880691985702801791611675572365152252327969357126780076177287791554247733546848405188226489964468937561084889166945873140867806931442533010537793377485089578439020277923096078778122958621689302387056747074306558721540416204736780584527053763969417190745291575290133942654117476882879243749072836225780000418856185592786131199909755431199401786070635918188926986637632658899768750407022284490611009031739984072272184526902514650071801029126423415002566243295875850255574650183250033250147544949534508077822838724121394111893238844844086657253534905135871870903205402310190137421328677781013546713244862534197246299405409283507659937301723362157679779437559916797901899074616082968976780015790653441475153285302825600753851795565469821536268184474162770391498988601699023295593060348964939408453630399571411919432294032659158569526716598140419964780765252960802547837958038030727229313892637055148967163795020545919986723018659917513472210205518567777763095158603003282421352037319119547472411809359159322669307801226389324526268340581392345568339414538333882315597298214792607409570708937390477244110658915802163866684309817794028822648000588874426938516571969722186511619294916605918075435255487186180022819843133544944323297079652770462255250835479106058612386578636082872379344005760086699826714335375439503910059879584218880761684320642415879798793538011236545152891370127586180691811710049892265193933184990473761080794220726262437757570042271174135940263417155598565163857347921145045219771524446839331361418681456352066468176039026867862446026037562715528981112688654518900767576686665521775236640638901711487299685327693573316809067565655425564817826631271335556119818690082819146774156276122219602163574169895310685415082237743750808780344135129002379051403329916566711720900345476927812719618062069803035009902991930078413178942157800918889718837064527478800558486873680524613563707507006717955113054919871818577804310195716258581750706168740209946706545900581887513084564286370415141441941438572031026024820607016819824211551356224372556911965113779766964266602123283721926306523837678693959673287488367009328338531375417722447952600807082780752193531546011116009093715897266916003627649586861310207198407881144982574672774575821818062648463344781535411058434708667588184198440193496876981236194816337404272416657988935176488134045262666259570128848804012199615415333378901694869553110361088053951827428513911526015061873005759135607604520883662937129748150239679002914716727480009249804201269596192677025112318577975599032853885901102460920446841036585455998934215807706143749816566885477841206326445093250483070994886796318714151414789281538567856935594538886489937906447853050310619435145607185625063549542058225610022300430239191896240774503501413722679859964702295224508557476770674146456087580469726216867326765541035917302771034940966152743423224046044489718568236523831160023663844206853475007574197433989826771718794503535216688073816551528464676088475378340688727092147779939740933420136406403115412684239016219804100551417564138476179100813720843948936876295714533213708358666621504351916589397448469927646119170714127796080671393224471827670664585612960040351470512424576726064352939840404652947167226388956487146786651377161145868904474346140197861379397365484262235552761984896563395315336285725670074146245364375135439850509736659919052681988065489241000648453389494623524296203023414821071570195568679828473242871961809327408987800286436897530131583203462522668096082710955580682536185503918402320249657093520576014523979422752238630685079265438136090684701937239089408917412944368634666545386443154432962880738164204880329238446031950765478881729456543371768207462943176394992663349446008257969645263143043274045680205733617161252512130139867801215121774662452192104309552039841886864714493604555525730178067741171127610851944439643288933340148929578262020657763706796974482386711019425640027781191921439101991162075048484379419063320426748028584552359370201243995711247879968037949296801191803239343834945629387764354059705705287260851565171832992338194168900886039773064112867208123515350921319480168735647206491121268288585004028172511124782297566880066885217073804492221785370998505211700043790660315913958086539983147851454401622481103776375752313706897516665814837854207092314472533906914233193859887254168246685478034651238615166812785009840551942055234609920143372703528121660329220088264124515985705567233968523024260372766707659839614057977565611410736063384583753289751325724177593095559432623975625674361402894876332077995252784908206484559881646606504259085884657974260411043147057856064674116515869337412040145756250655965865950805825631477109268741089996128368473214089608734533899435886061409496921796996981582827703116320489195074875988683691982969476801454905798805827007846925210494176253658421998779071529605037054854403800525542804078123289486366583459988096725074071651350143664891753179412505414759765859372811607451762653343579557847856272993746754982922591667792249818828214526912004163487313968132258305122015597427613877893233658128764041206871747427788404652581445414891488885265700549714513896092755584487329686997881663587603161043574241260528122236950125291226438142075777837704282377225039453260164143235791710901956446884271893241495724728536985646230394196596750620776945422195270437786275129764214072087928115066369125462817552844316323336650329884112189441835956459780140708907276692952061033621107964499265802490959497542285262469102602449543501895500339883397913544519420013429417721673368699686496370316582357647397499291260106198517423064980274857228162246090362390394984789724483426038837501814368666936661302732651670329433651485696466951611291444435020536887788130611574371767326034925834010613613400228613090845123609079017716716386048367760609190892277907441036651411875425730231210236987053550452689741447161923098082299295711298564273137033439571640328086118000130851292019195687140131986128479975957047003294375374372977011709882022122808772555018275552565077900098646177535110298775518656882298898476442164415819434968890871760043042653654713156190969898311121381228696898647841718863330262011174486860767554885741864816896606289072334502261893528778136987769604993265917212148584146549551698478489301726921107251533358731674909514268331749579986186658510842609220721506081841985507992213648383392970439175980290115699600407801507733851610196365068236776567108143072332700781852267518797146195277902526447416794625624968749853148997955511020291435143596131158496156757704291355335551774688337375514867148076618428737642677861862380956826515516395444413668656597094593840276045294222731444225683212756824682677579924500094342925243765615613964368660145415424199937088994531648706036982428588095063007588007563435821184667860577497745938015669728386430553512613663055771149658953903966645357510711685082071953629744536554631094778581196464561376266771557598620935549632888184234193188970626311823765403441702671413468942060322656332181497958901883354418896151613103852222851539898677331858979921226422275163340727457105570344085456617220497819135999761609067032260101982701698472945505325098386761758705680006931149763515785777365146443937201772916448459717326056301848366426257049059359532566434469169009620921533224904839219033576136830782179992424451041545022282549111430815873396618183005876305532757452159241675221757938620801714777345202178003263196577977165050251239453921983389400576632731029192463761951084633890958300767746294067368916416289781104923906873377969105036403977999655412559111734250640926269050171452752144883413413341329886684990172694650169799221161802587659689843662795632845856149187395973583548295194854029160168677409283399692149053565738284909433628177081676962303763417976531535100936531522471582648555309473852190337107461318057100065546441543035863848068581086364875642477224742326611935134018193337284553216051471543338458516903123561284048723418379827771217709545926134600079592297273254855730596526759379559056268200095391461193680398272230660506116523002312227863164668022275710961502021292592315526614348667526637172603801977779457470505015583947664649191008042235581785187199106215658616760183202184476886355234239884524288434090278809268994788774694272594820125729274833280384570213439108313318300792226742424693166959345095884426878971577305734986585220271588116783468269856885732643518672431081062284889092682918681424330928175740340727093487337247651310287139491398973967757002373277982095258372026688215527444979722206008203278085243889556778428934732191453292895928970542051784178730027574474194280574113059216510895503980208582187948478663186118772332389820238025215319070848269919129648036000622461428555144661472028406999536932992963349401053572809244028985206142635815352502913005907399452314716894243730501771262930519642067941873959698204921535950097878815236612890227110979181078810030135579308304508802306733816061046627889541927795804682717461388298299422658802437063631904857213445710436323894178248929948979982118762773397945435613403215977515427686778225519693656647418124930737015685771479211103038270955683136631393568892391291255152011215050302989503149549687674720858373589833970647863979958507204447714729144929866004621434611803657406794485039295624182398319720962585885454717288685025331999213141339342940588588790116630254639536124269275649421147693667648630461064934645529179334343794266872053367737532876817267523452902768174456154373663511769299941892216057728612300820426987255866763322600248193556686168070873913136653789403131890382475030885408334209916666047409622894357262634443150533935425684453778515934264641172692928617090942021084998870481633475309106296361231260777323042538913479065601851636042164741396425314624637592336488118853454168008743798188804404709611983149589729040830321355486051248912610413241509276244563251136380372018810737383769240328512484335219615616033314440017031497261022426528315426780389059143510683508514922018867044276359316767033795538328550436646781012431286618616036770486765414929118711216282375089875095852826987677592125377004488281540035795023935559155120224031172880862759312622523238807803425625039557656759270849319881605824745084915724847209637761743870096487735750190052372981324749152473295331455595141412000419323312976588762625586275455688701270059006330865246187290413054611522270831247932925874255543545531209854149810887227202201585868905901645241070705816814543877145042009192604982849484736322596393304684891175095058983273854295306190482634238083876153702740949957988332579554906471278377326538799514000502473259539693581213067677744232513841548823092959836289892757630937365455069295277997146853424319015364971398092948418988408720445498812373803892297367327941415626125983740412451287792255741541289876674485090127403859956478913583876619888146427766149833220791925071148000920112389052380843765777270951251375457205849388715203056473421196085861865519849513283225697085956658055568420829769924613945949912712880109508979404936312362593900050374128636728934862822978351515639040869548723638929495886302059689390864390799276413041551665404865324461751559875749677426438572695510664001495822514296642729395000715386150282231582772087767035944700412114522876046493431911292938552890461310662613033729656272549829392982711481073521338292861188653708730970983964066231472549155965441001636346424144796043896874449793562430087271067667095803924200480173201469561667072665486117511800604871889430380492845779784020593029333261650173819819951534436186905775697569810946428392430570690134881308720557942129543882699212489494078494123878757229774076422695061956157489423097890118671501317614497477201978410336323518919463890091399366890141549967237012103277649776869221564076017279304408822183764067589039587780472250987420913725357419737854311670582211003124240692403014110459429661239933143666444905321572177665313019767662860953182582556125666806288504516002391162115614997343925207012132875032471945092171245268351155023391981408436945792571225979087114756313060814340898310522798571127816461581425011506641127112601723054985837341372359418304680850433131489297530255107861768143694201644463220581055160005798726752087513250179537000576837650522617919878540305583388995901434286438770556842999484174573869425765606297209703373649350962532737181088850659095812437504983209379228892942221671987160433627545137630858128133528540745383275597982440847097774709444110931383120101284281933337488575675714812740034083521681776286310435827300470658773057795649685811499810504682598640199343844892295955790512259983073014073784099308348458572318094191462789751810310312950073650735336174120764505526895490092979344701604282640175170865991045426926634520008190934916145606338009872159237591773438064804319188504418708349581616377776328014935569151248377188459663568144216164450960949830585381578287274592848415426735845657944268219130916833626378479234995865627359236348164476236912544765985322717508274579876121541668273712895771593483546500091058848953206445609271315475113639914321224466323254407103619412263907114915566633703546018748767965141350678548208654970086468578907941111864754060976100512244100832894528184451175619980105038679074316010430728559138629465851499672171200516485685118284902433495181478758465505560831914329272555374604976082140858515959880308528424169419958213620613039392816597556048896071475364807180297875051320841132764444844594617117851720355779312765911483994464961801105758701342438444857647817016203908208083316233812879040382309431614117717715779132258937578962450285741130138228144143868620581570587697783554565358715127325271705632856158861816633043887232102809750844256900335654244030277876619890571961769619140962391103905050389263188335770237416703171655946160321468947810854748138403368015050317440034658214178346639323566135118008239965978882444219315971954797349446504862012015256309416111835005663898218938686652943541839871468605237132627782290225608306228305412181759922715254879573541503658883135630199368006317282295436683486223859586632953168677839439092426437318430275663328705047285672557781735675427973751343316481427301787923860249650750809445866951411382722474903236604876006521769166794235076357064111810932836170166530527452067516220500932297367363445327804271939418854886145585602240131966995716413179340031321067565233018468653187450471431474869588852924599791831785737475611905888873987804051018072017201682212858421215908057260265977133116921324106017753525691960091460683932749646942379376400978661102856571616372748534337308352054106596272703065775868039607748127295979157421557676960019421180934256765506969066317160914917141741007245776299748484700714782152705611880154704074061982284661376519982324722311069477043929259015028581645669940695833337296577039183435562438063174033899260362040046628881842020645968175305098715251150344350158299388514317358179909064386942640837738582738274502746742965264114161534147772761083906223165160314135467000798497667155168504416094761624641993405945840365991114803427861201450201425284068617857881523004595910546598859875128148786806413123173882755185845016734467993205774252844093328407368949831441697074790082611084902998898255579507280170679354727213482461493678131751489077774096193053154107189958925969082475581330716977714785216406878669635626146933267242622853439130903423850510041237062678828817790118889129424723301602725268935603911764249592466540525514399384396515650467871074214599602761629098164679492453288726348272558538335143255487948595783368065972901703067776836500394086119247530840594208518240293882256679011778733091076659685504897910196921188505725719741817302793811011027568713673648460751305377216125595538072601474095596238739559295927250690475978345089459069472781176815131596531574165019449419195676336276585702975765358757590709185699478098890568045964547850583358363097147936454835837479875673329213248954673309209650165502287936556521749919059861067499349629063535373837994202719755499570436334008735114728801679473869833310932261124895286657657428838634460561895716975602746925589920913227760014803094562771547420814994906165697588873673576700078500925957732433421315899087497488635338553759927894319329004502961356260392150536539195332466975308753999394234635605729837190240566591123147037013466271446960509694794877683862454324651184264098305431562371310490205988849668733083133563047706558291453503763576655346442778923320309851792746041739293040599243661976614288553342085699916992919853319439128024086666733591791766027700374955120323942317781466994639151058841046263345607409412160002371066496892750127552074701749254999181455688759118527089600557822525253382712885129405692103359715324063151344410628883062829187595307827528793140457336182843382318366716779809541372032281079078469185374112222636026725297471625765490463600187264243928021725072124580770399387369774617780638043365124750667350383533501379886292410439668120492973105826154848077910658027207345824276997644726713987892464280337415608245550057105351520808661904058281696025441305070164134479783923893614334441492704433543506875511448686768505372938824726990604181562104307157700361872630663577416091757809615356524433724500208383507012342615122932620053138850768261831412923481707636377636298300562694512950203773723812406862681260023984135024949647997689528585337772051658369752089191222986837184680582165964725812075491255314620480484414490095294785063825754820471834092562720464817616026283679559477649227032423585905473865878032138784023298315540595157034044433931065715411382747493131643693032318342152956514386644870704834173844145423363517241916492744273826669131379680612529937465611320327326604480129548755652559398443450296694367249796010035681245108933881708211426906976789993351664207271629298547676374494022796748328503765775248018232077571775990132942041118664130818677045091914291778437451521903743789803925755079144566480355615548617036550194938024580415176032945534415996097123075718917352739440891594159956672857982930381056991193467430498332452730885489449011534867130091734093497013442668674446955793825725817101135895603497772018699863405916555895778449192735339691900683134187021685784858373290524767185387940259197639814087370365532606226513144572872685834658218801305212649854261945101141518491217350138692395349411213412984757423887506561885156008811285304657352087724492494293992218611564926028059519581670944094560405508667729966413522481735248821443156499342051659686716615975111275669523128490434959314238537698559355624554162769489831985753831413318544230934511422365695238281820899243092203530713118716165768057411012949604536654109717585246278401635380653755808228197756613399815665652508720460680226565694083765680183482153725321708247952500690139624153019055266674352950776417647495216363386901387736614844581531916532340730197662627887981029090107621206747240243003886135608971231030385360540163018998157426388665100713993862383030152797580485498953703419280272972416274229819974605174595105599499221040915216113720834380485551045576574917951592878735215476296935413740536573746564651232100477842744404027682453414203943838190431299595902016550012071713539387095709005008756019353808571514738824921261936248744391490680627292699606388322413451844380636547034287127473803862482760702742240399410413229339272772822941438799635792598309309166801975039438333403761618768305993024627419058389586299364761252934821571199404245033649103303233939431846008233765287537329366934627580241634050629133117639876380690757811610877463984160662091522624960914191965900913431168824232725264165153848728516779508797807437320877227173488336559608581017709494568286664987321528170168646900461919399629894651263938869696106428390177964602208605224859732934932662467528027053013191719823009315002810390739517332321607654436710776977069454634992623974116495583982810014081088450790425138105234580111026067260491084887921681264080583695405807423731258650996733934632736502811120685760812016937391520749302574534225950702774254865551976148667874803543083608139147721480338162570837561351097010642390034997773756166694517919549919325714045061871004848105340055028675823099346027786133783666593404585357124280872765501636896654552452144040571077993885624389358886552148128652184216697247240145336809032379275960435222417480339602018275212594458398131977397103681243369935653295049491481623185057648808812619953162933702259130846772157871180283093604183749290379703501695364781167887833279735664256639391098883131842806628892395198160039188963296394613312401878675609290281553948384634146492894294780657267555872796519573554438015494175112769428792939430182512130849861969415942166592958760892777216711061040722217367265738433916811988419074151238429657253007924361875114775041284801051734835418138017922052872159114959553601828197653305172274186299580341332001215456861816766768106920306616605491583809592564092119186257712309635389105646516004931347092149584675745500828697035382643950415670839347249727459855249851951693094967923327717339452416638442697825027955393752707983547726487397821246671043562478493947855926174059294931245728223675389601598956999311355966174180631357911126156201423149039300098700111281604042009343879294186113413057298668974998199684207128136933858155653526613197794145012574086021924397008510458827482384311158474941746789014376659195385395367839051798172666186771294705332558844257421835090204600930995846409134003620861041040193443801185562970743653658968513284773805927291419459374856050814401863004057602814273596317698176057847468924048860335341635587652053713598115263722156006735669895715443575361521470397702730709512668311041988993039202009937063513142392670321841433991372548010703874945016373494147985292394524443190394893162458262922206346662540709864229571001721628620747775177835064335274062661679911204655232209156345281472154574928991247158688693992029671317024797572910493707873869458122403798814440722499311524572881586945627730951675293052220810575642221679790305057052292956500499282747858867330547833984104943361194394075528044891916257898157395008197093620921844680305289371819560156677230578355286049524292369594513271766782419186785405357892028107544544366861670856442320347287533513239406755065316710109365149920397279896429744611751447798145385806461443083671581003264273629946444306585611887704085264456598291862275143213507095088101359927931006997958028379511373148906251134205539634350532639183497370023676474478079089634388534466650147805268122535445065110939180902892665058545201861773094598847728971439752811456105918767268485986525175004275962156153008757948952956436417533046911338017150065830026911146383248932045929009113580195669348418644861220400813133636541726720929481037697949758086501264703927556437455734628800797597317487361774048535637089807044956432421082144885155960203613357783083920159474302343729005444262853461548669842776683438801235290659028638104097985458397655409781483349939434553144702813632431784491555375162542434773865194338172234640315438100126964048421110422973393884685865360143218589154228961246003406542622201339564275860897723549383501526040360313004765462100048844399396827775978230139074606014823367808215114330666706881510135440107196069097579122499745391568446656711395811674901933139566363586436202352654966450277822292340198146325614695708579421906130507023988697929864414540025400135530200672145805795379239660550254410945006140934398398480605843743887819267450671120795631279259280030086438047538894822098671421783117750932771288374886735380871162935738191365011585859523431943804270622942016173441745577311534108046699102846141916325572037125885666590433369082337473378178955976126472666546208944947675406124667763972741911193055362405151634581597279686313243087290675743223610288686969412622332970900023336079517503816343957902661122729322092320880321866217971788804092879830980745332096460377835036683819254881750938622815035540470201766433422005368497736119496990658470694152977752336105597218711722972871438329721858985429918866791484794920501568159707316545165499377905042449156564319982792605034584563123455378124791855360919661873247172779249849887364297992192785221696912756489681998905152039584028268183572577937136464788081871497747855377003196535461451688797824756902161903664601907893308154872951497313357464903845372547508660303282700268697875967581879388879568538733405597861075066427192604887140922615639188218920629791362230354892648504545546430917338751624888756334428107735805736873939513142124577262397482025383227279790226498136069458012218379541478353132645964195813125580194176161169930527037529132693950999507326097267152221584092062095197258018891301477540982381592783479597512263322849381128185880746545127108828253976793563819637994283720432242110636056139691357013627189967028215228980736269128503428403317147839826959592016590984568524202288639601228776281863756567814174095693685456154904711072329411056416707236888305729485397639121434281135858104295960819621264547585455377956730982268370435811586911726570286810254561625773950310326433543952099149359648642766788085698568981596329166807332029434676466116894405422218263876276596960924476462222829192031737993609989650833084793971437170897864901060395409944482644497066679967501521289846575577896854132527661322111441480272539134513325361942493099243947982053019171006402773133254694901520678584188044795019506174668604477873053339629431452646520404767726137718505728840148151400167073192429067366540738115585491113319305719057061199250433813611718610731174316128079900173328218300476974979866500928336394852483297726988765641151208942959232131327993299026601343330463049210581412522949589836936346912952564160130030355647703344400508022822018284609596190500880594719093983309557425953708678189385296319574384923553755075117410542364638781421917506997455650508275429803370922139380852428142316249978397767032596076622699687223062579720318078411715407426746889941147543717523021433566946228050293752599627676162040908931879092707306754931141460447877215737769330663181323835609366590387958668883770155490978717714406330000511149907223414867412419067911399327220749246577417529874916887851419467952911126706743983982078357227140996898489380354470577563608379379773416349721876685422127767525763755729288631881237299530364097352632540143541509418509104443685152353331499036686492510423481566049294789492783528547965889308360201477921883769708000237168535425462226914335973960391427656320076791591096708802687888049696320390947698130636315734630625035307341350817868085785318778839248031063520572312124187746003256189807279656953783146220585280033813894845756622872964412276077329402908547583520269333796524192430988611393078361093665093237575633341459623828012000631498759896043517201824424496932752841858277054946225874111519438100798325254746681084914754391457421196092681249070226696270605352966532144237206245466435592686699089920751966383936369940112100806686791268830052631694943981887493201864358546023011985692674582239526025063787141701177479044493458818622886389659531525376861170562230066487359209121102937199724126406946065585294755157318073404842708608609597519462991297624710367717830262930111335714386127632304524907775846848035930191317791496686336074743661681286465315465736535046588565717913566964802837468574508715605225570832937231678312197315360186885984175339375120082563455321327460493203280498090201625911177477600583420317216871876967222800931685438471542409392512074861873242689523415868499230609392987215533108901263194806931596254425481313175420837114027482347296569996272915928875511929522507851793811806116302379393489142764539031026616036434668658341075937297155181243586676509662546628577691353557493432378905398976405463096161521019862870151904052323312154352972691013891006143448997950414199328340819615058211278629041999718773209451970947697464964338915822283426558940058261245519586036032297021399612420017904647356095397930789766343174156952528748638187977436902430480389608348061830873474500570125124550369757547797062455967494048871232518512311173200752840431390498039707689900122162692881974705156288108328438759220337584557669227642448082992141945255208682523420575369483095002231369699930093567492696091461263887660103539592192425144917027318748447205582701017581563901803435870361240817669970002407888299627848974940555744589539925190018522019909923553597716045852160513595467699629352720514461137942329962782394795211588928884626548010740125117562905185009746521198060910754277975130706470451423332114287431165257241419403959209815745699726777466813413144388569395858118594412242776519730704269104966612883608026398224698861947486333113403359388431631314505153957355591574940240028493559240897389596519146989613495029253334473750239708610509915880612220505012147549530227061674997184397574693844599993719297863408442385482665002536757672956772677268802092523349996388884065144524415684490222281587729548475370479746907296323011535528986489423624433165297164887593913387962595749529918861675805291572049937907961916182357762707368076062637164709252574243099550976296946879017596589235219498969072678429163399105161211827998056390577854398775457673049145168726451825684014770349550996094412581750612799201580611157688282940792920526103281701844977158858204522650998765930326250426374365154490852123082326794524484536024641970757816224646098387954104503361921117064923602657646878446677154259289981019377353847907566574424653636314856055600272564154692821395885626054208563218652369732230645156374152849209766971086041745824206002419014345982609732287218183866821107822861400567674121418986252102220533312030370878405260556466190889377797584834829776180377273672142945381360167726486235909144114770803150541676759190117977989481805776059095041710735097839730575962669569040304658255977702768535599781100080435587801540444063856833430224133458903738076027352729572961390963646653410241666192649933870557416294408585813201295607899799890985129938188504972102394599020568679847533264500306929572464980481884150060835354404166901569257856513140854289258937883613362329618871009160754871809362264956752381017764633774227293886842438762455031687389502812702588468287097371835149971226867208877647863994300846667797360752170858276641617172848685770278978184420136148292671275965014962041756974486079182475246983988135103104943597909582329813341693658045123373017098294609322865326673346304313333694702720214692646633001258708817580125261225400871187502309187215682395966949933968785390921672954914821624874437376466678872864513424753846726692897809768192330254621611588793547252986513948933200411967484869103988077773774055903955031255537115140943695050951884010416086890021790583269901544510627142775393018968601500710739459754296967970722019848898722910232115977235872036604087019807152877419735492208161075355727152848347286576349345414029514189468485843439609552900488692395206102971557224124531740858713266188440300605238947419078839433269912052267399895220165259752001408434737261156508651092374079024509276083645324026353711075294960466559098063138202040997094594015122741968462792500524609674685941972093870150015511152059869099021380632429677626661134679403015585906350285629888423636299425368596878317114863345278237706672214151772362783843374962956588003055776103087652337584399942269700629347989760377111271789049767323715096854896628368416849874962008387195842311419012458682796444879169563444693088925632777736204378158645848661729950524052509215253919454874005724792859723289753083964587163483727468760085332017764488474111436715895873669501638811718924887246707983714641954957499833509976018134389509796119956144966634394268469118217952328228519915846686291541651635460413813732145634312706639192140625391438595329674765311118463214628972847231057146892530913935868698795461702836713283149169704247789047403148406637252890947139092254354074521917888973640821052459807718753826648177494347904358211325555686329887324935609552933057601994159297218054117621889382256228907074182056056843849594312035759004294534355179997171846911252984865840441321585199657774153656164200766616996487730813560962368542296098323362709596976410106873433802172439857517146138897012809829016553142562874538082048237662514040418332074940532098361281932282004722614319650962283497063121124617269737119069219625043393107827201516816071412815621156517211747736667956987731985973215039888087086379307254063724061796163793990643806895393464296299870342007643893135239885605014651268467862699584480970337851342450557908904046014755939704550186377024566953948920606567999368964310713398532529572630621769853015746998573046887902499322811514251928567795308808861068249688900556238615297281662802819147577432906215832575738324804940301208416006755026981125568856893244999356390624224497832638530613235914950713262090958773730515789146876224775204565452604962918121217221451366648509408393264290177946592668133988993268675571253386147242392331431072596157638627344305956105192137281498369277361091776060259782175728197246284782622645490935797333196591735956005473628527510887508408181935466175988885755154650747404593486873990575330499229877938710928263436223062404535348400477848393400511136882261402787496209037539716270932054569408762811538265147308207071828297949438577697579595160035475489846981045114998416196654714975677866029662836221811839188481834654250798229333051310928708533663037786013363712091144635562236032487511757290419708965997127290966129965723028711391301884927765862438350780490858927252074568083311461773968892203362341353883499916038155505398286286714054576192517561877793179074476733557390427168480242017243993591210761622627197666922007404864317044434179482555946090100826308796178132430867569098394377461801044325152858463973277472983900837924031524016590317502670326325394108611026214620323943793393329374271011941487941641031614157996459885315495694284135638459042391209053889205116769150734889319444340692819209476152825597358006479484238361138640839937522607456894311562306040330189302931135608746542375683455985972188538040849522431151886729258823747002339118530446328809293257097384219972350776377890260642742335131096507122764028311016973661189003460765252626515323227896205114806673012286665703957011819545600589612673550987192736356271974078741780290504500749839309772429271237581859876744698479328685235132248238555127255064993393991513577457321894832182265507232841645885182670872172754540263309431619167776330433805862726333856871419481998597126615990705209871555225125430410085025209229338763509013089476588257918973165376859047484235870238862090475206390356678056461276751728632647362592929916782552298312006728285164472578480840627048963173925331269952067255350896358693895008796734088057704981336007916019243062518282123722263962999323353692313323978439301106261912164565442902824104529421234920605305247393648925034338014341074782090941964061404494661426667409396604474959101019522092631783225237572433761624537076830354542758369320240153385139648087047049528947769206872090997007872205559763752819914190468148505295453067084642996050474470649947743519724060952568207998112074050043299618232158967116405617312916841377648224236627855509550652832932604706630942121806339050378527092525499943693322206368166740760756482508086298846298383950232563026061255834692307987139772939668499730024496122934497365214795868669774380996341295552667141052393569217955307338452325370938860878366902738043179686003061379856351651755736646916983219932584096964127511936817861939081404276205271774006223225734307911574213299183068886613628781664995094700641058163943126119469115186080971979261754084281691665962101248898173560895325892582936329464447186035380790659785149562924770907107595708697465149558058515123895410107842983594916314634710608008333541682060009263055168557798533594347737949940150384943412516656119418923123288737663009090839022316970555673303530266052686148935383419385832681119060008760382045344863798325160991534169486552473684668226189420574746527135351022847261658962243070594803101781491336332246528463295617369064865765707221995205515956336999745181985148408944349361745661647141788482093861591912055722791135352983380028466862324034961122875311584701215253146370074680498932598311292685505714302398621555082769179850925157318000074258005579269170135210022902120273889660103713789049448009022953047946108880988312918341284039326159386659668675820624708522421709550971084966431607254096803782548551647140017421599363334551335061612132949198057094652018830636619894977902838848326545364691935436746590032724694014368150024229158596632963667658157018410973891285906669309645564054620103708866765825244114566494131470210632907937818311644582436499493398465591277199340548427519373269058106433059482869166479269065569033762115626516607804941273952682320635912969638915364208249556662341617582005965985415811219392131790866940936411532383796793812054091548369260195177561213824281186106607539494237087228978303353284069376226312902448384756884972071927524704417448007222475418526189363904128688955611664845774247285690936196369406104835981787066171088876302365254823213735504711115659821121918957786823448759338367647193035095680060456128669173652041377762046267842550100449364375471344610218911319315185367555758277413189488241985440689616923913830289090792784218416823966316952808411284065939603751018907558391374597617744745667598615502482374406217052377464110375040701635022606253457464544056055461437668891081019470191967104825812825914271468544747499556741452615517859236285613278614551064809831333139742362309857270498838384090956518914644582716406244410014642342378681888483461164472468864473609499175597083634527542728570599717601835936780842722060607910612888078357613040710033877590108513008495872735689740383471987798121999818041195762326204522305838888585260229161797160409565138103928154499162984543525842233433667644769747606124535978809186836049500350190320756409497541563113309956692123974399787958991990993488628561618967441420360186337869756425695244681844899887950699108102914481457752857635266792458958114775958242928845854151824573290696682920881288018136000189676579413901916119774861999389159822923206840121435622743851018831549295217799636184063729791915862815723632320106844493547784613379453313299314948247809367449007760300968333474355709194842894442567686705766434050724902208003021772990011688666669955871009532957500014306328744284139440908819896410675481739438551131650712730493614394577129892274550254211112295551703140159520479775254699999593009297647259538987151806790249024953634696634267961980867365189284409087195004665125979739384015312756315276790824586023492498899557597804146568284091805398642902754302465107031191998285817978459556089384504695680096564464534741253384383599540013077248863012735798276720306359476875129596977895881028695251305017907994450601516746164763592893563279284408835333486538766445954094661582829068517167626630553425985350644585826732698263782197519542345804090055203107573384170196204022802435863013479256028384473157788715113263605178068521390989265088322868969286580722957305908498063177880123371985105068205982530053553199452834538017419276739972262919337657951104231522074318048316396581201257455332553383312740232927995332839833458505159246210931462081691746963111382166455475076012963269894876742732044081914580307899871272053157632235737258555831219720431870888615095262925431736668124581074715267201699451792214182555990334111810742978432579812863650711757977682007143520361424240604392538872268925701348163271813700560045115618129480251154291529115464219964420304322495076079815236529408794971699185744726115525338241614514240720445490841242862600251478743873246926581426608098759571628182648263983959736509105862375012768366736162473489015107196844051565160264263344608394482672102527454157129189407521857166270554980279186596264438672627856714966668713193497388022096533338050491085604637473744935256713059200837870707785759053099597211768815195551289383543065986882914410344630490776612591358017955494928079737065933955398329156061080181879532262431462907798587843410147994089230071823847072815713314238651226925880628078896780308049784651848770922781625360606886447935880181765873635870751987354073417519476002586691794304377438762069549936865502116113260460566051786107262444533302370720886493824597143502615464271821179395425369294582641021138053765740560328044432263297890755683438601679920195198375989139341820135375766701097130444581236601162669687015112557046008941328914158795539518074976059430087307832542819041616755826576101800928761721973407712043583511813227722034652983131502481119499415216169068523782252381937516781577945998691057624429502495862890853485097121878280622865325703973496572307905227661273041894419581759519773948067830662455250468730975114034516767818737353615695187706305570143328236329252817765745900865537981009668559584843586029541839255918886016660209200088644181884367465758029019849918699320452876971794167048043031372658003062779828683877145032222663263983469946230299863596808624074969950951882297602262406740751704856525422233904124460121617853668913319890400884289693903053485024749879505356384203854336745052006011866903366892222515330866332053836512116171821949522882551975112534719807610360198598616568294854965270523091639467822278414331557601734784038899883447616839576937298858942735917699645211203809965273684758707942725673608403665668810493309988327961881338663369637955174173249821507623218855607642400503589880194267964792912916590154549267286986170479715215400338828569121546301981622102441578431397852271934866209265128090810219743299968000285476594143299239864102544121891288204755378149352626673930836615315756213975062017968687522951743305312245153673171644489933869462321297220280270245715244448582553210045773259592620380972976689112446371925979242536653187896872416947311208127470545986879147052494819638618476878737323297535213944297047269012637128218805542586369276785511606800888771520672086631491231735441422965689151931472417804060153548857840738670246853077161969144488252774507611026665290897345312336562455292238051424647013670915563004826405018774083015547311674309644043862888562498691202700420778077839583203409786774761228668030695404660659674397773132704419949938449271144192858917339560100091305725548339339593033270570133041742855984993089099047802307213834084934517673314521825142509810243146112164186042710127050380447409872987429662918442188215726771030079767875469292362647423056226811720045608433238673878463649094036534819914944870153461466776390775115626428152719253453546526475034890971253434192289341901222190334010132067902620193568971808241072594996690704844237423890978159502881660887409449985597196676487629250847860541024254915347891639499443664682017966778803169648475257925879773140043438480094239754289046087218010719914001612544166727681775948703278145189984915982416447812044255820228474008588898350572667848965392737034740581291956119942789617392206135560230311504442237688208010415064419600212759342019096847583845254341344953049685960523397902065225592200851301798056118415954315295202925904068424655693726386932841933484030425494244905808242464873105861463867577569440851235522396775239241673674501405784882357774257845712786982217335661619948466341814729615640779216246046213816650559451898315799634291701012264454729397406358069240525114489968849419346361607170662453491989902566748366713248712685252374842362971991107647194061025438217109554344230962542153333692237946858668308463235631825179226857433075070425448407310402945433154614837247665459905755016098450118314253643275852973210216628189388891308766697066929633829636575996208228130412449157261704301302424712079581144892878066074468950681849076967116995038097967941132068446775532449147437195202754522753932958917517695521609988438371182747701419977909642150196458573706179660660718124719578188521700169503356662799226944140440390524748608851082154601455631571490503221522339247233030111515719107396280142393095359582341024385276638253337114958445386113277049645823394449396226760960854273290018498466863097422448943173659989836864915763248704066947405570755500038579024113042721118666535482971071700852308306129383437451842656504836777729934780532608608606407528103584107647999551577780089939085150494594374677864352681235119099907952437974731108063162502758914410917844538005674209734212604516102259943032545316708763833047544664632975970765402576166927257967863180414996491287947041738438289238873083762347269293134910862762877131576138603557491220811490989949393869682647742234327274899724062268974455706992306099206249414663740317080437020435239845996479983202177607939685553774746102299648229604569837284913315481332342577601646905856210987968907291885096376428445499430285156149759311069878014590156466094371063815867957480091889235007095740746285170047191852094395955682007686237190170941295318255564212181247609223579268719282515853038631306242961079417072737724849779095229864694108585530237559920390510838184662930783804371815455500126299533636089239866842678859122149251393068105939721335939256885424713493295449006123932748501445866201439674925034114963292918278309653037988437541604739717966707069554868253133131460140894111071794487611090735531547602270200593627040270033862478152571549258824652041981115814633930071841765075422908569612114610746284731044891052743146574134205747219408655407219081630649954668825541176661057672645257977927927197903547357924702012145916782058989511452786291642204274160324417958941108100112993836661070576464054680448569495072809245750709409574454618140227891647716420185233829994315533769282689969004717251469757456771726558910531014083673378013954460979362795768211986099155527257878186337845042467048600867106430376288515699157594594345987403124747507235307098481109190932036975191060171306887128433307150564500574712823625969246479893783212439946214469993374682957378210871338099262351899423967936530542248931421183457383630516130735837594453387867914377954954489652097054210863747491701249411376421483068086516675749574727321096819053634972982957307380703189736017581111724721165466286872980131348802484757713592269245268855472228318654140538854869390579715602580896538030039743930679248230046874262743936946098583834001490511806146654444667571744361194564466038983274260161131195155920238722353361344637291823226124474704231700612494934628332352339305948779518537079110057778202308985096446252834532014003326525568132911950524077287256217265689019366819422235142757908677017653357649193744718476211213516322600057445598151241212847133577877778954535296498621484762732548995396039792262479689150476686906996217375990176833213914072831175400800576950390692909909826826811211953532089529210059109695847420053835526964670249046757206804977434698300130561551240334868819990911820958951449162024590089887367313228303859302546130302790705383002593529177014837293284169747205553968055336970549016763552931345998874083883650318688552037086143332320551265189287933707293352176838855084342988094939224804078495307335652424820133723543006554732857215654080475258430247330735780945753289622803475619628585884447619144941472627010822415743650418343045368222100485236078976307601049909663227995147707894075153106517669698783231453963046971915599480466525953317842743484031557950849257455722349914953358418428881607555367711493584654618197941427771734275490937786772558003390670621105247052995868930152009367074880571212684001195667620214320110786338229761095070304584983192468039901384638240126399521827100668131525314085529635843024455049437247467314716847940936710157191270283258715170078595813753795187834073041265533768887554834147353877482455497732523486273081648201385077549594688067257780295051121476155291904961088757003831501267302307209564693314995364561770096252133091516114250397809047836379361891764893249647929311350544840128293284434121044653484236468795697996953317925462154998871796391259622279443646291105809270518126092592168127123201126604411397755723476257940359270938761154433005414794345290894972208196803887752379307303057433065171445793464690995796660289677466187112267670579777239684368387027149404700743645401618975762113180845942519899051805436603493435393203465201368481632781324694697154798913459957896044318887453188785586047704838459653736676089153993587662303494996620402367423605383431994047343205838185565397923219044114530848074903317450696514368268095527845194674812836914687210456001489887206043021635678667915841900747691399544270208734837615662756562404155602723547260311108784249699242900084939339785337421376322701897342035027599401274760317991404089627633246421641950161918873977619345828978554505117429474843232586824829250855075612676316857602344247761110168837242088054490277885684271797643279197205942997560835432604584646702882296162357277403916025286922457968715401269659971602456428546780838957844465728424461070430669759460559870977029560472130100640106575262524126746430148379024700903370228100906169451459340460932922676806502414142678942011683457984562345668100224269240506603399335046421012059516954344538634957348898915274714893984337025674913229242883114927615127969450898511396825745854144968164027383018068940615626776895397233406821973054985498933856334175234413287668765964224851351930380381986987631484441655861658643005461962207360205914465709927853786209195631067881034894345544121935522091499660594384363470357381596683885281680488447451226444920294910968474668389248248499042210098018122340549514630269698853014153856212110790385293025083800020358061825708033105571540006778231902965832226561046218456859091526085064303070736306718495930344598794507378607731288335534064454279970748581850974910919618360661000794851938346940454381286470175094741881062697096831946556686600421690496066313550527731109715107807996505058353617894890261283009691584470923651403836126689632822497780025185627843967815245760932401347199713360176139758700451078609926870215615243517386253112595675183857176216450713634044921620936005180912889407235411408083289985548770830554372224346280621289435171242587740091540969681749585467466100082356844994331096246715928213205289829557044586133551059509593049891900529313746991713496672947239444456707961975017822091699813070160282068688563610517185142631347490389287279487496394856446513957284701847478342616882277579923625430919785982493092476519412031312719165279250473261340242326794035577514458907489680837549662626231367339959108940138466250268322678639046041417908643705200286171634093180118614291995801410911843515089561134718205105333525852203058713803841302901218078070743286825677443037274522488450455116065649776451799624186113056208391447329315743136014737297239786656170149721570131368599286441381936264947979562235069746401590477426979743414169140628064556085263775117001590662512765024114294812767686959894793425801461425303983928845443700568699626963416935172089169099796078788675431875250351710011189114723942149030710278383289897536094253063306584760756433512891919307458853426716093352495982322595752835526784986575407160579686878321024951124992601817678004226706721075414137319600436477702692901984793222227940565950018228231586840377237775681756214327398346257891317236457383318437260572795682726206022466627031651484203644417550825575816947219803385822247853062136287799046458509012437629381471477054243457745139244213369709969419143856559951721809023937572875147374008952789443048120945161032995922106261993266642369064893544132472691295036699529790399205704912893621118820654826955320079551028558128264031937919748414886285442016883059780312866604234222444255563345376404386628980315588263365498136391768837501456530026602074924439409274323723698813394723197259094443606713868068090731424604398327342948803147490449618316595923601483585736920692258410389469111015825206679916176452306985122356551603680312303663069440312632844801192522901334709782051157770504487144151289126324784473863381288818986413809078517490877751235178843182995453137272878166353889879893312243917924759377041936072094599125517877406890808506026224812431129163769574479258175944144836733423883631634062739331778250108757536818657203350311447141227164488455898458154080959319937095585687636064668434588444773433926348792942249390414904801625175423971798639424934178687067575394535621166622687125500901381743758576245276335132396039865960608346463832367762689584272264614505466540837890901117760203003597118955146285694505747640421178831464363408113164904013812277513617103117365542731379254699412923220728802118257009120162066982556169665310443737831497588770089149008015597597838640343609131822323068617158099811445832375929016980316409624481992121552568636686069319612982713866145259062320039587854035471358295890905342663357698060847395535232376568272923555348487905913962674330117771108515084625520535547657616799678470621693393071450892391783873744625738040384862288713587851262058086413733002551309038253786597182240989810739484693316799460669236875348362224209524207140105477320024638722735002620316503521242614324191173418706488020416617380197161476439555906555861309941957496217308231495149685249522685532596570203828865775237497152975297617160922370958641984623460058197933481732485718607789752823450828600490418627517980850176021234423818216518212382661456403010671203222487075573945823106926742554169499050456721180190213555541892810003781261213105964306884232651644667063081676421191414837026322405197822403506158109615851832990890919081951204166845517913762474116197257535961180576283159826723352507067284730816894776116508277905939439779399948670067651185385100083913759386451349712523827819374281750278686921530642355114373739457627932792493701606832904398529454128359837712271209306057742629470442203596417085257345349935487429507398504782174667107066144550005869830009156372058933100622441948624029775190860429731806094397146283371989197697717789060072099533015956851501194121604816390081479037641452792287409250811347783393294057392944171277315662649283628886215163130981506630103979319177302269367801987755336776893578937975724179464754250035334881134618114620717117238269150967270959818403333933353324763085852288013978971897049434592185639642223272326396659361215487988182820061012765313268980185468261905044536357885341855893952613724304538354672471331582249265104652326831557405451713168065214746448355997090250500899110460418139346648823577936065268717609466005534733402030142454726540654237820475072337369911180353994934658949741851936902209996708760911679888112007685020882933561011490726899169057498124651079024141863152307268285726144213104796513915775344060180027429096369559280753946426446463669395366426827872577444276618704634458527225812554587285933118629555159362509803363389042943441307016519906885747520213584033267237548590845696530056442229586846228471980142908940759326203686800385093123915773053965196075076461372672559197031189565220267310993477636812108046024027854356908391282115722192775864974786518744270410436092006547881125881616911668250914064860588743704915701948868327690044774834280036966461228728675891533710272965184078916077300108072293298094637947567276776664102013727255167100177165809574114363116432970280848270037036888446137403222727368996344711745775513296472462945167568914928953233668646292382632636662554292007828599101951915504469587352727659325680093584550245606340420979110388526856971891129363930026934454093554921760917270376844204850275806516067416794412544291781982248587239897881654021948660122315086611380420810107732591261048401545400653884236681071300960766893588792733498605130257899330709201747111050027597184730234202512750475004086563552289439976503435761339181400013875047243036445360848317152707600167169751649138925104715338358374012573914262116319320563182214086072906668243877674525364199995418415083554371880795293829794622896734192194114798912631592273186678007525178050236089644084099833758632223255755962675482125779136132089216565902918318562526068856744400611831740844057765288005071685347862762254553929980914691756073173794431642880294101196761678347810952609471116667245040584227897418664348975588686150170186605271829241502562372053391312256708717938840111732981492939638335905467592457822218732816674448558558272804097962121698751990289060376908730316225671773494919368159618531196146764778703519120765634074919818766967148897148775915702306481535013956201406179918111292685435996306723441251276236028659862362359776797838895167273283746579473056198967395894468880898426860130586759449618261530666605052422766002111496584075545564855360065776154294324251121419726972097775208644045343006351698760601151095564240752102337402368527088522906737168917589327123798296439604414088055653980607530695335482611313110720294345580385808216699805393757756361066450548705647652903567170013991395205780633487493609228713566976753135557977829339928313210771661710452686916738571146377087578857115477586792340948705200711528662514284343881600111643931664857032946696043416041913239823994573124643702536122298412622948771671938316380411591164191227864627564201042177595374394274984250255001128637027649349441755081519961815482617447875114197047605951691356286920482207693720589591111759238391058589616098984991327980597908333332984317299938623034270339202919029640232464104510989088695405060256840766309956353021183954521328353979689427217707376943802216826480349208486027768478316422627951063372742868799052509444017659472286730875231574211956096939227224429895032815719717898881712502857134401122133532752931601679836022456790424498335796641481765949723013631540509062591113420544871625478114228438040742548594446471897908089497159688141066016695225943643951921391507929393935743536777218600976705232520189062108518803908963910702488209986423308580037074728355428989177923080018385440583552385425044704445227930464270051591639396889436466736657442810562788367392485287757420739414940845195236863631895026200520164191433875633337098726524637329728849847766392496510374941492976519931120581970472992704200494146461851013805381291260974898917567993794279072628322175173829610286370707995917436953377014279105146502687341471597617075800535222559258321590743672759562988271298304039296496513666575531685109255441601056367807240732924790720207830756617859738075134652792197830262648727656071901956933916510602550995841956167661252800206862764076450477682863348304568359439393414398911488779448140710934208606033279943224797000385779736403209804384989349612529006261332708709587641957658371573789387805820856493553697911534709966003922323469667664085745400865643422261679872125391532412613550420707485229000953534530631800004465909576829434329054766211125490910915043960638456802552292313477458733550685139544253157008410853894067436298377488268665749646440857115701256877775595672100616498178137107858580799045213839810187789963103686117950779375973267574391656414007964672534526034184892676755396027435813154421191321981126156790696778514451016057561512564412147853204271666207643966486025251290984011460968956869079602510697395115524652493136714221346248796446490769020014113370326650046125977317428685418390350232291675442155296449187852131589226479468834338559314058781147291218581410340328492581307944231966410733693867040790841085383840235780972100964376938396025395904713378324677363149197386125781811100222368604621029367633416115774098909031538335070604733977611641716598415528878605034461705320041379296889391019706229418171203867374468738150621873022711674123812686891916309295329658859446237410069564498628646381220719646110784293829615588027666496215461739226645871912681448735652828567066624839026815153592990592679448721203286972107885225153584992447697657019784663417056761524953962478928093583558303431804865413573775445779609256619711388155755597797694118302621333276315986987913913349643716339356944181804684859592421264522931534886672109565246186548270036441438421096926576703880837600139183279914770065474326871080957674717785230335138086014275944875379659632810358508489450565178965226774772349038462676107978862118259669113855851053392504383831180407623658933182818217819548988035703557071506047424087574821380497488680988011603310415757168090732815189069446787337195391064539520970902917375670427352799983592997902385071453082172712866827326237374635672090554422472180277343994512114913573934606466348440102358016851108365558895317215972223699831480828853391838908963613305991503314438251711831655677139053764232683335801850622265774054254494279754051952899128015577733417844025999258654681115721307165189340567019654307422134720125685027891369947318707544756851779937303604118501691063509349126909762631319524117819243933735149208418095961757691035703152415102860606663755123823260101979739034335566840133905837235845062717775961294819585972197662890858458331055798692207067121561567253928787907817582220663680933181144944241611987659106354905858399202827358908712274645461076267424912117068034969168252828908248639375166847478180849442166976787691739382273904629542010223859453766290334040785830230255489401115199342020022399941721756592306932363410320151692347303059863653314805506099508134095282940695633299445897673660575475277262815311027229949448041522085836186191384403512044889615553136334797177263993570336923060114782713136444539129350760858217866990219628047799547139705113207278596890297112863233481148599242207650826461285499953394173223425778290075046679310394943287600675382227898348130475771032219801501654413191007241678950067346928916508770095845784115350540534412929020673241805232571995683034281671070584786972627712918986927763412652476676304981566405508617366660999787112941781598961234006083185739998839121709613457757309225384672747651879160647624712189890822209069875251686636007862182940641734887818710944790580462089510993633722194563476742997074419905445123809972678234675753678149097498216130050611145397107770797377736747677316840838165715381036320184808553328244042029735457611592953796333650779331210599993205340983825181788416142237097876279434295803557677401420108024612989289196910669965277686862175188737287383542455223554655132187187426611651420569647259275360385625630572389103676471485116321694032068780569000267032723947206876072417857381164075913014475936884724385843965129323001194384291676567094490453788861719851517829239583843212752907046158720289189777907043154650286866991405203614239480532146989596209349237643288685069648134222260727187045679550119564318571150499362301914568402235522921997483225865361504060992350293909809647880530236500437232319540952180966371492386460414150889398357845402979493513861235756421702752575799912643067088005995446062582433801295732878263832964450308016604197858489039882002435062377777812311490916151915385037211058337487741052794665367719847118033399805892744284979276239465957960100678750034493521763356480630584876385210083611156745826299038960646203291525505670781055756063344706545450228539946072627057778108726438383266741165279367963778658668013733680133386948776640992064291042888126346206898690453203455541240593693340516776149497693900235972429349275073077995748569809418346776260111507192373168144469612755129273772470185720162916006801545801472884973196047365252182148600058004167858729284053487493525535991589632217673122570732900359112285243803369922760561001006795793608196019114227484930612082013169398704598766691275840493944835945134231579306117456449981140743286867388913689501440924028087296104581932898267346174438164071766089446384824709857666372295320789877238644398892603914032186973601345122360525277569636918581677034255294331906422011251462042993015344263561746306259563149308158686397374655981442344276041472037218761839368896286874079008780619877659931704118930847762320662362601949738012428209050446743801679806249827929688215563395493243145785759015399184996892278790390701450301631394866253785087607694079442117842841139664060629841377512029120281779606313357914651869264952352948502950752212108578834362727335840010248305334266815795285009869125486425422101957679461972549973147326377507869328637828839991637050386096254421332995317871668902385478777646339201039543225363245757624062365261589996650191893168488599171903798100683842926143050419356778817455574216717087783217019365005045274468553486230239370794229555852345319055214212748328773266704182827064080064471498257437772363750231682587796254605028511217990169642001143688281733069206544140719445802845881278424707240006431389911815982698536980425298098783866016454171463991513839625450124732845249109742534954421315294550233729600525956576425521667155301859556793095363389976208342786215370877520054860848268966365648399687651676966238085744241896435317140647846360677446839124343748691917327109639918925330530627318343236781746330650818260367141097751846354079019293581516188542923143694591633038657672239646575950353670650175420717444687358250418668390950259689685841008474714426561558968948999719445694076824218991269844287343233988384417547621683448808196357304985076272352455322292157557855161694968291529871980822312033618032674559399957164360502421155031065889117477534867550471467418815823436571260998567902506547660362053438067608802375476313985462833387932618538404249707545538951333671604467084176977883888084498831979826440472297082343651713750773669566823739479730917350879137516466961752894261123479119703439036995943757701053396369511755048711885206387470968656619622600308843737484732210385743274100227432151805432616327069223842202202173080469873577954538481129577381069539402807109277637980032442997205017906405054504960094367344548999700379684178320789072858247493401097968398556220221007817283848822499789613310025716720548359752073329058017648221017541797266188162203417590644364953354407089245461997199982953939988211384990394675362656924178709772033124506138852008607928751104131892528476364413630217892171728733144406807201137009094095123049693956250752898808946529256774561226066340610937896626924279625485717343748947206952690299000152679879542791466452136085515085601731185370467575233597730331363250468341891275560205313675772183112761130913814028249743888613633279611967200423734515476076847510031567774069509814452868160830349136848780645694847082575617195066397972920677084158305492200232979588684265326012570876132775044346382664241741745101579598733511794795625279538563922912723029937125852495996028506287086525803681242940147420981241518787002329942950424892908767744551014988185380344478139787538613979179508781998884887212145974777635745154475339681725926517182772184204751503362510287780120163888787199316361200262712014725779200028224542479299951396511835772331826479991202793212275550223282275289770773178915936297983866324095329871752924399450206022698261276422803227603383493552026999199464514381013936816265487388739487871174597088335814569797447324616639997254174163823304248329506981894116996737143101142450384782994999748641453549643532717618202486958722863910616740669075128397749009260243260748561053147927271743086229319424395102679141643945147308179241092554006902744241172492928298728466389988571929395253800345850573235998478939945238627014737067240268272776089992622805091937386571479750786576471973596153349198584490269992717611740564357620486549765255186715696689000670400879044554194038495751902145036782538840581573063820913114458093986823991968219319089609112385179385643349459256130707380183292970919581703473579299694383669570293508258825309622553525592898761115974664849720950693193256445567581711673839079139995949268618019807698135353475912650190400004360670207784992530131127525568454060590004662614479527695576877559841896916871607218964890927057923270157988490728099903723056215199373002444095085325655649389223216356773116000103447570943137418645665555834721130244639806848274506109065743818424385195042613128301017112137867930306064679443479735742402531029480006454305120944364684933900777404423235421466262365620831037758816477516325873841776503610487287866161163662953361609111969778541429524384171727391866122352845013241937247207403197539330270333377289266623918409396869114614252231566078589780416080650592416542751382591892020476468189107254714019021106753455594017425836785702905816599745932765007235075540426965215123153842922013198088495535531169894062841082126123019021683105703470933948003929243086646508656012910016015650150636723805531941250825657837698064405561741949782475097646605049733442718508147316694119980691808343593344013071817366860466230836639702100147161471116580957926512249681394478607981496240186949744084325840937697996213358268829139272838482310620661875326935114109841512545211681896186989272627852422421058942774805524678883007682547002149179855915971169432788647357962013668833271731709644525983296064841802613724355524882878678923792664607586132396309010042214801366289573864635020978591103732838351995457907787649015643999888619193736606781099108422929276143092452884810298740624792775245442166842430007808819690632289530428570735484350799411950598697467144983801618498137308761059097606479860110671604970502229875589498167585951215423279761775040574584122480641127047582057537037298827612863435925939457556894452412910277953629235774923234764486817569946631257483532389719131693455650930290643668790475039331127178282833926560367190002084754648005159848778003865386364938453766526872083152688962526206035944906260605277566792423599737142450276304655087769007801852816586306829649255728841670210113982772294622417612888444055123910496208494906811498599028145560320757160430769687211409377364759499790352632598604505168368169641775706006272735778729870368036793125121278643450367354195583900075221593716060649346120712190738459965168888758260877679649123504135176247549413634171035735715899841097806015319523082104858798466656162149386621411760629136098092556946875624349766994114488213333460074906621825517977721208312188135054876496631355077338746185224977197127903162404121148269965849360110285618464993738897041250790690571781434614494384676595805667122800032323980141975266873577277050273588942630922927189224008412385728525040620045622053035158390137913994532190549363723311686011290401346444281940374160262334203759174374666020550932005502808298720422710232524911693611317795360453175108552220330232210729839705982418909470630675454060756604565813385873742524614441890419415227080337317808184162198143617064936284208379635092591100238319235030045765878398953446826434328340549134475739556074191132799048574739896665566654262748439381664781903376936996793820837804427495439718252008524013931091054500995829210623093210802574170296106665138303463985784976586862886543022762755468882953105549688596181608832276290635367286965677478283892573240793063769094849491051480469136115053991644859553137323912979624914522935533921572924691048808650456334770098258275140110947933067668795291691433745605131562081019430196584828265854454218012113126992784785690494807423400828181120800701307939355871990489344082740712306910746525090532275719871801564762891300230433453270407735724255235539924022948963341264165872943634512254304091813347787851584799994371534455137887033405564365783670942078043646253612773892403718106095634019573750442364468898717407779950532525241461426854854678750392687821372577040811936480024710369169489258307108993306531704961887614677399665992605456942955956214785762044986942794796233043117448392606046713308886818653826729759061236639640586163624412049257850949814625927511366880391245103327934457245698919734163806902307599334072315147315943816468456772490332720537859006204419652058411081162588889567765009728029540350444559581006141915761628648172495342564001458174734027169055913759070181263163112687461605976673837973377106484690443349410978212044210397650813129277017080130703461377676332846988871225569952576065544470786024454339931123301481032488659894836125560141129880331138075930214399128367173833902106440560425252446724044254930610945001025075287042247668027070906427875795160027541159351374663457073542065292258607598269159565270021258059021067268554522858559914543226383031075019322657183963428874518443204016714872259195229677769325306648499942081559729288149315888573931424800353452932427040813486007254195429174652191488423773311893578056742019454014873418491629654933384335660703584259889786435020665464455393682695122702031540700262591032196189505710035948200069990007216836229082241780232761537648386218261252568378319327400179550353231448933388441996082101334662237040837324118142019188113729412241914160829564577957797789616272602804453348490276915884100480048963641415730457161332001008477071369045832442086040527168538212399204620295542693202398841939585067293823846552182854613235511420235906987899217511979231240348459733610936378582355071168823550868433188173797705704422202122738087225752049558234882585209264326600583390499988217669947018833580593387867065352446693401377915240522075997414199876204668935113493494847708166619949064318519358396696241255646518609687480546553611979644788323413468577968982921719818197633578261219311307330989888911580692242941882977904682519197869533919818336438018129024358785956566023655842404503451839153953282573329392429217913632832873640187151503941327718413518110852771303054688784101825369907851583992361281872180483587095890624550138891192710674800749266273099149848497121212167651667623806899436739808097000941672333507975095430855171836483653561625431779032898238943180737826499397807745806940190654548125156977539200427080219653696393853119771346432433541643047293436938492797998810447092519362939872594872828674251669681703545275095104573274744248623801861120298639010248055603472339151453125213381283572447214127512484620288016680066542011741635560013791201122156388683714793144714196018457688940196688891849418342143183596873017917893744967860333804824827489545393426308620278827792289001481091869106178108614523407865304841011871851052638133969491732103699152212900594036816543788140959551925605020725626693556900652596785138061975386240193621523503598749248864907440363681518600543343556342600996077584333040664657203942430129010553250227218658458497151850296245267480827405670101741659890336495084295162336490809515461679082229277653364687284914986196762201011377927410993253886122662031567978255535420337862085041940485244615814068749114652248433805263103027765786483889464284614031728821536205889712373201712844860018482011210085113032429054055510121415216935427517407105320232199325309549607042174044388524543734389648215401146868330060096300249262988546054831099856686213889698330305061565084607642071837376613011627612927401148123483142301524951923215619914221626593042584387276439666840665088268212029067974661949612553479316953686225187073036249063861496783694624318466544057608135035499015128246466887459615891007246910996313724065839941443709789934250053591001739524328133690209382128850937044629449064744740031958239974389622726730072893003889371958088886673882319828674006889600885922469671443418041287107744608917917657441981920630315790294000855802402326601924623107248048263607490280702492438732216385226567789226383089446597174081396971511052328949566471480204650672225517262103245104732028172966651836415541054488763475103919982737268270719428273096509417772294610622992600395373872195514525648850538106872316576481395697997245169218720766003345668717015326595607139879914111420519353691048371722710706713544894611983994164725012719685329322601093355447678235275773125143115449375921623364057329806414625429682945893248810482388993001516247043312383291202352948833817286127654868017534464301354406189465376833331155741833904286820260015155167389879822323565293671147394271156766530642113498240810583917510164474210357149265315735849057380279616395710659113480098564869530040892311062660342856925728522458775255455729545972508379317297998269802395613117034689121129853911050552792296874326519575591759087659029082364367224221310075499400779875476386162427900154319486777699928606528400880118788114972331753856517118282258287520442374633568798774644860545077900360611507764118541224236211857522001501510829516946714973904987260610198899693040759686008251995000796486889668573388682860727843893926054480162127977621601201780586087983658782207316732532048940977205322226930792122201312732377501475549011706457578153934083424365122472822894203616655875911144486645343055097803037233530677890505785805613252421503319485977448234138495407543846699122560517220607207869046926792013324915420378991317719642976448816897185096157332327685826067789757439789300004997757816903563227442824514559194419204842131939366398894825062664563749753147913356171764223811153033361915341991287403436569338279659807706037828837577643830399335829611873402236655866815123954633613683987959584854701026710718537895669709879869816998437840356976345488496997777492362257544043631078641826879379347288992173017837095911156841470745799887313523542401500862394155456061356842395257113793645667971807865105008316564036898764608550592373239729333444975771797207610985177536358638510409970798855020640863498937673088134784975609379736064141604979988468021359461463041807904565164042263651876923024038734138135016668877346274314608757898095654055357337708742698414948978745959244208602977314552726431693901631315345725053163142890108425567088833812320581626757926942865258048523943759489568820677412685743390422430997296754136869859973813254469123318436806432089938484078346620842548245577218974227003484718422989146228433687287225337276400463605922224447786573107129868932788980582633838599435423923188905213402300640924798415319675955570652316430751053326391426491820710001918305530032769580034659559364979064002529575140446247716888019914300280534412902689491513454714309759293049109640207487812234205549204387474591595653521579767979049136048310221010564193236576715205746779715721274689012592374547022301525934550461397477031349532839196882237801461188071321988493276774386271159712287925005564117686074108645866404353512726587058070995452091451978068021568077311930393910818486424268532181075199948106472806307436089890982841180430210553355716738548206993340622150213628941299211669556574909644175281357017877375966105014298029485833089563143044754697118176256404963761634260538897539659079458662255659648822141904361415417152309058184391730555322737307375565422864599161087419635490519924327766827365473871325280519610431580920502276978728974232171048231219204628324454945605727728877479247436700517254896626902189060827061055915476419585504744097513819166245500663119320934214566739827079408562152448734960797673966782430211106695928511070305111748888043759281844857580191989097063631415197787561049189080432042945404246231976463690587719646807191700901189348319424519072182467958592712811618573128303626596035424422729221844430739288082402448716925194202746813369525540430806549799202687291818066139856950782211532333512621596940487991131978719949161191804195262082076325425389028527335670092802440311890524738467323499406450100710200975425243489165243930309957128231690736097079376834431801402761787952393426282164054848267600688784113752602428970576143554445674412990857635773705100654901865733491283134472147923786454786693180129964193018584200702922240127723718958468440685841692591943801122075577887243048038606943807248627811051141176797113877626146312615714759149576844574504745048503548353053676736446326787622768019809722590490715069489719768874153362989412377993883174031579553506759438054508378193482566789509595638822069399779799215985385371163032523680590521572697700352238869545903226000351790437217253747941504725909453444615496101974120444329580470424409581734687466875179210068059582848402609282728813486088064025786816996990506103617933593159949853053925079327566030616888366807257229666858738702620783722545664502358440542401077957412642485606848267077666547203982322872509284091908332831698551030172878934590507119939733776601097530354519733538932497954732463338195019705789677384241626674275377122461424286063669500688444923953270947065622129877617421537130355463491261247072264464780385247786272856384069018598135360884453269253711738833940502718053577309077289657061777317417386665199085001566341772333640301544443591241819489052961631200701931393757118215760529491086103743598020582954816151156140358021134284128275614280561467236195573448691061146229597491304137153885817230760640233543410122472744001662715030542080612550895242597128159464967598287724606971893453736985106649619011997943918677136013206669940761026084968882122133273311316581876310306806197696117793232146473503609668831399212170023573026448524299834878743126369206547004847698614154068054467849831620367563838622576616357895842136822286876495309535977837686218641886604790202193173001711540029463374768474718717718142969234071764512638671891590885835112054788163676882361670914475358384713165087771936666543794497011743633219330902569687413505368736775098095617190523031028612654281157577159208920178016549278420000904505304949312157928457299901605433607583835294086593659022580799927635443650589995380517717000632460165415628539394773920692664429932095873264761136313239084111393392747501735764952523267315148577354772773356739363248237713459058376510634863412827314368928785831413854600015952843466379327316259811479315067302201619535258863708917062925156251800926385600892156227030175540521965828416332901350089404598153071569080704158299986318397874556919113763954744936448395032955461128324446857048514637717492753786606798200212483037614737735175583295309820554964061530022643296688388008645419351820582596711940011526607304677480309620137284682847402594648902648869610708659714240759456191350453950292442539341083467172256108092583502013601023619975161769227517825657141237648163949124682549367646119764501910767488377869152144096795455230251892273916945746600328717048055819924331777700634311692267232804023668077853411531212134677112546377914920124175145720664521944039311991449212857115527245410801685859543684455089319099442347916489172990377373328504545222904159287122379805965730650881332837794480954739135663671931432565168862356734685901937080987989102880647901271583310413709593858483088139922964084387926193285759125936443984614762910902519063104687639844239409256267579141236600090262479463520484480284099842249101725703911080951017891881274332460917729274253144928820194740764477811293181822794941527278771268123842429497255092784308003109873654146505303321817100413804753227855373001295683112776570810747036766399761517520829849671608196538857425233946813585618103904836022998762038269868154370491511423369562282824257586582982893883147192791003369466433395178364596959974366611278396665246756563529291348565568879606199739419263205643674357467359817223994378269405283337573372664661934616565238315416685604090715472243117489492512596531341737133906411586245037543276967737337272386829260748843028542548773737588807572106105008294321567505104826471629098914433265142378448525504463260578967938610679047716906498740068036898680670842573350298190812882541318492351989205111250176186931604936120251135498945207548482766606115219088331987071798311176473371257382671527581943639588756663779247678381962435519117799331325217760343519741437238884154860847085074591064958778747058646168368346122639807797878352799274609845959049079884535320688544301109293442205276519937656328610048044520334683159563680605284847544376960538403444863435343728136167667353578969244316415409096924419887739848388508832056160321311615363899891587087503335300152396346292107351954602612130221060127178468588173502576554778764908396965624454528693331563962303340584079859083399241051182506783835408483622162033968891806073187831238806516275039731797256216138771217222455333481430813588662506946318787930503036141572128917352471508426222563023743209679596653792211494199300673636200379757296175374573440241264006590135772695891309442021643647848111812336147009912057685541476697974511556534796907138344534078349674329461314683934703180241797557910076390590503610782274192460716873206519229813222391255669979319095105588709970560108198340114265439957259030095730620223831719087503135425908101681036006455525563966982188638590411531880887624154914838468895175827744818299620373057733403172817008242254416001099326641439086944532658163370890646322820434140108763324260887769822845196981765463045538102958632668449722659456516473077497494255520643580905364817179150950849461031420539002250427839963129686049377154664614523414481549636382751344163488102452090634393069610451199649774042728384715833643553517420616177062380165540758400066660942396683113445036149077586144724869837065792000392997674924034939352809642330947745740817899902785212952843587106280719031249476386674602613616536389013208769662792383831953035672226130859490227783675268336024258113991374060934518721826084968126451503939776034278100973241125793637722260777033220575532252616346086541559573244791386062148471734928395468844821893019610940231612587254897370142797612177976161695494202311921884148315307098953805676481723849713539249300733570047604879796813548064441886718005519224478365220740781637162332523132141503122521470658813829773186056068874197554031117864248403786926019823378564597517992839664948877145910545146548077095579258391113863401761075645360652338818072285154965637183771245848622347070631727765898376539251625358291684564397778752434353564111808443062690233452771792945257645775571074148331972120785492681893832966966158176615702557872435258733181790526994640908565611526756076841395579976898385215431000237457488005052601034547317587927653284185067616848345011691305169403085158019648789963354654959341469504138688945467711556847371230816359194629751779895011697330097865328101751268240969330223115226292738165110565804407380985033538330405974563389240453434822700011418176388198314681328385764645700175677030982856425864901060243069536580195341727765109981733360122859401376272434405637490924352676288816030136657365377628550085346646698912810288003825678847293141373027205518825838298450040814497836803090255742002851709307600516626351228632137786609386733940807834016210222300239340502498741254022345504276587492337092020054750512127571237100834114269564981275818137514202631210705471879499493555189477563012089841344894141220240396168842365869952515762334045836770602434828532916704918453536366326620072038481834944505231797861933840968604831931633642151113118906659388251727761222949014024209706334739125793872860105381087980481191586760139551534961024437510957399126186248916807253251035137989479412101916852990721961522942444333660252851900604105269705072249554171339348892574023508745860699666355222351629447211831369144472120250950023114752544187669885116369250368915058943332314750950990094172760304448270421075305978673744268881217345515299748393781472750895331859996202570647325983809274689281749532728531008602734389857541020306884629746568207349796376594744866145301651409424533722417455089542987769937227538660960677686060443323064287757141834200325974838702034013979438579058471088598279382678345301261727860447673122499845907422432275556664931612825951165747286594814969225690958107740807715246804757085857066362567439993020735024110582789642877330631538282915864460013081095026977249725542558617749768720579934343947873265068441069241692766045041163825094600736105247281832673052291491031386016666860010111214240444759342422078201163344991852342781817336409638633817083394147103254516807756162723797713827410443819455234409112553880351043730366038714337124205876115700741474876509772989145230422540103645356937006039258241273628342732242480120053145623489437869938279781133463669135178018602112925836403662800584001267698930224088003876054203682306042520290990136323862195655601241157884800304123578064705082905127146028448945482805240219664197864121817146403064401359907051732927135440011600360199037032807993885403320507891361176217501745383003108986548737881043894216403130931435659066683977806148361641643413312782939309935127112606937648744823947752504324268179176884281318242220574024785606250161696944902455329338212523594895519984402022609459635614040325047141508491452701613523144199805399996414826960132545345202025760842416846072783611485235472491252001949973489367486538034385576726573401149187719182408475545896257393488465665412323969534332456650247245415711361614997138428226972085350244079905151370155449740391471067230465186588191934788673450771858582129705897597958990752457134152671358457145143459488405663744848805789842837221781754469594902599892438686638924591744704799228276592839063829954249025300551299875160007668660684146696033508303805350426163168566211041225771413287081523281527059741824794939817746669526335612085819057200038545764012905346196819368398931734367960447720491529888802889375951948472221972634227047769586750596483380280519823666093087541312683965060276331700676127055594507972377117551022943563946871115312350873475237897719861166179623148039602235249015104717720028423681512814812954837260636062387423338470087913178354036140114205561829646593618001917146431918560142207672087564523825067218001055499307804798836750760314970295112717626960471627505073313584473111237366548621084215271914085769213988340519821159575403355647660788500751287551139584344484152732997179170617326134069753289295354863518036814316748808659681442355968073762713417159525367883945527774828841802894880206635750784219428435078163433883542134570709538954947726622811745532657039121938417351606011489805963039899288702934348675935162926246930389456633359046767725495056302632249502132325826984639044736547681836463280450984595730810801541525799113830991042618661373500599673121340033357783112773358921447634461146397115775866419400991753286617025310404675469365737028166531820475032209310753519622463858282875574446663317911225034179928384849137679848372325698478093622987781217640234942460869855657271177011081726904926477366399231502274540945284395716547380094651923102337937369378023977725448350961728397650086674235306689206590434417429038474073455816578023108319993389710825812666072937439321120948131189712932465077693568031749605159353697138445479236265764229671496784166534552440920159717215388727880782183688383322213356150264906775380794626874777213207714425459260342230661874379692383715687963180969932138318827942064214518302918658748372490706151917082030565342943875785844059704035922444668680343881886122886822954764378197961941578857320632050613518076443640423531819985693331458665532612144798473801445524149168259679683240496634603890469768671367570852485276395126262193349839875933782390009984928216201218011631401111541486832815114019246929984029849272805222414678548545161146846774844175034982263635436169582141573652284183810053663347382291808813924830441239253980711815542107114727661133710742143559375132655892155386148692733641727093307627158050827534425608736751681363354366100834412087067982511754280752839353386125065912528480315131552946517123004737406812405579872008286858328353214043884178974350597724019612785564288272315194745013170973883375171103909465392363459323809475653644405202974881079713828840736583717183776506449068213950403074850043989969450286886477581808031018664479920977808712898161269403531297838052624413120769200579801270819912952051699285102679184343735389271718410355757604036418586516848928411422537321090295684314819314804542740586940164955420207744375378338066359494204057486411237544037377176242879578209044491675932567005289371900374299211255924707307231960221826355413426631228903786236784612026443409886240655246084079756018038947816626640933596201734961430445908422911502321217274069753069948688128852000149172415918954898465929664830472464769736377777842715659204074975368647671998066740529781146059488189955152268755981586496982485989336989712440349189521844075390384274070726018785474312349638861440207881577793403597323386624213972247453102484596268978336735795549165426495447979200339257651245132245325922494754084784891439532876553718562950819713046607321851747111797578758272106035597251662850821125050435068643852197694656177446980038360088637194058786760255860042054431168822481984648332866790579217305688828256240426650712596418932037471544856593491654209388063304669307006707539864722872384815365324386159919106909419228441226444623448831304885337278352248484632760691899144708227721695062388764578207790958175844310994467008963755168234788285887947209665547272703625678874468066777651639480330551611757622777909527265430635674859428367199635748386704045666191320830724863933786536358967567348930351223513499212469389144271545066044607747093618133022044021289570954119135303203103567737133193431834686894354965532640416609439612218047185357900691863599882707956842568433955725568718815750027048317640602218711004999309997885323991195581658998115119114376439967400422701045337248030420172037122972073037036201882395537075003319374376875476255469511623737032369462997342502808437097142264729202391601876846627938162304772665560776562104003946670386846642423887710061244053450077649345902720774717281119331936842691736081488548202167862393534486239529064685237551916198084742495400990433306083353369518498039143910211665895415686049849306733249235809637668168658199494982574393800751719404016282635926037229072870441156527454565910673391735200664810951341385957417848423908289866524270267588694164381987535535010572506079616481217254699892690887320519454198991187354626980606074526210432145291056842272866706110577564536126521155560361585902431120311599320683368523731186122011561656781358707299366602693036792759753982529229358089512583043226886315467329571712491404638910757694793858820871474821681862866420680963996062341302996081678136666629094272301065912183567255292689803735599631206863134660587544133189835343770309093016731904258423247842917982911668091545088527763923864615912899426620320422363647599384959470602260707490882354807955911891378196113766304854100316631426044149414488698135496774904640674720466890296940873384996333866886411506026225113534500512320080970941247756296122804707350197172071045469476394630550465042583078016286686973024667975244344051645038458261661218795114825123788409940147169641613079379682732162469377399271975397705788612195110644596952978982566842911499535584843478330751862722875181994240466783763838907913476851060189747496031138940528077394187682997436294143611622263948203899891814578485060735914398729215877859838551504439948396550775180755944969646200295626713103776267246359655279377959120243841815641355789416858951087184721032529798832818878064001167359348385653233926089231880855653435182366015332094511137842185728130834997245446988040648675112201214383992830586662788013647411474590206848126146227730788483350626476100381213439160415026436791951786251122555466470335836762698177064165436858238063399152157665866288609249893612552966629456493774496355694277089400108992550716660309365181358082147925230281789007774883112693785645341778355407738276886290443524560032608329939130854211240080586214930248033292974428653099837898585532887124075927004601454468635368638606746142266739519146979596340480476925491824880535637769156962846417029440106607266506697778901870365232384782567830580409057158461560484591979167819180935366434549561782674607094526925527658166149764155058940977365673689817968132101045893001572528509677301704440631809280723729602146839974551471684381819381440350643671385575797245084051866072682226656598977211014767867275490084848668290413789758364715827227729956026090790378953314009725260306864582664997138561677200659933634649816075767777662431473338459382787507409416549255652846535505445933693140734468287320521422689980753945733116082302001234672414512543944045407139859138376651412667916048781824802014990333598564991774952318482067826789262410448746902918993283721968693054224722493986174037314698525522695952256985733866375335973595687668366502502704272084344033199499189440805207497163663788218750064718446821685900951816580909685577233348996824803653931233556694242644776748242229072246912884446232152850183546917701324377949108256923661734871988966437533913125151058441779224052845478087324321632469308650668358096146794389603014620232134813589724232928117978128255245096579687782507683668776678723184502371607599003724395257268154716390290231492440583979758883153820725190471494190244541643083674522087633183153890802977398614119496011382220295675721995942141387251681445315508099818194650509393165857168597818313940037337190475284464179614361958059141859720415476112474599456985370908265251317627502907235281159749040262891992941313690042260650739345495012456386680140869497532149113360827254501418456256963940751525968662531824544753053361365744182228855159551686885305590312102132253249242655142597371606646480637271073933875552534800127650638543640040725156120411606428506709125910914530883398189033001532284979060082969236838499952250021093121855264807229295644223708746477034414319676863948451397089212451745360075570414275903548413214138580586791234467203755336371436154165954478473116940483803302377514897817271320652305364189295275082388409712655530024384441475521891847315693722698043855058591448486452415465893198676368588196857163904595328465759343298235235356243489467245213885829379111316430834456476755352162165478392711328605606497787631257921091830607701848230966018068978140720407494291762305546697746982673303672623909459779003758722059491011642870338948152650529689597122669080490677164311979625175644633911339665522056371165395135808421516598813436933922536220857444593777415736274064524072879982668295788211079127566960281951594292342703478267025494868293505334007335686736376870195894339740015139062774062082031490001870515185285908735578153856423704658389168307266450494204537775231826758674954544009152344069123231633477612672684074751894129236523745890216619777285122498132197570496985538362389847119611042559270200913323379324761248491517398045130968425865095995916926517335734502156564886390367115761131176279186081566904282045009316171526756273235237879420214186730650634271668533421943063163776509210056277102101461623594210192421132381698748256214262396895344533676066333835737895977291895187978645752196236153213756272860247426100880427156555463376467635176082100802980044482282176169731779584854464901175470505876223891609554235517113912267829705106550938221346234693030354926168914438552892614579338812338500190672941461466940958316806789715692113866388569447440485765190142342142758333054350194613607228209847052282295914872566435456876939423002041728150581074963283597522562076980565398126983577277043341653329100643289520306713021392240430826932047679135800471742305118698601946138314073090808326571901964115627043636522327695540090477540765425454995951000073778458530664092374950384877876096877030860981648577383988558948709031296115744746899898640541343490386363807954343483477818731959145358691763104315156239167549589912629961216895434648266140709756308561340106008748583427528793516300330431197131999079328964896265457826088669707417266328439224354803016517649347660486381646662668225110677385706758976563815754295215497327183724954773848999310278077131127482942547485503065312709369971108627535495986763136663340313531218216067377433837120379206286437368946557012678641420973108415446153077440365671264492942011484278058189175382771015506526406385324981545721286692511196744967100130274589538298959295003911363664579546486247145509383218154875322704871290457610014920871279703797987221345773949702723281814635261565361628278377965955445980402439852470660007916925344733685353475400351512045904971451458242258907499463195786275705448857968227078888050141868767509272644651357192096084327566484680950769916284784328128281653165099248114353528407066702070444595201778083595026321952368306622787289961338336025843172194682562699642194270161539265418981083391783560183617304512905942107659448273605548444125598492808371385056600442452479332938778607969118550597974758031004172926686657658369565376059192088136155702256507563665341201772373134206070853406749279548847333462820581208807684656506500869431881832894599047991191903504093472185667148212996759756112148876239595167658766998841985554478627234710813403864408056274838535431582107945640861331900303879620347176605558475960764940693893114278218614255037751072873290591565997519409206719128038086000480467514704225186784770227658069413300571873043143222748182831971689207416088793767655899903544147697808382330430152179549433899327061739811624006181033041007874811152175975283606539028656088764224652652388321216008196210408288550773929658686223030056796217578405846136124418288230603883649888949589996893697115172940070551933292147474688855327255596830098451598103930961040882613991158740594399138013219911284159101060973491874916862507751557407933772748760306599332138008708481110974352591837349599023226952370121399182534531427787273604277554293584355635402085922080886014648239465205445384586661752714953860707906189773014482926233718384506967108727048812043227339091544170260747355718380765979515583923680260829202041811424984864710570386138527483004467924430771667725707061505010638409739719534689068647609001305581598662928527161791214153669260929846850169436795965818249085413295956496865999331090116480155460684714735482906923440930064654062664873578527030253267902000722871525446222210614234129588900843347248949444763951297244312205461354808859603204308354838195500737731892676883067039987123831058124665450946112664571964795822997481329404623044423347454030492803410530643672102121693362678364441310378660585313718592424880009285584198783556726511002508827218850654322471694850450182104405341652148604919913094605697215773412180197039098551689206106857643584532194909144235812615906371338673216077229714550112885296778421236888236153988168165044917080291450805142242004070485337608168163444499207713006174643111880060792487610893805758738251733887369462770684524691314824595099680329555175335906820795210826470856490118783847993447015202788556332150838388916419016612574369624096376527885700851482528519080482031647509679390185054671154352214617162554937905552508388899537034190060308064429233492613261785666982313730019560846272469559613238511993255751030240423985138852121931329199395291715055365324186416035803222341189277939899969474363968820689250259098750004659406004833333873534046412285131019496093474039615543506484610155548975237462609665688651037380125460774425182758091820905479976921257664592020187774461186313850543666842766053319088804643246152138797259250295604499742868237619287438217184199496534299754975802038538189611835302841081521778424485754330489077468926595395876679855098216710833170893700110236709251353367896260183617434676381217916876188280064331621587000717219810485283986095358837099223001070673695478214154589065534155599524066982317771853307897164866220243986201779415875601964136854205932753583286599736322309519705837214093306183883695103158275180790804808964801039358209385573920307175247378517914894673504149247204641896250312792975493036870051570412227942242256782524963146344308173911787520782391103363106817752874309837051796076509749121239191175205639198163830207269388861420332595140739964561087923385744947838970351360234746091611479927105759841344807433522288931395601735612481540135573698096059166663206294140639215307100170569974932133064239818916916129025452265322114078339262618072431906040699346432678200064850208086329901713992592707917203763817110732115090278197485529117705509820444112190249253724738867036156970360167581560836295310029775012918171598565336508149285890053735706117486084363770413250860605334879078665037039903473833469105437866912278991694483814251554227366803106509882450235459079470032209428114717837628909146601750487354646691024989211410273390062229763336227239679969759195365199194140745756634789254975617602364645865651249190213364536867866820814531739586634205402740764057280736046765957035391080196356873024508612299868495201033463029935039435494121015000500029328018438702625466276087041018535217160716740742473653909996591114938277743596562694220908572267602413360945526333808143939710877660127052162242012953598645520479233605077791606193694613905253956864298725706403468378642654257852601558846310388719395269378487558421082490168907261330070320200593339191989736704431272691961533462988605170285026295586862199320595249000026927129035103796924165329587199810756627478353098994586813464249697102008955561114193319622981788412076966392320118255518415492043225437038416626137196787405917956128128471274067042111130916974326279465390160824655940385444036760182401646200362830968529933772356313181774007339260205550796905547404926811348069733010577273965142498951855954810536736748892023342061505686570408242226456612938194807720689046012948543768910240789955860574100442869239209979410840368043989170936060308417765701589985604892645849694299643870265998712221540062912758773669155532404191119996040610547212172161154499876290569303588466887731370613081184834754769883790517220587837574819252223438224865125258493686116867509732897059948460204059048138407158094718810275103263223075243520171300231103977836837765536660689803182720604659548110554537560092640986724274757693122497674218966238081692766403354445118573386340795324256607896441686959603033772207172360537698554643784751546115099572338524617723357143691269013232715397246733471606849731275503538299934476351849450618431637208204411271751625838927200849385986451585391048528380632557453975657962401399776777187716206555226474145122729108661009851559802000842216909767287181229074398064587949016253722237528029323947383216998871095210811791730181184998294268225873008561190301694959512886723289003846453423651687992369421619815188771188787527234070016792202228585269343044708682384365069052228862809047758143127338537532143463557026861220517261658651560248413128656491753442056122495483438149422745072559050823873430356400377177649098839922772504778396186664705219625705076624865765833706280686882564224892932892103605157630889993796894468249406639451089464645005835579612853521590080242687113398246271696511722649721489015474823189288976731879626030787670787202095974990725032612046287567706300843405759255001112423327284803010281780935500899953159238546998229045394196204737001392997497506878615162553333074599186011299069784958156047269430488992072914846075923906024641124688597245262926339980762902429030487535717281997975603786356090311437187159992464986188866926884385230449663214332691003566198867550363216669792986210728388325130410510530256002997897068147198823763293759643658704067483811617673767176882124403566112559379464312733963239556285855009632840032225804367827928215123419095258704132742532028593551023251855417210470347017011547702061790701201175589012143805020412402875107655933658899585799620800771560639546275448173416476476864103818909407911635720609813682015486855908519721155719697843237199473412621150574441452875939731586648308390177627394107806913004645196026543784317940492000643823364616941196225783499188416791304575180781319677271051504732261583301089508798253002676783074484024564956900717814145265070136762071597982178481637004027931832231630133796219619588846566011521312166103317828398891594759682654598984086970214620361888746375951375817574344220850434248561798246725450571222207107093909189631279051125650755898748876037933223604360027832499697208429979799485736826359975439689138128406488661095253629090310673400192205707142817483209916926128306227435644437447569109011193732601626701113661204528760940927924951821945765100954403980468717623704659309154049155897710985713311011651059782517596237525382755211007980299602177567111111707307549146255403394366373026030301487750184835237942755290021142228705422789154263581623813079623114893497744242868603486131343670226688258437294828591987827324954462789369967057424861961289260604541329657558802836117935885388026348912930786456649282488896176621530670124396617807051391718349046384240444964478201074235395453007101023554941972405040283277686494551420950127480420897842331918045650405043491552234232075522136164103498016286539188125568933830050527945841565246231224185764517907766094867479210725689545697240549934960810377829074463156570873994322433498890569707467501200050740662042091948815894713399406493077849646281339267019506698153570418270910492022501360588212238503261572160515188874668308187625781646492607593125728375447471488791616992640993608231003907468567480756472037086647235286110861322154271438542812347123589169837416509512832996811248045112519037054658915842021949842949718690391419901093282603395668368222784660241515613298545569529732493895887161624728760750674696443348184211248309296400127983552675494622399007882284225652557948605673583599400961510071722588965490243868261575495392434343161056306165849870854511364166742636210050665975175533359206231067966279304129771928641034414697092367764632056740427428214492001690946856475605067804743283345912431516402884344675957664196227199972555216925386401952714852670332089106721096218536093387928511318966532807760427106647477194187086641732011058521615469248303711843373298675138963145792634407056471048217521563468713407802777453482979628839358616380200664034989895156642239109870294420039561305496993008187768290459215097800547012389329033443890521312938481830269514940666849115852603302393565092960766131424455131381586778059086613844301764757215598402764411465706397726130180251701317385737958239408237654252251676737393909236845891842433958001807398578469592995203829379133084552817976229312135397586888825458231401216805226088000049953385017715216004488611407016164185713144537164981354402714766388682076388693327346670800369055718335335091447088055451861017225751419029482154504562316014405119560014942812148669073230063345651828440515538492940534206119672682489600021847679043200202655188637405038878712657380941568091127631488725571576935306999312011513619828474256911266099640719037804774666324726110678840715371206694240006687505398617751522993147091211172690436836587405082855611800432364402133513201687856147525745384727361729578894857958851545396887322779563384000093715263523123834685913467201802484532193056124053818119612256187439438988977959401086855550360966282155159864818950390634434431521065748291876813988332134333473325328345526136702361452415592760712076774260597840500390123103889012003026976494496446464369151620912819411302671993457730632493138464407857857908506677806784210275328767593666475938715542635477514413353852394054855971780086627729615955210659107321578269289876094363599169933099271024384904703826286330988295356933158129188866509582011983903919834666492144070071649552472815251268246146475669759632353832476153718987228442349015810583349749054211126223261111809130016292426412293469276328503613724201098150559841903663234737893217411003172564077015434803824497764820524612055734323925739701769350106449621893407558185124277631131090968660823905586148278628165026860481867982430944837417236631660140388951352184973647473774858871617442490014453175747729555432095365403824767877379508720264449302613548090157835413042142909328354698663131193827043688613054237980306492052774315568220589676272101140598217885971781864766756502078272695567443156414218595576483698333149461698624552076859405330339938876995918845594424833806038940104959949389938178408642995419810990154330722172500569995551711708522429266173937223562899144733670312049512089283493556680798185931662967400875491909520897062783977858127108159863173236601511795727888300735912153302538146910686146921725857653985564280445801891669883585747476282822902685674729181825814323940410439936830197669891250518625543033476545418232192433172846951206490604959312150199109120619612254814970524344920191094701023226845583366423058455861427467500294637178616316900149677001352599090213194913905448170172678455236509730824643760639653383166651063911865926995744474418179402872768689813188314710360164735629707848368829162344300354698087175150513859602921253342363097337320731090167227711918058675898170394157753129758043351937312183789346945069787461856810825058113430226129131726148831744739395788906747745059390585079080147978811138235997600023339523188098217572533858133181879760311559833136941855414294506102820534878823898719545538922388127994896176551410008847733470843493049489765398393993596514363778011423254201571424487326963844564768688146590448643024283314686546661661316342801845679274932907343782519937463705714944215767970132502599548440430610600037730406878115977901192179015121474181939726669434136549336561729036082668994073537250513548806651673031742070057691635459924850497187648411585434141781923966539744785712047493915554458605607046230900003084515964095722629807955637725065530545116317534100764346710203202193703331560207209312219398922108855068733968580316087400566483471154657773512157051592111966132951698478101761583887306085230725872410301411152166721112088684996083397897419734469154730826355996766373598485051873754744566736136764510318947683758663279109734131923800816447852115438037958685453451094971997278035319996445433889509116219459050427128285719538029862622078667859829159571861456442390379267637019610063906373247761247491022539452770299858474412196566157316712530264502097833851467097071197218228613153117398331045021806610764914258093047804256641874186930272646401288489735133449917804831489946507548036667058197098198248476955502019638741278041261697557304340585838496877434975791389408170092976069013790033711408316312201140795441513463488531311562285389909571927054123433272442215853121403127816995400140756154135509524018335101552234596390454776383160600706692480588778760865009502563026301711332789488564493345316595572652865656511892641571785975020116356930300734058972486283585700027683463258547484381481387611877421835345141178244340412460930645029329316598470976318244180615763826462679187615903140584365968666657077645450428038411766548646704804636723326155414295418484123221430122019444420025543879612768457523908207628158136041927620375412769327506513140851515170343847425334422594240493522304472708434401358565566229460504216904101141529650170977528285602664145025157082917978000188697776795162605848986534843639679446484058847804733042488379451817031251056416121483558657988929718872984473375647605570507444836714397851047414080329270412740980917384466894404224765475229391947483575549723391841212785363623478455743600586382606385323449299911807764350611118708827057199724738360255071166111797306791928575261114492548027611826429198743736156118612224761872489529526941468667505007784469995360607174311573892224262873004007379182905611612670382261431041891507460256731340937637462823520922408301937646211402147121874680968965459617488476265588265186966408487466011554368994408329365013998066509599077868991925631712197840657486979172999828474879541384790025060091189858532607853998660204716626723788440531375739053615747534761105497292462196628184863052738634387977493392026061522052122859865489238490358647566218899636202825403523314329293791237148749912483606276862629256011399713855660941277601894812609492378255291418624809699944460062153643077145847719563037240326523609620452882639106180376178608337744553456331925288799129587954739439300837747089398505585180378465215445644576642875618453683142529209252006705951415059916400075057501581712664142893760485769250871080572369564525995682593681061598845390400699313678157609072031892995496033638839090287197475934251546327358697581148339122779679112606254048341204372930654568442226376296741001300230721318597287532374054666652532091739042445928349118653094266313262981754303925342339653600426239862639592736471732149652582306244618136501076530692016560672085779002641310224511380367784567002677905913903467628104626922663056793492309450054419232762721119952523866901304196002690231670039382456478971078384271272657945069591793168572874036189644531174491006319890422398472221056484774028237414718849256223859738658148209355140359851706708598847124401560425863328808277651138784730737019826082847928851517040227016514602243519996261147619053875394777727123011042067214918744981922021012535059109916616486839194811340132559326804107709895464824493011989449325684288848519081577957241250528663708562456874749330367100393772743862000162331918456769322679163204196263874473321188005007444660599571237641799766498130917496391817004433221187651306462414685859377350253388618004040031852733381464084469340422823477321525356733652940696556370732894783809634781151932634988585956621581378727528698519030577198280108995164598347306926979733674892960828950807533070296089135312402197190712863064429517266220447082619882380431384504983403170401790939232080860786833657682478765054249219361378230290406295773772288395067581599193098929021350603054924664219345823892208400236098707305264504452720657486187522137104194339768499614485397527915607310103568011931937284410650402915916963576114320392924948250948455147514424990381247309483517681257920150373320522622454411332005644259470115310875159400882419669862306807903014182048583843567015332405983795085438076480340825656882218063156902659237933777196322075257979935289383515348637746218487322448433057993160644330374240483424657701124892031555926002400964019072149354053816264397776607404341025380634791948788474671940760750551391723582683753159117152612421987430698949406275124768065450045379724881109386418956187000387857702975280031701289354314344837629908757558834449388526589289800746590965534619277084076987711446141946892987826822961318711545876678851875865445014496239867273280128466021060591056734473944250289078599359149886570770994074217682599895379492237018872592333329145275519462722201389368874432852915943447862184556709991278871337616857313912096865939290747998073537763635881308344313064616793371548217856133889040209071676168717402646699444629699113093180358272451055994272578507843283185502424849384627376909781678157679295800588639488744633938329392554758499535379239077904649100910640975305679016426571156969648417128433371539064588609970276053971344730695292176216228524034510068085162680045272529140855709861298460616294699379223017166307796865543221548633546278974475305061284133577615506655791183781062542437808107308709312544349572277526337743234692696325317971756830675472382467034927373034075112423887813072870237664717819463222684291890486525436546048711326794798583187835046420077979208017775368915847416902221154972427125273627690108634017100785968003461310032887148989058779648862714596633048771045867350978537140375940172134254487546187626181145846295533080954993406515256772301437761942096130397469705125132664323376639093660485694082637068464195619430179543513450990080310810376865066388444602866042929838216777738929065535847905962661078195735028132496133173828832643103353447042802957551971654167859282165604559248622907358081129970614167686852908741750808672110298858372452608545337230214134465621081988931170276099576980801672233303059883445374999154502761149224390766172338781001345498896545403591817096555602921676754733447622995349349215533180793605292292828019203824209349050710696411374151150185099504919638472917516867551789774465164641795414975974051730218331915842862093417059035188142594743455443180718439433396465023535449613930240950272289353356192231370826385519344203499802996159137322249335890615365569317737200511008865513901584285038689947796659541165881308347259047646289469035779820771623640692599116224307183112169048643351068833364188560774005674585393937846979080384741992571954845471582368799185480663651984175241893750614215908069528794493013005928559209892349495259770588503256197676611354483051680994246054032276224582740549426987994846502237649887618314751953232743816685724609475148010315902762767261591683013520706630273442329575152513204753037703978874421658959174348482471500636354190003658624773966403698093457506887002226344339061138836292533865720744626298527589885188221851285135477301042013089902964100119285147657063370250589400164035124349237966408376736105965359697229674084345572383928619571025994176210195625321882506134225025995099635906420516713437563176812473527308050825802538850624465719452888675602051858401056720161369974375062993095165369005920772308712413091104524717444238545794571377278506199527513396878126139333509669607157456285217204056970698546308785221597426176087220477284468468918163274467426738057029651964736325637207571817284497143687200822915086451404508692330515878831179450613468394862266865232036891334014930181902694533578554270079380646010216095458833231563144250838688848757437776586113880006696466205539047889365932560275383827873947042408541993560476531718152616148341782177449200213385630697016908132678114436989840516922965011614959129687839480827954373306070631736913704194855928852416165452024189704624790047463345873031954508091546427624082569461101609979418598420892431664377149696558998826250205752165988465688805816305235325669536003096517036000676525529673804723297254280993406290122323571991653736318186532252702776292379276828934682551598071382571982171538460691958486072007879238374468325622202088781587346809144484503161279195269659043685540145112441544022728862946993377285803829600506740879132377043395177649041985632908831478000037033133074443193154644287106838573823627259957959005536024975816652852216866438222283283111746696371931602423429041604255798149797155958854322336388201033641073064723812526285728341997991665600261649499682435772074737369717785507528685104456812126884572147054409703842558482120706471091663345900668080986202364538319679940004571986571692625637758549507727723746010031289409678798979896745313929232400403161046318892415017323693371970275258454172184829641483651560781396756913022531351939426406805241050218209266778776380158958058622303507090171072963449853688899457581704391734466557193049731692933526764543653871008026683623644621874693669602724984679029170798842523011933847783492202574352155725729438896631827921416707983818239714152009789188911794006838214564229891335703599651108825618624450349327914422935026021694589527101831035218290081675295507652704497483661567271831958245271205208826343551195448278616476619020460275378548372365381946127725243722234801711347035584183393950518747913261469329121889610436871007834802254271936892887848126007787866067347993391347728141473084076206453522758390364361967859274624158832872364433915209510930989288144329373666595515880828248332556125691732002641436337785205793402196269724602247257001107130123055930404875965156675887366839242142127969703587968727659754507525362740238399231147505884135633908873084625646446014428251654732876294411126292263811341893047639037747974924843203803547296652608838952983564224624102853860543200336146820710619336165545537383989453040355674346494505097200797980250790833163906776451849238762026516684640923839200889477057385525435769459064254376204857495016999669464992374043990570554935136474609921658045815430955751062819531101767419250587494979928966177294716930567009126135433666295553895978539284024835015275521361921983049587899127020816090027885044361678458960361559168861470478850985263862712752901947666403783648170103426661796162819108391457090413283725640630250778541417299770706579463024558902607674204609371516753893285565070348846045868651416422442224140151427597062368422282935723709513528980222576010593405135428607258749997905240534259422338421884454896190842925365737482778053601433632042978783693349761070123819119348966252003748098675956483566779833086996621525581016176554037383499658339886930331033035649932683460692157556198187770864224577535993462215955156082976475192727528510410728810982955108810221990810857204267711516804790341527381820228162977961632815565940842336592824226612877150153731383032522081758317364997244842413601132870451531127340305816603437540255965406158421611582675806667001864280396247615432308666138234526017154920719914948719255146065908968616189740782679851703277977385128403610511163515812080102426286100448159725686524834202682150417712670249829806140241049500880530758321769823418400580574788462898597393090058712898152072037966748919436891697053674862682762167577218294859645800553138569680326442775774816687342962702548816779633713263237449077902850787618663429254053418268581583499906810454579236773926739367748303019750677928837096222705740102108464662555471035270909163789303041514969355325804690184013110308223468622842588417682368076662766321923707657938155623693365144165481071653213213669071362590543352877028383865077538224646700226939895230075166485046225551461641721787795435009018786087405893397202674614063076656196369919583222770319767594051359312709556639526485206180830938837686923768236964998665932898395396258754037049537408160859795704598539554113817495878461363225100961481333848595484912551166483475248085981123023065960735386144261915190344795294960093523851881176477992117460153091980432535636627099255612456117982596402889988242672051406619648342799983719239995743917706833203205851170195083085377331218821981656910804142617545869993806026700332860644352851837078868395714750815526103581580801982255898152603814165802836321742744122189691325351530746686929263337317287874098360163044687903007283899745006831948195074063658849872029367666671859447674187027412542018566016536361330380652721156265849103002006665768132085344827559232145446348155634846287429623500294348435030063376262334190756238992477855750344363802250397774214388938539477431098312333508371370907988364870587829102596301230255176133606389544878967329448743118180984631486816981502206844089066085879091333777398569061356681111947795031154415890768005161559049599226249961406289285083739885878116523191813238692501737252619755559875331788112649791430175315999295430995614608781962938801946313273434083388344594285427688572716413258383802193115471253121668960497256909712749342580556051109960184062376835786241588268611297148330350844575386768002681576049262064830529685893309769166389330633834994844717762845525485703322624978792544095063453752706167112778438601451001220206345577326770433996107137754732044254042999916765708707191326436943252839459842124620964719380333679435426266777993763464681850306721643034524988971711495470627927126518629167571711693629160492016640585345933864036363324345877453787386326045394673165761924213285436012063156697726786983885194194957086579537233939665392598365830497499547482028425052724153961765733969859140457684770330014169363406431360828401539384201021376538389527056803277340052920595850077984495227647203405350738786951431763433562648697483922297587088192978725341486959060301153768851883411414074897624420980826098486883795345473032356045651824539916720926172444255283637118296558567762028491759061654758437146013524576272436193841423970945043394508927040050636550776320173018420194344380263181828638340639718095445648150002592132893971303930974282793264456106846405117268110242164973328801403785770795124192510335737250613142025354395778614052641886835734616929537163101936582251805456486043902355651047777543056118867220954644117043200279037626844402109667790333763563552791082052914743820659927805087073554613806227807778004860615471344886372212768568746044661773750876604922984317783605912739607833099557220516843166728265303536044643370785573849582882551333831133580832334932883000125608717098834864434129644248194705734602005592220501246765489394914022945802231483060810102388289676591276853319273436285026170118431978599286907170629258305711199672792706431567159866118165115398136241022199412208095247020289522628507099492409146823313696425042263486033338011422768197495591338314858041778789235521103327515978368890566024540392991870606962193216022699665072729559947628409763452766536524550080168108292441669672510428096199674740942811685853000294071268712980988025570680211262000355185746172152733703091606156463055080498414799604421022449656871677809203676387471072755123875676122013644183500891337717382326528859442206681170891827455763320613821843772889731603885425157073805903397470422766309174445542407988892447604673367913723938655817211316623736185566221042323281428979653749997372345427124449139937851595535783437473125118015715155730625363413294394064126319028378765353226678664461289578882376046995435481070181944535344338118994520245583655527289593994410546143295565511342970670909049162873584290489592516110990678384315015979055686996856525501201310376308456652575024358784247467737444102153970940286510574612269627832038863574028925425048640473295701690791776305456882490615370499403413348225906010247998433959838017179584203645006691964207665192916544133524936200000440376949572004977150139567858818365137706889350930671385781948354306817814549085069713531745379533084326444069453688438470360059312146149793261434959188587118185448672235317846197492699831995593701981390959313204917972747895134174365664772573952550426324722744917607244441162443828537118622312908000468362718742992614898598092511686023718679994072768203853637684485289362076577466595357717097976720806821494965678998464206413962133303011249276197878885694491123271973954508141232207462148888676119759175114241812296036719443196686743506179500084924621695049365011354566488356697273115969205530691045227502405254219312232059483104514413318031500748340642721083284417348162334874568490192652113604331276060284982315349876965816108979645214196421642497418184162322126346527149388322194330515730415847638147907018831148562190524552944566723939849576709061726199982380350157052335769738906720443360982297333865172969494123720758132553911935159833224048161203453843581044726476682469062401710335569412581441637588697954704020211558089851568811167971048436692907648221485490857783670066182321500293129731840119062936496389630887203447416229300821830926035018289735482799789243611792778584987751113857992442313294415238530444268598408023512674748308571532359241152850541477102013502879875750978645800699279329229797941481369190190125349175167110382741550439446318585309623083067978727188429605753788634743552221894723335646414012443438690621894133873722880595095171548172460973190215579791087679559096692332083554398894756595573906754106800283577369411730642128566333126333521256871019000419248189776052761999749025629605163035782493418941116038615638402361251646121671905857563265707681901266935251862971827341668553226922663402513828257150425073676727019281303294849941593102851233845880918113326168826748795903790392878755789802537994583019314134951695962060682673630148658965597391864616601258180256888342836603570942606336322460660900306059853763759305970662174530166463933129040278647292279736806479006187388348187046701953844489790647212692021567259224303048158554901346832901901544467805468160117731013824287766192297034066264794565529670781172005864652996212279311647059352135460274058464474634414601531904943990426858168412704772176670309144443542237350314918788400733990720508289333798517042895369104176452550013507481915417527524697410967225435705123040659520694081860070019457631888986935525352235502811615324988943951096508415234209101039300729017225265565282970635217364285131331481928171740522096879440186583730874422331386764829166631076992665499512928114036076562214263585999244983586676424812186866193335084078247821328933041158452321297707683311001320589963765117812954573877285898478436103209824608235125214613713433952221793431187378821022664150219990245126929551417234541040973738874489993174598213771172764192262009230149217268821356600139980192921019632977492534742578933649757262647930279331540617430852169007142629724156642221305302513749772379214375630807501007989342129671791139264404500969351280221926831241216472910645388942851713638883905696695517733914551738988214811270947049736294857947310511911291897482401495309251707873541539151086911106189230537618514470009502365524450471769245963078173315611570175260104048236845017249125400138721880189505305475904286758671962934550217962278706317348630324674391535643778701953084258220616829983905822410349519453235790884905749320719041453953276017254223919257085875761654051040197154482316332764012633228160543706542036666017007192708607593654057465574657638287229929180418583072588204002433692916463723102503498373997446729560158095078416932482527029264069815016480063815425645388390755435199857370204331603286939787094258332414157101720181289670343156064957126615045682026406119411407796445094964839374591118224889593025236682161503594480245167370752740027597541230210729681364069183640407626647489005669822625578814830117967674444192666217575919142182818067039672757864191119888915413010964181416106542077432784842702473981323180916272636890120749500541116968751053881626333223994427825877252994544329632924060410897634699442065882138234895017711987302523980431358497459103695387759028561977749402581529832584923427785532709045165339419886715265618734499569847854269376172261752441013471181632673926860641552019938219292604039779325061414663275593677435785323591479263823421219688167337951143810217745575923158680016154746637510326708553360019845333017376586918967802362348059049701737719797919918460751516025925725113624486421890165944985709146351484080327241276095219272236921618327914877554624385564618580859727736192617089855813071733139185277180671266382516871355665441645745332230822765052816021241290333112244721392849586632470374212530123246532914334664174913656732604364818804410037427184144630763068034990821057090655150407552294949476557925585454831809066491694981269032845867621543615412398867026401783276239538034124969187352961241456927923669229244821102460148815300759294520446157624960876122886124142392745034562080460007047655485259694217086819874672070556607330745602405148223368958110123895246056363453947152594187236639846807458660775454376787032360928630460958303103946409834644869399621685061795178191376532486808242549194957028936924428436476688710181559754878766658734173950964472632207482070920536687931226977660736607989646575310047025631427219416781146477847260404919299419186200244528278016661186817183444869566737861654352179012854801646347710466167487574367163455757603543296535471070604502306991436420004745375532435859202559500482692095356314569089169293653598245311849839350607615220087870429951147004464040796958396091966190787000799250465928663542490841530631237749378395168218789312216790974133907545051749354649348442207398651101762329259534457761472365420257777859512351192945764194252224166660311607004308012020776792628936795510605405127963574297672286246671028860463654888653704431604820412263980539301862520199906657560078113864926732406300323886431280532242533164528938594848764786475593908964834040706044041626461675538281518380792659052984725721031698594441052089524680287826468910222907544623984922299742006253759802644650256776996425787823626905351273247672753806054925691476679719048558807177940717259028169119843793700807384609207228037152392676121278173212370953230033658971679024509152130112258836015885936825347013421907982592296143649180145993720754815530067706000788692403435421613755214807344617139706044409602689650354834174948265513560699991565111317742360064971041118952961625051297289629861167450458215918845750898680410656500927013320181516430858671262052863504624615037403875597910041883433669604049042821909220443106771296112206917222583782025202853566318795599561648183618523768391740271639019852071766528281017936972210697103577346280119199897810998280000432657153904722985869367261871962245493033958968431500695232292511141273703152217624562560075249392473907576949006373068563834851376335152751183965069445885045844027161769875656211940775712944960141397500881576548378115781009518977424066945257298434852837309802382251182891309954457554826277441033066838949926925888931073975745805546108423994455283520645524020540951841378373754157077323651892583818480072886997016558657377434565142550616059703475793550573543084950250619772466718612431691508779741391167562460101743104807969066251802834333816919288703066472184632303175111578439089211657363720837966141733195326117753953374539358612199597393005047304352726354848988672353071866931004405476177338881869869472170545759620193010905569454230929506998952734640036460438435867466384346843540407820170150891557075517987678103764189172571254346806806977763820991653006441444713351205932046361945534507859284987151901218859949629810641896547968725213238357225763609707434679333487543140943962795781225881208914350051155317694214703893620698705339805307417849841899137882635238304267424996423105098822331003118757143483544123025273138853786123433831815270997414178135011968295998491648917145693262840753384155659040514981347049452271851011604331707162881483988752082639564275735777576358551283544382351794188860525273331992416690390354177620926796274454251015552960445873606306860868232587306605859250371546079911413722541646437642670897597919028297029821084756138088409888717311191224256675133682814440247683649326447391905071635412233952104984104631486839067317752248252725852619468780106859621612412061179413871891258965864082484953509984647793241436062030045279880240812075175251371018167868288473242338975273657516169772898456935458334007965773390101687659659885132063964492896771610479623680868865765146431938212847769646093632168985093219608249470928957175693784370924723367764892937150975637536485687830248621833663834646498399752022247430383702928509580710753369396802016546727585415655797487686749159044600866334433366498024124554339642215001690587938473397417032063627519126317837184368201919583476105351183442656676509722965152647314760655133295145431671126332813921583701055320143145644001162083472002642814041633424239179772289413461789807422223321207858675966022473414309764383247732220003461302527995571605799201649057734831110945173026894938758214367928684072171265182325761480792769236073083815265603255108734113740223741843737888151276886023092465233182652472748555479167588430728806880338310395333378859807084721350261311790378678270715888954133531906206099023585222491913305791485488129499210411211847916355982445814693901426978644565087238514770890316534448877795690885935161465822337087708794526720456277595068464381222750685917752028717854740912745130135862064578394837263507816750029013935292448723872967797061538286500348924131933101146799786205049726642845540499512260559227680449598709458768310458121424563574140833024832603701651734997285785414247582060226371347029477034813814002068605227609255976671936990541936704014826599084516329405117006775584250455843557879869122748114306665388516645243771741607809261766996481323370661625496168190161328115627761113665499246301151236745245110809029149871477671571907893654239261384886104976285624003113187091090272343599552142775513411525420675932354804370869336306444430635535920875337386957977635752632234276419897097212713026818587370001092293278239624774515025421870244502571602957175239561573131546280537101706344311303054006246556253348339449318367733409064472752858617896345467154067005771141010697180242409625284303801292297762489980413585317976951180207127931571297056699546997498569403332798206734905085168566752353829136265919260259223745581239469321952508875448883117342722244700668756200482953428780371296915186761281481517520485846830554739814829108237170930895017240311180727809837552939539745932161501203743426548622020400064616601150294885086633520883878860290175357071985114094771776210506870087454075587445603438355977530974403811509329573835556534897068964342007898590083971607711542316512395689686037037448194046488191798269795866755009507687768698610920267149115026457992378044466104201523613860304699711905880448381262453334898921585359961244135968437462641252464750581407465061378270423895908096097065519179892953973420199659580598604123754490784828748460796753922338770817296453159453496515398728352584036076455061452350356695235894847893096432641722299456150551143461464207347901462041760548182787342546123137026018529568239570933863440352926969543030579289537519186576287804592941343012143269430294407496090640496902622859422776059456033361428296834460316504391576437798543876360381229141939325049197034399371008220017013665033480702729067873526765827590148581362343737490652958162336169762709829662442597231765588576333584953611551781042018999663110534952460491900669351097989090565002770271714549779167083775092650264083909155288579336606308453902068138682701420474744380503320851874356715114957002528892332950292708700775825648077473903139809363497069842097509027849433044241679988900811910734128215117980276326036576893544184058996103060221787355740622602396573063684227382339488145676925327360743670144211662245577851302955218009834319867879482977585378497951835987020383270090316642164710094581196209113584117645327557439942341163495289210489494131031227569049574382668888092737477990666556153017142431246877989023230533567051911082616346663309873210822613989148895477962281131757811125230205193694852378573350670700203169708622982679760177108507844298731525449104489120847082817674224089483205964436376682649216029082233207205482476614486325699931972991755592757582805420646914126652841232660256256772029813250258442578475169087283558793269061918948756758495606903585987670834955541940078001289023615598995013561454769325186846868663810770932362494894949276708683067096253948579095274840752087755597065344671201511742783759968233530975983262150183578782601821988968664636230925954339399925869345887595959175491145682068821864342132434072100198065358367520245415581241050522395743979309197322206757748094326489238795373298227069723757598951706433915474317290487648063733126460865188005090233918666622016067915276088099783314506510842828059819785084417694291094472720747608955965331911066397603727345140883816157467749589107190363654313938353365108728327680517838494281192973517380913598155503368593296001008852374727871409052606097989052345818048424200239217023756370199844408726630802362243756277598590389560904470914840502360198871264058690450975541416863140325791987053707326437051784121206687665085972758146644206318783903159805765253631687090157322446146708759812757828237649557137411706589518792243798211470899064610976166574994392482589291409303578909102866277457836787847140906333054698779406149451071116139389040454071686433936874982217561150788861909711427751122886913003711527857590096865283210345753531903205997672331180706324666685916114512630870739302042432273450899999737270066459459789770450527068507059264104243110778663706448068827137394629611987325436716295073799831833173035774094803886476613430131888838983729184623999418661481371546323624823138057051824973182019005391189214457364467993408591700398383867823296487007723744155060709636404445265167757410599979256286852739574855646565207006283554443771485963288639934622730172960740344541071008346262195611483116890919185698892125240162372597436658456025383118161951544702037498112738543361844897160677233517722200230066655259283638988883487502211758073513802851412136774459745860957107305054002236015289162911370305232773299375514497366920264067570525687532303953999866106892624325346447586916903690278142356027633122465030234599213420200120093205811464763710288311634415514481014611342908170687330166000701076819317348317651391967010089946502320487979054241240993732036997138467155439353661868021483606523260607384800560176434563791504318536574847520357648835807287547004320377171210715625491131166634263041908903378786545118847110317964310253831481956972601301718308681202836613203302538234941347431705483244125032103260711663662490675544149133698753732627638864472804900589290091968934781895651033169573731498248991714755854851678237067695967897510085173594000571932493056093241609766455358153779983183284429100255391571899458732432402612323524371297942651654153592722902771283615904568420754886879544115075445623535043510426082750726116645064777852049305740913671720109607110518480494528775878948743596696681044082227770552780023733657772833063769646757523536503819354905369572693913561427770516334843286233286579524369013139524963624674448602606491195000830728684641728420928820853420379567101569738486599114000752527970045280249407398307330600622375366802326963558127454902164398614515214402344724861804318052844398087263957639102076431012078669442252413402194773178949901633788791626242679433695711404522132930981694984738015428222965305369441291410919822751952823935984971570136881066343095986105146018185935669686384096315321847710729184293344015419017464949920411941124901513735282658932970457881598194231523312530556820569795382175856438008515111818077294143716939725344768995948122709985577181955832743836496868075424860931820344802569533649960189659604516402661782070703640159539195614020040657834225091829407337312032990201082884978950640580339956070584297846434854894273674155917971581779087350638113890440733059917904746979671369409588893789566346651665196458183007769089453197566477917694518777159014252041474802118678061815261021280165830149459344648676244410163667235431434882024178056509249782624036710190142022302268293668396686010387081727502085048358732806338979185185809859784415051599068826539055164658053446993595587652210587862578434694516311149738293203371737515382630616416992917360386420747846454440677427053405146898510577260436366973589320959437704105002007443026389132448843536860263604712284117211132045056769307802468823643882503332343195814874000849197526301353389727923960023149544898987903280301628706942718135658880463835757875207777146606859999556830452076432465698575808057801659687331512477983573003211869230993207128092455584255628419358602194978708988302972115938751527844017812425133752017911349862926223058631610446738442762256189631482956531403047779123260132778579093939068763445224839210185116044633238890967300718551579825217729972684978874686880650035246931088303562403390129555467700171731754652309193631990832898637234000781459411111863192379323117831768786696952401519964799347660712018161980369673794196772262086259526324126190004440245260468589741524535727215475657416571998405386202287034031247611082268396993473542790222731727300966415177505721253803954339361895334230823746559154892336950075995000870804987857576479917500882287980619327658110482882115189032112308246015739600747132720575451807581247054688198416398616359916142097593554923839635697854218237700899050288254741792432241778188948348517825875692770584971373643040185142427755257237001658715881075532316190801890557569411881357454111271234403987394621614773531612104843240659362430435528832285953716402810308256028664998216764399821627625316174260210135662656599403828336108688572697484356630006541751973684434117296270689838323126956896210977384423504056344982483632823905477770457560107096446197579908039914585818487504359065526748511360792127986642067316802991795425124986263222891538879386291085829983680251597597704718423293320823261587210189419066960022584755923100472459902366683943282492324890983138431076244290450802367506335587838365708606602127923448443468034734325710379227932514479873180899880213788054607708679713072075073007279425315965620802809990367562265786404093631044494989696855666793105645871171639790462678105491075060069917280962958697878243748756852564001999315285655458588081998548633558111073424451748009873087042471396380011463114091925941297554555660607899261349576454232975776398915511877789644018183153340997561734529322433517794294464815975281015093298255273668323690496251115205413726038374499651941918605462197589634571788054363108319057436507604193314255408335318041151009644188578051555653057546277107198724605958898315720166960069711152282999339013710360274842513014136485712899999012750859030016354008376086618983902319766728215155834552292018771922828724172732165749733219249459426824235263974991050996667570107405571228140183398333236885762771918054750176803975176929311283272383166190094592137138207392544288616740514281033557740495849167335548847969076203331864814430713546277879973304822541105077534483263358963444833976365166161839362239523555166936329995888451052053454910393423210309846008952677870594911730616318940076186992249795231975844938660915656120641870782177615222892397151469598886761041997707192053226419367428927695101529302312516069227300450133597243271573827467400666893877800044312678551343748911187750613256681637106114727510400727550531814095208085834474753812667376762791708846415650819276166256033622359172517057488445484757000269960148336836524059848641665878764793474207296050851878200764934559650889488824077799956296070865899982220405804461019093056846192676505577496676325149791771580439078061047362518821965240194873150115323331521472534934904221410147167102894653557430424446177518075422782631030028600938315833092522535847711378769300804482123672149152796458757143759410306596940894528525792630555255864337196573417020270988587978709356957454273741483732517955030110799054507954042550321185979335185735756505248148387739773202540933403231159135303674674256947549097967233689251208678566050452172854570518257500085063245120194057813091355026948022528944090250969296840809786263604168508823902002141683120014288097339602137582343907171440962722122079744970046048059829168483601652949063282273404610429073659334065718739581184365181664382054359513760491967133345809979581638868394945890953221395785490707263402573426818382820765349974556543339353376358925664054082326858029651078105139307563732069282795439173706923955226455784491548061054017161804061890780775847332996591551716856436294177335339798667743596756317496147307853805934690216280035230080567033594952676459555296195831226271582757340903862718556795258616482306789996450578001992230375229411242187362376366762078534415163490994216187384253337175186028275344026553053064127174472542646522467896881129500194119355455521780849890452588176202008640668061958801591710590292102150100104043470605066912048292215656327780377144919318253094685805622778056861888675149010245793642949269616814476771179967054516354891385675217676248628619667915119371276813019945405050797024295592333933872141792913699886931488138055682644506026963258843674039467420401852125610197275539549034950133172847115144292433843269308791366458100811845151537488611985000320424551364335836389749169779641524214485472672571240247449737094545527794025187745184613582999274284641220622616742213294234741546015584933242231487928971132462985956920848747216323396968908523444698879904666277432945898169696768720331127510182904930013363184485536585028373540954090556068485763878427281561029511832849839384010440647851536552650155992695339585434655340899924765948440427193826203007315188299727975339086965458265798382214264673275721026496971345689502531107624434757052122477174035334045586816112019445494103066563558303285428886004121255894160392927998647461871880138242779391944817544201756955739179657845119617056541727648029834251485195090268557282070401704361153852496344294749360154990192142132748411457491166841370707567754011222275972087073473131667604712183032956811511015539928326021043969190434716312730443621610754494919237125454819734751623869910807650939891102039496610673392820118521398630017116536583843123898308478056199529354870585217382526080569396189952477381462985782631691693859916712698523388811007910743081243639086032965510120582255975709005403441252506750842179100260789983506084134868057723769295401815263544272806656634587280705056960024943466333084024651609286237763212446746106927443540596938075155210645526558663634227114803493539444827036448844849258428202334655904330088295000996152325443192598959056785304870879477085164053907380078671746912868972461703585036724345851047831758950747143722261191627977773578162659417228653967832205658329794629598358242032172880463257109203307529718290039954849420410945208277931156542507047419661056118583528581684495639422600551397612658795736286281534002096762335194677103534329091944660710871041275325452402861126411614760138503975062960808204092667980377026935660774270856797315375783801007845598591971356014724337302924677472499748791006198109504885159959637426125115824902779030532058514503339480122776472323956648919113000435859523274859770676626123482241027423790862523761724066938674122343853352255534556160161592881171864959768180327579835454597070680973801923586895601445178091786664151189069281085708016497444975555382210325722353515636320061011281446624182737566645167385160407552373604699796769808843252014859792471581176535884687337222850501929373975287182722108154025300666487926400987163565064455275858527729735899123155007346892429969982549022993165218284083813261668665925355872030213509786752521827385988534840439898766575283900126498781995977263464401238612695958171307912740821084761289824135501909100181916242191664441522165430634794413995993948338304600502664302240954760356913355046879472085560441066777196868080919144162269729584087132025075737829560290307622497141664716525743377385592621347079529260025302891677434608927377866993640931552084821516753827692292379491996854696095622862170024948676797049981941765509963796545365168918351704296332671104286922534969522768325728509898485537166002348446798050944439302650545585746378802796300557034682906632170213250459511814134481911731117290264069285590789725298925236995608434268272693692223456657038497204180321109610732153171875689448937051552271555559323153819317881244547484497870720300707975144082206225599334771916104662994248724820877294660005951640436601479654935628528683731039470471798913659719933351055436210113561048399799495996426422591578663113252971537843572295828391195361289028431960251237380664843420696204845728960453152834336924822577704976579471852901175336732025060276741901294551247735568335135591080481426268573256041654468050499821725396550048042589609678923280346972680390673904916324177919015512131034501239558878606416613657345104387697119323526871100082631496171782461885414722305690026216181457999714538326034188505343231849772041088466867155855754177040667694827317403858600973628922747829191515514797399137050305837682588803064722654979091505013692503220705799491767663100060917320492190747485707593720861992021398571674199052482473773469484016875733955886569273816952382640224363968119289711921446859103548475757690468516111956866191342388536534223652364499594463075570962314282422360229130880112321390579188245052963411407719923577320343422546798636963261921173752049154052033767125008289729327262390519410240452436081921182098144945886180161518252136809913219740349646632429291366826746751342863416075229228845155045553748940581982619567194329419661267222237958968192749275416292013629282543851186205829507215345411759472001107636733843075416603915274923771542144316996568867613570516121171711125857965877670555845559496622446709367743282931872935626883519964613013013386896860350937956660145062969693828709303504620721598483860163268281604474654363450504049941289571759792529029294896635132532092995400160976979890775791318752368692291023103060926613101290222292557698632925327011000393583660261948008248931761452298915888689661024884919523481081687241009408014008973877767740316678927483564566536955418508238512646005598746585168518886896094233790572121865091896260850298293799332436290852298820292768204742776762971234843120194008406374840049974402744018673663526302143411619365520701056073010768390079560571483928380300875643766049646486076807650690656662433187090028059513340721900197702282797746416354926617161506059458041481579552664169005055104763053792075198280930116276049112762621965157715243883881929407536120005444248217629719154362463589451296146768008428471910594839776931685873771900888270252109912079825915687068757910727734095322564321962693768918762017676103937314838479881380973384760028931983419674312929737343782291996214249288835421504542214154362035116975672833478745634516065297201314284538974506733848835399900360001356346082854019065678680806786489519370572558610982342876474823242906810206349788323829973221209421964581879919512518777603639315123130741688102998734363877940565661470228452795030140572902519449175183171724647985928091377175593267002192938305901109132069161262574260149796958999942006681428585855621530418004725117247346964917550975800678961593566730961942955718158474125004929099962596069793418429477985592252499858552639034308731218116518803169431301501341423826938729477162372578358634746705104062969335779787875731341796596787419553604585526274327711728509562161973557142521219239447533729474596594205963968537664104977729771867255099088015052624057090084089497260373503856595461152582502922775662173667011735166784627179467976614463278600200009672547664745090892370404434885905380729516618148915116905756176797089137569166913285009883387088977149165002804043572530439791231001237527504031143461436303634317467292669305039935526335301775267365666973341618418499846813858377913149645310822779357697563380425055365277730236459883266039463630759006285925898639380756839993471916206328013409670336233740878111920998097098248720010112779684387448740894087379494282818817856820954566542882838019097682886250250012613152321325441245190620615245442664649932975113421305594300339236747888127792788270460571448401825495676139501150269762033660602608748039245259286342739731561230239438938845017521683490461545256610070122356821649890844569467484219473026648449372597747581433990292421492350595898789049122131603666443902325031022784186204080189436923764869615016267617651114195326054507261344150622359989492930852306630198708013939138367467919159063635780305957082619187415504968881376168618545841515369740546207810215641534089083920430909514867242355281428670954779154423940896957139798143134022609582271778764070780780855070733197713350889191477444505360568749195703839767217464911633847650057083461245379355138620144197742401161237933413292582890978829667529703783889628299792825738695703163674591417923253239486346160402866169760361273595550358445365604115593907343218567107593922617826061814029740701575783565936917285092943104446213531243104869937142846518091291583632555969231640981178755279683196603116304789508040230479941476798913949882203125510307534548765404090761209879125230867030466362616675915626017325911413128622750827972931225828827896641191701777598258737499637450986844728376861758317864430041859926931194108221874736898184709287125844439967135136551563562862640707576692814525035914579527334638722118602178179492850848892086223133862622102219965165018698627892773331324645598064255782070215720985033026843574439534530721298134040621510845997337178323996180031627198050119184773063063432411729285382567666553797029812092465643959794779642219597873156763205029014814863645578635918545015651382053890073768820863783588064054564952158869828551783156917760263776658239630470938718432509157472093994427204191760628767664393864448858239436283726023705351854861456611143153189717259296863565728051702108997661723692242591317987335877015830275049166730600185656287405935043555711263434627640604918166895322930950361973233550746877733079147125901909604492442315500263727975386123018392260020559883223012214023269327633064114626336426388740633967732167750444635995017132445955939467423894188934911668200186250195058917983681877705732809189853595637604929323099996650622768250278747918479943937189221116446332695650960670364233395142407831989804901328661837362809309631900598207908005138936333543653055350373466229569431484828355528638919209629836422869931254782384729435923217853113005397688956209212491032694584216346669421077974913356095596776130815629598985327361292325987066471272947721481221764239524186022046733127027493927696620878333561333417299238829264790688251894204048219959721349053536616174362215087772928506589121314919083842872649952567679418766505220999643732135390061434208521822667941144306428615743386638557603220889438168607353291748393322937631584231150859717189080807589932425589424491492669247274711539585998732926568251884841161513093395286269956069491903482443415650680735954680840484926140842058526016819046943164983415001156944536544875830930781726307732969934752913299289713008430434173116157389098220071634589735622009524154496258740084423665120585286472067929800879191273571926069027221013850693782714876965495392706942173258353495738553287918659922320634511638128562686265057913622325886622133824853751709548411641410560950085649326216652086796324280628440856350563908922990766805015657712788041094623927235521675733521559977860900622271185785968900168106229982609303358298349272674137288370395128240793978396600313361027816951205594596375024232387124134010943194994529854418755790952599989628393093641603762783776159775417902708920114995815136568105290233003795372549632281953163692632919255268376212365585858960244794730314047501246080312028643633558029429729653594957545281381233070177178397347154915313161426051183917525262353392546882970563921358524198479825856451848626922901478008168343914810369655286244979189322934382906255565157760680017226528086943487389228517773508371938694094710178175547322309954996217872834799218392363362210010941132987766172185324356123349137356877318371317836622235983198964911174410751644842973558089160283633818998444604622649903992227299873826380679388077083712035170091883470636209199780698689922068854514313845020587337645260045537407333480399016595501735646373195030311921785199823749514657090753731720090251181739031447807120185572496921346042277207312729710665422869103968752664035230341866700437708910314981850411445707829044079932391736728730569179546915198539414355419907541833609800997027554000767994050282537015801647915288412331088644002601556442342054148297091352948762026203319049741759510275772890017879989544097250662812993724507414843821333757666411707874785529551714744560830120239465382896836465967831702777205173582033116871614541964918259914316318480305327952783794801930294024431428806718155056414677313250720494266356392580798821964851912163987783663004614850222897276487581437480392559486522836264248375980273325662901649104871778931718276981022957231662204014813977337712119962057000183578181049276441492533556928116222578273219324959326961378592381932517272398267314888659169216553646722484035558753594048968023404318543613392474916473748242544899902397867013920151383531266890772279048091889654114411309690113675036665424481141460539233891676128520256012338965393317710135378909245999417075971540511434332833790929451438036659421058834704787331486014621540304075931266303980458533362463472822266498509184075016568437273324595893185220976695480395987573157630549350736703955005254957056887682670134200960462903156436029234083995057206921825199248606048092983437724707474173693803143126582488699804692354533502640503868274763454429708088227105509938855232187657733247678662294124088397183354929524726061596090891299539938528973875908515023797629535245466477171181015966975316792788107118615484892136620518198307185020123406758473309019175684685445043119841153809065544343119831768721343849073397936965880121779471756537131270995626597354619133026558146444065008917296629622049962326011134436310912284574660343980405881540038312490678707302675758275193707721652156362685351107882334008549075491302081506265148552499080097965507756067310541770923580631176306781057248729994492244726230702623025100309400033716320994333071000597537610078234169861391030118587021844527906877714403697248366138223971232113767261241106526480934419722524204478912324968881788997311038467248615023898031249643046682922204837282476526337436466851327352076924400296224599144910796214341766496926833408283003018344179653717705419719560094819156841073572534111468475253676391810199969586113850547133052176587037911950180804254607450674221693079263769790782491352537245883529478692890172641673986041383226428294631859344673850167474633814775393140877802437942839334528953453224604021437094242524674951906976885510768288806507103459365481772177164256130442739862956915359478121349267254334159697262458289185387846718648917997542853253355549357674521469599638074587578368705794589033550028687326469931806366288565922552493636084518773692550494115178059988102978543715682499337264114610123521833179734869798381057032684582107670512105685591716120991185408855695647528689767517856995131686676026890392346810134746725256691438859883508256529802312983980614831927696946608318375800821829045358920423178568835104305565673712734376781633974184981875346863424578282002274611165431385314410987817441779867246793303874775154781749314579655064976510309037799834685116346063730610932645127232935031528241868214585961251439335810297995537411230245797692039745931144861453952975828507985999538245643546362705678639439974487254229707173611979932321702784937954676473259732279289512092559000344677572388308206569971068372666009052269551952121762994336768483325799994326430654322915552909781683703326670613697575146079388711129874400911656137220608929334724483845054869743962161909065957535328216691951703933004274478929013952027167849802437846136718774816219589885356906100935029162627311545399324853930813931499922105209956907272569710138804638029317250760050777984481699719284032269171514842314142694917174090605029390690370469544195700935378517298890302483197769847987546550527295455930757159718833039567382638963653386533736644120928929641682015836329730718275818612706215753011931571105101433829836112365710432211533446348363095994224993606215593294769863829957466064726042054498644999123547324155849675579176577228813120854307721217140430316711774799964591523431653529332548066983169418082106549130573948253722015044165452624209168018567203427693559012023976655445941091772478571147794578242837719538143843859164039885878858731443615965789270158396485835175062925590301383783618826204603138474903211911534160816896651427045605058221613049568963325781232229958257450316431180796701207528042021269748890323749738577522180868510157365273261388225624413491983145079060483046068562419092572978701877775951771264045883227531944359411064938820116480651223207265427655403417534928447295564326466307620326330721604879974946153838380551214676507010907685564814779418651259865708090764310691074867426886819519471431872894464958216526148209779117150916640817284829678254202084694492031016472246508234162236088084682558267175806156845726735031498954724788383187780145113941958613290630547613720131791662240056019194538402426386255639462914191783581800368275886516423804386977205709221196684296474976815503028106255883613087453051299675196923613395688685813761016815464780851575034796034837355264549074279225938043368206659701868434669786876759722475566093317187621073537309230741807184522450704120748473383988160500921247747927583840322039651939932114015819007511549165195555294904883753778466651181671250422953789741747472147923270755262000896950566213669697499276923849127172495511547132251646315862291419425320872817511820804028632731273354823622638415911981354256184608235864802726539682376590699299230501453117367772893851654751817406417822315600233779585685017212508068397036459688128315304848318507644545221597702249873304793323284671971797808504243123305857936062691363592940088665243858881962234540129025192881940610940761109485235993960548943577220700012289317484555350122104775268681774630048710646564452059284240703709436145389066121144861921712083076618718488243156739640889027075543580501358175807171911368368691835022384005278565756591364242539569602138405345289274580142350292594530020225677121389762581609541118612604620785284134564793800510625401127231221146922171826361505940624005826739887373606910399079242604618498921816218068608412123283425967914503384944320115448676166150236414209765683614027947202476142818201021434103442692834980980017672352201957987356106893894902278541366131568865530973724287252817259295237941167717106700614175687776940187976779854347939090197155814784856946892166412683515566893739845767084366596303285275177692871300176011767549906988859818767754181558852328116846457023149802267579503410981280679328034247707708524291057795567689682485311072670708197297611832172667155729617530021956118185111777829632983587584958799712607966864102937907207527770096160971288587114486002490394441557214733767609576252582584138027893204360893706684748704589546306324991108069763788390340424929076507860721766002123808128555035842648702304817842190728927132151121441813583262908636856464181472839987034684044214842583947940129337905066565426078191364235495825877065227835196845537408474181598284027797464910657172736028235922926730332437280717286247445666294776586856762153751443494647601036992146931587064226125597494001024142603602339152042608744490399317935600242438994551005750745290175630396550442016752598746036929632869356199728042436734209023957847569209587768147440843516763674855887570399696361004736939566647236449296973087611704856005792067727403823997566403986941935015450297798024138692581842361012643414619010310482550609494562744443005439348977264211895395434635550543003163931636625730150881304804647926231688228281126962704044447231435942732058304136202552816456787264513336322606768990155658711376991673126209731128600462079528082406162398546375864542090920448195611586975372806115804358294718016325061310020079439427504379850489094719274239697543128723282845592931816631523369388530055952837320674461219821543030529284795671026552580808371837054518656524104580655190904981478040301515035963729381405892914401053987376125532296994435418133517454476527371550762415450664649192956056084355211176232079364675190516748977861544790725396444827375147508331271733375901810878879740485657655417284505302468987966631845778049178081664079191584229577289737556895908096410353243706091450118118389309885486362431218487531698965266292256799899567586523161341036723487997463746117520641589900114582194104426854078594422110717196201070621292532712150308535020293657062996107960291331376021566525242917843839561198141369793002057863689142919565283300477197913978957009924095935030885984144056641748098560712647677466490641427749070312320313665503894076363557543330438152756997143923986901493331190403610086263929742210097427223180397750889667830597226479816584031319526790677727735568964066261437823948740172030132062261994215763302935060512862504425070034068807157527955350906306752006504873243894725639291518361758065118514335634128576969483527952646305607676871899130528412707577532144684503858818092099462652685438491395017787411478672299019256358218779512677769011071178358590144553666741507519613468974957550091521291129255632485644134469044010831726007939634641316142684552014491906875109581046310242436962934644808115354299198043104940808659947677071377064184787116829405317311125750420597622988461881799053076721338643047031297686763576311701438260802207952078504159961179307517683932451671655506973813504641842912103895042472951285866705553159811371877312259652228277706214200442557115094827479003996560065995427663957013093408812193994843574925062217779336798697469500111658055067831877751798307682096189933958259926977314538048413467663065404600233115052097967936228347641678658998955103915580737945860819984587660645285611969757596399566780314849483329806675371978870554850136568511129525188587011371841119426460493868301294854479006917231034377069681750744866318614608463454951363555359837624284684098884965418776234529332083311668509678367727219615077348888783202440615282366202021688251567496971172779306313670984538401386126771835368911640065754688322822197318192655327464400172568723019318060192281817301159255395499918567569641122994532385514771953463391385816288844042463958284519237940230853494395067409039899213379769129501952200904569918163769297804317135662187586895355090085247788878276890582930432549097967555560408713266160363558954584282164969878943701232062093045914351906939818670451395826564049725555073339349975273856821808920704756379445164802857252533015194311590157048437406515185946862641950604505207531782128506468334965724384403722841122527312792274397967913532928582972484821274446588377192260161513975098316215028468052815806396228670925866585260515848193769033428463627846150956913428080146566135188939434843940210987045031684840834924383317054890235644613063693293185948729697900116930467005902906487894925502291664601158835167275027535375083631890380301920070219292117932266410444996520289146408396155070189729228919619011034135419682231445651796641760386039790495218272863827658726879172263183959635557258320027422898514149231223309629427160052078554486723757457609449231790475063750005118469139423353560835243165917287965850270404908524805612202259313591351933351959634664383072741573481143911766098715734794035282981828535457227036153895233346630740648726086013283541849110277286189024035387787226184926101889572825493915994691514734523615317192694004422334450172260461895016385369544818203520002243353404459000923067502469154766556947005236340889518556359186957361718686551385467696150858078815446003612836478514407191113543069776608021028579054682818834958670991250744995151407703362812749015985839728080451400973862112423851165880368524985228475061100983740274492426596950858729268927728700652047416153174817326664180241165301426140169300112423357271904486980572734249789261067736597065666822699782263943391611881395321212389348549015942922501345273239687699967035629113762124950068264702136703471070395299323068665980056163268936310344618402868636140285214879547730789958353113813045306294797172228258327308029915889864464469648894571646984542764749180280310950258103014526993796528143474046798989944478062571943667740456509200310897954565803504300377344381871926763218817582088111241565085051274183841413643183552195472363272334782278817290519280663885183578996729946732918922265100191915627173043686199587951418989280333239540040860015608644594340485087303802854684861612013268599302815895885125239509660416421645940929788049315058036799242893105311492243570917716981395476484289922085978140515593319393294940656608307436626844073720119006864628166008935999771956703278116587548984121948261809242890353460938517602067945771756485400369036234433225738622220602698612744477996563834527795852121834814555483213982611759915997823733177632247837499211855928923102848631193801847734145364868141971274476523173356335452911800498277031845100635583914394669943826608403741318114757116272997728643659636375875328521796656837154038410090350011824044968825079034041676181954684806650936200820548451411621560796080982784853887198979230676144435628447994524177917722360585163658741709601719187293971816511441240586791308582502469090626371247456973828205891435768377355177621911144937882439079235529423740910923448333461975005957342445223601363508995876906966825806009267106239573332909076988855436871635594049282682383578614081936953450185268794883834561058807073815312907535354973435549275482301351301278607252660393143424137235149363259679080427409507560423269367427176960299729295216750220926796529542663297706164688396418507454739881859953491012040673291174972624059170076067603649247859820486403550204159121115706453325053305251245659705543242191808364778054938505249573793413849537355411207795001505926316374928428378495093768895291580523490921473962375595082486199547163142417096233856638344416595477078352150644075762161865763283026586841760596701604545607766114809835535025301823594159151563930811736425247526487613250952602659759052579665107199439250736869121594063743124550776015665300687275611824791791940691397231966230448495391541837822026683448623835554339347543987108943219276541632751525997328118683713184380392413392408613448056405742493909023124825565631154321424719737244809327377224600006809424438890520010841045965653503561908345379279253533024319763128212698699177357361123252291920552686824109803944359692639256961112041485849257096450574164179955305579475899635490018932204663142328842757948772953071585796486102700432053214600619671123205842461293712117957565990780556078625855506737436888860361361294313614900030317550967110391747811380041960717896533169938396136370090050933294237540583356445999364692180193931556487482363118435342399447061288310983395532719515753128243179476993061369721092985008989827453956609616202276864828757806982733169404346145474817509601541245715956061283445450948921174784066656781962539055756049444099573939195081947004510217882193223951653341184157855376776982855132358375109928453416540778195022289376957154039454854847363519077823984337864949795987137932673794691381914258458343087204884385387302791796955776302457559983554385930741257196124494878898517701476843171472060865355259285559058953014712134942044385561386213883155857381889500269232605817648624894881936435319805914775739972101374420911270915262051169630906992439159041560746039318642807934777440703725982855689202835144832634444879932159148540978115797406314189645984886976120248149355044826965291001109316836291588283157734896820801938516239428678260079825681934416711410499116803329234252737831174428369112347645428613106776223468124997069154975506917240913406755502946186689453571986271535767147684505701341235203504144984873283111352747149352845483943500798569870185708924209527087040823658132852744433682786664949438257132629065735795611013195018732213969903201531335790313208290754576478230629134658410365593528528578180944335637389435375953575765497606198937288708648028157020739755320799571644165420619044438782491125245161714276607711560541376381072419167264708130498732197367160213730355593451184274289678143259096319236273893464789777860592797984733752032095161822961156895086480680949345832080250922579335382903847097988518136740081336564383952393516807672144930485414381955725629628500268807322588667886965578466087448778111208592215687377343100589095957350271365426472715685786190498920633595529354477659365655061320744340761132106388965751573409555956841769093944027423320096904712681529801854178349513361683204155432400358007500519716817175755120727016039516628838196727142978238714871870463278847640529360503474614448855651594014896774068364878299310893448607048954843353387688244324645379877821788636825599185691103622009777884614206835506674727677158697642287018837547895469858173989472644078049328019009462322009402537945774336377475178152933317597573247845424005153455811923868139276019736113639528469381912817951726402513627035466566461589593774870695504929085234169568797173814592557625707597448052520546686412880130002275884552051113821705344269025488640830372774983696569139341139460246866842803990626776335419802640323002197264619076640361234985536391348313540814377229985675695533991043327096631008322913140647200012338761071640575558597585058106770339744763388655777490015848710044605667839018531449326834049021247387884778880872842381319340253357792458812207642046149458936462311084001479267615164302675248033821967977572344051311938685954611169327743774955913314164943045914312363476774303822036829807756963128437045972969809346444631494621568572028910145952974714791659326169305357815019573270358171346185115801811040065804758409831478600034748138008002193682197278403471449661647967682780057619551579220791700422530686316279238955271827757669338087271908814159232868554704039828844004959476502113880142178319727241179877080235475614561810115060971107577502709044509507394802612605778786652799646923335074551086979400869951746990264874923578910466868298487355694956149603177717858480112100943286015515213595974155555899466143045588576752659163969427488876252323987998855591367992944060028729422674626436506853273329144775866967722562774557628854874580836349077865916124992553842172248699965014933534676301766565122023839739891067988926253521080914530850035336394863523784406146941613892589294017150075982668591399583637319807782844991160135972137272347053057282016696829600344701587765072540634371961968457324039420896867942485563502580285906492063109081903062770002312678747338492844830276298584693667120252631563557116909304757852496722321470768497191288048809073830464075367188490541806449710467897902602332305962726837573318695775046261001913134494569173446587217877485175089083130619982612233964508976522365151620495536325896588945320975411068476661976067504876086079923248549373007789694491709152266397662073961624829758428333614509855708725571092228187231973222410641659054474390258290736272880777665326627329966140518990459718992707132884427908974769472199738639316295035618961867712279906166162539115796096915022102852698728847439983939887902250839731277501022463921510645845781546264414661749350177927008678685741930658376103398482591044413281776294059877159828935756361790345466072021009606985172032985086106926541933877403909011602932486951920905782417835909545497481126707472635263836762253319411335397894565533913068881673702030053625127596926742981282538155151519720690830413134934188667694873622517235902585677659442428569123285254717926810160694747121012780335067019926327323214517442327020491999541675624034520153729812376141401522190832869169951733051509266843927773843256078081294143247459313765465861867973126980755455690409313107273662248200024201036477639656453234325380066842807619157287357124724821284952395929483624591880813110595390562179470272996402151078983026731058530659134218845105665884316916001855525577036373758303042212828923299432360875616455268682999016812162416840840990751166871272322514433291855720456111240836340957470451243576229673147128969428544756161515255225990115233704261174935533275267384626659219991619688350149865961595515414611434645120707154099126486758303699629121055079237454435139281448721417371379279408343943116998656208433476170713462444682224568993393943935317529848348025682865553418965486657653246594002422061050518718259391642246246828487984790929440164269278219890022288388427596388252937164856367499292716867512460127176819677540677961704142166762328359486713656779696382057141871076299012694197758403882346351340843995477832494827348184107336777097206975829671797376507315783617753104684249780147846693546663098725643471827166950724789020579164393907822195625911590960854244126826667375116078507897519226954695565427001940771207174513147346227913289199939370726397593007257238234821626565178002199053801219292277943219341578534552873122330791225089920815477465259607966118293645126896845962878166647160177326687200598858454789981399702560491436915819802980982297780189534958210881977309343740537828788375506450556426343490151369893523775484455594758428219733321678835731567428591228327462039583355112784349964419711954069592024197794985591253327980068204347181163134407921912309872726176689446870765633950737329180290519590123960554403071141968628297257096701926425130820791701409950899912154183209495541225118357063796320532100419408594042061847357729929255132095351709353904262486835756901275435856425581386307482673679092526642503923741798104718473217129354900275281408737259318072685443333287445293003568627467084829552672278260143399057712045973242955490952340543986488838947557231885526080100411919294503322139122494381614806318002314675918992130057368047316519885379110183536372236826068493534453621251193237881678767528415434302845599661597993377332165662247139236977883089661381464704034733686146337910413682895626692599120831633635382199287618036291186833552816803805399944625663154943916518218990849938277816727764759863939358141752897138794788448322126529664147553260648228567439875195124254540459440083441547694503762299304369540764882524680132358344623629300230461396053085162261452745266502625434357443950409374308527176821823586683019324258698521752234839454280145555264337240196012475087506678274395133687928869608745550200305256550266182701300300643104063843344966719998548061416467055310932030948548073749351995676833557320522035106734083559190646910160748472799562372137253635701122191386920365478527433590234627498417142232985328178403918948267943089798870030903559146919943598285858692864818313516278826639189213221930729296838654946554150891945556411488664840541252973542599775722869360547372525087071956607733070096892767753270180022048572491338475988639721793967362189315390541907690193928015408002713953610065396716028298269457645702099369964432004629589715665973609666182987607485017694564730743758434057442817645319321891512163968100233444778854932383349410212483880083797547079186860603122310280990878112728359776477958977850892142927444356601818973530504209111872615350394074130225731984828562862261632408610467231256980465285208252760809111872134804482592411104451348833020693133561390343545238609561148610129644863817645747257737257455631607091079183865974946758206059320087188345767341907611039611792732544127792815484972409888940450677531159093249452231256216798771434141009150157115413761020502123227957622488540452012819762003477657539039218299100255553267718279433291148029459713394783068923529106382934169219094789341808330406461981695560376489928584853892356897803017429081757071434190075063833075258765790756789340902765059805547849673429163146404435806985727859987856416367373671045013514561669441508255308400861072405761229941443409143322943528328489946149337283632888489460680682495445237749929685535840629110241419209044977563764518878707356690371048061518447345420088382449749824057117473527898366823959523440666387305064264881916262893989728888639143470232073386632511815103935517088825610417577528261807711279223069475823935497699231085921652157107865530942262911448865991791711725820319649277661801013783746550964887547237984425182481066247801782403523552934265311119952624359126656820228015112576519958187061023761442621516991378012514306577841971934645702401974282365595798257359364955274042726810507577789300378858725730622942173242471992241139340523073242697182097971877580010401483773694687998697628498520249794807214175144775198740070946153706309545604832954224703086082289059829817873333868812098698002222782946033068303926305883037711156834754205624408295268440874468657349026817299721670424461484232575340135527676835415120355977375226659933919647750120670987401739595836888121328254382504425574028927936149297424547049355023464960093105915277476610389019038466113584060487878432906164387840412716528453360615578033312190529876041547467338114470526906871900186151518832559231120818864219222139849360239218514212471075685237893498721206403764129531821460270894676367037587478176333054316681578849195505979824207383899586917653205125258121244906991998521681365562082817595336838655536971891773615547328368222268150979966814266159082404301225670279860245241608689956647899686867260219909183366761706328165681580688250204016750679274868843173795207734707889731981481996445266707316485039545775494179016124657826081018275417235590528558967853865126426593351183378725750730698326878645262808989495523837896572894041852225270351698797413439439842173675882196158593462165368552529779220928504543201361502193838748013284912084854031918055138598148025625302627502117124792484675905498057638489057856428477684856288897803413598760926342790456682096900353194433543150429453234513601848392930444911026919128024581157426916539539232102507054631606357694869673314011575317758793100964437761413663692390682235695093004107348941617261325644811341152516283862173852192403997805415115889607695362827378672228930609694014765008158987264987954817192617529574907319077410918191522679989229404219942443036725558100415411618408585450576142628262054231059793073186242971827209181051901640310655003671690432790948716693778007571234613475884375530274252908716879306843832532341819593857276161234252934175985090613399025978112390425563365831368968772245633997879923385760791403768693743102374054119697154893149203323967664848727509279625905783475571091442376342306035539797243118703292397289005971173092422409720830539769117411471364615880181826306557428739295046246460207480539767084645198094746549067405551798500917959729055778887744882531720692122108486127079636344026577075764755503925959196519409296938953661147457385043478568190132166592905775750340874819977813087618948936367474299695499617421450923186306130173247466571395606383843157971208581799354433767176968269549456853015157047931390069741560546892870213777989596226483959509493576607441451188278807761399707727573788592846936517736853536706044020096889186614138255710759060255994637058730505972690181899180134720699981735160035105531628758200812272083386615186958000652612584072591913983494074164522633784495267791684743639912194248597256433987059161657922255092841889374056097909930074130861976077703406134199430016806552557874405655083027511093107563276491577121483566694808378547492327636577526463036982918556588824173569896049779700315004143703139160823561462393183245086651212836751904496128156429732277949246158711692268493848068231966119169406069292372090921269342351512541316426290608193876596034835468591612809438618734447060516528663188698291415591046764271420146092576489270736247543593327445241316645581317296229830722519514516089653947261780114595089730830872079569191468691686326944134298202367744713448972630934077737827002552187209037408169931368205613860188807930980442793411866738591452228658895321968180204866466662420014641733846172555577473103522243405569821921932618265013711205166308804524507562035003130691409983878040727021334610176063741517736667594675148770678022400192519487722754162448547985424670592706013178087615707990326430284797119657153276704415842711504845372041853028861855990188798266791802723089506597655852457723247126600213628926418203842374480507771162905675325428744349507488399601819109370333760883916856493294833479111126281319812092436014283300146164113538175379494426554797160900698507428682766823250986511768172879152164844430374352765657210558856756100481966554233804319642584495574205095942177327268182584019206012972161881422021090345638101056976841495876577392348012904496781102890485415602567447738419167513633199941953725576388708196415523718487702088848585828766332210027848130357041734239723674438450142094665254629069670296298776928440272675375314229053195343180459411078145649786929902078502182602063589594734874888644092877377858195176640117795196258610863875356779496140550938940601597733350358813966244888211241535452830585229296071211684293910623888035954050132578006984797980814271223401334957750350772651392971096575229137835178701722421779364060086199418256708734762798648767164873347462854209195684099783114120363193089116804754718611539326876849644520609907451632780110106583508741055815579679763398456532865998209190530348317284423990438008700767080433955573487621039694347940437040852170790708280592572534832518300859485495147459262700344156789622223270333724845179298166583345413238995111819475100297399852271152014669595423472146555683122304214032613121559419522016038351173609409981297763512710172092960981679099145442872561339890226080351337517205486708382557964346965247668028634980369743061887770680138827015648645670850445395777286118522939285304345250650509091782015623065029619148699201662215330820744632467505305919756153928187965239600301619577574916124428449896533422745017443621739311673128710651365478908513278442581729762912722272416526964571771519927697311282297973072172774810588192759260334053840664437840810183259020687293395811734543176248720492138054681109912436441206568901622570662363452382369124256616430650019662161195961170245862233248577239740227536908796462174248980944585300550252992875738147451520483693434998567771454543085331117446931677590990537094375700428410421216050703066341978452822353502354180907082871135489271355828908636804945576684946574380750146625026111140917931972576246609704812959426415161128114051669518940585974842071082483616837801598344803009018966525523199282021341178008522182114273782749142385837653264629838602150803676339861230023446191278436458985618695358958591391936772862196121426072020667584706095671240435341540522974836149223107296512479886229333105254306262137325240436936316772999855591407683795505547345764487202431922054945140736964545631106990945564287854347185752898806340667371945853263344752046192331239520922035514643146403839405793550721406652216590034712537754861478571280683465919793249023335891658683827281472119088837258435029298720101938624862711478649674097163060195839575118928711897511101064018956467345225103768683437737815012697479313636391416041176332224269440477029298747257848100585000500416122138732582653690528364487893835753742043410400178251531352333261224607214959210013264786404857387191030679993766065138407233040506326656096734080893302290000625778376926678034927019550880862351177183621216679850339399626724445788731641916006076852426781809827040029406730537278188257040920827102230652958284244871459143467970509880072809709356575827211691001369049389329118115493971146427383817336517804707357476852847495811242611577724763699324533357676515121198772699015820032179503137223866752263037709015724167514708662516166717772785639997020081493485925425826358200877730930703558663360783102615330729715302329288758027143988458252316380924197827973824040587777080192640072803619702754614434214152338165161293874952782012947704276910937246573914801387257348274922874894443830995934005635664464948935484350690731685615849657244074023323966660059450248010135532480419734247259639562754819443409151563792141417555169105701946806188206899986331357323346609404821436150734874441758012581700020237611252435877331498256126914045072890600495323706149727325132828327677593059239140342243638602049469259011143706102506817606372909469390659820264156435382168911373298024500579658941224006307738797863740689817921421630963907236457350407040011985964563125063235754251582726455561449244004959863900039779209466848050559558138591346645445185610593351450731398392453827801823808351602836128487104085663327818529443822755846690199818016503098080336592907412578648475521489071662101376957334757808059568981512372030494103524756789099319653189667202817938630297900052444088687092839257234795914012556760704225178340830385142512731180977581132358389031547762989832917185113144563210215106777806354247489553385561247959073628949407847385749227913724961818075642881017302707589069521248296996354875865658775980461029332609104321910153050866412428012939471947742379677353112510034682256968215839392905882721402823521625289865939260533352260433141780874617500294113405210449077380902648056441161801643457561470874237468024358589876248549530157390230004660179350908460694661157985945124476263218588426191379956041360847041030959625497428674262917164530204105535286922284452314589324455141750135716067875026928711563193351541064795258942353203171661808340917886837006217944856420433494981324323545132762339420200968832431552231656463274621293631180850322037487306383758010805000821866037431270433721298080006241109303513246247543234772369559053777982351234953298268218075662013204327659663022976491067431568826779345826223256276940175649479058478026000330192894392220128950734487902034982573809675706578727451774489946819226389647290242520571351044805183009314790394262883605331772577411364700420440301265943666805998636613456567645937387736823637035914721441453538843969158755498438610003630979070728866148029731950216966429036565397536462398284982230087432741017854712736018608050224718178691708702807695852163411137668435273419117182983897579172664550203989109808997241334597528352636371879020035110813935369975541312117649472606557464986556528353329640897649530007451254203472706276412415416304997384035245864397070059621025058295984498283993980673733956348592434501353809726365954300093710422066692019638195374624109377862944720188938786992146930389251306168114943271974936414477532413605922353582154205628002665654299540661847532959922620485736500020057601472923646990897612273639366538593211030598536339090651220952566770459164163027271141910950169262910165842858507816244317264663678601412377325427336560406327430427249523994733234115857468632541198475637941123814591413315376982230743883628633097251671483359011546760068131634840065203004351727096538573431079295170345009181598273590735025701685585772848764568920121512589202851829840033037406919260622589151769682158527674550970642950859343061250237693801208135341366983432147351040528233673721971551147835056393297349815232972755137658520960907907027893664512345637354351019663256812305527880994257274929401959155799651793615583100420936845704117676922598246719325493454213006204444903506444228810171769891743933394067636542197485087048871144843267380657260420625300995954793686059497006346368202485167898618354612283266234838338721572279338552894163659025352520116471967283645130318133837978639539172605785815735761802592422528498617245048470939366271340255104958712680837991221869205884430640046770405368894289938099124092477128939298045043613981523818471090319985529047362383702084131450620002977214319846633258797866474085011125655801630238631966466092851894687474014005199219223965487665283279456905575117312064286457657460127615344552476677236085448475435341497582690215469248442311398949643234545951096347953803495249408716081886010062175236452279285627893188146259741925947561360439200112088852931618353401332928979936732612808806683686634708689150936250550822724432599572184820196297141900635859765289154989426183441776121703287709504074529257062702213154797043418337386358664615038970477289338187574876862185842361175350167696854764128300202378574220726563519879702070466821255160350474900396032074446686745708340686138153941376819263083780841435111461130002595862118072920233595521742050944965142977350831287781467427767528410340462175196226283060202693332367649596821172879203678842336415876602951196336416321224615385950011491020742173696675357931996764518298834609025184177089735594186386797539456158182550199809616124863697687761199203188337963350073555685928622481123998527544395586413419211493916036604611780292891522746210307870227891370243147111614867416800119025975002550024607960382054692903666481934788323104331840700836765841743756167663342825266933387510076035411132202024518563213814499223920172511392129668961569437434935082740428190295068433528018804206581489440122057951702035604623260922264629403628402400586903758660591978556214161044583348614700195876082073880504297053037273906822611466956934603862917576377726786593328600462968108899660199134596933201270665441270957679568656869868049004703859171604750032045066990845720511069079795160510165037934400702771072394710777675937613595605212163630233567319286792798631763134966125599966651536082510714696236088843162236323867337225308124543667170037620079971098334985575014982443803762498404626768793668864370315943475685246557633006013030528975576849115134020838770359322235382582643972026261499615586538352293894792598066876422356890038779105859833060205929357972551802281110246098564949080580335560573881310365657692949497950141846884106849683473009114796513808258208161779886436819027198071654143747832743426246923013505799064986409504198040809870707411918156573482013061559697932548161835881314346533392094578908199695762671320841394492342344074335757084151780049398143515685910392136849431037025683318947139968117310528854319942792997786673013804711794737169861465284202996890218807203754025387895483457572426265461098853605716411738034943408840230034365707685359885560695017750676429185012191593452623038997769966414853110876035674597766057063116694266683609460042780597608229168984918179593596541814148644395485064784566170652211642536840861055747762370823980688026820040855079280240014099240353377325268134359169991900283110552708737376098481960997275789064786574159190706610486354608949628146486776627971024037108472129380214643062285916644316911981799025983697073168874517165608903483014179725266905602278247118246007582806886933337720972510211369365758685304291712985121276750790405443354045443593731364603430818428125483644267606589865081180706430036139261120217518693146628816966435190601952461513102341774938440226489508762467407030184971577307815620902862271180203181097032332607569789191027268204854724120181346285484171813235985399989286082985150891437674747424796326918938727575232864313441325130237178415764122859731473760624799937814798002528145020417116041799525844030186244925132718065771936831126041179272235294413561388412362569609669447400802432093587811179506827783844738472795625183316131261150427763890270751760841458468333082409131731336914735193973395116983788749466951159889095682059890364050976217352699154591476522918708225574212276637130486671998532395094120779683944784682856027622921623254292661897490526857375940389116013357484334578948129398711830049396173353557009152587602076276505661213436179235427000815764071815192133584635323316674709547897345558059610736832315879741311182431261236391647907517625089937339540348743648283538528674833025035885013485248336806361455922767527693319562001395227555466563829203482254327933446011282940556589376919011777388135181751711416187658197960425726171587858596268554157390737607308568640658350510415880115267540552993851333265056880652958257384718567971594395812152541505667958009418542474566085722523555285016958939160320201677395324149837091509809981311746992844138269127116685416171542755481191231932722036398965666351664814431923090940504330854331122587447038094692652566692280068964200612620232825220530449069610676070414614216878084282594036435572032083052186130759007195385842322359619889081176918572289944051760491700655067009459650008070694923760941789091606641552322185039380970963122179315798558497514769951928978558007222509043300617710094796146543705745421465844056018875344366582104096260581432471121571019240957209927383607498005862455983005172295993206419068608958215763809732729773412324907025175354231042411653439153159642118093413801621280958541708103574966288309964050096191622467612274877865715829839391173724805247989692415499112020674440498830635576238336361304271859596519758312908735787649136382734289340527946118006809843402529334057679128377581564999808418622268647902171830614487257420086176776478107042439004840124750058241025237618889986605938406343804384523912103326415351977052080770104454351471926459289961530519861920816862160138117893413939690752602795039955478089224150639068258297869831573712871790374746053224586809486458061912268583378874464746122474002537433186245805562966129478289213798147823518160821577456741330144108755212217210276323819268562883082342534671173847250712365287835613086898803476961476537112741604651841414812275066070567810888066230852150680817948376655372910809746430943968266346822183656517532468399902239189254074118540239313619867644299734659400265424107976442776911136891937766027543374205998634867482012636920917743248236886549981763166413338186113686274751349810978142341728793395038498262687428243123677335076811270826698940285521943318830740930064298351773738200041972679624981592377729780177408812366363147487885802022691030518167166097127570354298230523047337760975971321166373619682909892848371077379102242881903407465373487045234703950421099415853579260744719843690765434484559469979522701864167015140586546804296880952647366493785695254869913560707696462878393137832697406660568951890605356340166173446881951318241649395787074599598940949571905446930138768280734360264352516996684077475982092074966655823041106801746712319510022875221012736236930272258651891802871930381426793042357203488603411901933837354958340841475902561400360170037562237473358619590638351800417218672633147734484370919677234081387602697253168517663661192933144301364954678946662581019850419668723458456990211643051499083557453925228364446113739066744478199549545236669283194517843399741834017621949719370970995317256980766768777389851627113568010076100983223815958637708709976250673942302953925113960595192594739497739801444118697338323713114829234305945934358964245771751182989350276187153073874001281065652289937835343709284793308749756308668263980633875157649272760871545381622334546042330305656171956494940643213840451699052784251535126597461704854529439669752780797983984709986682625376063705070458516888395488440621556670594528053906029038167083409278113739062141417219048192811814298012953527311964927262353315299283593623075736919593080679377359034041044284265257721941233321610771533224604245699913704751697208021458415600929353375109677721813234667324434406572536330967118371795038360651262372147531996074744768575823470932728779148043617206354536263823468892991810844608315976465939856820411794237445641871809321527969112607446764244913487246358436778195211776947592629978387342884024270715127177140989134989224941616088714373201396921510814226915444262796128041861846061764622871656544113243633892747703792578158078436309389952551039072267610032366254393715955789384972404819906385771780063685719312006372265432238626246736210621789059432863232427300722559453382753635387276908606580899841102550309649721510660512976196772748008952676275497037671386016454406050129601701678035175416980885522766485048190755241032201506171987347346642003914839961549928191020035064953214758275032068674755657150109593224668906800125383462185448659744727978327660712519647335934991473798638124336114437558763054702522381404361930967463488045384760289752530466069273703147056818312881050975374314301309882739483472826624195039582884894798585959778479327567661534842473927542842611225993322461582862582678944855587361087524626381340648316347712498367374058161542677963031918236782618548387809842374040266250954077851154220316241087478324883886728244546716523682181832993783200279328854674866001757506048264956809657230387492853074401051692153480121668520867456246944760943813891621161620684808603292424435925138617321451581311155728585344867206162288527207449901908216059674070661136296739335150792366059908760718918147841873824476971703191963041535340791614714962368831827499263880560275229791779826492665383944598517511781904665024517814898232518789766837921402573465742585259650099104983827787286420227260932644307630875529925170466645337808730930123812849618110037922456484780218904851585878299221715200417138733261233208129476308028272463963655917444472337881829954095578989226181342778843614990418310714061185062780785351066772637752938906283899123922889695826695327452402165099154980685556962236021595060000472022547235746582612515347611300372921942824926484839912979469411665352949230679435618426755527534393379688150442013690813342660295110807635967233356426932986557476550522189661124931253284872332636367965088065712737272219469317551151499340022485593235796081423560925400383829024667957678884852435903449813176229902131995689148265228143117978337205048320880383228244365646634978889932535019280674223291281363749436022999365618157621350398405676754578591272655210855255044308384554248726594719922756712421373019169945715402749674555963727174401453424041849886012351992028742988235761930703020252898522820575620707142212892214767159565384486184800433955545547871116158476734837965158346747498582482286064547918410828861890469425452768400900340112734163641649218967729915771930862507971303666378208398266582431010764669719185649315083347382748300905410503980926650032318913708265714984836985821696996255525529065906437166986034040166532587554212032119338775160757089936050192549542529514011253663069057979203265192862173265740243366974724344838627191956320437911364701116641647760297969803958931880607533674191255046727441393525415003284313790449827772396189497820170950214746771096204632240076264723020344109148595900150667827104568020301470299843850944788719129799693560977453744764557033129975504459898880727589677760709069012150566571101138749960180769082504444435428231381094914198684789195268696857950746437496891400802039823421365184291887068567838530731946356364540219907118636125967891908855013352359060988459369901748872185784844292727425192200353519692227755667547549179744280660183612829896516428845759208410580583062613625388248698687974224141342204505844266125473332364213074680606193201979892622149908847974755732162512144819661289259568743969195847457266895561465507443078374418140531676125452115466312376708231474925643163500004087926328387102920374306196862110545679082066145462757875561433403277329113742285087647718818525749737471440487678183495402468637057279583357145690527289161038115656584770840860064554911477866196936015857781214476386157914151081529287124643001275020149051440483191568076307773727048979267139271296684673561437814956139878985345715083966464151992537222961702279328306606550441272272558326734042409408391612882977495255720714456359167327880865749991815649224858210003725916268588997039214538889918315290912233336036250572513640794133034135585600097484215750309818106683724486960380056326405559556854816033793102077103610261307819779267620042315881929339918654271436994096359093061726090691520325634168086517496248240494035750364560163613501890103251399581830894598717135776117010852680594479232707911163341245921234470028711753604371563095476947653624974087562810438380367640767519632891850575482319621044425348126686907101342831195148618879315713639262259821943798565710760055875538812906008921675355536175424068771248644881029898043556488043543573888954687850595275611122545506113287706199810658377511836918708603240849717803858381740540206322586774587212369820770070633693341837750601160091505139993528648837195351704277452737951079298226731835000112621631642824328002348180254313025148788165140041400762825424613485544973720196781530722509342729324496156148974254114340003646403826351019363163438826401916008909170494922949378661695711139387452060076001033635270905362677625007917372238883523154445478024201851314244323023061486289725947507366058349628218313170972827733086335721576184003429519610348954454620645100346039392646111779624998441241297134941680480025331892048074753112295119048752809404932930280094567883068504939428151294980413026862009014032146129885202799659035179525595595191955433853972614308127675242069860878918821779614181772484188987977462474303217712598658851725056618888322512259806382116229829790693421356908106653419847356201514379459710195898209716054341454870897600261916016609506344490081356679291501992904007288159443250746648400438497671680400643167749028703459821021562205613804958680178667969884876541382730007830348929329199711853166783637677682497465638781115707314562278563442194859068243137166788950567222622976553521395092263989958439278765540390372555635970626435860364466801323294603569747433131147117237359062504164215505339186735367950233389794690517492783559770634984134893399042745851840005609570108847686434494824964289786922323603236288441636193111965807763358848994448740240616382495396887513882611074204865307382091716621754176847372342091852477899065784013207020551207305668330890148459628378074998969298206145551879831681094209324867890080033267210033770450784558757024360553693077471398913536139451639021721331556705167677488655069116613753379441346599376396302036636629856994784511498574405627889188153503546604332755063007397234138657284693056091980301370464836884839688862666439793796766796345275145587238177787329014012598207869967955724197117014720510809946634130422626902061594515522055015511133387686639457714377715225985111721600986379063093710847132070275071383091134135846430878286926953995020076848478753872948007627423492698744868174047060355120761292387693205355616613892110628757898156823630590277876140858597366722751157468591289348513196130571360768376564665569892918194188055372824101546369825544817737028776067211189383087490155376297491873342902086420865599753387741815507073678214477847239325044987071343770453093025736760657435137719994980192077404938637617835389381625107584645388138480737235760752373462508562407988292531599350616260708838674572344740737888785486732130481905736450647231297785994316024585870048231176110786150588946109587885848235271269422387423689669827323103535296179779482922555939257190737311685966472584357656807944881197849165973390420115065443523649413144440617207152411572639711585897477921300572830899106176940854713121259974361183367798063995908652641363651726960663501634286849442179273428577549910015987845581724159842545151003050283014313332638982886218921736521620472076287818666169106203039870915403712096208074206787509361408640578535104045759292229268759878842536537160723507636792300427713365171959086947850774006836791428710909657079839205622207318911024156757546804463403785007228329112501136909579172161222972262951925398579451204104759499361143126688841266991145377281009585915446502145674359457816299526562784331828552014306887310184577313165879735948089063989063858135222067251635900199153269415197259247648905596776098221127951650810087437696984637934484002220195649177219279347788994441647047719736689370400297480894101391751377271559934516321761555060633270253343800424044894758323482713076841269314883510431161391112810470540881570370465870735584887395985717776746226365953165619884114854273626233614613195614112258237797113158991831629841328929904803283441236041846294492147218429193675839144975364275453760197307537519050422487388514762429407297651289990587680824606453393623550455563724373124611684383299855968165091441511924507431782014650034163465512597603604367850254947670777966807446517806519137592665566122990679275207197995394445240196537885530487050283585227383294846365187216205260655375534731221491363368160179277787582378593916368242905031100406058084932980450004473001361095258909580932885108955077279333986479910725984698564883044779726688381171223023886684864574285423738207243249288323483408939060451108151532678809658439177635762965575625976088561966743177170226640767479125203495811363807507584559975049107079375121618083334118904868280212915793059200631452083798245207861006121054588270654958019505181390363860771334065335163661487738905570879334148176685027229044625993994659250312411579476915981805315638938493492435537436887978709959739433654348325011580483617157510224553672940531179072385636085296627879709370946160657048565663015207478307030720979290068591875931500732267764529798675371949401500445908285255557859023186033704714237896991580143522685325490905713737117647868553515770837061009896510516528843856009830933291385887321525479775332272885346838016674928162097649924108082578638416781228279582016804744094279367709456076186159102260961558387283627806112073152187332223311124605597491739443184168246438537464557909797771521492695359901217167951912398503159299741122129026900944755892392812324220996884766556216491955119918140977503549108179048878810159170960044232334589475752873440197825710944020250132691598985490500600367665606837554411706676471816122744550895317172632240881956578037175099221899250974835659136110480935885852774281725743463570239734992068855058208739249776226621689315977556420793433285098494013350485828250005974989326379301839109306755539038505543509071400513263375085143302925761394570726634465846531583640526174148483627928648044112849771379162997079581797256105548661044001907189243219245018801126637024597991591014221197522257895435950303109861268212548129988601681431538113914212717102485768644224281287804892527200568818688838030678426055134804542966474825939196978043673013863137481012094005355987733348026471577517870461613461286648240608328189151974939661899305291327470820271048307505762842161947826268388181683782154305441668792538930434885978633427108568716379087441815377702160639946849697052361942166281522752054004078832205729310960194037847268680102393325393338963023478673702608206395807537033675013250250780340426070683239334594258892945260730077426439744982705899897546100565471594767007154998876026317524284669894839589737375471734945710785083942892515039141206143259559452447617911646512444011076003978073878020106637233902791783890206921621462179463803120872178531738875626628205847137774187719546398090702126357584275118554333080669706219966162366139534131316753497473253820766939127682117126297719488158884909948625104976535969314620320735608942569633456361013570391763881435514899913844970202939950552023198532615591029228384695626879436227439879052627163554717991138387119112362067595444224753969128670104839553549890578630349836264917712635723255031667649723825240218898955271275981206265302258079556587540550960096689473383538790853755187892752573896607766532488644351111790870569505710865838812627678796361103572157754628736167578318452793878566036829521793384545856199412654289999864740479474481200110548010609121241528104307350912763048248446568873510244358145692700357556263243761146679360548948293562385551965214635073866646590308406412101028523018123957197077113626221536871997315743832864937695897567694520298140731041524707592476352969625856296811613550980742668133283378631437585375207178578261830342038151802547385791338693930457792009408491698346034633974469482586309656163667094051747853647327974953788218794244980201588389006835550468389494336370879224874638724623390420690090740443483112829679591586157096357377330295981933182130877877509962105074452962495727937964086828383679554833704687440561958249771204450501652333664524072179219553619870263816075641180053778633368647323134205833437632889645389832706136052898594763031449578675051050887822376768246787439899314081114937302055674863642156518191886753575050156148059856064675401790403730468615691625688794497671470077857574636737345714412713952441512829746495360534473520026129036799661351786179758766706162661161773098509042935685626652939172803195131020979879317300754307172280266999427557391646264251236788701997772743911090753998407178247833074277372375785363205932834133405837534512182005584546346631875270980052977319790079424727739194761328137241263956955348358933872397378731286631821067108362821531095715127060019589743375452784441122906849150911846867374483587202865138701429357706628431005668176593749291993858812057071598153334595936999447302897870388210487949395694114158366841559863644726221196929360616795427227066342606766429739832425389617085089825570537067152571024005562774715619861011713883393598980625916282991755956043427664822831939144587892656709694247203787707481886670125296717554155132293276278103610593611681676393699477766920738665437084346016850188590759215610216558916552956605888313856408405732337155164412575952778863975662673522205670209137228850610703053945793600217893178333816421545005199235981302475988409711580142115817119799605411176796775003712976131721797678868414805089524571133608494199264071132716554277827813307567833423925544675812945462331565238137688937848695761504815819344638641243125556058552205764400037864086875817351479841603510208410153280687320804215666530264256082936927718299784598118601671213662355186567653253485748927399818354087271581494803333547376008762989355798114302517928736134912674099912138259056802870659178849687542253211193242133635921495562245592293142097843848052863786524398320211802114664300020972591936126873381876537649948868508117530205688759450185079310708342643225118239430491772330703285637645259809938981314926152303721356651524385751858972417459833943729897831989052831738662803520395651004301613284030299421598557737424835970522397729040490712769475998122840133888834069226946709127014934883792985250720829039879388447353615752709698581658169719549736278920804101281288826659538809452187606529545344254092482908214999322150858736078436911992391428581007917944256150779361777542742575132018554720746194514335808842806584967972743206501546806627191151625052499801055432918868902478546572409906874265138711159759069013234710655420423199074412127168382019802460017518999287266822380594964269211428872910507359760543436292850450830012935200723096836009912358192967170172920626985277643673466919318642493125040461310495211159351445985502491888654948137139911582141914582139417035603841187492185174481208089157371533183899443425917933278947822381171375118530206100677217070172968050552227872551654781742617614506965441657532587993977462174077293869840932612432123451298273366195690527916277157960522556797257144682999362577398596191961142920622135359305303672994983308150777616376668568448393439553035673216608150179386129487369513586791456847028088204558019159263708355582923023206228422214010257283414646582033269878198937145013275804481714978051225798178710674235743439031757857978516595624781169955001305722888566195566189056212773923462565157056101890471862108193413540620379357860659044757117427774423333126298123298710896461885171061681431867474332093037311310206850514203881260086358205663394780060377940989800755318110411290794419995842234647545372882286495043725073398937541059399621203583012300976737469452332882640884920724291969680424783013423982888381791043645887012680661495267294780063085144790430610844214639614308300851904853892697451567559466839845729960576019113755395957969335199278101645249306689321614759153384379170465744921225016884113847869193646422355961496083709917527992850664988609928348526143853173533370144128177041652688187190837557196493368236036741339558531213318387404361316188124077786529633497210663653159453915633449306936916550852412668378131543765170405799330163403891475792025242728406082882234681725229833295053784493270739946703958932559000717524253453592576559511011296532983435062666019508140601930714972817557566922064549177047337770032622819780533821149428446983165029985202820643886674581994004304542748315443633698792754758051215157036496289896725784204094026408887024143777189777574438802585603165833750412022076238868412578118481751893624612052532642793487772492237021354174535696955253962499331888310199120635514551315701048367294487068173061228120508854353749758706518401228104022944385853119305385187587533063283961776088599312118970025492749445472727492264829559479231956735298275851047927455258923533880916198660835642115300190451498201880157726594838300628478613258679152966856645033145275625073195070241996052367456469627264578606287933919601102912061220268753242833690951731071179567433411625494010461501487293477274946823255502672754608679347908070629073626753591739474584944137544317469538701759800923223921249350805871860309118745794949515560443670927441473663459363216310292543114059144391324421015312325850532495825114450051216551473741074913447175317839184471866660929332317589719101503819112116973747767170089651665387952414180240954170367435621001679238121110169453672308172590946418554076694359042585014797946214924153495455608525251332634003628474430303205053929653686650018832022278966670554737580151345826096844407818007106939752444381105026207961343927423886655140201068070443198618928887838792106764594210311763920787425690634291555250702539921638778903755602391498672201931192564243238873702513393031943113770652686243793926495717012245558880230326154107896424950368609362321120057608732907444165662575716203549555564923810292137268535868810399598143810232783380471095939177726415391347712375045019715903874350267086927558140277720541284045374302252849402206679948308782708495301337780039349819085550481379202798002124426924564043182953728764610032473842452763195479705091731826166260772851448655464585200372121696895370687794112957214490405192347034634353664637480469670264247209860288531362878015279808323993330318353841067314156973370980337136613804066695883601746397533299355380433800666007515755466119663544649981750477649134844663714971977924034996154952794770125783723826016771608450708576177806849170042447460808283597460546523203991995300066334968077694898735050845571150736402367963489622971410261455730273995684315139340232302333149856659654988320861125666054319986711162674125902384788035942823715526756567540355923338519526110934301884964144959778127546433181298791971347493808392615308895390699330322392694927577402075577916383976382682109311924715877123768342143281692256713371398117498515989795032074926522176501654539316991640126403884260605987774024248621143887755448316526010973618736567322205727130122147539290619872730089898262856873597287236331111205004770927601254050017053995419598121720713078164004523768278448209547339271922465874871244535501445305434715193216581312308905386332650102484162923784293279699095936258472717861857022451887198808193607695546840575981119938097812814997087427639741792992138034621789410792694759263046077969536855205877028569918016200340109473230217722735286432677622357561170890038331561020734974821340929597995346877072779373387783229933725146320477361972340599433551440383667755425602052612264332011104659533944582394684406263066214691354696491417108286132049178381063066165679417333553929202731296976328064637168185160665519480555161932030745922336392024702105090950312464433353438381025918428193250561679395990814460942019132163235709320605775993396356955555024067895002599077188099037179679718166207375652516418553087764119965539230317835707747280204316884125833975547204529924251698346212327662255989957944456592775399012956521941722149624922144998324231595530616180510286147114522637509673508979584990988921868044851914019320364738507443787441858387014522289411060035125246698216063597161358985267324772923326406581881166092523227965799365833209102572044671845342226331438731052420005573794080867909346718734813412570349794348804261491606266044769065513621613779342364497322028480680364174510657543112670964279841930095960181829363995319594625285919508836935879875236664900150097766768414109958944697386302240459949777671142946284274628433210100674359182390534749311362157052197876208237440434940335083517463604023020762502897673802965475217194732107892195034460449590562966097791184311470359844783158211855202285790873363987853358113587480449294098014143971938492483118659747417094471794201732145767045362343541499589179895151097420466444660934201333283110025434212317998520744265493774781304000945829975063627307369837758712334175542057534838487525795155622538865598388145002687811054364740989352007880478605814049142301101736714388611162480657478208696193128597731253466983514633008809699371405022754057329437299354060870031737936750455550510271013757541812155200591498003048743639803444571157097759769494956183268831771540749079853821122626762167903327641221842853234310806598675958838786154130382387567815387020210413959907210822720338070211568299172461370707312094671164441884205286700721586635716459537647559624325269342611570051536981188095047233334683211713434301150627874004186335019748542439286296081869222210482879077687051226866164279148530092887511079427885631075101748902520292578718280703411515314275496023821370607641587884855209735721922970254283959924873220634982628725953055312538484942497567559324336421565112385294775523392874524536945023700800863536304752077417261849689307789576912296613616597722793549617290319089370800152251063195475496553805814298756944490053302752114249243418960175494061767818691679125275558744548834334258933807594345651294998244901410184042345677716114064882252102699626971737356648230286547263750552612305387378184141222899321028082257930309609572667063074468386668081408140512155811864241794779895094489704222711391886129128912705822623908571979336826764602815793249079171979993012227772909808796890612738793720006497112486966113150070081982892957201891992883605881219416449130374598846274650473980838489293342892310777078352046887727439190231412742727578731136632001256885635697530058882252570327516723229321957711100378184558473505353699670183598452345194819356727788404783195824989424557401148911696599812220177549066969417763238668209240577116852241045140553953312424157500178685235917801944105888577506071977743833754083242323207587543318752427385410326831718190319486773737865972068069746353859089056842790610324456737122300032073607865894001780756700164935524692391617823981579135248019738824964309018550813276516268061500069800017683535935634706278645540600814840972400738520399254275674568430241712950226940147790969391446771128031680535636323011599395681580677363679724535620294597500675687068684998327847207211378837203468188071279608202945027147966954738732019515392280289006092025398970409032228556699742750231165589086437954636036576009939532888852017391892259952939520144131336422440966811193155338787821100461871918405235996783864256256183822985606814115416326290216772905942081329446658731315825375999876643245604478808909333874893962184692568268264838936539034767316051093043045126732922616955907389566851407415203997093591211157899586749921598550889213553126015264943741049492458172637301684709378627757802783670487627729522872325681664684675663679311462463422577717927715410394563360389267341029609614076061517349018494172472809221184314689275715601068075444011964161403090978238943648739325388131731823197471313644279143887664832900111375084044729317155533092796444184663296676858546152318469324042730047933035463050423895012170380901233990686338118910219018212691476641553837795462622031858875486775790410671443135038105854198604643522271175171810341622060331930256133090207448994838663547005868661057720166603944046841756928307067733721484849418011974949076062568285386338897076756770218014126250818227657905663542018182698895650505056487051084569079238039609016876207370153041378824956587445696768025666069699272791075269823706392476611589344432506337134730615241423961560148363081757522894377544052782444462773806574543528887558240409003080048499428544494887745596954542409649487055568107541703604942268703702803549539106634573933747717403104784303212641348055121694170567071713923598836374860738559084879643057135840599155208231842517517779133915108866045941716507091106589314554007771785943149353690806008422697589657730576392667468447564191559173287743224741307562775078852785877898713280460107249611836795642680597463112512557133750157011725694644916087994595933016026644648163974970539564966400063370103455417585565886840431448380522427983013160426375814426071664732098800650675371510878983230463912617392345331848411749597313818876821622424252672405300757869193818546668285187184591087562270845037354566665117601125298067148491201748257872885157802902402087618426777890969557572275491798068176641599836161751702706941297501664933817119807230696773474917753586041625296578870473630405268353497368494111510541921678860221506892685560386715017390107643634543194214236709788722699255278176446007204073702996453305785222585396827657346839951412051207438125966149477724007795848657280327127543042381369988447837749810633620208513810566505383080710288739343963591785173873035183353809783113279138918350150442243910139035091083352538579556563168485047823267122866135530559465403695116411357416887208686673201750250997044886438041590960815428941080178013337258151483678979275212900773210516779145217189556827621749401072036638179773974721244453625287754747610565899528026001928672856355942561922892480199677957547921852133298939040044334547507728423362743347244963092004676823406286187744248695792228720885285774121231039228336191398897202499757657275170050755457304052100460596558829391469114998430050142491019234510464869002550895707381212489312872790771035426147586309752581411697024827115154902895786663013192750911745915655356190868658696492228964422151769102899241267222449660969518456304588114087489791965012091146704890425312745234072846761081556482136948821152318179478920497049016185103112885155030944097475638311885111282782777270840378645540589973128891285359049002980818029791187676136436484833801677318948574096460076277927361947646480852187061966713240766037418503664733545441269027901078276325224883811495118302094395159708478435218793466638709111318821469306631456328420636558133444604995124643841531488668088613442172679034054081707922380828617209910552010203810980047427351673085397082838457894022901613207087073833191041339179011931457813353002158564954660606214007928906547096488195380821187298845470449508108110958905841413793884512922431479868254236152605102204154617561024475889691369042011776300831485550262204708544649761941310187768473318634061888783751081656921923322819809640033254603836549217751505412010338073172273665051855025024145198332704267518486999660630181228766786804710543327826979325468218537153129860920087729394710878347062697601222815183135611097417956568899898492052297762724525994583038684883737187228798611717738539041038409223960514735788880672701681518026186173445013122614625787390249629511243422687371804091170367158675046351631054503973904738676929837170999653173977326948840416547185199948102898146665259740136211116734087485310480194672477592496724083511394323989479764510703762611587228727540082594884745607113408756264280902922686563495189205521471874501646287476344566802751262226351648990861606446907797153405973519605974233450519077876323112640052945064874445993134167834148171616715369847787342616046227917866864090231057881854048067107645371466163463068857457011890396261347100812356726342766490906405665917397172289360336072680733166866048060964595057077407748484211489300927520288284670615578737967491658842594307845204847653272328379004603823033015584818632240361040049358525514642875126437093741911201569596648380872065707661294453571820589870888094230849860770033300629657748455128080250356344453734476640564043421861227307991897551280856803750772474332622490878864444571704382150261281174787850398583095860631708160130447903609601659635369506390174608929552176611349635229944763489128777279606022460683903342054955662549104102827938122014307982666161737485547504522281572553362314830237657037818583540069294051014630213691596596912279785120662779395433346423206520652801686252726197294045147406392052871859872865258373389351244914977771576713946762932240884014241466434809854548198437807577491735960900068889298527790618216029707114754576290237134031346200418053749185291684514652178712899510736202244139825568850014313532681465875455539086355947614057251389626105480644863544799615771979600927090771626351332460578870675806869298646495629245600919529470469940637383879905034442383207581795411625390440490966821891535654185351027607698352671035077697895063197393431536331271736971688459253294883489903281253427771570826157022534688171975091739759069141403648713181918459326223165791964885367831225532343650752607911403842185833067070312912690527770875222325760525201627914784849516769319427259931787083024562553467088632001496353373218679698691825776689293155073335124743777521344461892274673466270821843360692444801419936110032597631705587109266600583228777604111952813894066125654509013619443437302942747963042898445472444950266924619687693122243096256690517515061375428404172129943997203556024245466366157604273949071795235734030009732966129722239058475968250092508673404406926413810530737017472297988886155185383253268437148151303140568927290157670327331284961805756017596027750840583145907923658678625141510893221811424340775263299029322102636639180807495306416653861442759568069738100546181788504338313354632170071459802786013893384220462455042169745958636740405170967404740637377845785199086878983643385811737963938926593684042795285937632428066185180795011945498526613818234812485256794104308035627105957433953471170692096385855858285861429531200227845823426532160542773228956182467509254437729075583168785144878844384339773853664507769452039867058635862778988702889941276982444185107663412770244768922860705317900373689838545012626676422754016972432340319188860779857945137371496417812152517404131288627665628444112729265196708701830891399165931244282790608408236625732438343555732996494658684965125101108252725064641673099742631437392598639356963548224204005745843482360697078312764549683992266422996538295473634373166290039519994235269077550799350090580858176594447382952101985948717887295654238964601727872902084163568996956214509832085826025487834113390284315353978092595726017696668922218526156248582586124929152984234967050287839418215649452329154595206255663939112773816683681521469629054217986146021023939237601631216456150331925758827905026679522658734656062012953186004864021248799082920996594328545213024052000458022249860761215385196998525613026299999564365960554462401367720001216549386871172180886495895046737831061406603350085707522555633627588898361924764270958735159726982092881823090077794925091114672788568645798784986432924915606100285138381070151075037926021865423420056269287862980757159550064850837436778114205296208020596046332629525943311214349603683110663433722486572572838136478736031823079760258972720439401926373879262166006709332882515602828819188064820980423711761408474272404847827660130455220088516707204565068906063454284226996600541780487929232307211822947011352860945873691814200030405679716594818737117260374977107035701476799690853632517731229603293237343874463778081540986906676465254973374990498222933432327740447415937137575677471570875559014760621111809483787930233761383061537931126915443556976805912495657836921807548601637648804651544656480412928742699065027728643078421374279640227068899340702911959714272554034298864711022585364785950984481441538439285158980084384196719069265507334077583334686254048520379101635907080263981322857580963092303639260854296886820907606204459317763487889521271790521781559778226122624050822686092494745019063454268692964854473279911641879418204148776570974085384398281184745421121132232714814394137333593029569734824938977409823599440163270220334478944255624510808495333057116663442622697367082312613486813269225958700920056182489985383394275768651856414001845962995479628499639858191397333121880818443543456569067239663986637226202626170911883730968441346104785374155722196648869678961198320594550629390900338361412339479476053118549108964441998394753024497640465771587263106431817615245798835543469056138653538760882481557663943871602093605102546246560518558258042727729044613079974119522693861102021242804645764485498810517026498476755658282555002180016639633192348602028729756351493888733642482236471025335072340083820328589246240392766928366057823681875716059939140692984166988674731660379637166456790665571089174564572011056084168325863936785467426484269703657458594730566277849393306324757099697325707916426961728731554149617810357726548797210998660757558150621216143532859297012950322174880598652198034610399912574030262202782455357217654373546984207026524870416796052793068619330651482246560346507468996833120890587393744998205858491094862649064161658701310280043347572607691295707753719252661478727926596443791030852764801102799490992529978450657848269100807712067892397419491707430295945040477084777593430956369420439237598976624012368120071617980206475307221562434530451576731575050536961515372937583892591185907784377451083988829769186919401789581907952930322189597554795305426806389648195657745370392889899440132811140835638808377304596250923861668172924122882395167958638451157388619968682066605382129903513388944256908376037921450873135014560205161726032623788304173487970245979893917720645095586464366576506314173953242735821648596373642830728255631128749366098519288627790066888686921827526608810883249255824457341532816334202362163547526479985575891766795867743475752808250649265582204256790876993206957060369162800960597780219833221882570567999246673080586786469859311995689567262478081121662302162190329545095569986421552337733973478527681601129522184981851233728657267782182172869854242340455692888455409715755495873958090393032961601812678040890426973817655985626297341143559362178463430887687758256998235097750578717765204601005280046718130419172686492057763109051615074149839314944375520345525874366175665084102242772382085117738440852384609174150256389615192977947904811527667918666194443270176931020610856909388233716565413602784368999701528453383164996657101104142803820740548783531803305692244037125404836215371720861249526577423747322629329969796726249039326556915822850759489219924514087859419509183326791891111950527662641953497953066600627493765371053204086946678466098675325417861505969935387872255536592418018128952253071474340901469173036914868572816668247005879440560006451988822027088754847606906778189122984049837315512219841072959846326377516564615965096061877033277601843962359504231520691682580223835121958483942171775272718419346533640434213032254108050153931598378181193324694656453092619240563924457214353118905855470717541545661627675045196624410136773553279230861545740375952820917503228250469187508960605247085795868153935523086459100276038206439718970557199029397370826144336163380605768067649300986843343916694521741108456241436147704659939926752871294637194133130117889168903317140662151825277043445340722491770777953108958479796340904734727533921151068658490074992558952159030210408622896151429129696090082509767121882824736590720713757468833975274808296798690789825211004576031165241485941688558937262820161447250472807953811050887291401024398727903413847206397890697076172361044252252537152968410143126343170565631614127704242468605181750141860521512562677751343136660324420723059707071496762553969548745686171051225152053916113120628555637384219168989692516911755554168411329040012250267963002724754247757474900170257440278638723310179406051251007621642195113077250320346839996429714838788322019775540815511542673144833371736433914691837031053204389071362624586697046778145898024550104960390904421555330979426340579383454464256062037584655791797861170382467140218462159985687553019593054371792325148074064743903804981413929228534836764507497737020572999728856871542126670483544189057416581073520729720916389773480378841886331427457764763373023695372383791051837316690177961932264046427524649831417522540911818356229622834631149225377667473476377118319396175280011116260575109747863519008687777254164277339067158913988274741490860427479333403665153764912440519488280035178712550275988549636104412490056529062793142404803193345561162789189014548135837977605002624567913016116118159379199823215505800820790883059690122712965978257473792546068571629043572915768693249369688519098842301167257163314331615405707739763234781912719659231844384066552788967871218990891806682462767838443978488173386176035596782413644347895373850858981742176940195965189958734384074031626206394766238782856743047231577359142521347651316725613134582835951012974186966587488470065156689734895650190663676854498508379153809476574826813123435824894052095144010511644801834508900953469965331150207148246143536755864240263665204849977612825497624122405615966326763944376061834361857070840489193806094481218724725977123922623895886405105120298724571972582061720217325858682008721728316333248306709489234671437485089756320505193448100194444522532789199120591962574597495494905289199794195325359704262633812553510130961374525614366927396809411427738381719099752351738410483324877891541162903663768808672955065679053061046856933889132826918514117665248953163432771365529100092503185919067261039655294656212968975430440686967536502573794259684966253158774730262034373331031180999211003268761027590457005186822632506126154680213318933309880056019848515052030381242567213899694473446110718287484601931339274449351832340068217001702250256240285979302948233501637214949733284187437827509978367660513099858101786388163901869818254124752412052259514252987026256056933505976793118849277993331376999541200801202509578561694733060023940555477213932601089712060665593274973744544967128970492244763716453366211813343166725475286467045123688057691131899777354427571744024759019407883366156161596279075563731975390532065483598186984156066102386754549556151702204998852914210106005073623379278557482710309808734308184590111372932079955226060918896595210843586475153737865406969376679188349268960338993393231993705785167396138844511409704954175661561549737245610639747894093248856844218963952185739392785229009243039595573529361558086649164158019027883172079588304060078536486195074600930979760491924438364182201212517325464317804902069593386480461574925943332607022178024600979926176053462340824077028938778792448177286737579527666831451336510986356133562134745582604305102521457017421557659308780444902438415800810544804562267326558273442035104042501429513617160950074064221634965783415055068204547940445689542820707733034346244407910868116286632920193171898535965373413890362173526283878387263193389324403099363759437336883472581870236944838013054946146712271129331964175991330798344215624944516997867880764103078805592668212621325237286180961679953700674530454152223116359683193585181354180713099513866404608665652442085550441619065601303177589257129124120220768569540538770330080671936677432554885552112622141057171894816465206823562707876260115966145366807173992975340052629881543440643254876384018707207759986827150849479164494931193323399970929737909279427553470287722628903929029139159561477953903050421098395504090084683569182588098336692122983118362562912688269622978437109762850329906752845921992586497240431481821235193769551997022855104866738575453563107455479580407890271319903420515142908374834003058151820525719749416571274232147743258647202854786548942146824002772897383996516113053994447084244158628975753149866921408858860767329344765652413266417943157790721183542833864832662819528114108698349653390148752079370000401759097044882732693021421630478577178391224706832182057373675249071514134622224661639524773025349041311991947160333011633993218993410165945944580245543679536054941900097630577558229927796573582395379489645948966462222622316502118980330231253082345116520382994762669093084622818194839721748351780457200871033700272008474812967320767041398494685093546045818335689509991211690777090713454584604210876560780394571672662634915263169554273841194846914708775964400221450037701259989626062054977912014769968902920585583956906681344261468316143249314945067892911761341970385260833069536848525755348274556228769615843930402527967337915464359179670327478363362787027592922659988626741686063771925017055357274556616304380414224416717781127200579445269708253720688357573693545857859863304180739800178062014078364466714860733336546364014129677126686788362735275084891872093773442495675340461029799654790118187725322790873181255614613690043425913693461644388337148277225046135378459213437345755905201375772606119353286802082052738588279533047727675458817734365440353785602915005165769638553843174035307887421625236697852282020473374635627068380026734381855695621389243229764173609545894203723538263311498769026854320367110932312574234119174273812217358441626817471969110332059475952346143443997984443155159880768650370584451395445084096156331932246180124766845182853357476010483855893780300289327646661627202436462026386829592892192899683298413590651558388014594278570830879918939330186124540071585486603615715926699056530612665803385662042389562973001603205302828504169773596342183248202181357790938699633004275311116856765029928598720051274450793482441169905309331989516400950188272293416897089262876334132699792476819669270802044236938550384977004601456442037981114836906383431479555934577274049232159565811261622681393844340456075469584079460858111940544243288192084802652527125986930346113621436407521169974271975980843438546165483355170397949015243165138324272079874656906459515935066288505406810650874005341462013605307782406430196066343186531223133865288171995961415301177240963760112353472930263997762478053677632311825226546681250331480054193306575374526421958770536479888496699990149634690159805674728178671712784441678571102038634400774648037727096195145311286170926286011973376530768363859383640176795190988921440295515165671915842813450417664630484552460243304256512822882239016553286183245666950911913532673239780377500533541947247967541741993653029950178202151673049720679954634746058675608030117466986144419616326040550712750378931312292711765931222306108588117700975698224549261767157314436604882483316813700096260917283890161049377039953834406134128629466746645394374113534406830323562396285685391251512721484355427038036796910933569907847057476783628652031287825915918893693209873641352889791901569905400391405693223485864606854807890079575329538419602064862591538399825686982308895745901153558197595074629164294942233894464335766161222652689329504640719267754079079468401645766679025434802790699079665518478458355814933903265007502585608987291828274364769068631108576997503594393842712306857933505635157872348139946595486309621540401315881335539059712493215589163026963255397251168888054714111302281124957327629944407215588748928383924623490832560073937157530598612830699067025903330427690999368514748434910615286674187854963723562521999653716051678184018696047501700715177384387922075673580737152989869415873927630049530762043602690842470851304349787037527451232602981216219588661050557603115231593959550688099861421761870172494777306044005563313429425223565833331833825952125870291903515713415857398998970451572881688070067412297632665167053506865502880226765411184009941792967778980559346114928581471229013052154177399488476659852663610963015398483489158871175195449686259330562648944958953972074726032197947804086458583402833591166679524464484850206172740935611892510606450892655620540393705717632441277773814493587119616159773507749585883008145368373831441167298815820468424629854935804034949278035292186779517969208116188209674739496442981471018788292176437285043585619393991888437896693007581251529659645765082258173048533828388248700565406331806303058019739744967320388885563805131516217800639775217838484313137177870046045476720000942824770342251365294366602380303321052705610941819341828009692067895093491819812300861607711823015968663140278097814646793597294856381772494030057723549572816492128755292136690473254004219882723375366371924687192139735053166538823512860946832834814550585047799162065381588787952932923652561372734897288290509895731697885134440250307783461133293365876610650565447030196564211777047245097516597979750258120533336031850680625649251472536235585320588821247418475926097526916416111144595645448446673491090748254032210989601945415022487101207504680206515313113010453390927720156641975172339154996333972130392661284039421085357361856181456657135633875142582270435913543439853906157226649565742135627434864424946544651726249030128175951788843877226800559563508068010616847053205876989562109147641824974266884666124562309347990588996169335282389552193607850386734294902121594305194678822368421312437936224192723141388822918046222461093510553988501563322999257549183849741137572196194238052625606368181756067713991975611573918541749156059790836284207743957077816777902640859591293449321510958505819766569803053066353774912299720268614293004476031587492235199950499883333556148693236506251434549816782519629792148049244530317422966893259300571547872031542528667232514127505219709120608136079192368760809631481175206552390704545980849317848464506536520461285740068352003002883633429926422847056218598521333751865520893071684837998190571091948268976086200577013640251987166420869239734762829082124243175547559246132682018911489481381037549186657625411181426841418404769303082358616149124294507381328110721787561144315093445721813201501125317924739538697903906060255011459504627003451296064059572353244937808746082732267899070581427804423965886028595171359416817655163850706573114725452054525286131732711512683235400116320094820138909101994115660037500627745561932137220883317313908975519148781903981372400530795358778606379789821723651634744635788418497078528893871745705206617662267597985803911202920989695232325649897006551321257797012690217060683170039503005177738486967155476831263593288378621826775912979534270570808266344870309286357736368315599968523469253527881513392152540637525596239620749686356910037780625465749248936537585452858781316602042833499111374240441899796950514698654797696877036732044364285091793222467185084885067840065694365406354710959671501646191052133119500171164378782206111591281876675335889709848212086906478901252793969290427809446702981722695373836504827580094633619064355174921875447064103131575389452708340614366995396482916303646969349117068538392344631813034221352072767667107565388660904604124593780018931157885931009104933910986320986862033293676277156847121107887398087846449400611075298027384883612582803784250935110456373072106511895190019593450548585757892900307401346054101683870759610225255976018115334310409001004338323945038130157411935486978990508709283879191368847988280480553564500208823717312549762991177035194708808648076901242396380506985145039191729015145272958148667272793161290956863996790645869162828654650741750758136504410947471684354677786505366426940364952479195530235375391187581982208687498103323525410149052728582322354277437373546711194148459421557563130960355116818725003065113479406145951661744851209466270337642036775286260989356368324461558447288060156910863638857184561896068816362862896309786642136396758877982501637364060517098074562205921698521171208431834353941523369389118401403445169939997962655647396078078000034153969935965306197188876716375340613958438871469800886306095622615217624141654445571787839385764983042312379808796206355076284772511614496145725950021827042954925127451018871624887252039238350875788608315419786809065221904605415784468388993103529977526629928883985956046797248669437260897421559797339404153903712507982957877013325063021722222678627771277653780385246778754567090032968995864094078036451093130959775151646652006573886882030680845092291214672365180844876604132535086131715688172675635535329561458785358215582721871812794994948730545717358526193384537581141859065189316977495559256124632958121115756077370711036980503776805222005134947831602790586429500137540664317494592048443338748599072642245309639115066933343573603982269153015363528835021267999431438527751374181569710555232518618594729093509843822830953745718101871808254589569450872906209515307781243156511662843221176275160873519783182706787102167231316078330268972093307341865760078590769888653302330575758767434733778373101408171063395212168632375067003178757370218649743979569607097399292554163300604805627995315419341455364592350048464193382509335762341229975068227943854329854944114292017499692374340973347398840704940359276362649131326602878969302934245453204899973314891482801196623235380132722615110360729539981449155669026570910556832012688885622288289520938804068940070585770672869756138558764175444013908317356648019136003995458657054532471598154852678015128831613895330032285463690968706223572479667748697981637481899045993250601468495203296775767880758579634792404587030427532927418692436148743899036953147401438054902812481018136337136292048613489848804561797276254304354762981059584065389733351917787381168971614801592679581279244513556838912850168748870348521457142241350479254864464938133892447311748817097307644764426450390956310484967715424338789486232329430479635872692280375281385116080321161017958768712437756508217010209976977710301017980306527517332001074028147921675804706936760143285651070773190167482533929893365531381783903901280119058600784790540507234397266349219524074347093798229689767464323451027735199382590487730724379276497795510209787920979913452356747844084982475186977271613692537734701955978621036468442372168846769407794715109392960100121681209631002104026299579502837418609802747788559302095572805124698122463057780734146296580850844063625556052922257328130352350001088284797596454829461980613657917075452834072891174241521096701619523351311659287811657817308823714513784218423671431920056985295074713465130657476011168572639144175274507488066631688609772843003038322341804999364682950716738213714296712810374927485526046442487066912053116694138948415099962254968430977507007430297791167841491128675904469705770262194883030598535390166009144059887237744461537266762880723093994905518015838929667005494474716236873558682750223608686441002639446619492700787030870090323328320449793290174799584389459916112716571798421336203974753675835005622958502613075606364478088130730833879745215608687219049813314915041414187329185430411599868116880123735543987747837021441806774186621006354674474876812927752993668451252804363632990874159512280916476511170030981844727772317640096742585846639635457798791796658231483897515740292059553031444762923873114773232707070450423479385069975376367277324675569033885749127395180426002220495333789658668881058256284976465456790114946896786014669676939751020791070603713160554185371416550340169491505734789480204682034097645298152320766666064137131974127339671346892936040138348163879691799086895601375971509654071061752555360396447887749493633083581567884916427738283448661359198908454201146690267168887858223641901571035662869178104671878022071705876800489389737231104382832625041704599126992035864367258908591649004149064585615631946857562542981299582414758226139896330230342737990386598613164723970991406737824827802380655488838660667601325364004380324422433956256410357641691953581504815437014270635283022764556343363033629445054069329658094154352200472567503035219238976252620503670796163087954962854473299743245990884898492297920248429809350285139758882797951003978809733028614539681571869717853858934445709327743903602981000536919233733956875592048380717370833111001960554545155675196218654122353031844312352903419833645991084509642040345799386019709040656397091315972426420016291751166975965209295345560294249352044137539313138226667672640022234059145075529837540585212966354191965488235210306627954234847179607378388411068379945634261657818318101947903886215668957911712302488187307460930577978151603020755104901021099920026167870723352473278261777564079868159006767944722958161522413611527096261350821886018397430608998171912050308783743800371503638154621922825341430306718335737501643318750616529030489336604464871285984970110135804204258409630221399898790929670642044625095392074715301598387943570741307891213072267602730460559235287886462250779392241058939347157070100587897360085508588493001333130594000644808546545930041676846982599511247617203424742087638002759976568377825725500754936465822763032622152057415911222661035731849871650747259164539447448554569937845657562325082321313240114525075654964487402031363116195511756050028163642527003215319319682013676764984207043933611470164072191754783005456964428639752691462608845904107104950930704517612634009820126294437518628214937211131384458459017589917410038998506426198952688064532361236826964576416461823431140320245749871550507796638116003868717824168812495428904334973895069138992251701532695938466192707328918770863423085158654640081904162288193800861849509316341576456343122796432687563293747188068086270612813764231701774152586641311851360663671432404557574894214915388474387553944959155849160757384352527378046351412549470609146083556591911914268314725431943360338211800451525904516123320216401761482089991479122888224968647934446371474005582105454924822070615934727467923105278059261112613236255475276219100031412274433335651360996719718535529605335508811583955853678922047774478032698360472118667639634597513962174745751166009784630811959248050162412261359813648707289212666699951062590365549203749546314918826553035467478663530472931321445279443931697151834000862807513917266899263592692430508757249094388267062652529763025391183525466813035818393446668433665456156123017356121147613019024282282976571704288014489910920758625789993192660955384548347119394226461240375354732915875075295093760103539125963915220679538768816752624418950240621911660355537772523042264134116073075817374956195014435555370460951397857835701714927595725156147319538110502309366918937001947185103059460798083493040208622206862034635058165182277411226951810311045264385834879959426230057824087805273165778276358988550225627522639454830955994549742380208798035165944693209985494285161430373156326538548988969718895116232231344503880923709837798055059476590774840935129875770528563828652622573377354857861026419977774122469352451191224980339963471654207488328764345164413846388479146710442348461514476539961318565331046235228206714458053075346159696028394096892518330377062565565767543586603411083426921541206518697346831029261226292329273837916157548445555809273220485009477210661626129821008395322238737477795413969682405405437365600522768092908367787140857415625598682653556769529487631399184026194323834488252991057683223598185133641756071233212826790139876212640844317397108598401679792746848275757500423394551558603708949731272913335891688194492507627357600372440956695318577531863859499885384854491478040384040827889025403142200526876090465486695828094193603083897403416733318109089437146174370513627062659573227206486116681415561038461445443467542877544243775340952257318230881840455509207157764431900461846488458840564507873755083611231767255276160284409818804013544173677204512449118623514218468180134133109726646675369437671174227772511964731593669345781830864762450641009749132401924586956982365356055782777668673636578565738889324000128972553690632336448590875647770994663167682655979562568507289654427907702075428179836091289046731886507414768167600271804494074645041927922347529611162001255387832969514555307205862524568344345903049509262219562717629644955898419748625830715423274997116713956710806664797653722542512372496407963025852206920065992866762554594336508583917062408619041485346385520596594619728928610127584250610715543190525391479477976875140423397865695495534914902137165046653802286609891355480681984086608158544441204396927517292638975347666868718448997949265574104434353115942214491453945319910100816896204433217422351989270746622369204163150716304736249032682764447217287960569444610492316885272142835604187990424870462326671763731159293493796891466571907405202395004287274268877393971718954180702060949494136720522938862161672977745185759556712933326969078721101293959195179229637300853528068634843561082398150068109954950508182242547671306703303198517636875740119971395105616041795141374279218425639078216136413139770304044679772121741222828784831607148878463564304330106846799282172032631311252524376206893573909711204238708421226936398971543424166253983988732607395950749658762795695122753200940765078025468680895419017783786314929807291575215785126578049766360713499132352484238548082225693488757201984735720736448167700480388169574773628416822187286739374649860818385290117051183121094654269921879496613568873923503391140322882904164816585343657404638121260040392336241461529019342440300469035396421989724432294195744975254099991006015427889133567577899693186489160436691500833920996174893213859948405759332894822931186607244083409694890655421438242303509441683674239668839245684069913264098211672514418482688635747644378300882567971454391757710531127681741513763963801968811982891357699128265421560845411737680416589126362477904566034565566703166804471516673184112612899752350475585944789945702937168505321509807558196965693362587849060115893545477894950629009855424822725280673824123937067892056827675296192341025090816206058753138570872748506871588449760033282651810138181141812463005994814805984466031233902510547202735556257720687717995940517525912553043763952126425301967481166335931283015869475619426680250193589650163381525961002338959909062115478643581715048278587588339171262326706539408012517456835191597980992880630272357199654638847396582822166924888737043917465142791759088837976680205538185646001397088055490221945306505319481980197465497516826791250494345462489115908848309986844879385805278481155128835368640873288203186641883930082497441026034878254509078748941449095468818116259220383030228574527060537287003910184206204805028505189095841033651975230599700939816143875367419835210356613417625807539168413463110080127426440755589388128295861125669192433189108003981080760165924000927810116825774710441564661571759165297322945475389482266150288878446903159997138538277240841848499756881639741051975422207320520693389226658204219792529183828352074132221455495280485190877616556904689880647367460476988228840085040647709738731301446852436996888649499461914152350532563577549117077037677225675631211474378357378217661032874646239007452677052187827978690699221902866747939444146964847633943811970075609058523111635923722251279383485280847115443429879322009716926923239766697721571042891469111522856211433031514519876863670347314754863052451906582827341571925556972605996830136343716461406715431292706086860403413218775833221673619132923059287340557258990906935061726549962481281526261307344433821903964319952493080070593509001515536141337707865494987657443224946143088061170795704066455038784472788850713500495205293507541158341440252140622298115664177891320246702083963422582351681017596001670486141342897545780337599123560182978300364117461968928571156567753532430496615531630246338632354213322867730105139877801698800553921347289197027935883015940281638693910703716178113586335286151129001988335391753301200978264950952980171269115126830340860328647003507634506111181994912772695905839795636174632793024150660321029647664826948345357549319209679325260739441785685546036635148927500177877390874251987497895726545661900555260752522687449135734906052876253108528502091157204461208728832909412164634810868338268710418441570882797971549406853019304192612292563105564799077760099003258289361841279847184791893629326517358851696548469202685155357965756828342157182459483643860789283615439773689040990780391749719386508917625128869614015091226223348390584333584216252877977604873467832763801988640959380332560934004422206124286191347310324756231931728992610539137456062294691551635866287279173718404173320439135850888706573981591198838629597875280836221361590334823873323532260937503747843830338119230914273143503661229711877975304250938738370065257746684781915142536109108578818004862995760676716428381723083555774305474594674141318201553469716028888691572796307166966281411887478912120583212992069472295142480443929104789165847627441642588814584852110099097038450381554894746193788079835074944441187522687621918028100952126549078303121649326569965166724604876865712602881374991206159977859004163030991468592615380611515361032065937088488561621139470642114991242692525206439689696063919905375933525435874848532503993361782987215309202051947637618170196091922778823854501880179271547852913303760352364262758722373383718927941051369715785109532650187383931784406588009065906724602099024738965934408788984109018071260268320520674381109897304425069560306126655822854099321908819261562377172594810860063843774648649657717440593110351543125469066822859062401514311771095112336669415830187719255868637455811923937075523594824214241237325364660922560846012176446565426108793033914286370288270771045967163390506523631227060873458491968639614047032217310524434885903291916057726264078559314135344410448488375486233923311249401407081917840216691929691563781020897898203910890677549601704703645108163752953245489073238676756533448943016166889002157263580481364147919447620990053434368519494231705052653351019805928346712174687628557766939952826368712379340252882036380708411359930967231841462051432740918613821239455783640756763607740515953033101359280309779594587166005470379880018115855032478747910608766903025355378555234903392700291417359931003011051025764737287730954972503635885275468906719680759387958548120248988395890853724574166482573524749771665982122463032788919058417129108175316765453363006777157115737193275355189916479652594063526540014475515624495759212669127738353515516020064694630862093391001391884618535416754911140785648460181477926531555367208896765853344301005317805967049269993515387101181704461222023176984184503876677652597897907128507255016752518211442948332648986564939801480788162632487061358498367155176810254482650527955164134280824125866353109663383877890756459085970006789641159181838963542449944263037556116392579030239840005063740954538192055186968753847399887749225305189235011878445433773823892288830247338603589281224995800888610205505082909048416845142755646264712084286267038550669816065134307047440122094116838137907527025927843572174746981816681978412687063750490347027623187329233746805469964934844943168377138764872833555506261094931802168903005325624527237291788450394585407563455900633983662813125445471927090162057670080478141808144229872667537730637602807983827307894265419219256767733829152401169537259527456723414806984599079761959841133883741325595861888662345102653934648099220025529672910471361309828774142473368568259994531607215739277428316930638617722930170086976334464256025131802778467641195927259449969831224117587852929113234979615798545773449668213978078662908365104365611074301651554977539002032082415671173275400912134173058788445522692706918947753377813219248145244865372390765420857299394437924964130944246240963259565785886399213610218425149092476841777723319073454554311171281982539082795784388679848618956275611154763735671018036996919790197327535938092717195311168735997848508923842954505395095014039891399994405178916120520926374966850922600910255757313116309324678745010175988328878150550003303138739579510050519748941375661834546021378751436964463050281189063168589617480638216932138334629064736650353286245950351467536913989974507220721815074064708093594733230439495692323034055516546221895365373251303749630830979853689340156814876356680946102518942336870105217910620741140643696918489725377298780848916300627869654768381561220620311156044040101242858483840424915167367969327068834680811998385822567793667582910590764343784890607474527083822272138930174806715852170464649004622556000160764855147763079072576961870146345865278529980158667333188745292449695529387205726596089104942647070445898425093473009955691894661530813057913945729384389907529345761646178569793078669800312727132198178745865600071978951872878763788025462492958829770807559205047424273318153982944683640979833809332601442442999358386309701835555819829356825881756903101052855621757697445447472684440484865520531461063579551935052511554067225268009213194650813367730354956644256603811005945312524622086296442731898048326122537347587662369847875837860489096095501242046372303504636910935514553380189456519696597575208222569854118335314166765510152822647537359794910377408004808692240760450743162204206163587085645026573397981215903893094924050649175214620010724624303301404899681229997473955405417508880922539038770972828760763596641065163237502938943942733306884748757924432200081817397523519483120037287996164948977853729497860283536744225463746251833786261401134646216129524134443688765844416746636520740958455009179095083241887913272214876314796254393120269244103901316203751552025059561360396696922592055280422186954506373684861197925754419987413045715119293060670720437635182870021524213169704532053589837639803139903635405248589413742988142430827310147499339976099844526674543594826441442669193479795463215441274333670129341119598871698774280538675135207765788162598826395984001405066013181053193053045855449499688859463018272163251529346685233203262292223060888232534412079275698460748413882386335128280754527728872198253313002567697948795978183029563601332769459539342873805487810203848674178862742377232295264916812632300834262984155707540830814044757739690236577177789163555962443543962279072276325185501837787057458224219438322206136390323670402209394190619328557471573693480129803125090098948415184461473207989489181554790660902800673406738280192059076612544783847293509791472046476320459989050236465129124978545641484937029100746613349765295539674882188085666295064106426258522885155230091947796934534642271465219606538143576945657135305657314286916148382905995760735654341622316428700454488587996909777511075253909509626294309064049030041101177941528725409623760801678073152394953100146170501412047893102332316025649021674795017295266991452899469015598401703284759967622572686504369059849605878899875947308864906684432283398023689407738881275392025889702199602031882040149430754344454664487831334176141844450866115138003952163970336597669998801716184035899705883183729391587016918794306360835016687157267398165109910447270900219162231281154064867079653344554387533678373268978256949912295432927737922390287698423207812794402148422876682985809705946843870754370545070728538958126034786004937827345562306766369487918067493000535131774784122481397916047047485669886189960864062301912406153550287552287810217001149358702370360838760040330236908492798768344533967808402432485290572599289939074733221824260094000828034519967983065723287265499119689870308335816221227589514912720362056667295473360041350605256132333844739217012207541343430500967549440731987449071047035178911351836438322866462036506222947419837709420398455238789701940986098056287483862768298595898849264242744959229929574027677318786245626183394698561187228621460766283565735553386658657705927349113765054586774918747821901426794366386549137386299941090068557152203812017035196505950246440366001957663485804734719754768903571674637868613649685752798476604957741329511633976345847251423470018676196577039044683253436903640735035862798711750195005229058943314830093518170187049040168894139350531517248217938792674530597069586795755303853066461905468450059151859921919292433072086130888379878286825754928058846127206998100972060260237468666021484496989192114144930777954087197151545092344607620629311000333200294285447378151692569771259459726793454314701309305494400866977867620454471237114124051144857440162557338557196482126029379288021199402009263588740179181237043669706257022819377809919828996148152273222757200413432200948778031635564414567071264977618403482737516362677755069054818110432047790961654757287932510119676677271363390230817845541350505241261915795591248642431982472638520335994876958083220649656788502506578949872861027588061564309183862534688042568893402636668644051244387269431246701270072551690895023049558951031635559802136510550732948677386279149975425552993081121444464161160623105691892701359468561474636235018581964778870278558887379198376923907702791977327904126437801725093732905657225662219665008593042267687743938650236613707694477640762035401497329092762640167273296300804007326779893248142780262192546308883024931027745650866481619788234590333565775483579641079097328186875681862430773209989954311291320002922655740790345699122833085042325816057925376995448217108897386954931896058368079761438467071739783452827799603826370985422794642648810973872803908332456296716294914802821361305795423330189549284481859964818951549443666714349887474214403356710464961758518272821055471301485824491506502541302781271752006407681981038172765962230252950699747028334514200383909350209026090485189493880760158635245465228982203510523453169404383289587987483642024559722987674421031820893608439550006828915929032819313209520936223132173614115458766898950331951251505543527760668792441056497542426239296679604142625511393798278540543610452936434289319667443856768711952144647407139269062063485623112774103342525433654264741560769405644801451193960045771478628701799533001216149173309692574347791400389994790459590863271216385345640902047915316385388711668374592476723582817538382550392081511795940773510482752480716331705972537318550494675190202426174570030819519393947210747863095633283062198281366148047754036693526430848390652192767121776621404701816193332824618275130224749696648937125237280006781455964665100107648641118144154390293611098507588603520624976357214985390471201380999347783233952160274839267731451728821227335344475750137007176286875728757050370172956415502441397349668866454600772357664934840079202133865724480716445691714254961172920446132978773498198552582500850149415919465331292283381936483310538694008527771430453565896166284507196092560516382226942176897259327872059977455519160921148084708167745009889737278733429170478951884341395079437983429936048957043722297865825286395931738690985168323324391760855713503921808316182990699250985256167093528424370385805950799654702498188119329677357817479595830546519717254464420171552803310137612581824865131549228636566583713783381934845068943043217627362466245727500335456954559617984363290801124707649270495027314692923436837426395991718471089344384806301204942289535701809650511311130121988420007836287258994885840034809457137039991209391929371868476764348430491593353457325781994676428114643850133970987465676661700410034543560217870268375592277421613567533679077397400147381095361819663940804051973635737382483089361241257128454251336297976990930480627027480874520235559027582900413541600010472736306681591891054013380985122209595946691422662139103270189202824965959900824460895818033398253791297868015426849315144042999532662131275112531545059278472776774444335525918718247248665140578915652354966246675784966465925031118811974745885112187230131700132054747399301540591253988556816413413740411881724111871776744991966179129270599855444229114151363252574107106100496271405842612019351977741443432022841491873284757191541488435658308801054548196312085132663081403152546814198899237834013118179091878721844260641556263846457338378032674225524930017349087302036038420001185198804291920460774442161146900617820440102299845313049935582503853942902399704058336056358279016951178726645451471984730206371463627566142905489784504895480130143554310879855356418168371495532556919891646030583046177176077639238905221116729276306792425923787554963585810545690192906509318739745644827161724202977784136374362821915713167801712682319532212441296232783619044689751224337598289001873049388248579988688645761089508500028145192454081024935760559542966277563311327556118255739049564685428646805974194405652031309983897191461376996768740811246286431949384582395289160775101472683285816566388706688610168741918784608745203736257843351707262643499342815791445709841599998774993780541051637501021619784828117435939270560423674174999899011378786353551592844808483959615246009127646005505627391612966731686251345075038242028090614893061522813079671179294956038269986803741959944083491761421093598029463621642670845232783348958774741265660909203100629701548452052978886287435091565858725414109910000722969213807479151547407838082646778308294621703368049260192356566565144607042099312920914649340989329469147169628915662462465516292864114307884980438310905246480684307795469667867448960634193762753305635239912014282371265953542959024325957007036037806272048372197103287413041013900141823328208653886005222833912045988225592943360195540014519156299528723871543004892997520978377570017392361411374137470186554261168882549982084861293417178681032286509418429497688116039755928382190373245295750222422285352209627916947204396773411599819466590618019693185691666435558027052466598050817722919976976235288062915440441626889113147703407572278185124817046554726212690490613794615069377895716856094893087746522584655335271763837246378663909258616076957612310518162200082063025085990132760047731017015029138097459878941258402762643026872919740444274478921690162072723461494314490202465126641115504054072726530748387833950668602051396765534108374189726760413191167365220383591186503691762469716895029497194611241006655659955074092812410563643690978989503613138793463543235409621240374133993895896127025851777906405337862646945812418090199300591373377055364462310105136461916760514098469132921951324122787030068509354925032828430191963271527877771336831824671953121834692466118757802514431098695518810348641520248248332623239618476094975376349006099864036708244747795592239394248960021302952110945770778202317908428965359617134633700229951162517710852833807919367736048013093980891457457960699690795143109762871992045402177106734844250668176817312173059933765478536336664061314212151736819503740057348370537992548722495775233767880361367829879230814209825809819303226699492951331765805271521260635733050960413539713539239093610676348203766757283422615565116294642588978210057347943617212141918013108412865154984091287092418578669484991035962064135707215023783354225473109607109707539330232506613241680850153351269183105676013191944157941972314677129703579161784770969230725905589271938272885942912394965847255513346882394270525838090627880754168883727496141306212670333300647023218313724517286304859534031981755427709664915046779410503671873176969128273755201451737387218111916117768943578357405021488524488819749407910639378394216716650699338753410672551648796650901353793166831911464925788869245444828800843888290137895051382079839005833094025086351775812599824964753992465092846909932856633386437428483059186274827381950530779522664767907627338963289745681983088097131073590634523632251909408094881856410894334261309736074378067512716767210718772652334759562529295619063279779820852951687388521782385821924808836413660590439987986413724908766250174602618754620364516878230565351221944667015905887770661229946969657046060444499126320800456875818071245182148412924083311328535776077827730248279174649918272629517614064549651931256592467367860640224228379081020774451545515317458567989629490264940513405186801322676809145413253598468033833929633138776581047828510612843842821001706903538915037822549883422578064619530453421826425515911508894093449731324434760508434744857712733052884731101454749725831409763853897457898395512987364568923601140148492941548295888059643150525017175909093047706881388326344109941896701518065975031011380798108329101741890401486338263435332226763614291317811550709253785224667570853024807277499540370470411256977494342997508510655884178583317553299656426959119403141512215681979766040441959562916775132120526451590170673490486742705272307880851011861146374529761681169170293403406294026220600735252831501507621813666343316524439047897494906343317460632411017248345189226052049047680570510246735709309788036192423401097717294113475360151171811709361817208220737419307844046541458175658070901876831396742329982357895701252050915924229757020252840965000652866246223772326632268365547326127213655391641986742010130344890509472382260266332926336338473856406917592402396602550367105903984766768872292864033099913197796824264626304850537682874834742100747865129778664883382538148603299049073072523720868346109414510800357819535877259396177988789701375239349021193485914201325846198344794205134767214528191019354128779679757564247386389363656226437435771974848748038225244867283291870354599612973292603875970691111832166354388191389059223770724604656473148544097631867638064127464255256391995572245607972710886702152779577980517694077861796095340690905619598245660824351420534027237321739682481999777463449618205294718489134766762496733171180839475599643958217352249303540506096532967275519759569180958052232734656935710654612175330527066112176264503525236777577244731952975806309781005835325959340547267672950915563807190540894118919669523663242312059073398109266843768873413653129503253790864299697437619417893556513704599365951376444740104306848040573221140729516408913623758740927039758162763822587688667953592890204689951262322443797753388224984623933705517996367101210550069737516974080948173344482671555888982811067855580491607244057188353128625212962612434380938283800020527331042211614040682637008449777013605756599072532660591785604047585261857004804438300441525537992295292830240660062801198969606643429613232803462580308530231987816568144886676006824065875973789046884709270925676865202755578856849953706308256010419427111395478469404119513131497892866217229587400274468697445814066448478043116329264256463725865375394222485233705813781325217947275087813666665233381010114581417092568180655163959445985783629398277978020814843522462665587708801187422662329966934769059362503084871366510750172278800269438665528884937504870213107109802176816439533959718929033023317218596152714596932438905151497826573757344832269052197565280817074112667492229862693793420556517480234620075294253953717693751711798573920009749096624212731980836951362889231894936322991425578083375092790595414051594492156855122178220895648837760598714007592084772824608599881500298343203282420401108863125084568891183251458039509786873485682364335190122587278279182887325549709528625810967168754267311595689366602876484219712293277627105565309160907322520960918602095469958213025641996257243102704746861069899521540652719615148856474999335840733824983801024812187888061659138256792132692270181471003974100324471632024658559079331368975321342741574647586538981698670932925245340106312531535458099135496285273628334347311868973246157543833960076276751212655627825066053534372995306767461726141416321009365491911722941283315567755053085987309268778101166336270234016771433448138563849208763298999492544903510881602047956186984143107483711628301512757297634689459575070333643643562647863069058630722788837973118702844206700497923868836477172773757573640444155996719916890390086064497643663189774673645250806719566475614302138033191058313655205116001796356791068618449283384282202996582421255157572045839221817539136000406674837763883359447079800912092144222447284511458903560248902886199702021513732374517892535666898539467399867892705748737373050012203240862073211179629265041531182283616981648902558087504443556160180032598961295973101453455832650330499768014753578931141800120685304972661830802901117197971994748344075779479579664438789114864787108826457641155732974587301805475892242326043557460537253287784717869388144745235603887634110845463633122776613242253207709953828111129938463337201951798180430187753828053337929604994796998336603365469493202174425920950007304797428749536988693478549551988398907275507643689984058008872692225428369572332956628510448557808665581250600144346124955362358338501641745405279337916941176351559875019293455986883892294790852638743534521330890372992939531062602175926216708053362981128152769681958185634122207359414994733229441761256659164378684707337289158101399419676961438991306336687012343214485368536196539252360318529822735444956251446095010680526734228765918649041048583909212965686875293403633405353940789027477399418213605811970249197386822695945262173317925112405427580433523775586437173172810661512888545608664146438140038116015035364545175237633112077019362564633484305900924155471138782237368652986527165832902711962044290455088742320100525466005050325484046611145858642478135114539424750596004505453594408773184539156777156949838009442408740219821157845715891243625225795964609836990447177932256079277585705597600122112829697214678749039757339694977842042399469404970427543934322404944560440812635681043851086696987966886887657341811223234399726392230045287789839463899449008147746222418332266002353767280009235241210630325262224814636104519459635747091291547618269011261534786654467898930486460245454547777274757291071502795937312403905611885192500194517181362963292069602088990606076108249179049742538357310250379775812009681117145582119443206464765901173901361602468455615024969445621830882008632866225920888438234048490495790227825889900168720372285282849353203006519365970958110592026110031679350421281006011221367605370954113926239390243713470334581357088646301287810362430728473183897528393742118146608114262647083350362453785393235849462610457822956676961594416622409800340248666339399922742542038734521280647260814757849748733700114016236425357438918870264731847351203055768407390517397029572789527390600414880166875116435481120990001376440194465140554911671266406581551209509078200012592642815697008097525302239734354391546753852001351925728372749777653606477057281517253795023815864837489971048092667866148925064920614541517324880873230326402952551678153150080678859771286697606697318751430899198832524246867539009455738450391536300673628557867589444028068642438480302382871367885046676790734053678742330578265853377445117622440584464559388354089724842162889639785066782656797437110567655340770325539789022837884505565591004546937855663802762641995464072368155846157538259422450579279973369451455011578098732183045082315607535599506575557030297399311870475818946206391647120489762368744968675407600202569759846360057157806471876906831780081693619710200996033904496711785587615725680177307874108800641107613129640154750262363277707168484354852545595338042299792041645043533280296171906499125046060815922966714213825898919644838215655552559999536466710755024409993208238720419346155150438621313690118535164997137658750593124178045265471925453626252703203432217376549292523379722408719173378493462960044265968601407584313124699122244393580059821589054775881661148151263039448255158099685137379508312031506250986120542545004669100439054939049089550159813854339116316107479649098196588811061938224105943620904022394038662999928364816392360138402163968311758102231764894523060297382593979408688164914102770275526261474360836551270863952252523345162081660563399052367677142212043854602253055420531496442200028156703815268412844099879741518232024582826292244012584285330696988200837029768696015485932169201660609658240400588343424084173202613174779106543714005913877847588713182680567489928839444411526141419887840426685597258718569266034839338498247571487535673418256208552668100893658884476555685743341027620505008413114007640828586704615995142760775411973479550924043904760060870501870850603126194512378218887511956681004978297548622714776525459883345591324732012793568201442281826089534803410947992916315591975242929674514477817163761689623300470197653891721139907402409875411326878332152683915991146222248719901048934089693827644947328517328722968507445985860022468307192146868160670537497375494439776786041670133992534202557154351916808831223489351773667003854696526106859766470618328848623717172116165679837861124648691302025083647167138192298228050840195960678568709130148887429746081210981100164171823671002340909494400879374786998879639973940019168995277462516927651659265272516769180583624352992142465216574174042787772207919506752435038395052080987102717015759981122445955743950941680345294039994162341805367989065811883250438016657379615397053389936699130207005441872226669226781580949111831728897541389010119025593621629965145141686063761846088863803367649613804519831639238918301621869843880990863422481182059379891428193351465354495052525804010852905305102240603330006584535055416507992718044568613314213977959214355351330786176101822199865299133051811780416301313850517429657373029765460496273080077661822001441920636189833270855844420339957389346397916650784448073946170335657619854617233527089193020370274469356915073090220114575622668755170485535882517438893121809890990809139291772804250277838565776572610655839061556313879486371197232122679975461796808641238705237198569025165644636247755124361492835415567090013779175067283447168946272256764487007303704118712960200957238882095180671269002537391561570733709752860363830720463204237888187582754903378804118804535235174929955228057819194973142621912644859333114087213390624165156051797914826151153646592446294924688419497799211592195793860964906559016330422568110759505931919011702766895218249951999645368859376957894599344332066355867427617956771428563164942692863309890502464704530982481596948354670906324733946877495593061169069243633320562462311282342193822495128812264982762709668761690796742664350882854205084055219375439441075783052546883778279640176393888277162864331708881417085840008592724845526711927053336769632123330082991002691996849055028706076290067471122486726121162877435086915517715849497014889906964233759800076219165043130678427010588392457279585647358661221112834505134693941890594283011866246495277424353802532790347356798631268397406931190736504039718429053619709576252467760916041793909189712162560402654974373096009877379324898031258597774567127328727208162914959702112666974116234701849762497568640178055716624498454633058920879973121096742350210696463225185968932237309119729930179103788826544123230422185627464736666671146007536461505174755201363596003455578390408487213506670456499145765233276632989929158608211285301441626821034815505502334936902064269519691571243508236870620554486839086421868314843673245987532469514416834550459830823758351841575068347692709860085736316285055535513673660016959807728524548255087070811376465460356331788794747651662405306694778718132562944531393570864022891732818875736304988271546018847620632358150469789224149847629375393832733624716585031344462623594194276501538290679075758977161646504153164966330521167595879010866098082221015440347071724408161130782829984584135102476670542298372349515049613470955595915172885276561132894007167879646438822385043938428450707166320841696582772536903335876448796209306860590268688521243935068045804018460622895174310059070670956551601575495062776292937788426978826389122603296249428645879520888684305157442211865594143266779269001929249412737731894206674555160954681244395727610233905831002010969949183074541890857180257833253533313102488203695118883204630769380936616168811503007967251303575765757581601546436511382742956273549889460953036730938870563259531135261734969862527605872146607333989946867736299752879047765814111242382800231671089163196805943674492489124988321700080990653332551973677697561329685892682028610387450239451672962660709653259063647362768212688290782445974646621934875797694650590361425956086469421709340775731735256546947776497316315685347476672781525810145119869401474617568892917271272990885283345866129342147789748336967198185148312109537527455798404076641563862880526871693119065087409593932613798516579807502362842750946377998308214544532634575675786643452815943233394407289369823327061999621225860638512636823710029328026638894725379810366718998858312638397067068538747188419360531953212978215549361833925662789988845596919007495353522685430473039714005527118916458360428112511911437275671490165855363706847402980333873303544886430730256065189776384814591200575999459928071426895087691256993866871096903804458397177021845261172184068121105370188776136894056049647328565370396609311843354179560803775040755252457213730936720998219424973244692405949310939789568194549894059879425592499666291801476977269371889973449385215738426538488953836488414869448969820555582329927553701323079609096210010704184187765766756952471646051401870637875846428280673949548794197334931665622097291777886195493550579357755672771922044811852524132894081774359837056013078730599010191463718844773278420913905069712558529662354511589839929081620213904785445126555193613513160495279458589848998018014707581527253654059926704707478391597713942827781888433214346786419004508217068600407329953615164353142649848895460625439477947714204553311906509360511368815405917548789568571376376059520018403106245119112284402457754384259471105049859456007191198970726554652531200906049816321074799365113529391313747295798743359504879003043342558762238987691251397545394576337041715123096295700502542108404408914251946773340370116500340447172842241565110800660186911794856533770221285628267138391959639580441577474514390982745492056221983855115321970577151288617876447507646266140482787368464241121597463587833393545209015245192974347060577757479410288110638004894992496379488100544911051349378091893052055161211897968217928330559463557429037513600891986488470175743141949916997328936577118499274214922114396615718631140166123089156469382492597079866245152244946182222743442652863950424224786383665139536338486510348083340404928554811524703194592864573254761123104909890273232045424438458320234156316204732422495976813849802921030629837992554889748555396753245454916463197195857873449504805254817872182766056172249398461484716243361620953487128346183912637246240661470842610772880351871097278433276299685076925287069506440267511422106350769732981653581674765041295683951321903055339625554607701052598249568480697748055539548058852121096708474939740614960922688168670896700414087096790144682305248437555884728197953929922470701813662464083626773957396416384259490520566332638372973195215707385134697681062871740922810276498508774340670510611175217446832636262109715115707708024273483159978087911699142869183892937820739266258422786018095692370488197248870965234097306178007794419345024533985520989114633387338994720187514344658633487317024395941327483490700744246242912078523472593470481311937471581812062015336898851285967251478578364100835389759235483732824554386138693837832480414888870985926557321836468111196678540719630321470853991444298529720532668967406794892991952448872452274893449350167125871776295520482421489454100116746356482356653635834517796582629872308224265032428966647898148783248237718614297961916946267175696387206636979315828435319444898433416620711105174290712585090432058641427462125925583529022886264275346285758028862203715640122840587686358314219420371535694537219200386524159252397834081121738863638872532889254586534633590847980938530844235477153852247506024637328668024230178405314092939609954360328058540689544725825169073040645905171186972936888984576480252220490848873339463202454196418929363415161268357751542387556834167859113825004505972580116323764856593235297526384039352623897240280434835950479287474452091830798790801216978598418155140538081185515898864085387879160545615569555498885991593546931874924951334965682203768790231622281033520281292825472360532042624151563850271939220115603646531278986192416289801883188599107457134788559450636232648710762909448112244081091542521673400230820192443073838504500079943575075865344247588074050275412761537697845789700338807037046187815178870433266614970118812966580365393205466209018604921194068681325737748605194085980316374627629710416574422460528551986238029546202118503778407109344190207338609625772304573359973007029650584091833656156661185062178374609050184290907231236901705614875906920168535242203753751379522726258530704798535891287677137727911031443507810435813629696315181043349369615994603235196833487136899686068539915876509716136496217746406233540727105871284159724863554781445501016095911085388644354100041943177086422004253018125531212129343674180763707931054238660187736531671707936997720822187212640442060935353656943615307775901463221574806765849865623671332150094497540245527299085273423222859469242162131377802445661721809021118180993857094867304334200861003446021297375057096683607522746405422982681314290339950788759327173154389935621831191340816943891528960559019622302648591754275575785259255663457466016942841612912351931558543171118527015434168013426403971364469380567104530279119958804141502693443482435274091309103000146093629163351728009574465087862515022083352797177001453870788141361620501105030639307677032507326343245746028582221736605329999975280496254682768026450622186416663180789773938637955934821267983852312270271455516647075816516585245567127920096228275763584849504100209217057110488859287723363307356362253225001524152797561201303786067192467964035592903477214782830625342099350637989752843824510601045631297464986777788050425326634693783038674917538079029299980573065315894095333209733080164548396567356344241495117929728787476816920140637904128096893371783422067731447615593542848924639533059802019624238625614726678320458087380959587203247003276416745887230746567791625952107491149893539029478494667698825733696336567427845051028922251794573032467168453195734671792141174113319021994254473071307346278525090250114455063470421479630106567583031696462224625815855312077571381907520501440415504476090782313803945810226178424222310815465157021119376949897403183125346945567459424455868779739884925582635036403529931543071866720611627009204312885793133699645990757026661442758754137047791372479183802020708001524599058955792318207365414672589842595881140416712747842024100309137563824299470811392940725852279138314056716942626529337021496672969766164241076814463501936368171780354730542447155747781064519054828926481354999900767388909768419732031369346294297432801326429142053285428499685280658225485608776497239974028468805131308379491738525324155265603017428072715546917554977453325761742736864987305883840701927204368904540095044400231447499529953517873297669878270391521724398906286122686486128875467191324406985152715774376283392318737257678590894202502701762480894525225058390908833391991800055984738608441545688341843757248735112601351937875155361983350231677796306252034151802451205162434767501266861808757877141248566972178227293435497980256907687312301086607940013626041985423695259202288023256858918461241063951969389487851656393780150930932270205292297831338950244916692300968741855175734200426133830579146166727101369279376706151284383132591660139516609904641235387619102902663806718162797954618857193120634494968896737841419381361577227126622367774711375607392983802981396335685466813667693822414187418538823633641092466088027213976149682259944112055994152469502811967993480983067360428095971477354375716410402682840224677123539801538465229425661115658351980093477582905838428881525156205894203893952352516563988400958765711647393966363031344179041117033037072770509206598867665372930224377838043376648654823654850982694287867122017509895840065528691034609943582815191449705008476263218829464569369918645546926442339154172223018100536362877928760756206591480706945745699760422241219875298293083196601312999661854152055238929847696434974701547027706951548626254424726081127763236562654206621484010865694707601042210699074188529897227784584112494416480565320914011235304896047913962246363590454787615363340758338115384678350111024178246426857175625772175155290792828062667584661590993855092436551324344609875357901325918173051884763633459317699652711943050171661739654645017217356058279842886052880499701741942060759028417116330798004290394940451443310165933941671592150766631348593301524435331538748300311969342163448929353538759105356616684906818999315424565866136690237541493237115041244378787418923309538129491418676421557032927646452773729177144440354059010188892416438766460110939873789846166882982813267067449530282389490900475562200364457895480881854147002087493276553127249648416584701295837344126163530984237376664563551104264068343858586727122728592596669871640919784693897026427640087582868654341483919739927941807186396026923152015382966692141241921690257093575551642214069724567367871936965668086908824539067204162865682067467330873876669790499545407290351862421739201447667702887158917417404512629374991859314055567644860311990395298548684335929286790342806515571227669447739965077621781434024951303487889353979783488967645242930850970353070321658903619083516936675760458109100934684643589259280688110611816488596781917009421569997995403898333500440226003076723119178950635504438106724731934089209801509896118609964968458814395585183302701824212583910349358762652756740458923823221109423134626928335271849795635897541878806473059330915708716191097842310768998356551156655612822777743236185164974392284676726764945124461407608799190553987942725003620295553064878158340164431180415132271675945876530779398361250575667382685410055582026169227944364173132400292796778947472196016933188010668318480674831653662228398010819313628857597716644828548160247606767401526024294812133048066030482976908438973287703532875372802653736819654337324932106029365147657259006287138733692821166090181563988498018920339768400462098441573619464098615044518201397830739495008423340189754695163486261909689786921163404148406702812593865025107224822882650054116124915697286947479228635127645859859262295096298504823659439219828525503245439505993276861353877112243753527243105587809267060297821035195768098338371801160945216933816640141306535585813636385940806460251551750811502578616910885470036000995264657597419717894726656718581117578616842088757776332614312921882838037960597089905102646186645161567837571831720858813675238005155285122032129521946005199071331341579131278815542857780376085715219779916947429774750867545621755215705297166805151001095287867166050047209096097864643634263690642713908930834594865467072187396002009602946504834152274012747817894880531377085349714781751422744840834716002650410319312937925236455922389008639428844098776331697356490754659841995822023518716131345154797425848188811114330377460889505585081350430595851072289320957957790949963012993200381219860515546720271521980610275444458079294097531583746379522072912446096879178002263277770760224372957882431863263427306856090970621932878880447443493967036110501454363823280625055766578345515064850305947623786031884020120034026983692691741142452812963105974159793084315243197743291147884553594032585212924632621643650243170935907474486085916439018763710857382902803898514505007399267481718204919558728400999784672530158783550727454825536233698233386992507536528721996313717599096074217612915495913662212329998366886038037891817274508396675645923476509092462297390144341119949016586126598574795234821020530738707670214063904954065557038569891866089782818557977988990627280006541861259095949247213633034379494725618856778313607560986187145818508363391407826447388123969702169079770001128633807081824835886036180744307975648199176320500605189413539688610318957376869350359244166425577665905306207078984731903440189813624968399875691063869524611038882187739304605202031289296853885179716447662478366982786723865789212849488930274138069555364835658904449465181171393388792102259574966444905871303136898280932528567701013070328431787168153166567682186875238779604297331076045554404123054562089104415705616997032714268297365919660076816333806500513618942940849495393852758860461533815825043731511792002149017439849183331586111709360740402533711296243926076359090018791271769830708414214561197907280889238563876581785493893415367517401904506802868175251135662289544069470341565343703599878158286802598061745061116247992510271343646142310022624082809895743058098162033864249237056197425087563286851960863251422849018262952665328398497702902137276766570932346309118825301526486502344697093049069360233672348817418032825651849962115199132675373089946370950111066158565408796638056700866973945015453774593480526131102523348212652006894240010532642168817586370222613459733075219466924043992423475923397514275104176248658826188848998529361455346518293694257050393539237415474224844557861382240954547309155750049170638619253930098994288874457990552091029679305699621519215615691302009776820668519526549861288820765344638856928757681325620639275892682081701983814489357883478836899003678585635548525156350829046978757047136884116567571429042679734432003539990581596374439585812345744153441767707819064275198073374928079757080929707009706581624618995197055549144889738990495377267417820546192789126332060459409841093255595408598751504286210046039321521004708087567587811018789334467735136302147120215590231867255149998805475860743871609756562595578683310112305814055259612745515310428282490568130578880109589941965616628463179534164516749825643269410902382303951048833290953698709756750922601632602732491308944966961576237498171267242084120698419884086794595740297139649723380689992099244030616237059037242191855997557865848867927351635039770449253729819544148941012327477046103681768951046124260559222806238540466190859918276860016116895106751898066622407228521193019604935211352881221205577958015839440277605122145091840692878713035179165153997388734626451419804452034353131988336229361302878060342597348807581706822928326160481879557430118451773807342482912762034770308566846761580998218071649495340756719059464324046677185783924582350279852664140896187356606300302441019654713824982552782717308606937140982187928543194688345289095339685597726791230450716147652069617550719996325686150155591666790552623954135030092196127827569741735986380802070503374044526107016874574222406277936056222628943840699285825474910742613918736989288213524785293743235829686943197602152405385761290885958355871756243217124157576368695193334852860025575346157209142743103524120451537060582403292661650501349228796028423519089144983111118853757834179512922625351415165001878682689186155502495685666115690406755316517012493404979791820670004823794295641663781109415075969159026668727459549302097445525451896260573807445982177887675116005750608280485971290951267531062563242335574767281655541878114267147552855043786328569701222978467684981972367834217071034163826635730692310892669820296387316458936049349111354608963147475939549734555585116305148067058901284187758557513214509308118725915222533674841702936838771824332195362297584342917822013068489660432183461018446303763097533615067182654667781958364289679174699992869614514433093896010816413988704672550712187518628219056336747189116192173074769319167848903833427892982812774261510699986602670508321674009422371151305811868704272912077348812018210283134262691641176537541021604097867189061226032277120849134013715477000935863884124781398287462307606796114540534254736089017623720321263435084974430485238283298448635411373819036042440780294191584956907731364644882500487864797489126078477100576314012053432774543088750848522917106818522022583031212726917398395390158595077130570455202475055881564095312722199693049138202303089658921641562480078214166848756595990288640917405030908364945537418506968478819649675513045316117560781619757488055598280849821101023206588890611868283027300102612695311699548592210914358262024208448190611333114732547524224841143113707944902317483881229368847206067752421683450460853694941056628697841609861954051819565978559273885400470658348584171516759912037178618549119930249250662388608295100259991106464025273019882682508741788913521951871671478284738661046525887633984259365320665227883199895807298201232808773480902053874709972133246823644020381408682566388168433174856128221331053914469319530701135724011101106347016771241416041253140871316498997797037662328977204352359208165394131984300242888239387451873981837619678229127976322125991661560910232719527185538044291908519185413168265847896584917668222661618114322744963201753991431705450579881702024462402656967387596211795331953786245171707998478652057581979508169614811367255678742878510302774215180707326743011917575177753951397433946374751219720393746992622972845761396760645312323443718685926451242552117601712804484199391887337092891262249005672132692683594497348802251672104333843418991988349415858607559933308217522087276554564567751017569809963911515543987063542178086546420878000165075719041052749340000249915774575283661562047613088396421504198487680047858772801953090272565464080336248700054407871576464705177600337354756734636086570287669293261212098478611166385765378238894161636840656471411963171873344622148016119871432578745543579569091265952591169445932880750166458917891459425656926039316223775134824003778144141242364622464026460594269794870973362401893658478440862294457049232118412587973939169422533008721810102373333915158684068848299510036394701709123839466883067934665718298495280305436991251202799111778149106056874264873741301453602614938932334572778969961816707429250314715298363484862540530354515982751848581600800765678145411422955324253918529751926068892980174028403827137663817081366036805504015675069958352913309917531702186367855448183364688115334916003720906446422089730906895756965424818489946921851715586105196659649003080999713321407672951458484823362172732837811977859516138754132966075097458552078331009941636629273476840516992598191249827831832847388562887070954338682022845991854336725157532283215519327116094716376323744613983895684824328944622214286251586930208997550788300131513801082421564141237377433049389161714354918715357586486182008442819743129756564753519684632356791031202458121154628012952772999267065824104472985466908883894314537092041384257704310244675420676757640814086530833061901611623520487060603592376978552419654291804420308767129531925833080505185344932423809098254193102499097257849353375654517921492290882808426518804092313862262284534684300761082908420437832242795328655333878730056214185824757731918495776176531897229487841163284873639817927316622465093339136938138667169125845484090265565233677754325091910292624660048813338231949406499781969560748777099014358985962097918982403288712559858153432030975209270877353530798401983341590390723682127564479967314671181814865909538756887067516528226182972866039059890181546140166055256373384354809060983732675875067066631260890363527811392870943070286046708880062565377367945465331595015951795782456564708307170623865100550943152190373282788818666942011590812696153388974737827769130774369049372393892269545434143211371269145816382255968149304078314856711145402700438362837697599764619280379639106774967083096205666708786456551741369912001945783021994450375715398676956869261245182978619710360389301606256901217024164112487679636881527336057513484715435241176299775237416881882992528547856777100781975464795692005020645212776234825447475642499884069979902804667537538960967469417148131220753406985792865046652012271013547589295363718714136567874974679103560709215929353285382042610517212298667898638790865985614630920219532834708891124388782498243183562579474880835048060764218481024796089320359960094729034673333095374080935240262151963076150407687088636893719009592126156523131428586875329878787812374301601389668027705391205717062417621147358345741895930256088560203410742185317433920230531061943684614221995223212944395984985559171259867067853676500587785160436979968941246965076793587057065782513346980432351010918646130865418442887477886254820870526938237988833366462244468181637472247955922990364359751913986978613649672260513501569945624728969829069142347864090006044043036855233840492606068894438084761656974810823858994315578764958172065851861691089372346060546134936928492262674037190488634557286423361660202504285176729943551748461039430021832764019061285626896233067892485314503257195105023123763807522206364514581587074114975794455895490700628147790622285844112655179587575243228633632022937796940023859927343397297328736356821888960616049776894654302630534188535009758415933906383697278911235556679578787999713020933827523068604304518549563629433375338252060954574384936615529945619424080776468079514437559610285351228906942358247351817269350969196372715612030003371626387842306772937779174417313004908420647953526320739792809240099061627362274781088638277219412706757049373279897544761243522442110477296033941772888533498769049014566565176158406046801167847893341647395719092449889115246597681469311300310188773689420785154592873463337754787851081848767224238281545595240669588034082564739726225435957620293090824747061360154918658591251581451281876012668088482358455045748082567563169873992666269353101491137525675772875119889765663440728143841261059149320348101653531782742730682208549302526312932494819677265429863257301565045173419408467342308405219909838969859161782971644489354529135676736283933498429606856094210865426684339269273253024976824390333810885039377875743211840771793165311886550690112059638340415652612568709576435123676234408380948192175046507717145252918339368149034092344926470223257269152108014030214229753903570735943537469962283598151810139566609431253299705752432605076659467395345653792553494441763111003525410379015127171992126657823715229021118477028815368974107527363214361597708928807109353917045445631980744823064715525249028349685508530705945039216385587052664568690214678220556938109570733974766797640139232149906485420969888459327163939349286737624377438185618962133120394922532301988102326797777405622957526499110078886784423893177393722089765932127198897997617377747038126623420089000475077464324432218081687061240897097399807968912182467134160453031067397065546341429128991852319983297649224623913569350071882778678807138429543895524756833514965145694204965914094374455066960848265141134499142461633417269681144137251785179307347735051790608026919254401049434603152545497217366646750203404433311953987257100361273720439290206189344722005917770333256131062504987551150481735251568842425236056039898231810583196110523843861901106664709265609054847481915765799890011551137096664576697254346391450738883880223107793487264672050102369464422152432204298931547043268428237732211155875651957973964436500016756550420119345875391992928676032213016825030414911192888866982994380482414210011317833374942975461605491491305147389053513382317375474523982158417203037498937503868024458632028946279686305645671808457220102834710362545718557780166485901975692980058124238717066108887332733267339529913985202156556731609516609477905232561959499337836081540888671624529101876790705008428338029110233579712301370622033232798471061749055471010468572645103494450275063120299216849204959039075330424528695386079717196070670906644833886062541527486401836477744577325499853567281928680118597195148651436015788996088885927440644789090485554324743801182175898209032015468546910622648414479261292894284057708679059365594333655106179416120776048467357575501176445221349820974694771280729744007939684686943044409899286131795546580142811525948304492669674850071262330759528100321785839267399194727814025970349709047596763511767129422877723381044157161645536430240314793498548846865400180521120217961470647750473651910224391453133112351142954133348080635786735673105975314386775243904399430819390960551316547865702235893989327854039189168010195657025622771842347530145082860103961817058069859584869305118848235362973415080775388338599244522481774177374622800548826190516048507480997536140770674486599612054354608445072389874472119039078894906583056896604354826738654013730567761017506951946055539129833544648562071953911240798706861799630502563322673879085494604313575559566160861041232368330700367260715906097944194378892392161518724481098453727630002495382840050122507130992318797287626838845999837575009316926691779304709598017956533905105934040019010235637553787940669139758924029758791714176869493095678648772216667999015557991259180570189586314948702923648910563235672557711724211565137318095174496936631360977542224576044033392298467496965411897750153596576512331537600110869771724682434364415593760338521514142496009622673413817196710038821144431576271035793655273565402076811096907224875046171233477986236688930793096129099219053050342809315631206720514836690972673972134748637616301382574863669770305042489400852121848794204742572386972480981661945784153857985564998246034443872398624985498553524284109506758797858099124367532679841731443946335934782899224593567827039035374676957461969876311360934857272218452210263019054835497584802880399345148196575321737981431994404038270888287206330805833612740510807270750031315027214271586882513636155542127697935806722914477745471841521904281971145326245266467174412262231722413570524522954068290540016228771058479612470838376734331013641290144435233296802038047527180502168836369514631196248439012250231157990722961246458038184446374104506307326475321435347937289835828463612216035365531826911197844384010707155561775020019320439531221871645350593438959067800373897521621998793344553582748091227774260714399333544649470593408762509258571682516384972340693751500636993434287481011716115528855041121481513725545261566068502922269039016306066182867486976792867996955647768075094548813172792136985368239743467240071353194296996044518712752899985087259625759025269584433064464292940443599143401367604605443690313016761583839593066030055173206064514732433087191092204966117316281648462934577378539382535753029260253233993993934042747182021210804611006564312418573924981122298713275826756034660896494101658762042589819297760323611429847698679550438905448932697737294103226263890479160615399973744030024320211730320061738761063402173098320886802938705026723080169041950937586293719331240459468152760696066413636058285063260173850284939141984984162215306677106274675623359075125178804900901505336015324414731421749445261873506583953207802184159212717993261380795973970025468687682983729870931465160397119484023113307550190906659688252562237678381180036883305372000269409944135383575630414625502262996985904523158218039405287300162821307379318456239897256658807695366908908013785846953910642267318738786172374279439028383029901913264365549301309094839750563865812620569092660472278094371363117423823921060820285311992854997787829791663211046078999750423443671023641932698671755232764077368045380158682665902414687151124677230695104426935190768304207009236712513431323168249106059572372675845012787851801085472509907769982468183079527966904227951810736853031438039799198168013174681373330701185836954632786513888549210292193416480480875319634410984053217102617100499090546879840049399966703364279539412472395275594599300540532085306245555974299230845848637867038120588560183705369349957910568325854270783286642359620727029504787108510510827253084216046508674370713176279958644985946224379139046148232246110781074839164978042175056503054398912415176812568032704153370600554309193751103585822010416483885362514770657546126953840579617294543118806322286013884748825344684893902799587063162939723977847186631599526384273218769639930925448437526803367877896997848395235467970491101400026950304176831417525794920601416754886717166061206164608925537417611218396834640797041226215895247688403484824078665289945908710949377149558247631837151665482581638363743780089947463241473527640550195993095095239457076441940361590999162221368243872858500495857479180252429072327047073226602945930004558814264589881769250947568583846940337032873412154817582157984141111651330313660779038322676914566190627745651040774583615044400956717858729377534104269214879214627834610240872346377418003919457454173572248610829769229554152089007876971242796070500984883595513926989325413237628899143329958343972170157667643543129523661791051122780792774244392834575162170367180211395655277327496713346311136913648043795671840680450932384813590317694272375001884982665212399415587721670432259152125363865304313467241346466328678316607096299383004462165691453991119786429078390917256951483649187975019270476062840928084329525971225201667708380025843926578110939219582624358157352463088062194226534124682399268591353011264803597739015440726631785098867133788316273154549180672911939769995093894443771700288701546479357694547419422908190274163147411529527806382266615316430914106287543261581483320252319922144567808756155622390721839366406593376885258115632667801407981748896723610192002496491357358083621667941447019629706852524307510062606837674943624429272189347967092840209196520873702452406967919244998264448983734015251799222842529352409575310594678748825864828869939136092368682934658982694606074095301029074620660405658301875063740789922857966594954968766223570843244591263250911365655075469522993136483483442852702043288349536324629371689658940098262495522413238201769308320910428980689156806320266219141261160993907385802739673787753519907435117507095295940188344750446414097115593133866627050724256179400579434314278321290284957696474636304820609371702521928604987424023472629054994386656407953249424465555364521477290744929912986888298823469018797583164961512615874431046978007628791525435530920416013644175399434998314208399698131080258813677699793230933683038194704085575665932716492699599171350893972317530404781241227409912834438972292604321567166553278944889047227836270480887406594553992588145796411076940266571757734464300769115846302987712359045372747348489741050657101196471789169445583816334858081261053756742215196609537532383394393634378435300772054565347709840684058315870015520524658299572348150777133376564858990736101165066392344501295245807826239508784797992808424661281416362598157606540107285672797909448319787017384632791715611166911576492793100929173809657409844467410626218266653708176350375709908114837817921489747452782181946457258151760695570026091409166633801310404234571213287280638238059282977400310452802256356815266802483315880680498795837120995381132466456447540169529833975777711428335459494115829140810085842503165349798944669086980012161208235538374888528008467335129805035275805844667425016985459365484692391004856528065082777103389582804876956447897212066360037657771263152380297862207152747421496792727616790260052880083114116053725834032715473151688331071781130343046181427983247941563939025095354692645393499168118614097876749450767188253284212775093053488397710592373845160802347717507041505586323368500722518270196311950850355550572096977859165315323765702511423831401958180205382516905979024513164104740824391525341636004427403508252516453316511833637856692420613446632446570457762652793470508004444230188776418231825283857961731751993401188714797027141777591366479376952164694769309460486223616082194790204932049186803752702823018880066454662831702575982052796290382562617781096449807939377782650932878346794783248795718908033649766871026198453826538318248557246757756924094921121160469758025187421472901856979058482710235065077463988329866675420901593964940788474881280219665843218890936150012577037102759663746676438896456882939709436200085706270872302993913924369917178284063611067854927855462758152648969800973309964774537461394302771039388965795750717386722339213821849100611461957486865353491154964654161583585957077342908077556335457360102627857822531154634880041917367857502592201320139951695861109802212600105629404837477525090190473316341162564959087474656152830282274628607434609180938819894035018598654403791105710321970043415418769593421558166183445099610463286151295482096958186620835482899719071936475134033935224015223760122611437049483459491637064089755433275620557153632817352523521286853874004469020681874601717163467023491157010290638595156112631089559992779210567458915484739158559544996044688080511940821756198397446627006886944478843559616521723722267176749075538481331489966643776352126972552595561669046570259955163435431433446246595200561038420320681039282712018621075587093088082131411625566636804124306583170091382969130097407676200697852666589817755397368587589621756021403203170790357860674245647625009642433512921576896189024849138667226678914543475961390808078378564643563504814135397172782959224209464031955733785232759534706735798307506024351464667141196540694648677055920925963972144563889353197078775279442930625393300194932847359249638586655273473020570376582461589438029284518211675197084725048296159443468181949912548691828292045955048751529826498636015843043043803581409559994200798602553638748218938127866569318280606402394413755188432634592248055127319097814633016647548070255670895827665621061351066802837058429030226915994430917287485562889245995999312671708613805589632869838091735043169551548750694218182045242083175344181937192908073700306102005266353844335783176670265983421422466053809989775686917579785544027111163778568685671923614820508144165867277497388721158745857441025467944795473983522120800520945307314614741128041741539434480829023167795776391858566010073674384809285350198038983535431610139565694748154183262417192990742224310518995439129036434726571899422845201521453641469282177691615649776732189409054864858175256099872277495466675282517369684513658792251022946722059094576489250519963924690972719740560848992981481477506369574089844736542004662173008754070547423302933733583908108185490019422439159602628173194172219356840353521027222241380387875965717213086842203975589057836604867019526328764828016446554701751615472233875246995371164284341764880356442096857083549011631515702936904406369981282906569683384434253596747403107118262733121916821982702896839089882572414411437536546657189854744741360675823718435047841563892941872853434306741000245060199699578013989993375831893285771336457689588214549424718990401763748721754540404439033615582857879211239399387753748373220516778071980478319582437993971766993489691661529879550726785996989331623042345581940182973593987410688899463210475456120396216225662917957591248851881216939918441431312153616767543773991380860674920088581328833208756392868569306664834034535562630667511863082563545382739649586654884053539966412940194020887822817854243724121755988541424506162493115522047540770190282394098584016677602315483471213347650149945827324166500758045648310529975681213756694604564388369396889471365338332635142703619569148035580565342252203368939718736400310480699271979554018155552451423636914195851798623900883566784744892751849747329974667940030246937940968352336638168846667339015400819097515612667670239255088064972419235065347053533630035486171466051164555270994367875225780904457973279352270444738683181158510728502867309337648395180586396271556340354001155638504785779617130426722226736923346544573988336411210222861559664616129826323821434644698803072019990978274339462230967022298855885725831110115073927621134165797033358422280711381055611985889512057243134997553497170550159921742546503020367560476593865158614833124224586896278572540755455014733062233543935796908733429730426267542917169736006941482578535677545692726140889431351791138693729398766547201985944601497254068098449616077347544000308090996983698976051255061087656067559935131009046801532925358982692813192099071696749130604679246050779307671899752239118519275563935270482911844178509488696181844482821712942291170205092601920213497119992142181232754427891083269875055656525413143753815618161542815688410133211899729407327345802545968051138661226823016970275713761363421577544419010696931510786565978372879970252817129384857557694820404995368658431284767970066006948046028762463473695224007551119628351909098907255814002992915371224934275637189641872609006048330938331729159753801116597232704486490353995545466686529455134678335994779991385688645350911460516707166840187524270294614452763049589047372523062402542169056959854534367085369910324883708368098760550759877919217020357600551362152316245731722589299719296829995555900766076760325986162381593907191630330789281653107039157387109659231730107419462067338495395420669686589573153432619409915762866128083807317312112218497918021183814463382813520572663629227704544898170437346600650318617936262157093299331072086766771927154457786492916292551338045143169174411463599077245080351936926279760638416128784366830503253542576043670044625239498431358841612888221003489548525264887954066123037893765951301207102995508715830253495494734534380879761088954540291459581280305512324672836657890137562691600332641893194350566193905049823096051093958975006297686294858823226707207313079982162366651673472945942510971503396801837633228011082991170428163166958527672672242865458500882220434677286959626119122324531638880308532133798024195570134112691950574169707929611840166532230665160467554332189915087326751564926359510413562738780383533001179172950570721868212165723542350817677889213139768887071135364182525552949384166893980167154499523661113817241788620506843155866100605171186233196427465071034160534848284423259981163420197665673843002233120330233348222212731560889140502842973469766261817031544486448336844307624721941157683031515417231663121625789963392346217486320801785668559576655706314462009973232274579465061670196927656960264297327053099356697239525021946189115232143748558759030851517949292966853905794442935329925293970881760331316520656076251459448356139684998318070993253880437854387015474291908435465412835438755081539224413386375421469949845696603531743190653734949229464081390141947721547805027339822679684087870822434456130884640150656644251601274255717789864249395863331175061275695123840487674527094201003112361862971545314664505578493474900434622584789887646231536219278972458168932039279430544949427241769718184075714085284085659846984922565911886921785321235538279118707372573745078118748008498463369084292336900020822167208926099029858031892797947257942772976878129670082698659717429830163231404352973710885555825764792312368039970746792176758405021523566009366968499041664254488172673986882953627466998718345819902902229604957760784325337443131321951002038068372611376638397786165053484358670805965555151828407843107330239105719751596217580129848664212927862360220967043936351243504961584116984026324500701287285313981514840748223722412897558972918587401982307506327914914973811788367555479084492046385300492707127112118107003339464401515491989077527534139997744000848586364327192513603451065201709130212940243665801301557464453816113923768390797880060637445081548082955569713695904000040545849320174421986027439516058630975129213427349182562904092284382042740366892702153733472231951566104620031547178698193924207155412045629928590706141389520354438965573528874953976199883526238682927666342200547565700056169541339928138876098994629799789958872752634421715507357136114864512570858280018600001490817706462843734688959495091597271628412972573321998802245048553428046569136693555951744306366911285247861346869389174738991103977742301163873476549164381418632961093180212358453579100292556084423405526769125020907875344687123565375913331831252199881599821586048026501830689182228367537837169581121673761903598225013453155608488714420416364574348096356352941029104026129635625454942068488954969325034836055025438396118849311434744767268757105855579363426531121433649713015578186260964091819729835518311971083601881851054778375415103959886663016612373961384973205377116842154245076355511213708226514782962913762495099224126695621322273101274449127896254576416331351802866789067932191518738288839837069021949760732074421944326129460449533819008704607882506039697095731083713957388563067954832617555037777932089752741520106822930752677688514215633861055505307152743951696559182637937708146239201471479525757204887674088555652834668814364357576679054740186767249278654502709227764647169269432014789702169847224066527543844343288859122532716597852618279518623455439603007300917838718337405804700293881203315952563174580536768010600229043639501333351501224902157501327136568337492091956490681542601872159770911029343832751596624666219107044077238258895764494304122018315619235420429409836941433717997874117967330521942860221415857112694553257857979239524440091595826817308671114674641640864826872548582929893937520028737520096256727839243518818745173887482644100968441615693879526844777007927798453011202963609913095194880702088227804122848708998598259303614637355830028701095262513448456435094864197611155831109288845143869955781851247772974244869730563504533195469434403639895151119402078349027175808487800649339696350363728474314986582536674600543525396076657607958464727347349059583233164972647860249071198996780042541329696178312139002433837000020023696038992994060783944939954560828361428051589729984638751215985903890712661937135013994748337517532280746293935490721946585461280784680691254351807585248241807035551872408282171192863789242206455584925459255641855263786727039635489945963798860233299724222820315606543891076427503188730938300696701088572194885009856446814769886701219888728411769035655153036643456107006056486498859387498514840162626228770267833561537279114309411020557294152718977844801479922543437638540747271241133481300475934149804769628073324673671366618214469664170752426232173703080591526093956238668018696751396281868144815186167155773079732640780782684508206387145684641948944459917080606390255999275948736748191732503175844420349623590854231310697886881289943864922633553496753349590799513674096797957802428312211810143680769642691241028591017497820082729233139304221431921755766426234886656418767939606289340249727399937056499699748861822013166002021706456817996054232913531932191032118679545276408786737525411019501405323702915356460783906203191310516994137068270444922453966729485147779363668233890827008146878426145730906761115657196298362098351269445187759120678945071837717827881682668968849528814746495366731171521995982114621793057239304569943966942972328564925690868021969938462363608233368198326560222859574975209428352216608937692383897579547523270411171109875198171174014436888497950861630572528229328417263749526220669596977395655693370308286403256410027152009641786828122009469668301356237533042212181587468969614520141358272759149033374527218670001888849831679337048521291099974409443341548089621758763906285800115962940110518577492257078042212970373760053542447187128564435067358537772042208032713120703705801210341119802816518239375050636422727671536280835201769521186075734587201764461114450065020715604396978895553686494561121688852817989796811224932443671757555380661899464804136670262745845326943582604866118965612271905826440792360653894341785125785531773893513903606603311680885716715325492681774116498373005566070265001715916580351631635294116179523248867410045890935648867576226041067573863771112149028056476830200502668919076918769810233316442860148391813607476060050701455855147403269942400981711853439437884728754270382339126437322325408596947851087125967598830937443422063023568546791898797943326829477567810465704478734927091449179914733501324940319498684253641277225171304446829880457457974324010543438289418220527385125438871059934440566512273570351321525960037183687615362420760564897200083256046804150550973244947376353027497375115294553377498143850734553432838962171772694070559490475746156131651307078897851459734524725391302613465035650806476739904575234841688718830736594776108883483634359590181572377588959688549503537271182857147600361872758578036341402973233186056388005813305417253634958506997953746504052498019611874833343491968585960801355520027393929262630345513683185818281466490453859892067515996890823901716425625973719525858498868184091642041223338196472903565948751439470977533441574789314635945542378515895148768938441696642527655492656405825912868712818983718366389038720269936691540966184487100822484833576709454555188950990917967632857126039066526342431085995139613785535341841205660151042783248321510041186843121360936569075379757666291906829492465493518114370378783427461727452244626809454752277046643275950992701965283309110394428485991745695303687503768059687371247806244243845158371194553420923534365043617078533501778273719608753104343469636757731859665021936660279178518740914568071039329909834533805727127497940672643021228253067881512922782358622482669540136954620942793269295350574876734714776672198658867531647352924045480458056138277687950011991926037736081220300246071492266245565553602654676927235441164068740188290729813053969144382806893652339917149972476657456686010821703040109441200083841653191841085741307616375158529779620085816609800077450712475678994077786086680008412624112008717519449731817200996207564478859963339788238849386176402118883555004220035235511090271013865115377016897845572069321144913120151487551824409369616769426150137242366780538336170415981367548406984296246769147234416822049998365768812410187137344835363098397609802335135201566427919624996003039008231082175160091782306434924879099758663742349634586732846622927201367603817033920776248046983013309596893272950239909303067258345493081536881701811051937395988237082093117379927960183304474187478782964862239454605496580955788243227179751032905666619986903153068434484496124451063226389820283870384109834203730970571542004801725981488987520415995527609301752118391538541414340666841280940710753014491012338648865907393465741482125084634043054802215124694247121991541421706688154973193278764553467183520677100742830383815964157865232771935423203478108712672188409802526868950228263477430239971079929285902452554014584935340140063874790822721348742168020446440441016847504221821460817682021889898358592523154311464890146007474682254869235323431644468499263075232897007938029462866366583406776663034941349713085026844503547091343822338476761078820440450993898960340573419177176922082235555584470454119401035724767948476167371180022805665744796206508331714645612689574835485057359179975573079135608580229372387468737641162918524426618954508826937301969425868945247217766832332541940078402125987179285362991588853105101716845026452117714441711237064180349223072659886255043405010095689885605143894698169623405367997869491387169820772140569271319843791982668502220267315624975897917572198117620400659919365048467120678887893719894010937383754623424459426807346906260775619038604926308886364807040063549796771579229774140045060066292411060140728592721056820124749972904435650174287027705768179037392876035852911837407716656058097288115112619495574030765926240755837509704106702965270514303523169700331438864746561809510337814754104183785827631983617387663160097503714753997014127797757409497189795508070922038911595305761863375675821513435186054650742246500901393923842698499885044091497192545070580801391452277316479791688679715467613191198764087639266970311479843412771844017371518020635001062866445052976390457462627201839161481642695974222172934064559486847398353382362905434035231116213003954344122968172826232595288379659908212706368758570176080447134436743004728337262904041105823647318938242829760393916677515596995151480876360580487023714090747438556634769760576195161776188942955905376726199726335331901872825448862679611713534738251409167492636125512720367224696191610376125330888695259974512605434558467604156111068291745332036438066483954870034565349609336212384020789439651685725294466758498159901888176310458399751618012833445553349289824764426568852934206708582161841343382698386145831531891570708480647733182484753356940608677448563378867713111035778998815944097267344045525056169480183965909402415066547756785496129350704628768335350870974837573560341424146832557879264438882679512397477300459004378404185931292170450911199852016866956666855002362206486636693307807125222405106826549823682762235430185181678470648002853316712685096164606323086145696344853275525614069383380461048799542060158756248523198476185973932033325450977429701065693830963291807222503036716388857582037412991787464667890513574706237464092150723912125103495128139978742131942091018062652035221857743491746298398842923747157232035240941193245271822950101367041354099601985370712997690539895845485742144691665674462360612289274845924705538189071052825978927044703226015202544970688418077017490126467965591271787366895189868735954344011790300278802251406423780938539155460589346312172198743811305488147379734785211895275714123079512849183242980484949192835302308386233755362639325370873974476498729840951988098472488310593649469690104748995796281571384876129194652725024311274689449762336380808285795062569111631373879606460046068244099972364549348667658847433609668996950832687297739894056404256427091581530422276282312695372094616988934514769428333296281679718818002527586979036297472173205143807959786529013541441736999923789284710466286586933911759570358929248924519100895480265399301150360092134987296634065110124982652747136856148967956422717894069563339903316094693388262185378627174897888328697796056149557328518583023837389681070933215684722234517767572713758128783034751754371455545373039920693724854010197901403334909601152448451856223311633986544718272899706565795153899743902367509576578387242348236731707152375063847963758027984408403515326663906959925512285839268867976770213589095222858152122349122378552619953226923940930040919779891617596723373681997441132716515281814157332067645917394157242224300521080161136492843992455061371856054107859004650078570813968384984187911133377195714313125116191118613636746556282661973258202614247450074799537483781834328741942059739665200074924205877492877626478745287533431968591796313033364592646969572479042291423611267284528654158399438764056343139518673082388827960706188586451139464286221508758674745453651523145585547823355315396603826665207586990110447479077856479973079637443133906017709764763612659948929593956986065283051536491120811479131469544974876974885281142460885109399012652536012408774668433088730311579644297542042321300239146592948487167528136763305135597775253358220949952928318208487562628203051746993391715168298887869601824323679423050578750080523712219692070163965903733978223864636377319935267500946637231729922630402523629796134546627630704626308023144845904243151058701415695652652298151938351240207419701932524337974863755605358092558367810860266728941152950453009403776950252918468893256955916923600157994676717502510072217633963695430991591548877409177827818270577693901352211627677120139320323011889866080187492860860596386682157058586463142969235003918804753313603501427841747372809724954611294091087489735062156343411916039756925931912097400618708526385253856793449159801015394956097820832612703735271194451937652912656786896802306905072013066266649509433250885695987744029157591419329425618392295233434581020389880885983187627864337260838441482465478325310983054799256731840914607594048625994476428695911585444735298728279058217639538684229830756013308570040703743486022123132086032579707920851137158509454105357537206903322730451376477826483402029598295703105552653067978598720766510321844395100489005881423339246095891755311497566521970915220105084550946555251953780967789738015541793208208502175783589059283867090436038755122875136736348521533160374271489408564270954032647514412499080293982344180878622106568969869310313329273741622940816555884665518603040936611901638009581281908222050460053551982116872765520092284695512252061643215831565178043180319391445512460794758414580769853353247042325932499668079769227301652245031994707834024427416664463496700998974517258857447589986886160210838567349170756781271837182271638455257433745575199184232352359732541016050627693348866504913653846572384141008225641648980485525877421856479357206079622168778749308374688622295395396866556815482060513010091782361037554978067754932343616890502116416061958475795139543810014584285196930694975389094284976449026567290473558334243595832159143049434289995154175335701234465113414805397493681455468947078274691460373752689520551189350955716815967829756256735995848207758435143197089694562578246165880730831079735679598915928355666242603371940159247657876199236483173252210188513658795930141998588703152830741072438637832960535651395401302775402909530823902935875852044897376692409444547666839053515597501833360492207616988237441031454324084815573951697013941126791890112904220014986931881928007089970673345667688267997377902887591003863846588570342431636609033211554643103130527149488591302887895277866647170353293038249339368248686763551838551097411247211717956817160193381068957189844476101201406812425245770852275808873082320976050169539411039150119927421087744390038441626234195381311970274257831417877303328221945979523564297957781726643334783883908918438964897845663637724093466562790481032087703325801489208847849217882426612119946209409584039690969656683467097877381984954706951185015384771661513191829521089548642800271228471909472665158003966406765619807048433926756362678901523263896548176773168666715800608068599073710965443632846467035113022300719223421399101030606121536718197000980557557856324325679546498418535571570043715560925744854213733641196346454268437017707221586890086829592379498174561169511466260701052805815512451327138089552484931974208881729211273844729568988810613885227302094548326635808315553846990564461376942114348217218698373504265568932689595306948243088041584069008087216305273571552627806735019714258811478504603241411176793404163048004799259395530186098136858501757599631555733472196301681212388353027546034035753443469206296008904892026858502020363502840784355368032780381169077440567957349518819757179302132733172497677684401569488291005185359312285618224338639782107737317998497713506375428809582826340297096379316809323252695232663608101131718237337999327396790688275431545549374739743517477345327506135650401892071275371573627162698113749136505301206323578007066972730106526902724833017367304873521067019051916035486105538450364801291281192864534055850783431434878152436794815447704543719740877633231745085080861709313755511490932501269163571804170424629779978469391759618021241067901847899549923284422125612739612130757674474789987230030123976035290148938095766895730832597240347309415348287284396945461056325219539043539386509820707936371396676877722360082605646281428630202462180548122612374127131639338771827307043296631352112692523065906141701330074546297234926155042063696980109356172214381789334890354291646474450475682227011489031665563427811435164055316001342300260240220725663635345374435497727333603228907418091997391357325740094266579513512173022001889992540803429670203872742265426429009967198728328358477257183739703798405034291744472872652321204350219452850669040078789503355105350079088454270397652826700149224357164058859723607523097110803262426781998003247550906511620697851375556729527228238548088545319899195177737750414375521007304428099161883442756913709323602504569277584934779396847591837464770902445094568045756225044788519034541251670769073046198710953140750550942857829589742000853604307870723132325972852761468556448784127164920344416057410153835930773287571071387250898949769247477176681595161254920121810704368869323344754029862476862163929188767424571526636537544678853496101994107206817457510255784689937640074362995502460108859657056894592999212780926219293566493172314927922644308036382033562388180696628395442783863592488903406754273586668163575110373381702824821041919603890120291338580455611412367080010374062419900594487268545556636437995991249987746102894094466772582711941090549752992141401540803125961788299745002381072757643163225707657046614751361599950764049624426690867074271107454409825099719903782495730178509400846371698318859767824259500317600791522305833445001804679938659658319779768503009454829490639185000221220934437023395128315504456998594958521090462772166991292010738710476941577116779765999333966711444867970168681639085292252092356994038075596753498404631457850645364021807084301811606382286013434956708155957561497423791569725374166407826616382405110227115597974766736913084396439194328442392496388905690067737779778365010141387733575119028226290811034929923414509550065819687399554197447731474536780283493992210045583425598428044620309889498776128678119979767734880393278156062311973803227275532560765073985839724697848408852136978098164943186109659921767705888522778518577714675577059662592532743998977276210110342495583811287344861120006067837896521386235893190370666339644232021346133758470856198083432581740095240576329403052591581089593591183154744415292308559323864666991143881155573829979280803458184298510312521851753768252009349462544981614803372077448616610237993964075320005736683533894690993817105540044454222484839140729756394118790291022928793005292219232938392172494010011501034103278538610343987342061882436435403400230880698355614358522115994449904924180198517214392639902753026705593207496818421926222335150192154853222362490256698136442396724575078814500348391188038333506472862525132724083681331393803120238576165932268882977352632489501718062023725151141546287524259275003178297167642345917914760749344216362246187185421006051365149674127182089230949918132394340721364917369383289836395243402458281530954981184485824916504151281604591463359895055768821567808530293534093221217218065863203603753469016212865715772108497870941500552345059951162800075366349282374184511610978244792849097638482778496135150935955598599162937023095283583181605413428656837991406019267227537522143296084835236272865852365430188170288397888244084192412681410673704994119130540978437395089381035682884305686821233285386823033632250644586679317284151331425550809806510013169405376336140318980090022994004320121636659093040784758927544727749606165028964157987612518383122733285361993998292104294091587052852186802709811386601561053092460999540817941540640523096403933381176418929703524056402114509622455379418641191794612099769756150826608421197738313330808379926246243816103913035881534992562165768435810982542330384320646637351995072855284762846031704844992355003335522056328709659069672355948713077851233330273487791302717934349354708008992037399241444858012004712592722429704195023930137787568067416162189365379091665379317914664155137205937047372593564348264541780836648898503891143873170056129999687541841249632774673855716059058694881307021252185672490842063702993860653670089802129216441568149656414034227337253698502048649015334745557592158647753463861929570717247520193742299632236231937994824225044543821472451616806122997988005285192662468659003961451988598886911891559085497493815042369589736307927591124732958232326223869991406571530886778280071864033648527907045817366612555110759562391523778627972220582788245034448646795758004997785284358800743430767538234247327253637281693883496754531074574250322778309688832819168463741161338412446879680389594802148182735239492323028570277776413378502384748128992567111828928005479296910778758374152033301564327329722441917706301570231117279979531854162238589565333619239298010446820769988962000567070227254245336828190658007979522882733228885062064303170711466608749387690791167022324636010246464153486202018382515293220383666566815387076947132633778161753003817664885562876600073401779260055553596677428535612209133488758665093019069201632896162194143605325529598358996511415571349035421357633146700191105652920912217751056278737151279456891220555653217545271117919080438348174758275192822596936415877537485914764612294557528431128524329475662373622916007465285310782070044001143434172284010727657055390197426943321124263462360408259747973854289648856546416398905688608677055207093191205021400270742565886360447971073362268622615017622842202192282079578414395249467202737983772097307174203605675434489480095808696066300117453971291572611010486745566881616597705008950989761628227475338377728145046072834112844020368537011660814658142138940778817424686781071816862221402580358590465134097395848756254846547063187656083799698399294998475894555747316037220033108494132765331356593060102277729529563073730611554367967354570561835774782349389654569914221622008657224541602522533515105466915711465615990625590563599792932599599827494433547698474179654619717858217282044268768312553239076136304365181637476578145947115263852348411601042025348122956043466435554046678293528218623374492058803750070592312713972779952116669265060832722636622024187298206993413247033030950634027052722103527002368339442797680515425815453208351077010265831251364525430053780747859240583836430903161773676456066902639859150275489279142450276874832361177406539948836841390987314544417933414737331027283003193153560389440421378593627927799562899277291948413760334716144513227582014173758725236478871519496660197525216526005737383948020968422050955698128573387516470267223437897515339400677485687761982023446435252027350720117815157051174490920326378201742994993831344761540671572347272396242089078894969241035696836592668141436343336965167110228738617478843527085968654823973446805292123757092111294693130244452191506665624420825158065269471450326022491244427668164762922763497731289980705540019426667335651650135367758830998600765264110141850962044552274620308945286654792527855292804256601527174202396983893772302245020392273448089191542629467767740123465851941181620417014470177005898155635746689481432988612509159417180807586427875662867594662567081274845671436169524751702279635845729306290191786049879994137019698759011358783093245852577964941429239862688223400400954356458529280027865989151049173177636496197865259784673179346484578009134278307623728861665110316989976457992333360221400616921635765799662574320501016537944551337544994224735638756089274666992646533847111300039051082920909072931057314028726938878246511346480284134000361965497677179012771390620413741138596813565204826641332278145619103033280910554988133436131669849546965557425900792226342924656251378383742815649714155816642402023306586984418483565355158048277953816046319908984888597831323769438312557531468278215795299086806743153919355445404971373411175189707876357424358772574890306608925700478588467358031581722051101252794532915118808300975021551257215712859969523364936282343826963252250904890935329857670670913084418773068874333018176361746668520962669743116252588429685129333701823209091057538205020520221181710487733644106709901776759049800630338108552783865610308421406103826515806356631537707049393688484929018742202277343762836865355374671027169885849770678916882353311649248542748210384093434935006763424972260172178049335923103648493616894151841736130509748508927514819649057988410447144656630419121315338341284646887679011664268779030928647296222329542661548145984756438805342987412077956440860551651903790299425094559686849087569397172875214261345291645619382106946540153025975429661172157984931884344981112087148686243267962373974412175098969860947007115349168578711484217327740325574687934160020530113103121829492681520664437685660843184323377998720207729567209449365398998260343732866520836275300807214970265572627238003441130442613939493855809187872453829411705799350533144340874944947642202439654865775624163629138695522690178311068398680962965165585578041964628673102688217829186263835833444617589602924687932749543691656842393973680784451367367041414995125901537384163302895458372609640190672264542829169060570424363404024155444706302133481004966278137372456541750291808073523513311594901228333329990051956606470258355124306914708825882106369289487272649757527881573296812685602950708436744729295013918134776709111760338833041280619774599499453765714989107299961720117195552128143965234238525110051976121912967150691117889906292005491834265531483035307922858217189559504953078204220165496116537476519176640149583319170489969594239997864564314433005002727392597401180962890736167568308037939260187642719080156651681814826665433527068304807665545032877158345714817979317784691598858725453083983419938094583603055015121126829190640300160101043087629260814837130084680026996729944647361142064442206453750889584384328769401680782328026013871038470006801424971779012810633925510043675780108058841662773413747646731690723409032095249264580552807709248978161675558936558259717476549040999084892848691841048163496985064396017727070063011203936448883341585093098680613285180248293183843226070044054508330848524397228735850027736742494408805753322062424832554695509665410359408779426466085350983266289333358785968109212698337010309325175582181870600014585732093348755514002886309403309506683480921430106474184567949718560842717422902267247486468672914474430703605425980201595857868093378631639537283842743373844028541820766057903333084410731236622726135072655959992832322271815365166893012204254163000497477898830904003120780511568288160366060275045506644768707306833466735830409119980151558531600414530035974086306844611343721138901923892160612487433905409899766396593727444453788753956477680817063204640706733672801814057406050717940148429330195953062510974588123305537452398558874340329321430140798039675876442271561078310865977232278782510762972922424794685751150027670986026756707378109497563880859826907214367368313480470300448947996029521810486791837657240314224942535561034886662212189175502731490903119832025512427072014858389661993521906560044038649300759772732069022383694802246296804782475942083989551355649522553879111051612543681536463709823185548145814962176517187295833427707785570779143935564569331910425709829042016246080002545178018301325799856551044550856600308867913210594561352804247187944605253533432963621216919766098544338953528311213186082531869717754698365398766081944106189685479379205997543281361747484950969195867051221958452923617660392537326291673003850716067137943521732683889461850711263287972212230173598459838658714952722684627423927266104144265417086989138620479835883645557821621975248393519712266054060395000763014427027335806544889902512433525467414070119073066352360923027054169020081337220036332696132493555380700159584048882917281831287785020123086282157157231158306368332111602948651348667457636649444591033897559983113071358917245362446391636658178545234984803080508222206029032039926868722481574845717175624050216450196503720655964609508072790312986390017370711623225336459651797469294033023439620341076121806161164260984114719689386949568603143848591117266084921405728437086024552404363323094951414141968797020307428187665255506298175095101711189559610558121317481223031662480074745030301970021023408234359382383342876960392154611348808366926766922025326732428496110639232869447008190300944688574222863274232636152787371476866128159947240498842522261653694701172000672335545215785926020669599496407165972377520360306116953878905183075022450607431096273038618956781814937806778162094035588826762107263768057444638434598597577265978323850427103164682049385222548144021565037442829598958436239159316508511978574805711264601875063026229387369825491103182108520998371440239451818038829537420027243534105952722661759392015390272972067713636041987545916526438496583444312197261575909241912713630834818459749607827648600075724652704501051744976618982786363799461248041055888549398741616347688520092149632835187371885876673038034805962858505955182159021292481751932134664244053315693954497002861793409992321312115462407633842765883674137823080972293168253797164729361233307092934764600743839864793074724143331443562789643605302606549644857650643208746513078531518321615945152460840572363054737130548799349084422225916086027521425222488816696450836667195015188503225702715999690379708278470659479150692070444145346559335664943232281466136494285228396411370283227985754297047872417238232090050928927722245268385570482886879997883127976782171126190817621590838435194063362983744554415201073075678186571408386914587932504120970024773659581972343450880581381343582382661265816512891706884871246076528277185407840082408199188081476990742677760521160405586775007928886362006155253729243626517126459617523302230771546654927672922215532393139598735441220621479927669551191103547895615760525191908905480618316352847698751242530628994140037774049559385249632447301202769782242296396472539696842596459312378409691868260152061488834621537566251037668835780883079227799684498971406555869883655789537266910714069571580751613578331456223035479565882799546526482983423901393077707624386501681080514335400189449926095433635674308117931100413808124758854407163329801179015717301683368408289594767699934595688214505754363275544437478821185795374544885804913562028864400899144485169081715710544985965596318681152144685595174406310950871564582388407294640981984918653447878497565262115728271120334074638548738545892860839752798223572327068068340883879246733093760622385415298615418803353468036659767997739700410651450699911417351047834625272875138739344277896331339044195261441154114686352043245648002489970969469504347118480840713509813008926849725738762042852989248522062223003715704716042221855650150152288974831574404630744504190218115494195681434607048050273033870218822054298680558001832250360703687562853333978171525727976121799879588574057433703953500727139750380841039105310671078365549619267564459545213030660695428193899730256148278269992818299129245011873486715597394402391431169248958234641849821016333108297353383242982898758892990130810966072412829749281338701567846643309041870185320335687600076892755516364773850558501948937400880032755682261389770738528232645773363748807586661586707168761234387899434686464849253314914311145792028895176505196510820238159998598940769562068928759056076543034922682704424239631087489039660941653248738350175598522695397166140604154298842454803412773073896614511366363912147635552829623996335279778919176355034808682197060534664940739065098482772485079019828257607102531139919182595062649421996753242148936762698902095519274488969437251260957559951228106200606055816241858157260770353643403439844411706227358554226373041375265582071772035831403592151756607760655252837221628212105231356881375854233740302117470761825976894320332507581112250773906909734569569125630246646787970248530999629275982954530433185277570768353648689010408558952999399108028743968212213033005476065997438509388224473029013290635808095629627853953221646719877729338996119727255174546924966493326543420514967115225100634182945126340803716636381556182111786604771089915964612536878640854741870825817547405268635212378209237413537274693320374658500928300247215134050821159251796854154596226796225877449934259610370911076255000814366549067459463758842007327950673540731547155634866261387161774592735190349511844222527486404228383491010477318482333558287173659600682488671698805248457162855498975049029975644425037514974853875712609547620899676866450808999449971652535693978079790590359053162181700062140284626946281133965199684966671864265620597481004184993426684277012920902898538884264211532452401858785489644447135724149382331564189894584991221211002808352484975948449190100467465667732128863223561693204542907102937481982861753447739030159491671530616146886421629579047891585798150260980289744615524622358893955117192542232098000984886312521854386096862695178443147708166488485111683898937016281102781181115287594989537078800742161231825044955116398997839364554068661752153947479529695232953164749743488335209669195280637708097207683498453092105717949559020370392166062978953827479179000471799714506277806556139774059766166753132323164789262554138869252951983375570917109082901726790574984075074331628634529312252318728006467508053734830760925464436799576350684608083065073171955243206797585836538802174931025054647057238040464845175416842854066645510371280670315291828289224720387653118848151388813378033544672664634828040372221891978691998299450376075819255598135607697569476838589927192408352913043157041891210781009728080251878067294725906647895584808151859525941661088772958449442500550970182448467241488869646854776319303002704690264950678448699090534756466869151434832163288048238486447287870664681075653208139419050591034398912598217198453499170716989093247836621082555683174419621710023607667838907873618879517657022951852250910363230570790212081605164350274100549089220094716281211133469682493313934346823792683559562614624591508433349868632813767584653749007810286259854915125211314049234430354755903749341229547237295360205087148506914615112413802378155612528267456765957184259767182190871772223736153558061499097625566421301358513055676317711750039067330805651212218352639949302020065297227589591200795019466306337970162026963123543887515071995332173553768085861224072747571688467722944132494422018849019609602344791955553534019647082638247560646899509794995820661899409481397241432452244390312567079658152721120802338415706138634745943841051825328875408247062607583274346132007447280031641159850636258449857005089494760528638971578584950665955175404388934231165623800317360032299929545703393244691553044567599629758735748841391037680688185165876434009702141652550602272541035324170169014289494666273003418390693733561830034674093833088729343704352648483156454796274121170989724532203619150731396778072292492527185431303625753940130228736063017495069491901201259300491394003859327233832539470879316391563815993493139809759611899869192868733372612348766518057352784374204482117322492798601815923948951504355748391429153242053440145600208482631344786750083603702546950626114046871788896180221797404012109009742160446139788427386946093536243038722363743338570449132032640909287220836299852433106703254690484808936769808234205901346364305047744176760409878606028810490490179755199897787008693784140989496718296203960259873722769824029766617769025304766066028764126460918460177945073249704330999508403901871549988065264432305027374070999767776546106631431499644511598742400813295392485385134277959507477706580712463917414239948614535656748056356818325504486010425657004451543375372118965793408929669445602556147627583135329023832958419658318105521560226440072499393333354420892721943561045008691293875260161359912439870032875824086677222848982083761909978985101008571782634442611879979624851093910338489705746455767593394761507682330299352605985965272371980001159951016347323578494876486836483876607749349785074392508513040544341323819212935466822803397691927049338999556607536187486613298462801147894944598036241238643433159190452470380154425460481308641035021651977468052305462066616290361766879933901639785948765986834454111360084149188943688275311559526263569833762755422727549685612235750249111884729866991540498192831170375147452962595660014997108504006965526915534744888539489037856081436546119895896713418126764911283543264573171099200217252975756799905188809749908506513311746087831419556663517400122349110145003703664621895422429979170648386239699796966579842834977480750960281061374689839697027553833943877162222965152448440151893816758889208986567072029301869532389055899242135500799078067000706823043236107892442159609651405644402129507652377023359381226501477637117967105235323797429605279359612702955164204067834579643121609519246594434510839718784642836306672679459919541554941783898851633116339419466697885881487109845091466764442201288284213564184842953166548670687450418263284797412040532686265631836795745888704716503304377280602874691387362749504817874700108175603726762996731348953766646460402425343886511269573748240320364893059771010192380131866620266964365274608196896799827626242038421617144253050973227254035099584215171810973298073587995725516596628372318909184892188781907377087818342741227531512844834128151123309012610818654132885938586718151146766518881355416485970664798954153987509209488998861479856042997404514291065282447925562130292273202965932175334803803174721678248374834348915421502476647018065984459844018750812290301828373906987927078283521946235668532957703470821038132644005376552268948828644437343872647182535721443316548186373601220655704799948872441111010713220361429424137991496100366657844654992125089405227857056413698773350242655719591713925864730047155803879786144353591212703911876409423129623331973742351145865671526256140358085033638188370404044557235287163743471672560520233863884541605481627708033211166800798488887784990919214866470480736645002676647374577887365218343862014668069907016344756883179211167467702288674993372250261696194608825018040584464334769106851462330694673702120069445343434091479179802021084801863112131766148209783310141011510648455352694243089873823057301071281449156989759842373734809933492504932633788200912703807161926683622814438622477482221299166333275085891671147914457729535426155600750379493137634217443325694752467067679828877989963741486615704991040424030846896157175017475248621339741648825735350893771221809896145527764847819254761649767383805495938572554542608113994357386262892604622924369143170804005276465864907272673412486651297281922054127166095220824871270291862567797682493839939665682877283368064610675775284814737809690426357596661405396316576848301181065833421350959270102274594968181085724562550219558588596112488046163298379413140792674874110314717169843058217962996330535362949418384342883258819445467148283650501208054617156397320236626493271397546723423979728405323516897865004432398424901951188315995295920468925752959597744627977239747453053599510433863638623790941182916500349254537112835378988689772785096197325905892019156134014429670810958685276247756773907052123650628353242856685373106278060932021649190160427525979568977012287106207085693200204067538404770742291509687424861195675570737035316807861444316720583688912209346913095832663852012226249672892207220027274385335653086346601475785076661529520212501764650754525490907818680602575905037858178312369835825679335431991705311571085597281189175321542089979002487339639879234709101904174115061069619889482570924013178133143505478799443016711737273286707435028619958940042379379872931413700772351384750339922225121277930538137980908886043002624515049043502410966671307824081848621050394496380479371642238443147392618486850130952450225118486635512681178759081120000629142003897276832804911844187670697703576320913429413400652071708928590385210940546300365763269614713018647282428664478695693672060075582299100714104464055736506676375067769574535175347268910441576454225106775004413126704432042332278065907036058451192254571790141491047682339003812368739264521160671573605077517335568408362655132871626645664769144586241217915141389425597580435881504661607970448960931789411319277515095696449115394475313560054089684258009191357080006972955289107521937216936732741848764774840479129705414953022393665675870025592915541551480402589834327066249159523817722013031432856357119757764596198538961415006470547305619344506048886862114051203724201549244773046724109714046695305765027982542836977415326393111902111961377590121632198512002029142754592228208085225335372873197014160893488648818345789518607746881139056507116469776729582644935528970266133041685958026497068706187369742162727413873953853692689549134808144602324630485443717124303110440450911903911909091868253377424005962400422925284622623394809423734111192871798485962863289947995072321593971860243856286009015485761121727933626368554719794398111522918476260987569826019612519203047232796447513826062422987452524026165176398775526725013998622354565265900125761189049203476136361409803996074331469577283544768395507215626637742838324144660966353201904074765294527277757051869921673169164992723573143261252755438782307104624587235496422721818272092505094691150987694233989516419875445152794205551417436210136353831958171362041798452979458077846678391329194687553023434677394507599870504962105659435762819551625692533311071434838465083266487736875486725844076341697260833462683909194146178391754160530741717618138069390816514159320448832322639946030423991039370245580326082712597163394430143516643274292458013857995787631121015002310787656771219406049825736043477108545068478327260026899286814746893709679172312527212072561206935976430216627267321336915180573837979445123248065208340756981730603765630837244433629382955816509169209902255338719738529305863291921653772197829578125147450617248538093713415286740875398238771712170814812658724164760623731503915794987011973960625528603975002223033753767371946103976504728701379823857264303941212969538103288608329799690667107205530675317618204781350955593840945103366953587239313901167733223329623494377063259335162277204898912178321664333590708408973366544550430738270872672399902545818741331808678662139665755615418162514004710088640470857778330506590845135847459381909432526571206346308902972066088760132075584710761984161792929039396625889667429488001905356618701079203168248995844202754698513021816752686959257873117004498044889834116568020608982017648844558673897584584878728034560568426807013912866291358311778178189705506243119952855717222896177213403695307031286354143891565344749810565472853135052907966240051197875523333256314306000729992611768394095598747977082771031418700730197054723598877680643347389388138240505986177347887645892519035763203641801274075974664805364412094609780450642137247366689926445299011822553992195788517591872137305168782861998566576452311610328272311341021427702835685660915853531362859887973184956904096347794799763328189333368144005475700603535089705693604512018138799045513825025682981831042228475176178941175161503552345920198815387518252123199072923909809919547370545641635439440464552118685545396196676044137557828702890188459350704113996246989134513050058110398970062465339438546579495244745764288121154420150328367344457056599837834162076030992644025199696665421921520806510151098143515483772627039882765011460910939243112294867425471669276761729847925333837561779300481450196662295800419674932281638342093346180237372683600853741891432090159090179512449443795774915027910922062563670858620542825248795639660317331256571970851093463971443110252609987044697256878655507879775088820464187631817380249062842908133694572402924902715272883043276259992322388005405890941373972880620700948411564066971311915916586044623000107412885400795477547895683942620610755885370134171496689567832989907277219736386926452539583723902623262138821278767210936382268408697731901459301717517302219817546755056238575907471360549299615767905172883223677375008859738928397197232348155794018073741375067305851976107988577701066406490545635201907290917438557960874143250769260332051673936808218125120476290254233027630019917501127872387367023451977021215605084956474022419592813534971376415594241070147572098311331530988106071638974937997827893601197807694454463686743328940269763575169537713470611296884093998463149765799118381461497295461972387299205754428492123688201296785407835034272223441820701012423121317151329863217720843994289501913260274571319516998072583397098613130514211955528175505371753845969241264093202355595674466262402711203826023252969875463391521420813342065521443087727559042965472220140772215193336322996615605450284652050891466679058410316235413555408878145016381213760490767589834931002586881984517567300561815797690369744208896975486431903729221773028873493106853980545005776239609970489150581259922844849026369143848108734409448208781010810331485273328569927635262707045764659048836565461668876071849807518934892039351570844243708243663387406676098255342675541267064962764152928352143956919591923457010439386625848529538818386499577505400109378709847476624174560190252036269401484562741727624179611822501060362284152108650179430710276112717347359789660932753168616015830040864253692169131780552082524984369544597251823851638056187194141467012445801996091927789590077927765000493888144496024235983500565903365114468292564779253382973933916688244400089271506609340509796477464341875059184573717001199305082204887377461352291067838919031601811544715440304537048503196596614222304766740497439374330582798931786210326974848418661633877687156087565781165599760261819020386069014706567351934068927792510123797455356597791427966005195947710269051665139882831531824828609729850138617552866322354993437850782433262343006908052542661299901741236466990392805181949753837943553770867024383622030742047227609082540330145501441100293555376144466616037647139570775118256678786751361453055069285911698841330255803063905808879380553264039437029919383900502670173188217274535568985660226119903405002531360341587862106039158554331385678859715976171236905457401698925000428474430453858314471369053456454192959808669581128944747589348172345622547657828931567327501383194709897390886487019600378305821720027930022743642520322646636525180886364095260364586359162261777434854147252889340468057377360259944806836318881155324586812430303934505103592359461005331913970082321121654986315438871401578779008879678803833619414954129605180891438910328735158638231098030166674148047243421080707372297957398964461309912501945137824883722771140981757180384061086175664315625290854019629267544442546331349445557984061373511418434389877277934067076506379224107661373784341606196001998428619160721881685399418974052783746155056745961498001623983622831098177075301532408976205376040454172421989611465124388066694046218217290449296558168811867441714665380138246292894026261072134300899169085092051273304804745022237997094970196144797498203952949034722468539306529517881358245469995592838405684927720676667233975832110304437097090029381021517540632113380394530305858595653630720890129342681106308112000032073820947190656659574329503704731469262929692870392345095587407997173605015741903987592091428763478302561671294600263789997440254459774911937527260447122174663478925640210838979121908951225177330976718268077543391345581177453016602653805280639112728527346635097147908267459144701428165335098506820413113321777877065560249356512943367834599400790319926235835120528809199252143074695135364467019723034819909796122771124764639555554358884695723872283583467712798291167534557191372535677106428763494024359384464817057790405755018255910540159364311599861910547677437183327897827685954446171463139713105085884802449001593232706267999552576154382949048188064157682406877052933656968628681713503598840366515598946461523571349825961206543764515139788799478832040967232807835984492747739436014151113453111556455383424951371787149196513385225248929728804240031806041685255894850095463782218591198513840304799866559942405458317711402435467309873526250407763883641678076564386746781935847963417859120051134880492421934349801582665972295071849501552084877410124513604322846844646172193580206492775337479117903445302880915587115585174471359489506080439017430205106810339291667721407330512641758382344580142125913133007414485753769449272745537816979384015462730569254521864337193067544951740099422337344191411594912635099149257223431201259920571165135157484892330481762903632617509253287170637718265078896543570986181013464048702869561978580487532641485074649950922509023362987296569979437313771233240645632595094119754165689817050213487892249181243503439620177141638294064037969095176406402647888073879814428924785374230765987406015853541653365792744203344707106506611197731387113442604183825319827659440989227194808179308348553603348325093760147923496614515916089071578691500805780047195565269970732674906329522766202150592894593675374892683935558391624275834220339627195583144239342760510836921451505971452822375700695227923961901441672546512840664405066016580472224218575190074516214077681595905720017658561445117530654828845083533571808685579668102454037485400849479798208265969804687169990308177402030868530376485103376784615431967020885122167578440856086446625369538999384159904373959648122060693420611573861581343336855307812514332829016281488163183524828025011366715595640126820887117600136809825372350305278819733057566391191247562648057765784052989590233719941433588927567174038152759280063481493322739852492205601017877107449237399878243930974248866780644047204512480951114922252142293494902705408335990250931772363263098618005611911222132807314840406029532270582066877269856878203748088487303841282767284650218935476117881628534625153354113371315913957820109199540247120016622640503754740093638035064256176985357786338707434330447237636121377930621195127691622538486058343048621092440264744245636687660477844243405501587439359754058528544188804555695807264298699416095097000135637594619495175842148679920655660223682805987673262360314858697833833548764098171650142462578726359919155563915776133019254421649407691944972478041431456528961062425537384684306106195540115911257465005109491675128709969427856659437868201868276631181837127699726637416130289914850613024392398216799690724876365015065278913221682292131017944706104030635085344372712183696892509564187860021038699130619268562604592233940687160250129799158767785250406477884137348501449417373053324003771808989449993396303592174206590623278209881160553962965160975494723579797698751876131728031029427834001482739381945859361941752845103849248491257234700207001001221701296702136022208780905595658311381039198756760118866362616430720087179005186713948639652457244589792077909928927061546154075290591529937284421928228188638281955441609765939415356854265194343512885950629503884457364356751123048777706525663195394014780963744383815650881266698346194065763554178463683694925168084918427211116007232390974969953966123532517021241968506542439175834955402272009710354670086953406858498561290164259397175661062868913858222020653529404945079553855623354463666890534462323138213878097677592104700404227142669507761251959777259743871002479817612613159826126593585460059090104074043229451051565561123339516320682612537207634921855586160160444517100768544802413762751808820959540529403810296731989094080897724063667179655131676367385158147273134777675865848213797918717401043467986200196226330996076976290220972898907660533445477018688425027946212692507244166227687824497065938738415734993983762518941936074209081337480861270239295522586150164592370220170173477315178421736314140071439506111315393555190450538928913217584555232462460954962372646677126173199129360907775649750433063171998780456954188025013172725858895883914786772908081160057343503256806664971340466159437121835575962050254542425415930501396965907091158648850302944426054663192869483114550627018037334040440339577971556485956013720948451006269356217826807862073977977235433475980353660929504086094322083829550131930466110132476200079640140898416790819107444786130632334630314835173564406331904243786543522700966897110681353363994948950889164262121182739151707274577788005109825837530974795781121800072209996792898093765204940044883358397520986041147934611711541059313041957879940471903800520783530157038882365079958915397547769634836122518153137937715174884203526055381565660548289414785701941228229763787646495278042058188066776819843087789170807331787116291172539328259122357034780001572042543255447781499652636390843618948955957415533307344419687072587407865735089792072019595238287242985661020888984221466829237473317822529863069499400136796083694427838984010006242127736205713833296480153548422316232707862750024918304579719536885590708184550355069317726907648263637310729113601102174825162917948323239296210860101376952081673747202457393676475572789823865689813776035287291715811312329735469874126032060055443909156180321886045317437779893376844020481217698056801895550440863246363574481594023879156429543031846137831798359667627509889236026595665223081969497435635673402715464066072246152545262707729778763528507589754074236624187793131272852192565871911606657200002414495054762807907737709754246727715072577253254488584776949400582820625053411893029732770112133332843815603908839327557884636237399862736368344002275075289491264568854457452500979772517862539475744024381538845317121048175195025738262537227719877328243955124634990796022936688076906178305138994873856178048616405943454231378544338049717387499515515160385872434888525927222505120205545298518908866170580973537283285248637848823922686727069413486837043556149894514737701477808935659154650206046882885467013159261381987425250634736040800232332345381973347450231826255498470956175703422719445830115863629921958571817135217188262368981441370013195668081138314685536315583484639767037508858687872575985453100778934826091574182766318484688610906431285399055186698717729960655733363388643531535982744439898763590648064283791294877909805178725712437115880156990823595141329830593746165411811268547166537320747500115540686727737827281980123112712964154911196861724046996750606803891424993994475503921136259056791685652868079464628522223999349998595415032926695590684932279691529956987067398301021988975243271818973418176934301074076724636789112676643268415845685313367122862620638655699876652312387632623343135571201165552115397705455702829490392549194248277689586082347263267417827261394214259691786985620013749244206596547183758002615982528051630239935285790755114151736382510892425175303229969585973210697143239002486583853745444952405998551073358409450551816148594638476460301315437851295264716432825954403061651960587201663469929139750011802902092257265026218502197711233110479299174483131831750757724934098725390049031014269845443300616611304022330091627602515402862263516132858141906027193809120379278037000804291620434108447970010672312719543249263648334808834173015954887079888147695206045045840858624941293572411461592244688227391172425774893036794572012048760196911063820059783901032773628124198948008587428344508780105445026714297884133266955688473228149066109303231475166928379753220210103631219270949305501913227115437588137848533866059398683193347318429028776071279656056331580275685744297999326989083146119995907141626803456167689885052208360100881710938446741165883702201975081128057796529310219820676181758273823759522765728803057567874956682172275781358700977155903255655892213121478624638038600107503645317396213845312613967879666816562679102804605944867424326590964497470123760672715357181834963430175086032811451270888999571494908402643754122290741842592609010092634491582384562795313025672209375155331953705242611627875967167190321788360026396000440848297255712163018552192045478196270306849492405817829541835400821132708802334086150429346797308490015795458456358891699678500017358725577818496992425133606437114327677302414454307017933886788044268524569629464471256057212013835595416419334998968458557046343900479768973556478038646243029344164487786594124114266512422829856201981825121715846095460872504884957485989252047184466365854391346761488126848073608895274721453331619341699458764812163509080243511158636261692410720979227503146830100931963808256916749551041212470516799661501709220255222113402740606312860689793368069281541867994437085352786002615837842777219293451029107455381357975543780358817294455881017403991402598327644583761225439115133218236392486641959349401522197614860422924085802502232255456179290170310452371600123644993555549903454841788397615597475465831448914845760455874558657152573064302247616217055515523774122665287247034238581887650979817194948752587028257683025092267656423585648206764147499297481801345701788271688957610349730603056324218033771565792009459999245730126296323322284183549971967516977873632753803947564141105785917170761274127077299648719042589102664384819368183037875464098556917234878549371901354735947922919883034102706603632655405845806237059198212294423574229309092395601850948191992105394954000118721066855677989410775019598652617311506105081775414043254366675209330565877258212556024827845673588112779526143851179888684899478981499416661641686825418635170766738764120813306002209003269727933832267709915260792638335040350121955097386432589244133925732851491470107625991775483706037624939618302223589196225797951144568265019782423590786108559612572608855571161626380745316878163327588048802344653523637088290034595930826355968053738480087165042864976571152095000466467886515263759503792028052782743524236343129372399794002308591593114409112080699902151061244512921647487226858716239467949704501596696910547240946940348631145198191748507261665778499613494961656491798188079444033697386988955776749353514821011693001692142026849700125898785232557813976138737082554799302140184115307450218429477909309932138683288988011877963796075481188480229025753779241877490988474171479582717246320664877709793857685197046211308483674371567804613757268183522596535535383075735092062204714103850177671508796461024779316430423108106625176725083689295112273789018120166389472785047197309434043184669546856180450098417273762636836494841714141672014504719180382309926236919523376490999475721867882998030218847589771137646954396962530985329359327150334776692883818181637081692164124398934024304694201125984730080069634869324587940571835557573725691838171492919136905582657091756496459324190766955714503628908378366054335293879684694834694817803763779111527574029378088135739298079418795047210058032426926712534946460133913990533876134445015599136101343293884689876766966765256057108780505232175619987758970962564952264330356523592498552349367893689483595251819603246525286534162357556093719416943364960441651302829939062022221419431876944697846347606504070767641993308853711292016893231065235553734314438020444364034752270109285493645033757788929820943310403559981731423319777649444286640990694440642814547096104899890972333777413240254525725014342437643403797730231155259138816387112756119877480557665497741942750780166429231403275532989889888430821428846477774183656432071881093659098954255309554487363511844163182378830105243589287658269292562254118909561402413891148686948572912363529349647934016510773499919517865355541266701152795192669005487149749024033580106519707201178791719980869057235874655376874107355380616977089836712086188953025772183847358072509687320456742899938687675702983883641182658914306881300485724247312803931782337717789411411989646723226975846318000252256413552694528422185199814246944456004137685702612153013583474455510596020722903745511475676148171007280615709167671953370009400860404196888412874933180722662573569176736567733124309749763161155711290822307933205172099846165747085842620380554076094107536800449481320371364830456418696570369784945609195543690612706765566628612084361355904217661960578174062735416153666144829990588039320946487564269360819445367712022268611506240154560450472445778042620807242137677218194067712783711970300125989564790968786930273098609502023837221158994055095289115427859905248205065466096323579549505142574920263121816018337629533356398179511786138876434209195839266995047764099599071382518194729741556371579481668861305050284840379756904004532872430465668624932789711996260345628156415484743354569231517120242162331138819232913868215786966563588936384412492356542851744735307510893742562545341520280221424510610653743974852261803321219853348666321631783190831591238933267745619854857988658054775497966384938627287003654024329425575687844061520154030323975525836821018133685235245768367086354758291059810723717822727964467010835572562485952107778970712412163479347041630953226809077263345084235236487239888300504714474864338752304676543978885809251404828287999148019701793748050141073491632771104198227974360196213399453958181781703202551895499083507387954657163731787230879107932161443562976813526414965526431591859345202233871504273330493814516471412671468819549929493540521946225636595315912652162208579376615026898960685766483827506185986425193562127088252254055462746632392589414440220786997356013651464609313767150793008459692054357370821161882125326850953495186562515397658778085140944437893153162270496585949162508522311873882186855424670974555942522584470603699264923974013086867249394241731173126284248302697377220253482475129565838046785928864953339614535233652252290307310754950261491599923643139474214659964020858985721787087645158580946206780965459593424361157252213707942744423372717298507529927666338391424198247352246552144425161792749814058512682207228847190608032306758438090820389912229690696995397857003014700968330072801595733451534008553210385135032693980870938637584988668558992425725964811005277957449662178710694413383979714256101175428343572229262744823841775231647450729119763188710558770497816228977052469042907158778727528735660210668864705270700439818916451680907272240057218518217672571287884153475206122754570160705947880870569436429814736730430038333382272757169843321812545259640698731998309310093530926219478370313329316141479204076354388433201699797956409577628989771635976025144819419314115384640299577224230561700825156481188086036559465175571949178214147225157494115412785469935705277025000363566080957036603049130515050213475384628554842690513314233714881471462709182780499055886662481069793971379708697650950554149381937223514482442138222287968845930705083805982936419720816126428865354188006843257339123972125619998934847546322650594078515475003859825369545235005746031385813923575104109172260592026248550285266585901121846517514832553438913980083597910034036834714055635624043937033700080793246304904655510283867578632313504958860613948240236772594145099921864531790224095794877161906235106708154947892833977727298106000076948525915485254375741530484908425715625318133536752513703049653066617194902987415231132509546939701024909366846141864551012004177771297112925495948976254757393383415715669916177175307370033060244166036681206607359369195471465812055739425702150070227646728746210856737548606666675471376769256191060318616328286246887288422045078662742019712490189540687810287872662360795310625158151006129071613919570109802427749232109761456522672447378318715660444984173979231286244969675127103520082725491219248922182925978856982062480543437914872421205542755598087722911122051787612448607194130956630749775752813074970580074930653855419811581310028050398449585754566341623795390390623717261502570080003685438101045558980836931336278577976241440074844331892371720542978030565278578731220719859069289747487207701530057881658239334450065177912617595440543722408133886234648081324909574555943467019165885682263872331370826624562709224413297142715623436752015600135707616413133251122057100643538610001908005952798734406279202996177158906454334993227095199439255641568576331417169419520102621755936762957538193525089536411049403131243831342036429576180456656418432448436161934716951909345819585928407252350954507500814317010716337600394486026496079702470979034835807294805993276007059697203361752083619338881706860062442507880819077064930441366840627560627099676764852658981550978419839207169466772054098886847499551814218322971605802325719931815167207726204486646482740124183247584265929574564094993904082298889686771688345755856982273611810303178334771365820161530757638581400358159511343090258162308090335972278099514820779299500484756969937138218591890778146338924773273093876205021445300056734055392550347221383792597865306832105763242269691674011681448127490534270000215505075651718433569149548508202892350719933394856993611554740759036184186384548488799592221745075058314903787311771065840164480238135999530397654026948999130431613607865122997571550401432654645333303769884847837051251133275554468429166244057208677402495725933367830547771709452299896405171931763900683846813025209002317126974423948224256664442522539102630978369029432631860873014624235874807982193775442862796197027213408136324926626118906541807781664954801679662494019430585614036308385336304670575960071393567163928074195199683735374689150882947694013277744928829827195293620757234017180112990462426139904365593349649966956089053954624791656792150820625760882816564176069172465703437352368163881807305073506297893833067667627353968933939849035394204204726824478654220735228062156361038158954388586062419832907288789080020936456500537905414856825519468634588874223314415510327678455311273360589045316302320142377274211424193942242166213410664796243048434995289193540074561068070854926858127564612997853278901697626743698051518477403517864063062019218441025956475928896673729581901300547303126626861898186659373198736474577967539464760743950916667952678835863927003357016969608638783049221871528392231600034334224706956472986718691725378699021418049003299436476371146205020190346357962950315981373657982055982318784031187265092125387172807239834332915655177700354704497674098884591310380064851728317326844592355407029696337014947812700922057611123623231569226354425875375939496502151886895686240949154519179021664155620175098929340356381124033828930255405248670301653992536372889342611299192686126816673250817423508038229055533016336605341480979172700417719959983801439094844163842799106055810049862295229322453443475288157362504557309859409518674089263185805014904112581659658549779845820510166539842207106345902108395548757220550132325020843583585540454954603934047495132204230969887390511360847800918389363062557732415224163063425021071609614535842492168094776896387805035357334927657879583395364300155278963406860721277068877068848440686799360994747316998045351989731056155763451650179991647143075266913857023737442562291666963021274065153492368832636718530177471498801202166239802555189851863370825387691416158079543598514102268205086334688922105666574744158683825650140050767630159879558695345248826057422249153286116847386090536989637665849547367446311062517574917522911665968055090384306214370372233776630632854633332494352323894390418863905623318142056371442189645467381593311988304659206450623310506044819731313005184987560293605232617664976258941082773293249305030167840035095022095623305793427364926824435167751930404272775531599642788496988337593124822236482773973366668643256048241046981984857840730817434565979645782242842476719874531884431918257613348004077000749095035641486662039668157766271724468330788953913956919456195407433466340253092413637445449528424960547251926024353932304671391512527272733551707667340594837786186121463252000591014115852115704552643026569571593036923266682053278268934625004408246795067214447837715314486613113687861748257148792404277251992061068944516459147015243033523430805809523054164396327375944404407071824123900282265015957818970216079820613079120595243677549101308659088270918418639421013757267318005596851100234378263266618686276244275821652579530271525511305030980914918856958131808779923841759613239730890596528513885522408630501318222217589717860284492562501665919889521982293884199971939362674802650499736023010988190266778682200613655870114811987680199030778851214813503501792529228282757120591045740528360554905695844623016404620346866190300055755580107445439703131502965434175560546003527272859032502188983067857062960637512701647164516719627799901044303123606171776138474930454798436203028366017385211646052126353243185346456424451475653474788118986581264786014982851227914405319768336710206663827134074498947453535507990008204783235243793504255284442018317162098248104530893058581102299078011620411835139653567668961784222261334478636134201753968654217127764656187435109061179816738020700885765789328305013248113879229978947831160896806916461362165444953012947204724357146049250675457849819547413612714922848058126060178382829743687632117440152534478822753650075568794440927260882373788512889800919472009724522906351102061616719016921575591595356307571427020499828027225444069145402539423029446816828624962285297857595422813255776079743601230485857530392779294353949824106297025477105621895243598483028867895976547651610600555059585652710838408885311115160623510488283544350604928275455126605527349888244273045849897540991438393044988361398489801399071520865581690589494768777942822096745279876010887178575178565194263923043304272291277827619494317055968652481536030571772080870670626046880624083765085154976518299998848902091675279042641932601938536753568887833454730076208181053667459750574954954427576140775929743610296053604247133410326765419376912567062542463920313222298660082810880496842957379714788013911742240133743302582551087938989840633332341121212833456005211490851283084824184150547780307583375860631804250658413938485907132527905513327313569849564586148078443002653339747705861157578020244133068994805144770901002748018390022903137248988009317667300817070452983229371282686299041926639390389275304240412895762972349230335961697470255863003471647524749162368624415823605170338144649654674329912972677682861630994776520992561985995751942261973578356078358600694346335276366552509569057883046159143011019073688039503602464336403521718048187663448895324799274690313471960569124147976566011569996448449360731084301030795491306723002357670321092685458286828089409756732583214662378953954355323646069147364118473549484365477653843417436132160535776735177578761765194683065008219021731238501127845931277534598037511089847532636766936368410859687348970818914585430992493753311646538317718140522521528199041050560828990636694829830512427568227591871822412949028910446442939661977410105268595835583257956893116587059301917074366708776871969064349969481984851627266825943925283131292084512459195386752664669952543366795215850005937582036341149645252607724816937020597724540801347471349158025947505912054782609514472405061574829894369293091704813653242634829338983784306791202899638500024632667471458083346492402878339539809817557369919515358655517972967557838064017659040577260968886632263947943810200862993104112447039330907240500794702254438777999746791295397092611577128093815781271681750358800474343437095071391307678974357443722749806623833345204595026341722468384502452561799643369700490547694933364604506300289471181280501041200527645201760597037658709687022121354193524628686471241727105293532481529720951420067292003257898884090353110916109267621388386455346074243701004923831972620034097821994065741196004313085282276187221465717950931202949839182341753659316014318398971112897143159374709363738893855390446785480692017462352444278136938772063589149334680381628715609560320621016589612044994671018665662446515773244780680129366977573805848521071967945646025344095563087330380701010018655241035576440542868662149542743296144993473602457304707523707887009860667997482626384405103409515602740410153970024304700990975347229444267873198118928509468524522211509601897360776704159709188687161709633844461232220866298305709307212931353386528943936445867990240209904203080659194227656427057052500655426412128306308124324048563001549834450194173358241447131064721052608275830059718421756750122370207355353817227876269858886638914570421960579721584719709203481886361995903353407008146555318032803899287798269580557124009235587974722763039466056974880910291278160563089837110297572874989588704437333138134731585020225875570638532228885776671251169873677904376763034424749261710314232469241088973207680040791521941698706181093849990556264269566230298672188777835389491405204287216164025227623815430288640008995330218075289627536565461148443307869823590807459761105667158948960344742197260792891209500959948614749588903323100285511422913344758688605457672260955400408820805048514264984997495620238566070833955356520957186846145730136956400080470216544433055968966115800089401726910777141212729707897995863324805328804829187009044962059937880238367396927600471527278037980147678743930757997873908126337107462686004044982762191421999354964893565791711213577964784997812142086551379032586325444656083930278890888518232050208220736690655376247302491051904805800695761247086292184013169202931485485028800883413316704941194127149156902919758219252049606654907611553502823255280726362810108852550995633806299180212703891191981513719438525922877306194999859725895782658676161753465527630255062132201731886308336937314488041544828157708096098624372920271381535583562581777246946637243921334299410729554588180698130303775727654612865101642327075946972273447229801597485773927034043415748519453325231698362739137187352724281593042012244035121082737852840675279801728466415640920857590902990751750228158079621499811128209602424073809904127659121249815772848251484579341659903143777223738824146895565442214439760643895123578362804093589166847360527679137501746238603323420775362468216474219283763397582574424204075947113523729750006221118716130656867958731623179341245132103075999618575557682605707020210133157072643330058007465485408352021154586823687233756056253636930528021548307748803089078587275181091645892014800017687130285490338540499443163694735630647749197662197201077126192751202642554179676863559656972694867831849526092266114100381342280205480774540304500752798255592149625153096150842214210196660611410300868649170788105583325097448090650704656989703156009906403655434223459081038521659019202642496392886610425150586678035759457416863376718122667888864623727304732624550502790995522623916469555840935429919767858959493130308297743825456621441037162493059520641787935820891624472521439581202554105793481730545318070980586940723573827593190765778247502503916811872274862063340532449143162854328627307066567039047870846330422904946217254780562875234821073104214184795996949962012295905174507798584181823295842137014493390402523523396866383605661962870686963452255568772645629492059466817210676597122860528541430738969176016037512026305540754494997867716295100409467835730631196754600634448567299588624035502983344551294719670780943374944285863685177642191738612379634670507779547510265855071834733026312038807628260669760652023034423698128513573147501550548802137378475851437385004850247324378629481389905427508387469842281919601428209716569184384202342246319542426075718527624095912063116901909665200718760742510894921861453806908184893180437765123436472716612073323967229432723227019030819559004280057313399251586567039448208957175567027801796352381881900961473775538534603555389238133268679326126706760846342535161313307314091514698418014871100012855983661599077423821630271979212824523969172386355068889347067128809091574601650692553469119264029399685140724859519632112681036000220057624718172356028741457819384454329370540039057052239329654320799202112626808193242488584533292093996815070471716591162222933978520441309920475187974528698339363802938935649981210938000915490869422467073214748068570769664624138431458850047511920561249148421785599769578681877071765362725193785476353292327524813531961302681402734659236496770840008151847509014795446130778736622742861103277732992517517719823167326668338589132511720848025300016152494983037052558775755746388546753305744188368174018185428871481492720832572754400171377365536792391274211042460481060448275694646184435680989239123011396156935575101252906257601516462003654785976238055566182159124446786802739969882632452228887233096862151693182951415859498112811382935900186626034614559515864429716508798830822567371292410804556895992771259107683789198044757266513494380269950386175950278930338367289794247189293448155429073520399896398367914358556329676323068418523056327805950420079403488413419316011343448819862948369991122359596514681094178359890206061003806916375259184270576410670616519809894025485967376110056075066997992135272374481071122792243398119000580945925060019552302295465485662873966740221657544622855407944387472740666695758487589223949161998070442658431314454536948734858345785605974838896060879033686432398648122913904197780352851322460896452454048273095551609962630348519931005242695019512657964432750837709007215029608081482234224963146926803956940794663140290343855115218111476990895348089814409660455966708471391920296770389892247398619470249473824633309456991483821129719343452386034603453878788095871143582410058365548061641795867098032018864358715386236372799089837343315425661282472044962072530657875224757080244903277203278817397499873670428231231202357348464231825934184829373404460790867607843605073400451489023011125368849137327749048433587675785948001118403592495741702355368233830896485732174881094371601115351925073498072615189456780124385254285098664468027180855845351910583166116887249355207419671052989009747274712551422762868477645792711175585778355658422016392026997132611522413824791546372777511881675009594413836167474270980314288332397589887696810030050018499636903379149423168070178276571272587875401063863416660048960368229309924522011072746414965293945275725365349229904894247038011694070370206956304755864919161624304560434152092761691795115708832688754317707763573914834560907946979640800444881988997425124826661456296512046178203281366985292309704159952068860754082958616390924482701492843158153885414693919044196678855431769522134638963820882553791344280386781733716239941026310482931000627394682584940798315324529523497520008295471131424818462541969163784106252740268400689559592205038866454084930322489563248648775454455787014004156438862489338178965037252288067552376999166200558770495845651640165502312793390024322782734195205226302105406228905499214857091255896254232107284506197136562960130865186565909075826222110869200741083785794592851803816909864041496466415948206571260325580684370149470125886380641900895541137728042214153309451047214824176217434745203902469013306673083120269251022512693578735755249494043141009417199408335729944882580798729155284153026041074712813881545917285904089081273862893778549614691445196057190275300121891527763111907244696074172211157233685999192522561412953717205155875418367427798955513107727684683861858559956041464867946747998163267453050022620501874600921421536547472840732655693625932619395756855602063758221148783711543386563525059286107852759564037761151852845464091973086698386224721856201506844528193729533848092834355717222675053934434708129995024151236187495029622339105284711252676876432908635558960560553618161980432534828485717905019585839835647298612500947692971455420982268646961095210800628274065359887564067528153279442172489253848656909555710971264683678742950499293736029152541635329017039450765412121334405022442387006928840326740604701348966254559935937240849902592644321214912785007979816018977602625540668295689396481919064768746333424332715346590178984824681671311072349687923694433469595588075665185523985077373443504983270050463368221191946952646351112472737117561061962577117414996916554918711120470242263586245389544336506570933705152717938768782017003405840612057974486462093040023696901198703580374403414466525275828598332588725803025532782144035237522509156181921699691101346367830950825124177205634292311497063370578266819377976511785647963482787320817006939144561267936230461590682736429795336254553650816111227823868408071364275035995888980503648280708756276759233983039468454489045556714696592532438988736654131911826435660576415645222580116717722913046827247898906219754602903055701946477358320098243149690638765463389363055988181855499663514434272896256258782945647834728898376053393775026253288671343507124950656274714330974456730300801920929333337025856829747198738105218392791357302081808591104085411087778993899278705490934518770552565083071931923834057498419786060397879917081647244633611704894797887084447475134081855167531962549215971414289810039387003957081310188867559446992220751915051547674266688218404092449679647273564408059053806681739271218131015658154417103248123214213787294152527459173776481278538371682627761962277532877684256730358664142148601871779702816553865304454223333754593152417892781949404629034742133781734286989635805899675050693597320352682960151283661606324975917591287199966817218259132187408855662739773331174066127475880929706481522323019633778233675437637187724893552753327054046363398193283494332423301419343693010425225917075167138926674048924004402443513516387580812941652185805893088835834737082874643408627610352734856568662052173759880210791177874927348393517986770131855204995575607837872188121454874602535729923436816782544494538990151934701075803990677642958728626272841777716702641555900866910431196950695441784310777203507681452852801720742969699047702175248368001440886074740181652759539890562561768902602984911437106920591288044936218735332852397900982011535810197022133670456689314126539634779873769388263554461982635861071629127140852774571182233614156785819490013754626364274142732983230963498218219681598921372668684474993633788483220590931462608567136950712679688495135243329945435284245710453550461953885886311351927337283338546779104567630837128247527836838004041542480549109257962801075198689507500422620248688963187254351791059286191211297936074393536883661520142314455487363080025123064928003261873678880460588197163056322491958578058718908835476139299553312900638548901317475658394821610656924868620529247220749307599362891333604491656757127819680861907665643470571217872249515178717181600970528880768734437839150269225845699133193022163919562553058341975135577603566133187384665608949069796715798891121845000784622622391546529132818703621072358421351997394626964543317408790752083028915634853995302442400619495436443631974304977994258179556603769241955540402838459586644373767283268716666619728055693831073830779886254126231853961801768133849435524440795263887203153680824790102367941467200238966296275197501492149813401240386369075610100693737879794371079379647594562215035458846879756338948734589929911627224335721021182125890946503092501733134808639658625528268200615293543815771045239528075301419319348990400651623890061638711073419599746600805487314770619023936331223991448873679202818165356330066730081323046350555220957818663812249755253652960394077241205836825541092133984529716822852915804754796592078419907274338555549809520381182846580331823216856157022352681892124672142470559477323429836846992921520105093388523761963651103729108030433944802668182342649156552568432112362976327010761222134849044226761982285989704568027867767883469777416289429206090784312860489498349640834783732177473961679231991751680530906588014160288030752370656400552388513088709240434215739437044683261994102366337374605084434870749614188081821259908208642102478331334031833068430786754624196100836470058623589078170311651777380176364327368276492635424191598658858045447617050513190287984934504841468562450523110933943580221401147950958264179756574308251174023845584717034379496363555548758503353600485534945157705138386531369929518987607805743584729292494802296924227019889453396898153087485955231316609357119011871202186379715119454217901421060985302399686572381864633657404295117694356597829677574432519279610943352216260532980013898204199035776351264581745592840759336090255984461652377279720675206647107177208385412189342788714957763270106664599046741387489699452826343169493362013577573484979993168944759878818148630994648410119414556496915938745343640167864957260641619872450456673438922920193375554777406272997034728109198344987106587137944186936786351794754451139345147702097152497130676340808769868780682549788491028802914238144794744335758652076873154936129670627099319505888192831127558100995735658748942867855279773180293054307679094068510613980151848220811735113094225445985894135201369355877188339669654273470482912116145944623551579938054139513320921995461847229264676949004714212413199093742435043210541357170100359678865351119962599483289026911668604178551435648653504825758692761639012930830091862482126607035872598692243536278512521885842821425959673914459708664886448652629279727649089288516757152393414982624702534673566267092222636989093856885815012731602067608557757205463869855924072934640865581217179343948631126088313407354909779004238200667800692027096542875972859261141586082788829379706087109416715802614200097933739567279189819428960386474948828029329303272653814483944332820397825341521040586701342221577602970023071235492188538208489787953530671336991300375803907649454452681623726936594762686660079101485021984968517843914940357811829411081984020369680179064741346216290072046688443943526134089441453164778497308088207867633477476445316131927910162275254166308859164318974953044865310167780497866365700331385298896628085154479992568180117883610724773347994997497534496922643252583653273249418204621254073651327342760916956261029512026355873984902047598998618516890474472144324326936262952566269343126603516536133163046259454854639295824451410899718441993580393838810017414162982882397139313464698363353157413069452396456140653670424090665196016285231132429025961261487507026538593959903110446834341430040034865051738863872920739201586044331400922149294614491177714624743539549173001617458248767644336381556862943617432817181754541173538969338320322349605378793570824288619802094576906220760249198226051419483134242870837904502500494151761890616629671100969645641210268350414235202448522059012664552721826714349984004102126045249684086268640137490704813275526347799491325822874952612317222142084668641011069022269523761493169748341690051184389835405405230125712153705540028829836386311420227964193045155573365855669199882416660875851786771815685191916907529074108477019894769062842839798928469304650647306009611850740922283734176108520827097535375376572497595720239912933098624019833482330352300989186109882776211753533530160729472347152563221619465233519182230988560584258113594786640828099869168190869404711508264076865294050308258622871166886763284277210528474012893123714336415767456887659451330648066173650844319085709016293840432872226979719596178409458591586338688939366808253244037125039070284580771464024964208430892312061703427979331456738072258890145256548801301883037452987547664469070172180714973259179080521905886690195969298169578013275415912295417480377724115029499325395135790675717119722485756427231471649302182896340042775937776644091915592995524606959329937355067592168063064542331431177450688441530978143726662536291729570584294090947962366951101844352144821887275988857606527230637814814861122125346521383408579616528258437617863817833861478317602498009160744127775526167903582200751359733071198838774273236363359609843137861079345455493998030696279546624469747221676394334793966300369255674170965043958538502023187081008735040608049631271828610483820728267698593016833618659331584580492721886238790810092078141392650099191841238520376017956649045719262851029191595970468211865936750230806892522807230305696332593861741423304813909923772982875728580106436573334402548024578052662063191773115013779816432312120337468065668897797156649269734922173007846202727465691730192521064888736689593730830844026168385123923181489265683030082965688062284439380592957447672096614919081468351691552739267416198735032401999765186381434704504986087603931095133754819605380471623913604280794894757159679731164477154226392832775676777850327432628158208078566709153730991647125449202430820475177966639958916190762099068951274178735400729893768994205970477340039139315409315764449627021382438822614633468317470739283871652297943537814800864355243963572160800889262926354792694619019454557981922630063033291862303121794488224094951460824090349409809826219625704667364084068334417875734568054743811188080877951502267871004175712023751331230935052209315693167959938730820893176295311201521805968422542353511323972852633734632597205332106792172481611055819353525905362490017550247022473600748890714183336799325362086187676160671185034292467178544656599682440581712963437186906721811505729026960551070519544924880245479557274558177806681170367093138030853740688440914982333373730265242678686409703693794777059413828572954712310860834329808040719043702205592968720992192655099557958695959886578237320611457099052245837924701246588845524322547912065794737516803520405014090901204520466562396002917123798156564013399804497210911110376996857199926061567901850762636623597710745177024837546391697131861332075893848342153445840602051866794340077306859728633136664452704056830963632579154105395144012027680939383287150531365760049470097804335828055215829229263133292200048990736031474187207814677168046694625904800137932409507138551734372042170543192435373456070430056634768528003909567032161291458600622954533178820760324526547061687471876614673946533007977053985540504036076428956616023325888790810366030412812122928437607099882945822406803173169973137545599264969399987079012937250768095320495617211601319114308298428801901841430918497361024872605217584852908744855499692252832245002624849693761668874275397213097845702977232005045376466197873886969707989227160107242746808346540513669851540353500165636868159130737093294827791165113679716427390107796000828421719808096983681020652120299584342508963049809852716919707648942434309751482619283646300194117984043340697961367755842656345981059612728978247458587070947722893986216764276290378767093531180331010354964171437186695662261818146726859175423840403085211064330585504486110800550343830323662889464092518455664080804384225903983956722048689126313796994558779496500451906848003830840114462531496798343545786384851822549484951827783384858900706224163439582530889492626512921088232313145593442421145637526321065843040171706775213267812606398287407267042284985190743811867643034176311773523403349500772327438381508172501739651244645299722857100014981264996962463772660492982843535354751947882805053362224662824940708474575884766882815802881278927026988218238428545009495884504865813806827346670843382446812462050511570805722816822915654405247758417553874513338106064046433057528792451974297789381248788950829215077893219316800452685781773278549791586960315994930078793988461292406071252162624821097960905637554332630246888235563524981023828639755442112151663999117494443115946889097339840056632140734446258581629821807010944023772826800876868882895240021544604330029652251781513388770426910134196711784880877201438093066591757588557959229856983388431737866089920316724261139167616635450537535132197478721000590988163102317195278213318051822834737667044310808335900356795994323981819765267672382956966148934468903968312800384209387617216466844794368755534931408644223863394445422853594253390607310958426611112914254101168406423398170195668051913225059756102965932830714139828672332980667340848872442189278320880498532447882160658957930390130559838748553145179180190018357520203041788109930595626124870855690736361270056095465871665522240441951254905811690613342547791286720938554756250204908844163333730107290681019068918021074032690484702183403748540317482449592613733035035812774459789144444531380910152860251790858093028090115009621467847338740120091819245252127109916811753656891398486811344461295851726100210654053094760703293116165767318753232404728303511806405390582492795785676656826651196811716132649124743551583846909433212792970444024341935370913182811999262611523749653795840919556866248545216293488123565650774875031921345514430539231829899564906655962470484519029789823840812323055190597645069737685150099383404930497227815998112543403362036503532870270870544479191180096608389512203220681470559218077363914951379593714960768559631669589267331554422049002924319328762125496319258777762436852301360911930364301409721048192246095053742842996944464020049514299397779327358651942659909258898781035183040310097852642015480019003513925377391180662718869398470526920844652838386450006175084282098182837441947906841100822158508711212403787590712112160882310160414189077867044939142827122848567392679016107928673798545075881798486174536311498443765829237553657608335781673523097519790480168166755841504484764604988345139846827284863100150035404358828658697430439228782115171745935159159750134776283125383744996709340644001917732182279933418939831927957370613883258883038039334888456547676218777452081582661195510288273696349840684653782947636997152594672418161968151749233506966531236766958247569625496395260858286947645621533668799899286492178435644576628455636527529101515342535708298755607078817590580282361910760664886576280595415248049176203819739936717341229143471313439462756862457324010000853635001745563499252547935417310213801393526227316042659258977942157537846218085005470632328633000456120761114450709330641959302743220093449871765824246492964734279696645732524593407511718589077290765054333930565115701869625960897610371370217034823631154886529275407841603005656868617024964972659578175385111805006463801237937189672958448575322105118885377329183094031650596674837363439184357617145249376774880541543189057881446109225176221458179148193174333517384572650412792248900384582090420687129897201493766973708348116696507685009143545112604321386321061638721083395342166180187222619435419725181609163014345069672606528323891929264302926454069276621344471035751055208052031729951639059316639102261919499885027798155792376178792079564426262260994490398462684790189757863373497048633394036857861824115982452316734201584449822059381649385919365888963556163636946506001184637359572889385042259729593026430079816399059724257810077975803255590978199582271905255357281527134912273200608616518994486676061125014190008933947647952838123835515741593710419554924236436242416356853003137208902719398794235670360143632858810160227626330856231670458397923918019390545051454114762481923338098688099259945405114470901457028445541455363647513204426737898661719562567748794884402113618836438717053919688653916907356926203914891786947068407672969990562146935773940902625849984764310934173162994060290433746298707168157035756328513918396674252942048722443349617752950119969792889040082626253177608408279067714323883373256067166674689761938288717632525006058963633904277582130923923704421382120038773811018364763973532872351441378658984667428806324778065778966056349959446175495923711354761943087276993691359410269853274834555931467602942737094904893416129376240778940312953011480974888506451354832190873987058706332567578733342056129480174774243849802095547627800584819086000015100090474143052453728431187348078378571842004012667771799828148981877466920855845549679153207338609299511173652514398934837489726831855049468136698956864864144608075490520345610929891433403812684536610656188529170018379910395360419035879297110108725867540148807921982830327341189103425969582566168844866219901294589684318384133331453751750865796481453901710827605804148015169087020237427014638200995140474584280564133987640271746255273540990201800387369109655321247654826090658250514899783405724317301183150201879802892944818615039422007035585968376086817923323335343633784597567630349115862578898098282164791605436720918652262834382500163561396055642486188504901552533969365050482619947284325786551549262722359783571284264037095093781597354486542885918242014169298259394257855579957155602571438707667187214705350683967017715361269972221356195584546325723398531635043336307753233782395593536974204945970308273149758629498605328902645133404476946317494567280852346282659847339556685704537739046124347377170086633505443780477312023414823337627038937678033559279182630215513380321363001156528557857691663311005212908665089793923832252436639156375149831413467124195190987910553991657963236461592381129657457294075638499978104268520820685914359878289225582351699336374604096591379993520309825533754037799559318511740739987129259136236174422115751925322621081673697330197704902863529157650475205752924350153071771984251961922413187268627893388026701830351167958358516281849956900525411779578062377968438160330519689317667199037165062794573193353560904646200725490199403228547916817434705075345514950253648944166833465214618791706907061951182491271048990218003544417734020982743353291340604337982292156565391936143163184701335518371400998407374830626670973297976764466582746540998758840346580712771238898074342725203668926757321232791326573839207784336589830250977860606502653757613868318184238467683280801069387698626770275972592336386013320017132835156741982609278784085347536319331232435661213890294793084541047595791802638802707522349505251238894348745887308848207556132896721092795167541981588513297716459190641196833232127394661551240971651233369656768909758578740862062791382583706684014655045819295186848535476325078066777670370372388070904744474088361407195529162983539789998567859973058702455550577629993374243270233059166536683339751288631919333787065041476648802819784306760218600516469845301030562806781193833981249516098126453521914701207801299511235361510397967624183991512632592015106690943976188395659151085887063677092838910787234288554362641137309189537103809370356730129720837848434402930690116180665014670986983113729719178221997854997813173373956374808204031207545248105580474703073257367357802324949312048129685110167430266118245281098470013125960730927544800740383484292268238470344694580839719564685966605197240931676588769459198045863035367877985828971558037954588215209327812738882986041072316588801839264632398166768373400705836705928321279133485283217562331759313581869500842836274243136041902999494811857983037026577243290832060433744075926900937062260752157433880646343695187534001015838623347817411816181653203986794239707678355029352422069535263160326209988774949966154149500858163373201761529087138705038912990889776050138020567156311055047341511035648157131017627559882824547542791596181815305562295709048611547905502864941148442529434751193180651889099774258878189210542769065692999938369509217551353149148781861722111605356057553004241077514401386637658942482300212471486295815914951737800124480285223580812400148772623801357891696633191202501959173716191905216548726471859613199950371133393699198098938150641633737053758657606604688658124404174425029295929552461157429015957746215351908308805608664301698172458031160931838929346281823922294053683783690187720806141970270404630217581900277336362624116435770189309681872044690064755099870051941642318299289149409497961116246058494478018393858211028092745423751063355496662503930903119446612405579456340425099990254311000608512942326160107998190782141667001117720294029339246365235956116468920734836178228397442220670971389789495750363772912923980199851568631846146266470866084807663202996949649753144848051690061687466822646698950893822245958889008423742811667810498407536090784646845876791142509792332799439904684599768048363884054371997725921766017281667898953543866140635688353928044591258966914320055558977451538772277102788791059373585503355353003187351014361158697699821425478762907760127866250312656596297170035042523635337532874665409775978561758031513824192649348444123856656792506771079950844657246481234395637515648011531756877498804133955023888388047428672314332363995755403471825257435091388560708048326768928971711716176641806470719223083482681680686557635742278769177863596964451062337729510131088372202370602518167031755298888309788608839058513525837343660109588719486457890643263497518577215255214458151842183075075713913080779880257603004650974460597094068577578238471336659445761480403889028084949051685666900292948930548624590934105770262875857289091940852825923786919924103700411264837131445866344179824566920706611485904370172081819657570080548737445575450505219275157117408185619371762098691520961469005619837608124233723895331831843898038263133940990230144666237659527012401123172422019751482224301728264308286391945407539895293184814978959184197432333258772128421018218013907369923994935605518555873383477835154107077725174800510959956918994547483381424962389779192046224452192784574513360841623534129393900219421886640983876436138010777612046590796249130951693773767296322899960587753701913239249212496022173871309831412400928293095407234302354013734574321095429444347130301962817672535782935792219482707132203657609627439873573228447052513847834742645202048132813059072249794208210290855277575350133527506558181063891415856535397454240112505768947821732654216975306006711245090774390584411775815100578702607325788359145101854744130503973135096005451191945541215088651710316768549674440525006741044844068329906128427935098962765882067658483760935790339246356464490825518117236833951014256422753022822796583106191831426545376811220473767036240096815440126577441324473948998025247129863904244501888448044327115252491629038374672015772533045174886341678326280316308396153714126556348536745572513091559324052087484391197116536601589517792812247082587182005864420892604988673766546429556204262471119857350847791951032878794525317660421689046809830960371810068629691692166954875538928853077439519516786649240694359380585856071141972637303241658096438283955216088802853635245331366903550141127484636729855956694036105592629348394740150564678728926021900337727179170716924961231799502177352452017150485884180730374772067957923404857888790106319198945197518965702725379157265446550842519493859389158044383092959296579528883695357803012158750963047038333432835438494818651205400309501092410546844605507313875189262796595755630529362658852428274037124986477761528938235480152266451094409894280992633814022331973830684228444686457809283553406733656229539605464944601148112925333392760757164798496588349032403482475903445500062516845795203888477105907712369849154628764980096126425170542045027062266625577225178856771363968920635265746531408690779356144325781061993780771795816150847418962433394014915627484623465070933560261510431382981524059599201498766002069246589079553056096050127864571199746296931467547144019475888280200922537285574101351197303683412787971113533673563025332362003129548309521646750778772741923484211719613778634296952073995817205766524341778499227877392141370675211873761474708346797683901347052582064075017474019191166708552891835464689607813833884751174580231487488135176421611924477438218119941203758829454168342462495595947096441792193374632924201547662418993028612403910601765025132982853875933686801479509271149622146928965336034345663548687724233972012396997003027414331852868752399626132128598437510978249116671266032184415113202479711677121492710118630828442725759332244604766733069123549681929878891985643154207151361610615633238369403137084069046504425935453210291561797549276350977909646484864882070481508989131837464702692812934756039167061348305517351711307452466636996738667056954640646675405576917013004876325819882498817765469118034216283185356486108237153043282189780150475301795601727489117130166619519101065651904930736940009998894432625003601028003164756531069605535655288844580615431529166252384383698982366274174476307920882990748409400296679694231934552472777764541984427870137768088350024909320587860665794469271828964389109636213057935672816514648494290282404502142922908463172472859331267753879589401678081706659743090263223959072046982657858832979887329526893517749416738863281459022476904103980476123841421622307377456821424945455723408893843526917696523375562505443225077558351062298876602890837305849489386606660820259513000153613861149521818207637388989330090579852744765488697351585853432027425256493127581666537222837750356633017346368964686778537237921223609033504222907096282261749845251211088672698663872033981598274691009346137293900155056172444679662388046154757061988983630321890358315241142004798400867143483803372615846675566255057706718050620634727614757828841921400040174938809871226729706870275099914964141315681918600198894064364082338531872093822606838066316910965646360599739934454939010611734359309861208616022393981021521512081031109213989394628638610078173886376040459963554869970176219108352295373204588551395142376576382726582126909769247255596367487368753644626538194521248947437019552063328892716234264486006185816387137775448350534301052795722588844299300082888513255558786450844120917559243661298817802892140453031158257432336155530573109798871041835342191907956653640008927089189757549237934869442670268718499976003429369120776893631423689537502875412233648344234435730132271733313883294378676081651481388249958176352892831076002585705178788659173417274163264494152643523888175409760159334556824808780816493552072354431144665136486963367450354054311964148827078893440855974776049640380275923834455452900086319948812554381217006022163469141668519297821816016405069842880229184886798602614518924544938945639809375690006158036181837510984061705601674675066209606453075341526513914561708085700531152824765834325954261543844865209452257231803041195808046335625580715263394621740950702486611317236834057131318600199879467631379354479798886809797371848606671591343528853437619123819635071833799440119484633165576459707888555997306492053391550491015455005291363959456616408129854861622278325470426906011115110452373611736762239748360840662745702631265890283954111527983382404495147163595522742191349621999890650031984147772988501282365739811916467017999366437199179535626678082220879832524031705340539680125059558195168322362388998876971408585778359596003598626673353963483037995989353942159154343506296503435872149460071521300897187611675616116233997231416452099897573378092447359526082933951831742425910371394854365265478893185283773246116787724561861806549746097299369423574701585891743014582519499834529393832015209293452947101099813692727953477223441691443075240565380079414859907865216074464329872192067554993246737224585995664147933570587172617580872099364084898666757453991275409885359981613921905211794602723525287063473867930993257815061936290739387371737319987857468559001154198796296808506222738859151631080304541967673832099701704168293105799663776401698372143921416951956568800533427332576567391835428011933262823945196595552764832696747565873874644638635813673493978392096320442126265383777607469789255772937130533542874282009842199556726805331480776016794947988827685269324922993289367272038591431585011052707427832415659386590305966009339061022285974054363841766589969467525873139835363132862057502149398223007296120685962731322532055774193476234481978338220744992941653090793567927592637907837973709119872361600336943856289050335118580018831246249361614981138052465281115428357497722056886721226542998853250008489537161426586874801265993765992193059764271271058048888958309322184709129270191692790557026177769272387473079174825223578861782353468785290099244822052987292968621086152330547171731069362116727860056175520079360046644123134903163739183993781494998519372551129370223932983932303699869815523336047189405898540270130975870815668540472905871150943164642685933925037677601619428873821499092925678607625485988472904994206152187105920458928220513432370888732127858995682726827848986431798012220086581932510241969650286929949645950419001035584417431575169796960653953602791960045121609377646285851815955072914514594962911091726203947067193031581309386495747488340800449515504407498273858986652766668690890671204899374572265051081462052765089943639784470131147957018786581891499315744153010686943524095343243438084659919718052130125090592789686224835163256371488644971453711497836621638589166210381852594455644506210144485482878235831926482357835335671717989778110619371886505930969563254049595481262408257591603674991351291181939387446969615812361511609546019261779529720014236278485791090019975449661355329370090552656900011724902148549613914465525272971313619040591388449858152482300690645161073230846812943242695979780859411798836560702492858215898626075833912123811417922698390980444923779526359762907045178680721503767628566176019958045605112982315946765277941505815959915795629262754292013650892182581842657393119199643002682000606163590287197667624411875730180451370447458792788201342087521653632411751396182350159882002974879774097777668320537087271530258381921961210845964334261938882841048363896119196743318656085826436463556456910577480099279399316438931156692623875405417735279302674492915515654414109557381263079054320468705533587894748901479108823044456632846502740405892284427877062301581563858878240540720270366386641331738914012337269492057684261347128083300973625317439603356433572947456413173081669527005053224285438371772648482132975470744130820088913660157870220676404067646874333516164481503085002044424621703175897574950157322918360724350311744185837739060613345202421382351121927143248008139486265777566493752474829464317926880713944902485751617237367753417193602480670916028705275180174598130272726622870003092580120417948016872292143886609688201300023946482463190392722485080534949740402043335462506742959620913316789259715082998559620100603644593947493547787355231913072829137922798312070370061988934262078045770240736895699590352462706678960599505271278539820609987802936569708619212287303994038830850564146033841121817540124404464195134397720865003933369259667795856728651120395228736496209396684560378899738340428537048271660381203095031504900680033805229239078801798224845572692437076093323955928182190474967008430203156778042175064159859486046403195810135577751380952109863357299276389903477643594336856003946145395693876374931846450736271195297904942508499139183386688635122246447073784030955453463456476555545391216445517206105073009535212170456265334184586504496405365548686659668792864540638506164747765289901912668909741496567432862897532378343909803213371629063918830755468039671882170434074939229248430123459498786524880619262024120171476873483829461131989483568489742749147037907757360272591833521971421084558010679070356905475134171720798630851832562065507862267724541860978825600993624685963094535117379980598685932986636976187565287333783989339285228015934007026882740484644538724144858605435363116275380513761285673412381813298787616731282856821477874397910621822462923697442947030876305493251659893617298125233850107714804720720370983738499137830313345850701347070137624878756745843891402026235838601882532484926237583062296628967573655028859447595933583121223053823299833348385708742227399760600732695758798179925592775523664259922799325517028485958760731973473153811506990098907336784719383470143670305778775179996562146207785760907387720042395222457729119730543780250569453967323191325649353631239248634192797021870305388128346924982188117313656973388923948437697068066826489773452980758078884468345090712305471499454228482931724411052573930375332100831334272751908522334202137043524699548567888250381517264797677977784253845003856163553007488639288860265737236292234387074066943247389494175517874868557133118596985418554982574978800977844700364954077200447691572481446370284253915630616841310542198693516908015355704962426198769399819502611277773855668186272638575799259753369554712269554153137493225507034856535894825642634453488974341732996168329816892114577276920370145269764282346959328764164330387233678910738148139230934631524620978498381290481743712401745586141597278139286999612118643735040813184316643980864107022248492121000180590778878167388607276163386916751119318212575894947897171472249927552646115435902316040813901419676284755511535558775455199339437711915253443056461930996506686516631100110978506835972266067216103614298185115128126930606627860180702606330178460545991702117035391174398481041873448047546428523541218586734652435833469003433533601487617715957884452343186989666524212316135674233380385809362813242232088733494599434851378968871739468718753905172377507532795681390765190824559262902024125464080507823879075259301640209317472762835108455667734488790742062702229020278344106476980026948313757175826928320855992994487385928619176545272618216585951919261196266092431846425904577628423507797647562494043117555893923788849547570308285784172832200142881840625461184428432674044620412720646441137566934573001572557259885765617114110586138362219017456819701419988719501210604297109857748007206905921650566412894940571671700143738110108083099085950218139797151939054099727932557809754744661902289251951525894540378415576793571436173961720627963405872169037351946471822015107137865552777431768812615256981243462785338113499373122533185588164425750019582002463620074029922629589258482184994787806183127057365152150805170341265998309023545737474570421035778277314684166458165112178771791671949397043699358698695596671726432236858747431587634031783746724420156673190272884980591538170709097978251853382064630365376667763746036730108946949493737206694833070410242907546194329586768065425561096592961732475448804328243538833473475116733451700355729629514816255969075234358085631509183257638023877759636610679259404764262392175247856661355590690695141227027023910014251229368002756851932500150762135821177896396070444137683543103842347187057258490779985109357410612412018824464418124958938800711185211989436936336761941359045172332776766145633893644382176906534922210988654457804311421840954593811509305619173930829294299568077174012052709068211751644745624519084277587429785325545301930849792321261566883721237806528534515176871800759296310080057905395291380612419134859151988801570640488741507109947040355736581649686244619465472844224975429170441340546017508005198009570984604969531287341931230833340716927115093273498303041828841293166276507645321826026587647253093819323176767635536992710565388122520172853004714029762659401162543135531941015851041737778642050769015481818020615488141214613640384887500619215325890571605635955238341120324218323998090884413147252263702942559792253064887691054774287362781966522925719729789984467685647576791136872414212294813055223687979364164659440648172180260628396182292911401598563334548832170470114377290451642711603300301916527490991521917272320032237865902587466069647345861174233196768802408878943786166044110603670478212219621242945024030348947877525286380415813664051157341728903188601296451394968701599724303009495929240504874666519477399278490066027900771323389354257873788127618686506191331169955498932423319979140197900869511568208501367015443741928763389491766376653143599435054296143456574841927360972468911741532586365331270356943475135724749642423591225639466435327073459703585779903232227210404703069047440994319756361089807881028565716311763357245380757859617369706185345945047889685013651364523598509356344372360006675969938757195670375740077254565194975567393821624242253193540548095391868253012962720200626392738240516378292363278089021549762403286343832219758351989235139956036696260068167648374357813821513055020474671997382794544937433529956616753580717944549358285867796873843917732300634829785026563077576674112278161032909555773026873649759428207205480640867098218682155895771148213594833642623713244890924341114515070398361920423677104613574281324774192163229047606277564854813143924205040424570425916789062158856512817344798716951303496717228472873174888321189220593371271861164376275084857001185795327444884212287846002789166983480411218923292725124394430139914767600005932508705037295695166008907515958411069057123780048414566113259423637457316044961714516769840383666065200817965357523293581967365159636234193734063995032331484929624429781081311359950920254983419965278150691332619118195486617719074090657794672312168534743170252359736138196685622613453911804425107177335684472904049591756565184345301157277448037072717533539777925945985475152952552754947279969382055520279717143868281045961459172323450011014564157810253670413411552754748937451401029328373727459280732370610010325426930890843487091171129656448036566622472027299029760721856678571909334101408821877675292071189684947137561229674844858585073943225206508911237596261048482156399270797705635461220923658593074915806107390069257740854494876439264647325370585024722139608451525354717161754756759263630213164683845496268046498081910767023350696757659529846135756787390606657783794603113511302565395888516840831727757999596633487412262359703557546707265233258296217659043812371692935228203024899821227353650865523128756635394680507457498457063895477961170119603468680825496388462460150599410306226633095934535451796261833127655627337703037654739725843037216970927763533374481447312050845232272803488821674963721219673756392123578346714412887220070489093935393988957282534581739300427590739355464196278820090037669196053396431614713075136565687412518428375938843794037425763195441872417343916224438576869089013597332786768877787814694961103740436967136578224061423686466060057539486244909115317361429065478049284539410022502657273749363220773536073859834821335722738630952829440307044526762304579710778837857040491430034613355879538452604139667173881930384677687076223757289171972774928059161858890552180025873223142310739360687905482774887190269588048359799363425772627004052473982460240219851414741222359147038951400434729575886346465072304465786899626727083263657259744675800739407090099802663566431409000788979869197877701355123731701620133548794120484126148321125898732399610291758419769708099691645255503444558704135258945194744927585108563797171140073523626999204474998703951856368160395313240543166888623610984458982828652990358364251359469671434505407162245495812294279763466230860676256438181127867528721281513918057687360306072814993249046231590303236511498077959478807396525266760261189372988366403017763860553164982608543269553515685991363129995449097606140093658865651544737070059392338515861310962445961040753403105335345440662346359258951170789890625685114355224191552985551541394565345510805972445859211309270383371223510004499001222530216322934200289843194480959044943077997039759010218611857002473710476888979668072383959451296544607976819283224315240969315178185720771803339558108366581066739904017725591026102473182810353290990927949947977493747456324866700677423272585565417815674775645336793513167653802090540968282822788444127616177478830899006047761816088817105448065330288120168396234812597115124899885953831014333976693787149688881410903542982172584839402306929986813143505908610961784285504918909749040628847406193411125366892665453023671787904567768642607336863663114330299889208107625760950857002893784731700441079331093661534142198529495041179635929737192292531747319082169995390061965886146002561081419444910111807408100839790359655603172278189084266206264936736596471918442591756296017740415704852283176424072949170054885231418178863426134176567985199662221277425628725326281853114890864109041060480148211801919257765083584176488538546058714300237652663661352771721431014451595625545315812787919485135976638546532137857399685833229401444350289487499387662082777579872256376622958536329625759124295944776703383217891630620976794243902451622713035600548490469092559780330409125781072006202053335795589933745926945775714188837862511904052427758135448944940910008109928896206909635186059242775142585556441510399759041272552628844281319397606276384309051355758616986731053537810279182171166794302685024209822540208695640091939391719735092136719887290729542469074000406207674894516004548562044729451058898513571418104555460231021810573461808572371092381393946273186433275469917345538073952811160115918485470364594717909465524490767352358772764336073181210139673203659512647706755933853129410126105008631253793133456581298530898774626491335937565330918166553509999822389219683973186470852694213478286285067689566844891767694285518107832143862181292163107279411739938933527456156156899218563139352224971354230460494219852539096613012965539317669661360418185903714884434907790173030442642331002781165694036096286693107412238940653438100296694688787105460361332644075548730321007773304290169307932894046233476876994107592996188293923779769199268256086453656290355944648552573280489375106875528997086609795642398390342553121681046871752642144425481720580534520719778445970797240857020005137176061353254487491296506121333001584093925184851163626980369911248167830535685795526026698112516935412021388869357635710804801007900004461574549460985335333472516100650807207202393808562466618766198192834290339132845889241538358832505114333949866198753144843239100159794880745249094627306149088334648859547087178881442782779196188152693753079513105224450322209966524279168018169192966381611091485545268212084365309572224148366896713308321774672837025526364699442862910934232604486811443009254352805860713483802062437607559585725117021982557593146924864899544682417491227879880866888780771410459959121896468772666958322947739739481162002980528038807991508071002353429230296506485587316964428509958439615141837228219515022839659318299790576497701007177354692663875046290001882453673014779792799416369451497844597002800073330697930940781406315771557243656898735279469870149827461849672227512309317051775936872234150998024924403986815905936318545032733404808000422706758764956280312467739933723442433958063433430623838941881653470460014378468200608593779229600275082350913640636454015175094839763925794729067351499406401669885118477237737506252759843676088059057404800527448988843042411772170858430532662623135894653785810044022019743421194369455821728558626142302759843885780398213734376750443005370513445341671321523541662870391641492817083961831800142806319644463507250176687030609782452289286681434163018452410341037015006346679346675396733314440468083522556709256853310868708207187954331035017862521164331094893687960015681370666015549957548123916682281952882924842526318039815876734844840409141801761128621198491213397711325941390583369811795316320201693827931433053384915587796164572374888020460614458390947539728017486649781208248899336470972885246838025233679434818200166289328886481719088707964145811074168793539079247524670863703159722011177006067943653441462585925873749273702930974245049038698966939322938941655026415817150556459132576257156278188158647696685202118061373822278369996402480016118831680252212049820052115186698030807834600895822303419964558751401306644691991870865388076388538735185956310300055023037094010400558759825267687356559561892046550081043839915261944830327242934949761207166426990295791700609380514914382310687584587303820266988105536736424896640766987499654078803791804300768024991743848758755281706055802310559567436452044461402660979114044180687607072195530839374866819652505344049584725768617846886899878950752158240741281303022251178012932412401451470818238033606947128570395581096567602196761180637414782214879834176407107392507121884990757727376778134875692619762605260239108404624308777000576978093607998432238334323465688377066580478372594608438497859862689307677541479257265903748954287617084720420453261642039612779556516571953048676160680785939880311250240685900348806017297760207731543744426293622335690469831505629578699219029931334896024579715045714448000387871267719254846529365857816606075553582317376305812745619307258381635541194357070561775695001666287634122157942405015680322216282588182900422869402062947074941891184664185211798042216753244447332121911196545815123442222178347995588369752313249909014117873759911393412633470652100008953755229138797959891316659356084212422322547670060608110733001532390896252339949472001083596472759423504300304477143822675977980483115600839806823268474624704144976427027253710797063143732971848776980499988531821525536003693942477781274659886208948309010011088384214504160650066553298057555421243711712864414658613111808769818211869441646471304640209794276851863645337266659984854310758392778933702513936306562219837748427251992803791094725233075676076900708705193599198263352220505892536690215468275466821637488747007925890095572434896946256979940173868642716045687112664575483038060645609714501272376192797703743461751877439730444009803250173483599006243207918188675743399424586734951954481360702361203798291493154631997235611089495140105757658692753769054423181109800574327244703768719434836276429596336233383956500161511696350210992521606145468260016727481382376435403220979733855863043413416881598088356263415167852239594949086037233180714255211536656570237456672704153079548136183252300513364416302275027855718890835979000582689582082307642270172102579152941881280464640525449670486708570803397530072151741590422301316851339306960292678652630302350133504922073294820033199384900601654098021023075963412864405229934425438782030354535311505408608231088067753368804044858146560895676394191391868416617350529739836422495782015747799469347489764127335299042172503759078088410645644560720465327137700435839119441747610759212150635042714457242711589045915140342367854346419151832792560445509589679991783939706898693262351645615381154518421291733165397961759045042587422723697711313458726187783770527155433793471750518109285034178202834271156507775619991473721493652014045999239938343239455372565192870192470386891469067376625982140003571883486511819639835387684992651238372140725324408809869198499300765138895457511786630763062838375265946871066070108560881940741019878852644473835873155599381707463591402240595714445733504692125337520027532740901691299848677250873728113791028710882988353791334141937452592417296680135127837300898128431391595189032652353412177053744834628336720811042504976965006443797492090922731141978151315197548948094470806069153195003919491697393124213214038593465336608737499295088010991548003042725343775386345748851975030556939038570066402832690470929935137998370712193498650256114598454246565898389067832616830107850732221730419931428915983043804144444119658727780786176613849791226071175542938982017805501811470776716398674001660165402305330809976246318860391705010583840088432583147533983754552424659330502793140955459394664177496023339893164768634088194369543546382316302448009784205381753138266174109940880668372257569457462308748821722153818836678588403465768610250675990263224543963672982202499445462655033612913136764135306475061515806051194273410764023295177953143514199119401262414725511994282551756199265971991554141325150268374176942786631323856664272425531352969830097636615080060879095393443504965929574436502409915001507284603378492769474122554454825489895713809365904382819116951861907182885787735138999638430198155830388628721215921909921756303523145337625043933417750465303784805942311891854966141991742158676904533570843197858491822996297821724187351621306276092030638726480926148617393746881832075830311431445476428827762066150439835895862943107459876120814126134237066874893327763063651215098636355071850474352643362569824203963445115783604369050144767142471150311178703352417481689038167131587047502685866077601292963929906668744495766094873533816528092598506067942164392612431715631983338472260028403055731642442226647506208486299055310235783259367405636982753896850276417463696191809371110323887784501422186591650661668834602677649283208260691221773894148736584632847893641670486229740215323484182237900896861359904675543510355892922360921119094249296559138045635835286085839653191948349385976624628951300947620615610219425971094556526130486950526314201194960620557812680624323002834489146596987592824052136809092023472740432055075594933474659951125566421148391722444078877563629847542639117831577177595158973584173236400979074413667825865508625610227974937477993341830959096366206107468145239408150619520649840006283277604039749233486640860181581554089647025222072960394633428761355547219897153401668889700037727897353378238696301718780739703478892120318850476693758934550375981803017686855566609120641466396904448793883055500722337228588361864086621679198992522945951984232090767541140706731295603905049389933490909262423368805348241289852330527077451053812128750113476976542428046181682345877382402359472440395061049792737068822115569215425549468316713220832414923784561748581788307076507275657194889175551150298153736890228695857582210648002369170931402843488197535801177009497212209446225874429995143988958720815768377515267751135457387055803245795888482306716914071750271010718013559694409601697877163307449615141024493502240534428194816805726016851298527585616313179411806221811351177771729996825085046579846773128853066939184039858303369358436323194210251615420897422380439073731217559787961416567076041375186118117326522878238743146959561890259497149339438064825112178609204419673459756783701234414693608254401458795148315626332545664673560253251777125727279874263490334141131255468438617502500074120043713926591022051132242892067723635940492528416881816691427305514398254747760362856615143471132684476813797297771346790733577451412985177182003924399491388998676825701100611743571254187088879218184041143119532974572212757679455354239833582273623803769609710623547529044612119257966407349586041781879818508029698435308519868313927682073907944878864409483631468414584111173543331137415379440795077006610228040127304988196980473750678159451845099058312600317245105997055176378701598376366935967688888908745993027057494028348173799612961223543092826468887047735145771873454828128073955468939312817309109720683294325358780657327425971377051644644425446735685885806523165690872807798674266390298008312497542401794999553814635237722991405993907366831816432055396788455411915189168378097365768667012199082192165310202110457917601893639021229588679363215614198149261632018998539522507515753933292452360973676839863221830955382775271367253971485207378458797543500622007825225272512567778794915031453102557389572341803611042820430826621169992779145096531068331597332776494096170163570554226653374639714499056571335261121166580477704281060309474743242271515770779396266413766101563041646363483960342380231544614343192755417423020202022259755842596347597130436398450567120509200027364115467954760782057554720707485248635681435470015917573976959144440462838674168233991776867537789186973359463454411012582326384423961417257958287235214680128710010350984608120193215965915156090649584942271119437708943687345493313461670272509172995105362281255478228094802296131750796020437035633275520233110445487773618550800896416516845135716153558665696946794939942619376714877801508756121405999867398677720304791368243862579112164452406287166299165261645967916317585020700926528343361534913732242847407374585074695533518981728675206798867199595235057171417290841824345012977814359781354938602433314263419584506349641456142715561713327972583754794549549330201456313528654349668604939702776836726940421782656752694790000430751685565646904649856319077292905802470223689437907759083548153325662947993505240731734184894203289245580229585687246322903124910897043184413386104377789168357138113453418219838867262792008482925217244967604280357444930763010966471913095546508469852514514124243769611649699272572343480109575746971481448877789579380466904049471974824204077972904672897354584707629137401776482453009665553567045461041253136361008403942742161511326120150397053165194823310506923117936583781443956909067476565561071995890384444104347419094778700065325327416641311096086349509690453120775115248212159555563003997043339367007958374205168373593560301806216018884838888765366658109742468981577804868400136214512615887825097437367521367889781928850385331356096734627213038965251329520909365921695565947832328495103075656964262946530350971160260527438558474667180774221525900027508609105430262805462574678091262672291060654961381325081316521803492764653626666347277618737209957750094354568930823664440961896955087763383636694091381601078865523767523931312110339059350251971605404068664884063340577423104047100015278968786330121193054429597950540145502948742247423224380988893607698464209710267703344843227168149974116386060952548797605471135843053609587744357993825734124483014360191677386129342788263454982505865666350661999702994581760489430263230169428765777652446121754933230394921914385800907396479630000328652538201866765418139779199116710306899056560322469736165651305897781852122617670319502674468200706058148747083522789602660260074490004493209055253458301022077423377856929377844467309945140666524924052981043999158463989449445206771121989234933376700636018646686972641964326974727323413040613151013732968683370465654648410098722949583952564684831149891616543232648068846777675666713617923824578222947538444193968044856009883915795150529717914325564175114309568212067536979703789486829679557286886714876207024106164674565787264922261682320517426362421999663231314345379498591692405920031449805130929505010348150604748747038071162856757053033955805623982753653941786534712930617118906090592116240933675080232880196017360552502706883064177844351160412037171450239670372139455638269881963783137464832655975525027013281147811274641479851018798749440368298765333147557063119835197816668908878558889267774714408556075596015379173536936218719433485674179975483369601842376586183878085812534046584104710673378749359095296445657532015366782294372677940140392480797606586325423050336480178092489024482517051119013098276015397574822826900443981847921179197988193666405929912257250721008048801737412001064434800224646942845477786539792378063997252091319139432928940535897796462770391032550606929840605934725311006868852318618853375501094295140460355175443194078424987915849361941157313541248957944684740398010714023854051391676617291327488496328397692434047501843946218573834922093576962784917052375576189327123501573599524427794442628138732221886340048294593404372661321634265287270528156629891766654639688706513049883463551758086740915205447738017614571180104733543575669405426883692019727949737665677571108704882985281350465967128854604071573283697696626913753502847296327593358254868327296412869606809230728989608284978235504958639693440288548114120119256592514802017734460436892926965187544265874988580511367274158494724132596019735197954615600861706721496711950346207086439685657225557757405748420839516184845632400904661620659190053310786850345533643932538437108060493602168845991633601235820166849595019353317434539186770872597982700786869884170593106643428646556609442574609912357204761660480949629977254684961216416969942050411352200834391380056549279250581101502653627066399753040376998887190141535221928040501341465745684892510875626825725392579399093054008541228699446443440693153609483565409873009992510298586437012813587762560804426974450405494716776019225160459753177216990016560488703778314068579481216653900353932176728189554170808438045474374376399994548499886214742445578609696471994917606002840401502403475047192954141004596692599608041218778367961474882568986198107430517690265906295628990388298949832379050427742180181696498258447629526451228495750691617284517696570624758248282232106172764129712686379180304224741840062251051660858787722450091783585057472146619293587446256815202242869920778887248542460375654372952940273935806069396891116142401389896886983980496373862116209005213719675575666112468434539116483471179183539450110702534369947208794521746893614523600976566355944226221074305767565150656233275053483331533617495265022543821756098235214537037196754979979560297366662298758553357617378959877692236320309249281889267005163943997447872751956231604240910846863320564375953183918809914587140421713155590473221306167019867208593028332723486473286402614720371807369767075621018670485537258529142299744490153126331165419988846983805051167883016814775378975738388981676599329879442408791618290974064735139897238454163479796204298029658788898980915528586070468284806669837171796614620073179875379570906257238667597608590583861340548132452842994443366448404141063537612035977534929139103096221380100038437651203519241872612245873063907747808559074281794696279531613539239542080182431525302185806687898414109104551304556526168166878524120219823272300780495833834576807942359510839290990255837771003905601911558118825032107666723372483555225348458351655587788659732153405633296494132317236986854557290906747364019804549379156219047961008444937457754199892614693671115338222696535371189888686673627235492242560168459532319981315913061767087015245863798287163065271813275523472230559822822717631027446652604632177650943441691561733156763823710655377468216645802823372978707787837931667158245603127752639542584842583701338611565895564609227663148905085611267570576074656265017795718090190200814429094850570174793237556941306325248418662599484671366703504672112584077347209408546008236457129980533148419092909161091486611047797824284739373798736497446828952033269446942456895962575548751217342282023937314180597492942000019731983981041543415717029526988552693389265999741865419621810319593802284063513979623826566770875992574617649530878028948577105817535856056951528780876189031631334089809570445050425198865130500569833400082087950929430063052661800721129762246536577080689925424539584514154293815155147979805200441989417451086246908643035192077921474583042672043539202294959176191902212625045407122842052396069470940681084811349727675551334002061204504979944996482405123065536021317465918929970503111660845041845898435712890049711061677767851830956621169987843789033649852045209035234920404773553063485026555494377036410117888740469991874953112671834557721422720152135756884030853276849514523533002974745918946827930852998756281490992843049293655370000669172479968734959392387771597699269612779191441135552510796924738893961324820571763542207075987458780713727086348831942796434175546924502107576263056120267691285499190101358220569147794170510775612305048449339655586133278551857343226255971740251208109844221583421252426849754941474753050315430609276998541220297213924179091017987678488285378371658478952384481832931359495369368188786236512497423781546330504787132930632901207812306221069877683478038812683622015321038301232048228167764250417577726059168613266668166043812997843308088206312790776022976469597977861927010950988586963220808592524913204142989833987332498536031467196753137446786493392339546847862582873165921201108986539035038748164251374982627849134121549450028053229023854093218353067346501959148475224956879108528611019166926392135035631299005452480721395699993360900360445961454813613840486039894836489108748540982819444551168574743757239842702617253451612520120864206782180615105711538618919349451678808047384515216854511172204236682907950350193544424929240134312697934135868701679123099903003520327508332053569678018224142635080220023788386637362714560321156105157064218677610652362505890247245173270999921933734251787761974434427674527472767157039686560121432836256428479201506614364848934097767479901962311199537475029856482840467640515351582576405601214364509022125668489228497491460898286030553245014949003250424265771960455265238927838676673190474833365025161041865674344504759174938304678229423663410576338135473600063532918031992797484512651012505709611324329730635174883655129155236381175218684129905281690787770084633353204501966560486431421350004275634010985993698720869018903260567067405685537791817147073782191364058628792135221282303004480010524447006408636541768169265152290076458615054856099093451647540395711208107905350316895285022473510368527062524068494898447750446151012615146680537106178135135639047767736255514940547146774872637246953518235335051374555293665937866897947472574708863215858494708936577810624457749785019040475027737751134448733055194463675657933676187470180605821866795385026824594155699358777968368610313080586865274638775624808081063482615781480835612734486842313521577671735026100560577536248165684642092097572468111952117921051127206967154185967031514052596540081049651758855593198050455456665961903726525364685683207231542820504670131886681766648152595183688686375603684705367392929952045854006980472427825326119816682054382159035736437810446574300068086483121672450237224644877814550663361913662601938271561162986679005006340704374283635355418517846600857288364192109547117169127015739352291690195869264468885314908633013977569199319333167864265473715051011498122070763635731710108407337303920713056959023588107976477839043744205404268016258938632283956248792249266935617172785683931411534000202402872728651223404733638848191596677432795581170215094362034200029064476961749137053031125422637600859038316486264442979571118965921221887722758101165827167949891949438949968687141486054801992723881826865481252967497166324364523950113594539869197825993789701048344340022487894152943037894873365512894007568333982485052406512636257817067260068702140085183129002546543290199851733858014962113423024403986087245926003955317183941229152140472981750082270854919462700066172731430345572085993882710309928219525300668754543304242985820448454781672868246561623938279647559741593935971789469268496562252469518304418149559006759688318947130216760103121108112072523638420972277349533105811191424608143414891635531293292647718248139189403163734667324728368235624572336205734265876928444329588883325673245196418976842709290429004854644984270247264064486637708698073026994954343318535170398524410946959369113843612377520849262251220873164087142399931543972160651879811930482463215095383724296741155753097382572157162758088273255111200952059437957099269888150044156485547067666158654621856001668509790129684281832253939725565765937471892492036050145519728432154880080799094438068365911503180431158696072760984348342070449916334963721146239242026859358966954046974749323575024199506428878316705635779893590373546261001324366251829812297275680846929915674275417272324190810308763959807598201049668358746327582821105899754106437146092030481813228281231467939858283450930834827371698274520407311642853611887658118509718015563258338899158068108555701113157113546063252359294005186375861835656682914853491236792060033229915441784538217698602053324091945110472273878991408624614966521240394928040725509807503647829927930439233590445121161326536076077506196421096990431848416757289640784726397645463783146694151420974396027093943732630077549499868411649510273680233607388107387978580130485511380782463895915479399277089177573751686395244808312380489443409552712631108914440481044199194411347943228909850747909323010305377821647498618718384986543674358210449932057930173120959090273847479946661922812970036653545728110370661155623655026631508452985515678811773873243832276179363441243721434854962769846621798935055744874102404928740038462923332284939590178536015292880674341875585873308841252990943353216920330404078799191539007599259207664174811533536806877223067047537015572695592956051963909516848841898434529069048820459728546262981874969005945846469848332589193925603964991365317941191222627483568552237097263706489454175228192897883803504243173231648373744590634840806879609998853534277861107277223140698749322130106105402678396819689832126948483051831799139738244936533334590626448464310892780210718494011138496728412260361315752474559183375084999953596316859633058139347507504643612611204546793107517074124536720406205950824377823963014749501028206562489926085611350305420991755427260346420397436832225381794699812493387943225279069282685198633263281415253880422742419040415074347514982725619329945847680754584848015256974745859328755330632250916284980363222373699072502907864267525394906957818278131826341874983972327275362954958957771983813599962092743219479097017486580195037468646617969797989850552829372201956053140257036755501191744763125958968143739678727673468658724555068924570103749889796626201742934085379555982430759924301436015587345863752277629603730121422263185074467349833227629641835417148069962158162971393479212245090222911395418960059824306961684923305606725681026577804388012567845995739672925709919311050852156517400024401412355619425539666670404198718818789791297364427495116108706567646109566780361297237259368676913962315991242553825151367836767192968950079446050521329109808035237809764088341029628180577146405849499941875578357620836037653948955414787297276956830991401740722019909852152167124735126380338114854631427403669070301358988482794077900346089640772629970562132965930929526734565017202640162416347634485690678902593477705776396353901602309993957621181409307873616486551922751962126310131245057266747492386255080161581565602609379834076590215412466753246760714550888329428584254279518322817831022553813650402881397185140111852549186657379973529371069355437952179893877422629838953606469745453300336719934509916244565347276818169729027152787365800152595619876063032961326471709805140985315101556702622427525277118251590480194165272373861995927680996476820111053661183339156158805159949587502111420333364777677522585918225649160303719338479116770040758651880280003815123116181124122848224568333722694979454354057177496024937849094270886990806211814305252622036397134620308295879740526221011942554120517704316334530263046228150960921128352185807109509002625780159564449935559175206916375799867485405885612433731650985385392648328303952561861211950788266064612408312034366163705929627266629968342836314984456381591285654752455475291012298925043624832340541392613267932904464532330927424383479378330241462319346244114334397272348255825698129982408289102089069532557659588699987336303583251077511270848018489774356256945023388185335215627946126014438872356091322439400158940159561453304044856342673207504453090009680348266769551309816185802332209293603099688043570040839641064567598092345437822492710805498005803088109621762313224756326460455909043569351860463562750133639856753932368360712104203416408653817896892829931986751472365567281563817967446730187402338226697496611096021429857199267647628043383272165745880664367610642301947037627907778220895321515040546183224696058724341809824690500811622428835075290362179047646056160580396361125862488170295971697274118935000452614940620838248995813807089638976056703194653960769510034061125703796624341261966610402615269628085908306437259359241948105433899764535386360556947086605454468217396331954929454824304814921304553953360093986792713309547876632631876115663464338601857726011631580777417226793044754014340764983962165817130109675852170408854266145874498418266825258318809700267332536274730531958134370722194693438731395818506215928342860920930173812023845743905641691195685695582817618113023672355740501174627360439180794770662018700297435597522807487316895526467221335571368929691997128301388760453569371470903398295053804268033822278613172797547485301471293918971181612827797481963051783119304895992958185807396286228698118897853865563911474795548177453037446465171510374626496533201590649667703029023558671860500945722482191542206955929649118798365827632683602286584330095724054123657133892930580014741606113744745457903636831414861094218876212983085271176994994659449479479265374060237017720607093963355481834020824168372193905497467266867590598708310642868051632723224145417703712140430292178386023812635324206206620004003223322256309721875601252324872027762288409835630975048308609036314434528333643732885917920566251563829756405324709420762086044676219578055352030817938733351635810973822433695745351188048165877537359131835167080403776109013729227393930748587563411140673896359471512962446806925401833008089594615406616414263446738379903319128613923555977312203489530133395296657253226018726046118031340775497592440266537490043871391077585865330175881593985935726033547167160710590843874014914563183755205849390527058225371799580747454697778410110267474469394799342919241145471147488473440932391983495341093038083759388702449726033753396882689091972454345191804866449041835363690304404111407632631439926306058645241227857463891875432157213059736028569330833805467973617895348114152702881442180113096286868266985395802417094200521367473701306780472944146979057116449205408426844484189302285656302159269447900199012222877003019128945789736517044560631654200864184743650335014541316937934980989778456560444541140421080476577711178603345885691090464261075667844924597507986673440232780860951520270933260379687941662707631161698191716181819042232336441218198031577713292378247009150130876551814947494482040135350058818302198737456889883790607306519103197491169698180035000659469667411619904998794002716873128055780015073840564321490907625169143958694028237042974395684310616641280765530920902394405681821029456806033436614917084017803066360223294638074956742560184843503203871412896305088846556726482285601301611081041188481755564101144886524177177163503913682293652757687493285842185379449097959669144454952953267806695108424451865998154564467015985311893374281245375626319417440990076133559332604743851279766669956908610496665436029020819354616552951606343136619944985458250797302033529523615024907418191596702826539899589933492588384936918599202702277146483801873142704603953094647981657740050483631930066135720526104846150282519095632716945162368460501276956660758501056042952683738508872322267158178814961348147295541041778269956562270991923677562796973087749121049258463819462685260055814478391383674756721914119173077156531043795361583350696945836554337288844899492075567267236886853755108196159748933621280949819117805996966391751274151397908636987488805397035004187715793794949596194815644392385639916243289974626052205465618958993166207622829237652397756121230111742356833061597928566227137211961966441786131264627080335337011327904347067317395941160455316239301692489461905201071016460946664425338307792286298852318240363543861982649296309818371331064951139115623727310028730079584001184513326285457259792099849975501427955030767228093194477316934751494944107187488309950881350300502205116771689389131449366302160367280793079564628276842548219340998265315738656379192679542007777902933939843792488186300961584194273867495677901145793917632089032798508106303803580830379651366521165906180254794128066075877515083782908094450257918904104126925410363617043516896196897404864434788392514529079686616196947593549086131349519575301409266344947097873616470258745538738648872673730815503836229378372262378388954412655760911508781776027442644417187966499507488922525882234409367762217596759090528915544519691482205047893897367389865038188599302820589042613971989900151084422680218296142130309515123067552306350171206782958183880268552392708621351419703718559765404058478642485430214496609529290209235225118774806592670645429936643519823204244113799955593199850031056657546545311566737116107759477642616335348594347197672177876966349753963560289196845079180931058546775348741615901546862874789715870279106893469875442209358272133735008635311542138543555414986587831057959307281947984271235781609467374097972657534442263191562898304109205426718833383389786533811361057927555986302409822804151511504329824683934512029235803828146667325972457045147341230265734414316416322102562372523881914893947720887966621124631658602072170965726502802167491610108841780624402957093558855518582698889630896182439506150226717922690021602164358585959374559853872554099907646180655690385880781947582277814272589332546278198888983539302624057887899807286085185072188301060620203457640743911194580740308053644964051049343375736313930366815930203604255870236763879243014127017617032385799684662322299117762711136684269858420424367004793626048874780892353852325531555224587016275125040472513303595431948683061660953368000844177463124258316834006004702048589669960330674439900004680147028924616835838293708340478472080687275499549795396560760823295144878676927141315254096424529986180045068120476588596514468936607930429665645709413392702497779549903945383971610035113750678854491473870996934510621397085375171002710742303117305389642780655891088237534130663334420248368910846584873769174472195031991760384625270786318954540887205060510083139973817978776027643670458895237381459923817539739020917608796890992284943097746221478019025593470867247766818011009041871501020475271031456035537512168827043263863849055500756660055810313735056967183377131439329245713525686660862094860104664177494294856311934079201779530008735296779326602759153847576038737694513521694663481660831716665825974909623595418314150241175025964945458620201661379398721161180065797508935404600390039109946907872646198535197423335117234549247870726725138139636547132768733463768384681793325655885925409462677568149870944775341859221109348333329218895506393615808932190656260809768879777025226527142205321265048969849449854338020171315481368752524154886360896164934608880083960403218438486443534500267239432537987105861170163019636373159370349922441210513629762450713382827683469450737188463558729594137997969394639925276209655678437492207926811906804519279000552545226114992272114367832594072090592713566416411377666328012766944577484321701411651233142924381684319333718655294742070189388097837132576669690872213868879088145012712943856893660939173497598383774442257675891488100055560526165509824617443972785507967289893811827644399451615257818580013069972351946546239019868686270603860059615858892487929291377047234982135705596723572089981597945311935336990724304453618552773613839150185862874435703038423006206577988689924880437405314889154690038912329962328706871202218390391639981735175300941723639991982000561703552253061025166575723976312363435577759517039767442994329298333673326757646066490451559024762678855378095014472095651400882824965333125545079877319872023469490552431440522990382864985148021796320583122238092266607207374652953741853355495805813357648512381495278875462484191711198700308896199646873321063846718587416291480980961841388089884816921181029614425992606878816320460993143814568633020362622943159341099060008965722628213552837101287157127491765268326394179150116108712020776346982066369860530844669593859993983902998856016522077476962687450997601001619114233614510874967225729704158667487614894130402987993520987806002246179373801166004433720621126800896420525489978070341157907205789754087666033227503551950085092972498409557230429843097049257637161688027846584400886307849794432417792740015080021181094628795697471096824842205392292437022358769793301016920467627166045188125253755816298052343893757747784443923984882784021866977197323593849282706536016228794804039871719110454478899428085781432580323329173215099651783029823526461402321587002691561207615911103305265899232516013443002448105793115274915192030837855417337891806681356084723276843492218829277491391156022950894640640050140488182873373040512420871088895731960960556056638606026072889639103117168474065975194886091071723033004819232158173423484997256076533641712287025923184449286972819080054496425998550285783328250181631093399265542215442193709780379143465169206927304330413846584897204072750881790659426845598362309509547011409247861919425198782022732717701004011570349498261179016805487368306342555625616826619309295200893349218051614525008331528121235003251281120982847419540933667144200765917320625525781509613334563851226271421069589389152061219653484703681230783498176151785247754938699958544038091136274523465703437801434329483866080819912552922804093772969860758816343012698606839212313637239101799982285136499276812130676964832062508479456588979447695698107421169749915636918323233047558703269512941507273326862709479364870169414918309497584181457278326222121262029290493994242587722914319036124794960423678530748496777118405301149209771276723367638779323111893238478965148332480979131852765736756435161005345510883233225587306838818211009434813712312617418094506878777130929654867220594857501518428333446772792618040014784875093237313465391000125000349606255351416871308454379795005434035096796089839702795157901176416445386637129507689990165385230898438658308633854859114789471672999990349760831546123863517502203323023526588723397785357068376231630500841737266066457034381242714357881140744262583061952719148037373688871492085218811931718137403850393099171221565738871893083291488813127741196793083501446512269885318496906836543212716070295701624061246490670370426097746214924340333900711969379086865673017542592050869676914350559204528288462034887149007619358002786393200055502333186821371359780236594545971692708763932787577533358580746698883108358138015075810994177630849704522641713186162727833364549957109337282491389188331837326845696126057417018910836633974554286266462263761983065633394134102992650066758813649058722510931821677013253791452996215349046763205385392431834523755929150084406436077331027885453326625041641246174149750717583464171635708146524803732775763901784744794337247985450317524987098544245759663049117507094058213101811218413301203218617114896499400096050868410732919058282008650116673859891228427351238094608032424962846114143490746355308952322634607801236554154510422635032958149628722019450358386121189184726696826225941782054291180889365907413329134107933733159517261712303353112661254023488367053061959284132610042152130080092855592581068535571688204327293860039510205467393922853054957336790204894739163847933231253172926587997968049100706463826444115517820570416721300882392019549344138863954617031928372807859597354704961912781873189388060620006338956051253539162696301011773282651865122389111438611657274287888261106175462644415377170860194569411812492639859741937502090397257522439270099844652620186612774602239742711849078165156573578609585676054055625972204209980268305217518223809486769205392932926869803579178283667928875792706870421234292829929466182344157233089344951119117424137915038848584938745491031192964307817034483293321517714533546844979704502578862551816644995446313830360963361946029660979006925641143935930793641157453604169506723451025631331261355512838906244947057817364322006820225386591265974358532323854686591341517304303774592008762722212929025358159746192993078864383986595306285277594092074621705403913835762150637374077757715475156366859197829703941794916697152997883806990558679513894988295676756620218149990615155597761584827592628118649215999299814573228547983635348626879904105460800009198778951899485618911674071526870826082439100970206150474059316455908244290267294797657733325564188648270166553416617900974897689997007870535587156851743571852428882723770361467998534491664051533083332969755612951996274321554554317288494114191284324462125117394996919129386746784404369085390450454891578455121504269803758480491190811726183828216666189226581581367862992455803542660416420544708776173196521238467708023094686367538713918638303922110587087199620012699816974502384203407725502923441999306940705090414377175465766529422676465675050598106808580825204426870891906696366091411467493115295563222984115867359589444102853549144200722369496655801975947812072134067965189020141661571336569249057544833175946619955671687370952237218064321312460187269609066997908941924044274023855064577839547745046315931224064736773451313167786857734892797000243416447112055695354655907546360021747104120878529180374995710061912441904920355666219434748178460157162181962576418670034602384125634674724412005918541462880113012866463733949955058873749340184343807872799062429717539590625571004098588924377721818337556697792374635550444944232515167365527769538715275726272493644804407644842304928309461786690624555135478059876680623065969661230365771085737903215706643737588531759354720664946839510186470493554257606644182556159662578182383427782541094394468182382197242570115656796158356070232204056757067416778480304364707454768620154833413129953760010425366251922345767702757464360847632794093668810708646250813022176676253587036591240186593361787016894950762518977316187575861039362102066368735527289809533442304014894026402005429093010474782421040870878919424775561902286494974503607617711463292289600307905591238753934073409342780106444855516873916327386858519557717038158786725297268587387998293160354862628686157810513958896050631102886326708381475466060119501158033889116694960469526412424609040608261933261943372854033826774010492280022855011284658283716797528455676570276952164885295025736681743864361341043718704867208362090709239418177460249202504478388420410120600445803066911009731180930991959817302042622962478962560405764700172363186745181022305951718002964151276667153699030832115751477268040758894555298547509577038153588160417666464018801809807946216863648244075390210091045659481954932507464983636108721010979620333711772033740800878131509443166003793204855674320872195494828211295152371454357286946397148990284291829080195326015700217016443233988740098705477786680050066562456986236306838642183382675505320443879333007000473932930816244605208772588251812610134077870643605336234991010995345026892846467441550805348082149971094248796328572466379768851109870860706787813249095146257525674690711292732853983255487768021438361703586986756084988948394159232252598576594764053011314934906700705613518446898558036393272420249168817099211059807106292078838552201904406081039998268251530289990289147037729138787173150043856060295065232765419423516201128578823230955351081608111195713008517218439898972000239395779929073201310768919667437216435995188170888467452284858854626822636305344930143991026336173752190540001429902764713961311470307933358334366688294301640774391776519268909657193275093982041328754991443995292725463438047445358567983472347404417143770484199032234958680018633574093353602131929665625552429423093068845438595279937454181756368530449176223820268663240565999952568985617671368594955818637233304438469190331376220780418594158235537270834683439495205102098529355775745605622464974009102226220480939336061550463250658173807855215849441329071270893844344877127967400480117443897699784511457784427014866768285992168542250828385705878864276145104554025922852458833924399067817735703293279022401533031983558686290749467642188190223664711983479942600933116386375613981531973248892302018093251553880324793749387492939067705479177196646548018475143968405373662317217531577857873375188721110803368093736478545216952990619896426877387631025344632782395173556819260264896567426855779813056858809329836297464370101303535683637648386650869586237263947176484157493630416068742798500621827392779561317928465088435263888720370171949347371157961566660519824879578556564163945189137423280709625565353591378061843893791235899365002150160604788524881868054849153104887030721482578953613529141170698878877958808314321526928347795414078801371588605708441390622283457095430337625097124362902104751389882021313585246255655756963468975111044248926790906001180629690884678279704551381632843338482903556349817131291032177432576080857692305360737373365152441716553358956053902209694944613007741141952880424380041346638673483637749795064196970116840126545063300379684112654831258232344748183445082665692993098657933523194150424100304619945416888826029613939981452180819069837420164795359593182622433929182629817894067852925218165315514943792405385686838279217928573620611608081746420242937021716956059748206272835397673029405549917257915180332547192915951462597521643966774957703764639888743031929032024945141806214448101341351381011933357589739504539834634130269598083640796544378511749306873497151451119239337080863525808452829781314926735177661283449214632876734037162246926883367615261085092173435972773630008340533090222884605960103017033745495105263051929601094869537668344724178752152664199669152644904222426547016608488771841110759769273726433743698146123631387063886072452574705196199407004738341619934072786855818780999389610976685248386982628490510764834337332331473578321334690526339687864007900838616837296479339004313303341618319161251706449595714690283142962323218210567008781956648240571072447878364597132224106536304390966479012490297620288540427907820592802519442093559839580269710060404914195912386869867550755845534231443283846243867666878133304905143211915466002483617966188999459134192068793994902139507978147027515070615015120530720812828317893384376069020846525720630506795449070486407082258388229117181777085851658848699341932149080110092584451727185462415321899590055754982366535860959030485264982729939745981157828711239466517227723937242953909959969038169897800725973948760579087600805816240847369637653021963090312300633623331918474917260737384879080992601018702268586661945685650522645714498724093944478342940210820924373510281157431989695035807019698844039755281797529385571039220142491350778655228137715130393429772085432676110586071460962587624903847631829814939044731695797875185897179795626941195761487062813291927285431538929548880803405240389753408511657962054725172652683607387492751160919766070385584136294256523378952038472221925655029401921531019969744351835865356766287250291752017857812430033133711617821426857859360013666308933344096425303789264410291435706350019263070807427998782345121249301862285478789457288153050253838429786005172755967761249808229157747103449385789351101459889080703666933101703133243808678582981692622123342171993765251404854056948529763394496294575721037194780541104371108207780974534264587373583552699990708989858515124754408607375363750769864441006594660595172547998974579591920033908409291420721673145785796808161390292557210506889380723261879072663489379182285890968462323841335601083485759503488917733694997487970600547191388647610678924708422484751539495683605566143676856443196650463939908096279249245963136145650726568408189673797550723445401935818673792747137225320449350803651450040633379563422852393995290569504817580895000863502438363585118484164694174921790617936436492439224981179546314318692172521690312506285866945644515637642620054534001187770661607577586603050501102646600176864320774143891706997535723761560795935495073921639055915531069514953955612850908947795624513722748956029467411188626806103642746744023046238388796278992500141719658441129162694381897359204201350501481027260583343965477784716934631171621649683039210679021594785773808060022710945017701456717556377377105916748646023098159203054590257358993613646174023595680057690042006479314525072494941712863511723336034976383821565324747567484035568894709412387530081010229193221306009206234230793013496215620587157249440406630685125327404454066995445791238893561064539513195447702824667227657615960307840522237646307880668780273952703419492021686574185719374252031365116582254613422999968769286510259869039495563802822025023980682161646260625295255833657187098186979308672032833150947485188108547777626560802433309038655520563916932837800535340039600290830391247587147440368936487321408663707369423778084004999440976511965173850957520158142380600745928753949214591791226391944422754940860331228345211810778805958064498892254282093032015144389923497009249229478961629440946626592253844340345797705428772987510718539653573374158866093693136630381076879314795994933241486176506128755878906300561252399498164113377877718947006031573674056533120770288970563939857673849936638178439551629643389463030775238223393739360084619204443826118876343757654284581910949075453442170090852634543825749885235770675688470831026822087773487935581222416565705487042285839738462897701165355709120879064265805154485685609104137205655571630855677148632423185500382884973680217170977446398297813979446274105323558745130639641444249825212280457629823327783647645301108763199995140182689718039972550602202822639810226869829290103648243305315384349159146337363907311119202746381097522922433645101311015907202678398508628693321469899487036209370290365580383928170624100477650287620792651871485624777073253928778620109074621134341278509334469247457826872934171088768788288926065440837763796788391635054088066710157047148441792956292108054555058355554123282101490182291707007774439156861305201562736402130869699645400236488784709232658318517566180199166921423024868241916443564572339716872537039047194048863531477570022172670192222591361263488970310138798931690863158326933037994525987766360131986803906373371694805419633742490956965343216524538960121638451721511014884144677028323620895984206828465963047372420161304963422736473507079327507778346858890838053225850150469705050204065462437488847744641517240717122354156311329365661429601240201839934333732258900433544071611589407045108625916107150674541861162831356749065562877269988956955219489939301796049903495587721452770185436669167648190460112818968945307934981177614343061713896816986115568157553616200741115942337402032714033694431409416317000826496568667502941059454703548725880022859751803796675590726060988423459891903530844097287079379511979622785505547032293534412435928100704945318492831164630022785532630612861220719735633828998888814593995505031111830911333759888590581782303499564077049105544272939756423669090056776011830032287596547485395519266966716814090583974634619261955350093475713184169312518612469406291896972945111125711191313740238640081528527947731000165718092536497034668117756625050884857048764239844262217863169765689079522059088580327115169292134729319180351254654612761963899334153031822622356179399766964754775838577488325040292636290458380828666759894375373554852789000516989237527500622189857729151332439994202612513135467157803886491087122865608445607067975668062087630972444081118740695511197330998658070187291383756976622358503516471690229040988389830138251107408240013309620581980105897128505853450637470464862224687376313108049125427808711720108029430359060385649845302217700863986380211628408245332992113525723991074529481730099700003979180342517192969873743700915025210882376464835137040956454469567816090349462575579171312939559734822277483327584991337033673142477777411608346456871383934298194704019952774322654085122394454855068775507702051823375798408869793294172954262152008272683452761899117685949028158951819476040176704950519850802273941119913912897913853626662947389448055517097262572133760544061240162663651523854740464849524839149146910661218382887639164717785334302659992511289944958292445067571415580512014846429634965527512588904519326515367937758089788027278999634848595766790911512015724459379430256452289551298305084917725496299230904926568718541579278653385676064497200721855268174016506200688527193283665781696243435978894720983596402973645169124598813731212947803597941586803540460448162724724876967862189373651351588075978063336400810362642133161259017712667834663512231518404219180044987529423247974066369799837450699970378243337549106006612466792128664674594994175019175674854161625677905065024428479232022971167851715590436550344553471087610349431109943610801559648663748732281968912847545300993458826538964761778008417848219294645539523986565493930314358180143354673313819060601446089327228694496076290910892245692660197607246046516734252683318549324008864073027113048999117638247515365146280462866075634321698046394843520863432228830572108882278356409419966236362904607295801087780357449268423352251973227832742778679683020067921595633786139433327343577279199078719211551620416594426621734853488317999405226314581073376865871496363425911547784461645087985397682431765474750617747478659919016776877272168990221600336249468176257684395054714276802347796592250177592747648041161853849409670406426078045553885618782786578743517279094890045413567177076832451497390868083782123060061131618888046350571913175534513101123640655302043073215845044833657162472739562184125317423118120065673778914217814737304420093273281989210025685841135583887057189728153579985920624177673597074555317956813169904508698768841223938871631521298675599345731299887357269036833070968910881021809587520264359754936981381699203162119238051553547319334296265539626517665265570141728759594252769579866738984583638971239011872951431256538975370923980393293851429852934396060889962489166054252612081136236473230451681465917842434472978728023374392479496460024051608422103856566798998653846765383309030468294673876559952977817102548487917916078658023896915474927470438606943574897269278853920205128412166400439783216694540830117815300845923784863167854740777044765532256186903238390471222534038170978989211614513250983291890394266847867168037007623994618693619035546089676009453126057436448966558219789921517456649041882055848244638582442978931267211499601844472539646736546289999565473194163910592455494731199934036577939993812366988170094659895652328916653554462091123609387555615726418877257953546333468513443112016159550933023581951273526062917179346954011813685636712161316185424332394616599137482054432269189422966390203068694703229463508950849918001387333807870868738427372063207118064057566768549944108573228573053902531928929234472594975513178047871999735716843620797673058997348534327807185175163462407035209285495838490075081947243403182662131283975657218738383306315367072533184277604348769417843817900701842212413013625784039363226552088778872808893833480157825028181978598782801078268987086670748166422547368754966310016336198523107294155198616326794727978034510563960578157851856739128664823884979174392738548839798298057439386065927789625379993090665242417284038055022624334014639231781615717002768271688058005455538714448969581382112472825993484009064242873029232651019387686656843505543362285699050222883973017137927075871280963625966214501663771186433022558565870817590729280330939135586417829129001498840057530373577977024108871664232858117577836863094587458160078193499717070776279275527064978410648193398182719062983156114912035406495870705912248358966010815545456987560483690652084875369966521359955366966399518330701786338490242974013857316040054174242778412179052626849981659852160944678295590880670226001025712479262139245283203926289270532604229917222533852141765954589993172018532222485671235464496567445808745956358629721934841976708020867570200753958692415451526992863829992429665929002387728442779387483632977473526919247068869583331012767141837200482003740756700997504934398613862924527106083937086966469744829778756285138260869527486678935619022028892395693030165132066532142155647033705527090739572702753073907646046240060089389821976700784343279428690326987758591451001107324677498706683317365738485525517401029610596884777827934319597521889122399506002327842028455634330076812954377470159179481041953459381431059924533462612876912873919004258139658559266510921616042543567648868059394954484352520194791430187054184112690029989844129104820820261833948654998775973703213177122202977576062951675943727103280210421136768106888643752698556825397125997872496517799207748029311354145487323113300596766126938795206215202668339093493290724838074061703597138159534729096286939904341069605137383925786355605706155311771882356827788844740942137075747710973661480636014569692369883490076977468919324510647714429477479116192960431246895176199181690755451505426041098416998993999137344503475428336872610678487390229178143883302853630048485706880839032232257450131831461181332740946248641341364419083982801603524010238776272125101593875458998399403042350492363255887144825937847713455904307352678999638692441094402476252105261250637639172768834429435059122304414437616016209011784598070014574011997974050503248188881367030717817127801704892360818586776057003596913278392600814673911711648806384448860028908350275070683755065188344610531428061695770007572803166771910003902691050802730561903640552112693567685802723158294461025822554768047124014787743086666613081694082914775162960035900766502150520072656780713001827161256609514419854326508589767431864772379517397965734156435899272331885035704390897032376680889681204416949108400887879267327592697086960040064206980456472591083281947787715534212400120408165014425429186774861376660214877707204503050141760881187277875714527803498704960917302404571765782744626701095675665889427922255661817028097366643799691007315824394237184075573206172643941409527148919010732707938034562514184986937445482115114753893793840345165935108494075121776057876021103734077515407951523624571701260497810090868889937936112153057691942702130931243582088756821340990627458084381610548235349447102884775763073461249614946106975158799622622660725943030476991850902252252198434468356680902015748563747210834239200834121327880164336812618748722667204367957713580059943674362859527355547103948308419328573283687532645711904371444490845326810828405624862035658078578684352905989181874387581323615778545329487092804397194563917559980168385447186692390587634278669871720855390089879519044053476743609598565110847729721365875696189111864979512970412899439046086239843484731137500526411948458226652971101476804977690071847297797367236295933562575129624683707113764094137806919186505305950626543678190495977159521786991738599112233024991414415131675190092057836200131935718631296125327682319895751653662621543889860549650558727364719168507928056733185280452493236895774159110038040321339872875020417848404209306796210363168267665723635677553157281902801396344117294292657781095564687933246662335516181449137102922571495633863449800826603715099830282477994414240538678215159746340720540424956079105381970792115750534325853020951283003573831204133630216764695267822923459937609742657807839353537433842727540284590960331852401204224424986531179977904000741960816013790203133456939838957714112706277347388835682333150775414478580572816229958070490763783565256138119741789750982581350492668891472262480405926726972152505513099401294117349342499159896357836647788530229133138416282004068631257122382191559580059261582318498666843793350017751636879011764513552327729842902361953988757465138291350394764149369238363400436143933165882988932724032242153816182212536266451713895492061136067500498579032827876384192249577281822154051041904900874800682465973455263251052018753229689216661878310729124100368482126686829818267051944118816634861608626296929850241633573345635325941945738456361714185517887201807830586337297599671328078354040833114696377527350826110405732886719402138414322462811466355259560342644694650317187726512017509883682644107398296392870887832263058022788484908852240981785889667803326901644762337047683251148643925842446108668353249523857751769800819104763364081862603958946317817641560513995586782310649702490454890224354689942326348393417749554973693312110983816596414051577844845349073716752639307822670334578023432461743375958267578480126172323930240781660127373794735531242314187411031669333548691336635718368161054612422267605043906582745451094901871834823572150363399512154964022774667204312415645718746807801141272603669131836111047033738668022357253964532051507340913787219365345159180926604780961282682850012233617316504550520617617936489384869236952447655271226635875316063267492015899112553050574511593518791676757981002288390201296551493085427951744486750902126692161838234186467645306851882096737706924441411216011774868861639058178933531097325010070305266800117957411846933934291767128454047071905597757338165545485842442555387569657720337355081796560869452109035990037875954462709453360145533605319230876218923027916943477138518337270959261933567146182586713569009310713263444414991967661168500539408248984729192714595554883934038436192202936705289867795977412635618487625355895296861713823297778205807431892760350549495495762508048095105213837255906743538871544932683874205288883426009754849233734671322674460560872190251632127110364110334473972437512381679182845070235986494809590287053044127542451672849161402794186707414960291471546545016129218957865036465834483748578929468763021279249604215024285417800743572428619898839471272746410743023285772228950660249979567466577297746640729237418281320642333709422576985753149387612584742131819255457100789996649323021819720060165596456801808201417972005204196394747178065999897459017393566001609547767548312765394262034844442725122849055779675629873249869334626564070762038897652918909475392990432870596221919167597170383284627345533505898602195750353313994034491983860109451101855056116277226845511851885734361653455219017249304780405886391945636260494004095754371571504309254564740322750131046784991631013015232496344824816923143641816699548287299930921294832174715713532586791790447452828526129507581782107101156638675092759085529582429495160250370277250745775594931003887796866961581637638578686130874467703283402494756878434405834766423537263596111508504128449429828994491213931186662083905701426332461099025436932055615256540572975502719988990397200464827134182457554120070454772568237483066560018001508167889812250534798502597508335262275215652793074634129549926396476938029801596281198579683550870608036742852894980798860409604135971769179234206630897015438251255767182086118808555011177597114228832294926930778643905229303671062048192566061150330280205989109778695175987672731740226787848590697802422876978455163287503739525659056187826431185703378951045615907013567550229013658555899684707257736500412850800270724560967394863462995225479018272007465535468494525706320640493412070649016522434730689213042949241199000380817777306547511606514570677432889683017228730284500925792469993257909929248486071469115920649700299210634424825384449952882374273013795651912810235164075413709330353866315343454507326800213574231338067651816623771027881896984717664859650649739031305072720460255816907079570815553504342828068617788829992904419772619471946618281453886933250786721610116464385213897630815620779308052941816619248341063848126012017673894333139391355770418542078485515400055182892700302234531899291687965522583469862993229125401627729186517296815956838778396381811247024381602147089477559654024068008475102882574182594519561961658759831166122057526779354847247358869292099481749028276059951184879989895795133059992379245164906847880318431709768139179056513034839042440847787536280081728842685757659779224810646447380298337980679944100926925430776018813490594163783609098283201648997608147072404886608678499724400129275974682936717176598491146745634039980582399737860503570223304289623485521891158295599507447618858306888130690745133307936477390239112983467959963902933340082853182464371210865880092861826645721343457460018091603039953949146234022464455298847064132721262237879040099728526735289882745042777310589502152982010550173143824655991676575110467470316676984300515573965093780229328487299687642917572586790662851161531588949924916618387083377683752993512317665470631594800660215836478972996206425838313952662561808918971758958909509937624254278207611657707897995194169002163422095362384479002158464760360092556023777513662991347335043446698924729425159379204917749672760342245602078944587560808463491132917758966000348315534253043267188109320488730623917707726391306088112459128927668252460622583322295779291429655404941958156358828172861855871221180707700764946483197275920350906078296665285756121426459455918912074515467732890301551870015044513337481465561705207310399366085238294662461555794176470381222998587287856551521731951022679380730392940091437151573475184631509486704317994536200250948456215355869271224400741525851415319473153407456931992515516020746408351943571967050426316613411512714341086310834541781288155042463283751226817164890414661620714706935279955400012535220594649106990169140957420850597963746441176583753975609780577179867394317607636952597376201708837099210573066314572110431873483456218902474696905179675894510100044549260583958966185260724842161488377950381151100631817491092134357093567837189574104908987176453822491386363944862727376310544664353343808113660291606294797380455965239780063041493244360113775911386389683013131151434108476418141999955971400483452235464774414240776097022109837342015716884530775473687611286523500289172009153725828891132510092868259233795602766745843542023688055811177277572958645437709977451558152199615544594489083592301246365872526563936382039429389180232672682419141535976145710957544017278054995651611442162490873610632502597330056115165538170382093800078211501708275730561228006417363020174143938731797571811978581592186287304157411611288315321786551776204312617192231092637865511978818057455658537450787517072656519326502539535812238922435803107289598443010328070906034574664150431935297151764325286919678610902667971486845668958804388656414524243397693909070499237078871715427413459546313615417208634294403944755100443041738408867331475166778689844723771455935956551700712676952061244011478096602628849536308292072280937978376608498462943256621269847323272854333799541783719637341508608331337331127414438345937716348678048202824820074933647946646049029719293050399446377334209422354040561999731361663222188821433428748041181370436390806237693839206996796953190653126601786010263270464563862510751786431557735850621391019892734581281917343514912825948612207802523449632953708702274373080329374370733069684443812030272209848787567182867335017234547299790887132619790391307019619861219115399131646223640679673370123369077355033661442836189709551668945495743585954942249414926164107350722699776896544579171379541620141930275599135418617757960033453852577894766307548110928382460334344923691868320877766113521817790010305847399808382416465159780310732691170000071360289865382258647106828458476786879487778254919242749858591083634841019433715479817338808030187584832150998542286216921476348227428810250201511172551953495557595315880908223016499003907675813161934641483419297805341274754637625180759063815625246427038937428521081392107113584871253688368731312765660481000687405737247394573232966487128133415827382161082866816975575468842512348581775388916423109185963693702370349068284360488126007555277605874573281362564281817837558048169294024016311332570367419861006485048641049709185638629902146371967163066722271555202930435948454223246468725388484784625068435697089445242656367591073603526361812192819672541287859636869082115912952926825684383596430862967837109751240962194512475486283859402867199558269700183974087715526671788642422872960859710700343174633205432219105913310231285100308432796308010368951757833435447958191922802483113692389611049435067534156124864544834651450534052713562102023304318532104030177860088239237407542497779635904873841469379575493811334546611875082996180123801424808193285009297890775822537683542834355749578696889998523153832201816476408290566768110701404205614335964808844992535478410366528181826824116014081466084253809190830270106896676949136408732429967069310779302410084449373872896774503079697430169736255564080202527453581489943677154814324426956588210412900041971774619329313658916151718818157064635706379357158308615589790689099288628971464901655746621181305633770320714909993776241862940250969353203913015285133648854348803184232999815055760245471134264012260779920469265519801349830311406966726905411919652560432377673699413222015720085983003978678445325108301674976966736933634276673874402121695641555706342476551136051283032244039741235974552680354155592103819061003366211693257013432005361984443157744350698334627225247869014470548971964690330639862170778118027066526757356709591468376523920461021213687666163502247095316872235092847098128648900229617249790830109604966782463845053602874475328685012918764693301628627142757117816082845310361651139389044211147295524153491543268854211185831021287670140859780833893042722870973615170957811243791590890350136605305632845577793163435779674520400531727343359226384850833816101039667441603725881430254067409086844127234713783987131515091198623558252184967873398514850440972577158416696166573770501159866854325452856721132856642819217422174613825561550165665835834002318143541943193708677545256812048472215391508874806713934446015466983769536306248894323036568772328187037721026819836206035520077765617083534198357548163434691734117622258921344007478728777561097343717422378192044476879306218287630310994705599464888275887109874013913628326019153285575208028906011640047769792588706619256192731493788186729080990510368527789191106625056949143472064279640880600474533395439026724854164854547410556232855384828308274140528164223448770583421134424059626785148977792215882131237856189793330756792036815511090104462279219766738247515882402157077012673043682898093164934313297628709508892125859667727683262532688722110018205697498805337101125122189455172231180773562110558081527294666286365389949818107209790905328944306622342583875331600200482960997475606651531058172200631009299704714818145950553896944504736385905492072689191010851015048905781970442680605340993759162861088206735803951036018934924971694411558477248255620099678157865827377563412127089658246509335198286930273377131212927341333971629707182626738574330179093843250310204279888624194813976676053742182528547494803234868934093502481671592680960498178598926013466902707544067260456874283949288502083583595405485495526873468845222478039976974482664018827435471160761732325513036100373388753522693228724311433037361623904075747930587333480327993482582791660330731985536656001614192822053031168070128390253113796534553320867400839168113962064146577411683861036456047891981432156206237450754332045416026743127029418479671887384040488744864139705270754171226218374593882160593103494253530278105425841275291679051444761365920277853459714150145841500185618407562684164898818273729448695044360684663511761750080566949285141677988268797249870294060136523040244379081897858704732078506471810550903578503497928616772884414977892452934396624447231869485838759119129771238707581890233740202146800912142765534560271936782019997732401713918894055907410837237935381646097426617277274513120437923153199890423798836071291284642988538344743433315835004120460000861793616789815107762014521800473144248763809565376125420804790549446785583075583045096180155226167227418776646528168946069133324027238732417647546347507946936991711392116322865921717140811869087921650394267773212129245709250176815168978879930870717806025115056525628619312067189815879704005806069220825072542797279132268450311926734450646628110936492327579656709459491895582818136774732117848651199338328195762948672836980164367209457199618441498171912714228910374889832266050648604654671115322145144775936336716209977644298433620798035138463489170609255813401232659415582351144755824523146118151649703211538809783210392938350823279228290153145473950525465270944685676018344924871395432080779775746089569241266310146662381411896714167846730727622831220317971873063400079415108532217308427781992815691654277561440577405375323737232577750671831384297633369783811553990979571917547484282411728063193477819874125083848182669971176454555239325883221823920022599501254778588282330332030261761188251523111441559744733719661241460881631601094935869836474307071881382579755476723843122523395464364412013491420543567222943284624305078917978040774137811890002142561824317589969434249204359055532078244849800836689127294080243386043171483622295297982922140028873898473357152900058126054905623918451905125042079502288227171413926891687462747872989174322709600863512797892532871094411216280108425992199684819020984075608907891891360226276350541914716219442177557073061367195436667391801031429833684174870012344838022735184585045752385365847368714397996491228018173459229429826732582729782473717761548472846431129385218338941370944677170397777854236570662332222927396679546711991827492418146094914766255045909872601550712177852476749089434416866092402736736062948073601613445835088687405334399871715234074009620360734740896860914158442182481203620491859210723028288653542000440855517926702784802099003488476155224434542781245669748976155126760233513679496029288465389556834437973755735358050329264981511481118930986760386516938073329618097222961316947358311091850121788457395660709038743946325155121094957565781552527601665125653398216374195804703344401935514052813815528713010335945036018548978815269897582999829961306642957855524545424541442353492058800026864870789576205132813511087963695757994672301111864554971051657897643651883136629179126081581898710234922993295766523944396310367504895459520892395819388398509449314948940580656495451432650624405021051952277395561175430832456796115240821687713413476913870673899848801841052187460505476333495496934268380936523990000379305597503052531465686967433992995746649829948277724767320611401703355623920593869021879446868166690215546597029005922479781056579067834163362434868065989122607259308771458538811385782270469862854650377560615620112625255318795610067445137585483123940244178625835870391099059640696974862045664642456210951505263404075789714576879334652574909650590422370494527352878923430569532655087546393425665665350120815442525211309883385370743779784356733821808754664520555359533452653185670068977366414295191303532393731180378577081208236983972538745541086505727209004695701971762480868477493419018380689110195540167391361100397285839157559879755865177426790359545693362271258019675497919552921525791971838771694914814694217200066050154044144076165149283565114632181423447581710660462797684130907261252518852526137015547114501188977726286286199672268552520708715094822551780094834567818232971772832405193601803861555710377449042268342821135325721933437131225382695716571867679081133560611282512748589692049318165518298961475539870015957483293181546186348290561846243929268707874390890184360087322476703202341219300052675504741976032059265866091122517335951255422785443732854843359704778964921059313512046247479280671122847398973729848145963211357017762978970850884234209589979066486364636975960926508169177964507609142587917271045334375177389401089967927623695357068751759832510542492200623003224113379257182944200132219176716971610163808841807521224129127149036444761357989054558878852353887890313719963798237551981310067556795415093354311049300176378870133854675221709659942407232154135793053518949489361505275902367271133287304787644401151019300709999054035089653233683046206476495056063604772894426584553140871548174707805147474681184628479862298489650466656184968018552549012391909292324632486586242959020782879425105885509408646857971980332737555807290956968642088032186156921446861066400687338183768869338715939160417651891300064416971728584968819399019402744555697017740417301216853767748069519124692809613668475681378259824379541777380348773287705477142369667747215809635971121859977577727215766076622266395695032100169871231666835079108515739961974334217220487645543164855671302762955833483340052038896006116385788825533973170204766976103660695369957270890307895628216004843387432484548262350538703523328831008953202366568316393404815682750651215804873315576750586729832938201430091650697441759564120288003749388709481019274605463373020199490565102312841508005704692138228936942716770472105718779505320864149826012362569648555101772243140944328946055572856929446661107806840586026334910836818056828516733183302187989283531379456115085114307840786925233463576257165698245973116255110369511675814209917627732592944533732404910849573705928345740671162984914045995221160233857307120388736673457395473602517409829670141628910734458234219296918066637213821781785074187541427312645695396157826248520332015441177524346741728580499140879738207453050794019047890113055142711532207235755936868370204893601791529661514652518644234129128150356955571653139583973758008597418942941128482289263026835324334895189668883989248315459942420548656366102998819836663073218049748003415014906055591991037042769968035703653760241062325170640827250384826891528168684761236937839167347030208506798857121292911608291991300708645800002184768305123640538167871856710211121333819597755159410818637927968424213274289032227406314075572826134954071952342979012873441595130093073344634140620565060141225156653863966850954416501716382505276910247015302404475116098367034317315266982982328873072318718132483326842249847948374227795320690248937793774249025914530292641416058104251176969343450024576517309966779318977188572625056025543227573504453078016397292280749020230169987786176181778959910768752641751197256204775938257198499331221835190204902320943876906519480878443764961110965538372849828828379346414048525972880391756966610978385400232549048581472859864878576045770415224936166334212954434419631613129700320094758100540252809009334151191305751962677171614858686672932090630536554877729576594584028461462476954436574974869786556312352780225676611323985845355944295311866734328138278543273717842639034321434636894677849160865362296039556718707028282204779051147535478181144612124278955309630219345650058023250787317836296566920410414559936537133965116943824742238082464747933343855766948653541865718386517240203295077640663511281647815587777523127601959153937474851164273525786989333209326592488551687622922229107376119421808416782342313258879787080722998858835022389887637908569958857268320136399062288815617942889532262602905772354632433627009280420827576633421443881378609016830412773301821181290614600367659502015224938297720004198351001363856495322034896618846031410399883535572715291622672840575478014391517268441528595319946618226321764798430681302338886385834578970638848697386802064668918777358748044569698946770932563587311708399986487923158497093566349884318931238674225921296902438994924191836535384985227803831439888601964722063532331565407451827729451438088402603204883961407748629865706763628362169854434895894311657239203127167273660002860547703482361195698081695418350979844786079463320465443612332090596897252230589009993122496772345148382175267222619405083418340969722259362783521014634840851149827304853604926437210553793620255768006277864449124768998323168867634874104288651542261394493728379644753849903251685920117814755113518511999611218638379206708483878705667397635875467332393885227991285410762062254345264831145215705807301500292819905673335674929591730431120882412726983271621474770562657435838951222059236224633871484800081636910997094185325550662325244598093170485290749864254587784058855369663835866342464232643007664134859875050913117199778233867705467821419873204082020872954030674718078474352322228813760458543500301603264418956349944254623346406391685574779571659007056192355285893898314614468464787238393842403533255905288959979232750488374741628467263497974651471319793341112510047091590720139483025340613119655747439703899424601110404402683747357911387639488539147842292560317893746922193142656749519667473250702343989995886604404245418872718707752206306497452674005556865336405926526888305777517609146480370675270253744974406190481393219837558401347085656474284010674006677651822349166794481645942819037937355448639518507440245596950057157968231847903048532147707291702675759886830985421387594878014090963030700615342109289823038440992056008305283164291735981128681686058560601936985520723598229128512521965384618316535145684646366354728530093417203987253119956301114373145165140487742302544499991116717963983861445895000557849493226812540889602305839785671326115436179179866253321659724334442240565433154080332850597873471704601656554649316451633518110324088543472771953577664664651443314347027392575192256870659879637797112778508657813168680138708536365443177152326508141624935664084691549221505520868365875553844769496245490538197666140304485835398727393303091549229887849967198050173052281291811695296739679885949564270173378975996072788306962225865073746117438158284853755924016618222162745845016089514908959087362720823135191772449464701916762675851881881800033526242605126139366435234746952121758762520586968078873701970509318490093052755191166966820522837028645505297385630840695899423985553532731952942864274151194364937092310916435658180027935194834383131271656774745934499566258582471112349755357650350569530840363871085992105315465933382533982283283917394485668258080357375075679411463160582315259982352511305104514526755934395345010681951720412857715646113471683104908085829361337630704023549700220350794929578840249277021352118488420720239938115027154489158613356359662833181316439403626166837478490381233076392174464027071786508180837503151646311255121836957731044059972851165326415900647744708349090689256074926777355056762556620609656060935020424184860111159462426822157774428702297907888335749985454605881239790757807276615707219129076977117623836459482292885408811660354473188990032705725599906304462165553698637637318906184772240507324908303640581146423020203181368653890265909682641982460330644771557692966576153791502899887171669649316442285048720670388169889311678946215427281237394795481462344681750055720499424054483742577712631525524580361000348516883855607703982105799312993310896798394944831326225032980850743816405781976667539566841971231637031796741143718067468775418277755673705537323834105773090835731337307357332711126811919674219338906830830769927144790731484290211699334186492630244085801226187583551810664229655943472914458282309285890970414257006108966627274140165378014048468631764499116215839576942169624898734568658321756866342672041174990526348326519579789688187499498920901102077350398363507295000620340677165344119166089737005217561454533849064593540060101653673231200738741602227429716422983332447495611779464668054484069207557517947997333325029989625157783652424350384896406114812847985354247268676392959557657764118737394824002783288903200689515520286360289386415072387413064594105363387383973364984872622085744703548249946406273776487806987911653340513365957452417636938711226063920870086093689132936236976183502089389833843428381657187726524704737049839430429157861989261614135650934915191064274014007041326456957901833780599754237796903759139028376719200418742075041011079253304974124155414070109790948417193374178731481515149113996607127307858026690517362339174685344732983821801641278676049473178713454106743917519558805904902354666306354892581922146962780347637900625406780988677176029394103439474865392145254881614038371732624029725934268902722498537606279870791290410747446184083705202245529476030709221452069509603966863552723922029778593187247506250044999122034690811018182584735482241373328967006373018012211105708100340640128989497785530538396590692322459860306502353198055130969059822901062271342389968513781904059092563087203243599685430733731923822865607612404800406369507246853944426205799848936268281988530168676951638848375106237396935840511233820159050078366121399673693743641155505419435316682881603953753693747466345333229385873574154128515172259584472878750412772782058301835224822601896823219397224504413419505416931442440540148134931529903220569955277794137707183023286367901479298926860923428167084066855225627464014597885680850171575847416113200849999947814019531373020326515282046065778155778997411283597796086021982256091680259696418383582397651177558676307860981307434321162397000085853700227409420629758483423962279424613213497495320585970795701006746443107477415126114460669647466836532252883698356839334624381724503300210276801279420461641964343497724469603239711494735160061265070185454005183727852920553442205545358638551274947346506131533663092420300892852585918109811028547864735748638835052467990075912951040856218036255514726988075951882994619019575121316949648694779777734423332603340637960153986074500225895205030121327841250421012773957080535443541006765678558459443468087495557193617270434456266205847305153495238110508174745875649743759285083370745173734684251917898779984194228459368757158411147799668415471928497082930313684537526543304639872368917871007463969337339469377448071817441524529530868063748304120627891015653485958913947490007040504510086478032764364944052706291225907282395787476911198888009499892594954840305232406124546535923293247185412929436949547202580269590917286404630956636849290532402124676793016248541197255572685212206291998858190253348059977534742518005633742740367815832598414558840705849922859348862641870030590966084147928346060737270948845595600506889959417726751857608612768233157281160862632534714199667412850821431678279712283083659170536060014847829469697523738811648437642781348115592042768065889974041860589713869476397181936375931477195858775789583925529271198832484616247695747679990315115179816202338931401596241789395362053750803200030466516203424323676385070563103761956971853452963600131762252820669870783167540083820218281633791791672432311960801678142114858864205078399674985927154558452635011876967181159722623796169794521759246061579311337042931767550733322039573294762270946597909496039932743012801216735303111888432364008023382817253935495720325278600495625532925988892217107659075103399672290964494603917175273965650575733456602860088682197881517121594386077301981384618957239284896022027535801805552341385334347158957817263063629801482982672407455073604786976390149118491306938198827485805377471374943686508238283466514532483950197428126913326724036316862668323608583627349801327029287088695907163741585050388145771549578383877168339898497686884147657656316701954103939812968010638576711087668143548560076170625900901949407028543575098330912415741273884559336295837821398327019815307330478619788358595563653251479058883927223927556846080167035837926515355276699172134695680644477537154541046338510686010492074398515227762283024299301901654069913881807817370762350264455723722098143414357534174961272547287647835046189629069685991573991411267700539782938273155474281180005809961602328289745624763474998696551019721632594783268864851592604555070361708860747649850710732562865314753557943492702528930110302828392919588989363779574294482588710823612752461767183489814436096152929998412694687642685484116999778544589552385431953975991937089254592875728777995427116218365899302250108114032200630975493364173842875884398366211992073476689749353023889913209064566864482358209543235255966011916652676805497296382751784902195141743515296112482625378864140485547095632308425894749680784469922609736421000886881265233981567729912417810238905929448350412578005844249200333205851680355863776030488930503255529534981399997507653117488079099288017045216545834921668569112626697701412680969347774479291228822493096849354762809800132454431933384207080033238810757782667156234182189182054123499199524540442159998476081439267590426685167692000440382411037771357807801311338656511489311621805441932306562097895523576643689086457424832285263874876001950232174099748813937830249637623368503261349116033137457746555666379670498711637333144896426518388303211009678899254265374029508337348731645014451721566356118344599269600058381113527939482668613951113558427539550700203210713273391813526599090796122811708744519192635560948960281809207025572593846555434737880825376233539750760972842856465558669550385325424347541995949141151221248907132554257730180457848586986997114926666391590491571256383764292725000900135054992727633104546852133257172816814271081181560137221383417498896011797835339760632832480644647863889132355865765739896676448824386934202082388802288371346320094061797426106150819197959904100010636618872859476918795227558545094073570124342748861134307679588722528431364577832382049060202511258359852554006906506653013329110753619329231975054454361884516462167312354504366911902616464740222284799604288534233307349353006571820708384295173375386488610978636726015081478256461592291601634231168479852972695930867981766942645124409983251997150892661637119181487608049095172525486246866162037107002791526649163831607707197409655476241420476695473940210954739854182766689421685881420375451140717094563257682618992056803408725461272943559955713812163217316491797088356569913581012867249012309636932815357473888485521884028517624661238845422079615226277054074029237056693755914962095817798645142990038439369459785986343545454559013536765207552913056932432253201638167408600301940758574323921457033028334673204509025394620121281992873962149752531370959099749678003020052890775732525300861969976967025641308266108323973542555944637955803106128440646011578295666215236231224960015973242744264122988712920287382869901183673799856432004841663320711641245767326123345410843403420014284655607040494309129881689758175116927538816877138575178405526746556088760173100305860675202900760128559585667435573066129711275213294661804336047913557837006878902185733166675510015444499762257976368128781419119702138124414505924187633994179907382165747277698034267833955212897629352789518927109258592779343804178619514625618809778122231256347745430357345515716074144178662510840002350344637852215469529420948803888971157118216856170818235270316251207503850744473233268549809489022979768036176301882356601405641149335619676160826552690829732434554147725976077456615009092716196660082319816838752837892927121136258591984573168799941401584371444730584518749473469235953209245906753306452138487621385999555252541044305136944318316775626573757951247488496862547370869365109107125371034276883615595440467197854091140860807362557240124067421102903211740962852726449489303855929999619162493368764230566307558873635617882987682516921429765009702827814813233307730794701652644361265950826519313812997785086887757196231722207622983272216199911502012372865496592278294988656106344446662899443575176056961637041665311379167418840859378804477447566832648640250392085685130351385431840849525860915617904039912761248492254914389716711744739345702072086942275399214983572409222589113706904420546497975305362572520332152665591439585661880140248144483328312256342776002901567382172670167129266489851665413237957761428668821025736021598688631326729768958516851711323931872202808115832543208840136699399353933755916699057979822215157343213491874889890653520057451964551305544097796007810362369017712845638605920521502599211769632667936995074304301160235970549560140638969920263178135043119545594288756078325531606347044526888103291868394632797088221351763701492978806721787745618786871618551426532119959617939855141461979437684576111242207274673460485353024910512935072930581502395143619932975397258381072839323720224445332253294679891230839080811822664282322553264557573999759653160747093534430698786131949146874425628672771725482636382068412172688176498278943731075928364232644663738839021559454278024782803978524675249425914255417706705624750551262049173263341345672761227480408770221264477197776716492164339589093838210071181764169377666197278973508690038713519016566311539687140165918201690390727669364139649411067471256317654859697580060533995489912881257547199343804308589879617976069092297351364818173912661517441463443436138558399415831157337735129306228718739710157343987943761124943120215900930315347725700317270070934850524281723792941471939487641594962187023401446717690323570485707103051264115292463234557337364339645664978423896698363429346405172415813374653717357424523861661198275729653171990761176167530582019220058886677381193229496491409201625203072724350977109769887143523386174445096252291063447748868964043494801722900122859567356565092438253581880993405902350715718653067327022642976329223436779409308974708726109973981115335887617219385521661510649387097159140187563576939755246892132807180785289888744351590452660419589247400438556233604878036255739952119655600310552115242842429373226537467238292457573911178336617728248576720911422145954149037251554899147476978064304476263394447233445125794682768688057572623109482364389782933799571014813962689518147320154715730636931039970653339905216713066947103523915064478248404512943086418151554135767479619278036286430677003975096324405215862677516615045857992343037662012124846555386056802668311166647473055207598033493880459194482343987577065372489570293044811598490062431495092533407300505977464077080211615495805103743989972628529130724451251814537975634784280513011077667397289034722949849581179835350921035403753742997868655500920562725994222032117619168889918058300834833512148901801495022842303924726381459519428673591399738979721135205558634847825443331773070883120076583885726006943348027635142894737958174279751602759201063153569494747557275307765456631880942918735884472254604234169346320318450332497478357519297706049191192843852570737544695069906576706751257559445573063360188798927373884219534866143066038666745153941595254332252624306101606635384850514278410744875325359190779039253788902924130836676631527864848276010297674585155146787872842603013175874967137736738384001721720570215515848395039797566693907151072055758245368998455287652771907755773891397000342029240573552862152477963248347058806679669524688328690775735216999032830221207866889205372292824187869650605524954268332325705342587011355785381429405498433558095589183697126587158331682018920533775812733984005587825783796788533816668650245235410487989438944519745976059021082936751386389498527417772405835999736449915049656679640183971227543824997170728278895068165633903088012090353355702106523607038117043802380701150297001807840050220330380564003159355921238552231293151868952630625960906961912653612268077075275602456319285744198799926167552075774281883728220521314002000926535412255451599028144097973514621251411934365621106127277511800567593444214445679640845261841831763504157926472307610169319856140590241924111881338593710597328063699222763207005845198888221153593140308870548595702267353562307021649292749163442999080805296058840002225530874512263015016122267449640988827786095282100504533260300480309736429386993397131967947390853518543388105862633311538171402998980565766039302608672718598439825535361243519555792660894695981787557326632994753640508522936521437463373526569706634829760539663049430353543699937387566401386514469418479656358123545455195078906070200765849882948002879271848184004756707333519625033161251477611423450512733074597924777626617160532384964570677728280504826814239090805093040200696780274674766440616606202545009766257924864905174595364565447146120221301721316601209322790852902163183984853190126074238904403984821238166743261778530971824649418148723600290096103888825822403509602503427894223405982393465052209073643433637135537965445014289804830461830377404635596417633446734540533339551069878920937266672370588405402464516373202249132886482610607184503705655541970856487920225912994783677753389389785742420322333351578017731146455822816197191586648036488549704739083226469404208223938869762333037417264468035291897499656298698204625924459124824564229205118045487893438023069369448581271182137078312070444415183064118157742707750192162869908544201220852046568583816581041369851364575101002908592790422501938817145420194706323632040799745425599030572349421490492881616318726441658384033784071223388429987060267212098280464808064107850364194803129507475365917838323384296565391876786399206804775648779108173259175334838389315816766481635649605194135655777491761256663369863851405099148209942790289586775026092031075983314655653643668240264711423970717371820696484241894479140561152736740783445336104460479982937133916905570936696852032410916432963946620658750054880737976344901930007034068428803269505377420102494976719564417601015414665898071517076233636859450039617936821967891051297780411220003548301041164839576590578000283195348234877458493438656169700799144658798824160819394012095094054368135492980760243579303036707353958773196676198730086136446142294965600790878388611250845415346566706818586879062803592251862818179196402461859748152459732864232719112275052225123397872443860357613616426143778757913645044183260244985480111865515592252830436664190633928487706361488685269895427672779438971972231724464930912162818259956795662092917765620958452762494983144950165073151837149624427675839055458161848380986108705316430491465800365898310986206469944291930927699032987554159072942407205112904761776190322648956105300062154057313180410927371877826951230270649998541755977427373589984755644645847193865366617446913936872445013007783789208557678046842322099141989824384816002421249587675621094015486913884820309978566470339295778707895797845145238487294147037926006828209365473617538190404867007066235758244207637203221056939322895508240643257188940147055177931765107514389347761052914638428029582361682018308522473656097163912250971168275379246134637161757979264977802840954259420791296558476276682364457201607405134908637224373364408442771833043261631333787715922373638744552216649341023676679587264984051308362958147169604024442251374129334608322360783150157917074444420230365656592237149254041492119172079682130081396031078796059817110359147009206692019860248208967406770963065024454992826026130943944496591705729072506474575420875448638775166842414591874259373959376327752686184372076629013309575425489663894886769888221975190798211685400812725244707904043654596300971886931219267158408088865099283231926123700714246554504104205042153074989870880328381303489960788556327780222498328731608180266844894730093379740880747978058019362830187493490560078130280043430384261321650119207025010330327691370438483087532675431035596164980229701201573727872518793380030535149675786334773772298115294861004882165258078675183089693036163648519153609230363493354609665201666619725905717294327143693148297783668645308123937834434141699369692293669515863838354278032603172931616988479405449779044482016485070883742696795880512122324041438428025331964259835094689914928038042347495767856804135044901364254102817652698848091396727253940443350669366452069202025697868132701323232437746080968088227762979378057838988492374657563132819981053406096465810024194598183832777598716659180635203554686540639228201498142685772651417678468106363398857817128976719442813418860521155773090017066263865602580945599721208126373046046667553299753449471119944988478089623445568358245074229968229526493605109889304270611243116087857448788117307963129443470159191314089411099413610545524444379399154564542885801359991404564108338006161395950836236131548729663340056480601567037210551734710390684948884564208287016285784626029782370093617510663643287190304852774380756594090826175483129410591399436987811179605597047497989066139863766659654577103395167246825224513469412618419536325636600433112635939664788093937108555783903828885999081215357407436415075686904512545055236854143892122399853357150378266948709745005888984733866297905307966760775801396455973945940851326457985926151253587527189792405732143518250368043283631834296897511127749812973630666624877323348591235365954332639052958529497340344957115908966397015664081071540678893925911915176106046772043807113855791835015577393259165502894348684764653477125293778216365807017985904610731183871948515608197681607320715474073928769049042140278634517916546760391220340163705031015549874106988312686386974231986688529212382415352579509017907793742470783053044585820983929390661148747181625639776426215688280352707514661400725615139321020082754007044930780718425801727578777002960552416704280890476066182224734418585632225606283538459334490178294400576710171190576114325332141982175507855197683624564636885155171243286984194697335292714391674376839849777954127818724793946975887087871261043224356153491079714383798812283420683403444847907011894445682969851474995792462707345124072937978146732486331381358790472915231150580046648186641228906961384641266123781110590811574475748672070196321896306162584613597195976178426042956316297842922880422251983148945546433967044470148669232021231230343904943701276435179107636123861288314820009191082982557625804114519668782335595638645219624866897510113171111632657786812480396209370678265589002272834369518146271299042173942259575160554655369584273471519221239822385417352912491607522284226654678757688804818223830830768978273493383199974675627228530386595653686647597275959273691823525543665284256343610140484414355910512014926551945117212074001031352472290800823893208166680935052192385482928060325800452758558582692964366682671769342612468708426377229139243062999124910149437620314327864643753028265137668122994096034309899213304850654831020445880392320221444769490082463612702403389425620324143540844548803911380930331301862872798386851528393801835802210362052191421312962827515228097054029048092526843119201825806639943365120305284286029983957845341255800217638837693769656835455831873658775235674011954065081119374353040305550308640709225467387362499833144065854094318066721488040520556361987375508861218673285960573956799442746245993891821434152737121114338697709104641183638860973749160203094300620750232132035624718632370778238188117915993120327408801765994931129682578513309501649754041285766676818971689713256398793240931505500497678728942068795563656790068341569070394765688066806364850060863482533508327512407902163100973861012690428326161670566999533431061315175378603176147812838171932258752865745860734463423198639667106891127784705329377887007157555446517669287663430262414703432499728573981461007490169586977343483336083585152098298121051677147875659867029991778155869108465044881970927641126789536742504220947871258904086586997849626924038263063751658555381164320352724883434057435187866755381244829876732636347943453773587159587251854507446742134623832883938329972988864195861664954350014314779062940725061843262419570879857539192591064881307138678364647085878207581865191307858752539543875046424442389909708985257961184818500047556004011187791177166817534668297257380138243935728109485446818164547380975977561042996400661994724034764885472945969790316201945157686805383092610399676061521731899771292435294532596381766932678948298290977189989610878546987795090713387839740305562496198084390274803407008282700244091689891578620339472407322174140365243858051780014519439765459680382965785936398402957487228594185474926854542392699609329642448391379285254333552345526148912871506221042270425968723078017991544105455370620792573238442628658690206398853043856721212782763172235141904697119010576483541696035877542437581758083096965167162134907883712867740027661716318827727314008401384290549026099311053217501859583513393776814401139064232445766303465133373748770459123463862726870076337315865980264825502485025776889332950493523503923019945225037255938692454047286166895119768588901700388525412385521489996256362051429868865126405095728819872520736841562440710876295644825722121742753996066190891874515435775808941625285158919174061033496652263933611292523655027769705137734815155045159831313499559897424811674147378367277711011771511185193718611423513867690204091111781148371211418590862708664073125563570574045976672079081795458785023278942794510134300396713654705404233283027481329964499962115571190914948516387846947926780021717448050528636471197153555310765700190541858306048691232767136289186883152723567643272570840749988428259913416365497313675336575622368023652625096241049386819293690005427768872908417990494344385991252800827872538575923042112164793812331686176839429511757062925223863930871383448939891525266638721000191391943540327598992463803447666812071563727057900817785898346131449063613395365059707014423722777847312651606082796111375638192157990543079504447775686349189648437907759877498671951904207905361220388193110252336397352431063962164918383402099368272767867858092674271416396118996208294500405265497854318526485603731866553476562841287086818719284144637029277047052032453918717299071715619759420020094063549038628560700175707190770686248798712672647437913991883259119438531435985116997084311733265829076111071747347510076214688299638251313430290680175756327789081830473432443014715421892421766415135028402970411932934931806025082591117172236261354045001095635994641945451326213880776351237233992356141952761739039864734776607587959964631233213707304525174537487825802397044374416799517515063191876196827066406086055772819078637165030107060168997519597160604734936306258456456982055821333595283034398254512571573719369301007231229809396905582767938654024377903814121159759060316840027100869973020179727368100103913390503300412784269152778554659872937439716625896928189583321359618042450464337166640570451358379262349021354835882097620103060089478320597129706646395222184971887922818707457476339519125096228544255120970783733850401790476361092186306077254891923266933665024727474745967746118276190493947561622968968148511333672982249648047908498681006934140088616281275917178601967095142185913195294037917764835459647425154558161642878961146407478663699654632037778208476190319169527412959239458674789032573158620969477186217148493360243771818655567078923092610882035339290210836713777044416848069005340090971679663961207129546628920707814922815290062847061304656445067893187150527839989836795187957497602201687421922524084365154888288424826691111287103510245506081359799373813688224349042502160560035661926322019333022801314593636610705266659066367492432054960519768605541396347996760415494493502221884062019886608465376105649282086755963453099007947283996854228923927776567594316159112784496694120801186430377050680653522973340438863132915276481388112811900930042620516878050531011719537273764594089411135686720441976189592004907485436723238000059974464200913255625393117797687672260085540177480541118373566854420762126424997441202988944374626915494177302716487204974322381667736418979571066500055007239941082294835292625945272298493203213572990166350971482599412728964013928361529539632778833724691422446600959715435944165069141569023743685818277215020113082892856929650031664262111728790773132410553702649230322485446195848206860243960094322574419831895208919645853027458341223509104479316299536743548891622111395113282585301020147900912454211154306159112926856638911840472103337223004299241641229680946431979300001247699590373895113687925252088346306916191893064017152246111615995417109503508449752558698751223151182808370173417151585533441720856024987787736168475211592166219404380829019804271338715207331541655006639608362109783833397795635010488984170115976302432034179060476023555247162099336747072260326827060730864806578333505217760746892109254405120044143607119957763122436180747416273299782789872679019277689934201266226198790943310264247545019241724314580893724623965846798563536312410953912847723012863139824197939081160966454641126384930824266672691212397678135884828415404819094210794298479567655343602055559331769959918884237166140666316388439669356377500217544234869713969041446796272379276783787405616709566468516446415585247172453071977281786927855930614178205886793366864575034815288683784812645882777143172251403080155835655808766262809613267732719758147092117801740437160150366120133420653463768147257995500852952722642664188629238888409966060869970675054708862535268029199010753027867483609763860083151150105110707108240899764308768595406459408084975747380601053210389468919155708439801726986244074126109388726241917082047767506426339925876569134007154211204327898789465786165888822664641157824024758089538299144762795906477550548873672580551778173114650088590894087600164373737458367257246994164111807652138553448253504660931443320069300240897835230261456683786736020641523760565759419603036799246217707320502079214167061518776243252001265806486371115417144732656384206328111478500807841580210386729424364166709763443537661060133766636813733115708509154735890831439578211733909001005703422206638331526209133348005485486462547549260416258727630073736581933584582929571808741631795811238904429345455019634519793238752454975975550539568939951356439199386654157837095576982214525467141240621474582738228162192497937371407974364621828426177280211576177856251149021058150958963341775928145108174759664430326316704393213281005926353143334501053117484763353760722012822579996810107399274718252635337109928047172001485220665322687698004841673566269424724894229802812581352790451235398280331162834883453635619461454987866629985195902036872741803959350070973397645536804846966944152837659776933421943754864831518676914920305785338363917770396162163004988769260681249891939732232424463663857518939856075560775795203422297440511876968914033874203443690071682986236859080328453592725661138611043733263999445929355507264138167755880746276337495760470276886565882953610013825592746328470482080231172470876923091650033134434852663608449923310452815668599535710712655412950700870406271404181092248986339490307137676463115662324934941210545329616789870987891089374311861646578526427700649130255476762078289577491121914066757424674997647042090369803396219020693440335898532957045387154999897640598738010011821156216504246776969878200800603095896500548535393002757602873660048318108907171438102251877039532033433285531743068873316132519479166710602807937596750388936276485877049850032859604990590449725968239389931508823570230379867810091255852463435603122667601318140304349773703948748820032615621520597947315781609178382191696831633611540356223378061983103108833556494141961693229264902970017181585234229586942274209695919164378662527745223704855986102114617312981316954053651817559991590336807201592329868694492097915702660349283587859759938108946584262928867375581587623582908109049888050092935214413847298257043433760179088281089333745977932843820317206452277514254106436437807404508778632891694893246951581522429395954261715817339377800158289626975465452967106655417050566241422526305429075974633056111653556771079996326367216682719519515213764258900532382046426633219444554567361040770566288657165635616597673293108290330273127683637311451034529888941764014530443486700610526127787587477120161460373326943978151168027651675962822402298171961512407735482965753634788857451038465323715191660485926577296610241079535405517871059284333400272272125490697238350125869042181001644159543817338096331315558934874887391820827632813986693023623427864379115828680061340714970994406175776858873788122852496728141493304600087293543176330928463901377491458837828713287917650247663004214397072367042941441320715862532443013268164897751042833055210172990796551418133157598294878402382926861907546883049725164586671252780157774429557117984556271095249662212145740794555387829046689483179605579992633759102507986630609288425323807931824048827715569324628829682625099685133077597559684898455930387968410783053677448554236763776371266682386510388408504623642864284250315642623909003710666015333001477505791763493828241700385122215446715631355541311706942644013593743041189380546893663568619452903768827706924811415306263663885988689230645458756460195811952667064052249288148653022926345565166769615082429300754163562045202608807842098762884285878261180650940921908168883934442036724231485345024042791791312912525682036199577017076792192219214662280679255606064155524593175498338537250738858696742205391229582411204181350761270301618030079867474337312753905969781058124329523080952492863654583455758947108978352625424499130003968565599866684434635843337167188612882389426412089955203915278763606773612027117976196708240850657592021056024526370575117670315533991256799186782860137600848563954599335349995342247161464635068829964398016667155480466973426417268611840636668516088594205397531786193428475368614515518993340767716988706086408219800025505863144415705068026583399686294090383279552964814085823137502012048098607538532661397237900012508647128453490618691660034633099217905754267801826359760194306468252522973481425198899263279494468519151098528493657282487573620667345285361643747313150564624475219540837034038134025457642792112367261247017248738073566121442710406149498569078336060195137503425799383316996277821036470945359026786607677716035660236568853772171278965902922376550537084987374182179142944785733645586370576032089271975234187894623454614018966465830402760498760193839795856444416255260045734446550044085256229177100930491366235511215331805039811627342105007111775998497131202027483243478672871909732555457727388811997667980507235519366936052592188870185083413228279272983817220630161877115612959003620468076091915442610991667803932425693887755620965785226846832325368913184644823615057531701107717566696530371701282956150448474247741937266924500817413526834425473098144298561994585002061107822624253265870466480177613256593773888334848393124229079838282217533069797644224091626938054532226184262115327587385930006196957569236721095093372403769092862684250973776327371142185412386581693664666215814786284575899556950298103501973380616050737983110516637476666527966090300943772130041923134478864861665247977961481682393073286662707103365360818215826667790860327360347674567797849520661767050429886029754727714818250244779032077684736304640435309278959158917005361635042788235153012163849162498382636937224342854796686065555658268605885915564704158498991659825920739866593375344145512762686866331116506257900195334196586552559438636381502845737543855257614153451736803948733188543759772998908472545564148378817306376991692112292373356431692974223466384147424023950124852469476395141447417006102234677510065255224442003005368832142988436909257020203326566883172260882450011961707130369829174808113574694196114680286721455311318698932052847369376740753346014299119970042123135057121631478644261144065887473438504869719490341282198815254543857939920476131890784744092849549812008033019120164557763544707245757295432514502737568287822868246190702977742108428274559270094259079729919050983718324010783709280175209265172613540716936305467187222936218991096596605855470238383258426177341864448366124067223586955463959880500916594767799482274472341425034872699579918788823018721470172133444610882487650271873027513742771132753175663274232135429382560515479379904764120012614603450087719043724459069446999463226896667558251339512110797459197458559472118839909789354542951933335528519060623759442420979201338515215816124539563383746722105796853038761369486929367080532162187789292297219469478437032589180086955503579797425252009003989718001985778005436707904829129532814628318668768044996138997847425599311850108982466694571007080928259655910284976589097171349973189233860462493368683283821955160010626396110580846032545332520558761295469423201759855431853272712091028627050334145807574417360309869808408839377264126110322420563435125724238992320522096604508322865697121977782458840681497574103034646066025628773664902558235862478385457316786034743189832419440309310423606043331211453377243903756123458050872574756744114654088095608010048605031048700124011462888043137858479195999384883319917889268063641244749749009718350736153977984220013513018863485740530939864310649956938124272556070951169346144829705198559782702463802502221362543398135294843577419893963381599033496701185979041200338510590337905138537885728933374343323913161720126398323929772078421246223215894985319856999514943975716798298977032091739626048898971691410229372718983100518869574719075026169260668441766207474021232685007411123334576450239217843371361063186029511579782357045036043125174571133416773931857909542776572478737568768276835798913649292755763812012524321912785658331393966467410411735519147032007791009584768486214899116990182338780474858979916511829044057325230900422079908190855858367991688358110887835496195835234824084208238370184263861093104820829337912856487263156249764587873515187677623449455328024190877339380981701133138977611669631478561409796372569571958790620935704467891150541977212480135659928033003522407900015510592830985053954181075874171843172120357990556078022826862628673539910673705729134735348175183399549570779322040950223525321737282472683171761110454798936886397732726726343647484389883387209833643420735266110270602893807793274152902604442843585661460824713465035993539819462365494425981827478956771202196383038892056047568723438849514413297809709794323166860045027060372789977188497108091195494795222803902402695077145987101004652281599692363279397782724207812522649736765757112628947374126084783410841826794953817085187505500491988633802663142856237515215743701059747992068463835269271703212913615336220171961249135907430989520079205576664528153354655676824714349646252772876614384365285210181775410603952997195437370214424749172153182365969115513285209704331602680705871835767654679599435735436891614194123899428807415063052570357316261024179095886876113887366769551378071042107791129079712387034295819874212973803039962929233639688740444144647814034165827654908780736801913028469494497078898245970424658184254026159101942734542234292849478282093758745145176225126319518078320948688188472576566274846693180197319175883044931465348704236033152755553163453422152906488950318064923883502513379217628645280914974977746954879822476759520184861824678754993227635798803578398587890157345880450752702727672707669245741885309083130878941508480001166742973833616848110116126096396473201727148895357536710509067541014228154374827981029718475300872855823792288564571525347512966734063968025054490908363012478371797225120845434173536532049420499211549422047793591904232102612048006360267567137268919020407345640223079497001583666615174537395478370966242223000546636356193997538086485482965699554784838004050586929177139730964901496141959055354735420853030320224888857660258727170348669173336617939410970274902406537865866258211284118767493963376486665069348469215507640804431893918511838957269296967611723125458777221805031754473805474640705373300760573716834534452364541721511222417175284844492850563944696153758483765950992548278493468061579271219494863682440969751518125866006675495950342618039976768434868777883076454156111971546671998657979575256864180228845192890614601960540219016669198181292710512661789790795427595056205139732532246895164835457044950096401895672396758786832719101864592344171252237976119018812432550758531089762590034149296578951554194745725326236968551449587950467335366229610436000530907181926743120497022859885794900642735329290023719519911310710729141979327728576664910977090646601363149254724810670432124422676352884091654521416528097127385185432362043590140699955248698982274250138042483516896586198167841846863008544716162616976467986745441221091184013520292646313948902622918436547632224051851191154617843771898445044558492577072844671584232613623532434213786340712747605302135646720488658854707204915597849137066205582462551800462807084890990452408964180146848171110221507159467799726085970998004108432119179097514464028587672839425413277541788396817799354188363144192596018849840268724981091996948670434220885976944636527830711520027430623546762210330898657798700375375840034153614110738177023189926899276330859408262527820066188641770931470554908048975467774047270411574078656755815206445286797227700610488663425956239322017481979141576526643808974502610308047125917284647777129458393627577770330869488726874625046528336723196506227792001494022702121349271393294172966124087159271588566713200579893190529778824095154979529076157148294822291511266189963037126649367298557300767681130094666467953849976671045320281424194158917746456638768344479028010268631456720651306694996515956555109900065664324887254574929681343167840536906388559944133490410295397676701624127213018963094053620511409086177703768730664501168351528748197240983338572913419925561613649661116244909637797559620275550970576017295238512663507932961555298921757601489549520539569428272315587399632549362256577456532646353748696261826919364203515530886996582542403965777435046161257323533492771913393926697892075619572379872154483164470140662080679706855006158915588485084161780588840278198641892302660563262508227056949920336349751730166103759603899841641838832822570260155105199110096220537055963565562938755152284228230226613365472898186565411250685912463355191481853896998438051187599466840648759171402327227278699987718580075989421312685343954179427050473418706884825723044296509693957110158923318478420456762276972684810360883243361278199834015395834355462477525230313542267685044424247314142647468836557713469587778307320098804091357025309350609857197302506137019349525173965494692979976699655353646360655627960149669005529184971317297587548477127514697102282171687254479518872593381224022002929860409678113430813725698813337044718353301060908172518083680921005659399893452850841412143544109949779518234282057518398991015733900347462761088674629377814399206870072777106703069613285013302907395359618262352817009078850900704682411337812861329259835254891726396482407531949451093887924322395383074953345287630203462050000722185759697600392350909860117906225386576132043359144792514635636561339632998331676958812564152886561383475555585509973334761808669742508049382295676495637388295525230796031560579430100572394265174013327642261273941756507706114629242584568116766013859755129871613071484906998720580487193388453741914557345714815793408377186903254113636089954934893972424960172979805909471592613542662167250649794693951440791677516248206543916697584090066585299983704275353640704114488197958805728236517474649978508792584182648498565216509407657105489939792109517089240260784360399950546971719760710890992885701626471243878888997121921699645943128320227302679382887034681533053048656826836777334476368326203514018241729333712849810485501969088942027370691162876152726399232045877156841549862790376135999035190961751333033681511152968588843580999754488122375816269772309480585684394188800752688485503951447306356437936420743827253133921624319953256109690472927005876618107333533183875867634142841494939326833394307401590133287570387450650978816819186883648952325175351046214065572270301671726416423034140610580090905425623438292290997128127291426102331833029153865483167028900346553948621679149510252484727258174970142410172043206415047015432227309375445986880227361397728466543783921758034638573609326566913170869557483022403356428608111421510495379110469942256441907353898059118229993405842900240344505360009512238020225309049044559160357702867648698229197881603916685911019396467769172354019414194358551833389297974893674351744291479099918172997078698656706348998807822471032430886240392545010109061129297353219827828672088465745577495859870235229481347145725772264029447114056748812143927446350137706609401636480047591602081802686377779942184244038277726850281022392698449951756298753780108169184771390670677953286149360127667437446480523823272983772578226168524824569924873367492070868032894579270361269580336658662516426256525436625166975098353561610384571075084073791253929019279548177830169496241846459052924985070175714991408892562811627220028259726634562757364679102950056484448210638204811161612406150078406024679242312731605774561771442862654443971205444960144954148789651253578221532567937082073062828495038699086030286148714628594006508574204798467878062030436660982515475708759493294072883706869073554367488744715295209614762510441637271479894709412334686439744444791233744197430925515268582603167462501875499688648404038052267469504400792816210941535020992827183634786280514496178799693377057496390105742212554867258498639643894421903498076218527904960982057838071535795055536985984972854669309606637146009738778895376441036374536361715466521086987835391711912286247789991734023478424418732005646573343406434007172373336494140497622212628939762857443097527203521226194557933518594922910162544136083104735810019324364514292686276269092611845279205915770668042422398873681688502855939844088954398673248344155649764447163768230551916066522538318111835558550419587428911423714479136623543971145596734691164750572003562488117180556589178279042293899276759709879998839200197454081020064133449335571129750010547378944778930148082011376846955215096762719656193451723444476273252277603684272921603386258759165208766074359506890479163099450317680033838917929993047576653672069784828905070170147883891567156622999159177292915583026741771631704626603925120900988722928464076994520789501502979100274765561970194096612474865851403919807547931682821029526988890123247440624959623087774888113729553110364836186662375438818886368490464077094939100335097167888697736067470244731012920195352736423257371998153831166669054723088683659926926561385871070052318727200091157946856702711135806730901957924417444175101946773051591150067698448174031420295968462140230530843340880312045253701240270539152212246042803659963737057450519607309423821500139017535300695786302736476440961454485696327577828620304911124285448504036690895445583661159724502303962855591078314590133660990240594005119190530522033068103652479132863051805960158977082021851597870097791452047253562246763444078321390384507569771860302717292089202203637675140379993855349414853983759588446978321946709878204008955075582358046871441686660996743124165444489714108176036529335888523642804549385817222286363285458139098733702216595701424866602093841425324927408537203819154540701962672636687046929364802765842278630857254505766487999736242931133978165178248902950622601755624687358891072780928147993756186226804200012224001422080247734179457391957518726426058379635133733257878398334062486125450647622636387335474532241685300396148534418180789397340054586109201922551833297458816949288758750289233482261825159418719364249981778338063047539954762952859558446613740755402724102756796577187848453835664605491378298169941196778684576279084730665007176270096230833791585278300484574770207169165136867974385376364365613903727363985690650206200978472814869261071322918549312076122491377791686016657452648844681733051929854627230382735473516215471843513637059022318353189368038498405708700885137192110120754721871595686043378229617326118277192710708484069109127277940858582364004965606287853589190294658460508884028721765457931546154629883620178820158298680997520843420055249970234540048303296869939845144869864389549384868902324477933745357422006088325629327715469590181674649418628737240742800072937342733357025653673454173834785451960309194280436347243427746049719187563527396955401583526672235263607495012483382800133132950886255353667649150752861168772028789652714508646995803537224332105695196001557628658556623667015519628813156647863797416548856216126771284688179121574479035558138424570539828922566246208234200226755647880991016500010161390384487303100158451772820216965951488133925204898324248250654086782200951313972729092471250756105683223393921704803706688619800893089030049635884988248072132700319855643500690390415577745200003055120716913359768972989773099220009937191154004267798238704822651703527812334804267465054576252223697558405998611970219957768977813076983857109106184704491199556885857893628379359993119060979734494206649644270533058177622433660017771952473229841632057381447445172489997107959900824797298342982244264267730101629068065729999002540564331394775402412277978260586095001809817316451946215603894991984263919780707697455456401041377218196071562302198188837327278518484571676311457959294336372193355918492141142578478516720483291949311372893615541201256827970329263166251251881802883118071845303344696460599111258113315862427924933589455935914569142034349520633015466852102034701076004267763606807464145839357934027008865411410259551262380528469069704078791284417956822897636390130283757463642095887795002634137553441747236597426606396389776931466721308836748189628509905293316428371644420470524394436351927480639470202987022575064900423179078410575810512790211140511892032190269452782751733965707526582801280480352123981232837326223256128252042239780841010916772429948322147875865012400602571431394392897304619850290263499010318265486569452404764006762422785823205200243978108142379718697243306393524968499505021959627736783952561949439616990500698389139645278947768371536108071831932767988988982997237495669794532065318450283437359042861116929514655488988605763081794416534613581994723388724428695794701566269590823233005336504505601573770988150880671411197140818605290505080792330491441557377046763930458249975006940064072108214026999531933393499746827505003377102750843320736789862768877173632480159043605284643392037834017855951246842968072606777668017169845707822540013939454111294931430974449007782256001560168374759387087467576487198764609486007126543688961715930423298710212785267025984391090310731218140402661714422632516013739790340008067775116922066549214022805012972350301409545407926685145471998866342025848676741871149758862758006414990848931027119044506416910605318281866251783994175697712149398322051908005475556108994139518819685394102962443708068313218061214073315126838454242238712236039475078184610081236119241326840614170163194669787211593502540319261950468956473873190010905444569444593716376919688084674770574246552348821738909445591304127796192430953076912487248528842225780576153314587215532323317798292360148195877808827165845635035252734994952507298526641072191208813184813656104453113559652569966951207517334594811186309922040712012493798390443375741552149138606537793185119048246736201848747292589448128280754863154002780107724192711508286964894836942393562344993645764708075944409779945681399475534363735328270781156815619280320248437757909288241957953408145249561605029730452590654269373055917048543239833686983542351591354707134485304177750612630908318440456537001063236392747537922841906488561955710540823762003799219773351872956943777450744629707368213145851981141909524930732327720415657099831465700501181853938753994270155187251287462498226364612503927163137421291067922830135401570393298800166892894645173488891136889863947668372994673299868883909101285059183214444676634685440032351723531772688509691405768918030178869760236436446380538318822572881746234569358615539216282689368566067876646531921110949679507925289750569566120380667606550090448303344656822309243830170533329633616214468616265990417323232544252658941705693454087943659256594393624868793508871161521450562617410752403428283655581506516743081100834078214369573528821501115347890110169673744477734096720730707774038882278265990822281635998079951964545183936746803668282059243342026506912508765495125893770935521859797185853552883873412171000885016371103570103768697774068963285029540092214028840493896080372913324478775635746049341456714755879264458312142352103953083580225426881754618233202394759617776360350311373508663529530486640727971164569875583127694905982971447415474440206543991562885141927850354560849005811396875658911728398738627151179876826175703971865470547381404468075657260561790540744078773932282997973366343277231336692611472893119659288063658705703024895637016147431430242554718237288708976970660711168365772303371328265049524054955313943265609743803213823937463021883137210622934705571773112452886465092326271069942151896978692105828954248208465902545197342700022103828259276410664089767162546847806989131706971419692405566145644227773383104542855580327141197398328260929026046489534647539610006245497274609569890101984599287254065577500515277856679863031748262662709572896078514430869953797325024661563052270164265967961948843419573891214263349005745902580725301192262789986317511217016301953626602986370863882123198342761032241397542324216348348109409134933955956570810405936225632873795797799124684467675134571159673105378655018435140484332367994884682164578177587927852482457920627675969550219041057731477341530716876337443164066578090906932413803176907134305164393420675061382203644890130070224560778407747799562168465704335792415646846612585201432773434231224331548427894247698089862376773589554701840498566931749163531423570084958682905953920534949257534405033238869575600310921858038657205759980826793403401961629925655929048095572575680077008451333987854799673399080376527276565980775624624862498625881366928692029913460679135224320166203389420583876508762731563950722721364737559165212791771558537249485912964909568190448515619308939667767354114204820487758752268236547202401201356798181168233448333222291664698613470966328238886725045407999598967897588356104496808255286873199333942201275162581678161397598939862736860036222132705050921289561497906654849660669618035265718769890462991477762570783237785445453496597277721088114442417168934016201308346407977197391552368886628202636480539566688189099757124932208712127978369001491400058678683551882036608209231503286460978354863496670822068044512672650171778031382190051456804753447373095521649431265150671681559321488662078874978649299009288550265581853219526479659331048843589337042701991974432133515275443208804333115859056874768973081174977848142687231810644782166783303340571497145470949631092663515091938259626327590580507580285623897502912123746309042199122370740369866026185069859572619212996383656875131343686539191683334973760902089351492364848349873461976281107584279796219999036178982094660775100565943741134962060913545758339380047367848879142465272693701254521731337519252215414363192909460470265779619311576086703531000910628098890350282344401319487795140828980213244885316775650890888805281176630014833965291512596450067600258673636128723532749789729802713512102595759988320752580700301009636515275964595346030552222500339497657981560487649739399775157122650410313942081327422180296523111206973000673084687151487897923298904714413683046639410375955284205923874436694943969170579854559900442804034079814621867519392053694285522119679135331119991621201614953598096181381789617234850116144445884183930433327721622843682532475316483700729188145025848946628528079080719231688221216435485408551403158104930486628381254416994963249040747834682116879577123118688156990025521915385258367043002400945106935355526087946267430186698454656690835814263936450624253573337208280680477877787647044513978284397987458651963550531375686625595089500416528723881052164451788649144524744588614374179388345386025123042756460553407909723707365998573662852213215264773625497054351015717976591036017357199084282705521216263282560159400682416429269348451325167687550311952377066323723543440455030881906584625360888781012259915334469602668769491493083351009951452414512565921370799027040688695270090119505499583603735996936025936365139540201723240115606491900925343476710462404088901119037384090826300291545340402417238832432931450045383448402179870208760475726517793412667554403987748131344842649493473470425902674196614031269049837543051643021712479748476456393653148213214090864917462260359730980370655047838891812542748435738726894416417606422881155415148023057924562524537477315408412344068958910083772739671588950773116189499567424415234367479849941432368077078721913676983017324378480062663080646883893686870930042702187923945328841094922677940268789183350327257771732758544214713800767290766863152162458608530032953962149740387149762611411748710144412041321532209992038290178995431124179053539896200094037755995072746749444734272188971087867210152314339424179174741875005649271125542873045222771185489351880422539368888715869907301987903207667824695299493874343955143583764829383058534829962857681465643541229587144888818371013531339196997657749623766361127082912125014748886027857064145386278954425913232194190046214414231166178877373700368322327744096527114830059622108172374510386221749690709288509075485210371748696045028471182680439952974441465166548104826780628552228106418679504769166671958941014700075059479635361680707086549592553334328777790142391015214453109621382619228781174578974904133123459935173282918727653679267554732378866439926343132695906404088715529299519758290646463335996298656019895145855008546510667383613893974671054215069339510622220725703707542800295473091064470685599737085760808065751067960191001339291994770904463125316043502254410217011433122815789483229507574498647218882355119636601454323519203283550359476048206546875599958873405119938960183341578358506031415313077880920425016733914208618637038546361325955010744618973985981426312964018696868950942580702852733657392581721163306837815732641428172178598821636183401869742972918163041676679456687731948147031214344869165783893779695090646903287210031306278393854790708525568170685278021000016911143959827335590369016636318043697626437168187710274740548514364097570208615089601246066591602279790898417993508062523568599524484643433783772248740655316482835998771940540259975846514207571260427396774391460822667111540257856249556437227098862623481510361702949515801787117095156351944942745063620214144814755036473928613175042379390181011332729259419836076307171256446956989258596626906904019132789850893321456501677966990349850255838339169666071566365128085114809928735991706294546641271519497717468809758546179509527858345154600031341000711260168656899389640851566874309860692840592923487172119943717473120018674885291091577017951509395328337206920789327367681449873182692232575983089696127927807655586378548004184224462096792404752452947452936482104213178115636887591774235097562676734609448713248342293423226218676539917540703756199812149213945884522744997832125124664399268049352987403213081442099441140387667059414383076275889800870260357023869458659358853280261727769243704183106392649928316528833912435493002959730348512074633927243071765977140220453507261922955215545885404374265994509204416218339871053153002598060047815156738381459841906949066342879867058391938949353422810273405899477816054523331092401340132850211528055482563752628385944056466229720387047675611641633002244077868547940508336560591222810391297657144462244186369898045276194104098798399526115307810827497370864165704385642416295364042966325209184117493700278082542705824934300008543704055435682666285098073434961397493275767492312073335405955239660868549577835318615131462147344922924972250551458134459519495761991558284934744922051227801587008851250573694835429492864629292842949490282871427452802663306457136835299503494815737870834503322017429914230008969880242755909040919259892717463551189367821555463469941678507524873539281280818091081154917802252528682225218008488708580213211349624363842164629124122500866773532349530857772942523755919356568692672433226728102168979967062668230405216158393563957511330582588958063196567620501937371802288645111823988054919608297724638813844511284211330088145829747931264619045178293770278382475263956559220502893076366841963870089581853274129964160074236849112957813507651902776714207352828645712396717231838878208581777932811498943274874891472374792756035232943663293365736024489612756561347496782547498236045369462083837694758718219434037919138967594825376905892909980096038451097033131734420047144890339107237590368321490526689427136369390766898572696109609054417461970366596105158399098346704320452876185072703725328636550454903176376965982064170134497121737526442441765481949787143974178846195377650343342997279018029698220504773162378263117982184706306958382261494966867675107376753045133637828403197455739204267079766697659617043107058569189227860066642163780386639419666595762541252483257619081776002082916194607655744853416799164960796801276669323288799592240918623762163017817994638230360367503523607060320547407894243097967443746760754970587179147909085270571615657846692657905511559393681463175202336570807065225289362238598544847379304833163357212121552654114919909348330414986892259738301267928098779072446764846027074191669021593217974436654967269238012882611818587899107158205501538669682584603101271648832821350028211634913747972077726883805097139321892439990432214309724248784631148880224420481733310433503732579827187608789723083897979123215518779370474845348277483352008061428625892800746506957357400841458675878279979440291441465810977874974612538065560373933103219563536114487936343699389784715215023168418385716181763352190174055596089409318782586332546454245214057276957896031763814951386392073644940643771938269246108471205310611998632931776519076401535753326400433628283053704563789877890954138564712758455081221092616675447875130989937529745584447079453349058448233499251541248229197194183115178786418157816124577968628186355785285178964905373154231890295189675717220401797430692531163686322730277650822711009907566395200821256824424497649965011381285622489984782808674049295628332919797169928581911297044747561931212414383144090075376450150333177982746114036496433054280466168089019436934292675518733526151133574004321502902692480146209057027185640767619839757241664392658944923783890643264414691404357345880603400611150723341062206503531071064371710970027168175344758624499748180042723090133702106932475208893306314213478722383333338530946895593659682758019836440699856950482812412926280256960327977011505710643682685134995356695673587201943868936412829595412431812237841423813456691380714799599693852541280792345683426842890769365172329385420015457287054789742822249805662281323637091400110809698718619118372444095938769550354267165323515490669752653759439548543031737877241472251621264997387217807379580906929561901689570991299630938043273315569697341484375745744493873284976050790333892863373810123857988676876634664322215928384736296762987021633587344857819710144061271992979418496176665031599397424870983747173324921866790305100343218515305379677700839643059018756081555286009513057661415644727060879749446450169391997507032010669818633006116294444712417542666449436024170320028794879564401854988327546022694531377767060012193739034942340141962312720334205710661095641484445584987984850597316037467903525906578763634835183495812089116044868215371001955953034904058300010911434275717021378760334984818949659669639108495122631399655083967923378841711862588311774831910359321155031477533890300001108533823688943142279464077634654871255834187196935646226774492599642499814848660919551401545994169415169383574333798591389147959515574868041571467815299816783894467040311912008569943103772078203227765906342572515185028252499745797097973463970711880515231125691379932979498042952178489736820500379151982026741571838461600682779631248341824570260436026913720567942362089775172434244417426507039767276745728445653606237638717030795482799298611191448107557690333407659216155429477434385979267968178439357254847050127322033307196704855478360997861531266329491348499866733281170189592450945759221858254686189248758169547347311095592002602161520922930781388462268265092748210243663737295570240856920865882070342315329306929141808794257369829017951684837911407472984461938639949173719285418341124020373295674715038170295675861830903675367292053267436892383358795108255910681804984432644878763782100295929598794661683426079091127430774011931456957054580531867978109230661759997931338931885261687651593975363159839185743093297769516009442865515956581325991260121867892905999374541177824682997903687534647529282315676415401506567953384014429018629706274392001555153059493135488270093774821522509254938860585103676455992298987210258732259991807682221954327974714964669758968689587038776050711992861228782410289549546887253663128318515403115691434883316884480570138390741846088637054293729550116393993757102323553206186872254704761942590561834157501125128465031380473978461776467803263345544694510438639154366735683453690501663367525731948782393191740573113789575003600073728563861576153570246957881895581671434611409945629627343801856163365864482476873421694801303043662981738923266764873231551967287656077139832606922486233142819049445403365361640026420002436317834076258577024041233323958363688873580347119425393216785704335173233927310751288462692629084895843783293822393802605833496760184969394576901477947044697745196277705663396376172193482683948632223319196561348928353999282657547041026157220521018764076164934132723625660575417655086254736677135563919734743284914596643789267850344477093349325464481482385415156993862859499397666719326537166502346723483490937932078842868062396225576663283597973018140531109609699950383230592132123812764678924290981044489235205496813957942210343956319713187047757867980491543369972846223676804148827655361105275330658568831625584920940138562651100439756000482477177156975373763208905461876760968326072895745045323757694972362941166869024325821676052606400426912834596480636497008061478405232590142828924312235578972447870419394288570203273028514150590651468612736549465793004802241342797331142274673833699109540497079106162441643018987634894157912091018353885653232626421899567017445568018944709222920027577095559816351802248637711806067430305739672910063102889903056473522603485773919327337185879016301302668442579512307408748477451698320083704581426339569765703237691736346495254352903066699128593828726714249868908439639800925923707358350613287777788262500353124133335746545652917420217591528328937387081058674466898661090846037782164996253664667444158996520866847661880885663151383743059747832766872827862725732402374458410972218124280843769554383192774426440987047671210196970871302350781853189792473005758415242590103423390155746654150698414086708774770055357607229553932081196099061365697621334504302159728436840216989283168909097826438916847602543402116001013301526734432758499087647919826247290185355805375297767080077146684791013006668385655231255786402041350505351407790282463130611469043243606035763725412507497226007327758775997216697947962633530579353724234393792586840133118789795018399814579511481377646837266187126234706014197555497395248116413480217950573462993011460751622746443818547351055072580628281820928190252660540881592342758706738892252394844621269638413203134087972195216572983930994060877557318994738092493517210491337076348218323438487637654127902429800447857847842683851866095012900577997109752307328372866227291448500364281385939089174762432576870039659072211700408834621301764081655324195223000062890358347555216474499068684170663799078435327785713799683564362907081603545489998511105735685101862685978325076641473755450784992518470910376290397647439216039310454321766195731349099005737558140418197618228531575664215496219957912754028522475190105291133014157373748635483746957488975806025866644761201794543391245924196686400793891594349349885439755442929611755352984188958477437814036333298351246133272900864863770859313908670717011219879691562297328419690350130861762610981042010496252565397586325607220073727703397242475784383085412761147047193107418100610262899706629079501098427450421615605190481879209643845481752560406033412634679334128601910293808523629693541577074521280192362186002008282644521638752612364960974699764358950496407486184418170104701396611165129985433691032107324068529712136023538421442929822804413564267785308695985718517852857507672854180989653867375447141958945303710981099629379332489178100803762020009412727745881118270688711355961690355455083219221820713450737005152842124089674950967891397492382157999310213812704837007249714966624575667401061218355224273927020901924091284672810961426638027401477020457389659785943943022712769713902474200738166136493451475085714256512064617269801705571713147951026581395898342414769913898631402126778746617574463019558003295483234660837586407831022839381332358229160354792502274419334852144270468281076885354343819362122980265574902911709124061033766312299632630586017151967516499962865347144027964140856104166770803812637492460691852643669819837360123552133844698142322698910952376066018528848736643179141322091603779628434988081285113110961726849412171904023551829924101389391666956121630517601784944550415551827938767585163057417154430593176437660074377950531595911533829363478952048177442682467897723744977300352611216662041099110044924450383119338808062907163429352813203656011874629010446616419526984829339590817490493280939189272645623831452131006352434163954965708074301550204247806039523238284715013996970021173338965628393575303318536997590533747375752553631756937947726941648337188958025045745970276455854145975310704783062401787466456644609340245380376209544709989634668271029208343897692126186402359980585205182762261654718092332168580400261288347253332662841657563037921010518327481908075200772768564920653302707256753478929473242883325755922786275676374670359982938837118041772390895921794304930398170538516470176594519566725759505535794892838808151660174849704554540321948241135233773997889822996638582722719926774776487372036633882328947552665580372466682431025084528425813877203380273409617929742046568591307324568345257269624789263807897258711946503055714128710525794761448145950518319643152284589826154340317546260311275258637446374258908940120093725176164398688760898812733539211573250399684130596415619264505241461103882552411070312808336265609036386249676002522642209590224105916344967221508272790627448142187462984383960670676447976294888738970394749813406046710854107706496279826961466336686020782895922908551595179872204473970854586814718506960156177696886876337291214726485401428898627201172722472393377690022701530352797443819991984053079854397915033270952587848427576745054524644609587946438911184528337629905536941874023418145459664440628917626527445229399551171580581545021841597479687284815628859160832473099376200850355238544169834246399795412704992860077499784327732254057626902172665403903406136468316514691682608685665779349647027265981029074938189548878821387934135388095722557083036180980230569458621040773041380027227994765451809166158572867848605250585074721308703642648177482865460605096915136714107034766913823300637319698952866253144830030274817551604044002346155028570638796066276931783404445378160547814278503527233635218759648830056595157444622804406073088296313543314701107780684952153134733402729585921828929095300175610485479935599271427150873661439380658622959231763879146335245863773232947912648931640749451396736530704209952470499031123662912735117213902127911759860718933016105793303180827578463641662495611045827779077212483536607618476067392245571957230425459493963756042246787950475774148891068917041482561840674672348060564895611475134075407857774946834504726765593199713458053635005354676502119488984816779651393987190359336916773133518694891793473620237562490679192867117861677604005222045499094208659113656628975865719321105818164109554929134061560042648184804906793060838380078808549237615975214789579335039694942903183467701737350664546027139219953873097837781430518423871633452194771230055259828507117671247110560494674461085499923190957000604665545582270668937931864955827479998272367545721626078961930997494759880453276954069217441815176335003609720232424942681133717246897329695055715640013801682120095631603355184537167550227568906071254211633957256003870581738347154958557423595542175749078272024513946723231542118030339163469778510007609234569786726139329841380398509890327984926935193545626965712106116400369759936953202439853879653737387924731885708921380193063420689123208301049161163379790146839793504951520852408183333692022997035150586583253522556328126272198937421465161165909886225336613473420059055730642760217675125837872275190896040278079267076048211126410073785031367686894535851930582560982047364365227023236366485242396640466406683984617955590132460116163253070455699491218710954565663204214999377611662554878105419343077982186193011571295930067289529223320488025058363818261456912080081706759930460112976274551100704289309702215445287706691893092007320426281313130015564549655652375931603187713720532410833861531934469423105916490475066152540365638373670267278340438953924818510132269308588102819868670013619535034289736961504793829886645297937386524787660266830717231272169980842682336983527515526782625441310803434690535853508265366740842188353329590661703839648909577371300444144153404788441296140264942237912124601246225391203247492917263385035030748012583057500249946176556802719925087146895669599450445773407037758068163918199007514305087871539010728885238900105486204327647845514979974858175957761092815180867820145310955627163847467506130444149003448242421871841098964741542276088035294894626775345337494658684188129380309400759015827130429189344173540949551248383186202384070610549138804402881828036231466894687246639509238482626961636902117215011351353231247035921356285396433043151804802319250523700135531540379528212338219211872479181423371964795751666227581063076723330954152558680675839988022312384112763855686448097865279935969205928117887258824994465761785318423415183677059449574997559310021602745294793766265445273856762166031510841967935485724786334142813907932440173785772017383380534894380388333450763528327189274146650173815818177021071595216441324746331556994871130615356007273356255659782792806812883244151872567746539738790124467817771557313397804691478517981265164632249951531228162499233288903141189801119845351989297632984250187108632255165889703073893039856976065035247409856965369039487910944529600873449046404148368170283220178239476397165042583944640300205429921727445765533262712703896150010023849014461754174916740329819498183661078276736042377135515038375618371790323673518660921297167287793656614997739649326947672627756952135710416662898359049359897238178976029757081626035112501147595294484847159425537912070153036338104731504196468815821185430610838357736960622876011832931712742353251740413933328801540696256427908516094809432399234356391367386455508538378795060976100957632444187055141104111704557031691015508953991558551166395801529378233380860836405332952764204793407327576613971061127929067239675455165351375114835655726288086238367417625590733291281666064755606781365046367806804533766216269511657319380250917926510992906259285107833281410550739421166831491821657302185540611709841045687865591884718428092315401903882536409602421755125101313715621722170672951114186309568450085332367725685583383089324682680832196762942103660195372533457114268385130063555975901982398281792769396755898763092954597179944831148264032157062958872944126242390118026501325728469658866903219861178721614737391910821615544194794456234749610892275401766163070188336936481824530475258128908234604842246917325285906210747307794619375351512228805020522780297470593370607502116472334394073029940207776819843940198154167236570396095491952139272444998233711791074071688562977272897320229131196421624099235473746663499417885760356373055538291778196836079457027570107865892223433273312690082880747475587528751372504005901803569642309008346854871752568449155735504778380823297493369464592243900256832335531454038037038273117295832149160889645741019372821235979123248242309064775060860469026040203787594481807376297962687712434836217322003718779176689879799264053091735853618403374971686448371908899917963350321372083152273501216545903111003587997914307558596880961264103047121294008591947236517836894669686592549527328911702462809286524577388251523703554971333867698957028682431966561712536774711941298593064386208180433945194541392319369188075624240421313084427856262983155780970155359966114540822650694100524845325981555751399613421668791794503683731969593316336472104384291131970384175096827973653727185412951049734394295890194479258900584414137415789631223421097740842524721301526253424183437373522512239847703987954496900174024660047525418336105180884643667547908934601754984182646321597446709966789542734235786234360978072252161632302462962125743698574853157830983889768971681779238041732191296525907407997792946204825390997145037071655110204418515728948656235566026387173436407591784788918559835973922869284784635486693790554769165363627904751256164493463044866655278467582580057790768403732644276170568924828342625644064802876875827380780552380197280818422241893621328269308874312768551387120394441221157316002653401411992679150422746897769518653973046335066401141505636429841265690673386356619603261815839157335843411425116866725798591873541701608821912173090535055500158955196547774298058655888873931010152558308472997487596680759302161383205332922993967356345427028639330122138658136368740136972443374951528444655683492740984316523305761756687731646239385894064216201276739119054324538489677472949981906212965091209049415640368576419138946735979147592219954324024662822233254172522845103163954257982259257489402836535015813242124538009231816678514959855256079606639191417280358668739207288165450620068735889887874102209980697525298178439672724703884909338383139152773174181664199346935003733476576336743086200862176337232254790856327800135354136986491540397317119503261157721997081203820369227713503003234230464848139344601880928408353951764589826250497765736096782330992848685365961156811763742498740405452464181471791507765416462248772111422286208715555077342451141624322009463231742276153275230080201389117926691711023800042552749961435563994669077355303824857617222545394769711729684126686521815917645533694835859268118563061976279270640641598303639407454596958896055960191565278310938459189827975052684419495258079140164327851807231117059854528528110475052751897180739853008054428003951935551733813553801310102174007498172205668196504439764984476075489009401735595096374827337078750174411761591060145980103691129319091828693485223347866563246767772021926875186629510658907801711755543285076809355410689171937690295914639764110545875756606348428614420487114427294338675561831872902944959209535084873778274203365919565461406384199992154477097724739474672826579862069321662847102643793553561689397688264389516737169442162866760333086688339881607669897747515488318648557967730269536654744136023702969211690560826436527664351766930592983395914004116403301891886501851491652439689706078579520530800607408117277813731035830654172845520770936591645245429328323449663869744906456273122710364433571059799150298827869352166948312067902420353890948010451542578485831725963080806749359430083638054918411216737497389900792217652268431505870248569171993523151430422613059297403672446177886501133051002617010032357961240606128330508183873780858564568771197763948950717397184619853543776639352643435912315727216783703024348131728895858329498209587750034303346195546377904084268430862781717640666034517195413718632480787523631945925332364152954241581182154929119579146567444316557705532172966698648947662313237624584083475497443128108503556979401934199369737393473945240071420961336784018908837823209098122729089032481566232898591662545274128308147919323623936157457680822581934749527638514136461503180579509245500177910825679998931746374179887230967458079496213358435049065049437055024375892220891865658264662193408919471752020827779987854678253932891305189570306991155313340469646741231657275288840667083715037707671733729079723055525958754428908312907836415410276359667114794183555095571965114042887378340000386692007414029327209541368012064732635537157511195655346728928747362712355829738283960920696286512648992126242986487448632737124200683914267362931818424928800700003251789758241844862435235774079448284544745765628644130528586036382980146205695517682032604584717874516039497409442275267747943776635526923395309833645459559044970992962712628498690250629494731186145221016403102881430350204086609853740585349725282289781815992301187209561595718936561311511419327162943991987980106021830325696694495944996873081658474373586261300470002681880964991944708688988141546551502620848960752152137656112326696013185702613790957985229263588240267590111552131749477042059373265697597997835336626142565063126737347138235834003486325586429926652533525896293177737499056088112760452409115744006985682261302312239491435708383004882757974196727589054300145706415279428783934941938091661956223158948768885080037865062677079110439215902039761091224594026247554822584378998502652496747635864974590381410567071733729806070583221481434465785507258662107891198722604279610328721427963847946204516903509379482470171804987324635544102770957584071517623037779168156512986189860099929946159669385728596664571524509581410604821118659866366168054453081588759564095936337378929988606793343157690485802769456637912972575131920928756219635680548994393231149613565477177336680694491339396311314592021813590101748018235800803175177440865498593485994565888661584614707054422508782283232115427276611565391177399580097212251021895017829552081497185284781557116297654611458452649496343796377919682930167493223572576973452358452873899482529394881775500363329842657646859760801764437968210734927780752117138034020294090159277364940204126053697511615184048845024086802232628904943457390324908486774864703318137022491679245234621078356889302081361464773910360602930164959575520554900349614340177225656926912468129795918630182954595264265052442520906896415307675514156548726941097540031479573828673178976222926778161643954256999419214170172895205020978233144838337081286538204062922715683181701757260051211125087049347322073324011234240046177266643716954861523157069817785473178062391203070564059500667408103873835490092564541268031115114199587451826670004609721736336922097022237865749160809930199899389999653883076730628600351313499058162301832811842209143223701313575378000162370296616454921344537246189107085067742802251114863267927272769589650673820227209348738510498125473146059435225526153799687067977336011244235684802657806750607343413968585484094082802370929124488742580575944863881481100855774088451304510228419342880411132059889197749572262687245099039320623658074828032161328084020353118351294859574667525673562083087915476098613819734449995797676989920689436081973297382344279222146091339320359090991829027558652440487725705687160358373144970284615417676696610524448642334119007524217991520556755313647005200248589646059105650228727389696437681012025043691303905053283592557985737837888799985309398189575297123579515125975596770512353419513084326349403402922158636091004345931544640484732649647303885591696968086713760265525278813157184807430016563839386470026537592336234815148947318145560649427237687634934439742949239358295384106306876419780473701509685008973829285460682580529882410631139813113134375307090185920240255710307378880594423324745529080840157494932672339304775354183734862586912176817826317080205349721254636958898110341593363901716166004943101198422526205535082283059367057300242391486896160874989404776788755551457901056751631103544158441971161602768647322920959443091216339696000303957871114276348441323075251313477412061980290146366560128785898745525333035432348522064107247380220993111079154015045915905275097939179350734317379340906710437874329256632992634939201675042873411921364847366880788377820998097116482628924682624602681676826054959241188606434397929516103914712668902463991478162044778067661145089354542351966055763211317599026919279667945352486010530602124000518090162328554270237645115010353441370731698337149395923172406946183940642814481025984702616999353950276382738673703094141073191785367664086891371421814725452240456773990317364452252113406136116674438546930450114494058797078765989276669316494978869905587572891752712901532300941796355749988074444073907330355769471127763228402933944810653778116061614313844864809247136778005941782034625060675402701180820370888063239003142197945626979386312865183394803875288042063451494413379641698834219685378170651323428298117505066301062658101257892153644967896078804854337665119170203933098552386833070750562647235381432860209471806597047954247149619967004992540318183311901723624602703691138579607828890938437140667667443340302962538109528754315055537003113870375685970927025361035876878400005644064340102125529623147335337934825437567646389565345619660404852766454863736501520043838598639603290036310908160949141757260937544365767757434503380123993917599800704609100441270169930326730915357113284172506729860745888668331290657949670433004198764302086347915225451696067321634732703024126690672749535407689565166639671208894157025389808459654065707767312789809010525298879715489871504539630034372058800644333180223710861190986524511072967433706310214590725502685582447712997555372996097960609290736192893930840354523257470713285658049426165399324858618242588942819989760498465656290497021233518005157634877173628509954623102536127295542421845453483875293002919566012090646998859080575432177109058280274147805071470547667207967567857328612579695554191102844835405926022872858628095828155811448630592964192574005267475484085813908244613189390271445431782168894177635999508330411610995342482415198216405745862862200007037030144826130398086990921425827835644053549075631994486801007033076188569064524395599177348802912429594472452603705492445957792401135775340938016890282149049582243662157900178878677806265659350016137324873773955067636540599387198795048825783715257734601371502881840165883483244340803311042822062382396642320574318456406690662761891528395076302266648539579950036252929377465640231222590559239469608412931445442354185641983555872739577112796670430479103516427383700345697425560498745217677056335494217977399281164115021979657790744047314755751850979793675174990861964405693529987014724088444409643334734798308986402069378531045681967001912287476458857314684544795308146163900316769393938381403998199591557339034899326573957527202667714631951071990004681541752037711442053412301819144105504278399303403753540467921583033494752237349063545285664866065074258085736210390762715198100782741730473145892051967974071307820107877962758533483219691801755861515847800748278189721297950300379926467807962486609550378236132392201226322324633245464905844527409922607411464675860157377702566921813144448061657082970839695187502078475498508029348510095839134803862712674517302790710206755126050335951329158743778457797355507322728482736920049348556477810170614847697091242146747644792375926121908166477185504055284465822803782202324617773964321540482940024065430384646339788880967179948768893561341266169757755207535778683443781391056393264298903010771903020627312457999506942018309004762003813996156845313531844181543286121728693551887587175538899570492890288756229621014008005880025612174456520593700757994080884898242035833739707677381134381633996346123042828464192358349746158011928902103428808737588069778636813986754717822570588910730278378667939555356653672718994170430498727244728088476139168066287162946600353145820839171110823784972078521286984991010439490934626081885769805396832404801170628382811165838587198200281021372262325957299750469239985791758901986014211796203884860371982579800483772001044421773203322449213418855074614487623027155451801425819403752613845174528839486279233187962570190964505546655112036491261778831142953787919882954298024975533288720786937074833652686862236963228735745242902220737204724884248640748877552246173724019306137671998793623208103630875164232437012111150106603384553051266063496776646662671741751579457902952369679460765951302134460195598710260047925055136637696500873188996064994841314189590607189336502836446953404436834841218360366180298332909206761946443013312048243324783406400011533263344870072672303894475900896060528792105043143542782967355074832508211085279001077829793440290300810444949222967767148344148609335538470964949345114601666856514662508725461675808019122951963318650913120339656166828598896276993148203176138139776323495053900478343052194406354708290316151264423099340149656168916699737558537943854074195058202780544426610562960149631853487414979523712665322970680231086859497545777793729718368852994759543799476680931262776963586474233725259029575558220216827938971322503977175083421083348066785134888471361904004199789235941284968784360546464647523018616822440181649603492493117808491755685136149543027499872460697215324886419729370776015744711991954837717934982804073696479560922739833817845630942012971194733138605875261730463119774153159189671958483761624623003857638248514582487957748041223543753634753057753924724722994366761559107523034314506861547253710972496925155795802783224912571786429083776911330971544141857274560572104560897069154876201436718946572441035102642961069131861604987483179162376292960234480646103144596485143952280654080028732986276103492868838851638884182128041273686944889961831151141516087040923279307974112097971614155007932039098495598137271332572103103235194047332720320081338489916336349789195454188545879344045070766071977271744823544742700008630635262451951341547411426816367282653778568772934760804016656827076326754949238381952779198214662827172535804846669358319526935760085144328234721109375469044881432622753748810523839467658240960213158537499090831596314073981558678280197908991095962084615000622954077030762104717089826341798156421497371204369995740246766282547653022252154152146642813117042700465485004302948450683635907284059483296564882292675785908807783449524305709602226532456096584164780147200352497402758086270995027771712423581860833326012231639883172728445246556264827700323766958974587038363487418596561333529313612113500591970149224694246157953384237279611831350961192137923394842743342721677589971987652699142150438198023782581515505326446695143289960304211232136663405123595563565017372947667421030473626139188543805257980172065321425616367788190820571512930430567006842137161571757649002794997285454543900448131422520929870246837443951385088300016235550645247910831744445466564394514373829569668472366431129837547840120313966547321558645792504448635445932402739446357841092604576307563553744327289793166095367532006855262312927969538730594063545082516480379716257870680147034087209666026534754261004039374919899152602519577514253739885979815835807655608149680846642475083999732652484989048259821671482433245623759180880109679664159183305104004616769322849598031928976775230715373107539669196777949909432595500239568368693892321477202540674868587359961874081118479347892698018048906002929322212332797539479307122785486868750248218598496469890008385241092361159207987290911573384356618858709669170941918007256320868553355784278676515804725206836135589513422890643040461172650989463811014413783345677249825829069218998153456682136591736759571402762036669141388456416152254903834453389677615107036645698488131164536764140516415546360005995768744300976585550486976435285667749136790974417764905582749480476497984413275750440165729663262356527002790960089262323604589640524022718073722576998867698502869114435625029570155801468329181992903441530478848606231261153085383711201639208175644386570876203259106651651071420370276113405961557136607807801717376478194981408277509954186766471674697687257424347593328580694483295072245200604529307490981793320244102657965506011429620387133681612651567075135507662011357050555168027361126098819677159221855989518489486093072473856930154438843494187125426808638649131742743314657897456166085172150645971770365857969769592315409923510073585327690601327824196656416272554986024931602847824774908286296107986312463707116230881104098558999627548947572143204967933287358504136964804687784764718619809524947394101031478652583507791625843334214932845794927321605616983224462863333623483608270979045188884139197870138758877983032505912485860657813854272877019065282044189150962476226313251631765601535398623192062050294001491908266146996507791453790811657808071362842133951873021203832228105054383302979467993065153881483933995666677802900842534042098603486050684468743354491214416694693295924705703700088123915423073924455205242857600765522719409914631318239185392053695517114854596651355750570644924922730062238102727439596762520692052693389272094594819475458366149213841088128452504430788078161476193131284174670927761554762800244158931141080505263696196282977059148547678978432113741076503518642240141604224646632827730009191733809259841939005203792933946460167045829841986458852661225270832119056859394238795057152427434072636967475312463135192856864214102580597106042560134414943416148953553998341193267106061129475570919123468128397190031996707445242484127513795098103784305794535780640295763901640327409832889918089500643937234942825761899296838470761048864530451799963933908537509131360983231628465558646878187896650061376287180752788575685497756510882205707397450125040747232672675333402758312156146772707130449731086506310096378778344265275697842137023823795358175338089437195818508774535890232464316957522888614688980554485808462289823628088666693646557543552003192723886018343044645022131817546967325162325817462625163504475976244690093087224067967769080186396845481922127472424254215847015843972443350677227084943154298570793067438936601791577453288595786075876808252782700598523702428894054667014244944220781102963864687021062173580547967045214957552770326973817492777845645356005709578851951999234976927524153633301185065363236581936588269557720321497075592884877533848924383526639862365069380815024751977210080521544813021057609581803112680260248493854201538671528123960959648872722542539387431874614551789981361707862774057188956438327150000557864475332775950332128205137396632329387136520890098446346233458302214149761507930360857011817924395744857165218891589488510953190519273136378717078010226582837078558460244039270367616883512453270094439759166858645925115428802823004675669892355310545755911632225883190614346345019368174407570152146059229395690644662262680699016782847341590302260430097159271796223367210696037507534087042745363867093612852867053984688709670476378585818227575942018777186507373617809192638954645659697083903127067028163683105796578184272595968317101212565956741991511551219849114681571315507444420144798869038715807141138046241399967573784202959902014801999458382908807277733285600004886028293615844332313650269398876248508397546937086241753652567711762777435602051683183717351676788373998523131419218727629457108394964167617144646241237718137596036246658235370780488900979115436166851900780191434331620737332083375279910387188706567222653210770611304186810124744744058058839531372331835429315739023904701960785289784420906090482377633043918274982928685069671698316684441681430765334033492575843403107453779568482157680236940214660348759866077635610315135453956181340511480194239222294296994760318803720596379220468902455470552630557919856322401184796040350273096644396839711555440231244256707530154048346023348512780012191483724224360879214647331933290474723783898444915101218662855044098894231444327485767834176171077562445812250771485738718705817000219991800222139355408381754881214466243248021930101460827282676135816668001535480110153513041332390713887444203586776220123127061986397058908998288120810044944527750084057431922152061379477457315989103708022578327319457046496897036048127477800071716220025960023024817372798804287289296921165043482563583931065351473296833069313069909129633028919130204576026277479893639882161703305945013868015701462710875285626774995207072557694250854520040253918451802135824007094680088110476751523463767968584560917264368142622302953168800706928046816149843744946382545014304656528444321157067479058152095511754648680935429981890122068864781900378731540910723997501182978642788525865473614630319877685335189445996769777048773230373917262452909956734576797541526533097469080168006405386437811722187442369854414502203981805690464553693830703204217645059275051548498732072019595589662858625719041873551379659168060619237164070143372101270770729803003389820128508024965134455624332396050255199670273604782442935979926580083847763758408005015602383408328726725225729748975686114208084450103196686545182291982012001741661415923495031962737599556345249675043361879347077177736323154865028719773848842398737833607664902575774398079583731722816517335233738733119104229148477790892218899277466648197694697810153673327183857509809563632087991977034610332871680174348863416830873969356212451990884486824096900801743469414198594444235138774465696903728267113141345050844371589532447570767220834540126999438954216701293728684607649167397576689097225687677291793252882657106926340884782610945732459164760790734959656861423641686895437415774833667506594714503832547545894976825142633615069447663851320150496549844083765637597724252752124831587397767648625182129200986114187399672850825818777141960180112917619758633904099775322963468487321567755272155424055893433454588479061253700527495512429138984446175662053888771871114543939577157729586210908061997874886922637858992154414146833921117060860646921948538672060946175780670252096254420578814119196637547929114168705254281672034251852671716885825644536956354383914342564005412503124116235567551577292567913583499834788991684962932411965045784305079519140194878198371699748270395728976994773346834762770901493354126314425765599468728450420056830468552356215130780133158540063729008295215489547163402569120297403464849952138400712121341294443625928766814715851862147329668896914512381351185359985159686139752253589184127647175974960977157746047192256405791043493308543052257743405590040968557921279558917764783095250698577803429388036696445724627570605178909838517983535905977287894567814200291870890428081729865908884018586542135410895881455304411201018810701636111960977872089932474765487682216484119358731326789112283596252323789548564375764325230812170486959626422068656706547637382678547581406982210064399266038650060435300028172475323127368316245829190155450206080894690759797427425842109689833851576842462086287580961363075600378462120763574561082702710801722791876485282539767285882184443962717919623226947282866264957927918636913117312529309454277715609878820288238115871749365213491992246605064191586371782099426033575807133655938628011410634191786399062036548558002385507578948269598067059835038963981910939297734899986099047530540406922453257304405287018845234408245996628083397242230507248540716049127800018867549781757495122529566036714904345901783949592747961193551704312116001602801986458047906160467224515167419097101835404741417154032547595212513807952516507269433951953990371703069525778620673102575140336741035522756732782275894217531257534734638572679192324896121221922762851820845621174537543971037808241746190807314242179429238024586585879476235519487225203522842689605565959751684563595556261951817863137235765698281092387375983921940976339387724032418350207649105585813765283105063685291367414798518686947418167239061923141994217722116532378116429253125123487460856534265016689737086445163211554062041606300107221291905987468650706467035445528161316729630454654651953277168816335227470981949115970869900574741474934175120345407638833494230714521289097956578011673106790525482241741563846146724325389167355866849724377431046843311298074018129322752038341049307595950943706503862124294735450868953832063874299502420785310719483682043124651003366928343701046777607175459736415178708370246287189640535899579644443696854588941770753365635254858007503834797595548290498984638302466551231579381324198186225169314550392083930789219761709714376914703934279227445847399306007030852038016395609671332517497323586778473709300869899659466088405018655053940250501532502751148078984778473658584308103900186597811865355875175883878719260361220759892637969916501027557120940982382073920296477711250602540821832243887150160832020167163924546102035492530758828353583503399013853392730317487619209932937017340182326108987231805620288318482899823690960650834207525639543842434345658746750391763871416460802344115943732085773247463555763018230577539757215965621528211080127632458914333486912477887944102969645081338037420748366813369001079976035134254523627473702550369691954821277446614668592663741144863629615958271759397562650022794899404473895026503023617807120686124630493226759403545963512149929004738133886845028039235568641147550118257253431981525583701801006520299912041668973148076407770196460710273720630577030810362391241876397099339774136159088526154411182510322612537814913903574039262501338918765208968174053892888250697628604665104764514348162422260673338926222424407171756167582268951960834857773430323372368303462678577706986586357296626948884801217935708087893690755982315808726461755348306484935437864572811678390960712764784155236744404257499363237866077248871271948875844247840858946697251680779510147038609048754107569171624800756210405736750316433807212939512928874330895156517424065363881741663198261658999329477861058904420401320392519117442621987467300705616017350162852264221899641122730431133505086307883756631886739045216691526025471824035968830222958523264010485870734520335921371891838155478865537281777252827226676299287461613910323572582099722216016774873059448843642661366457242761635581352501493571235998221546570781716279109959416773005765322754814992380959102054395044858764557588512730268809962503727161240787782595757527800615816656368199196158858214305447030252622699380002523724314690152270474216409883541119753639745295546732921005984839701969439244073667321765965406676572717785833572179604691327723762434938472004336418978189973125452443469398749023845965804725576710165085198933020015304459903779112742609138833704968632969100809482030040300568568741867590268483439208687946671796644552714859229842875769177011541411124621418745437949912567127414002426203332106920457927507638869724886277376695549333668957335976616580099901355812059797317759106433737225915030170853928995845207000089443592963462307875387722052829307553016734444711224300680809257425646464957825986949063569682735595276686326776527663784307337591152122155824240902858437044757241106119279372940920676920717483140655131330686591623305101684884919124215501399335786056056637282308462541251130758722185414430356812767943480517523544596203433201589655793588325070524033549469439033993251719182287718042085479082150899972030058361767875784231609637143712051664384614528135774586400694032732508114996639333887791633599174079238650568915039805157543132748761892642449227353725734424005470644293560135409603405235132720089662648370973037396107168169140327330442292170750099296211559328275034513419892227632833249090185381537547545460698881740236504273132623526043603369127082611940860063215877687871344428235161699429696633174697221712951737284637375656267563007673903229087255846239492656383487500311780925155677870177823820676961447051622241868660374162859648287673773183032657930382450635285042505475777602888382742971256998918766423085971077766118148371569369640326080593522370204922777856605086571862010940395405192320169077527746541364307402502909624508657584172941139442574476767354418554011667449773807700008081702049582991313646681224702472633803095982535244051006377769366830190189223664766755546351269407421024787373713714455338725341118312446789149455486689948168982064688128690082199874789409224279858667654877053958327162462461161168815958158002420607467076042220519273825968661225616382294248992734345288387660896638241317648512964163013383296200522269080256385751816776623523012974047809372833252458850401219540947451819572557799876132307062430911005716084566894337946126560405339117306149711223269606117187713680560843055533820744220827019387162022527610991277785821524549460831879610401722785322004938705115391948586551539633935689270350621851514306570073004845879366132550082148501431165235773234131581893635064363234945840213234470290339249099769772298385257501596192908055359217638113749120244208576483831066768001147123264700740301495063939723016978296948280308192352711363970088311546861064988764788185456484550683326380436526599177685538606872055013470032185953103948730932450207145718138599433261367743654493891091405837226246274524342728359559701806825792013932241766615228683424884529515097911728195827034704892572798904008160601590944710675248056589200490241014103478250339075637661192397839281773659321448169317877393899495227387683474937988021822377480728360164369223731681322074021591211570174893833916963867613202417572998651196564246081620310026788532213576749285817943903217648854490424280707297118817478199997547386899140252213593086551644230791662303145290337929236602216221672568459787708393688725444954847023632537631695795135920419665101277277615443606643696240399454926871010473734049438479184847235094685495646728107262971232098076220651991086337234224354548142146480953259293620869232190398956443913057678802717026567464434847683207435040123778257268210066886675716845356623064347381365076299884543451809384572121951148999786758542451722511522081634004481631827255928496506402513784717884901459333527541102737526458330237211041623910238021082120516421249208819086225198998365112162120224453245394124157926047051901084045420416357891731547038941874257726031152039023258275592944930380652237329464266367085781673789221341749256307472940056157927330453502939817392911238906148668144544340096103927181989962574548646784941789872278994017553710949191443372647584869563762750860953525976483683718811459976593248927108343151335046784123980055350483452381361416698472782474052299295977341036651828068100553531584099315246626646971387993171114822666890922260154317543541659951651630112703377737991293644353867897003093547224371470458251307076255035190578147801664265152977950698958043780862716789885979415900006690098502815799085420353381280925948667281053973296040784933148075278594178033646750034701041779005963953657901198428438978473460170575777670782294882396693309508012287663667060365713449405064044819265174300795999845092471205912071395303215678315007923797029653951406908541558381757276530110265683508412756051927791645687103889956054354908702300299817937831058711408631290610297894076221432709835313659474122802389202849183007317095282367716005573206404160755698257282987932061337819680111296418505362917917225024493550264486234476326016679834712066948251002741384434515414409230581965174615694416562133157476635745273175970307444665772222941507185507361695654161049538448398051922096785476220802776217395952056662908046136435449649815568589464457680977622163419911778572775113283474646182588602223901913548264750938695214317850122147609696472025528204461858022558616235511762985159600837602374797806511942844273119229743350945813404283482695441959802477387208591708671554055324877550311721940405338747622273277080845386587610063386910864764892631413353826132885294487322840702669898762027644779954616972482495698203472209559621444594542091978285174446270066032455963055974464123682515438016110485284589385759442922942977373496898288590016115092183840174543344422424705522581574597225231294764861173138727143959513256927095705491059197555756584761384093120238279124391923833285005970681691923236630486439587907615806543561616317283372513688102616206393736790221856601955743834923515358767309335577296789126376264409505056159814724388206497551756935521629652857495386607441327833398170324217226710710102183986259127040162812892938185219050587889591728985171378481222121654405171757420889621763764430754083395849182642145201153917573708572838243092324702960706438503895916541432465761160102520060723170065080006737813329498787675433673802864655325090287822857985943226722837331297434241423996517651368818830563748808014744168375833610369306569528942158738749185032251986311672050654006495779084194718546253441541727939631001565646563058258233719310625428094689202944581411181815953992010766413356926669335837256234829569052660848423960661345591877200482497590758738814376361920944621352649743437783883933270705973277222767693955301076554538750945215856901874957960057147200096302257454181877290222183643598999015616782083867661329227560646959976718311446962725964299247597112295206537001671125148982689614625140875864474094568264687281240825609418470874379109376703038967915561838719157470128183823107865849095336222694158437954442585401132877940544042941122296259914134154490736558502849359776107402461765522084568655581134026685482213729599193897454825814783625455232881785235497777416224772830885645123167246170114445413044305092424487489912313179521308516823756932124535984189230203988515108709050385672237204495957311978354177621592692982599064815889858536233004227390556039989898969419170597306351806186105842139599158672344147605911273344200798937487269359726712533812641548315152810018772324433766169810545609948572394885420195571999730952859842803171636768052160490962311297406000692266254731449280424504304045019023081737331604061858877755895799174304572997669460317075862589032366511776630315967633750841906461707839249529525822855793576850049649059151927573541046140608931746829369630557456996526093970044979566972164276018559364220062397104941438431918552712204711184772365771355529632430642850380461142315171596360722592703066026117691275479022322243306698536531752726136066952418230373559486834154271836727630048901641072606254057501361173790575619595859581304630896725593846652527009984289975499562276723736385966712923052081279252989844137360209642970376265335659998912006964938239577179422461955429488767342760649881184372477209475822265128653523532010734806127094295157888881018951436488421343838066944568236204281850670155422395208061146269684545445803426302902616378228285339278292624379799901768649823024079893084271667257486182953809204608697056841435542505902300670226273098519585495779607429234049583916228066704311860960478682821352729625577236999209988015574387618291806830801358789997753594028279078391460977579268322251691258042125106317501579842062536523280107230537229121365703363830714934571777802265954488536246377389827844471185307553370113549502197994021277091470992051796533134071795468435737560319365435826153082354567947428141017126324392317859378330852544839011306711888194052180731034173561813880009650887456278785495438124665201374350192722524287416681636983544475363541141177010141320451697811297275019558201157869912530171602307780446466898559195111475362164078576547856719098151665209284474472774581972937400770778460225901703186119996093808945804320294955577862436480820313973651077268892232222166526559412416790615125540232750528268747776559883954476717921810946694002458821923604836789590367661642062118110025562142874616607885484182741385661840086714908694440829404604400344532813345196538891253472046919071149071253270317370453437515169246221429365158958771727646019881755281954365329276532766158310701822080059098074513004006263446243779147072944914300509807078112624323734347606267848362480065267647283061744516130490343551402274348976503004044030544208687493040661296382777621210539311827490104047561826532065956751136345234096973285105512008410260096938882510695345157512066879969156607733298897626499232913364885861813129574634545763725059457304246008936704926678675980726561096300999979744621683502783798259283781977240111595071031204274623708312306193114571013074471560471366343665294245823009873708797559356801229381254643495777680666810898376284550887089046204993060006038862277078987972421339855276342161270495004945356206964157846094033590887138880158797184925070365160424784684455533812433408905600186232029585136458412624064769569310759538119213036807913419449334500222181862976552823061792969783507969258125731268178614869771702984320345413643685404038659813710289618224195529353363986755615888405837108575209990901337464755506257419631365385131881896348606398785380649883543047403855569910832442549207368911675454911936896907463273647117772177783707096032182543890017034086463150874274779378059537833841358427504600050903863458347079057273608067213316788652498607890146148665645123612869276074328699704623056799106181246315136414228806041501017839257844338815878297722514569021104379762801056289394033104309357798072821231321610615671089172763541884086599212239432775242767080355649667498198340869479463701357256554703378072938388994937116157033770619434803786171578180413804894220916501266481149552536514604278085157072819526519796591943290462881954331934284983887121235186614793054421936276810491986671909124881289083736031809525496791465833816907796871082531365848787614639659096487697123047863499170918495103672372105490127443234964182062154234786324343571797385207131079635589002820724498372861081991507266283121203913416933778376005849730383140703163745702431183829649009509521516718675795509109412090349072792468941150704003447207341356152414883629909832707385729397061145023775737826372992643538280991482083963978075696685963122173723155919206717781391251743872032415003455129087074749868251446676575624470948486818258859138566018428339397668090489334146661515120002532814914770184126574426150686524461524475004067885715952827947142081925862147244392081774581693734385773798504948766002987621243317262633659488045179323586618922788548223305945393665513642020434197769051328712547672611883877422984988642841211253763067955520682895726325997667957492575764427437185810613955873810997024660737463236298341811626664076416873736969702440582905040777726209981342653375653262407862839533568850267750575183458762594243297118256003148641277974910616597493028202187116921583550868957590161486656101271737456053476366613384604127287084941139624734819043189857425744933152672099419474409977864153971730370615782215588674003331132836565143897445860665162034206136736841689181418478912545395175046008301659973794406310929556803624012295330583971500988084404317067856922313344136690279532527825752218743295241978393723961111850522109812442011156237982878854318585760263954581360733277130029002403107704566159832989318956020308808560977357891714364016759853717968048813282675084193666927479249299659814252274236181393035604367485678238994629383780373567668532587027727272165021928121935421955726814710683191983938436155882817045965511485085987404189706130963705117841497991044084477834626732250096317946485587376646570884672739619896406064218159141611997345967237957848144547710407526208460856050395601664573116782055239504889479959563431514797790598097853224417630634100076415619196826527061777981460452836901105335022151944854492148366428688772796292055576015669322624172327818416219650846175754250816595654271775081505003946873704401945260589230650620669388907350160512901876346154953053894056990726453860021583541759349005265823832401897196662532150061915441342354779552873141178557847123516637548679499600008682445393256581527933673008511613449046411489280453580842761719921293208640917802355609470815615829022720190119918765090384431992798945890925732204256569765200745551049856446004095188214385352056047499830011419347327782781681301345469080284729185107618049726393652832159465680640317315730812258110075841241457761451555036457231818233007228145348849864196392828692364477027218967532203109423553452289800710560470731453172391507309801635210910045274283219379628482173515584238229937141637294300038000361256107580606447257885998499382487297884286319275160279911533682619074888358870225728233054648843378294871350757188270581762753107958231483149931509974917034747700798333028475202230450659382727287363226406497549829764464293925191303635637537787928903052310950604503835498844790848578868480535029592241413562462944350799648407711170860163428517115986723862309283154162646541527815983534710781249481776326923319332010181599419893091399112598752225655204234525853048764171085222852184632306194124287383467655355271090901881483325295354964611924254603461943597262821727493125500801389732472315120023301873266404158448887758119229697727676892156429420960935110263221516868991540307453803514974075897910491417075114017012391096554588482635141290153039777819342764313913110000878576572187257170945084919308870812268568682728776380066416070678022954743905205229552836095023713714679709258943434038232319009953165427780764209427757482635391751718608842050953073660074853602662569260168331670617828510152789887057394600800852013442469452675066527925810542999281674616954027399761686099160615413576645900480098077049721110202992260927668724003641933135100929920617710256660410005554895880761407511622489234621266687436844505346476417833678561163921613765004019374082840499857332196670965238842109656388109798346615911947510987994684877010350411495084753950224575087360991255528713300874701750249805942883624138314910169687291118257672428483970180900603877817813430874243177649175298848368205286846704110582266653864973159120306102179990894288856916452973661651750280794204483937276283400629267431422174758593970136703472499684454767085226219183350545262749484972495235118551858699215939590156058769322897661096068517517029110923322194052659483161473365899386160141837036580646739843686104793850825906827460896158177957480674158730877265046386757604507413601314505794774353852990822293752669436394554591806513597110483344420222598788484605006037992964723698997237386815680050818431747811736514906727810386668199379023265596590177600761020378538773889462283528313802618040910253503887970743884495592287271928662381148594376190743604154195334296039682686575731179147048985167984381943467360882830840525449142427464599762616575219548255779199648323834356733646027951730367631367951093318895053971595606702989981819630674713781382445692602245771517256476010384292677853812207593788753024265314003239111239303583195056365555916424402004957928668850791833473785382310782296004398704236233689351934848644629280893781004927568747460094416753740332541152438228980712798302544421955622487047687874367424418536868872823442346303609616585360012282544288880682783437650488071785451957314073138624596697166004815304224643379727335308122200131011428047656409320397366183643473762036522598765284759460160261021151992516474000368709617618975522338207660391389232408520052752460920707456671792314676120599951209366432117217693999057530503612110179949894980575144045494307519378475745466081893777290752857965505814319716802087356032547477978580294968555816558464184268502590546317302463824864611819504219022918354227573106953282271295817772093772565196797776594209675581984745920604572520934507226443271003905100944642191722347060811581440275167129335705202924589206033562855416569995242044322353013034535277915844918831432487501212580193128315428939314158431340094620888862778881913870129997842898372483167335847530943770439443910892597922561233551138688998182998956306993629697701732491900156111253518338209544925015061527754602918110725654344549509147398833279096043078211776212049690783626007441285276969996816183957960128387723515770402005142771819485759880963082698749748099807854517673523636258210185392178144718219938936904160878236270075348180930846781432513949534303924483279581350235018302536254779708064540351237785813659804015970204015810911262883502048747987384704891124589754430596840056356728384396438632549734347152294379575546252487754184904707886765568585787371361103129133456357838030910518123335508252029514581183341860463592039677023206959648126409011450298188819890279756453300710534040462675691573846398686834595385021431901530526542607158699095943063722620128468000342335764778847475703240956772506475131839782486296894434821046794218163181365628876053350732856151217201627210442199205315955635622808457849503295870279271813072162098873547134887778813158717531546041255301746983153092416232171662618760449357264891726878040478531194961460966926888145270747974175633324789088562518173471344515221043785837375166125991474097754024017180728507753163508321571408720480962742301141604272604584523438946774770581414603805258839194047278735786349337253942678668865958911068069606977162924026252220562056116739266997482197677475129517599334785101032132490123143627498912819250429177939876756736286392501938953728747121558393962898647662791436864069222690419681227623214739509944766531281949727044723380479600291603725209454870958897707750135393041111361679960256533563365008657943843975728754610457596064914254870349035447816643441816073620491621249290520269707414111319897860001380042833974524141700299174532531383044655349914347753746659891494291812650371158142762917214626506559636620349837239822021208361250275410959519277675832780192886508147222227779441237077258458673457133218981368158375196733608108767140889575768558852572573813113831609281652342945670838380518826554411231870722149409288326388104358239531190004618385516002349085871720935714162960717241889650045359863836016368572354661266044480900174506167136049695682164026308937388179692813025674953383247165510551416030027989804080064316705298660964836167611848036325089470126118164086955390499670283654959903797714181360415940457620305871350920844026216457201239927538633092273517837482303204574045661052177656170756545756442349365647199164937498244788670190556962529586962601969500306357187962577593564036556810891096868088689187710374443619965810186465511000555648988540872686039225007045128580085589521852633688846135134552213574269432624219915930040409328947693569181236352301143492534294741945213101816862182385463227238371035251503366985784904618054000174631837762246727487722448515778777386239338071146270703123499836747713796551281644153346574596357625165150647419249344786301320207840110792593875865333591807058555657412134562745536241609348331740564080141874556354701810678093708856579328957355258799016465858645207485976984787726846431857585202636584219405390286509219353232794095190848040247999533599947708957222398644803344795837859592592479411865015321978148534743540513700189851207408438128511484237043241690127353651252350905184612159576321539216864501797284912407137845701788300623018514358570358743167044374219208533449712546668254350477542073501745487511107800424441419808339560612787749918727916437529314610035621171339478457757124455092060521824587082352238517091482503539488504791187036428429197899837893538382765929966151186755350491535866088386247992591974009949474643465837643301987457583701580525658329074673107830800409469661303573768590045626000876451255752574511669309420042563322876951736047412955088485571856648365185290688159242353791377105046036128047890343851860645614287530246831530487274322857134904715535114903599922132376939956061386634832806105956361770590166019117870234698809335016266544569596674652941327001141103015529726034546738616141527981340015051809086124073279353004204649187816987979852779349862650928380991242534646654210763519694240678461549650693375353232017673584924735127257587810780093323866413497226480225669034108642394518162576463318027970895784874957284794979316244737144610614047666991307471919690512978681086862151066035126938794531313027086839672466759351912532572339928897765694434878174952291974764495317410788730363858158105272595131250411957083342552927181012107693542374948986366588447564160112906242004099941746035589335086487285161659126043859096174422401030447413515900512209040628759148862174786163307462433728189510696555941468568285752537941040507844555374936713615519086750193189778471572201254420081599035935066402309536409640527972060216223595484278780910853868882551612994489286225837381759015250428879127663154005421418627673996306105520638786966532061652882345459330501405160095091349114468371353821497155135693048400401096097877028974061674739315006887520231097128889280652374712833224675820236556793775043658820935238910882581871444975933294313361106965631306230013100135013965674404755946280547317471176754625143611121527729178998257218836513344773363533550573971514995445694540305139409237015322250252716033641950442787082599629644471746452424044686486099834222473820117216720414445636058768451148036951908369352719942397148393462342658278263294871094744585496387132806623663741444906744015495153839560851256258693786057577987709949344390885055754544542570744867363411898479107107528716356480350811392780168988049560028497320386032169237011556697726970230946090824032849952018918319362433291738698216825946183058806375257223297715073778962975491809322544832328687600830941641178870601273127477257004572730751798609960093374467515022024608198911005626599254385495766212766863440395369451763859518062996615938011456629675909788595951338083015602167373211918992975745034688108789383403533169810030725849826756802252072440708128855423068395430576226868784499133014889970911568458416394980148454635400164958000920559589216057893731216751185525544009479368235701703134911841161338764536106960075906310520030655006342579228829886538253460304650230862973434815982110846455989178429022301034970172957235911130833029487590066273730637179521992782150356025223646500882736209678329563112077429488080431883429407473128041234070744409585472028556727755838572363175234499561910775291198337298974212797587425914730181916082621263293443915828575553194694235040169124984827776655678096569546251600811059640657004320840450059454763790472091434432991552172327254709989610467189869014807173166945476106345532842384192980072998615941060099133279122503270040306100154656309552851354351882510273909791308378145016217779213961517886709681936025422084859638851017236087632363687550512079966549888089066200323692176252878290073007283306687535521447493802919998159751710758849672351630408849054926438382393017321493753875071925385028127884782142179116686857442994089031359536552709541490145162212162121334510415764325654513507016871015526734716648473211326042882851294443317086618798521065231725739889769144395315117448719711394587636948794844784457775558390300451936900968722874393769351201964635017627843638157367928282012402618860716992396950650258781307607664967940864954449171343102140060656359147666982044972161461588651077666492183959419977451881459698124792337372995740579715857653182155875863801784578709019150048005007346790524901384400997007458355006652921116658265858372031318421563100035513549412594029514579198346216412000109530297432337107767856444004992908203259072930332824230036575222988129041734807741267701908135330450713204641620170272625615638432975077284214754310078275630377490745392115204963933383794086722658705654549445904122227240695812087102931047961677151850899758915619301159987901172425115535066653019944373803211507930652454239945554283906450716629272319326870048512035658867990875722546981268184943500853008940230662474100395034758798877584727002593079913194336619483475788358140504787890310156697917869707910982050307435264392037118432246241296605669436670883171943869740042072275815048237303898241603890265008800777046203096653636044826529341348843974733873767626679506335579172713529058447078419322827302577415836974269040610753146488835251691781817897421403961375038197681706646515968354283576312358136214454953918843887744266147714254812352963839070280004475752728715544348215065003070409734002109154577791559744332703812979187191264388468609745147699237527419127488455141870893724149633760126488189739685542613647736892296580674050805387138551359847700826129488995307379023467236317051924212692883661209387675448889058296213716202968352928585461559100090158774594197034643458586165518394679971348013523595136068125058733434561550579418577494603037525951529143584780067434763642993589046213663084006684292521780594212171947314943666994569028221465817305081681305537291021221824770248561513788687350834673028936858545864352423331778122742993045754127031467692109075568081351836771292615117068775086507924569303909667983447225771176080556270377451811634026777524331850813968629222828431592649985651077423542856000525083991939134519700275664764182470761891617445343216757281738981946695731466637284781302822551345624541763623330197094506497119713084393522258189231612198681438899910909496645784465511749305544286491376250962812907661474744031993189825103743230356871334132726817766905825418321861852882141818170673908371446033932744247759878217207379306514001913199400193868101116027949560131564804476737645439927262226026801406976090118742550095074960943981402417491086672353723641881153790739429578930497221612273316326530902636035136941609260157462397295057500585205166162090674377179052208637416501145406573363530327952485741481695774882433336184673466761014361266800688606609550434929599850660241762935183282617476270121991562313805231445846133831724636805973123306700518248072497212130083951494233175261974578456787040825290513180323900270665800088962427843387376874271529484073945608916232903409429338580938610278593277339803048065013836771529748520195196858388464270591379445074369295834869387606157747109295460638577740785949251503145769756962335676201245595792790076533367793917797871806206449565557502384437441231407639021760535186877074518478961048272420979123426718993667221379995550602608574632369393574309727285654673860600090018046845324827602126719277040757981000023683920380393684290358578852802155346038878260463855358366306162357309354861863816372059989778720821693708217752968784538915221474874825617066020318106220598571964587663592569563903998654958212645879648644716472323475976754589131000875810465453505703217905048954612875764857526457371849785100860623845732634489947781511625288963533662209805246555056519238073240745550564878709711228024185117611839549315686621564459971329617624008106027076809002348377156537448844073066240249527460107521965806713092827445446111894329616962460275021509807144442329519021402934329914356605630271068446732110378346333351889322870336715052008862647170159209676011095365106899746450625701026980600002232979154272592182559830088526670996476975655480355704604230922734286941903000054768347133744514769545256515426566433275281223129199237359775835075151807442229778843706710579725308942327391122366448837933867340547237955300279064799632098980223972349493308731081958514691952540376659934245040635291853193352360729340284804442809049700183075717809754309710511550848133173997226509972732446507692278693831488207453837945438936382857165019323285757435353549529928923379101762578204440125269230341053533390674445796363142026837207402363625936193970060092905071892690481577514942232740818190209989491868077003187462194615189473033638115692375542553505758205425360248718225113427085954155998458008113994239000419607886126963265228475030644416914122978483953870664955526321712992935728578951823962861753387234357551330299694405307627603734094886861487781752575716285446150095526946323301320950920075741325944426644918596943727377700122610581145719548818239608426378593107801436184386613335722437360597281661118693220305768723876685811812859590621957144261289789796878495029135087979439241225855256682209971222349416420865295439564589660846491191709610339670324788405118613525729833064902030212902837422658941968353503119803410061134161228000966693721542791089534542820861000560919452605394427401281133606177251574141140097748460291050007052684446338482359135755089138991838976766826187596326948182354648913623008914269523578446559229991082623965260789337591654491569309222849734270081534109990320967344496859030283622652546439206657961307245737077721652207994209213492360709804335243349262418975424707218408086313627297452575022287535865219557483948048530181544533909080458050698582390856559589850754067393481783195937380152513758450691489966178997091167184300663945916504912246926298487299362614162904935708512815154786515831192385266999642012954152717670867328904831961640382020565437587376628314096390168233349852766405754202954470338057618017909256116446896115533771937594806199413976258825726772464741685174826206311945982484793797008419008834776605706552014210690446633585207197047067056783721621049534347512508569073521966502289690284653522021661917165687784816242022356789037466240778404829027939000875205394327756719320941930953682546448574137970500558799358967680980656841431239968158858115029997534879252540525477468309819448594224158814487047910298323919151368202314331617191763287722407626389219749572026971525490857237957700201600600543335492284196350369983729924681934094463865463439397490201328608746964124491237857415274814383347445598580134856885410332087262409802798366738334852083196254255171201275916900048568187398051058681082295582603383277247642101585744016428278524022358622885977636994171841679264726419071053978403707455707301354048996072771912325143537117560311169056491606766871170772252977432910927130053507323766496254625314040762486068340992101504702962704256022665590491369973794229792707720169484153548983351660481968988429993943181928916120274475180759458287683577214043974480708106572555443497415312568371603064841461749516130896395944085930483140203356943097919650950497643758243188769210782178783547259651931612347965488297404472707555103357287686981014337457935653274640630035204328422494258440986544614351032395743908379589922441714274506271444350523338950290479908941077918664067992281776530421669942387347482754818070580910853796408993788777452290567428192412704067805626495474815945349478666531661960148213198817315467411639046875876752495568952131605409959163969135038015857596604535051753595224093811608545491469190768198771309636954759763805129413579227523512035023934286143172791418784564744731881689040805442615016693319336929341768005445764175360026909358836225578996241387400778351336109414478851836542552738820991723429271858894346480644277146223487668301069671215798140544370076158921669265313859697856773808263087491659008059891536451941840986271591397543202646779824984091779282001027310963824861921556310245458987318308629482301190376553749071045820802746679950753814712333727053606267162758207224752318140865410465391713762349764892446288443872562332616032344221492056283932849775512060457029378614713585203239385823131816653276861646264491526046100771613567893082088426954908707488087439445606960814952502259087827339115368286996875707691388609353315476287526488212095686589326106197362345096084312725428462879464287043680071643398657339639531710550531408566979302347215268248570091691278294879670441695589838783244960190737912438327082773720951433671947732299228389112085455993506890834614464718396204245423937448987246068290322210880430510622828559018905887554904378194119035001194098737281246653219680200965573099859027450814814385041402044693569001875371638509094237622720232473719421387251292638387514508135098988096755360588688966472453544257941655549241502688447480465728123171790900643725407955392359278599283638568848630479954146697730575811385679868550216456399485525233097705455881167633145288630427409194040343667473130358985868473319406542586953612974935102840061484056493624472928802066737855932642330456116004087099941906773245852550586900035578807174688313392003606921937789169831191200577306280842834641974946547969241469267960718025149369442361646544747658857127015082242611210501738442418292008556781676266626696025455557215430732028189826866566860283028540409194046204745927572612125224208139353982709588209529657849281065013364379659621699306896324991674971740121344401637173934736765150806567207798546426327056943541287670306015425545566163809534329004903822416755771277605920178301828191895802133837572189721304343721223920410233578176883009595472859507935108423028024670503014490085237067098022413620762115869915485345899174532528408329026544778682791244261221229447172718340274655982968279681215247767841333857893560994476152806905427992149902922225601619613286939632210482946860150607804483741635535372726668149697616124782805017016546730162081005247277429801571692986333071369098769941468920567332119891624647690943653162703420163542743441461189484307378683406471803524911241727013486063628173503980163442185028741318618843274870425968300177492443662421275735906151410040437387117532813232049528902472955351236304005820694341291188455317303831636847931497962530082605606722489779921990219096616938689997015647358787464191038171682183764883957930923391784350264125130794832661343403113363783057551486763235656124800948231379293424170665096388296805314293503988956920744602902689043710212527440186454657658415267982559174506084046684311983120672702384086971164029046052022050261770242133176092484571718708886161417350639883568492083535358561157200285880445520035619213366989930194122369748134524751923298048323965707363661041966732833524706561529896947674047656523051747546664549139591876164186581664090801772083470095787399034617622038898789681791188989387797609309180075804529140677740158132241104179820790714810800781940638001061558348567076187694647509583846007095982131846751168429884107104406128601717875646582186886522936563916330275797064145420554797277362660421134443763159281515505988874695677574821741650143172602605690114118619133292292397802861693113586441705331451407711605839663526219792180289770231300180467272609348935519922664472768965390522541994399015312536070872034432717262186841478734527144414123363568145855681528674784296434305795452763393571997534076178975135821880829435333504773276556892549537427663022933438065275983004147910190018961644112524925955459741195552842147019414840811578713674700092534411094679278955602587154883607765957121717844913138771737210459475864195877373805435590699154367106958074559656776433581960557878880912267117200287585375799376856944082876280516630949029414483136013903250226157686292159245013527964346404717403904666924612367901436139555239453125623406942959103087979859658846675523127071888708901207305132695723027510769033853302834431773355763754995372864871719887956623376510935031547190997942561374741811525424059712439526656832638895451029115959807026245895945409091058783758569147485554705649054662185524000643113206640007685158138820150671594763529428540522337957512890616538957345978111520905089321508693504168841220192031387718107287541818364206818924255220189190170643969343226758472950910114780813346761147559225938824239866863522548514445120203934040409673115113870189108301221397125216138040690418211250230945505258216235947302196236987002584546235639446836091240635199058103838749469339762675171652872140469649350618413306102691335882797295326631831321790361311764337373980497738411983355715598639526912633676799398784215579108324153648568909494383869957215681738572553399694848862883460729857232796532776313089515682038864423344359186513885927856662557866870489407661592293140456425067182950628355988798640965923787143799831717868172157647727792944208455965048605295164427261636421029078773311645421676927526729507615559587172678754110227422072420913725618704186591880287685803021139524845575444383076220160674172949809959990976857283221171201565086009229685397603727999800163179276521809653572206419652162809691087504928502182309869950712852548250665197242643455718777167858599536851730980582874355629884674743475144419411258752716677602161603146828672124370968939860770890986103161201894875319487672422141753514770735907311874935944905542630169212082547695650239942217135967412618012083473606178717412711851267063409123496358728999228615329431301886119249657317836846530459504143342648572471600165453651946757361896279515184053888842303153093805319301921940260273285466834729280675895257438018217819232072425289981522738153780239035313204012410433515022464731696745174180847417691342579280135442160483747764700008797945087499791438890561512883693581244830226992508740632918144509954226298559509565905063750801579529603831102923732373340516644391166076209265337787085507302163655884345227539113411149034709273033348588400672297764196526281831495082918486066869691905071169068264254463856214277244438721067763444293145749733854419818608277657100386209723837393718845399924621817522952762568575800366126382161663057593834366310214587214053745594841235383509899071876444506292496618586176616252484853674111512261118959732022215964061571056432761127558165290949750955743302445794039413925609668104656671239809753898536513519407684894185287101803989603604798780705526928508671413899536366926540191130789985479280932046461235804402717300380451349583905848381510843357410080944378831032792673807535335745697734230089466566246669027770430120196828210701446907128348280075119733755588424416845039484617157466536871851376323694832651546749611136713621571317387369638175646238034168717407592427209797534718436091881309064518690059443583043763860019968008870612456407551891398896144196789941677531400614536597555510884235129359036478152791743650777092281844309915770554305922461449825436680092957366441885630855520766536156062870928744704493183587016918585259008988099611853316727516199937685593086252499281819233973510408509255886484738541287762162006065326558786609484310619967625104901821250360099375688130280069591957898352433696116935880844243806199807031654365656565501441995873229923117377239578841916902759089199259029768795626956168094073738919262696245094573295525292794145845845477864660173005841263106846539476350920865747356450189176949684343836618750747676436438838776170037134570066009162316445773432934983743111071706286449892804206109304473322547289358868032118130074204329731402043875683823989451170579602311081943969849248024591484720649099503461969439933315968231858437788734958503775784085534922400313278961479412676395332028421251807825444018803189664920169827244951045990570855688297469403991409450277898606129906430522184170198164762203389719463104181056103170260472105016602475882270926088239627618817553231357743613393842854731362882114347636358288762156701742309329917792687305356661151398264747786962492103674372312977335153170543606619291410156683145926909705801827932646717722847653923861696850352543983233182508763378224934312886361210088365771976310598075071542707370454074682040056208176500887906882589135680801417292825818306432540082559037847657343350609885938806305158598153151820755815604650019614759835253754048216428344641225600815480697090835044964771525058641749163203783405818249786294333820321608864516571994904161521617812335234627000944904738483800387269533541829064705132410749995325360966124400306981076915964322808945962680438249990912174339480196481649449926374946830710522294678861184241624848999673151470664397365477573665946278199958631460462346843479768646686016247283488615922347527139825437258390769517847860950672132022997157449837662709153577188747988891125685391015181801902622721606410187696759950927291035069851305843611667037752755013792215577287404220916090896020599622318952495111363557179798566175968840290284047827953106583575987781243151651294454976413768574625972391144626846553899723513774925132487407597273649155090652125652321853228514975472416298125740783247018295608838738149687530168121184846929333898901462830434326368438243681703583831941831912265582036425737958281410094930584902786414996153406907784672311452156349001619784425308094344617044454509110801843123268938608869199574659188872835483386054968956571858134134962296839534628857318932626624229972606638249573261788100382539909232073290145190605019013524915054146516151305097683592493958989194246236840302434256711786151901004219005166311956778344058819679151409194433892999362697672742411309121636693124894049993779259971300971619940708269952206643671474207087856998759314047499914899310353299043896868197943726842988527921123531837056812752024036113177717775199856689510611302337705290532829886635779261863191931486388725041835590735708271280936660765285246118336371109374603919563784209120358778605240014503131311180142090953549937842058461807748815051893883813464630989441462669164332932093321408041890281146033665905466528937131904384583865348303751125454854661651334537916481675276413376774967252461546215871205717814309255123077948890430484563762726022549671674819028116850051678668184675852536388351953018926035723588651203999855199455198951530361456727529262458354124669032927979138165642246201687031805699437715052341442958903187354702489452888506892230244224279175444882683313087111483832726345307177753921778685248488985873231304203811027440307423357680683895794688274756885973044963354189828489800950789208956732714439962001478480317337360343444236499310656897071421525707494205337585524010865260129619702741062561837342011873139650684692089847148630808918992543769576663797532041620951839634973560028497041791750765759777011112032047418890855790261598612572462316083169868506245557090065495239046807609418472501861315480768212166938943638897476638701090943170357443591187640029132440705232900191815427250076709143825842907139618705851927707690787700399587768145049402120424113552328621625958454028385476157297585130310735641659368442600773402111379995898072758257036001780415765804243296184881355140947344219146177390879450986045937321982815570576779254934445407402131290827986401586770905574192086071732138114468320081502667852599696825051836582562090073616397543428082912459993406162850787209047761530036425624900750697319795089337292938907618091953690606823501439278064169851888243155773200249315209203385446065928017924694558267746691685435734074924527480476917669449107458473063967017022063644288177433259755196325409020252685325401737834529263241039829479363357221166529297081351873957675823531296469295306469594029188318203969353988410268263211876460583513533383852464898156420157048384063381781441358960824514714340763649560974048296119808133227682277046855264899942374878148086561245023732498151230867506723110239920552532256608068419687030713894359997437969951046972404530743630442514052857640046433352982015023704578778174950774425314879533139844485777994328620544930290198139333358945320817304236441113228182527449267487342576706330290919884348038115015892459310700812456593205971955904183678077955799222358318777032100256820334361302285502193209945166875450920930264359386829346259175151783383301028712471763321210284381563387663650538330125006466061439370851513381170443560383403086574724072811240458280896917697993643563262178003611873193683856208505957972333976679689116730660344363549837759457244781401973584436827310868390576414443649389804828705064543079973399118964966692871484689553899095049298255272475166098214611032934192900719245794584927351047018359164759128875286189037661133652829746054816325186244316959495449906619730060288095463258580037943586440116166731139011327879405959011312150138740246646544543954107128941461392959141140679296552006401653365638888233643931691070331788337147414307534316293718733368758921358175567775706801419023184756388123061612609461829558540296468302994666262176497331482553959744440222047612438534398462262305043689009039236024151534014906240911216843395269322754430721456682930734311389738262232864627347359155264955337429841116973474507847656248986873181073702156879298285161465231325222375255469281594585700451913796734885267213388966843033811814652711333083049904686481240590977646274515613348962836945339723391815071113084595937183020688007663403439944276380585786805237692583473282763556325818105011380102551196048460579403919779162973079082639846048700327487230884128421877722012291810982964489965028915530159520982861959171523608194410911138585547070742413977341937703681826413345888073883967606184343756882095976968885480349533593302005432237769214302997865560333157160708851650248877014922861775242866452409658579376372107241380405254307553175138318904181481185871268114289955170706202622738409461600326214820375450467741511700450631259918797150435453025173604004587001284033141409094889894613276003747188726312014847632481498903134001897793812400566959288502242284710158958814012001588756618691718648871077076622890117947387344637579794331274981953582695645343168987308601483948599019722240400394671360728504653194783627012097624404876122644916701118252080814652921448691047240842278692332271070205529420600327911373304222230223443287857734591816721590160870767163673361114471848053557704839391967588409035095245407088730661794379055459715116607311585620425586619910800954125545228324586189958717101449499081406061770117025694503549661198072108027484887666269030863048295346906137730681141185633858223900569788084631132917390562255437076642593476480335156685975811187681202873897673946865441174877100798222047737606614613706072934679549895025014361498506393021598627196906576982297977404901999152099726220770737078523294864486036658458944192319626500866886857278837515578545627806577684272802119750837788230447003843816293697537101457191909777985497941210740300223021206902279888798861338020781786523429567478472288888391918815004228768438347043251783230990708456935615099821708055376033538814596044400161684457069540583007288319666001364493925873069293941129767533064055442643265215511442660381476283453689372443915388415846326932968267237643581998722515929046053159614057069795044104929288328088267868538821246992961150372206101205256767735326564728060162534275597687905927750298510433154045448433856259889003008435055286706241952698849727913031895967115705145265433000036829646185009666971494147767373608572122747821843488807849042852661746294261493226222159205460053939643798589774611356399989388271261428736088122650147523745983714956312505406871283680776943778847641370746096495317219989097254105596166155748435583974573530294183932441718560333505753597651996751390714398108685225648220759883881765084868898183887905841420646231978605830617457491493876346946793912175738183247287228027128764451397105030243488789886938149854632846165204751240705465693906271893140861523664628248669275066144601662308975987253551846494721835938537889269410892097808171728273511895927177133611060986000284950936317590676328065444052132849233154214350600950642225012191662335965757319752597694255456554980906105409944965616741456424393899979003388640020444146067097638230026015419170110511971399724078425831061427754330299877609516073376258442073876267868383717012322663945162912246536738439818428945568163978894386331651418144954880563594341228750041039234809628647260905064604502978529975985568730290991551168449114586612857185099504945897911875969002200704047933562205680989813182026849659889277623448032211930502519944427328034066366935783925044929741193083921948090791790494856501080467021479933287295599766318581022928236228375121034585307025137452532533238543838589872995712644311636279481329430383861047011142452831797128327053818656968869640266543830799568452457047658375088081064136818604970169482334926552927251180657484632827744849664003870382215409348450107268409641350635395561320588884147337772886998767666439820511335057703892967320867851119572159695612093976140269739281040161630829171566727672862305866863480057673096515554054332007272519777252807788862616989452632703565152036541769415833251196107616512807459349789737665780529355364772016817789164267673862003016148245354743803434247533930197337269542321269674426944637379745645250206480603554654920346877198185481926270420245838002081718860525631643143866396274181685207786934317240924935707978532484295649228077924725486182555724642495958968705660215645842762439728527843504102818804056368896311312283588472963832085868832111780955908044466796484561232863065485535623657338075294073088379379252855596980713848870184961980914603670003114272366759770229241410197189705241635726073799534715822418960630260888605337647040738128005479339305784686555517282209386588425029066630164032312530244196008232249041763040936511829980804709066350910181961944538590906178137685607731810683660149631633021595376145308590266456487088465502038466385044037680077744499361810703170419074714257225367116253751504630817127887481362899212194057035682853586905938240039082417376789580836095709261202958178094852459902464229536850263575376955270244517217035792935669150990901611814574220532973954989905706125275321005628770704316699047438564972705806522223110613020260364139527931964269785926733362337512789814633721831330233211914858063732923743376418222044228507776686424104005284897741241111310514573457970786025121451315752019980417235549258121360611312281533877044092526983284348473546011901572903474369442657562462838804226478186901391403658007435974598107789358681529196651670342600028328299199603896490945594179243629909019327240410329297818706444054855363597384762778340020778478551431268517185861605643525518135272818278397826627063240327376644424866903284541931091072974988831966411807526759217664119424746410075470953400194519179421294303013431501932942819912899449775996925169458414881955275429979644466635063030730946988054406255919814963116693961384705730155030201621946307690390191211301567044026080323243394975551990717150895441600755090129288711819005766970048939272967306953986174286873093873323370865746000316474477613880783106019600259183165719784687329340741535394514612570133052330467427440051842935474014007151277844925964434044253585007360915611750338123258337530611677831084706620180830122928515151168803012243252128098796932361846301445610085649294880174756829763249239750997370843808378827472912750201015599318451027692916117476515028457881863947429508153905299501992142810777913153898612527576564006732528030455804271009986723813780867611248613311814885641091413739972732212271250820125412896157630267142834663429188759257961094851356161256159950568179824817721668730108042742623362993192751230295899441269838901895886897494734205811134905592757044352413884432878779928462237630154384852080385926861115076364451768704116922633751056614352897382579258802620751889996739039891694033797416108307076159796323507080308029089512754917491007744069680043474195083107236702583321760345656060350651343224145591531237918663482844169450848937270533658282234855334613940684912690275937187889911534368115417360870446400594544453077707536380995212225894005543894726749689517836903291213769670034682400174285337284082356898292012022586290095871767195057001767240514446471051768893737270763611936292142272508347478372298403573884797154757748504863584779540545153643076197074866808321501466021976794071876033561396060842704708769802244687027299481995001263596343838426721993646699828470470199535012554430448253442495810455941515210245564577804303948923408012468654737405780259110757255959083982535958126443184461663157334646114038151757688745837448307274208096187444414596321966669667461843311770020663221776988679298227649001688738881192046062502020070664582999333317154260523166514675420244119561999617408570492568653197938437130557613396783056235066493432483364453678442375801505163525949281498296171040117455984871733515535009632234568556985793267359049292868405362277927440589822722236057896126209036303176322380457086688082961172809846907030584498089385953444194028016985940233762485997513463158239896655320153983254811433037505248341216241528612417202378740791854774074640414009913930560584465944078309254970785097601745473039432026596989285921172529982170994554893675622797964813689140731317634672060740362213572061558352611671069855719149350156803786150354335598626807765354482499743949892001769769538905720096890101994852905224834816827224282775119306131292893304347694279585035096464503963352137752623066635606460081087021465786268877667068455027060428278750190299183814072231810488127650280262949427308888724703858816233548524651092643128300035361044104270730485295807397015259157272834607691466108058359220475696392163305612542737516417370155434503168819905409264432477926952183209811396969011047880476134488499706398373580137323589646697233000548445901113180589910391657831348205579621509875682359385557860065485175010581275918222666108034006743887069670262817824124277839131738977014551248540032188272417427054975018861774954270433541794272120209884483398259898772975091277633393108006024610393267463069504106223047918207252283881092849802268007917053363695939421234067760716450499875931174898688177865592958267333035141431938953930820996879850309640571989298543174557228840740782822187216132421019976723806623846363128118925904043666482404594154529808627773557997316477150347768585500940397834626286417729630994142280809785442498214753067971163971983205874507510137717156313615540081447707425317984412493617716631123426207064550845786571499643917933358077968241243648955517375594687782462014110661122360854681209072088863283056071127419655812449256792947723069464804654557718753230402718183309267809892344079049960186438200707068323057138692476401319665947282280412740864296469369072703037398438566184309669416033362697272511502167316908889455433584677212743739071652406503262911149327821500915219283426020503082285880560416400168140456257448930199813605677392941417312279863538414218056297050541913995913636477130784473492117742146130995613064125344644504850154024655089744529949226914537848799236075610452538136794928413253379502207595561934170667923346369846438100397850774202463813908046580266674926207473232533042775696413332993937467945683313539465350055183900094420559016041988842838860547976700866527743578395194507191591948650831787879787673533495465699369533839934846745212872279847194014078303755124003237946811035489244293203608182997841787553474756048105517868850032021689384821102187979394741101060720550348564308437714312749271802154001264582017288029566226753286395704846075437996791726116470949206741079644135472191297593596257204702673791813126440935438813148947569955288369942592182973114427303690186348706695970132825731655401549288694293698023578783684818250877644507754646168702614282042242558511578667437793657836428835530320421453145070966730201184178706233111836580251682408169486437806500725155050486440268575480292181317331441943271200289563255812809807616521169963588325923268628435402020553426159361361520121195894230038480901127030463808095173912735828382594177445886444726928345155740186785683887954416103649022820795830906692363681276230065452729996024724578807921779366754859949753124983037366359026850662899569590511707923637475614445042205474189693244166097150568479553960303702924141894494632972108383325137155135441527184122754471418264058049044552882035566705943065327205046099298388814604552010546956838611341216918493418514845989903703679106303611461598822798981114236506914428065223513119747700911022444190304114903764972229494018220457996576857705409629853691072829199737102959117916724302507704704284914165765978872043539086122738070045821996821609845465590585612889566355759652629496072722126612419202007897064227605952248369369023174217206354908128851287086346671118327104071670338167981377540215648143058558168651056965711728062176977452925145325185149858535288902927241242517823856457601256684200043642307206293879224682455623027909184166401908690396534672372821925931902061046591170893626620896170253968846651727112302309685774421872075857043687409482574017963732545273884402013177422683587584780121415792755454500807031205169400118408429308911378753461703691399210809835673309631964899526244360940985616589909644756159208706833715728171380062207321875193881413949417540278569951636865817686110874118326967661698281081628184918349984587420438204696528739438080413582996905970824922860967496347849273731164008594492311144047040307459464157712896747686903519048134969333654570402929672791832947191664404739422092747510549303873146346047409142622173760980031716539604831617133392145399410432072113052772144838907975104871747580460477512247136449585958923356465369091416292051025635805164127162489057563473243462487253487894726692818770314091982991237784755375347797842812262894779759779342440826638292335579930467371751154045498114356306682051599936494004611226197566676152283990790151608594019355932845511247310634707455242898069832663779226462670384026218813165121640104326912417921344878119600058442592516427247731710559597379608499730569766759253461662090140136176374522475158685087324517797867093523717367942639080992050723075181170562692516641286348362318898999134337889592114688692887766579828324024351090535554020369554982907540721326377577804168047274711608381057257118485044485777493738437655270393689997955393407717092066414981317361848480171319807442996357148491973880361879677728654598209002900476194798470281161143030215371566571981393207291760249123149554305512801580605493611897326108047277097619440279184383409220907299983035555289612576228247168381550506812217226276295374610196729500622129350797798902888815022104381352841968923154410656563631911745640337214755186079989539691445518597354472424555383694722196708119877115952464941997436935987581109672098434416361625452892687119922647262415121781464119063280743111048149907476700384176551254070540904709752290794411485088597712310057126521817880646821614657771209417654004574201097920215197901400938342997709291826760112438847177854653847093013354928558668017982770142448985135893082132249061185937880190918503889906329880391739805314633839523267669226172746836539384078793661920168244979966001719486497982779221099587581947894767448702363136328573297175704340132737502655135627430798570655022399452286613549845177393283812790703878517821046159804411619869550952465703634776929372359094418664448336757439921652909651277452678014293163298508400232091558591651459955515523533882545623983132526582360911237948621146328842030390623341443195678743998373042103451804852845152525882954463296004446286615433945912038381341470151044054042582607090038470452540543633617317071738904781721414377072489956052606393528876449537798683826649194432039160525419125454529133148627588851514817506198021633381036276485287682988051746143884132017451306500797846983889423446075827005974876711188013819320967501889594933877515869440164958245826421654937937304492576002637041170876496446880938008413624665417004007372286420403277840092606220315677959537712118219142837373239998192264882467330761631668920067111618646215010142099674388847987082948072210113942170022685103872740125936638505849683283151084023666199023051319316808126515938852571615448602162438761135974953372425724128542986572485729001476668643502599812454382814438400089623836027638830128803173973590214349210158921786996776779623602021242891531256371823146326527642617446509800842947782847383243783415513901755474295362659330843413963181027924451551253317199109466589318738294480790254029347061767230527827094990561780743305012252536724275989309050525352679752370540173688038770319132158855421771961996146065180283891822098549981496398687410101484096959456864962501599990236226437037013141630044387365973139829023735813634218719415378866926072919948937274685197523429676445013377329448473939703147247478672926545551871702323133847815837157844726086086680544265921426144488630805723789236023710720823736157400966264214686973527468259354748844526762623812521459202601730992609578970822375233602611492580605539272749309570116194202189798886789869945933382359214828650839490400969651130093518952944916113583535768537580401046396218206745290690205823017043575832875038483241712389825067401029045853753495414088658097892952938762989876663501588446174240735755837817052852199517711815287620249700253141116501819604232913637023019507725102474386585243952291714567264754244084264219255587099604434447036133696667159428509705770165371445877327748300116169907366177139027965140959602594648646742498421536726118755098784843793524020646190774933363601019685757896532067747222451568474660267271482734540663169547710841491679993272582965559385762411854889444356841150618073119104879238508735582819397671237795565508427717288616979961071315407359210665827852922039057662795210913903590618451146244771841797464273147592026350577785294956193270330662686904979230054622855607936058626675999070993506312527476233825070318763683163525010486210258076328821363283803956495416898546242517089884869536515059745241618228768866575300931710887113268984059882042157560914437353600294141788660470467853894421133216726557058436312551099641127913958823412755055091700577666299529661021663999407328486540680795751235146874584488064839301815886559899968393819864533034312923956926421139815194879001855530451746146459211682704184628661842465657793771144656768109734186642388748708430283671841206897173184485602483144268345170852774317395301230088123328135309470678650663626415041499240484967587750580582949449861337191644351384613740567967374002566001367517773374039605072151010863975665426075627332322943666470514512786468788945155589335377529306273282603266945290021116401694476309475892714100114094164588620494280180068795713024516667616675164260484369556986839547158408506245100078248441491583822039331364730717903324901315787182907929148488433865160251773065579843882791371223416364800804868784117552904642330618671588959624529706659996380374544604683312890796960350145822255153104611318882440101073184809120989512836328102348641925219021060904789002608359542338204608949551095258603918466026531907436936943235254275227532761559680068240523163449883034766766639427005199606656417835006163673262026727624428634465714717258607829056347550767052829229057179139845401642384482976078141841558882317417887487617806629474657099723570147580183685509393700369541965513030791435211642086688046214035840207904870648454257992811882937868948668397510976812417892156971073316573551014323116864204361783214233440103456200965178312158661007704540084006058427527623495735985454475098979358765980255955192390787740948258928064852242707829848217671022693139818764885129919212458004180066728689370983556907691835022918498380996857315162478706178955056459304297973629157926782937391531553759773707119142898564483048771742275094899520690984437108468173333691421197792768872408665821654286918257913902163523568216615182376874811492431709416035026886138981828906698109172104172539606064906803145241725421948782471559305980754496880488600865795154336461222373343647460432101904992165430876391515947942652303036742073033031322599719261502174941083156346459825858570547033965273085557696193535204400714177872981905731861752879369633332460035149485017863561782448369330622028400724929380831479056276404051388596849495253045877166740600635037148926279220369911918508328753178519833382689572431515252752121678300989902630445605130326358560906390318391264441839945327581025246809716837896472763790308693930276873013944385878009501100721695404261757868433027341594781179084364666326335555813192443258611092529875274225024736369113257671246079515241307677972868510808435564120859837263855063502383185119523386855075256220823693349260565700691798985961984319359654603464889884733856111005636214281903876033493486752291093672123251805868736949064242734113702476251387154945669841054257116339628186428948356967542436359878508017869341099274362118628208882689901732874140507528481767999323074738153220575046037309852022040109002992236677890204350068207675637948273401752346736187289737106265709027920440158016508758163701325751208961262677526419586116705936912459454297230637935973995823250777950321724729929182076259514014565868284663470150728993817845723756263951719035756687903453119884284227048355651900133123911799781421009109438644720767484846668706753920088927989214024067430720462227872665939356779760001179216122659611026195361572564918416637531370093901200261858903953684259525133624783152527329893856453990608190177880331549738066766878589834222284283787932697689153249582350315478079590584116745541350168118844321494835838599048958787045980050432236915267773348022014277936160052043262064891058137601656459299896542499961864200790481726496485117328857064728337038335020000853646281576249094511378306429220449365076152585907999358699461179869670273926271398959402501733211444104288943919467299748562908632072244160900571835604107984853257594879023502078165733554836923375422701042343816298044548200745565152476749045786588219581995581728459783160563245287503591522648238180861303990803191541632384828269179160501536719580708728786320439645471903851500602571238142375776925516011372182553927800542945736754703050577782040501192761814112598465210511500817570814907270179472209829512572279774267777037691730860427482437767923595994563027648297723639357912024310117932092935743284099770600039866815423559212218748605914283525134100751668694213817974487164895493587962451270795498756302167658024585358439642687330641042504142341995876356309358861795058657198779713394651176702502366440821502803891120347045835186177841821965646164909599433680433007613515044119643912322070602768541448851114817761208758305582562899168325166509083454948869841860177929663342854586404648356429035624813732517920953343418065373474298329868606482862444471864108736954937665874757872326060879205388975343829281200308979520979118915049404203739987662412906688666835766921393549552338818920731781514809786872240284195910178300234674270930540278325437094062661346437495451214998939229834974117668596050624972626009868118717987742528571716812377766354618961762687176775764175432910984554604982039257716160898782106486945644205596507666329923698428509538235701420777267354280841443568836655541355877463578118315324225531824683390599890577008863139992847341162976240819149553310585762101753146182813100708298131358483346223309944458199822807517212925730640530219381070324369942195210999455414798504982289106135436362239371416783386286757581371947665987064571519699862915951817180603352271915875649873349453275835563994642361557207894896145963802778063524721658640796119930048417215703747034560963558424791922000410468856890703318299388523604353389873225160341233969318414831600094371581370138880546599747044400078720364647560521193493670569891418127326607483129100440222005398982925418028821868084291188905570991180675700159871521155984463217586354462879578018753868934257966325055400700236727176156978582478066331718792662537416382869328655109189288512562839907418112051918521061405327878921216273951679024314710523597052742736034674442487866717621554117322621688983353079956107216821336646012242641526832478071048896391656713964399090890616249147565578767504701167154246766274424938764727311591235162463081773356113806867386384770180280358562041524903818551866288605347837410599338430941386916783014277093885623896468862396839756594206613513614459726535989603703591908687302570886034773228505484924063114701526470335403266424821042947207072337851958114784882073048435355326884930507453111076861065128849442840152415419515511174741651506757377609522169825246557824909054277168998771604603329090696941953797865273921418609358369518740680693841621667153604650492143219345633389756103419373727544835435738526048063548733797617764207564866513673693358732808614896125818677294661875817243708024372856313828834621304084822690388269623373308005386857331300162917628134790706133138051950794145369591575064016865815104098626486602373768709878056678211748976324198423100400359642757644981716141132647984277559347114476344124789545644848401372805970512378582753665429924667483041707541180694070047024231402366695346693496387496392259891014859387660816383189528376870384936878002789225903210900827467043847451969348869712731743823845689199689600518016956031091815722462078254646030239990921938767110872590576229303099471666193966842799643636470212947491224047236958102899442731152090880924976930429435304525403703731378182794529197348632557434368358845032502307187465618072829074229344097804784615891426568047343099023891628822171603666480346878544840403927613434548009684616506506570400832354530569673807071208915241102478954549604336712210919918788629976878261254984580673412853815024109992478336588008616825475857530169726003946043588461690440504553868192447399682705564985574198806195050084428989122158947922864810413129474769022927043041056863538931216242044195021324316923128592365935319761852216381737878637716415375602934086579852697657939430941230769482209468153432815332997111764669773915033863481814739899894785356887121762091211866859987430844151974621348198416903857250148193881718524625130759795049799503680482569086632386022980648724684168851770117491237177104201401652759070410141650385636819286981792883271939889229726468235729293843459082336879030068843304886610685286557749637092475876561379133350610185402494349176161789998485453474346862801938247370542830399279515020475987161413633150483409456143521228050438292960240549387416116330765211051173087069037106626269747580419371314339345569250934293808972343026044878448690395036442453551308675475975439123068676414903685506984645772071346178963420845732314481711830583741717289842395824862718243400784860360498631662360232547918137808287015147259427731663344154661508895701836875682164128709027186298828428616364048145043887888610136873371192822732885548390130408117321825594539116403084076671374746645860413579465100412075890362768888417397571551726681120645629716119552847981513807526914518556229653689193298048867936241396476215881821840513818672845489922239027315826191499045078498980487776656862278320346254011874230588048781043404342689796273655781567840673820388170056304666831451993873992391391302298309454961421778613751824263209450169257485803993006672506628147155141563622519049956361596443993903514630071482047363453458480190460374024430897590511111129782453543228064466443004030609447533001560278355670909717812989593974446474572137990941013404040695866625999064720941785118426997091133819441972532526800837929933630435211184736394915934297825672908947507236765641473596464628099056571030675364887092013643663328120459551471062570111321224328913417752900891066735311773382075922883054447408706195588676319138764831170204256078356950771862674494260001324085903824728328704269897028340581464989816630021751702505634225062021712915709062830179745699791311537312886651230844561727314045021977156797920286312602382936641480989976346283552808499824291788536670569627191951374534801237410700507970302248693277579439771286536839788083027892540979850521345745450991457978754173601152137238322679283520846938982242548100803760997984788889881876058236057598616708283535860456170401016139041281371295474347996017937545211200512131603330941766797859775923360637850967217734430422558872507190929206577940980996175961895460116094698097873459471247633639013201100728024770125564724333658730579845379482757528279087888346089444911386504637777403402932077992169788181648360360923834050702582792744731510266162928972236377610569194092883086963165449302569589201010494440971912559099403144066898488215360550974681461382533189487619945003116156350702532614389253416920133734072225276358480545714341834609044417615330311952006772898366217665581035100059907794284062936132139249792234805661887407393063891478395008893169938935038651007859207299043413676222777953613515406266248907191818373809140183279148494753175619991079723920144159310543733366715830739295979126159923337819241404242039293021643075983999114032649158605794854519979788179707193976420147668254136060352623205799881617004418569245712405810863945220524789149134978750081949135648813778770280895656436487534641861903842886798644094718159393040849590941785085894468144865569961882659927581088681818678822159658135162718938366224781320171009795246439586882446007111857190891510541223500615909554965865639274718709469039227313681614177583454341857815977648575812439948048651872643164756343077352078817763247164381465438364966372947606339693198686764252222400557074651637786717165922208877448659546186966964413626478949363439419367170285235466015387947475851507389814218528903910439564642087516943352548739956501673576156267773750821985773255956187543786337931382177442932980477551872634593560646653069230668826577780158709745542733514834844249809886412399995742179336769674696579531146182604666741860047562084321929608200393189727446565135127842627394942095100782542027818269241577077899785564748340006221670916193937310747524549170152148995100949279326534058991705876377597077146968257471672823401337445861295018192224271249661635809422995762324181347070011457672352577338189988583699669875724165361561986332494234424156150877311574709092050865016717421513848958507333045336618340632769445195349159594672201017939615936071996281781515871838441034072617788418021731950510348495659077920761794410076504438503844208820501104288937032844638870414568162596949323722196386477349994186157384244878168286904622346365866682502670780200354295282201880251073004924710007265355427077351581827598533718779091880028865205278766149832178611776470200564682677762012431466502239319509137052035534324200785592615161080951280934739501271073491057422766590949776375609748887980351158126911971121552527687658442160537625246694735201619911304962824607028179427202458719868438768204873209540509669609622562993595801979321840386275951909164559419020149008005671910812654232635154762999330993944699785164497132780659290997472807387995729046126130869176798409333941341688594956902420723786934079969654993377549517807931149967360206041698497422188067230682738893781703118999725230095051996684509735392717155819152648062756247807097037429327412451761052575260949318813723173658970932654269044576539029046218064901671472742541148819699304931152891647339226824976965018812676113114785525969272888524071363582436700308124919588124221100606341020468285312477434669879909340928619678288733459418433310370234420602396342458618256813898743733514636391149687945301424526982424548556588733378714652745732565570565881360559256764145324716212144712912387545062087663951324183837889356586200933815463801873371522951262383253130716684996572709533545321764181864291968292051726910487788526631567584156109358671196861290151465127999777168200965647021072105347724392328374486079947216516913715198899553126035562701300024887952361253099283470020966198818427070498971068353284969532577841137479213935724476464030905063733511590036877564480183600236101026582500767443511844300398405286674871071971822351708790106631596469812375970237658472903946304566907748627931574925616019674429547387375963549368865597353689351770762578814078566140600540225023486632726805942044637950276416057634815678300280832545638183980100110058984501754301131487265301995703817960596649402530655452941736946045185353991001891313349523850926796704329451047572633995441931436630670299280147783684241120017705010592532955587867840341607526473828803318572502545283312903834771843849727336269381468203097108733702068863565183639554759800708964657504384666993635358736897347728958603885965707291271930101926052664897192209023948558832871225022216330578937064300715246949256266508002422960953515548602602881210672314871839217105838806260906216828126042008961894327841875621602817281821162210065722773833321861996713702831788173833990400751268338683217639475618289157616809298459826504233639455811517882855425523127099592434839594775199057831153613321144982295343934971299222487040356568448581360090076967260971634599321075753170717524354350714760929795085230964192060104174079549890624096941165027424238098740366681691269176584100181913923265721238734897056023281530147467443015480346884035912559313391330674038320010186166573273693391642487829062844409322267134557509375354993819318928935641947081944687829921252029213037703111006409917260078786800961293239616171530784471934366550726656080580184892034595179171026826161215275494997224492617677228082583338336234304408401356077692065480352232030803032278387348928144279716547930971007122901035154646637035104524483735108487370856185280091310225723259410442355493872225862105299231509177709848212823752164089139527310390672000418795371400275460305719774705630049170087500539394904953795708712603384166187945343669154189228521944587185404140588945725382341925854633187376252645909441285388853367995233194564697954553642221442459812918916715835848191243532060521192042613990026168407424801504150836599827521464595536007510707026419031938965156302360987850271788529246545540770409611522285001760276627008729200556123593986324202078297323075504568938342433326803911366697730802373957734462944763454809291514649773278084630321598177590633166963885159937030774901485306411786912583242268293280574783946656543059289647296651702758640122097079979172466299196533363018504539851884876476985974170740339669142817574591545522322321101353667446299467175706989349907823516058235954531054504813093479505513041596667979638951857945770624212635477008372268283670585673727966701289473831935344557212172919962050760404637255624626380853049917921075812281278208408475028395495350684237161216618713815398504554103800112801421083090359755977856907508760313294462344491030814527598952823743824172794857689320994597377461181525098308723914239142914777141391736819529784929832785347716180131916445621293290239317512343863224143593922791177033187887734443919285390203067692567426409239428850452747146694465464374870747062785279516579489455952218749183091599862932670403002487547388819817655694171935050542632686432528251135079024897330556245981217201525978439779463586743096509526458540044120171568590365145552735604145412857722999230608746113204856887562884824849161514024431681759065936474708722735463290226364236833946060754357742674497885250003001315887004667875799159702003464502229451487238268463985260043509623135617152939641330840642229467370052527688754380123381043406239108370515844281917816914410717723731677492891166819194773593439068594866496871812711825148817314050313454929776321221236910787547188379441958769661395063397841163942462997186225612306290364291403291571056326351787357967883164385394436548302584506077092044970422647284954084133563813888689606598157764560270091529644545808006517187041184725111143969374363016189422307734210940610394608324651015293060115451036213166740381485374964947964374724081411017302621626876330344185330666773697944776942547851785954863232103888939077227373467572470166028354447640627720698814090373575559376606731313784423072327279138905559893912356956814063562914175260168687066927237658848736763253119539122946661644035192907872178354179877934955026623368335251830711253994111423894304960385276826905119337682336347457837620427961396006539650106898840815206071538490771190751853733717835143042029961131717370492148282658993938239754872468353387987170554277584574067845216317090632436303407281024332758972436790049474348651713478564452881895453040563461310026056469559849164026329634900410098992371633680973519859787875218652588933580365086575955785367265639336900158847004749442597177414374895794321115647639333207587728079559069543607618868307225182359635217487450704521152089296214871862168125362918130565651857136703433503287224841711658875640339184931086993760921745309079045495426159882464316386398434163838585844139740778526675942186894158586657738593752506994665413148641754028060380679398205848832756727883458224020006097672725956325161961448642245706201165922526835251736849752045186511106045871225488152184813853105087125708344876580148519242282909171557756021052715059658175551862937548004147391647388039118362033214239002844858416129283539924113064958474303317894570596132717963169056363412894591983184274699548464514328468437434367877284259222888721017820068225814724540138510450738500960197462467277766033120084463220259197311056073899125155854993847508053545743756969000559721990684570818758505293519355670900026943472753928709261663212217392400811404381488950082733337597019602115376756445171769992841706665339038364067258109936982256050202916184892111405283488294136680313816787340307156374505489405022804749925933735538943572982889908956407506304867817948295401397783787736589294886219028981987537387265978522759133736759077048362376967204193592203654592436432775659683259192353288425723680308032581837929081022507579806285136682684478278476559929581758426789917176646006324296368837201986356922583910504033130149938729585271676462302874636399936576302801265141382603683537302502518191269277869172382048497359932303488843212661481621236514366468953611320021521894716945947561314586899055962782700355980999731330741216855045848716349208053000893833673995592146019923772262632576272008729883023350616967326459442238066882469697975913742068818907600974712092909440626617590504110424816057139853474814323578100208865023577550506058472090954090432794388108904148883872006033803536236821366138215918106567988689111834261035493484267450060109748742976569898068221430923927025683434440133306169645979248295846068379868692124560544975971120204829281241705047851939657313064575027653874112512106562970491119202224113454183234948159947374084827160253528612874028658242494382071733804689519234934089662512488888638999598459106418751744940878430597897963122184387577730911224984716053577408296838384423202756586152428309110218297838943430620481502108147842109248039015401990677076066578933474129310308629151776328294430496482673464404021355259830427521687163905459442989235402332017957460286849517787498207196962196970927438217335129860698101972112879589385399515879744224600696990152906646018588693928170364052181088709893568335284104745871799178510692134983872193328665603975012517789670656132956527908908804294912769163655832801346680211167172574104200071570032541619009810493503720914220022051777841068477845760375513809658530376269964975520973969681223935623782939303468242185026421189877818511942520390057823782423572531603542590916331916221167058298757539158494543558404181734815428399628124849936986317195657926811247168840582141714404187957730140256193927948805981713440687444580145194356717465114543706549111212412747044953712069828598447839252857858531606824617676930908284955056558344850780302473538674237688621954384828034914635542818746539243579011075465752680531908676888017898669817150166457971325006918322648103743208814737851821348881107281365785256938707082150461851896694210008285738240278957275404320822032390085862192643403372079808855719705413846649658235208520701387232762844863204912936281748849125254255666102418487545070371436781891000777110486743055918108733583879904856335695161184971601606733671879339659534254880174082024087097273671884522115418105249914113671254021239710682774045369386412799472408046759495877894243867799529193123598497951098026018033444278843563461022079282249130176470723469330200560045780951759546926062317365600983505971728260793245823397562561799130103920743779737737530643936933368493269602961413898788951658929949152965248580546010323525304582407366836204451882130824662037087638866051692837469610941737001355793716790975773820994614619091377130553780393543148089057173843413140563884758644813854567381180045148921093142318557927646132427443427120925167102554468208426525416295488329243891541756725532582025239363330073879431554435657336658419742959906445438646459435227394205492332950028516648645716146196464141656396965913987076267610170062179476751740465625106110424924244968693577719813168051607524269367648300666669350062014907329697195639868890234621888233562983535525516367037431303065285462407531155092982555369617266039608762522218512531951211512093575254773258971344178328906955509101602685900716192859531068714334055759144834169151420177068628957140837190644119239740344339219595359469717305027859121274541820911351396994687798565834719204112261254797753110442044372044548688867225692358075207664947250501635426587880344163226665783596531889269233257688708417905118327340206563228390983969975447232365432231366034284506887605962903014426429098377136818639318361901198109474347502563203719917784033699009990807740208724517778121507493339970930733672233860464956872326236008682454528552621673437396667809691870007699697850058284225895696966092296671725682588622101630538093499910214797289682734791696594878077673813892209773703271270112762396890619005811525557591757262945107989707125753259939660550508814671340826256831015895079641315232844067854970604531128571983666972156100162864427711194362410367372213245122271487083312585976237450867972010235509521214411634573793059380490148078140465712707292143080134138427735950806230680971143230699309464478194048113851565087503429031867833120403442637066633277529605722620758108121034843290978466208059141826886550493494341092470704330733615781860411788701881021295829644753201516058736590484293081300644672038389914016826636940436235608098496187996501496639824018459424858242271000169104495388821604282343993370238626109429034637112640807273139317713172476003257527587275375100855615935675612222273253952650529941933653205714474944317137759760250449096587707072273586951683232051895618685654118920139943507392289528611991150876576395298337880748757578646369870719217542061391254395604603492526936332015148522275022089486352380362381192617747993243285069312058982216304306648432230487738225188366128135115022784997370454439876676512354910869340836831896914447599768129327143208496273941550563860649146955446963874819533590276927208537780329566394295735206985085866941076730210400614257169376139470660330332315195614741926277710807729671988773019066373163056543632006682650499206423991032421710331945303977590996923100077635362595525939684205394508334785528331165252786455147855799959947021403484606414412467050782181446409065607646922334837596445269944336602605572067386518563035841795364681481030426908501408130821794437005626937867238919736064666700253608289157948838753668093792834518090721454739024075197069388171621850028292427036663720161808026511103836298921094038806283684209380890041773657054016348125327848507192137125446586453876539280974170720402904183230894564959859285371566245606164196033163312248117879653577666611289529162504988721651360019291651010922884996998539574726590224596439215693782709591290101238456188521582668410849702791549516831458487108761905908959622123647929192322413165619245955706371921164934292114481146483598320070769439903282609426880670449735182291659313157402468745716145846100993717539888371853771698733681533382875918162220854478642966081432310048248406009729326032474274581412224492075739997243648820689640503253138493058216398990102795658767956861415635598468583851971330644111074473882050019518854080208358607754598285356280935174503658710678819024411699220268406357050844968810785403439616527164061296132779510737794981570158027996554005320279409643055274346649296430237225640373934062441742623451523711501405449741430871364549360181844183394407994553794561240595892189419194464564666289709485817049640749628307589034461106311834918088012681589466885806241248031727958025307457872106355937062618260369605250618081087454868494849731311657806063313947128310863664951609403200145741340414741922524781145067659123328443204068244530267908407653574984814635583353772656144510676660524794164066851180643665769492648543957604167871424577583755816889725919988626546573198424084433101834915356443646368058000067117562982492584963268517479058027877598196480498795765396619971057256911524048257014471064472344115943276405930701664687198745021717519447904821028881462508111881291569865235811254987472562373640825637983558436102086207404155966094004702008858163154115927204009427105307815677160052597468513485015154401905009174141113774562650195292120586933472358115159445335759897965148904889174614080488321299959787270248634782151739455286398281116705330824356110643431551074125315924502229267874816893584222203258115281587475091118530198875176759080012500427177278359768570947450250163310617034577457864504729592303156035821799444622978543399404680608442020478938905811553192256331902848990288889057580222409424681779756800703267759013960614358751075354273078481908583777875756622373436160591400232437081239371333931296566788865365004637156393232247250977908471834695220603767431671899500907006268860653622913727611739173508256618521497157023228825290081729454249680878821339822116093921213515410764726232670791774533416021028841026321761570368315635735827837300976473535803302764818611324932067638836192369167135197633899340131604049721840788107457167262629269393756735177979478053858051523793968092392766596836055712379460917290436115675854265470093461606846323387556473402334626782576310185624825009752529343463223042162254650829460958812448228650205336942653779674616699948496251966868615402263396684748955507212323965402581510500220518684887726830626216376625727568914929421218628739360935340953490365004310718662080511310172766697460750953808406387733997634390472402430241086909163066387491989626546310207483181499188950728961417709685704558239640336426002641594834912735218976450742118170788990101965741709187535114374443067745067686084429540763331263639627925257264643847505825507484437094554884745650021716160483131420567208509913499273311165169902331264181039133730677791108358094317067152415892078689966607400589033908251777533336345367168720292313864049985156333797931400619852781766391128958840952102253631892030557691774756691968603785374866650927402676395193762461078975637973632004375275897580497972807450985502087863774924915291134636920166435534194039364184465700388058408136753819150361370854803048370626578923952354667207714687379863930122889967169661322857395640785601991170002909550263951563696622538395294765216132557773183753664253256846061201541951483624597768954492184532248632187286600191321039604629145877348405744655037775051147755010010607167075518452310370615595302730762861337270157710001884869325785869114564104674978613204683971985253548148664503320555997410447226912718124776922100894283351389841708355008858044555864024024724418313128493744099995471966112279590671136012896929760945843034107341256515309298666469127109951820166148018403893093265044780530401385197176356179282965229845174022388192055113564966651488156678972009011296980127048595972723425101967724761828401255219598174230421419797753352453451024297962561361773450709278980141990718131254232736384544941277165584908110150902093855600318184578084777940719497881508295785653109947442474670854435330387309000600966266205064293812622470326561917692210789528855939657778711871366541879396436684116586624703433942624679276014157190187629853080526719007678990883942306443912611242204807565842437776471837744082451567344173559393721926804530561146143389166754183305055226767546955804530743378060856333473182019932013457255322007319069344375062404978206556982869051281019020056750349695670606009106218993666499956262176096127384521763805401065320464506166983007123212860996628867845514550223765088314961530597984763521944253617891190938339108546233749098184121766515950106161974906820147003858029791830972979319212380760063673382249309880396758380108097579865476183655108803838180041226744692061964722271007682962051791888137452825708266028817554373241844584538210861073920627403358519580591327467438932629766859300123943357273893050263989329385753408323434184740788114468481061202288808499678035635476970155467478868073394892487624285848641109776840433339153220963521550579880530759640076463908555975107263407716005282030584509179776292856467505092173018372813529782443842032691150175438879164089131738989217244249014414984836643884030831597511934591181982968390000556717319487807252752763662757191075048535228626912741301683191761491875209491103436045230260744883478685952326335486610489995313662675708659269639416425576624391933894404520020805139321765867854652030827851802250788945033507352672189382718769480023842733697805026615598302286651311434743393754719897148619275535988340503419731749570390114378275839412873430021080243933549500981109830907086943499566083708246582335266614488420319249995729969176398013633515777622781399182119285002508387184718472366268185222663986113258001364035505424413153279624066812193898874427242800138275896951082001418939762962007001955219803215915102929374389478041761023739002040415674187709042403688707074635964565216155672066839349443429173249815426645768607575478476986487036304245578759991592632028338666284354308869587720720717550230204383421969523865267927717818530050208085698940170257716922275617072493047099278518816046523425573873721375961488761405954087514175693121027449783239652081796213360262573028056832867437866664962654393962298999976447975048567933020185783002800575239657776082655374527268414595791857547084445734849631798000241334399140486816736556912105681791605387413543190005412428803095620879953212778054753090073107698224965785764220181979217101352186240079042266279039513547183944441911885823265742128167178060509341464875056659780402627388544291120837593452642847218307600453946630134006696917933877679282251715384958634566666450614281088318604641915398072916943401883906855510083750787741748468831100525711855153836332927879918700734169995558019273118491792027162501489154522575095638298139492271184117145923562465128546468026162824164454183943932624036014724128388652710279148227538626811372777730957089352483593623498094111456304021941184526294090765528355758008199414646777108016409082723193623740113823467019604061071959411318000528536037029858637843224869275262046490734893998765303809904369074584085147822853717116679816257181179376725512281158747104701427732467166240852203292558108429501383701310178086909253142384541730811049418268237697935263003650301493943266596570328999163630599705414506817889431988317854953009553734442340561485698384925200144096089506804498513388461129992173754216222278583551088671584168135653248707493126897601143203768336740116481183079176909160786664554247359422932393634041258141685086204157451331423653408340468501672085433375329709265116163784299105849381103002826470738425508743985768363700569730051876811656580918360251181648705793974601288339975932349678230706747718306229845176575445728898868724706962638905915658720836904504150319072994560382497982828347106578994576059603657690399252720264308125621321232409797631410069537617913814045054079555983789615294382247951066866509491570481925628273546402722277205404600220756526564970361871936500049511484584186247437914321618621297650120746970970917178281977582545684420127840259696800249361311065278065172840802289668730251417333135511805373688483559181367902659546190059088495426156915049471066181043037356943298810760699044917175058222808160622196489840873714585717548801270124000431424031058789329093407777618424138858210659340662695862256490572675581113066490667643435397422270745558296126381952646070053055260307201039144070372193379370492772694969071641406543943112332120188655156597639085932299924205550658721960280942499591963781403108358120014442019656841391528885497962424606295643574479277549040025406323288909750047091108410022018452540287421707574321828054507818213560732961762770935630725007153333743110710370088384654233499431346949859848069743617315309075908725216526769855069011780271649537827952556306610106317259336205548545289247210929061824673037572405031800912579083829656200238705525393546172649624570591004710301421448262215457545548303040397649048568620241195020765087517826610708985487378672471762742828687535797721780056850323871391223189755891610720030951544747232647630079233797893025106112812200124346482829139273280685222430883930246709698740265893381227278511030630877905615580585409332046772342278531592065218321723316506341214150383190285272155343375961774165740919247641296773114817234714992103831062942641945151456768371788897917657183370647929219708406929963481251542952322981259203425079662544927850659085745839812583227665471951628322796088484062718483238194507085102544731976844030851754196424634703387279697542984344899020530449994723727922851423994049205963562105032337958253068448617528016114860558493323396415412823281062394287234199491863114490789206500288932598471191298360125239906904377250784320712855774295013011949137839565975298120808554071595456437195712087289691113316891622457561047758900410828265231024007293428749664666268967190797363487070935827090107446352203006647192366805205395581281187427899855970094265041024171845193519151522152569892665045605029267129095489513300262732445584909872674523855161691394762190243462660779055471439215665085864399260387663122588148832474765865729373392328803917522726811123814214154057170964345410330460041893641318557501894334277921347996680618716544803411016265387086981255201744449317489832911707034223505231644759443037258994809124996417811297352648764349101599149206384566777067569812761750700330816843993129763588529624778939145725839154957002990273189980845097369866959526242801464989469704926094464593926974873514444657553272780760215786765175217772867666432627848506956991130687096605175617116396727294396840577268759688820607918838129223968042096564179815727729743682852875780972980523710483409449367451451256189910723548488931750734307119169820686495287494038004954251099777765273592204865206325116604568805471405514270453808183174949112306580886789096200909221670565139478413817330466806174898348980879493164794027190856845119326407253123271162514652880843897512771274917200038808852271863613238244909153184050093824834098473473768740703337474452797156668365932085833427481276118869148183480760483983392938088280211860284323836950330873929854363490828036130201557880743628195997636243497425665533565370543374873250983500463714870684999033227538024831728962025992134707364409381884369401089444319781240011709657090070892978142417817991023928988414333772166690201177271190308213818455443913506098738721634559436878182642900271724571160482340152097955041309971985976493495418363313304249384860776405265976079654943251796392231799053780646014568764516709526914976654163153780203554056393128111868266661523370045763724037742449632280331054500752573806326172192510021719190983383643897281470130180145936013875389668821094159183001288603285257523318312936419768542297501011996650361911822035666541844326442652666150265081825443951255284792079120012592496393940592711467446432180892445854324085784145750860802388866279647294039276642803764141668200505293081654926215872932199227652163603559635788255721457947270653839295005574892646123764072422050193810509868512301965732959340581979454675573536691271849070180602768944241274260283809497624410620998702163439133596305245164280453911403778128192213318195582431589083821546271052434602932611469258695139359216135005583279920116559944272690080523751139912628344575222367242219131205250855275489332299832105716013301994750529422719788106562250294100826600487910367174761899469227414332141982846537494032748161286817612547780804453787459770852011392101945866044243258113681328067306164779001557781598546265355524522956042912828420306847007656400391112113708107875370847994660856504403464411699915775082818900733270187310699863253796288414964233726803264141848933447808622446076859147069714962957267820970250942977785751937514505180618999201691751604884524364206593644973364287333411232985974899112134682128374237581953476084536214336716677466921736021761507151925032080542844562263066495751192045248968833471884246766132806693456826773299295531502412059494686676763486486072203473773801845216739052917538647206217612997118101011181829041360989731000677501725182803926533321619883668008550033032767412473048682085847752098938812536514781927070291904704750977499385974914186738544282220471538481021815346865272482629263394695574507503791879323978273304670931170036666005905870555985939431729547394364943502166029886548513096125742072933582650241803793728276799225865002888991695149673459524379164303417159567209261066462923152180077715262303857442347079725272218161079560492804355211348353117382611761136464218407919899929389559144305374837361661182205479928735095709853774806277384479159215799438280942870343572233598684279397463199467621427135395890374960786754950613667811671746792426198652169440602096512944998624341439269783167697823567695905425659624682579206536383543068596374789323710678976258289030216527602802760781765420315036852240803005162456031047359677106466612226264832083652822953958562028651417247044802418918594996039929514571753603143372632215143587826554018731385145914042822066485078061041636429732485733414403332164659486528133235085719945490766903242331613019583215274724664481872036969916988940937360312239402235331429676283632758743719107904337656607653188429209620878142661326753977284597398891592514396146131771630656113554298081055450277323938338971256931406636033542125476089496983759056081122330389927199218237364277769757681786379825470422468283864803868609615007234136987402747722417692894846368596167256618398616351059168591376903200925124083936554723832341858348667145727201608797077924645266202704106657642411212079220566193404338944337474235604628122097317938425222336223885840395368154223557960656621337109658085830660986732436732709449262722908432200532637829245180977545567716602581130806355714336116783952745149967209324386262917005209894799094030672485389134894559198385359489192672085056651266850534752353669186597456538788019523420497265184910702956188116097445552983307534492155915113372308416528143433755401273224688844317544755283085636322849311768697642608152637965256379792518759276145995355993093650027301170015413324115300112920711994796930802024688822519551604528194235804949928096657654226742136329770475647977630798556329073386876204720871808968774318179704895069946451271458455950246531623042809044011830577247696666448324836725096324775789476030448974553217474152856001638586027221647689501097926310860448650290528391732354021449956688722053717515661555876614171827853531046116731440878858036309107782309358876130782724398668160156732018640412343721754811574542847035290881945091843126327598245753188385622983251664745641362884511613769671019912433718779981048740564018518207328110853735472534434884403915454123389921293623079839246346959025760206064037439115397440438650427130355656398156483954713253278977686491472821985688573104937323713515471973887673955157842095054567607279293572839185648750835515243910481864784793422309511893277570476063276640758972249962329456104598957049505966483383632536816897743680760383013224386733097233081986504732994972750422588882790154283320455385126050957666440946234727695382396046222207622755009655172017396836776268881456038015082339343566834557017332549717388427055481155062644964450349906154871509529176549981624991595615523855447881667479332610977337903622566568107283333127286087604447626334872892107142952809337079254539412932238709185219472858708733825358947156393003235350989553462257899169623402313462183290597432149151615966796141025151647101132443492859583434097298700449268321434310681816121686672439559743390948427432576991186565168114749832677948556293349012957344056276121399645373344074499622083339245421199358293541252602619998610305374701267596763185596035858080551737102954056379750707098828665851898652383205741257685002460621906390730389970973115493314387983877718536343914903373361119939890533475790118814288704013196997182588449948460475056042726080184426663779668809721418496318413681161751046716532589288912922423257158735480148100033786366296865685319257411142588793811434427857795564343491291071079793589971766703354058431060329532255792022396884682277920565646090804149052514521391894538173693395140925780829839070560699886661531887644322359735489189530571752130188180100936121699576520915221279797173814483619470606960589240061459331754899025714389269457049410344822994000736800522236676348378347080998922128290431629317599105873086264685684152981954049750795784499150926225768118538065457933112431643890567189873810685195202866504696436974710678334741929575767128466774858317790769735452661225337683575599585550763279891422171837607403610244052489994817716151784014879124131514372389677861381908971230051265636129971158718446531615512291617352531801059955877472597845154125618459307566167159896562210135737065098601363991901276440251571372191335762713541480129225421443467734080444907228477787680855972507436239088783790564959761505401879357570482374970745317814600042787741844022604876776023206903093790002792058700303402603189552857149345235141044958710939128837562526817187326745052223873382319292050622438723653379097559344867689478687037565617528476532288292941136881081257385686439954264403932450853864326895831728058608720292961844585154645894271087793903078817784652038487671561346241689994409757238474245887385455680922576060809484270930195599866137983661828315249961760100732313031230241951634392560270465011098844502888227783207885663583182810005009398610783594617826307255267316516953378001951541342062712858300982250900487242780863045862339170280701380839610057499908906979508399048756762388835380049584311415625117725858369252476308512198848789286645567039018107150760403702891396814900745347472075706412065840372032147622225497989381164312463628762949361348105533903530288491421146304151717927636717915936460725064495835109477688250118833777670366493183313739896193619960034791252089042606951706126657414488885490407605540119727495465920404702835272420469032726964692263437812767612616933421275014253804455594866610968571141054987061409515537341935383549647816765616752421798938674670633525435810466970029604145585463923299311568686371118778583202437913315768297511897323895856400599291029929311986592725077983631307094736514252463913513566222822078162266465118926670311287816980026140709893538997589888185119937144410995326333154868503060001600047515381660298634508993946923355316423163866872953813584611377431701972079173025235452389647854720222445517099969265502064869815708924617696708408624958441649617207149298754680031754036863187358193486858487947748052036453906051947842006867601060595016201075233736514118019431244795606547657026866431469280362629821903173601930235694368078470753205226152111485253052936175525010927461560984593281045292204770998404011600198688869112695934785001674727176374699352988259018531520804051795680249232753347167106222245458542078543697399832567291093916213394699052694119822149427662871499523744080271745048337140122657569803780094053379389812826579607487171153383783471711816923650919505004614016888867426186191377809842725786385621337774441229337911133136896415019759097475969162860838652804897055666606677221718481025344469782059560799614798022694053269255594711080924679951241191682059066624038404200895648340088344742091871570584481381370828540277532546652789957059161409224278964860197309841818974738397732036333445248091603763964776094119946478672001999479397814482221583215022827677256841176484291356341009604108374692813776690537982543437196332017240591886037136854046790635378223518053617541024026094886277905490890889888374763972315749654298072913527752251348247051696152195151104070224128565683342613898488597002823468441044660186269225686719014490932542877282344022559946933366888720138572703382285573025838911813369791240971977567626862926094238727007698440432892676822590260452475878933848420870405644057945231573289233959271490431482230315986559729943047671521258119591471776313878927715509076829064740549708620326474437891917074594449401904908108083707616969121503549272299127093755459525645401851549394485020974222219063616203411169228381388876066993151876424079415666184435598335508007442092706722157900386266813436812138018195844470568158167777080886169814630995135383320829725317438939399666319706277841291984512370289026890466886339104930874998929484751628887284176192739097265900171507711538142375047463348595103605796818541919161948149492547946585880216792886507330157416257331827705751365259267539189474418032671359802840171833651197537322306039191578727028037933357674763032791198965404950117558871824152002740766629888747794400648663483736258626115884728067904515750104729666668012994289631700550056957226511110731614494565767804354703363532222784661785926712005362359234512264011304051563122341667918026309017755193822703150504498565130483361851887624790089327146349588335314198569918482676372826002450896608790399416710972542137869824991270130259214264581647127317965370727327828719983619075761056420281483153449142064362207474355881271098023154991963174313236363085029503768854097796521039272395789581730857494831935478566921599061728473528236687410154855709297081239216136800983103680518686821800597732678597647625165316247913665231004558368931008380941933235706171152207496627501223002962466595016356459445841595805009811285425317153902100561746803156260134129842553036324988769651476119164801403763599752814058672124829131790986034910258189631747896798331301818302621916365193455843520781725909254409560954947170443088169056295997949118536552672408904102208478874174567837908125367321507517728401253198602521883946738174282259215263297687724582510382479711642031428311553889297124926127942779270635064595872131730781956977157434512902716863325120891025780702091931102967260790544284460243957768292066098762521692695015872547591992476393330528514831505871579938733548568075923701684082241957497216701125112203383797148387821035050265634076646766195085297070671181796225614286185184488889945894437118358322348664954794755654890686973711486351726989257631012544364875697961980058822440613944413286388717634796697416803607310023895721435184706307804212793770239934035661195413448218190755149188607209811020238715164483403429226490284747407275052270667441321572792790711378076183954304221826313052489794454756861788756936291186092707293721565331155175229891303735494863456535188921181713256152487901501943239797749955118194293783986870810279066596947180149603581438320903426838909080734038605286604512399837686972434548661391856123919232750329568536327617291842659789161173399747192747308077995975256942050035047072854426107018888882467003296816476238971338365624874052676973560751249925063487932111628106566196924684203086078895579581412841177398065807123760500279977613324344438783649275324598772872775177973649769922859986615437162746528246402345943155172183129228954880129356622437922499239027822068037551770513424721565248929334377362559786805233791831954042310440536655789152939840537105798294345179446425867035506876622769697697572695084435351606062371639669307456075915793441702766971244745917145565200403443117106523030269756215596948312099250453445845814628951675303204481653058682664353863350920124686316925724545978972374460795146320171506532684121972961671854754095750677947384427213691230719635966194702235422560122370475464486437902706807488138566970373451971850617976962504101001706471476729496409572952775837601753451205821684300479278521409417255235778937927170280360993472141228296278711397770346681069042316294533689521198135793391723384742601196582581387158997024303881543534309592848856833525329589466213672385100054960129136060219355508978512648391878604452159457714796981808696618036033308067003670911868846145546577068577504701838798138268173027631083958844224293501507926421492087665867020764235683050030787640203907754631605860276519836613013161924394127672832645189301233271649098863024794859566825015147060434464631073610471223546507660298562433888535933907874644400678987275774873024508274381770214864891874090254727619476528569849551242864540734907586194094315157715620655514840965989063015805197100882150727130991473231467664056820037599525340074322472385512208159484917561036780637671132199501267054991074287617015350263572301247741965695760322656724355339829654058294035257132884862971839179467110786073586759532391502769248648993339942404125861947064927705873699958758691209525536922998240593254462116449082074286514935081181024966373833438161071938528705771947279828266888260156214062254370727644753416561663844582703196140534815600977159380400322178066984714432029128444860448441934354456247908638648420652296171727729268603095664480465057855757162430492873954926103047171723616917053936722183166142737688895243597753409221572505886566085745286209849348878067680765392455463306950420361187935976656696322883636423039803098849909609568093304462722707760061759989332792798545796162874126760210353400304180327350962165131910329210156538130395107464365619044635857217094967475213694787544247108853514668378771145596419251160846838174899587201147131165747959724161133386278659186107869166705428672821037491771975992277093607455157892516944631958190926869711488299089942754748634039321640053592509643147089111255943221180778917184829081999827733397316568056687580694445121539205176052103790689735282418823963933595148809409999586172430284206045380579697194299024451199779911558097428999770996603864661938750764925005444581651118788191665655327222229668356561496805929275918200303395404587593549901407116454513514491650824653082797957479712126139571443023453904842044724318167499090062891016254573960258832854873764042686461356630033712890455845852809498253988093404339629012374129070426396132176129003099651193408015793504408386579154856887649156465018264395903411016554688970732686115241638118092580406131786478024408926123550822676658958508091930728029924836404547778981306128912892601039763999825593144408301752919597672779776859120692524790713650232908978294333925962045891786382406340047143867217732387864323476271604879746198970947727189781920581045314907175140075692942035279170679898118643700135933977128552324631888779826125612331613202810817794301457922638308951973936911958577186261208262424406450914456956035440523971533898296611998007326891539647052347035124045241563641468156796916205660953730671224048201929499189171329836737118972906030134744305196412500302281045531139079723051885673113016754137107452523982688575009238500562976709891478181810642774281560652409227891696630990386296269730674749812401830865897750758412786458761362109376090776098787233835709032538920859577221285115985386745500790276926682915541534735765252566465042819842532870532958010850530129283223487257509490770591892828015495410999221235835340580009951925033684355976674581236105225923259873854000202345530987080685349376620604894882953581255093037876626050567948738173071723057687511749308916566723521468105742815426801961356582552611905894702430896778831506719966231849036632124852517994334941902290385722078745405400421104034343853690895498114809615212655910335732551152965436662030776015199188384153326639254516711433710385875117209500840736750459485751618599897577393763910158911158911938199890306824975164532078536727939522403825096110500155499741636197301240034548556234231473504048805523099359368070480440175917890401290984247413032658016950748285881452122434171773861643923776390553669414734547393707784371557713764869409646187012705695304303419522493883248885630198517470260637183245088732358962534305564557280488313436172950552340796497722330198522522467883236765837825140550838970883866335864172703003527016851806801165171309341676300295714619166521622102421704869991494060980672829589196052458252509029399703622402664182837940629707123888496065955083090717853068488744064326102049713550204157173578442040162303552208067274383562890429992355445778344820430106231836741896417169265833431692357560173632582716348717367671865907320541055264666426557874549497373477776993596018477117767350006734666264350431850453637279431156993144042544686168679951277848227226360569345764898537486743755863369357010443166972134885264891707427873844076341687118719297563493886782129131648425014377397590809146624078535769503194461493565433724550178454847656674139271955020259031876035807167209216597871711065490953899930685207219372299903967776128916522183680020859294653530034491130138626982173791902236313057204595649000655651022421757005069015826877398551724310913016380637251813626408567719428645384816636094726222057852282142575232290987022383543287907035508482511018116647980010076447129869192325948048776482202581334526317180045402714626264209659027011522991343533754553208199250789748110802860316246861258586076640690062498968248491876302541440328258819084513725942928471027761549213639521222748290225327101928618763231181443546198242471278236480997745998114544890342142856963905834208340869521717822744828644754630923917506075361771002748078353579411743665919907993576246309668054481966102432148847039635654298664861955543142642416385957979434853606945881213255231974672178855036466846284432879889044256711777754387552099311808016433992045525008200912811179620499921673273339341175748027856933656477025285796743665779429971834466643176697613788349499295831186659917212600748001127346595008755738612793395575021867617877848663571122968877656464978124643117584079193954001930709148554937092328591520108382975941691071413838729048050386093531749513077438695008944373109198669671693392247101509740815694395519819907717914163373442842587210430871203102938782896590355039820587223081004723102978794811325158045143811203227275047874905551401699242867866311223656337905671208586760646890557016657232635646627809631692915025078962856788807890003591721245098946021246547104416769217978068849626879478434004610609684189336858454428873823535995672811001117308684327479817616420161560470765514023348164810657213492810320021591938570785139480424344477590927043336085405826941769463058084874212947805109958433088677114058686118476328023951900889961428783184194395404264059109283031708004427220743768265147034237503038279129913116076429372618755667712357590538228409202821482651921741557205108992619302931855001454346736163270809126281668477257296860562884384408903918700416485276083869193795476693549424214117404378349395050460376185155275328009435373435524734834156147650302266603543524453739427895550533695812649595038060052395024335791827744117225205187509347988334233312530365758105414121495390156385322749856450020071152350703654637995889140095191581528607513338759567397616750227545209150726066364246308548768822033882103535272615631377166162569577908652905860973857605160771001983164510459826226011840679702873507265082569779106916272259694806606299769519460739801132732732705134456259912642492972722918777314122234613361230683569604639513784448851859646177903805748054041481931428851613674024774988054929892204004766229086597193989664917545289324580492669228570460679305441958496666083063423869057634671394140094252906561240273470961613188815800450048411153970721342510530982270821611466254689221059389189634640670202243507258693990977675683835011454691542827299511867508163399573902446369201748147287370469835815711416187773580401540753335059926815559622762748312105004438938364055642695810646567554480835592034625451207761917054344573045368642651925646665102677537402437523485945326904194103204210053088264325871998159558214186931624576286356314031183194350277648729132535850736531725684106575815323675445913199827858290964001965404667128310403134505210294080114088766898523608374193633281328599234914738093412503858481659951487641885043579179290158544122222796882688246902184547475830938969015807602613917835677530722413082052968333675219029983393233962059555241196545475491563658417841530465942084874236224083750618720488898172910684288835896218011894414449740182438662537151603896891666613980753887659470139320439327888192907402100462145775568921162715449965314575429808685040409289972659608937551801100365403672994489927282545589110439748343133953517014091722025947676124505973624313902935961624396556429820285012501181514227333612135977200404810085582620952003111293683243357762135526104208802514211416296025840642566481899670075807973241749451149306490643798252583109151282450343285928286345371569329182519002742435693335661188492269728418815919655469050895124389363034145877742549845671202119915329596176159645730631825139120576693357350920461459627852811602539487464797166993001312973106484688183445768844125480600383885163095814545035713903559691078546529868826505386378088213725391682866443665717447312408701190598234924388760745314432649306850281193208684065860197469021397580023635964198442057327155758484603250689232147541915528507072098398558767640959139063967933130216952810731854853936564954010510242563674839640168303556789662858444967300354216317003905454897394393304199307316949327894960051967254055401663676733901926324488671749405887426490420799332585616648976344935873587674912847832244497894953344680067839372872848431650994462320941379059412638918147354035434682268756137737899688029469450839978365441524005287071888758474759313385784709932915367586218924794349782511058169405423361549303474122723284598610094604684334551740961144370409326326621320062472224618021354276031396374486877323324042336048337270303946586983982147518409611181415603629680684783458450970990087264111897354649876436844133903517975086960551152404274948725941300922615096681823784972663965783170528896186613286999759139460390295914400084940933123321912458262710258125512882197804931249795246226051288908214449189101738569866519094080648626184517562254696116530724573655303436300917989260774176408998483250141296259401557467114398033380963811106163692365360817553267148420187442017482682605945495993316491546440767754613604193164753853784457736584371873801141774615217350813064644802627085117863963324099853316407826851539340896323826753278587900615727342982612045824624842859928058825352235015470636043329058146575318110037651674123703729954903903765502365467471101315285036672354269831695349039810780097106558770830892486989946831696520967609776858836472515462064002765007277698500060169974508433478269648805576612955244301172868122805233657484671666777346967280791728944648206639082707385697180191194505315433379665181667292628533698389726172710131671917647498775458186585768239016176735969808609996195372018612733155462490823669434599449201922703270420870910328099425675785055781443940331502911148758532188938239071278327094797585607554585392379853467956070898222161972514414010908736896397735603132721914470677587604184039855441087072699665176023556939454903188171645351603535960184369123238115195919300980725169192468449377323254812479946907786653079182936577250732493143763026884370386699423149805782297629482002684761641749933127219264233198669264352823398048518251922106265768607461681606634825314816669067002237210980770424011802179682678720602361130442802114418265133311171606027578262811523246424551441786203896598676992925082698290570283675548018051398809920106763293469357807594979233006239100947362384316308408377832694045743579463551955579509452514189742361135855677930801784621052710196908647365677632825743268732741311726716728932804466461406327647830345150416247202668798791514713648275422235530691275922587200147224831898270960113254075027212686342637451527642803348860874193126136769804881845751637763359892340480889357031946114769954212560317367863747995914995888537497377508467519115428163270840442301350053518269657834584390366613473583038932367569105283581408375950182194444657341576149220389849277859539983050256955711679320043086153565233191949598919152489390411082320680201717631746534787990149354490844643448048369225019149109553775944708692808144367093154702928286946137213648436121025035678874823545035334631019702490405795744119900043192333333029006959147455423631122562599564998420014087271553178610440409976248895264808794273923406191590199229968575007984382490570073645976075772855797012942668074149512684674131783332411228301178757515738139508723953786487596685759892517325979844124712718886977328664213399620452288392446249506393515219958952453707985986948835351778597595463701042388206241198239461209142337121880360742201563821696122243304364023533005547960049319478296818705617477015612193738648761191302796549015299557364318174610379950904659075057327559480360396679523954027722179498590403993260302152621354194565465071971391480659369973789368566542169897279583433546819229250691497837543125952990963001868024306043795289514940739700565437351659712928423185029746881141620663359915907787148079741864230407325987338561564008426992323731523161474475291652566142682921042143954244304607337772300815238515281545149096894795861979908235406105402167970324185240254949313858621723880870516826133592941674917843603216531274573726657644835296883144427979722962959429368293023751404938151208353343316809341304190611990314701646364624672032795527999872920244089000641501357785398292386381555704280653457765271657062698386812597701489894206575742793727569994379230797098974699831847791524050372962762473423106647443216594688099260500465188251620483704900124273107727577471747812841075430763927536055272504037203943496398703733380850986803452978031305810423189440788841544700682698979645079954825751551393614889801034124834447409877296220159618630918695488770612920717185663574041972701385790766414507248774989134695557212153299989949454079428662281828784233040712950731637662907328227859953623597125659793088819403034528235567503716581052210613812862130801053328144509816143193214435332313908897164215111243226870914539334134147381142716777038346024683732107496929101533534456963665574108512131716716418835053725661946460587005549923591637549779577770487199017203388044811097501012716605787714915517371584694818119489532012604223272007574699607858722972881862015701353481745676030445038982528454949415374851098113923991578156364874386781455370466155028651565164048377148903397354579115690294575336643951340002462873114498609357822133954331562356594052959994018377705973491769978712184294040336831112138842923744290417442602725279900749157726862673507759397027377175776153618327580090108432830103004126142402082961607100046045430511260160052425378101195668596247641573076204504038888183850372964640719963398980326579664185189563216771955681128186035197850156118330340678296772913880416855937869200013371624113917975063727504403156416647116617193127407519118382957561209426340111184800428946237931345094932387330068425447915802306007042815352983480205129022059680548978355243146657031920208884936812180062028007501444096085421474246730427608207172545604500184108813957381313186618442151861035143685688514245797161349393631337911796104582243576713132371331318902667367156401133683920923254340345408241696911978692451113515404783064064848455869183104780194954363089162628003333912038474873418012654321046972925014295629361544302967660462343220150413623554406352739382550057607755734777218958435526529546603305043112756766333408479728255024720318615264527502672036652685428053229143148904505955343740941049460091995330736906636493691184205441253858393056511495624233887734726564778896805559100785095727472401856749519015548685446059511861419185036635674197760191363212567282326313835709453697593927116057771623299141497686222311905318357219271886518960142933673321362521243323287885490040589893028521036528294097104086340150281302728178474411346635706573401530973075262661446644901782747841227514835332546440993489028036867313121858699254962098914241650328125796153140094337141801645864427717943228714608966866922496767008003206633341350504029566402632514539793832475533031134224538251349779384505085298184157377590749543688183017810430849481956247979854276835852579827298730509784177008078648321063062511696856154275507221461656710315830170843945239660142645940657647893800154979061363123948915718126206560060383188186760663310547519153318733872679579461881580626275275659317682504913812485563806368320218728029509239713562332271123611857151189882385427074930115121345617229755480816796077115619003313152235177712307969753219891809045341172784381355949927842382877435633041102240927138353029379023903308398835331841686924310309447163664640366229172809123872391844970340074268695081075898529816299770577390346052961471634365934978127153651606768877311508669078795237305425069940676725454945770524452321327461745586275850379885218469847416355407767234642177918366678727664204744006514616625694920173620882942383953453639250349762579486538863930682416497108646212849528132311265494105566536664408333664283231424900535909562196784808529611524075301192423871265817989636737340738814614315948233959508385773134509845834201007311089622378094150389217070236274819392419833564800171173087712564387042280486194679847507984898444348924970368701894078453745779144690333393185600220418185326427901285559960666762863962139447681139291828235345851601950294217131322484004527906655117582188777944533434891146836845843888726386390840917099260190624762913067947322719775994629343430772073728914346121537383885391932926891140718544781222403808538318769704799061742246582841233726479528143937462186339106188584110388332787980390087277422915300188020867805241702562376274492846805342855149666193083262871201751570642960605972996577279091696195003903715764094702685029811291778295924608222168922236235356368873651885831068832221811493362327615551754142707466009662162268309845934661251216437435004291363224167538074797571531177122832302011736048961081065998249636650290380253808582833358176169358215295411496022914776970253591869912733820938327725056207357640854062131079880705516894359086447459257254177082858403942658489542943732159455133842417241118081090322403762991774229528815860119196961519436978767634858072121118637816577405603171267768768047272586713219375309220802613815945497988323316061150941034672895235634663264289575352220154412575664266196100482598913860737865675426281213480444498119866428078998013655950362339169362884990943259648544928678981334396436046296515848305821582621379264876468184603854416186102513797814420479858238917566071234815823121909134989539677948082809048552956337185627342056034507884775224601122264217583288674179978942219829032043945624094592491475744398991671762900724245919171932949683624093950372054420159233211662081046345517591846288067709570130879424002269135136581671267496120777228896795831237689186103421474694441796311056966107795158498132050753908843892688528262843110368862122646955915124316537435063453635636709690886500579863138878372859620825883372693977052296784167057878655560909212372410058781362742554067464755162279789024486908435809950728437434054776016974665054854523608187337460423563922346482186693997042174348372970449031229983355403832478818953822890672440347121426883772242171921984969564094236979004650982602192849312665715053620159658068217572126324578759623235438223484765435752078014716136275013851074651722642029649788838389535490703401048386022873913865014055004346616634887514981446842509526295366370647621488316432354231857785796297087766615501632683441042679377950354183500323706930444477658736809458672481080813602919683503357742779512688113228784853792049313846097596348068890096427565463300073055608343009849005142402342626243071694218239947829230246657442605192742395975752669116647775718286149721044355268913800721200496927357240927904516791818344396978469978180578226694346922850491956128561129394487821338937685819260710214094602420054973668477137441672576916042223198334987896683462292122163917209856734214485667803112266387164252975883516405796136718262541381802473398856519604877483734967045266597508236935794871332527609041197121248163444933329467272472121481113388342323962183133895128898359733028218159850388159096307401336295845099593992374675409529193708863264882386081725261503947526999143768320727824293840981576299514259957246535683210179439124171502005245582262867364632812602070426594390890312522024268161625016720599414089941688920370009373689433169127621586333300033712705823956813511894959867163807505412515981584700295213368898989342025465127517232957419736372918293703990026475741685343744852706768298621344870013192090779970365492303553401674923838072171916032056653422382311353725303940988746575072891739598825342284794419754027872675193378844264356255631430035699490026321110865832909605528083338054993780924748350693324985042926446453651493618591294930689478720050537013505005342246101682371664026931326018930355195669651341725703630452441165091576553849781036767756080550354162101876749125297667383159235411695363431411461958976697351004948037815958740857392065540400385898263830666707304114033705432624663231124901444410914410748180779221014749880343402903372898310459813930352903128018426450806715141693724316675860603923334209331033767276420609090767359543040348901288049800226465031702664606143462791852070145870184328460303452747559774159505983745859647220234423945096134206230711343327903378271920431137178335109342011961156547194860401291227000121734729844531873223099247912910018950249545320942588093656269238427781191146029070294521558266218762681150418615978097570726915617486046056003674387879835396837483529029314351439825178532192435532140107003815807547812951008816705913465560720345993846766928879691252267662845690008037121332430454702670328630933286703931247197142084408936135991910834631537125149374468010185104568329162263893782096016636536206797829990430451864225462221057553199513493148334494646112752901942937603896845035420519547889297992597527406001140415005283393816244983492161390353025026620592684488032890004326180844739725564945768732841661600197560973195332383582505322930974847394359385055956873426460200116105962251085704246903128046548541750313330950903810556976013870727907592402713794900014742220013588398238979811138934877258554403909223332206244718355851247706775237089625670087959301902998927768043736835740082267481289626449259818600291096693012902196780701015709353603096667278679262484791390541835498340852669740814161856524875678892413644603708777817822602696332202306609787915455307703509087980352033291531485346885840790170925309656609517363277783370281440357073741845904222750950674147089609002917557898364217194975752633257959799912338561536342403487499266026193343298514888118848294986039202652808154964697509534606736451823415472746234437123207799581877712072559443981987765869324396895873765365051857074424684535059027061906485345507228688668325393458546124324990925128490019495185340919052571839454311312759421839459793554067598745370954884942372296436009718376296865266351068494811132259397471102245582683282647285067227226847188715717015796823422112555862141104031511203093515256031009473967579696429015036130683715888304003923859301737403805757466103615037160414205537698946101769930702466271136827669573606824925968243096005850972641872305562675481477376373154095927542503868934073915280862476401645725483169498440877835226713088083450891720447114668317967662983586585843805217651727211698846368065687289134057846646622363104668444419863149337144268228364482362642834577861821101980486877011278088726185846418159408434559283040922328441604897663040648882266123911143817182945993514970049688510132285228281499367035565695398625764463572880333496907885350500912859044729694365303553999415645078872011066764870977459149973215524060678856505462771146053252855746026179857355520426394202260384801656847693100601475280512025494761655762543247718874498969143209482048104316856696706936006312964215116524671985013542415030756782940181985529040190340538545019487845754866892451099621432594764201471311516931215931817657369301881069706476237286828927382569318356384733345491405805432595135811682489572734536516089862832252766613684311185949440143520220556088512762743292320502314472595400748738679121785092353663145889405434528871265128072766525871900428743583810434695078859443346476321042428394197130501258255907963265389300803785669754035546948217474780680482852554729628852089241687040570398244318489519688542985535937506883098583749064750997836485164757837746930697744339237964280355398555813405588411731358989752531005613862799463869156233636334469332103652159583050879102975118897402406978975822809491142922941573360578615059130986225476559258913881953480089173234784845142116098331271339750841389485281214770542466228575338715881243545099741411969348463119836678597381891651880153997864913113185202440030212174257171423116879643178397464191367839295896067990371783551054130829155021541574389851610983130945617717310479459131198418718553314440813422729811773090614853963940559795146658682643424151501797534373313218865472273529274004778792451586281862612831691745829197208075709166581130270290444835412640357305183968742392022091923497541436863137555383663111654039248775723410619816224705710820369827661346600353844647577754173192196664071553938689175652451521476884678422520367678646513478327034485694803179715225012988256997373262829585226487346798673114927227892201310208606776634862574568888553745587336007750504662318627443543336144359348283540492451113873900506198865211169914957562759739847376401857427460294641357045853238561342398341398366078369194238776439197938610336113400503464294995973935415938344310705845030385935549152269766895905110089178165378991228781553653053834627360559211110014200176502069716124418056781617367408131234523299826658712287050936506564210877865023846364744851190854689013191147413492893740215417272343639124512966056433073294394354018538153519166335815665197259307544468293235726421997440804143513124149800004247980306627542068795904314203604792359464562764448560490864885126741276389434483690503234398975953216954829334100258837191170035942930822577282163497865995834155678729398607136137430553781992449900113949370820203157640810672799824092576928996468858619903370503718878860587947798264742138505717446350473939966119931049878145075565426839943928936956444427705826595176972076672725009347723631828206105872123895602306137480105694079741201425660745683342574895776570018329266808516367292200914617410159066526991401735998185981352883231822461616963784425104623630701417478845270263901181529256187243444633641110960157305241502769805575237911329381896979687015644722727698566849867679811291668990145980169458818400285707456505886573712472225575362963461009814350552364568369731890557222125155218735277291241662394498890720487239306610779502996659421217469394151800559057278547680975403637247426656486317824582630626442578576737698894254746763164041732662635760329524331742044091989864716407139026597922722287866943044184011893153224013089418630098965566735201644507335586780542645909526123135674613938014143085801387565553146066685957726492949375803354650930366165204468133890020189964612284802912878904045455286475530076286946252857029540381140877668215353377072436612691254291776003056114442618383520819205593108614381489689860639318407641913655148561938506737636112206671039572046418412026535440242550416938905663542740260468110425593421387344015441563764752439123462216566727484741985539112126367166292924272105626507974692723195228185250688405876456587539049877700235471926384478910891433998897678457231819733071550232398273336017970860805558725768052787447072013322158993678335533640851762499511982946172091658782894776472712477270641423052839844099966843714514775332759960303459752285902043582631660519566616379471977775606806693678067783861805990852023780146889871720262299641945467750534671766842286426883909168172056022236894701875244593197631753277650478787567586535366698616159652223898026341103624203452133843371955652984294814986547263404801783194876064239875384830523778429348642291408772610392376852649500454814609879846469557464327746942601980957614414912101552695465154980468042817592462616848878307740772254076694859527883935059420461229988508965765732617057318679098492336349667050896579506098947787973790999238618348143082424848315632268941376177992240794790583686598475331468834626809272253781951177855354374087232092976221760552515878981787036634562035896320551028587486016097222279132012615425778801797000422385229488511725532880319012635606327835986739299423029850234041460343474020523341074648497186898852550638395271652921277110405411323414088217557932509578648653512135490707930853363439071648745093298797672163002782538340791149845052938288331288790379046492424108632607673101621611822335873215478808113681204450379155265027881494447308224663514331572716541342294080362663672822104241633404974136446482023851250841360546447937997664326857407392722843801126173470734565927612604714570848192582971333394179357739844498615955843850530991538918376911467287182853845246117240081064132563956933000326026188658466111242193219693721632206309435368614760471564686724907775148957752686571731273997478919260196931293321429785133700759099047276312355511250285049993870100705944252648267069007572742388059489731385430261642117565399280253474733370968609798517710139647889542002779455882017264715270697806745544681761810861484903073731315565056718427446038773758310193083262616805803186490467552888802623382187111090909893274432860246976206155482889779615546570561393209065259018532902935585683827466838853432870766201535832349647080443383663947166202299961707253780662393619686030521209783338145546739670790095432176847856485621141315593188099809670108171481948734841250033815331725364129710052371577054425177455567616865453428796809334589358174424340970922410235448454220061562388900780263854882746204301547078179402951150057160567771327007312708504700449542160365008699484547723767483647499161254887630505793781834200203955757622947938409365664587179248056647151221571349881785168048866858312100254012101415291420688609197033984967097934308983290039462569643067109313509490559265809398923555970042570437963069033742010749716098739965239041658773891673587928202349861464707208874597367388461256539810526314438251148134885950113480529426748451480220628541307572399952589850929167415688526395128364991235627126100633955896411766502141318535788308654268937677711888829260762351934149911863378151913902417247596210064507278651466252887035449323424984307837870732997266462226175785647506484702281610163814776322595216452283009102109841979316152203497577229113493421012177228686102103512848464886359099161755477360782363242152175577048351821918240291482021877170036216649502239697487347018454832920962128377865019212877929943375688175508769414938715811838914586035848945638152410573346565470683869658953337147201803973383340725079471975308645170834449762948247743333696234679681732624585311874703854093887697463093921520500565028179340390277584760213463917811460592885645482388880409926614240027017336375826575773153940319968859453250437840620586816837237016123415536640623850028684987467292306518762985218978217117166102448117715690185439844110009900844757216356718477679116384246554715106659362861799505316248383018819606154534068877587471942669313340279300501209928718779972805207986176896966335777725042690925878973142985337569454695613822028590514055021445799809049735777732277049908278015384100249949527972315660703855420679910661080841881966975297754368716384288801478164301065230870901974906250093038430163804301334995818619356685253415525112696626592265996233070307022633056841159572679397008205255817279381386616405845648735726369343498628905795822962124175166432978715390572580691243527229100506023879793379691115729897415347916283364935727075192980558384210884170624877730088545839741657093064193952852215360408559347946463736931270724929895046457161625258753965557048279269388867277607109789191334061173352245217006388698452537100635401528304825495937469468547821198060754464084314910023653455837114132604620532308880034619048109745818309572371630044869184430472737199691150290184852475878596155309122291828472761530062335040975191694511472745345411673316857151102769288125904163233582952542840115363201305044058356603919758578276103263173059930849545555088846907184063561767590576713636561131842622052059039953498259380332784596227863395913036232261855455511380661977689611037181005728304768140023306039788734362804243736743735850712250611592136701349433441790770931612545472886262873253410649815029843266554276179578142946966603113709180690080397773918560706395837126973686441955343363436889373420337140299638566666724092372866795534288913531616668732178599298128685995085349255106274191798983951415335262765816747687466417529421703918980497485904420392111885561710544305767625969454211044596090267709179665940248627966278152796511746926101063914439079232228558543744892258424162627955223184701412191651369996955075491737994956025068094525207516077493606584684961458661434321731197378917497423632713647012106094551461290778759995540294088970522811220969103163069275379457202420887738121881232314662084155483457463626360808336271769397464453165848691713696719851607904834185724380163016322640632512249916306505088597681600782745357353668326364334515801713526648987859828729343420127318007916867233773607047175653461375032130806661217532479291871969038437247206209241416009228383229231658783968598037645352556716582679654656842367403095051874382694129311832966962768826652314566451347154639968259261000783249006140367293173886794609168388555893078148933250949276003698889581454410291114869780814057737035915645466260899024650902513287011906189923938201577319785647382425700402666643343312638964155167810095045378258274971216696938970011857803713954002519212538962064040991846140847455888390616136924023131324156140847918604586958599459911920152567023015036725846262895555771539510504638544830960660523101769292270160339214405669704250961185535316457196871256826196821653729565043793908851300024712071372106370243056965843928065658727076007497897536847691065935513648348550672078835885176382015395983230983075635909063629027788842723698046566827895041746731283916350207376120832192748104537289623523703762164712574701035061870312917410804253934228692338742654897019229638868998794783064782416234088155668900025293296510403393812609478053401102526460733570973192763741022925250132174757243153457166958945458945342669420476674504510015714336829951122854364100211237778073678914327684998969630803394616016308711217030306932752995060545719090508028341715661557039982799590227576555611201142888012447502018458149523550038954785713953897872430510457063213538569469285261073841272627923625510784347554546199844194187765909810118063012180962560743195161896409258259100730682206813132901793454696485495027131942655998048754802078448431926196947114364439788960441799558577269228379928965634531479985250000014861759498639641692510366816477003969520182289266247416236551532216893574646883403552859880379387694348899195612605982018436616159749547286283596198999648200253900178634059982086688223750319208054930591548745333714478944471399789563418682101430512164094429983835358361684868225007030956123776369849878598354202433590285999284876383998648492591746924275533069437626898273452277665354531787234403439960443625341988774717201404454600689029367155140247542313980912787316628524864411021778580787978806451744898016808353449524234552261499394932806203290609172102150297140710007537794341779167645536869175754579867786969727782404827544790691872858014614951195128647030213135243631570927117538639800925042553704566890074137015225606816449237966891616929901433288884544708325961473304181768477273583922858342924080323620074308330159941023669477216972327786074241638052917323146281644464394505104961465170519139114495220724310802373406492275574930366166085340183394241816303696628858114087070278019898986916900758810957289984873533011603102366051564699224382046076625572951172060698563350228713309753987868636865796554524090105502802963637279243050932797477660885842022677659446052187279282666778940580866467990220576449258831877242195329102224808358938456217715748909279852890428240383162491576958015444611768860974307625136327930545565735422138947464055858977014994203419622821309193518249044794585196013321724056437486911769198183613100481135317884251169492481498595042327978488774942196814414321170576137804343819111149513519667718635437284801841035368902303529401448995209695553637401746721011963429971958085943740514360705577448593410699852161199407256430736728337347487125152838813936375155911738367961568732845334868655273903300429026037266387006087106481336189443234235814913686604936507734197652236709541912076773532283517026798129661081044526611102096358915307530574415017795598133505418109479912382920069151195342904621302180326007265760202287417662655802527189238446586128366065070814018707576887948792252351986726266673570677576091331635789355050703851409883575071449482408565798172332774572458786575469651575444177210985711384660381604587780511237074505946232093427658307235935645712646115484858472606068490882185090465436307581901205003479677768073704180157417541876286303239867310254901577486424417153525570223657045802235671031875871001203093338243448221626068096381931300301303622905255465087776098886122430880434718807534755920886998723334420685564594747369555913368043373846301520676369923874390083124262815817726926236059648678415230631999151726363909749925779913992771614007395681093669593363026793658310466625232978668621176331267867984335446967646379078577112191617468320103577067315500651060597694102452920138425467906735589532234906481727664765334063725900850106154910850892324151628703915628642252130688473254459569640811031840988014824927285223088874084529186925443990794881177294880390431809542134187626356390146764161637890348811404307946480615340161553417795828188395278064505313174078649901308438176622521765463870938704650174235454117892353863305497857330786997494982723329228658181744620664984458457299111854044675515673671389974050933081487203390849668011519755427004298801058791421825093100478243991532409769876255215105900907967082297916941759848219817306653540431952605463270715529038819807246166966925592589044580490756638710087226344906273943877606758719058369827631975392397234026420972321060685517433373483110205855748030773084867446074145796293343876870054443677417469082003420866065853527896833630329060016867805460015847493099098558880477247302937938621642075428436552804588374796132117809276608151133294087350565222708481799619949065730800515167944761716535239256338002053238181855564847614744361669807699843607363924548308676148789628392218424645361606090310771097182273144008968949690681707350958448177499477255650117680020948148041889009540681320156322137920561578890176929078972043181184608704323314686830043032186932532498340304221199869469280291335543162241710327316631725359543147276609071377749965948101116180013854684380594814857322307984305897003636357296870986175011468199544990570394783041759732562225482392092498389066277524987716061450671758493985264354611017770405683678072383012955196872027440925518219271510585479014056638605467022281063000857851752760268469489474077472714059256949851728751600847350894138585771800395418928172317380375692974962128584512298437587880156373904313052066672923195065076913733030260237818058617484883860807057702275657354697589033309419283369691067290163977907318664219826636539504677115457886741428168625367348978926624296465909050756738745977177881700545198185801297766522232614380119230220822523808436416768326391593485991676710142960526687788755646496834385257249939167557128614736168042001815644118360029229550808352305398562971815420985429535716860107279915854679738618848939188867788762980848239001367069390407229302018837619415602593095062486905438236200507441562037567425180027701085507590069812628784026978387872439621504887578825064656647342597186648934407788842653484213974216472791396415809674933523785019552179495365236736005280618362718250020858041758554703560170744577101046965982346006217256191783927189938868339127733310030516018921911931457612195900668268155862147742202445595479846280661806118561099836114140960154116695223320134655363114914223008672547906728610709428009154447936035513172768057742402929284170866174619773262104453112905438419905693577475478034804729407660887218248169089285105421542549441920383721232071581170531942233365959005270646342592774962510525205668105963089322296286595352406105115176723102158056254897010766766149503244140072650482464708566512977408881801030547405922748907066486253362152274397754064922509317547489142105985573964590650060918979818721589645465462105027033072038585089682895607537303207248586117515649991592050087964647222561078446284313859250456638028275595968509277564295121323696430334331981019314569799668194713888999501048737460712052848965483890569911394728754296134779231344475045470239279168531653448897390713101105477171640247313904812908498752090071263471744181487322899512013118746670425018132828048338531724019678379819742030962354669501668864314916597825789404546878142439850948975776746964676418384422593937550367080604844515296791908451245157206643443250723493329645662648010923451345082887208230429153368078426847970691724176971214351425942850217382488431277502422351869457419374391215652005619555060527068612777823859613542114991288583775360193422286260033033005430185627350668671929600547668324068281798497515858914175985683297693158272789621305182608054846586872306704462454846641288591856686169557993987176393409605601963739520510437658239223600851861850459845787718326737166539227459669879705817173800025655897699132320607315834970862375853323868500174532112388527738455829377614985829035196584371848137972271654444794265842239483433375718054251481071108129264339408385876514760197339407168223360388263220846808991419236691294306425619159315384632670169982397610628191689113071805481797378476819519690383095979692460045061557110576005330652318356857102519958246570379743197558315938059932807613534313010154810287366935841044414369344542612785230462198967716245501012003387487422016953541298861392115913262047861392351910164164667611450451463216150049739148993464055409065412636398341302229233474015320660288883811858705651575912318087503466351781755831800411136961690576668386622766189440579070091007606088573525817881555825294064220748753397956862151885967484993797799062525096293754752693208498902754509180302673857985129616695378263769232389781950279340988796117894767509880613643703810329629152282372311883728510031853412500281439642255701363929232476197150956886576454485461799579414645976607545977554170898565113904335185362117622481253597676949653907385769309447818770296273502392572000817078997913700828116550958125870326821273233369693679347677221556112700952798231498963686133626336708404988860303921887391097845373127410489901880088680281075333738151063014184350628674711501187946611215328116951178904371025459414283416321740366929143793270618264400783580040279993367902289448837193158458291202258593582457863522108932500448243643655167141161107403707108888051859708147863693350147493308534104463803268211932501556153595473867875696975652467214546237145337286028335504491452525819443574004972717288924513898003975052882560767678082964016145508901740434166500283394532519555254928627906393526128870135106045298559178343946779964028327172441416541785119089887563721723295003257749400094516038407318081072679672265944740233393044177813641317946967036553658329199807582459111653344103282396637813892259853022447485071041821939526839689184506976892197586904757198233055010249344416907729518552911938162900179150714163354712053904070813072361700862118542317193561607053422295708201804778052445460361430789854417166915884404244877739332916017871141739995607775501884900579835326584825167635258536862227022060337922670380852071395935828073155078919532879006982067790157446893966492353511776064443337437953383533577194255663793340207909410818722184614691861208635418195731804373306743064669774967724591265082170876856822194359778833120880810746948180079384635124291662948708703341630575510602763309870875984236948827899014726818264724862987879600508085871069554559659818419231165010827402540318930221095891811004489858674076910301258531735858617841366921610181658326757151364002158368766518309154153314813924147555558767698242326219609454992182113442516394175533230213549946382483689458794804149427615458727607833321356196372232658729729888853125515233619106607275382072110161440208151597695022055851383821242716065805043252831863371479402802630109522430028310351159285417774300620405394461946624516446366835773069152860065490417088064496300866913084992272674983574617410528674150875846709999845263054648832961081945048479099244470982328063512598600929737955912798545274538222534955381240072223680348604661957982178563291729440884338144899598353475878407610819468479539896212492265124349477267969051690022130532510852602552765299384939883058267301567835867023241413719711699136712923842313397768808578603177701827780861255175067240025457169379134793590306578246351181853557464584273036008362528006353653739752297963289214517726258671563630674940406274705299316013657272666401636479893548630851739652634973912621074902689945279710791335077409761364320813406007827791766835132667192893622157097801679001801228133540995077416484936232204184337400682761614235892573499065749636167175665706017167130068594389253551667356338661648190732378774519684690691502358336846763343423975585868922613772179842904979487658092643575580205748852250485305224073356216457164942513314468175525109450871289820974927458040780093673728645538830320342383257025480037492804859117331560531029158052589378793556896741687725422036677921615391031602165361039630024395468735876501167987131137260506110810834077980999787542933500345833621281963639475817565153170538781074389152866113476177826461693155089607210845561908776859966358413077650548462106600144115028220483771273164102454907764750703198182051715469099295621509406134150309523318694649921479549596879379162804774641130316078444774024633782756247726673190442724091764383201758487383863367393763434344635036159986733205697661448048590581425374762209168665076065504400935612397189198718289994025674635969937682271677238317405951542688259828733600317710873370527500232314738040102813651996710821085605363872537900266725170101479787434605273184421046444415805532580686689079368419457944670755705492353969265666437975130575747888858635904069443122707102077886786263977455993774657661248109269596025034392952932697244802053592857731082146371278727717187272701602011889123477467084339238140574638156378845043325642054573987883531143537331270727647551383931442435882551978420537724794387871307683035388713206942471614408738651354338794209402715351637644870623615698947227798446687420410389542707653101255079098868977973463903109158549166937260788038935377973786864975821880770268460097390428499471363392331716759733427960322628740701161852908769950886723335345510889570021477320309927881411626222283491929418976595951015360214725551564064743243526219464793909139532473105626713423077864045004397468704108791947984354333523533253273470345319864579308354066228079198347806551651076280671362792728119915377158122514205320560165872730611023163985937425181174447077432003453626193618023899970463469271618128647998514237855900138526828641424117796745174201777122153794168301682988960870042461110981638053142708325793056066442433848491226527903077750803679747612200920285151379007786299887961955778389491737815250375863184457973912612824400234847691891335768873263788676967802106548540366855721202433844832431748023879916179912285217919205765418309401081915851471152660457994816355954851691286533379002802576879655786002388668479296768457753121316522677281609866810567117286308742958465521718683561364193301897898768713001337089627357415516008670941118436715979926935131443913231857967469847867509256700074071898224746600747732970750786304575278308305472401925750272361675659102172410367678811468791619146549929606920910192216265225214192527401493442797722947508881798117878884972468605748082801492104917599201951442671624607483915360599075300991754858774725964230467387049381453810499141391690682436597366137636512955809920749126855414445608769015371974647403575582956817169188155283756470169706608380936843040516367843538851619291134247357793767584112503104406767281095422876223284271167196038432775720813600520982341210593539278203520141238288585594780452572636968095299925088034739234929209764271836357585229992149380549580226729915256429929895199611175599782010087649573257259949102043816300307055852019785500024617240959182164172045779148123299190427801646285662858968001498507434314916460035702615747070704204740720835329976513733441469618113632717093037287046396691844742990183533684421801352954070673348157054663775130665969461119531739269458674670752283399168742401711508698692179971016622119186214379203512951557664691347817805822592606868394615925210542837495314171164740585842419494476299620440579608168870569691326496474159585627253500001545510743619012327236824872576884852260790711099636175786623097861434172645356135372749289966897945856242658018823868457237855387139302191375540162023094624374484212834959550647042483729125783318432525704357958451465501800515839714706959424279208695321942094752240515011935213210915266942907198632952137316224926090078716597341916948042058632406923041227778431005905871891322010844889510960258866013630968380605848996449270548812055479187918142116143335957439167597261224655588185716541126328930461820027883487501948344882442960698708718972164883058082875270212771810070707934555635575077320250820124723827549959607677558692108282178692362796726598464427748360513008827323072625525004022929845955314685128841462878230788525547038069802844235563197244463533326015014768710632219174651285271204649237582948154213345655300936927599929085145095856821610177727916689348005824131446803913158035692707540938226974021609591855110054986396254794675576306857571411677929772160907444659426988412503098261864463684205673237852073861248652185957568049379634576133343140785813468079362576232751320051541863114796070284714411495925278422246916801526870682989102536808275187265341975058699732978544438386784113798653013629285336994852302131859715314391784585378150754941347690927344137668737520846847600539392680293482077346309639623459529502660026385122807549043281619569825789945808873584749544677812749301642382683657383150824620934569463602615858304250035116703489864331817230088690459375267004367282047881250263153474706305510415064635087950161214992097541613506835175651424442278115172286255782749180286986710481208446012351531405066586073129303627483259912341768571896677035275666588233772872356079733407965820729446466584782620292534369583773706705183096648551413248862198099712922425597384432119504836700209037209930825771989435935674602458836233511478719965560504557275307462679173009650409605973228077832970114039276957531811815699148355044404080263767203370352447932122109979825338041138919102188075534616536618111087555545152595775028678231218111704466781623910644062250060771608626365220858563254027242704824053816538711525519699877887952744682073114513241233167093354203804172224457915677756790125222588685184824675011231428371276118807457136255755797178305919446344338188790069994793555260510783532303230643186960212062678238297642131494954201277578149072292738392860233394597550497275089619330741132349237281696804394157046435536792967534780220647508999006606262202878619803291050484905635000510531994570476301547242791259730952892618277142580376459176405234248653349745997319930417611008558339357103948538079135401206284052309814426825939028798096134292553994675166332004754095995113960382373786635287581922925489404323341762457952856380275692083589572648333019513121968148423856169355119335049245180645195863406947460991511223592602446525685983591172637451831786212444557110086213308657900554382972599105486869413329272669276453588026011695557179281856820708915874131383073790162044418599779999912377376920343070554919005493906828303808040891554496279312713535995221305069932542010731583696997791976884903678617802215916956534158733724270160319819712191289839221687811808790290024797879413939351038127859860925900002561430588277444886535956362062720916479227443404984363558873905716071614759312972054397662280997297149078199460209197878842522437936119587315543287707090741917682088075133752557104237466943912580747109447772925515254843029758829759275357736903992067690454230370861033705978894011652502473280710575802107293912553196289512898661827062091395692058502637427538494421163188232912464629831942538745486094755845978472769556177738446155142058313030514141507999998964075745021696528140236705279151959451795074967737184002324436856872573024420749399169422140250542082624152320509840470192418393600121004669736353919610255856660045975248960652669842089310057100680165170564374379347468144603933867514883693847438442979785920213435807058209285271444364147997636023889191152966639265767641949478466707681316372838251145921121166686329077408709525390707813950682666112079038425929448632504796921241430877859422472549584045447339213926892770862456986896200448139494650294276605717714027451092482327460287611261961654875613285586042765332224596621941612096577018359034286567817179260440788565489311612707527959303841804249064624341223335148841297109905116605576681702350047631649377369497934606729261516682941817940552714399499237190079202852262960948035771705377662273753105252436877034184868024453503918410170811192888848850071042048604344155900506451330164298648087885211596535993919452620578189432816767017729646505257331803538925826227021794416495596173923106744142211776112904233648654670411139750930524381847917628419441333672136200361443544453681033762554184057311693724308700445901665645589334787403966280930966658420005593895626322033457083027963088805436162842568094884569291617684648253842960266032731046590503162071353745815758333353472437577257201154200447606912000160240759753236615930969324233413173975548736228157853100362834939513304583197658329258296267337670929034795793268097972058988443258236118768765834239166527496847361969747978685741884033050023058362175776991371094937625527757267284328664232832216194900764752551369214739897979511784195492704384855798864973279275377355650299105797167200049875694582113013442398081787206446669163528109525518992185236153004672324381927346584541298118383320227994434080453937308374382705786143103180037963415342888374878974153868250971369167818864984362700077797248864842197997881832320743936123762467108980189530472902418993954181536134702445753325769659970595748218944248009854518689197211715626436128636268753943771963025641185821572207728082135551613666709796321763849466326792468165375866040755772862877890701320179955583937998287292691095275061703727649260478651193956476134379630022359229624015533828069551376817585356136743772234590986076149469472684899619477571325442606198589932693448028067269214353682347051234133403602440659054786763606072622459526290736609863519785559770349552430360858067230139917403647254489409142391254038325192546153399034628173521814064957437889450868011128816979416820339426272273491580717929835165764757510363199336983642583361740952290392776201786440851163612306263530898385957807153244576910489881655983366744683031887435243174431140294621241414984519454069882642011212890862123041218264964277889595555027946658047221226317613374634027524361862293907407447560357893935075230733623469488832341337847569945570516733491183879427701363346916175650326370920723519777750623483350813625594499718587126409074372783065808459299790774230796169718241301505095697741398280782254841977456482443748039912793928005193490130501149603770262265709939913664620457790691859661049217040407146980696503112275729052232184537792495330600126622208795722459849620808448201835013374614640053261357900238393252930849255791068601957101408139731452059199298901655684129586684296498084182950018319550256218113258925644531962844745189785635187412843782373727780742304614380103540451719864399391854626258942404570947414005203495041976303098406794660267950881209229090721493432959373466803374800775400366038313177060047763530147892468952062154786269385958487173919048621369998012881485503135895203010736919107915752311754665957134668951007570442127124611318690748573481751793145984744642027920178659900253654909090651727089923994693850229469838718887078197484650253843888352048174382240354705716186960886679995800071452214201937305999961147994370542325597856390684023267393880035356320516523071201403506040602608221793745810128299417472588490302093264492443890604031693185877144645064421118150605882956347465713098616106591188998864115352836542825474908354119972013084770471735606567576774025764235862898274386636710915248762612077922211982451804313627791199150305174297931763411701089115471158674071344222775855800535876991719805771338609669792495321958163752754264254836625414245868469555450637057681646309612685448350904756765766275360112419767528548802184736590654983129974793191004843259132772043720711408601680046314326667041342069334043980722462550490545060156301990977646401368332712842128446518344702612386283994101582287094735625984099838720245068824363889766676819409663060980437268077500747281969435928748597045500759045211414624866918565171576919216303077190371441747989403503995685521530262990403205993763798595771899844590900352341198568193793712301342836895192913662346654963681303093601360088559159047538884975569129162555038643946411614462418788390944576003112651451693759530209068883077698898911673123782099866978853135954668196954261546955679364936112742873764110734505198435267675587723815139678125420773782514993588048374254000541272590635867147369536710115995474407395456375877817000004106755023845134938937356123848389611486942195801084973080519008763063896637117548562671007884316242441818058640873774588470308994857267956642039056443059173659404798501958078190158766908790154777476926674736548754721440641911710473507123401427911419302069835542204465926475189316834317335196011816617463211903284478474276171048501203074529969018938603105799108776025127086782588625015843825559240059998736207557831923749029899604412631290108634543661674518731026254988945378335635660342854302248452314672958123022655271510023983813614537863679757816811616048918730966054501873627553801786271677057890847934747783315850702014796574564026749975337250343927597311069887978500747436598745148673387406030119248265305131117414911076229040183709009901809818845642449152619757584838421729645517889652740845569522643043311414192355239071829725299953906488106830679652110585290210426467335554875844443738231253724945752571801377660859488057241411327688541889617014203912971252710169730869306750521616107795784553215501553395961626206981324010503331109854983992706918839113659966484935010070049375706358677658555421669306612181125826349154586749541712451599228025472381545648821247254341392815907872613696014487795783114926857829641887647467444796575851672350355042550013926569973739762218452395319593122185373241953134124979647758929201004452337708336881008397817378780866289138537388560740310456210077802852703615959054344215792332215770572113965880382035853849334716223446628917352283745310990189189520268398825000020945173182141735075653272131974296604123716477014320890898487063572719679956616521484807932049136167776145406333714088261433454163374135573233554798185256353632039631965741958319183558351484867726696963841202822594758505816622665100917804772937867510573880697837268975800502837460233775138142718623829815928542091757989600634851633099014783670817658696486529161805816877134162414238015281997270051818434437313459734101029104298414929445629574367385281608918366105298338524871981181188965006485992084951132674811345803307118445505378290027436058725176702912625990676266595287137391761075141222338403308822163890252187925678484408796757330653786378471886345604734388381153119452327616751812146607972894867715100818067171505608374949612351673358333964949807610475907502277905817157696268534588836042769443651341060989312303353535151015641349617387960167241925455549578762210848444797713166398179418680697346598655884709597843022701208162229676714635737918355320174276257654883183004484272030856458928371755145692702417921377452173144020904957213635868091901985287772625192114272149742069981613166673084700931471839861897363392528934406669509700925909020884547007780871480800577650244092006880905473568378209681306469138564640989398494391600176997775272492508735728211938115576300805182090340022776595950907757390903571842790735295872095098066668732206922459800177745531108336981486910487072791190143781860641692074241382597359623879323915907772217756392586486401839928854817580055881542066321534362982410155074867482289944631895127132120828690149744932740650877591924658101288348759767735777295251248139053852015609352985294111261088122735969490966161532401117642685169681938351409355340883559872393274666663267489021692117673598841538602563243064532183404977996710619247712438940992381576371222853263863945714528905900198210912216749247503347910968127317263811521597822122860868495225489191708596697867445131773761279303496285807471082486447261233740116453907199856018114138461271904922130077501268949287475703282355278038043889939788687748302457584418513600848960314651371098729333111183527772780176929328544616951631064975716665607459784137321045029925903690465981894800494197997784367235155687909867015833378490366215681289296604465928379048598490530739900581244218011180044800697752057670479707555285438997270908276622817030954590388391627986279134626681829178071977193664925784558991901436301655544752349217498302637498242426526576563906997269147191914267968355106708688605069644807638747981293460138088878445554321727450299346639214210127866363471876630762229875780921436616809606588799656140832535801536015411290985440023965029075710361961018626672613499191770629556135906628883179629537620487666936987448521692057682337099959555695828995461352925470574800840731980870138814928144845770511788751155858959032383563744466392942946309629586908819126251191291708751446374176602506857951132413992244440420054296155485607604650894981594484675167844644914679117364984591266798815478576380649639581882753050921752679458726886701290984326778880592687134904468435621549504181536583470370814003885889712968208961802556555500857861749438827517427754512267724693488082831695154940813226983273218972088049497817091099025243208469536208117528769334594801070754964252841148736857038293898268189134994070130806928734152369383459617483824618808268022018700487672036151492202155316935681768770834474624795622677820871117620254501577801272268832644767994375146341591202272156809263388348721117387707940428758670639389804408047456844498734407626552997993986056635533045886204847821444740210745034037750064157810490241272461469234586619076319805253998212070012302688808974008725308726432133640828775889522329415699248029507073117701858958674615768514605951190446237699762625085159057396286130823805847077587280216024694856208780001864594512061851799431898599261957623806333813581230783904308580878889373522748796480796186515843091028582827752560666835202970502881867668144811193832225418528806712969215671709054234186503106062900744229119976639218068588994352693867467942706292709645936690858214594118055248409227778244760548514461882163239221943278913958173859839094978717722671183512703214453981664801057666187919684014334209783628291872266570904892718984292182653381089747796963276141611904872864964714677235923720471510923551893792761699063851503111382375673777753288923301468236693668560584285818849352675416936708689124607980827162387415780303895426147017869031664786017232329509361196187316184274493749655157225420246895499628090729668889478703964437921663934704432789194896535127143981468688204863059919926266654025483269160323723616860568593536936256571902141527029636217025419889848063287886746138703113498874278237615892845254452666927356101684121724916427212569050162869225897131984742729475022429418612043160975560326312047936270655853891985447163245935704808842905177144910469098216745862278666894853286200825902263602197593735281312746733405164140507758536197660947100236039222079279673991559916007010528316097472239523930164824460217361070761414951275731199624613166469276118928865076520406116579670985928668942949808869101508705800580142552461621247338566616550224418015502803531572552632243905731718214975930017814468014898907268545369669493051678038425497088684985351384168681015055713322678700689457248573745801335564861293236761213111757304488107231977008312037646188311496330018509898524293497274025639947174582724196561619546074542574830382286697968375983410764833068072194513389801850981716861232629015653030860502821087293126573597719968222106928403635045614094047354839651599479219776244121266092171967779232344995167421352601275593364452408415822958110466822500716313631501658610740470409251758679811786709437464885573697421793392917276195478921843275788011619223753324299403445546206896989790563602383891919479456318215998167586764311688236987632133123369560278993728178991855562879885573392660515369898394739013573031300561333843935976806659048489449114063105064510339005666393177619396075876426494127045080476613458931078755566485631623186216736314022434439026051203163506223847933135421572080993078816054226492146473039147053485301841961357397874755110858184376344265706925456655469249459124976206049531693008594919953879888805862505359873835222294027348181504825595928893130692225030280284929913360540666323279093609769452448146649681556693075988977299292482043721965040632569250744294701184186915272091107086784282548703543695996855423114993572921271191120494074797551368415755623068848299048555901388560633629399616713185787424408282027142849640530789115154974677805133247429291837426802002432955458648670620936162268654109645558098620262102501542940706114920032123145789059286357748096983411631797538010813805147851381142292799429068550596740016401799793422687596412551648849913801272099975251770633004978513823042592373037902854401259513649139825368339453651779338910162215715025099433975060335154211642082390250905913212591180344134195908759102347444102066531028519395553454957421645601598257497091828045734927328359736950524159614752041242024850663613835038426354940475501341576415078662546718345860824852000273492649594861048011773656598240668631649954808084208072424002109032471792871396232651052237639183447788007877176611280427274128868147062586253556936658641354274053068670423973290426039606361938704607192810291808439585289757882929509728446465010987047933225127059401262357856705319546758876116662268784025151902612357065020320992851925820750128237215725885509766231001476942460376053251715471383651373377654088638156890593374949659534482700133554690127428121074064689932027657106547123626669976499528992508403504427582459121767700909356238279455679820742180158603119858871043128822372599188923016023418204922347652774769414044962153549772710840294782335747736922654475387642599999446901640396360492847593145193628132119169245652124435658153485002309060344659678196808076733097319527643467034527192194099007249313640573409936432075752581898514061048217889990361351926610606553452366838920321257228260200141139342016114377130884859979669320655447068215302476879432733805784619420711134427642031743150990850788687143964895670802165065763701525890873267916153303627842145336195538200415036977353688188468584103407833148677088945595674136975722274572701733022908470665735402383454455142999497554484319102097063277097258672585567554623231877549094303090693750045572804979136355983303014196865221664420347930464254731707219713433644944337756571434830833912245778144794040094313910228796808432716602302757662729513371959891892679306265817292672143803804880923758683072982470567192814660009827465908653571599972675036163418367862173863575481459896517031440990084396713788047844061428686160060520629718123591725878202407949461214049356456263866734802012991665760067555450266853920412553051465596927126528730911363836687810244254957140206464170429752080377550804509410269941587633479016467079918574660126979933859853640650187029641073883080364933724933777927795749737733822014117934813994406730374464841366818886074243159456529889137897363259048715403703116491487517529412947893910386901014481980211876201130591427488419116976937026256640043877420063720395531352776830827751428773884167861663476790288352496005243454615909249216531436313318788443540827070395608523763540606353161111275122457774107219817022848718806021121697599603758769798742430184112734286010225798720428898246100745245397411772011348636203572032009768027833574290745571570672912428100189567618537068730830777735234818876555083813059382219643466356383859190931693477774661872079700080979018890492579567959868501787977305603313457693826742679139535957309322423510575265627688350551656632563873373561339550912950438341172325124804762895644643688608832274235954570991542132211326686942821098144253053386600958087887672795071562468302528109972661176323799171460442143060497974706282508760737656904311573991768664607650796491232304475331250337940739731285386313817813677586140501397900213469166451208626521021583332127607733977537141765722839510986562401164563945439394555343305263315729872477984295078895033691563076841231931885617428815053275544057592846433865798261513414227368799041931142282091377569251620180781373821977557974671970233313920888902696155376986679490214542079592491197517481451034090993661862569147499221684546322910448378715662040714387081823656008242466689449194735289607008738564189014872378601651864395454346623925940103481157863253617196264428524279788518890735373038038760992084348422664608088273095615432386262018710542630485929066887690284906622217579382749763234950193252986233198000205906926501312119165271194620508196664707339959956364436674991532149123114104661266204164289786959013578812990402568340928498273725290586236102767884382948938452332597339197265763591072561864705001115195608901580652185185274741172573576306241968578774399033052570224647378154656515440868878384964741972736911857640502947191567715499806042166815371147812826589420876933031468775313070579420646229192073431632356725403915940718492091193205068594492430652480632081335165269417958797799088067367894220169633717419603746587774914959587007786735007593059817539366394236753486730332674304296966111754699277065562089125892462505384328776990033623512224260344552494915043785718638834246144624288775166679268294206148603646464887838260063872844734716320080414039208709574931534698656675572600738125322003076309401174950635576839474045043523351053948408127216484747001055378662785381296969023488694372465921397036190942045485943525138671370623904604765780559250296111881511903952467529001610626413951761989473330329220455450079135648875606118792781663339450204504879073024835322365019892400693477019900979871529235143415310417194525016298242002199136840721647710284599206085592788915095613950965077489572716329209675687529024809136380681205098109044768053490209809509730286918795958557687045815309387990590034652570502842718723722076200123839903987674670144922550022293240948065958460449831085960180363404996279273361056010167780719631043791864649012224113436987295816778979205649372161295432020311092561618488022583413364369554441493457205857634677893683674129668472248918885241906734391655210964174167686010803059101432818635870310624797479296224806355486110923224945642544814289549528470030296901920678875760101615487800641807804991892095955756353043168305709792875421690154187119521831252094373580933897190915500780262447153620659113550687054609149215028751907575456991516718745930913750175097364966354769856672080473906914978479803414255758341264300173419814042309448047825297087042305498557741257437505767040801006414018095444345640720129670069948841617071924784651728738637995360387890862359003333255238916017361793183504771752182504767889464004018314915488264911133669053070509916531314182203825092284194750810308182571854569481372067743509859851175664992997451667799799039834668318526143160811993174179405075069688785131929782354446600454813414219939079361927230262064653419595689438674904421406317510652528659200458895658571338213303666913685753155257684999440486265913896335466413419780502605058605483017301472066022967229969090099370729425210044335419990557295256125932341130209261543813093769021917544102989527477096476448602034317771763180242119286368578068524238307360305333965386879787171933125700405738048538172037069574455505470711944226677717375074852890894320692985652330063042331098289580321727096396541185670224411849862170937143375086124207443081187942042060535636059279602898234014366594795268209487448539948446052044115226325598773649689453446872135067598765539378497570601351464166525061074790111634797373435825608312795048012131137891459729552758299545112004269021549877990975088077918502408861910486965314431938089774670748900895365079859771085278412603906478061613188825737572652887120851307223819926409169506835519070739852482471284591237402593855480225911082177488492469773765398799049318264993505269905146655624624189150732188710809168648090403686540553215254020134793324277109020901725660077432044724155319237547478325150666046201055627138333512335845594693464555215651800836450083216114541317764223790824937213186420439293191614005165284744590991406295745409833214193078866300558674580237487349170929899226277050115050533932470002838572610413200931966579145140359087365094143176442970936384192321569095257591583837909774444132923206029247763109346807930672369759602325093639669672474816134587260098886688108352129434603969817261668345929424329670367618438130815149320356996474871656612089197692537445780768464833193641122689484636944280289781959588964705282167320496479508455567910650242390563541114128693071528526920817815862039144416019086734550916474692256741946780172284654847186672164095430430738981877707703675286050846998098758013061616331738846850886557703415915591764565677447346743477519406986887193439068449766330357711148261666010696870434575994411750425472481733874591959695216265589806500229049998858698024007543028949286620632169325394675802846671135293535155577413371975075809076399843609721115501203649316637271260248888772215053287153738132715007754750169231018015402125189333482124308660211671123877582108876559473613935175621050013981606570015029227086080036132443990566716876125429072623049601804490700342604461314671103069013881371532675665763642834077089926770620371397967637420720377760379088532108898128813681485370212687587906655927805600741933958047588126394439944554938637288049076780330457980534840930803079891323173134238240101171685227196759631501457150653091385426546188026731348873360460785861138841353213733330997545268649576856687104568341120751963742381352687200056987719036304405083760307953770127376688490952004048861763756216453587069670672820886352172740636712561854784023190101514783856624476113006844750421738347484323185516011143816855252343605034401351155485265795183077302525862958007456598987418011952641598089540638160213201358940015147969786180845894492351050405672051455217872649718530824291365401011718763964526384978331379924545288732783082706162942100954490930050331625173971886174526301317187251827960127199396564815384164368865717417437566175338220879839465514932416753158862980474215060522506781467153977808680256311561636586348007893753134699203805165824921755136072072679671197744957274297700868547779455665731731860581154446821344574764839145557344068812611564253020537404653921239173532002687937359964326160831743089007988058304140372321774382991455134209136054250655691890455211885605360652725663289763732366844580225229010581938513014664710393400853442884026225497920844805485110462058772526509245892724435487008584061812698409942368226072040994705192682462856911974064625845280401101442138850567648391358005238236164012015470014790778274477469090402869620578715647067524527522383287623583277504736463988863977369981021659355883054579848514521392086921753968197549800216259946487567242639187324534033726615073142605693317848249437050799807070457365068150760479904526611643352186818700167711157461755600519776588057820180001724079879080887823532104537207035497099022411618984445165107942099934299947502761755652739513493769089066422840610012637340738915568567446525508606884355490608211028116300820036745928073704182382690038207186320706587947329926775195661007252699713748024649088832963387889586295631118202985717820733863895698602217757607728767663265056970682282181651368520250087852565433877641955878552037839555244950612169228383054047968245178764211902119444912962703972426650276478147187383199762278713906106265132601328512447696031208134948203065493806373523693792139442394074644787984041473033480071284597022040325245947423288810762603420022016771971002646607815778487841735839417604126281627379378097933744563911393712174811047612496710328356781204361282149786055090503760437290666567940935238844509874808256337423987336869639241829826388414507609236605211694958297201938019124408860551495542600736153574960069432407829317943450463819123181668867355594655474911242021130096643671500339519854178139070423396163916080482395461042018985038322402554883123651390024892477127385459658805174277472030147729443639557175321908068241566977106806909521756575882165945465124017064316829717134249807849859401531782727338743462398806696681090892867844886488991258815334911374409543140138485333521786314726996877478606041858726097606089956814911694945195701798951385473581949534190340935639630137080026751323442338358481797934350688023635039202818557852440374288652814498676738685368647530716408588533922536349161577341166478097246933297903633325389510240403704016512122418137627694774992160828067337247756732182619987691483487241660693557590076762451489661200445336384744546688151772000644751423118796094957383761425314430957074093914058659007668790289369401703180045389813728075920923036171105659029794126961425707620799975347072792830818000342319407884088106954475185362941494812462997835466162629892971239237929852665630937214709375796320249343343037026902307224725525986143201641470360027752441123235195353806724200931434339197411473955496857388924713981497473397297548405302498610891458281729036593211357759344644042638904322221722844692017095033021678296907990460234236322921950857288948108696655431944424818761808848019464030337178712439851273102854274017814143673704489177241527752371959608443870736786496373031764972561809781629861207388159783857244419641831094650211863404118038625968853646728949385270447355029368293966677885097675549652348727831038281328062721070608754970923476080209437544658276753871283740446475851085384795980222474248189966676113738543667359921743482490145340091538552047480125194544673291570866179901596147163476882161385119297326179282679171920506982555495397429392460029016474390865488174079077441775361004972226674643919644492668622589824622418675256351780940483759868457239876104217798439564415612273155512507614372525766714153935293777114714428629271261653692169533327807842190440453484365752665538469790449589865557065273695909487105040976116519225837040984087629866777691413919327273422271092883748696083726096524048423833406790337996042777453015089896867148063815459074214440722857455634657708754585112592569943245500269961519183132526726771771772428460768988379042711992685205102080117289995941451399084124090025180154730144976161438250075927849405583264575954937678276347035453051984715183000835606952229421413286170379961437056163259107012162806372137788826276410882224793576236781202073908834947571350124684294304733557076479513277392854164198821169681596093262680766562935490483358843941336174147863854544369355120882858582960334208696127853005357823684278958080921403268361468026853171767885506969394478671813461003696556958165939022655391511650261758730702236767328467430355455995710706641365847351154794180247817483644546655399293067440313036851551379417129365246060303183400768963182612563886542244928948314415093365294773632900411659279817875994373276431941429668890488795546292906617321653817732837928490809667601989545891378455643248915091015899268271968667657407629106886560555560737370995733364244070867502018670481277159400467697838544633435314707307734824863468184190068743995691298139074789903507522530241859286784299432903249765137485584376900970519951734421295359725576123945302274169068550930071958548909292612371078680150963530029616561431777673466408183239643687717318390126733763133558102908042510237309127837457483413311562068385468614975744319902468465499179784028579752518466979195513780366282387538256091752052341767528339096234826872922808367146537706959032346000053347730831247460513677017771082464288404626942408964773282956944275244206679318587915607782474392540710008489664943516078899724838180969769776795070486144918688067422438034325949077513949236752458823334585923929036824802006653439070017649882142277983354746991991574763941357323971813311281873392937842997243250271868550850607658075927609814742707700998864983438568269499143153702656312612886500034567742407694397136765846882276242292312293041373359659665116581790088096041920180277955971837405620053657893475051859937136149836063724412922591403104131977125667084067930036452661543064813391303597195151728570191366757002651959829797992650342904040146424442131875931017240836555125101471361842261275623186757963755106628523722013241028479063469730978922375589435437618478961739555800793453242570615617032616428363743760074937554940408160712341514275831998109780528975872423605035146315699557305946423659346174304731009862670391987116288687590405372560923729833203528274918015453145423094905152638138329590807880255344491166039372664234049207910190333812316501300040960702215809265924737971466190267122058181936869785680619268398345018097183196197481435031999615293349188852934469627663035647409865997876444386717096367387225909920722400763842007627590247515897814733637661415108973683827445238922921874761530147450780852492784867231236767587469095804978621309358084035649988916195687596668086145206687471010175766735346806760375712910167420199370985121883540534983826466426704012793139399731960207761747042559688646804439066979660161950144228301227101655251475750161876931525932232272135073972702472116478400718785400889459616123374866891585875236796038647417497888773928977581462498847235350790730311599831365414067251302841117739179519992730625178070456061708769159762037078200175336628836059640773529838781829732997191801374766397947146021729394144730635848442740060802242818181120589626605465521563500241567391745105346176855673078522198113515350806467367140893834972584773368037705010519235493412322315393723329135778722856324068048386965808506021135454084624247235408737961492902386077442542332845419687068397817820033396580467485603393250204400881662823195136505307744873546830653595973750005488562278496932074535872079173561720721250485340309053453885067453566951054342127625748506646282075780513936689189733973980536922149168900529226281750569274041184497143394219786038966572309779966680857221975438249450733853360200179276879556331958357636077706468819739812075408557733254882059731727243918967042927356209428250003906349018591414822121729633541808390710484718566214782435041494460195283919440630845338758442567506165581716827592260892720846044095813725938419787761855218923720896058420884351121223774873302606300114506192594971606280639886936528521628355535872052346422573270891229995014563024183133904386649642288505042105757994351925383850553143166540316705454752731406854907356195059265013964811172742344110214023804163241629387432479929818581809923335982585478254635920210047738168658661551233853933351498396202976810650596542222064585330283079152933077698782080475478884597871793455909654919844686698970015270001905638511060056100121967621832639581318012675129430375111715512765874760256543852617732184208575225331997193228664027910213632215167258877189939764188675957549713688149235914271794083764560703915495938114854203774221108295504043654976057562710138946618930824506712250034474099949688396516064313665662045030898078297194276952360510277757158157266570853804971863903372664091614297627922495049149609857874433595350369179058868378425571356304889193195305316648451027256901383621081088001243985024470380301884305185180044560654081567811645123393601175659453808707009614111974902871826080470412928024573345719882242624356329109554959195736855728615777730431498233477923205966329572375125874233061140823922976317252871570623497512724728643441135190720537677537114330430520407964196648972635515466648649910911231175606790024210816746194904963594837419006486469771567265217822677275945917085080953716378284945890381662111136668356243098056611046048287227629450047752063886525245278017062770849401305253769861469757082398240646174330322500679218990569665813803144210599808224077791872798454808547059704453307825280013802511779651221196524548968234555408085013024827658802501270279378074897567224898739952451757600493665112855179213643001344607443075552642580951676158724705070506333623074465669957887996503889833023516242259388698092130750825877403994446620026149355819425962702157469263571060068387157177029827888067039450597722445861519937923481069453677978094425305069962487538695657313783835586728625209623999465964077876213582173341419385726798924275607118880917637924735777338523866909800579312956058859126821355596583656278858388293175982606490149373121170979918583201157114820875547576585250547478103119480252088667356958790360524113660210061146615256512029711787235024434035502848527659014146818852665636544545215918130270155635968106999769278411043486119002800303951345925493689865310701227583104931071135424106004399252473621136728853366105536648637727658547837900124473571831220663852905056024628470033994157466407172117868298675393681822961660112371630659406908938758935033910857570959210966634646380057724614111049694762629260327966588986044271936068446323621397361381164604832505443954231334333058250286189452219888936940299616785724323279841070067450569837903641629029722718581574916594105194120773650112698117362611081083217494399119901222859715912419821741843387138155437997925717932483559387017851169338935701739932106447809768847518837101960889298956200144944205049617920842148232010307064085223714298746447368904660062853938682941343638900781230696383937614478915136297980183939169430300210197821969780566492815725089204011067529734981155448632804374155823538308931190656895025323748741748906051536725571026764626987098664535080412134605849502542252112370451569032190926751285859856261377439420128560929618556501362395837498886286942678255574269563541131800624251528245590805442117221837122592262487750104310328831479480965926413222794719241139577561692598900239389169394536126852488840470466666448591204279104503370830836394329494309047427664232555356726674882836676616198501597243047359674501506381303608037702225193026522604689353795781069785197835452848636541770239605681728769843491188023826538911611373553693225491026901885257742487414350212885352091316475408976696636568954274815003774207848264879169508529747619558912531213505756589828926716006954663475433206546471272020152421636664689938574573230558025655741751352814702960658938899540771109358966738024393202183540236305329381355829081568221555250658050276690723238644148454815598495480744540403703011904401793275847592885263120330959226620799295076311623975805287701103351071556622306516247762324796049733322799827579997847809683768885333575533052118199691187143694333423675625404156661434028200300381319743704795037639972412301728603539196309648523851536307422939001043326516239482717473770006828598290946090144628883792758343140156087555274745503698848232058155259229678372424832733323490012169851093735267557494667936683714229532185481522161002328977128680159068759803287838990521667479543039401951554563287208892636233726613569092861259857581005714464208565569713723189632853583880198019339702018474634183816522982252090465273131977371397581612270076939680159248169265239086516728616966821928506383225102916356866578892183085710634126821244404678087032153580158143873451475198931242953462043985034538102498470507326933165238922033593333489105818145093511409544307081233494378825232977846724251351698875765289732490729633966352894213376620077481464839167208666153847477403614671083855446145629038487642785223720156569802637903000932354934850177568607687706347836949971707406436880065369672201157548700096242116361058389728956528829863645261854563024807879404165595647852848204399334035594063572349786210740109827290744193028816977202202405993995003575095328390448003896719190394413522550022123219429636485230942586858931436123237497850375652891272379869551509846190806153458306435801524894822071490400874911842934955655079775791741230029840195878275816395551006114541286081733275861125518320114261405384338959902832314596827105924143660024492644860361880832214237562350102020850224832674768904677239516448398891445015092211341545166313643311211438207027627554564667263994772027195784780483931866720474706934905106264841052870432979368543702906978459052493867376445721462613488580542314369665127156782677329516647895653277095498297181775282633273645295798120713788237249541533337804463120317300139385969774308858949430135349002066438356282559204844243812474529984828745420491713001787405421401876918293935062063091789623230596365214578364780130054985155223686573329832580049493846084160416471312394720873230383848724901141018333894260095644156197198790239969076467952043163668701992319864171561902400863694677532258053446685979966010494960249679326683317045684410376603669172322614766095588232255826014965350569426123123301072064833402415321936055727959357359723632770566873069050029084414890178996078821978150538263182178249856920055734277809198650675806985134588501056572538512015626925867228295479206740244727469166314126515745460990217286473353828954853210181109595974351775132444959551142147553657081430633136349936832031255455305135188771168498788955633691604509956407263319280193967647847275994933158682993279974693289258581127959726882684268669910194758965095106715653062058103404544702963789064067836214193413337270677874049165836669769695472878081922312087701695955932795542756784085161567709016294245287606801402314866176154159770083525788590295046654069288784413119991820479569376769824046664576655914621812981397465460858613268575130180902431585733126875954406645899590770892833914654162756871154682801581901010049597338511292643077546183806415545891788429897017535120231762726704456591409876513836500386138967233310159375946374866516290842493048764611091635354880542633413717315522643860893134942723854584339067921585831122646731929353643463922716927674034355934456077535228303295031746111353389360507202136138186186528082765116847177625514808532260141968737543707839273161804044470243204801838674100031185586791428930432884187643038784246001616579717999617796910813535049099270091214178736622401772888177582179935608099235491231533172924688758945516183413111514307890460144793385886495128210296180509032627266509726081791317357662903286777043340130769859240640789826544580428050603739010025525137208756572514822449702223779740570819042275249886287540307391200998622257542183583176747949188799352481452907472080988827307881358694978700580688147623348338327911406995345723502696755497190565434806192019427532639612091407666711178648303962034626078092080790120787037959679991735015402483928745386795008796090149626918338916449706954735350925527287674736875899826446550122765718593831564369801085900263595170892633506620611401441421289905539833665434832716806918068379175201054375261732352341352298229368578106101801556895942098533761337701745966206710511500926598799472669711606520751001799190985989766745981752326727178788999019870725439712876687766558543665766376583589917347077253388897997020649861541655897339608524877767907924521321653829456119868638421197270049984896199501820571820058665126996311379342682231195246612415060885916035727292858806789024858848696949109323505580406371888560105440605022365048566871553816052184148273746328206332784037544166026256394658753526487516893091857977606526780930378664124287825377437620170690517042845931838020167409432428407031549140570726795020126330572846579198707639698534287014015295878881929813120134996626662957922487727794270661055025054834807434339436108564342577888618507964922619707355494782534849892284423347136653636980900170994832674367180403214020090502548331758235685165782222954840020361491487639863874814898506632743681147669279189300143085682952530341938672157587430206540255643126608991542685620215727840863633360874466177023831634745127444617650969556629442263979838861982047716255178706279611012235056218362087834047849230763948223078678817405748210829067311565882058659056960409550227723090458514531266655228576685874793486356265443225277141044571902466493829513469449289961759083084389995458988211606692367219922678642977556683595527092346281918234532349978500496811877495577295991817155986909042516561413246147319274469768896513101212056629201140613396764223476597140114454244578787766088269430948306873926199020678790232380121794828302187964906029360917019680759894480966081843077725916543192276240057779834736520715181503548470563245036938616890954561025561691221488044187448225183945405264361988965468309627782421736764227787856295870958976808906511735559225301006090396035781564542268712590584754996029927295215487171861692305056688174682927703463465597458184153466900632581721254786172390673606054645849470680637066090820007615705749268793733738324726869123308080091975383401149409916024035715102236928432131048189101525003281884502412905400434714058145667258302355046626501739676950629349862606827919340769854496763677757676960104409132613583216030595163850191626098791722590853360442935367286807704179492827754122414552619822369500291843178676621488674114057472946735095092174084995727408008474312116876466978585311798033131839847921638045638234652722255559059563712987102458885784116363578221578159420255708246614087753266713545047493117524130941709727637174825019355375332682608559760020205781374269540505359958973403266083967298078632674117051556841874476229102894398951831663265685805941067238883995599695806367649972443782494554085029782289033899577843193182936267286650311950241178982373272696391322013016395562690408905679036764668662851226140289032007150663862444478812461985380154192964218164965495518461504910010761968949424685945262780264249426488843614423824401861929448225797644968175521052363510370211158662840630179126808686878654909384835721532235916322604063037579797258005174832904708584069843682497800178484522097226146307395908151350214796536589325881448841428500807376907746312909289727292373424816990652130202782270140703163202138050924578281833311801492804795149052263055803891139904203905980329903879788535547219769570052412350841432637998275713744156923607840820697464003334433328151912595856122951292250938922898232366653148032554045417288358962513699631949213289375963372055882096787488318029221797589018873271224618397547751116670000671729467594623138788843224798419521535150377086602833421087606922739577470120065201622124177501162534641119984228304012194785620540397822669502089494648717766891891100720411974280871126228008561097564204659224287970391226065318094404555853536775394262792657906350003236373381379183174144295189019364466470506702553735324422958885365544419522831899559191298758357937037932755139171401394253862740733975780641126988032965027104738284750931395044267106469892505767536845152349678244088714142925854933460574802243832301546312796956110492657586014392376958892679651984279977397791728257183889131578270286655005830133456077188650107880524947994352799860815071091561633937353014425379168793797503096633834481833141610544668618215143213113966135546280518815590084345739856599283346933673280241952777398940246560417488552083699632505270668405612184269336607865106728566861622282757065181223883373639567872596169448307722394327398170813357826998405583044684566970658320502836493193580378792358999525744556399412439928974234560282401170293623032497467290407716264276835720095668281958480319822725341615370551402905417410090974870841140014187790533278371486891226060659138314565392120186364582164816368937113205975624892225796394189543445605609949645980714196601319372060402151880164313989960805997939351851996069814688470404322323224638896094130824335384840277698954476332472262598570164712470305152694397779752995210303763684589604782041876577382517758887522367667836514969184342999780107806359755792317426420617848384281203453910173113895366943908715699357450541938357137396186995665528944268891961733680466695639266396100883533235804846372996840796667609220507940354714672344952610636228803836781559388679379210886588032381574560083678610059124745725054768013576642685433069155977815861921984605196243145111170145446322473857985233385955965756067821805422416306661794247717101392075066775158225085798693729545275941787070601267783798112309448116193315006737322249451795367676155322339934088585335967421491684344494802439004516159938701642937336495457201841785524163468637704404527969388556443038978617663276773363124218410849120560023226178558037653975270583468764304433172599576387962912616220247025114794923736261217611833252708342755424125424047346489534456344093205399744317841141244264843906067779855669729764778978193233175445106641754464756707032685563189075693584619349220342358972415279461098743598070663178039885003552515030754293206633035584715359947388773415675451403773170022091000709146433431399242376966473590953818507451852071296627994022151112840561256816005969838760821771553645416270630871007286586417080100560991505154637409904346848041070793559930524492847078726648935663450159984367264748680211112240664121261452681043839151148718218943555480503422665057065286624820007535350973608884180018672701436506970697769489322881888150511796556035328395583312626832448450240609703318368806825040823843525105183507314675713919658437973355926470420593318810972052084233189924308809712933504888621572916260330011415359887828688729594238584153395360336352052572564328950190233714655156040193091285553615631337781661707055902967096847216866994111752657514751898029835320550178831901513640024309752052089594119513234425872963180734653428372104343356439775337231300954179491033616017547797957666279368777087597285384518784318400611437349147234843695703358502022880776592395105250163180792874368649602822359122623799553968049368779798027384297398866110642125559852506102535214051887014190324521273856715443756289071105270423138712829722713295477164325391012001534765666762101435226603285196209890998085475209805651510976483669597849363112139485506369426252588907742144725663138333730925982766238433663422587970197434496761981467313590375417151256788952437359618835816995569265386052874621784948470601095347845451257157148348218863801411082985411004014618714681170570384185755118251033506680443229771694693926807036727875542140360060055606245744003615002004112952233974361152048280102283135387814586451137135427374328252907720995093603801921660120501900538049082257753788322977086353816878099664560634082979115731863954818854770065714907830149426239044152837726093410797425109718988689810857955253966260886623682568359526299512476315039233638399269792431741302579296553471800313240692137566012918498308290102663140236553753979042751654164402788435738157261842500163436547982366623095510070023483958488050590590010060327417357306801471875017659030649625124437009166948185392714355810031833732903795133438503561327704229599442255735978266044920013848722731964286727319896061444942672432291481987955149718128972734222714785090968695259776146850497125406144335291392836402004107869838129149103455737257897763245254191897023619057158218096875334227870415361160354277109843595673836972187171570201696864166557531291642936893834344325363096326227137140748004105183335146702534667593134161995073016369997265331767639324464112759843940203489789298932498129887388950138367158207334707409480988366658783331448980372625457043995088773078212873259180481303080842390102028874671263582610536648430781999142993770165370500111438658693674100779582423418288157778233274899432017174420993269837836929170332534379946010495944989613239153075717517264209114523275779988886462079154068156885940173270833753270363228053429383536078174631420135396687897762604734778219914237199100702771075206556759074870024986207299008611928807981762991874263443640468655109342805879704292365285291491075640051420271106174427116584355707923052456393157519181267980078607475773828572436853248901993731062086477831501271864897239831985736691984237989370945090905052495888077610680218853133138306325559297403644097040473263625881630297002118887642994547828347112353915408799011873572449247774258840895696854826482239004281301003718664985925556139007408496482074269565729437483973178749838118723990748116930691120736407622101974647537015995575572805348811235848013775918848861668605391731034893286037737310814344905680398712426535776780727255358187051128717091157252712795542672902593327402084077830090155427502164704603952973417794803107708508958354897116563912764704908936824944731342318804067693828016402451435898584428399284646636544915762137095011387745384478244726646627610034955956561285999410772426747666214704129110807119297590711286797730221876484860174442456837856322444081654335389115530367415415642407704258806205960337656132986722968889710145144685600179926457119123468149326393544904074238570460674679231372935781718677363831999790683509423330969822488198743908349069257992289842450121306037124490268301564019940127964804514423544849072929499735230523924092780700100262548103092606179190103787411182437724672427965383566117654584488705054212085403093335228649156882794719111905640672107241915338110209324543835540392586236636648490084309440573606778623803327462741066680186226092729730289527498106091387779097560008656292372663437459474615818741802201425697066989069961593067023373847843580754953939750582900154791173197291868398872282165941904066741406505111873022398922432686911528433339151849666333820915147382438191439387770412972622419979552205704254654438186336757263014044145785575515025763236841511061871145292732497131391838615392785315456076549425529666377348824461677377653651326409219661832096921633949877043493937998660960691004482182925284461593167134140914394990755910210720552347836316197077836279507312830180315295772822229337629887612733098600956498189192420438561114926261050891142288221121252612974812510181528213906740654566760940172217930113924474277450256046558365688436825907721729737630243274159878974193375412981938822832862442019614619460464078809005127332567764435465475199736974504275841575446652398937810966897586662595604384942676013580391941006143310295655817535534230948909715827625188052129025315440789817912558928848201424204087316174065167460540856510348774592194174268551204167053031106384295612302628239667000288635077981827813095004955088412232896275711971545450840588549267637007515654066205712374560364531216225356524946500443835502807559327317835877239605954049723127237191332133961709754719814146096015676468172071403433277889723232177605743421387979647795107817201541610757254539179296093222143591098260736360356623532157535757760552202832127178414757900939088757355872169604992882329188212419989325491394409768216933107435174891200658688611020805756947392964367118034266113828727157855608467888444859045471898431734651252969050133962087451300933209568248388223884942256623630160141877251458160837691411885309425690852619110105210753330158952152793620450813447408005224163113640717751079210801678879602669440973071269645729851497215205662369851168056067306586520490866814944360454174920813148820186172248449937384375558220581122671975236164487852898313806857433664022723714575181262429150205104978558262084553241130292076883407832368526675061057849161910884014591483413000583543679111175028477148254750733430662167078165300820292633448321458978549796513578066626414729849365933327879491406711922518177912988678100888999973088644316307121246556220108711701331789368371580238960843901392238280058269116310771111406047295783992606548025021848772362803809378938495318938350689968027570136227525895520270733460476296173368819962785266746553639395297437232461889970106670903001166482752317636863301215404063043393951711454568966748690168706906180005948922656928459700854100475628556269493389489095108767756295467715625458535800286892248403654696113727797983805151760343607104907560110355650499853006968685343408184457496062647467772232824166041719969599732866127882052381776501376818222504052296276278416680226686611594619903995740250815922225070958963388487042653403298980422346795734532405851690990291515182738726069825895612668597274189004833187150231350577679752061129687225943676547768227764845494882530654504482427581889386102785591737882139677218173381603908064134081600560405332561418616868280246001002369559098343655469137723359113939603192263333077046277603787467275429128117050903871318992059891015787857323453652901126777613704309067011187383297836106870426918324598763641892546364204966105703602545872674224919502994955653578118609717682901897552056179112725914338440042670851293296848791217804509602648147379571721827098634624450264081124313328287249198171215938363128143166377178757217631929989398780801669312865927600178680107626779438400582555948849587155804818389066181464108904691234852389921315498003337039088847761044006818475679667802153571304912293396140316702962332729192450589009962558422963595939638947014516629336249826601409502065349620859075966738242877001145722144166868335528715928170439834737969791369901270529753484019624681253861620307547011112084992480320158205277315701817420738496205062885282536394262258939244802173073462370335124432515449570991006716909793297204438672329344597619419490263072634869666517972112387694642809709204488100969576241178984921706422582184598714240092298273738161054151334243953107730808787665560673447058737562313052586736522511312865101981521100715247314413153218845126716437622171581116334807274959780854696330288560765974024346692488806655670901686994779433415166787507965402714474932823964411077776969991782658570109847712393103690405007996689579239717763389394249966854072641913221178028365044435333843644043116965698440630933878653480211369167465571924023918567697300500212000207207374505057015363760923695916420127651954242478793671820330051271667839175061236007866364278573046814768164906672852061810474250246874286820358542382004257339175192566897648245293331609711303329879145949450562874988914086068545998801490740617901281041939629760169108975590603771077514611131038348354475357996184575755745601412042156808710764181929642058269154933962571580211980957517455644564748680956431696524822615470076855753007196848598184750588153863797196671197035330981504361302707397085490228887799123580520398310850049363972777591503841268468335425579500659916627174842450944622747579075406236862766898478566733916971183374019718207582243511248794101954802794384154058299790967944978605381704010164829824670606123363705407408298852704910108859927190974542014757570592260199642635040963594431085563578127818207908127528491348365856285819343812729333591121087775240031162854936023306671962867994168159725511172363364717963117678558790427640955652596601023538442672631683439248340469756898175011459977169020170727218029790837722856002568814102777113203834799218249117912170711988820171908922002533073249868248368944994402423380459079880217587059536538519912841408909671806543239926430497895827279111176044592367868948989405267898312837758131369479344013793980991772923748909097164189237760556240486407728320382426021664642338435132260133925023476119655150974310466506596028615416860016815101775744036809554495110534912426413652531200841620487229808917737167259175200789608149958872833810682859605524522942743923922071983071990420783324709377836874329616957778583721436558138614186422367577004248845758933465004359730277061253933096127040738287109410622683669273915555236461951936106040103757683912934374100884046947018597722089233313784222606692097545420350205260747447951748193904376014376405609523458612494093587163543842024541479415948223486244248054090132725771914152458923118464114401422925190355769874057022603525007111314243130868104075058176416721311946547258004120575184210109783607120180865566893451934001109826077623242032129071696932896183040695931479116714829148940124544782457465289140587099587309120275164833919056186930683766891376924076460976093205543185769931581776814229768122574704765546845673966810824748037285409838783032471175824348676320610012335270896950670236462678371491782693097313334426329495613866072527663902485406314028936676756161138777253332830618380098552935802645036920136667056405266096002840212845905305883600648810022764559902257052899475483717983867743405706320930313890008460361346661950082032145292535210153039019893934436029536617144090587739359845229266586976122140959709346113836512683381377122168121789136543341063444399141896707319182434199372318030910846191845346317430201157119234260049525949562134288978139802074874086696741097411345605889078163362282548916176516138382442348009977194050559939446913276482826077481721178557924265400302450189031496209678521275109325866659302402184996849384048549742682478131386509275770470488919491283353367341560543165201943156399016571438194308160316844342012339533541898795117075843456542812526348674425751230806312466590091756349150201064999463273434667335691146080430920163529644148804675321207882844217804327396316566041978801208088472759087764771655035304380274686170629023399726222772315290708587550764574790202597723336992463124392272007142562705179934926134117930426969131213028815821466218374247487516750892001449709977529562457816604768425830392003800201230782158049227422332884907742948761747776479534053531862147951603745226087125941280778563732270578639253815563022845065986559743090873987737692390916241452879859816379763438396322633530338559766778703414332696329562503173189364367525529991201065648246875022441479008200505338422156428327372194383589641663273059558186522359512856078890152954087907070740482725255027870295752664901717057824392860233214391670704803206591647320793135055314467288585549410676033545899474678516991364495546256686611093841350196292039984458684797729196607171321253707345043977360660238885026739818664597679610129497595047583020004837869567897764497466390092101356559905440933428245003466245665843331276656343201513126899402282444156180488916654462494272554704276050243481969959153169249753126124047655515020568886105367116710205170962531103419880678222538773462676484820314917565780022951739627635382458918591119478656037854665772678902741575704552892602988654996116973292064763037164789106235872080403131830268331147099373484354413158329584841643811052393827970406573775357637752856181110764561186075120470454963852238003079943305877242494546118600302869870706625564619682520314410531278221405460634831080168573269959611257312712645084506434285318833663403899300299911318953066549817943192608095586401838204137928445543369141766961697689500580843185548951325414826838950997450158865918296072105596753572975336004004918569537349756187347940680930793716098072600999445871524508202845789526465740814365364000476101166120716947353634872673089255678372158693074851061108058833236339655752277075336232606869096102687443873486064887842813590507701867891598813051831015136708934913805113461718057632559074284563492807964433241639837488838561092013807845498214489466720435221916717133854231286911277737885017329008440405050350039620226831195804537806408356353780324916485959378886373791845224430343259870621213421440088005531617631140452924801761912555631244272590121383498085932408023237032539332320836223904529990159272096840745260934294246532585889418537231399038205236248571777202440011409201608300405465621688863700458647631804170432324673797947995372044428647921220092519290626581082327580148086492272747344916373563910303584096125046309798054985091693349284073645147409439170216037225300734925360620354283028962565861888636715573029666955872701476779312293677402745448191053118232521955769792838918643829991223174176357231967737460720875099078902325817554009231957176775604093145598798803801019103279157111363166056456254431592401451798206714299967476223015844989359287408367557304760666654687222269243319754496148906807200450346250341749386248835271445309237781826037255121292355232753202563309916666028690303815527967882380734694806524665302838223345125561917804116677953473195442005856251063175701549193307750858775633966661072210040277239906412907197635104562406683692921660464653561855582282259297241197034172445467523584955346540699737755417987258025426875539578434980262102878615576430995961113760877527892527988519930852409531648922019521536832576811547192932240827447863390953010627077085662645646753640347259960598090007897360024759170109398307767240634911398972072025527640917238493895483441426680995366966072942282870540262170459020946894656941406729371838461654260104042820862003320684671343767090811479014482815463772860715414917827602648096516676900508431289437076246808389585896957200424075689987060131996628170172057680710742291752068968329113862512497574584842010982264541519976769983963252822162369253380566379768355682655373415650514019265296277285405644073026472809350862623018895171758178972689126866006538984401756373745751468425344296217348751069676129571456133368107156011986962004180143703892761872226681662626199522177424980254331451096641789028929554681129546385001623824388355159012038366713161580855119243011890060779420185408625190784062894025933114096284694188793882474611545901827081360057448247272618118041376388615356087547372533633448530386981131890387243443265083141341269662286179439230827946548055269956011697286819682086122362633941279513220792937350261892155131407947270888466427196565224039317524419744105647560910901580502201942901188869619552117398416920026556414599368943828441313545858116724822763250487659287372276970986945682778722914425868018817657062786481429397729783884897441250656582406421516999177055257971499771323989503555033173659915677153466251833263946389951783917701798812984026968306257927172583427185280625474361570312340418438207837223974025432095961518879229817841905355897036692991392277728503026332715619065563097570055297762878040831801332396546619452170658114190622940105853683579093119643809504410693296083722298959254713286046067483445555326527347896424760030801609267088938918713868221502074395424043716402877609552974851848204598760539737905874648754270274949206899268316473621243768148348866011455860403891716224007071676107708682453459925955205548957571294154171508726470754748566838923452386137508812576603595610790793601220137131690097140183016708155725872369505373496583205038948410786076237873096099016971329246780148313406226228342028256970321949769312833122725997757422022585721000809251166742877324800901547262616401193404939057856439617916265672843537978327613110974249851802715722735525167899398142855070265738023557860367251939602177325577629621181097847022997094963066453263740557005428855890346326931452401071582933577975759837499360580548953497388994056591988178006718565609078217014369489045459316427845082239512375413308051955886333671097802947801349075763050541158916373377850062087435865521964713663436226294382232008257738482069987447249402309860405486084408380117674696467583146881221131595994661398426139800000570703126731290796639866560504574249375963812196746668550863322156415407235179582195351183338177804790640722934327646137660969692050472237345023109903023456482846721408607460194942866174340486512880848236731060846503036372624409080956139908653114235218814147357152886327741395908276761603562813958192448644511267318100835722735727667793977407979291306055483530230376826028869011819523207975439736329794604033829711334600584798354913377753070642774037915790689217534748117128775942973694410576476791928781376947068370277486528044054410420831822799937733056627114361278152597176887782104344300214999641513705138786456479511967633995894383139999459876141358211800701924774236551500120703576353535560515180916379722221635138998418438293567909515824514544514979301360431426114092089676611217723539820522384411315767629742579669285011982933346994748844390392518798155993128091649585245089866833188415200999048613845648334775554264924145396500691963867527899013854911108594977478613731733274021462243442727188529894416243511083078459733982429856998360404678877495105999313020016590670737928095722737293769524857636790668379872204735352951148578767554632664747918746246000986446363566546753569723201342458074449215028064467718157068007851018101584028838242062803825758032445880012267482935852013112689285346790799867852403640802491197692782159269783247155248062943122624921934444384769208936169604162726417214127701615112170791812915278648081523449116045627714182134373636720626779749515129530329224960855317708888370426713661548678098103378947528576617402915040091654201356755283866550746037653190649209633788762126943045301782214704780970958622502425376308716109104765298021386103018357839028742079114735941782202328190403715814648566407395783382452306997558901502251498432004691433682741492991221985918242609381000856623143507505870630013090038586668237840992108978921641324246970848742283293878423998039936896379014946796100832242390769742345787568163066219714910877902982293257646168252240350411477190591852673043617969824314064882302210249002304730685704559414312826247293571978677482235500115478725197619959138268833967976514927973878218490102170703196125918841918036229465766046505641477153333189768159379268724482555260806729092620482926036503572178729575874137864426602908595918837560602641687061026279307599893459954566869921062004352203903935204615752369104514446767694360661462372235128655517281026941900221090325088123515464287489591562551941771256964353040481406394484010375911981479615125608380068587528928767714206363886907728243589286465624101773609173274465818305944610328390814950962866465601586725595933811475871792620458885321380069932830364429863100796354301688823644124799934600955053207299323902846875608645692805318410947693533241792560264618098588179729468207776191349369585759404123852688232142097413550978680625996133510399357591384678758329234400970545511623374885441827034948402310450699548625018156395068340535687837494600896295745114312615821862971692729963108623671463900456948610558519213854080639989498791608111861867323342197192688263489553971956309039420192642566084129740433280850781314471858591768570745357804186636812990189005612973051705249604899596573113406610845870803244885218484547563041829666389490999750706146194628213111160856870843358654219305458518943699263514276316890031604353339241096567284815533049375794002068839745984450879521803241946699918138151514919009029254892729858518516425382977998916321616352972501946221511751849490221737158747070056546474609052539220460981639540921819631409476583066462430125394679846151705394570225490892958324165940893814086873208764716327889906023968351428059186087543898353423407128818434351900271517254257177357777565332933249472522178394475686060159552371319090002267946484211860553541827912964940288661852661471176744007061203488533417148842119974701224612662317370936599543065985628833231897123291574923073118150353276552575774259708040833067622650212855737300069483194021527288636625309252520404225527846231388722511774375530926124060245796544989905412823382232986362024396175921648518493756882239872960406850039130126531951358235421058023799754664822997953026365330655172362461992653949153115225097777874526379556802352643569244912911631568639263408671623691992422724345928248317652998065541844425352392961448292853513933601714840181644168245579184510479933397221625682422559305171388254358167844359526257694489672299008197139245773943222100035883748585312546761969753876204542872436385176175955427942723335207739598824135527231970281635798795631626611405695615204880687091212854835193815516583318876157877744229960107595625558572392481342548196767113261905590072165064660848536849314030795467190181796114568359289661717847347332463017608093479366127022854511931380175127789566138445119998446086151345009896959721156668293564845210511265574690994688690307944551513793630301224048196258314202176562373150523454075113261138564514263990678895784094858453492281922580164773745685906035270551296321895422627004145851107938252588773957116359838589459212697834119430560624992538858679069551393161961238710579680336639867134491643700920121869739012581797457578284361597474372084549111512935145707923917073352253051305165687715650768717702152424215730796004486813116886451119770158734551650076734561714648344235818523095490640490858871754924388228709264326927089010476992919246064973928827206427878046856365100128920454526360711170782493875989471230166450940604901616549926132913751113667115321948662805167077148900888809927288085961261832275843110093168989558886123917498775599299366756723126317076190942399125574550676453912574420308239501974870897319443592772885160979668595029317142220157222802601208529448219834404625905559704616787929700491371974362355152392501914521732424224602391928906271350103960903499920430953130730493022382838883220257238632622543579270679599771269013451961094038656220579123973075932033774562809257301996672130613800340550384007747094229896325531092726670428386438169910514782272053284337063488361364826196647973624284901602266135295853099817520327711384154774551272321451866503221451430827382395294962431819556201200381198778145937672184804308468713368285109104169993546801661840936385993244654496943349342276557636291875812278818791741869522451879092686821458710798115847783412578183095442253880898168289280697244217206624552229617328907287360265640292555452680966656902748268536032208575515180357592678295083495757329013226521723553512466239005182678837057959321437076239676966622263478216906148374851281010153614831161417753143609803341656812114834960154569608769898060166277081813623645187262804779488954560571531146352059530499795201680554475654317290263447213761265511165748899830848688791501186716372209617135323296150322610875752515602155912385564567369194300648626170842678798337916083122373464991138313581047216845500492435458919911437706624665023132506587831072915386892569051041479654919281397330306939411620897783182362764774938690945459482562364319204502346390688083216426837466531049346979525521030925783653158681928970324864865936083892495595337498364187885183228546957334484503887364175747937526356559907503670080572999623541874074208130975139898326338649339609491008324894729409669485498806370778788012741589924798682444692238814323813034343413919779248187018286428417518770785513643862855641218813523410167493805452179953766707908600145196118749169112658736244550479964586883617430988391135628067959273897625010083081310554749797448472113918307512517221574252345780735896925751636637367479592139903608402101456378780061616921273253302099419032852215490700261241704324214827227717323563752257990648444717976411591893809719664300757065175241355400900670759060624149732798552355153822840756247249001839374859483681252858749414027256853585433196231115098336258495129282625792991427270350864847982434219622714743998773236909699191808387539026803423697663799760703345816034809242050334413121551831495369712958743470982537711670622500746441659851019218143606150388205175269017227880934901258437133732463976175295492229643172053906327149263429283175357482099616980612119807088368908429772889112508904161243538574531447512455997557546572184324324182709679541533624190293083798927902454688944862975120697498431033245947559090884020649536882779931470545256760230716872630212758457045489907767707222523732405286877933867688492387203715805137579179212140127525721231953145836241846236423530865175103249519814363563759008203090902288874890701095486202592695052909060990962399485187141987641471399558829773338036010844391755052128017326030912538792892389348577327062582153665611624355524890224069181953415375211086021700139364582840812397034647898573226883462454393353251920133978219737977784703609286453115325630404478294076210314357480283318978139965311210223114285196863607431896313484435775795798677537456485424052565340588397628004341706788634479323325519317736727962396500184705325515499449664541463226321144233682479408955787254550736222455151171461667799232535553240767547221566194068961602699797448502074731548470014375251258032507615940955993945769607296500252438584185945311475871408654821071083385760932495422940363265273911176975773366762850529113949170923881217272859162673266827014727754020061386841921833362340566082432599886203385573599424878642138679431936615470422374192518518453527923676807893105337224339181882863411448532617406665080212598818170063449663408069757088570054701063300062919999508973074797256561862066050568508568139559356039626670401762966099748947796384285673864580643214289531800152272122626410189865146492712281510229776776031315866856530684956221948499023280722157828511404334989153531798925509419419810659072572438941812957839403372791545951136211166080680164683213193321710791261937866546130170881082168903450197430684216498041425468372312248817178416924372284118524635607015928416572978958047610706592640641179718411326849661082392392500864653727696348639053721020250364987621726220906483866704742133079795011969649011343701677742261802521540945473567281802471212515927726238987193884600505402223948626737894828074103915844823735611342534408016658549492015690149030937011935695396268912529006567883114944904542281881316884246558745636156183151514134024848379261022687895993021120730746195660417137554552177322191354200571517513600397153701705428597201092432114195967749467079056612753606038886731435198566143911183451168498363390237233192589152804521229746917730341766252629223346781854649275478929282203637903983639410814215329378809007532300194852641413678213939189529103313363067384339964994263845980030005824779416417441747028449050187828460165204844594178388532634727489316563231655296017599463319352028420574013418613752509736024845295304180332436833141507780855613013568489115176790711172951865760767779271878207697769846264803284353381009528551919705619644784812520749012253880368778503427865687545676493647770135309913010490358751154435982166234485729056589798074451165149123511160919452205544647996063810812971444543920881856589335732860790305958939373883751537339945478332918939085448573439549461482787005784397853777358454495675433063211570454289757584229588817020803626656433640811590008026553280009348044177346007910091062310498742619138409121340584267995609624162429271733405014505800932903398966492687961173569965567061160689610125446856070153782335300141960198340203120955658388492559819668351108087861272423976868098835066716217015919261246545742431029756292858297809100334983718703933090245315732741278688228440078063145161617312056370498695736163686196768477324504120446120628949030590580636201252105988122197279830236332248459214731364048297298661086781654425569028328760682191688067695014946816148541466568043371835774500330810955331016449724209012578484298618060650520197006701982192701770767505704249821370914139014705369364051093323635313367314648702458833045845038359810138012800012817022266380585920373040536117649954763405531756886026597052353016254507534355522703986630213043474617847676094815058224145900090929780235693951993351191742949390747631663538319593761235772352334223796032967088071423084365977910863459657266171108709775138983997022689246580620506805304051410037634679310341409596686405793168972447026844827214526400745718096557252854574500254185429859915579161389720886778746064022817137276375414821122033152595085271616422988531637308599719372079669648733062408642241871493801402646677165809672385489393342386716767155271964131980813056008330583187260516349133742247020018242509696105503035026366320790673137703291899641868871795545218822644988754981589059810830758565221041911229524872353731510603506374947287383324219382105036319224608011255861312801504910168370523446380644802512780723722338658167988541148488119716845925411302030108129577059782817687278806942682038127373067690499727804762939155740989496007816336853407130781197809747788409434298570627396653960442976048011336219712494841686577342531139033207663489153681583986882892032170417168203617603887079626435846601599506482357351458859728006051261298972209688337900545216216045793527927838810167697229414702141673493524203760031890142181716119957753714704429315548413581672864729436038174327856680244327897048506610186229380896465322229918110237822407228494420207046112398313484839467617831771483128886486855319771484605670499274554938255099600447945853139292863830729987203950336669699636558700681410244620825476163814110370748935578934033755222941115193240336382159264648223941852420212633426948916148701864661075451854722372124450304074735894704685497496634494152932674836241845407674827768942582095069305648286828387814498601373167995279310094200756133257083807893490327671858074354319168209297717789896158328461419668773855454925182851308552895686934607813386673829653272876328440741791013177429348139158417918320427020522750410272950222616455324801693975017436984038423248311435067683993846973392662930315550558714432615805717797238971787633093482651412902765436527925344236553364303310950089457140910002368217861366116097756326782493250940596962622640099124840094595245901793028993222210709730674328445711979422899873384637866133284786551503219863515811300889052878382840312455443369125199522863036906908059612626012181181460861643002696983210706291025055535920661146760042609715685846364684711560499534101665907791626889560674595769827722448011694762816468945158859898466653309502219479654004655114786860039127417037539578338120883018738258555411250012415118998197721436962366460821090756262891060646703871086358255306568888645515996363146364569397729911144563174084614415344042190613317445504590042192454918243806589856366771473597924304691179308084819593049514389910284817137148238869074336044792056632790590541596240934019925233183128727190872144724408611609259201729862997526338243385616499618874396131022836254915363719581894012818054336094469894655179335687480641468820906669315376843563434381451613952063284328859144831407582383690991878496847481424445345362110140656035928260571026294844330880204292338896658257782932002350719235863185695485456135564997641441219671117725849918637054475794884477452505207103722890781475890359552482050572308493100925490806477612556450543255780178420954890756492889005285488074612898335681462268393369768083721950802886481591666750317352176262284062846198386924447815483925848432366814611484404580806775142423574258419186611744449534538703901994573856079859763633019327407610712271397064003607560176377069039885764311974271247008119760641558368324349921855981453044889361831703036219970142882520989415474039435568514539575440985115296761055318182434513466350709960709619306657444004523959306256123189767159561603456338825398728523916804835817858661488438463874594816914545352744941870641639816671662783679491825967101251658820653136932310413001130072597062672480144544631909906022463066514639774581745359825843354655723690064225819963295232324113149417937726286616001318635041985010391919906542772564302909935690058986301273377095968548263778782350548578200985043487287779049089579164046288659420779088177818569286804617240636847893664832345522014362205184142751755646389890168966044601499932074533027976093509774567157602350569936353780071847259145065070973653981961712690153517915201129802975280257931336653973278330654080955066137708568104069852730214541115532506352196381553560848346327592058114083391851331925387862270281152878620093409554386442709572915555248658758320517731475920717587854628479289487679821214584245549443274953714533819726837109864980735306305224791569595257306542710481117225805382369991293153748078046563126946124674226124421200513581784993553718125580634291585280288038873158463826759796531783520559228893725860446986647687585641167373235517285112799163320989740617553724999382965186584749478213026336608719194355330400903945427300694826724863674819259945657158358425439590880119360204504853049832974288403295731740059400670235452283721359023170694627480402055128690820186616762245377879518688039379401724484901783959943283866088651028825305621410559711630394274087661809468817236655678421623517656921654966853610512710794262826658923915371162837427233491268672137672367119825429093377595074858210231436601723833500050049218631291188905451700675426327440809197554449477688799959375809328637679120202794056705560858589814217671649179555475658755911735932219619658307665250028833621138983587931541622734110290968461806969542133746053878788571262898171806199417908046387125759559803536525542508173550037237855922818930180492320688397403590404065044330556709335156138545774665540419953667515426955331282145114268672695873045245181897510931794044779000989623125053035036853210742095178373005156724102678879969428345044000720164639081654574691581345113491365282164165518619877010147100619257043493790873804347208011112769417592762606846498384490411345404685786550714177789213059630341748613384548264926969247791552093940024074876683983707591228948421421640168355614722381429787245305267436138785606645494304411105451063929378299849634495812991284858577843051761385178423611392236279097102164079987073837163226892733387781735328687190004439121581814205781937195141185626966589804454650724749852514245312638545837351952299952558609274828588924399999153755444315093951369278730755384786329971996619871425182722642218124659292124132800886638310694642839144927931048922884836795649273526739702739964064131290833859091802643866226547546365901335165778110593262803901962457804763510228065667182560787178940855344301262404252519669319316225975589042940222614561080751779308074055902665688884730938091381819938252714138387025550150483724407558347481521870703560485033311534417075505253393189948365866729348454317943525740747412428100509773225653898992475056282750302849408264334140720220970024931947126072805389266743641270822335744925859790032649771231654456553893591925491427324360021348508444107771341935736664758065605006098029144002722737709744343285143688523555424955438955633793933707127360558078315600760691290853524764876285925277979358192446999019472767277443413101600899121809236802103049640096562522365130531264541172723920368936081156914622625613750079982528349799328136357870657372607624770020552196710803253869974832554708978815360812623007098635380161629667888894438963334785287841853950512297009743262582586789160555355771271117071060178841275640462503963563481724974779448058088472361087788552245270183864656820683627879168964044195944268476822003140183469723960255850805441611913760783306537168777386425704123525596713621272154435132303464554473056943408149116963993477167643737696262619086661222041851743083460205955198250144271324150879057741846038924007722201751141847175434755271128907780615247576408667954073668607881830322055348978834173769417318862852581846078693100209615933982811500952293805642917849242149221093635413119127489806106142219641766666940543673961873742480126631711014708907583399248284222441642307969232257427370825099337082834008226440456381413242614547196448589669243048704620115092578659509869954633347413170840410764508347257805971201915995421472185705544231084340341734404888846442223005576808544563815537371378507130170592247861790031270292222589014041306524161914680685076430196618765610662596620118761532187375049708640732318000247934673558479173848842563024470145105779544473473937552458784645045901885517906388644378685370696291241077778397890982863229127161978862749806385404512240373466440379996880647430209235821005735133803425988894367041663549142162559916928951660865572294793590981190135640158182600111201608463423277074388325538001609195517067624602087232239100384939857301878749586659938416817103205354097910411358815736173399086407882764777348137765056388198035674691562979676666755253063586958150804611096697562810316764495433789362154268112658251242971123288898942575964484388803105437238552508506245230158957385579478557257688445281423841308549509788137360676994291943379130414602753121141370682383353630805979444710321448482759931008963596747312640093666166532273969046386854645271230304301164358570703825214712960470478757210258352492332421071635485731866490387185851626164507640129165186568706862901135859849767899180651984408951745415629157155369210323665964009767202963926960912636360195823952177775560265332470438915623140683218647215908212584701810774460832024872535099162016183712441717323219536160244742711149655276480745722633497839922395793768388861047666473453729915916818622941817819529166994596341695091654507504187472680270523691189447146777110375061087815069432241310821056177932948186556220590881675074076426685168985333480937471994364860663970055810926260056323981021142817954638334713643049812197018462394504023608018658417960120543707946961231230102094774816198534075417031928587970064977643224644455456743221164096564755518183250670816026134995465442501423634315397070830847078633926058588455094303345320502956114908220475629195150178226908997821881748685434534177310584498831801890453790009883697576628990056388615299614225848053061060621873678433272551399646443376558803920619147476352426034761305564955470368699776423064525920809141864338045011010703133744411492601701005512412060087063768762049299630675360270901412807237311815430503810737381774117844694033933497510798130177830840706800429855250295725900643088077045129401643661085542749449049828880055994991144750751522111758938639580004659802412321188365689038223094155000600139807356292482214169310864807544596607250221561397537266948926033409746032946578807342915863769881573583018603194827897949611474410285005531118017908752158512635557651521225850497357306226947800797570142382187770314535442286922908063210933521116305119671939119268088962176511656876640104952205777612550453598407010649210313358800264907513656089330128342947823761585804458252257765575645848242455494891024733364783653088801126416503866185797845752150923163746146756691344996225029997699154187520478055895105974016469203410178620332760414145833454233284787204620658176952643141821451462699274549710732143904306294089406572610738615059145466533576332169510824950433490660691640401530881152946550803928456871557209730916700276558625575991792345726257653880808317890202083772001230615559002391483401955451034438327172681970616178751716792927310035023503247700958787493714642530222370593404956634716884762363457382395329727797130677547997330507187158410833865824277947198591742538844107250167586109490051381859267795201868329168478181828559227165363428335434615407846040377946127807688805085323903068714529975423599458798187346465274802287182742851168108049016240787989924691641508507621738924850221086801123173578497799967269530861476593796976113011434206892784816301073687337254112151068107685531094071016984435208103076734308564400047141185709345209115285916318875458154385841762797304694120012335119218001458301005666381173393250059581750896998963829973865750958040577025742009570831085096070150177409302376916302980908585637323128345799180180038864824446884138081581064527127626791034006249253174666745603786043018252212189215048899575997316418418600395802925590874618752576245780270229521807768134877153729285384777266048209644615578360666130011856855226857885767269534687421582165005102902687179696009266996885866009129767118538279122270996928243926151541054822861476278386174207541758007586002772548642033862249427200495357374590902852082488794233249615446941772570826912228682783412628399458115823675989964575448314239014510289232102756512738992807018159747923722389777387512896627183685945179509664976333694793460365482121768448530758437794647536763107074171430744744235046191813997923327671857719537970377083817018185493894626060837009984709267914920216137129718424928266916524967636655791078441576070142810423543519982445023757053192929607260790497118859317635578352792497224209403871913202988245201048937102588839207727885623732737166817896588215303211043067306918257502227226836912723316344611013959455652381249971507168184246921509417581503777301004322113619288532062231842773672354926233163220058589432459723287015394221738317436850425233657977110655845064760298907030153723152788070759344517450015685709348310164233401245599091037609945185370581016527525875017091403404068393322608707016278502210636957487048534767292656372546280876756978662723298245145359882858124925683072373753141819272813389464282562283732778143124160236497082651491530276400580091240722599087597367575950941666836344258336369042832514869648386957392782800297916109308458419129423025927238781382383324167616043068368631208365495094287506866849210586810250762795838778196707602281883036101296117782426540648852341134748165337714315183199498512114249469432938707211476632914285881728944103104981212496854003715079591963424221469002745953708350039953197995995415270838149932008232181197132549285292210985200719060379953109654018977594702436567577353017346805610002804668610286451975902072759285861821021712859697858575688922585250309709067435140738919842356391686869061828289238967053604338222842606916571223117424357806594774837735023712955909626048436701328948793108225530162017030816080461695594348260613613255741282927020466059914914522539940755392893217763471870902287491801304348372034977193298360931858282810292464396995699431841502667163377029891269425660054683833783254736480378333355929311544993300152770856910191612449854001325888908474327550841449287920344385008738312090662998905385684663754335914959469588214618891064337440771276625748785600997017710158282465626615504991711990259315822385305142971225120632940443617635028437621140730397837856376942871141216201612592223262567539471430125283070094629942399242465130247501114728308586225199763915765645915643701232289355401623283792888089481863387317294112251327318529199780286299251813252669759949456338678629038326231513055625886516061736716188262587449703854385924926508585942339158547274552193459859627956862759515716635459008960950879537001503613728941846435129595946007259582941963858770890832284416719767007277287152180252342821079848216191656903491354271551359223915537484219813347257342751413175190051381152007760272040965634646970391142406577416298598798188609654310155152263232487989490835580324623354417158015814854208784648736972055088504688252589996132125183993709710337193657874203574490420489074858424670204336108595575372057313982340848342001596530523851985007498188424667657052085852664960687309301137451475181828960257409032653984372971407912797164188060872742966030494292966548953581151347805242214312063711351777578684200356023854517267916145481467696625443051206958598626002635241429625006776456558730027730848595749197069685147769334493996923417276074496160922209739701769669365826797131055563253269296692770784109432026716860043931910684841097760634409298791557952585485201614299588319674883903695108581492870768763415710208140258603229776542769710107853355914096957730090843013636331906084680156897705625229740352824296014873526813025497120418012620144883923672290303372581394672639324283691632718892111411805603040873378567222295408022609790595011376350218469284331024743534229269526038549452258612187203354094982387042120007328449472975422501932874359726556391237638657517957825199199189004698235357104943609157500304656057479918119317650121390277020986461627818073194277462395690212297925523129489696446269590052194629488999408119219778111063429291369702588033590348795080558486241058106638044511071543520684443350587767079257126236787870836684995234936476636078733444888179707476966616028396127823250955401908400345955522251247234198715803848535242699365788154688723959178885259373302446721216328576105798137692800583303995919589044828125799419045134411043569640683270951425390246746830797620304667667269651006667002323266689518139168906916600386603044818755814870326452518011236868658365684606627608213232273526775396022413514652551833473492392064965568257172060474641649981135902029266507355515173911041222168184669900517359373148889354131629498241945266380779451915395337882497709178915479251827214230140987092335625501157271981251494502888894041161753223279947427018446735585729438403014189051783364202108896091803240676301192949707628815489380953912683893188845750364905127483523930968932377788933414148850861257167433727391447140452063121814410285904772759687240079770610678044361063232782870772277074099478023560486150845779530576368402779056962075782704649937319019262831143906663904558739427153277019677264860014232444093335994251242093343691142794427320841578371746753693281184016491147811895482446385932550127765057063921342057127901424778497057331980568520899685633810993336988294484014084753502761901473987305887289102084717870363714057276292928556140256150750370653407797476252264406615021889763620246443758730032989419368311196928340416755182515828533591624117539990414163981344516321212217498054544373621390985629257431639515108388093168641974860319202232161986465456137151230948259766467520902374060332766723611535572208033371896736479306038251240340985110998577715862980196023243198738511037457137197819107636631112694424521781507792416385662735668483062193625639665266152691551265327519324463008703855719551061202370130494757861711027248745938783308256868292985613148362351144685527169789670944623298226524268186231967646047016884335893003920717350060299622082198727274888837477448641655691906463008318929912030435745782307178326795564178662839517370444812100076294054520334815670078607789174895836345491983897814289479653124196721847799302014198338639083641581042666267107725036868943660606995541962276940307096610718418086362009109453690575063638877465184748238187156863474135882341487292256981446967794957765647615392087585427046572835034907072830406859630318962196278290547747378999952577820989193949396929964649704586259070937774916740815185537451115887896934705121707526574546173115610699186728929747281503134387441325563946026516455273346234582965933477947072697357741104578341300659289005815501399321676045807411027329221638333783571680382422174496408310937491420851603439492814811844793452879909548672670301514082887607448689606633650263508615379473349465513130940650950941482788072902811286978325541313296559697724008607542790278666964384659179592307240310714729634699187989534164173265024574627600011938094974281810341348088535642042834854077016996765429187136315975518110492615146065655988808569579152157093682740238043246662623234474440479585570365977115292418650208651365824147783281097918561592008892110555969278588179190076533591985258032672670749674265895470057021401621365439732662933292638568838710915037215500740757909896231198146716736145875372334364340340373566694557666115278685264785012984589044572717902555367941866480782365178951150988465317817432921045409168070029303001199944514353007827846283393238551481403905422394624344601929385767883301207795581403945967974476388203430087228870681463811634125320325815937896886486680934635857646471440068384295463105518550776438540799408433580892972616131893823618824536327264263898490913179524882053267413226299813804522921649259199055248702372406755796576549320271652079181309921019376734859211913603384535592104701040401748674354043039708253544146618024123122763079634285856508102149881856081620206880720554940442751715595895681936828127891048836942436746303580777436417611540366467657513116810067930646393567946213362932158895076542428429523055131222193874450521241487009543572342847154676615760386282940841391248388865840032563699850704399661528492483273012177656752374284735304181603771971055283171657800919713773161070262001578561204809877622303610122200894846298704348984161829904939056890607923641805032648415896233953437880133989578316713544101096476533291718098015758802749826781180925862967467874281484391699122373854979570586135444682119609470028162322219238856359064207023159647474898362102194182452751346982559871570213289404135853595434179275117283929215177110723709942590081549986946831835227991086682679843574408618180991481931915358896309030169997438847794419471634539259837959749438503810900632390298680522450519903300226020553607454103261964387431680830818217028061510220784206488188384535900003803538160102302180797685105473070302939201880136114415442663574576759869176797534019641142354921733729917155308595525403844787709526887842439222764954410665754502409717394701087236020305476939663317985114272754140498319799678943986516767191296366221270425199893165036376048822874733191290772654472432862041125486081197518482585773041083116841170204818146746877724328004670338584566260911017310978846015161574371520945077395913988981083184959632709810497602491200111268165375220620475955280024256539646830246970148067542394228923803267654873891961092680664240667905650320646322817097286702789098804906068621182935263499398526118843997360387237925083284072978052657695912324552267529444817189090722903953110133836629094207017836560401313902553478937420968424807362803913772237429159875645786355545830745497629667163348227676844882579330184626252556539826054391591303153018668028768586483227867109819731218617391340113472914603271492269313771014140312924299383069190895923440114211020512940104918941214035776557108128667428724679749378812105970162423601330253214499579799691424179992876358749874705488059686906980734185570163763348495757316851918974620420528350301454096981397440765203018909088827492494028823544921104716856043195379054930158451298107724018168589424990453567680417578056627370462150409440021002049760566748702591839495628102566618268871106990785755628002005795941447226748177935216791741877735107967285494420408294107538812052094804697665358760926453037356314185014736899759389910691151000903289149963510941086396426643142977521245324288546403316602983414320680332923650298278056273951114098932229722888125217076960276033006671254417189907745122134296501806718618628509689001000445233167087754624667244267648623089512056248311941945488357501699064594632097008924850505364734616827911179387514292605241860586613639055948098728396942059332837709122449540038410152304424862413815217300154304007519867480440405231309494774248536764028655505813357479556639464486123233265172736938162666704145298757456507086905724353540222911765332079556460307995201480432464113893676596213494875830370687452695125172436519452199027620003480272928474551174544980143512663463874811751988611477014414718828154838796386810844722908769498762878020948136262696291274894029077799175839087558472416488554176075640765057911202401604113347492527555945376785516934957286528175903447388034217830876579537250295704845932152879941543005787730511432750117493079457626573923985801078157225969460570148852565806834625902300726372224507052150242673392010001345007418936480651562153987759995288092575529300390437261042741972451048471396702044094697772002548429399684933310157708655061192290554262002859691813919239228051855592076200935917518967122250501188821412078077925305829642675113986662571164590942334212855729060981338151504195650836761777227769774395823663455104682078763533902842092279035468357419233063772523947880135577205745644087412613432087892895001472897447196084173908030559052391639932961494774568067659730720896048135725537425842446100188015021277919933591302625889655175321875581967878832245020460131167657682376609198926658477556448393854967557716561093390289432299696068796709720625949706205808941787631406667027251544664543353269858957675528422504113186998061276992554818305325959302317280871832196772616594981351899258448776523826861314880035639598464207585135718554901981421282068169302598877512475971626976067031889169603024142342098149222653527375513885770446694531201744987981348528632577367018324044134956557218591991831164932239753771989874004616245986487288101387264560637871429139291235076841478838617339699710018097179246592879211396417470093756442162432655516799252625075492406715734025765332994412571568396643103469660216847839042389746824503426148071481032711585050008701731850045401589646771986456374939131728415346626013032316741099809340279791592415863074515797633172566490962429589207931394855874253422345273115564467170136996063707011899319269380637281179140043474395305268580956478722065541398193876972486925361434154718376700315474709126428852377799232253531153292954616801892023480622406948114377668072813295722551919545429274098173747815663451847546990652160854141030281373684075707854583882383413690316470674106749892146767579450270299703354365343198805734448998351024084577435733512501036939200550875840778017046700407852483051796252730556615541996480141697723500133116710675635534338174042461218097436187684507820040805340295286037569354792380289515036513154484165341144834439267494515300706652235322397394511402632617130369360823903141274916976177715758160051941543708478352590489938873509172978954939128252655912088867239348766568199635834471991258761560140267268224931323200036550073779966414440136585035632777633536611310428847485639546936697098108553663866744658134075366504283908068329419097271867014465968619190504465664318737340428096884379094898899700317447123941518418328291302673290243508252168475931045067991935859990136238638769439130782433543687231542842745413828962731050525297780983938989920322374799588348674024908906719676407038734941141990507729247235182294789728424308912162180778682743248613210940537197776956994414044819638112057434188144952325010741629696739709524543563319348968959574034434071314264097669098433700689998236878118385591323157082987609042983535040382486825654637916452893645349734341570102148860438771778442857660484410645556784782095782699632515398481512805270338486775341800295215624264303186065351530144697636828709650004495770602495519584724254600979392104800282774722035950424253582521189709766858623771017986955395625957813864280585582552696153683534673167812390780369310309373382353195042780312961128107334727905435318359648571052930064495731587894326463286536593251906995107833676721722017687313211261194182421666849966459364583406299646555472777697899170853201311281205622202544991501237303468623247720551744300753673309043581480190459554065697924639951393992475477392885142460691389497768246257563145190827529852140153404142823321735939574730094443412447819333717284356060309954861413838842944299439476604643164660619540117973402449681999271112495677331879682746255152692686268083117200826686379859761992046265403305328557481405122503127819916719073941960873889883978057790992036487787782116024636839019175389400235825536327979914565716644865892509901483296823663862702786838921971829950737493104811892031997337868383607202362005201847536884749278637429603726948309452464556388110834870436088185561763647449772065975064050129181575013998853106340773765488771628728878675644454983775867331429005999897393127029552846688090053584379576008260056068839756562523250477319188376538657352457868428833958761253220166665360432913273570393674387896576913150475909903361243352479507753152631635567416421940310945783938093397925725622895210967880272550126683917227186867793079324889195458222209964942195459954543592015211131327834795982330766188097019272437195996249825768229581822613268061526352279091745000316628413850763073782042347732620848220561921019044284740027545378264616536066870004952648950183744880138643657400759150038654685975458280589981082593541146098440389386029080253617479510014336148040909961859401768032856837934258702785905272212027132490266237143133703677419324287012244253441064205278510646597436638703563175891008926449366322445711529921887017842267998986112889408878251008243951292321831442842369890998177406015365199975915303483017232190939520617385432012074958345717246764510919262831747172129701495672732471655003909232449433164012303400955309817121770240797474547282678329133545867590824263512309632335398663388252566908759704287637321494842268044743854604886281400080965634754733585732148228489066538119541562443209929433790621073282259447151072305213411166034813577692320156698256322106873640612810182703531710157266154275129485238109200096049679884862939705605046992612553688080679189442507053732367022000295396093203013291433613311515277799295344461074187294583250878510137986302676681124129478422925514582800052930986375021895537385453018450711777877165116380777176441492540827730079896688841504804491769095960805244266796543472285271107010578107385670138324683252190174894870367089687220835335502950501123099669904467502794244555689927300192052811204567597663293437133301801343904766256700200800819708665648567373896603352759389889891146060868390101915964852049094408728204065777407769381105870829598820877780941032476978585006824784315027943776870427147491351321359294304850728468330851503421394178331514033483398056618763500535399348526840126984105114169771017632006220918215710845211398219981182137932446761618720531710212166379436198690262958769473309860469361374843908298209876868202599632411843957876522778222106731113035478997597343795318973888178428844194890229540120948756153311194172248284087369376312254413101193616543387574321341714654357452229996593930327334274140728809830728752148291226416851947514588853761849434796492850977045634805982124878159182867819965773830926560581960227327160227098202705489217807419119306654627699703218373379687435044421822361507227180382615076226059839018235616149311651041400537113529000975093233061470027872143251718174987356367673218428152410887773301447633130559110037740980793873000625545714559158034161375835141809859425139210124441217688537166006759564921681200677677785330929092596043240889537712449542117371164472974546532720181464400602173024860513502584427467731204376614949949885032938347114920341807651424309641316222056883180029812099812658507198054557281010608318673148030105225997935401708580788222343661197186355307413060494102701212323221480518563207514792516405528952285494406342664641085727462445546698909051311165096907808567800546993854694132003178280975711094002645955193212802380430983902271327816893510318272498270643601170481618748035419135198718676799016552387494773841409866616410757893940234060783284146535059153707086613829143268225624252462186373207823291290830642529434758845067476916120973684840379746982411483842554386374633191686869492515542220008596476460002618118865092709268483003294477106191425216556396877675715254700051618733029822091239435771215831203353536707254224077818387340881743424274552328938218925069342774798467869211572564120759907182043528711777590616232590459499164293891979470080791240317386061253636820126532112586353427467716171796758191479773970038389295524101613817654781160119740103564383539489394218226994327959014911917925444778562303297419050279835627443566621294856559655891457791552311049169730281834499454257593338352192009566691693957229556604954021621768608120695920587200619151096265347705828914891564934481919954776726023357568925655511514696938521614458191546350737202282072104115114193122437100628322450560523290181434851374111104276045705995576201316279978566581940123427510164608135338359199181596259151537141751829714259370975158609108834759507100586302658689072414063103525135762699243305566442171636596983456118136579782468051044438556400523748562633414560002096305665387005530577427562716232314429953559733239472239098052178194875262578684250913941491660716012941545157025449979947641091883499820093119257000656362021371671002304930935598938687972583429775582931108023478352334770605898611306245341745816172490867956843597947484823851932777818474729973060564078945621234032342083388022740629289119230093321683231547654765536525108795251672663623600261223890724002984199795414418304039726142714034970743684788452568807047484784073029789193789261224747712683483435722113701326924749390220469825077841821820918848589134727732631153682506254650912988851541220682548190767632281787695168714283705618595699007316037381990594279658467376206988839733305794546998828773410013660501039060590208846993920300705223583446028640147298833753881440762413556179664949666366687809535542769225117288785701439513438794692350953715887470507370773573818929946407653352858773908552493927239510692309538022491162145128666981787847712173754015394723864674002957342660148941176082612728744869812437296500872824569187787962256918270010223504633619500124762258861550285261129555751115935721784634415065161590422512263386620018183330905649948797659596484514538934360765259520366273517705804171449016136635701135382360767672257338133417992294957575885572794871228016602862655480329250370360116981970035348819666967721708040161849080304446286647435278637702609320159220625369052635633799528510445065442853615778470961947065052235664438820343399396049611738445503509699310776600353068391919327930951908391483416408238035929524809870031119307882028468632005166474903052182281157905889624770395920990860927231569219947245822422648832522934436244034385456852616458153251001158859289207543216680027662624036195543149262738561582120965082468480724326036915610040627692935524076062417806966770597131097650375205472714763064747792584788153705052945421378314213079083214025602119650296403717843063726412930387821434799685469128073988647576639949542733570736806435476441551599683795751215430699748145938437387001064520324073277668882831048850890876408637452218384768795360740229646015818034638471620320415295570212650833749628632862295885635647840444935548024394665662926059112124749341103228517867940517830913777983683567288577112101237891965077494516286218171382030358647593906275052813045260834215133556066147014586690329527025294933370744654655175371656410617796246381464359638676128001507674167309031177952989061290449699521057747070100448092000131426005061336521653837765910042343878240932974648434676339416241574013345539311884942989836372129963903618059034609925104757282426674465720367787048338230580179774395242261738890206436966001308258658063010347562328452920588566274766827502162699659529190572403464615898708269236177585738631385169242212476181237787187203025453019161460409031445555719169905334348650158192721367441434188907689808728515952380814986745158277926521568918615718777623038081354922552231285816970968194294937896923779266804265624462977320785453526219786045724127362450730173265521289300747393702543670235084216241474813642416603212668053462694026576100186101450319393247790746393091754577980095642390322996485777603196465619832526070577452087629261899851877380556282609894918775701619242076142527168016160340904097933172602064664247711922868345618202225071539444710137335336137626437379226699812955380849606677024719840288754416975221871231337510359975860401749712319527975220844239731164143788403556082634724738323789525611043692390668481935826561539860049605382081703670794067867921820377878241546418412257100968127036019191733099235824489122108589728063626694699664235818444508517755936738439467186427961217719337317960703673782207955014116209639294905719088625238449933933271212944182705511390648435789714297217251023186344304894021040202049362414322977193144980913468089918521608732090256953723299112716832221759034016028293576703991120864336608495231782444465006981889617759452211364089549741317466293836526374793131431985619919279579683459193762317399954994563164993643244431377068763352146227257005085085751854802237174812525207111378943158861224756936056530895124957075381253247807852989904013715799031170435489471770827561446799648706264640181238035461235948768652951342839410545859009719230525956616962271997144469383226665763490649664761848280707148555941590893085519698601371302306014380850245256280257427184280444805148665880719808865454515671912781727587303124571436204957647375929116452849631426507858166854179384051640140740521719069747203505227975794302621011254277505075798177450488391569684889746503875045148269182151357918981061855419610766529561743971493899489741823914198940987468206021013892210221617581039487032618437385812294856781838306883920022557301661136733037571395170558473494433197212024428369863060050703669786461267457195347521389543140502528378493485262530892148064869903471153896554725946131037040986556509618089186417384720228880639198244941941193696319720145348164896782454585131547651228150048689148948459349547007798477394235364677921691401847675823265282158705624059590444643391128944925119414372980648020356687180094053912800197454649969124713398306324335777266224847489949690601821835373134123548201334749953944084628830398892514226361013080272934759280916033771418395119656907083848652800878809536325784475286316058242829605156420749751425873691058659213339594241444708018172770391224941669911900026817031627987893874134418704867921390326640999084596580028077595768922346873234239806462926865439749464152491882488137389881469119635288504855533438547437411004722537313352812970873680345994511466177987045224146350523243117291062271063953001513913228163722557629074659513320163559770648159504466512189535378691069183849593605427867110935029955953198464707741184237432363311004265861816656195006195163696913593909092693866868526635685314216439958087785848858123836248774717379466282698357516641917158092557488477610496615963252092135208708107494002435627401196134044302629731686629701869858386253615232493668878695163964817030764213188283749577256255923892822952318881423407839090048768573374025424218145998841450514148079670435148982368933128351796820697590451243974420787356630034770091010600338949589266617094985143179267871005788724067923536712601512274512472739492465842079648830897806428683565881818677442526034268390488895225275461583563836366840327109899527532960482503343970336083854124149001943648281478018392064820132698082764531290464443215705776725145176356747112703303079413634117570475088914804787946235505088924698718107992471264270557169897974728843077335258459600963704825616509204081722779890376755015938618455887533386003539911756061332927408586300220612141914676181839514322436500399335192639438793462623028604902953620596752316898546792532307299038883303755859431844260912527296796587056809460345673888889262309737495445144436270676362530910298851199603110941702500988161829024883717503660048160087026480738488986063060712458242282978924679287675602587045132002260210080820520484295976653685337813107969371556697197897512204141006799809564710287120200792310438418154044388672814026523277783079950207173975937288513704623816972564494390126106752333284276061768682124326825904987265607657629954459114303139562665117027139277356322483874840595493707876706805752394346897000022923112139602900593088882019040499290854931749450845959027065481064825534199600701751190968515621866671696079930519906595935555368731901085332040630919880960049219941443716630812088927743502516228401853680307507252278644871389829365618741383690543183077829505416592139680195344938126720096511098469773203735584409123639159670432932343027235951271393932758235071490011296889124405706246520949626568975231418122347277182356641325559996136609924585858948086106273717203866562603003808859083479518601065750508821053812746861151956915937791173821534439281489122472513269770970748416095479902860323030801182101866764376890763793263316710723074442612493837072323725624188808815730003552401612476134092859723152384381744672980088717769733037277196899879406839065933620112058867921020146777983428955399720074567410637051411586833829799681321501943232762093097156172716935402372750206434277549793137277272307353331620522986797539481073819266648545525127965136166991448435040353560071302705162303073362696143730091552696758374919771725992382928534849432336929215446457050553747331003948248096160845724643201155869744756630133432619269957117158704624173495164846133116847321053381965346507270826860692650769481575198875486640581288567581818974384953674194691856734746527337106979181977767310422977454156052402090378812116102269617648938285805057850910018618862538086255789871390831216589372933434113871950437354398652777523828382398574131881658856136404731525406380148127503403795354590426743352729784325286240878949319490386235303384188662484832006395553747005799977383829398217437745933454149002708606432994074408676759049185985809279879029288325748553158874359893287132100829254067137048022629768968380785964298373855853331378514224902554461920375848545387811026211558018171741909767547591920765447265749805379618442818998388856173412130894747418543265100088648904665050203866708848198772076706780559425921212509671994621695188693523477029489603246654489156249483951841734297703991798389347751762636820341889722620038350384461919604850482256003195779649704665178480018978642813258738198188249318294060723233007100058690010728737389645782881271573894055952148731367917087775260015898949102512613498252383098816868048838477641891066826841158348053605366567520867129195416279929403116453804833025393782245435684009775142766755637349374586198409953876739259541565290100075474477763383317124484510588899197283667816348925200588345689244323685617890165442103312807893155067454072691236594887545961005222072165319048841565183674237431081679368523900432898261926773236298383908268022739295363844312793054901735461419692839891014098002134989255002638064354212260445857488624930699978489815491853178369798792962612938974037596914815535071135623714257628824438422091032958772324268011267401702905046297030690761795452368361153216876237873179237944599009691215404732685139865175763195152332933782880869675461899053062850989780886537948715803504805802828876380307682781346851229482723306434930879071346577942341436900658243321017468817645481715877791060489613085129999976280167465772772783836194595988242335702739710139546313569293825440504109165781301007856820770447953274035367764510666509688710036448146777443543537145864130639727577787155549597960841676592428582062703789338933772774397700167281056674455540426307541487273573536287649493649915949198012912887422677974639871162330188225151125273784264697489357409185677977320947577528768349729995557037817997690498486319282455309641946788862053846372652587679785626729765084216632683707907078560580966824298099658262604684492482363731855460434113381984403051535449546995239626115691822591468002438043610363306166783356790831940117640342332233132098895778280635422848202584531878502285387620520969161765861961995522922552328824797469157633575810153033043061705189760165063847269963747269094378056581057571632588809720847894884958049687664720811638066133747058285719540801396643345789251084862855554823099876849747501056583855083833361203878830881332498455542983003899850164804242359385708514581717185751246146032685852780987645220890984841500676219975562555870833130975095687797853286721231665414779868417976118806347323285772078828512141256784468428553013883060215491231347968369166055729988443039974529887243832198378898811678874405502256432124569985366137046011437025344526415478017853775457069159220530379882197134964626370102212807767582577904116813087210571818021907748586501332135989550978956961405344582216891050503881837117153607659593486338621452363789713745348525385583844066519375606174828900399095861104693859372749098007513749799002826719841849064156431207046971170222430876410600013645292166189574035675141185502693185509158170487828341324941261785765265179498912516601660595677214759220781166433877207416426979167596439724133940393684574420064346255624267662030388956033793738156883789460574704991446427725955045199962087405628186364034903547306335122156133527100374010760979575076397013260136312615790031510707265203041316374194584116126490750440838745613497243520416457166673732296549537359455252840354345528400146759401967737594499164279886403192454205447428729155786418271872302539760326807946969606307300425381299897657122405089212307093073483275925687287936353115291359744744382132771077911981983120291275681509330712463000508148951099300003740034151467142238839276868415716851232512172881992241322575032900097163466566417946507792063888479112658302270129394991378966982326867516199073468326921090992768114083951028500932020994815000124618215849511249859585998817201923489064482642875396069337652352154969925769857933760774625547502110813975944884372381578565674170952368924838904804108319501385542132795734791167237597484123957224248768063588837296901603936264372227351217195930165723254712638826662809530205107339176318406398566440504609550546768140825683803287580438896458827331258357811895403813333972566787722014041020155289292507167563497290526262243151418455478259896638362644993288260891426865915185850688391884032907146434952195840880503295624247551218700566408834406991837675533638121126722380058916315027769214232538981282784686903615492485712900999608656632313007667749159833984908597161367208232387887562481874517629232634655562997898359255161073054768998918218027348184471830854186432332851343976359111057517523202508368476763026147968562529761804193266091452755623756580674664949857817922217463107414208565852699189983959833218129743357507337927075346981881872057544864557683312949035751707001166817960301614406508960025032199624460787253105150671831749346212915013191763043870900906524908877004048543677927595941025280411913528494564137260901009440538436488329077991429133806071782422331813724804400382669557892068887937148649312841242154190810466590548518455615530831958460580519357039876855534418604268347554204828991005751214186421229549555531381999239127819219401516582908205954243725855982310421613426878849047020706030616754396556034352589983692999710518133711693410771445766842501394976589101538218418104966958293981993886485254429350053949277507241862745270915216499742582618887290299864268482001364656869817052342132555014750807849558840620790926111096492530487097159629713254014375398179985857147778300812407109187999735995552398774383126155799762985507252637317298725700395167569873433159207759042752351988772233686562513103073995935497793432582700590362113782549638354643304804807932885851014388550790587094831607774703619841286649768961508505672299708105594657844831552465565491057445603813074879386138849425629142956913477503977273162223603303961359722381644929982952538775619287236454451682015920400038428921046797606025205411722973950146739942521681373315417489827995042474164672009748032631046723229278424436837043240575280863333997265012456059703888528814599885991839928658856210395398760350500749002058304013191833386910706844796252666220900132995334423123994034318723283017967531354227212952910391626564470490539986837470046943452153282627896313414400612362958988274573103239355457631557336371658044206256080088220075177227372933105487907284288006313771635455119115723646150531115580643224880650850873914270317433870109460692195523485896457877014782793649418063004609827212152803140200555313817712453596734505573168501624378221485541983039267235497641001596928988291846219776676761479676287497465554488613879587638678128783457424186716128945956443729268229883240879995497469306434754645963888697009930589746963616475131347804265456661022491368356362924918180607695612880774394273760331753599812625611948406400246242013226226876342396533071993223410072577833096504338938727858233783285785130787130943966198100216125075945412954600799989872562363386542117891655271937745082020599602367409564633586117631042100372653135549666366424034110101430128688336189195848686418547090008254862070041451757934412475309544555918638293696025332226282818133917094154177383310577374980508111333120376730948386565683097690560340213834010136317870416890353582540684390351478434535689412210063536636983573617463658416471091506926166348622454566199220994366054828416442509247039090812202957964051250109615972486294830000883930281609506889540976880006459210152803520025147690963860281723278928697402559675083233472300940883649490967004720790649446685377690148668544791906969705059029870589418760061763032026470565194721307469854978481061098219605079697536729705951583864689231739437918836356577484091234353558938586659587582932717010577482098155433079393848797914986773031263809414690375283434245849908145710222518308728459841092714959820751799714736924866832266688193194997784539623692946670080845058916371968197971512930751919353734807482784431514217069035765815572619941702911082192848464397758349255975515976981829675787896203653735545851825645937157035862522809279331234282257591423167080927758078515840621802204597477780479591725714225204939580434334770264536478381979701805348464232933771986239253229210980401859901088956028777469132493452272127395968053492632424982759733987619067127458959987479975706385945709917477826035239657727865853061427301802890340578063932294529687897532113322114503525918958482357819367437234081186348854131822468642614685705675900103519826228150742782180688181928366515733667381369769564531481089055368874361766438289062413202773800970483233006176399243312888429577077121056953842178270315251997940230405914211517225842224270565297601362804292567435758087165102687969664412618380929062688246172765380039488600032291513051393922247905699847448994310570086256993852050277977990967342003367303476948106805070670731719488636575469923045920185002222765897651025325545552813585525165161706477425846024745994869332314969480278761121856818794948761720508749181645633769452909528433647899981617783785205782343703268678676877073240141791945069012078906563932585624942685338412156842194327397028360748762659396611842353199900182125503261255912319503309175024591375786680800688530814922085380403043625201920982385707586041067426407841476379685420736428263724112935762519529504320696762818457613451515442318406448012211825082141354304162204952596269921564703411697792327242976484471691924978117962610176042148401420345677902485923351999835878354643395781266228081789231223050351574839350630779500776441717988144847462729973774790477448365476091010681731918437050289213395134995440248590061191658917320349540215701426644614036186546952792157509274907150765243945524576055277435417678413116139335519704579335523397912312243688553807269338518239876359792795708801529370059544623840903486739252646390247669409221430382581922961269343258326055916530542573361192787561850286293623303890393591965952122712584243732197020450575601993359072162496694457167310927721240667314999603775982220499929955426729905294923939204971204193165043090071138839477670112278425243396615535936051330897712026050738244286324074245996860648358120566263792502913971212810155789188254950923313342963509024460673083454810724290957520600402390212467733060747576326347799365686820296956410583037752281742810229031698092756783820142620772904032911327097811527333850891358615099491664390934561484304838937292701487012766389622884260640738075615597037375423835785212112482871460941339757508605330841974897814442476203721574914537414837042516898233357897201478144964005044853924517290069468900283087724611916286745531390829171298769861784202742354566233259287768219104070083695587826627658561638419296358003339941996636122488286044900214369599152573066485190664259782214856512483633013727941099277368982698913699761513507894169834626426112040901150145614935541799383353201292107943640433466206430647165991161194014145496699194064410022758566019615219739127828363102366265981301763469220255140612888989178355500705550953589271569693637857542528464725356729845609525512329181876199390694927441524867412614797674610832633877614821814187958966971941045561917122970842341934365966291209308460626592773319567242369164040687902595342565453974582311264506594119821297932508208097971857255890201625936523330534890362820893578065380756956731760645340084677837125952327851348499521630304548681328721912971604010045276273724977368341505993825109797298525284642368571364179890759012235323848466489378363703035520838774419625168080715052378722716387776194551473527291914892214709049157795884976748860475218726303338482597550287531397259993024119797604561581107461971536242516467727948701381315299711250755506388385423652640359701733777433564174664709509064731565129285363905559719116284107886283632563182235877340844571296754127114784840009325552787271759470380328021449757392207130460677438796415938393459507945888470900726261417055622385232746405291819986438513444236412217263604138778003889947140766738180408314979090528492897670221837416747404037424901306557591587363049506437320987070406279321514054911551923181375587329245576545033142451328728818555259610030390934050653073175752865175033613184412137058602891300061351897188573763007960611464972928544588313192038008344799123404994308637236987663034373435960206775818646318399608520095145754889027220917682663727259341424456224150903334906769111827378532845943903960068051943487173956468719001689830770768698212669391947406850965999132293294224573778107953281100953335324820072935045312398752545915703007193042547076560363729013034797536861721273390914445264384422628230190676901744326795365454572363113712585624612598621327163747816821416478000939657728166034159344282803918293483391035783992551623112337484187974182710726336020233245815939769989264522407203667805550090871060030610783863670106792092355513397853857463076034827176162534292045935718315547064766617734434345561089496790138820994675650711614042232168887547171969608432345881728862734602171304907554483019265390187534041131161120698855354519387388660703259884017313060427491770068605517891011297541361301377341140993131634946690588994097846945002200403975604836702032624965110518483476262689065672668599244540079210282647619853080222257197259512348013711131873077441929619788423692448904871964582114430376207459776633779044869341396317586268519025342602517538070490396431210252949117993553131963517323562720340243564094864350239275267823302521787906298154609439036036056128603405370013578659661840480268038101580386452964959239516472394294401183447507456087417147357499395895504633328745692032558225767966431719667901633258177683117707167813747006031304989557088712126861660399119853356031230084090077084120135150872483494219602204741733454554607050745335202416155102004421182128653671358013110062042035856481716109049434853701714459931102328067644927968003923395173297263395821913549658415594727876634746288614126426590995120924848600888407411608913884602625685988532439444057317362203572106190919362490114570064073659224755637126036949849387143116025031489775655175800214296764741259909445510002088413409305446998896730030067675836943795793317102701088903581201339473415858704243367865836859462930142526518684313971894273622122371792472016925642779130198607329268964112807165916799974826468666580725239222853097579239699426299678566834667443937527720274838718995456694530549235634341036605365647773423965723090852755048989339295827174980469677615846694945010561854636384756126273941081481474470906907055785806812696477182435340495121521549673932334564718729014354744317837029002736633822257741971328478477865840123932266287425296515725000446422925752467963776290643484904411209499302661011918490124471358200947677436856113068028868874362197588763605048983486503195701624313176942050798048913840677947828934431037133211805283048363310144711445993281779010480235892770269553180191142051706760875388199477749783736102469278618802963442935174922917420484609764217201995845040831337634356807646713951639705351816266256940818886908053215862430556206378793021411324379643153565504315983381479266821929372652661174152111737297719036340451542127573114438143084417897715363577023438840230594440329698657173489286593644335409674569535731897152202386089770684058926253545277707351663629075764676166695354504648922470307288859179297955612409249124970147027353995613100550257797494681850127442941603513458557487665982321586755703461502511382524317263280180768486735810974703084534281127151546505727303617802964069104923148053840962882607745880927067664979608967681864009981752693358129327001400142765443584491344580320874472231150749232703282428530067335962307469641147745044308660005597236074037997296541294729955680349473757191750941557543466745216522416968122296109257355194432398447478643735069836688489265865355376057281165558661018483307165671414225957966008669818984302514304754007579426759142718273264631100933454956752937049086923516895706474413464373819733561802843352980993896352574287649413064250538159908997992100572559548387712117135253308402358239824292143142431426088516071829736298048693469510887568613388017450876903261064242518136890200223262352232284474367502740964794221689819140623472604402179635987226446839600873619147124796571381560751709000410635589036859193839340718349267971965900771167306708642011423758452931047872501670559765223154066136782987136372894751329505445049871745913125265258098869904105408396301894591551256038616813048745855733499490807496601854073538916256946382677186762556789356714437043487000141881268616651711193044508793383494387780999116985122567902737273076087296451053672905865117072368977549046578759026476472160416526942068529465921963494691884730024489081395894399834739664324891461788213784560183691781508993635427085768970565748419138323868351466777485727109051015113448673105676757488643682824779681243014967098354448284594177312166093854255495628180488007047142691303876908881750174456982490166232957757973108439192263861307065409750182535714863905572321929244114961223171528877723239935084027779019060435586085382060614422633894694605016930629065147680607731874588430985627579061668294924667886836134426567276429358606979715675301538699663861260517419363661523165734377604664656532767296960436971801722390875359766070594035288086598464475605337078563842529419716767444096023528668501208518711908101613808519077428455732443414561944883526354787139701982728459812382887945431878537892574106357222800929367036425599972306908925842363944753370590890779004695836045356536062288632488314270409416253491612787064729676023386973513786874111791870055977720513460726317340565056148660466253573017882857028797911594430671969352857562109403570615711265099253289287979260963334596219906826478274494808311474345606916330886711784649958298892660651403183856769330459717768829815289952588257523166999745804487013188328228723004113758737549956752333786987577737997308978545841031412987953100911289861929513291098981531433087285103219194945405210153833020643223484028786644421125274097702452474071382458987404895589539245533218257523481060597657729940742795120223492697737719754677634737072511584136983821712801206365766968332318330654842815284009395559130186362326511667486830900451142299437598814633200920769683241867482694902586219564543018766607654712099996208987703827155186337579185389399414847319273875532372101555328648673149824647657233693503249350437269135892871747753075375973586184219700407864831548860492927210079169464156227931396394287323201634102087816533680856629572588892657168669138085279435603341611784118846235500597942810879183651739293757139108050771717078195493949203474548643369906878508074545952918688740485256416057408512899686036009444274787416692323781478101383727001546775174739732671759946786349675412002260222439597113229304726468774309561229283450979076188993654183945882406981430393008919216308146004195889416464238873250540775799382293134298414618645671398342792732590604193992236069944965969409703658336948246127317771159146694553173944273979101763374105719038858878087904257435361610430498758203831835738395515981710243428429906649934845418296470360826765881161240951827860255070759034262828592728978464576058260438012861356708991174274460659654212310297980973538698572951265374375427428998478000045309582075894612087712126112709106206542141796171721007804784098944053487193689224583394901517190418897270053519800757766326183208029602688541742601135760486195177335977215141863640369264877014770480345656430599346141725233794149214191823914939953567002107488249564909041828009774727174680586289625781107320759736533361292910669269232872634243203852719372447863282953198560453478783024883355096342130379596940256144476741819023016808087583022408838605591193159823014590529797398167572360615630473985164498699683685158989462848569881802326722037663200128504869270210575201279930004246196807974280914031945784721737244609286884763860950311042984875681646992324007185816716507033327287898032886139839985335141608857510292164297433330644430220353431663596770079773831868937630044642341100625856420248766377321984142687062903011344799052918456910430598139554095561036648599763179111061145121960790274157119916125340481173664403369777260251548959226365718178139522553784681623126897153810874877305606749151456865840192458350871603589357314137443774989784958881461780319103235206321794152058531353178364294553766382401759114792338394711215488270271516290594946484726915577561310863727261469651144170801404540577274249101495222949972554578958334761237635543879129185550432011692011190103034104753943968031805003612265140538624034752275874891612240707522203561354825802382499846672014121467293251149776041583820667957809862973812961578586306915870709101643478555547176822746622645324779597415597054650051072248884169238004494573432480401101262181621161879202857268899049161978815611289346716554940326214873197733722347639612486987521622659730432769420676050658622406381527794173099046010511890699800293475250886981744353620118024425311058789860138250289855315107332321974359917559159328451038244250698163469898364670392213099726699395136469525062149010906431215644408708984661208608101393990663996183753918906103020544945697402887070661552042625760692561779860824440074447435121013706118757181163801575174642951367778496413917987840757926217723811165732334457615319302399258742414053827005914849707891308671307856361794031209623387444826468546850845536661905751601292150024712150189945927299631856354997220412069351659034507193699811346533906241322383392193681095513583255376262611050736427197761047705350955471917950426941100787832299013462156909742302886263575680043881519664239758641733873292915647663472312199071667499725525768545040277497808209129444592192948299570653681800479602404547533539815985701625132603431778586400529769307826001368346875014988282847787256303208857245223190213121513215038830509276967524068560471142045908605681002745094052432491504809995219658855228206991725231284225284008921973513564107720042185090161902045245815356415465010521736313758347313369869739333541818812550796299652762881427385306653249713385908637689553519062225078229434568929258394661922630161029421886579036720865438774426374605432440789842437128930341938310944350491535449676967121145759967475744998474744747107287553062102773241667299448125942913608260946735321579038136334819707665834897675240290640109504958400615396814482288024717945747347971229835310593991559331611727512071078117707548299331132989508012171199822272565086912560125186494460743436331445480206093693362427042691150546868260745168954686742482476822972152286411052455492523582253096344256274678273356688037028107642184740763685960428771271418190074551278469058913587365210413296256418643119995859556351908804244760447693901288940507909632950619810832240681369878246181991805048372433948426334721635430933330845014727409490820295476577561813697149825098460268997854493861825219432771172161931012686967330692161709380702777496986044708512258417024075028638819756863347776766323063757358821045092746495179024010636808255413164061605272280087731638804441315824829183329794563061474237076368000485831697933119707230790795193093783787820186669387375847098095296299309024988817314437024568036058621520152965955775530598018770192971796843166307414875771728923084367060859024765493350617090522922003981173143650466978394236276512894518369047181895000437131735413754390160771336908986060335888823868251634599411118581308099290975756934171086839595152486824522809476366843116535487028556780478736684840489118090021954420127465051303429420446436705436142835363672462707873072692949189428896477339010812775892640333481391543088126181106619337456123546826841803409390973170837500757385918147760486599791573606246860117507279033010656905681757919149478591974407857420665847131512307698969020339398750917718866304053645892491253265364018485368949368623330903859565689181993766589211531160964392450603936533575342766072333523425965758968020626731043376554843862537126539839583872404906851575591204181532783183945508367950943880524029867923447357150921304749206886630397430685928473439976537514784851419369881209394119352542976212165741351892079743137324061464232638455129192169935031496730422355660035929137572784602324887501533064909039382684769877579600166944518894358519505403208982374964987347296730331842620202359511228828270347402958635116574120909823190625800553833767633377916299198031828832357400449785148263293529388255919407991480642044030769244378908720709013917677470312473883520694175222855038961943928989041885095844622730283358919107846817073952684885267610027736864535647587097150746595470962809245800805053518556069792663581851472969233513214650931348908841647788712666212320124788347534696765715895920160141737044531231067153263778948167271639675086215447159892913290741347199318662600072517781501966113648880978775843023720359498098387326965898484921738376407998726837178272390925009064884407611418767646436588503456188825600720409313116641433970384415396962944658250413357647073196310365787063731821164464462310092805559328359507527624249856578961087012632039276208266255378697420462693544266125060917008777085108108060048130780543170681136637407739648217876009521897025578002953355908585408032153025780757839983905610962372228247537020600708784465990050925094297423420121639875267896242694296954155350133492585223714440815820392089229192010210686803343030581414067930134449621780929778016955581406916183409911865023014176865233615978926796145125013473807643260438160348826811829561739973888430366274433824158010394466923690381145118945951540972948558217166585974381065176330309258020603756111687398685249227552764482462612640220391168533791076082513045751910435963893555417522623035228148503343059968429678941739709928704439947456233717009527982468442018473719453602191033855233586231319038735733764298902905482559844839001284273473530984105850957927979370564053460500394510836085019903130587926651420487052699319694754730822610727478929748803004177635270823751382716949185472292448187210354834632013009055071860253422048037700172912585815635142724950257982996197131917324967611942670573016294068562965505663993055908385134793373075054133204631057459702408858093136796436930115708776279633787072694105891516327000726707645960003669256496612144828449856620477970924214355748028604821040229979629249417347860445444125667131095715123913455700507434926627122070418069819938628123202273730117786001276691382900387593677219286562452448411829480346582874867217689149445483843994462713682542189229609044564136804772206785139765816095254748444054722672464865377656052561808796410389076388172537967269353918046430452689677082101394168278736432766158698768745435299316705631158953459173288782577640586030800240725331527981455497752675172963388167897009885386637793735626201024210654685768342286636502393394349844293556773541925813662171242330398379211646334779810680835199507923336674841743022740292509038237870502984208229473957617573515930299575142880894982275354220831960527464282357680885459809434692332289487124179930987469330910464476976937190702582136605711229819826250863417528513369563803220122159907361447940496154805922513654083657582787816438937497761252633027774849087770234071723148116843676881527533832090824767301170707430046355062134719921066656884093180414340415761999111671113151500961358685095666179730473573466498675430480869796716882169004606566812552296790284920432662138643971416100696801653877582655673130406078716058188577484594469099012772354624455368023664199269138260335796593770158442840026339837447421437022630445328807517956417075276210661591480247104088808879189245413493092188985082253499594935931434440232459433374166810576673586029000081125426500650853356090089801929698241038586282392651268401508985136594094306525284265396108667969925676801048195288047671514093499740160411665710656473078678915882934297277991381722903100566874291787298243694848174058176958873673846153539367982632310079814961571935029130818711233990229863792239041940630045665548686365823931610180990252249545688865440391562709545470747244858142618041052042889749980291923214739218206986800611444827172740613543511104178013698976499923895877120035278748290954285710944068253430759609131503791097880116210435477516946752448496014484050591828944591204391101477149424162461333688549512274856277451821709728037421296688144602232752234662625712565050101402234401453976774706734554932733115086771538203776296802195237835843416220060162863022092767485217076541954703217872536463989073481300480731396381318805485583839023239618317640911854627932404004659330009306528054037816746637179878609482984013293749266467810709811708585302794182828416472597800109514832259079183424830265481303508369800774190166027957765035065076569959043758864070038688746792620859020214472445716460021943475792846257635972896724039472125627762627478313943372914615994226619837867156306325187444536216271497562030735078060711110394018715472207163971713817285014195942077949308748765029458318011712474652223353929292262346002716815212395054956000622787292048981465398336848716924890202052794847933040298100373901076153669891972707940675047860390983476131609461178069666408807706309480269157628560403089156298998558211382062041182821158034892874137492667864339980690299613836723792249968917075986684985899518222944988811794612142963892432854914122928782239890491971004602481637111776976015899100400032000012598439572057686797946775673491486031305768160941976535378887816346980534507659676666694557227104420679594278766633716247288588030457454772821012295301077741412135224778084918723399776894075250901269578009755782383666228636882854863578430035824282472996953090752829832408274902848308566462682275865484994386246268812020590423872073674769209840929449160239198654347336668196118558744131081542248237652056491094966964097324254457223586139606677868119141259603327704704925692530477933643694815307500690253651092888774156301031424433065887516338741906598430582521743476249208861373623642313133985065247769274180518895044734976644031934925554834882509004614627110163564602292647632857025539762586309606737405760468275055774852708257579163219746430710904862783522894790420894559810591042372095873377452303207978902027874170592755747308247276840006068430646065872760761759072909129717618909879781231715516500891173598900590029987066590429756623549981870485075184932130536578078528328935158669889588131349950895154178359208237448418830217567375240871795338452191753426472179304108055475019049810199715857973991133639986699611864540378760119219415783839068826286951364489497352493473126281049648876425697834182674751397438837598728816943629861167584179928653999873228604429584686428253658943390593569450221094506329813410593640740093842683540965942827286262400865034744679392396884076611785457459481598206037017587100830951713753050997615439565977246544734324259249835363557743981844576460414747449926811994842520887136897836255305629283391925762793770014869272423622319390327549730470050133844309954662781553607066361677018509858187374999574100725843109235691776024596681152532841109063237546151001863973064760597088537084882283299451151440365298847944938801504462779226010418126543403384440456163579300875809854836177907667801467644250069787579499267080383106794935892828548587273275050049715200734464128710568170448701204937822327653820572471564047314409206706006130913552713289701560147897360775052831597969506650723287411545332083241082967067887458701749617358718813070740173429609689593547126485202604672655399436419442487693455829579633868277744070852172632169410779751052976490197140321490259972086099616691503087845348476960146487547346267163315845878101606500969916661811864345872895983319175108532233569271976807897729405089492308524426887210699634446019196705648826786224308245995376128877769328037595705969171509564562720788842108520008193583512913942724314928529736910285077209653990262106178443876201709666414523031033312161867164871441375506997661807502900919226896771506247345214917886581801329358048752357957561293131796764910348811529631756217379720386401748940610868881647326803425710732745518794117162500429434699066970866259743070980793405466346731888429889717896034759591225904024448429549920131016229201706606701315763140379763641508826703462554287725621265777373617926478923212566767627885634981351687243318509951743292188924392008862216496207894932809557270059926346442540773462599377821688123950658006925286582683083196831873711919774012771385353721449688384264821496692474776498173134617368261536975896069932438437899043824112234304560106072367667262159814427151253916799571813295611544078507238508303343108443801799053080449731122272770999132821446966265832780420965816274016808950069786983403665310656116132920696663885686936510357017263134737706353037556131513709913966093272256560288875948501795872563427229526616370824797430745639502484300083067876541520194870885996195818123422082175059273343011668941917909204938356877399324892372792327143139966035333098467765059263578604728407019750626529476678669948532030496660086705484345972377357613239049682757586846187684622150350319272226506102493257991821048872209194586601619646784568520098736951159019136677177170699623519263657746073834844255587303722285390303325946578178009092575503960069836686600865059111739423224827501793062512878297048173067974681702423741224327765875641792800829141652364693847161360958163588985057993281505439976953356629330086286099106879217204560017606904220215327062382008045108800415497914301128148434591195294713222167698879349152669065406307854606926308299194075565191333778670462162084436938439292826441798229133789455079513221836243058182981759430826487118456596481640661350116475852718211269718853419962817387488567467158644704368931623894616549131672456858417844698324136890466249483904224174437439061822972912196441445193504884696680346926158074169528987475391608420457588706890514091232034629752455504796508583223673794357052902666750129570838486272725883789706515139892315419467382172766141267339516622969345059321673882636364625139885114555476933183529305952387003421377933389483817218352519174749313368281156476835930105726769546650372159336006503264151479025093083371799405758212635830679157839302492056512043755142102716616251969383739844477535876017313518217703124912408759525907681790778496255939409670823927191786010352506654082119500847749070901642779945930481208716473690789945831012250921232031022329454699541204671939248286129684804203145296920134697507210351370785684308031903651376946889206572334700101432620606840998172105441784042457574556562600076360544163776058006284669693595280715648297924664464661640190695054653962512142992925604976083963865100688716249578840730097941165470674100291352638435988549224973521654388519436727524979228885381782773617098262294689809573618504793491900538093577869651187431241047812999336847876378426117443190091432273633488739860305574159276238661654467438750674274526257186263317884255905899973036496050024702719354662260028903695570041211842100969123753330545812299958560752810518067204808518865520014165507277016092998677256151529078815126553597226473965482445248718526422795945154260136530602724848065254399002926917097462036080683268091979260969982359040843894922480487367468712245446995619617045794448107595770589241179512331076003431334446238291342050225695465109577604023340209315027513180556209744396612880931678970420741841785007649622716478527523092450820976489538602451676727830220542640592213221529718841387811226369386679557492539888042222228221774411224869120847316682971334218342806980483088464725937220408548349072260198205475959592700402396418413956591830429442266717859347766625443294270773083424856864306241696714770502743289910408923575723986074929875777552676559446587137137716075414195380061381628579224855503864606028665082135765031303851079227829134712779264021261014443369668499360160818532774196076147052417181840993074921250980942417902394985998676423408672677259862486654637030202770471900439267383952042121895997821176013797277608198343808390206339168457643093225886352303907258169177434552431292819091990371605016910453368660866228619112449548617148078951059495914606183574876198720977949099677779203654957547244573655105233630459254057791138176452791985538443994873384345348975272571907582699116844578129374202537107399915395643365495037384962214781156185873679349556950705852883537376897608248492767463731173973599941185059440304310926404662675010121547499317798341965289200849802023803403551133714642112367461087405845894703375986240489930354283177334352010724592942609849495744759078858160555682346744612688102937719522426351468069593762198067961534876205484651888324812541532260282084965132062741113593624331366636992476346029203651013978192636426040787989387753207688469177652397482382344072438197236149362531401688261282992085621046949713571407124805181561122809217324971462354960824231687733862540436828317528535163197693444199706680566108624465549764386658167630899807165890250246755518629159433524689806514746731775757890484975886185827988725987851241359323214909244814661866984694487342781072590064941418667654523733505249230567077032843233226106099622855273378824705836339605024992829079488393998860720819077477472443062033885407812259983708735864409186422072304981001444705122581977057399804226337390599540131805529398667865664687971242827636055787740750785689762247985957168673215651182911072475901788662966935187989513878733772743065439318274924091619575900840682230066682998937568500233325853967521426341485713160264334179487421251094010575812372178720941056993326702594628324941062593544247469603422914415758061207442606448530909149872132773096577983793612491243181275340939316537084969494983152466388275364481121597803696731147923532280208967523598737623680988503733567920453743844458724231256294694227107258949215940286600143080265819951229023054867404858941153483695819793421146734401138253762250061045154515383513081234659471193322871524570556101992763030406306248465384281972214087330968238723682506369870317683758764080934580795845038337979263659833059573980730605481840269249881461016507532363075629902432765543697064586201384510647707120156492907321526570178921468302820961994245698309317830323793746691369558046645243293008991526624411080477450956306400793285340735510147037946255822459725995330296161676241791235077840337703054766298039244292642462264162014876146798824558860864897095397558921554682307885037863634297056992061643961869415117254025457323610007853120006343638704538799949046495285243605448956603693777241270549523090809548789677269761889291455284595705725060197459556612874623614570650949791143093346150336662897035501281730548703257086613396634249588963954866240112112838270720872782656445472870255329360562516592823894458658532117163070494922768662391858107407656978756554961377251675112074939808550874741707208429251666795920841425298503882610968155481696508515664795452916482360341413721868266427710509570230638319725199469697114476848443305699744570620073995058756839683684741147609794180798877869862610169547278826236441872463157029943902661015084546181176082475472775202302081360174405213635896393096960846325464807363915719624260396659735694865796355737778533824509451626631440095417144370336492018902798019146805302260102378421664357513436482537739569472205537403685022270406681571187355329622586761829988005609647690411226630151593910829795794165628150988151235273121351966065682647108433048386530121486456613449444626024592590977539226470504085706239552891885786522368021056472530655453197924690433634860788667087041508286217284681604997247270898423467207209055870473650266859169500967035653709509368486726452103679151701641635566206658851252334687586929002003779119848943111941864989537507687491536006543251583961555334658599332483026128333730733890620349530601321659886269073672202476260419554649403009427226853306608166805859353330048768589645777472492302544829405511340703194418044467685648903906687933584860729989543138006091636764732152694987514421315249448510190979128791464165152036953168300927379683811153657709989242072536010466304345163113435817097214266423391799340835494760592119092593335918546374789374971840850702651761603177147676044885778495826047276641640704006186766998967519834942383227100371436943968714329166226848423803108322239833273167367616467942594648892562905234119906579022542818807795184829617327840252523764010830015213393584675677344295821712485614037504937424232008502281110333100465355070359581782203802375216617482297679753752286864347985416481335627115413357705791736810430505101352771682456261046830774380096942201400705729093270706148830211453077730263581254844272944720624040919086336299418423502599386462979123936693833256616772375137435489222591379957738915535543963718090021951729405859207676356600178100086185883168042412289435545863731103228739733035671003248998294117692587618138066293588428428734550290620412315305939320484775617231436250251448645070846415757638372825177212776606028152305371145425708697208704558512195527683025021749861634659661272607165883276549075469835205438008733405672175694298365068535351200043102367413371466801473644963744517334628743162788070338419006388302949053687211081433560063331917843430716629171177928554731074776485352691457485432861005924080669628177752027277939039768089188884184651112817433623192275800335632317732089254101417477338094491166449281964352541017260462390318753615642833630047575459051611539723624187240588821727986998248754681753672240774694519670691233597645869330240302052570604600431178405178964943449936818952450462897812712075874697008065287799650419076126781877467852790250836755343778515727103388216731383533697776858290666468488045799115264228068087111965959134393670857741045770359159662909986836295952522914869627032523813031738318914060064285344161214707536851152967404144136432758258913079666612088798946372006394382945349092279548843042022742653838495598572587145699592617536146194297522854720524574433500951867242154259801218235426454248275026856888713493148670379058890349604638587526300152476323190035222511000197208195785215350266483782530411629498461442929536181391756221309102863914278790719921900239584427965839107335285212233767066501982568482101690134589261206454027518681156241527547688530274466960116883395704470625839222278791274337887706933232668070530840042584890000827376085034954857221885852381543241844461800637514588898283212576540121706228422463435757165308941286303501711181555212533323311866774611273580675506969318093465751725939671109938595904287214681623913575932349932743290722237625663827499357527643965911582509358389252828081104703681365537450279094447787932258579013196044860085385100469848174945213488949828047901062973682945956633819642991935275595449204962144197648299557818451682485256304194998376675973217328521216406561942496068189202190882349225297150360729381751280350983108627402192074271955952848374515965450557491299400161761843200166157609483795092209562283034707794791610498956902432023474651393602945521542315182458660826403867659869458794439800732681643838488580883893215325055964124350090561989505131939279325906637172269477229422569294893143513192539314333769002938313204574964222241684026484747760028262287501155456275206426490568034298351062197689578892695115139821987526798659863514817353083888314086378875283662073749177463041059131938576266656241684113327150136951789397752052044758106740811374104855413828197876661301339243018893540934486151446846085117680743483238995786139312039027030308668241817459260843164767220720555463334863362807391994675056826606987561096869159613497368565193700089592021863359454369287945057479348227309299400748597710383737138804008096991225349753166759003251078942205920067478979955777491806741134518480188155743679692583990191844648548020931823393844749929553593111809966501425635097778576335480740537394559680970946374592998026424533060545958696660456937952601572629525739211455592591773503979970795172800243333922953180362605556581331270108174800063712678711822582539039296459382053905312326358059596812523693769892787188501209631492559330415075794498899574447056177677636487455817841741513889257547542978784722336358400379718543020118993720213849869853861336495415361920053332217620744779718876252801475323676413043380140859720045700458287458895205188514908579483428526509965101075993232000269406547101841240166926516730718092586076821908086863975545820231179511673054956376206516875468988229657634010206314648927787387781166189659636708173604741005381791213221952262278891052954177065394112389559791300695558654185713704296490936280436260235012763460468119889036319112651030222258407084707857386964506501861628649266996462872539119647959677935310414305017973516368509214944620039963251560524823191625301267048540814888434605779354685836680849080164657006785607961030870168460827510809755792848114567922548570080135732033539662432488167678025972454983760118877234994882019233880403033584099926916974441036399940506529158185423098445380979531686208370364362360132407929116957508691939376052633609669129287456226660276363221463540342832237238628010114784486181288870284221370035008465127962451219102020524364223738078042188839620929157675694094031911375511226028153488566957404101861774229782274845270335564082302705757939714895892742678862553596850107991095513081752222509772847405491653038262023862818846165099795226368899902116319182827664313234374181793770543198213747567892485131348532623725283093691295412205041892464516816279988254645365010270736034618580438167348471130457638349428527284980031161592847684832376583747480389449323719125125883669603054965795415594223585014688769071153576189186869203320556229072759727069723392003542144196368479310827327376824210440985104577700192342328238787670195524069766285152504162413746160237811585877123777751772677081513621339071207929594410939151088212582772482299586019496361839301282645557973820441937954550186139866763567866027375311230645010272885440638439698007803553343081761761354192813542333185031101004504854245802248893331863677134540566305269218080896050021361465686614004703555063165949259717499034288412477205061762420204624596564006260444573530903460011556205940785282776165874996727377256457048439932738788079496786442797367807167647455391663169751765858572402912461260257195190300872968959882669215009453489481164633014451870484313699499043261803411265067793410553609163017596548399707812543669605175538666373602094358252495839281505404458247556102771095690775111687902873360014043385020327864992009821840929734880414831155991989972546340917531865343311743735644684673234139269680962723892052563943168569564922370368183150079586888670078963350837518532076565671530210041847677955080149073240006194748980803226355772969122013195676494262445644346468557188605946920242522248705247556605617061976081491784054946248394534479175227907748572601177357163408080343207838174300473842171054564357140717528777374936785059365657981483542854484712488423817283940921706834252937629321182903645521292670258804002200653875085035523327997077697330752955010965547155647375595582565997291828694253446441266044109893706767635979545499230627172695475197235639581353925669122128703184861270729617805483616322933953032666734470547854071029517053979190233213467904623767657995646240778474161531043561579746695319676980572288620077410441841006209227486452337625684441446731778258493595085468266285103501773267262044550351122519747288963320829225329723092482646956902258887824268094898629813732278578181290934178086604046627968467362743016722059292584902620909964057351017598389099238154861499052485877609770229399696738956623642912084039513667035685558960926703932622883899481242490580176879513730547973198479097445959352512457960910491490082308091977470186795760844763499725963847490036009321334337885782037014579863878085988748997137699173861514890525091230084753668055436953404641164474519325353634035848913525742882419138874633938678035475709906271696228145746220419911112255980914776334809130543594340250528373235497059309947277204635586217268568719922305821009440268016885031868323029576813832432257036255191768816731890008626751723069800241582337802164228496407390023652064047733948521657147697840039793108185433086466471528476677705506517259092153486411812377885099698047456473740119675270725796025464875500667163096168475919654042987244363665695383880490776443855436986881812211658428390558663654968046344624310649613616692969310870969174422534317481736387174956179177508597065397884880042301201183951623640052608004276835996202599597192425107901774943172600935745455597501858256041647712900110274157373292312387065723745512414407390016631836123502821712632252464468095011030029465924100802827289467096125425642316592315258322496453845832991924694935400084706405618580999281297209341291108887025424843013744019947886710865874675238110254007984396593510655484265819219912980415523190310461270445593978929009420503008932188281916220872297500468402416553399862103422248712185549025312610472792936962360831400162073598868753796021385991026701506956301320276698208091922588160970582468115736241015967194232292670296019092780145717874825573908193783408897070768989866097688296238294453528317539665426318983572527334637238880277963507186122829767206129762647240947016610190128953842441096369811059832185943749508317284495563672518111713885792659476255501024220150123844825257420536444554071273693610676616200211197553958313883803489980046921327924159175598708947470557907214437710883461618092386417558575753456562814592875961194384147407599221067918897103128160797299829347007490981779085673228417000210090558193990189121919373029581240572459866770845000055827808188981387697615897537285406791902251566622053196442311230215891580670646324632984639333665347015760740162224139899267579878373495268851360558470776225826705570123271309150240698181630485542271133580593181978323909635169722438483881931755179615555490887086519442476497104265221649855243336582861789244405180330428541487178209629655701766780105992311985732089327126425899633602339221909216655881433040033903980430114948356455062409546143105967879037696454202938752783229584111883375201710520921557968039542202999186130526790228600793395841525718059172572410265473514113073639290792435601385240421996244710316771383925303803537589344533390093867241862169359147484775055004234670606549140820333987426299955577932253023239275049476349444033547696320636479410283417519568184371611906703354762561618655231548453287004080643535431975037505322318548559541314763733487340135653878496065539141160866608768007249735802359908104817819893340851005321207971042051700821548122174218276409637549361049292831016825435142042357710406957370058232846595757416174122957142321259137619267400782487988372586002364510061287405689371576831644829357440827989167177894704013683761223015959376153548628524160690254121707774331753180715076433599559504008733527727272194162651872391365760774568540389794364095158176728335446489939781388704405737225263385474557676860197759117022027550583475821469311353370512545677754970567159375914705440056845865894791681556478587001266407641131005330843755324271783953168162502761094728925852438363128299804543881106921429028513125258512897120261711245474946660723314063981111550296885503178967160938882442520454055630506707913762050470343611013864037234889480114909431729767565651910920751530912634636484238183595551784491603984306346640223591291068890187706062005059847086924101357001379214055835720735415735124484633943067742901862597419825893859169383726906833871025550548212203251109471895866727522247262316366831057604863784670178111294409911789644659410577231342521175353528619176763819039417897663625042938895885911145325290557930168836011333529637395259354145017505067189970448865602186014641903403668117118459494908667214090313757532991080910815815638778159962428520313988438997968642070303451107862929346493343228899834642206862365190967016924652788637869938738763647970720168887350269547180931616182813148798150957637539829531365025189571746817749086175304774087118415410663917604655805616677332619879381440449818038073656498489026754132208228986038557970420709801022320706590041556454065434298989475620379572204528630290609149123947832904819631826058417339065941942444780196412310636897331548845967291562800848589420498196526129850628315440315135853795507960699058922702420273871316358339542033975416574290250270137406581712299297088011816684186520986293391902312556250506259001891496918738565510351224035815903181162646453706908334226256073430058621705990836510929726277554889630873314695168867910054910880565291312585848732746274739763561743028883791315260321431992555714901263840390849366730297985215738162148933996053121630490617161099070602149855431170268037768610877438224660728933622678362010390697162629422896422196450174669518415056409116399248573774071554901508056955237173093306426148572902438230188650630059121040844329523365997872773852922577258921924661611317134136368192130889788743992203409489491147302674808227231786087177250533396200054309557798954931775265658203453375925833969823893549799506514337333651352985110009010016054155685011464796093127657859558840608666592850736777246939976328810297073498304688677685611629149100145840897903827628447590693813362565971106215564196206699508055046072036602896682263752002186220768608479655587394764524578679647054736442642475726062385622618569380946628440461091469531920583757767531653333920272304957528521631935087928891604646370963127917424662190230648598566556088119203362422475406948327511320839955333746414313923950804183773109040873695292879321976902597447759108748435218055367381344215404303497158708929615511626158929204506510566904626905284288644669826537362376042293760264617052007582409203209160760498997290262359113041099419680167036122761197769548442626787687261933661967023046590012820976274158660160834795220686410555967751874755694599051768568559946367715099284122341323876160492707644177805685906992855883674118567422953137631361372642509996851571720988120710948269043483518573084995753391039017167791369347928032685230749392034672055575163167536761932489016344129390509485385496175042702643373681118645933263720852245875847772995522535312175702253777187158989773277710543806557446373546452059808927176782044271788088709520714298014563820320510090262187231006406151752823971440202828636155261040521182917907620522542340605926097247923090938516362942640324848432728743025035040940550081446116317943269998399719924791597294684555134772226136507896043644017841282812076824375040670097027845116986212207475735543600088964252520670066134682581887068909114021892697793708161464061909727183439087170625956934281942509929592586457358031671536411396088469238620767757483377186955134272418123322646229041829393822277770295497155541111889374409114677644731211150303930958601043451192536304578769139490819959086470372856846621100953937755455564830720483526656027773810836498565621330844475550131951863856985864147397722315196153615501694044317270666474998219350389657189878092039668735088280761776660807310329532699556492036777500915190925863099746550933150959434805372825466188400220277983209103081584271463201710783978726773146684222263673056113217005493776872732111929071185926037979332191719872944176611297405184680241896114511692562222880402789834344753824579334607159725554771751760428079056345381218260574036507260566045068962086924881911021708677692274234519205733947114873845584890308453000388638407773284808161689730154685909158171990826788621539482103532712077209290841711727161073855333399482387486837962321013685265032360967909089749431327770463252204926701838497590848520717180847534734898095476370780543069271145328375524735458844568342007679919799147357319293608663930185583893123569958571183755083289125050401589062485004705154210776696908178099195693742584575186914004164402862043204286885505520707050561731040258272402373177993068222707094331285469815629224084126441275023361953795363194736347800478876944778163136365480932431989759363996100229273496790036643126027767436769955780092601524874103480287737802088504057968410589938904816114009575902662653038166541937056215763841463515561900818942941030317899743764861223619152294854543163845057926732636549491321262763222674223380079220025218210087240133087922919774319964878006698780057720621256012742100485572428908234920657600573285679662003282742238547183501776926995085088149633105525508288090066287039289145903837565128210559431198118594298783390048750235503621086910637199087675375857992180325069764157039424853316717213662052413521424832715312893337756456446040963901036738751511423985528952377348224923571060767282014817441990644158528955374264086733173840061574983840036633033776420068156695832183435510118261381041624074453173326739138915281777567501207653086913064405897635216145506221455333443637661887671728809108311716905694933801489307738237710499780108456955098706877772641065931840137312011121076130711886355318962307289206221715596491496924572735782031663211845415769596665623157922482625876838119778956531513573986605646484749257327903891768246558869662128183770741733379866475404779247044573392175686991387892728402858274651634060714544424496147159886282260415315262618110578996247317573208707688135811761480707131478577557336414917609493165670869690454178246707842362289986918737697493382121038850639560426729271692767802692840754431937211271900789279790998490788938037945683586226883578249938954908488052638718630760889932127008334417978528642879496649656579809315118897419004257915775862621096053445492551695325893467042710541117905171332127779922052922667753507876547247635774764425314728810886551620301594772130291537354468518834362120568532826796136575638414977537840783056881089862083278775036994593947511752877012750789075613617173120598433273426122890202865622540065495780987296401425750736370940810091365741905341382358599883073553504805106509508770813892632531531302889023865188638538446469193749635224993138148091172559370160588447199440647452171937209526175944091591327320583406647529142994752403271229978188704171995833143138237077722260107877905277413215653503172437159765758835654223140740373598729389534437765011300541597460418979148355483371870109156520719131635705076932666813389864436777202555230514674988431908068224992541198667529868720132608015218937832203174714373633603822753707068046136817839648459376449549342152141547399259819976465203510350846164444373969421086686048294850876963509548427411936220405537792025334908161386346008713413151926276795109547359537193860143526575381013916577267744084124270593785337892149989841116351467140693916277697377867707258250801358027423652095749161157870763756726498397812197178934142484354853464528943463918366810629728399913282575356641605915607746409298057728374702581888001296743094224656646681073496546484662724534343615306491788407164206542535262006118466094507775050689663232539902222139704163754777733254496617591502088875909210109872188262843155595472624608069656829253633480108891858798060838769609592481636384650576710525865343875237584243782779657740021246154230229882673305951714292613714065939839194520481848029987323787922233487940295682126673073174119579024007236602333866413402231049226762709063123703806007167071337284094144979227892355106933696140394428639261541935572598778015192088199343876263041922594308591649979876866713188579409146518214623120735127350944237270727858685744406852351811499315155580065286967578343127228495588569698648743061843090113468382700851884217803489918375430132839288885008543621584952754009142618650651307404781025683537503032324018807817066207648612318564838309847337834020996422328036783683603389852538040008262265396053999440909287656017679096551536779275641886448166560954088959581932371524258791500869806547604898229111883186220809096965425018815738433470402241720777060516443672826374305623776766840405785514210210737230958076576716695458357347869801072721415409996099684032620855993275463440413004622781609571438609463320854908984503435408752595295956475266653202420197661947087336896934528180959458218276281017005339893404445344253822321523500731546274932651428641938598485424945832506520854158211123001157069048630643352151995955832564501937488848053481330548309785455796940785355757349470032101158563151940249238242765604724104589954823953499976136518385874388228278587480627749690375116265749797238077456991704742660390835238078246564208967932796211743315604064044233245198210613455714111036451627178494345272847233347346813331081738109740265627946259800542499784065466459167117035525954867088820367273208288226022167116213418495797217417888379886208005323672688332025912938106804465611819949119387955556139248211372272317072644328823959507237498470522744540682401770480339249123833727982404463454791386261786688266119745937339601192255175525112150984781093099273304695276850105883026092619811936584000339328479164116562508840082603209956202913551784999797056264304456489750380515860790436632045796868494794003370977163397016615919429520014492675435883962430382383653009867873385933816307403440235122568345391727290915167865262670523673497295327745986922929419804293018340851647530486652566793103035659989631982597512434142984051441775338225621359890427416194809854621517356345489346010946640577783349529468926974708344620730374202797496355419178547933629557528750129271181134401029517241758467609890976357240882237669589973163342414209721617621093359378796244858175743397816228978529750973805996808520968720766025566033075827547397844197175802657537917733185997753160576834639584378505531629258510197575011277855111243225589639748006887701710284583918634563828549771042879125880294722651296105421453883611303252098280808178650883424296727983748703868723206021000509868954740650778983099186846807126811367848219092951768080084149144346085985780007462185649569862224804919725976318718982707250529671690401988748914245898843281751029230751496082229136839115726209201974241300222324107654233723618967267015371449472290510771597097037206873476178735411418450344415700773889875642759713365757229480260589451266704319107328822415026404499582782513132977556671683392153484095195999441768453761135704429395735445560574967520871040970214859014506905990642905033566927763370127974671956476373944274540952721276271507414047111869317876141473551776519820183872624467048468339706260424918517962750570347105762633501498620080053306223576753116519477119830945100704313461585026366532622260280438533668258339556780750597704742233474667272642792405668718642041552973481334736640388410712957113814183010502137171857525759961602379217297879232364396088734777663805589802893755587643420714699621530964266780693587510772011952839538110992591229564895015066501027218234768038495327730326068414338839084729978414176236856671113535289762169550384646291213989394039088331498741014102405046856128133327303084765841161054633277401104201871855021420939561193420082998805172248301594652051977139298165969355447546211638830506743153894815208219284693423191408456015812993360369965538058461960976042404309669874263014647861500439620268416785818135819130116196091547724600054875170934786548811778602312554201728119102391062665800006262392812769403694248087427718801874161581239792411640318597804525777573238306634570779060397882753469905291881958309574455273413275622391802680945133979818562100663849108873769404598114067347879463749903314183955854813942431041155513885487800195227374070020137986878064884775829470754370058968652451435047479892433693001608785376950722674315479128086810539705966074327293716409420656221571214471840527273721942729739865750910680395684470500433003992418164766020951592219166594283056089808693098239004277953662161355907529622062948877605567021124704210504694574853417271767434915341871988797282864530106483515697608539113235365137623936877606289716720095543485906265709273759545603123640235272546296855054436430262646686308701246458227559585171482443303805324819039906254275608036128208947805687639018874525567022439064900145285948579349072079212790966332775482474160999913424428466047999514113809544375544716709257490922415659664711042130918004178524963364466167922362442582372997623414012272595647522097440823654468361463259679805856247615427955449519820575224318345375464731617724720065015564489112666941208404179082695930503705721279204417713206889504618594197280023389486250758298159371664946718660057173778552625982387363734721307166534655468602055648002524156574387816434010045677012301183772811072353133756079163721142348264615435338808604355267604112755288501830988524173734754915043914011316268948210726632226283146889055315506215737946154076222301055736236919046898816193669830989658344109693427716699408454352534670858291783590184179409125563640233779724293223577136217775097818606253027964346453778536400307096791014234013843575935654043338774725314722692142062281941520495868512027520498528787105745463646023299094334241053219820159909248045844394914066033435421693869080966439120620757999067493285918692215271072237318054469504377019264843185516309486060954784651503746942616318879839699370793059027873335533040776691740556360302351599264195226767994140931488072871433947234860042323246545687799485906515984176100396902603388638616896165940494321835099043988568555285021607303783640209198315327910438283698263776984113783639262442700870658921026820564509717448058162729681877363602360683017938443708208354386117820986270236014543256291765392736266186365025821627530524360395741553652946563672282876255397552598517059277825754534985418609617840724286170436256406579736460066677264487135105077183191885759397936215567476920732267908924252505709735494040479603276969281778581928492217176811899413351264934393283923311465528963498591470486725803597511444744266133332193552644059576816868425329450763743314615090800274316688496147984736106491085155523834350951486470424980780755620986946256207448748224059908867431926646060635791536470257754823311617877007757131719357589199903531204134947667786416166112562168635166807294092166085383322528645383333190488184986830428217210838515154644111695751884111483824638380931616445789409073019191149334911418276298701468126444255625686471394384782170697275214782337934231341849013392183558653873744969652148727454074098884598544980516614421770824094192049022157312146822558241725137608215441430724053158205992537839805309110751109430327902850395458862350335920786948741309554159780842594552762582889293577634001618807076967970386526356447901361554899171039590851660188949337195537516685398222442343683623624249620832642036922899044206903676973761382526953174240118539496739590941905988377935988430544764375864434963808664763915764944474978374351513583839479357914541847869847232263422351843129440878047747892659644080732554998565936535327391555247068128445766731087379149667189081792533829115239837019576327640779802551866858262515542800793287707632977617385707793575065857047696955266496250841749413517293188134486267965461323696211430564470792905498238861054638840115885246212563293877227832501578385841539843575425291796060024912890361421416325036195786331373222581474182750495045431859903324896742145135199420692723654410941316778909892544972839829918071490791122354373495596245886159436287562423968085072819101969286055088535324276780042806716738868431366572640966287824742060424034707603150200965500994949970962654040010773157062252881530225336490454417940826529524947746321389823844365646885996196503454664709511753441399698199440384781969769965579184210591983998633925895862136438338921010389909693696312918473484860081254180101755188046642367239606735876250034641951265332172961678836236885004506511298789013743858936170325142101745157252529434494738127745773355335357230435825555393347364945571340861622778304047719636038968325890349047711610896899137904142821431490200770013489406366554295365320938432745126396542826752420105850815405616326730562207833230595646631318171081839860864958276213151756494239665999449076002587684077186129548931387166230669770297188658738872709570258448551468259421293709582542201674740209746825694400455524225902585389410071228261290663419596872694738241574143650480741130521004996842745733061230908867493031366218391456801779588385460392926006106658085293019880544251754729707500945895175801764937177129429381666234035109323459312286260965737496121876928707405631715088833004325788700036565432445426008195103319210114140305470509986094718396845551203353670790207563319991831682934510925624399691751392801093610151980600295391673145541433231044037073370703298989874131404413304634541647349832282936247939808612775419094312022935824196089031175113380151201364867511130293233481998404257171406160312092312908149313034404289060456928196210505009246311433292965313105038950518620357240130893865887968639338336579290334167001798641124172440049156605731286190353104835222819787593160438461713624595496816437750432891908085818669796316971741509270142754870453829513752556565463895291875335517132552162571925772931930714378713979846487124309185929208809736887769174772448122106423081268654987197449592693979949872443205515377201157949368053712385166464942057684549598105713909636814562492042306860616648674454985991736660025291760997682316546376960280277322960456990041686276619771376777713736280119972471791349262160387602773212813763865610679753707823041266075489825971684526849264574230654234420140612251242721418029938164785256882110013777394977107661745004379856034052173760194644627287676809891503737889130142646848932082544016339425099242450673991670235376682707722675491565453842763039470218075520979524729980110591597526289408775234657328840872539794259462517312919056590578339266722147779134683874237664823025586211928315609706976807904107976135662523954484582747549559285549705655014734041689798247628680962348463359194714827803514785158886832789867258111046503220263779194833077960362678022929029416169009411162217493455985654173970248111607117947317808653763304998836315940197626427829790670337873461318123161981515250037972639023393133314087816369599771328246195096564074110980063808002187627622991485469296699292216880347667067315598727489114350863905096215656588518950464438431960458632669656053286129604432034233068637118875357902857601161587715899978253134409037041379062814925092988771102699833614829762452733823546570700694880745892133791389326317906216991911537362565176217123224176305356019111208440814577899784889075214681323239318346512547033464245165735251696498656687960747009161815753003377088931664193283498028143197959362117402851918429801871190456320698749831919440336492850490332010178937024887997767659647937845398736988420942269848976074438495827287052313086301227070397357223737617837320901039938210352808423544835917759928564078915485552416734026399462820635308115275895674670153784029005358670636347484169384874384763775667450079537675249747640234316468584270168482874162198043202968290251235148872381156044188022976403369721767349820343921685297490582272483264091092515980285584743260487486586262778958753788943762930072582593419866093094784406743686920490488576611029006633090287095745224704086317839792288379027059587292669474133666704797575106632367370282488610368232978776749409338192523583221732063421462073875105044562244161967569421249142045961980020021446828822452306919239080861910300899447675084716627899881873718449960251103706712009670004473651487294103137416168076805205018613964770965398349461288136196960211436441195048423447229817138985475728394940117795835631853429621373906660904137894692167852249958558301680903881394941161548111739084264231458916441070271169996098734243545405697090465312854565489979746941075291189595676494612785944383311274989846725946217769045814458775351267049764296905551210972540204440844145474363648218888397761361763881453720250314375925899463771368274926768158920924093904049447943413047420036619042659721677525458608679872277861727751914598575714579852745872956424368160274782754934116147673869839916050932556778105573688652571400782380705424424544919188568072818889222976029809786254805346153214608563726732744342873525612140123666593993944362390811583613094781797554966773718854585036045579205107303263608112723335429666935616821754237025224380539420384357674800411576766790439201934509860318070604725025950209680833572592024049966270359717500451585801306728939036757673680803671161382873330379976877060692937617637303531724817735491073266808942715541723332039695978604447063073341259206846488057550924632659720911468763366659570573785437365765981536235810422042691429285144800974763497683174447886250099991126985620709913629623860739025537915805422967987908378795964585162931626436748927019352194008550282714446157413917033192357320666699036731137550114929640892696259578673864184768829724098777684149407644612755868530380592583293893930213357230177735910880613316489454163134911590270620695141683185976776271013865812288825831067024564126995997849483123954812034075721478938326025554199221089407447826009747107433119113965992692806110344970876449068789750902627403631947574687234688421075477695714550182262537140215413641568757161067908944566698403159834008202432404495172211908850159142125451676701229103093003668788524013652169492268693733790296295773376887606279233333570379708849201518015370282131832588581752731843581446648596805489180166809041470236371325320495412745746645273481903932989872681964916845976607562822524347226347291814012984063380594973022903008632802098565377456770443659007764220993411345655604937733226130304071864047537382150059518643731046411898297438625761668435857492770816118134607929021940801698860673654969364697486336086943314788988243552095634133962458670793197134983045238637969955626566337809110613303902820595211596779295733670694971626940684895168911152269577887550795511903957318461952430576569554635868105536881263282401845885014384788277466026871570996442232178184692977679838047714922229066425413167195060725835241807166311702434761874746715690326159647543242060464948108372689391032658280789874150659942075274629963495687235313372991237485646738923699877051860298094589718852101939832534328980088875034919566383751239338875607257035971015868846612160733539796888728654816940222264334397605299616511632508530220087491676856180691925252169918687584435356933340146063017754697389513676976226875481247954505513624932256033108594413846306116018113165451373636923544291148638839843727896380351561529015583891797018051898029019905609268387525908946127087493376435313870270871734240244475111938905310633736646512531151627616331022545695505291583761172625858803728435645525133996432134624583822643093903953858102322982453026185920786674962689786349272943817766283014215938252746538573748546901904339246742951906783232158197519614228014918614800808327781496117209246820527159720901238174500216588559816564200261253416316747845110053547243458203121314609015655408013701286004023351090496148760261150986494585139905355559328510227356132129278176413903705533486211532328174055493850763045355700114998197240807564654574178991846260897626908628449767040611990425209402224568172124451767718002920282434858659813761699435956577461257817555138121363163663620847879673496255379186048472927604311547043032181476801663041940052859204839312663304377919450847927527629630331388386297755597790890181767886145147501280500094636280215382855016425065075841380539543768327427072475896903637780916999255437359069756628765906448225696509785850905500184303890832326866646163802705682291734775636167152794336938628772963287167092549359988042309222355054479860725694515303604963563347580756446858166907435949252776528146130841118036288521870711955655861248093270159409213596542373421295234849223346306800779887818344236090622525854494509346602928548311003745610133893332393584358684278656699886605218703342309975500000664614960059978908561814399001967611859373437007277279031548240266601661741829992452005933111234298435597297504297729943504762937286755398034978272734453105356938384117416167232837962356309360683315703556146312431624537889350277302924429110704770047895313659093818559605483273239731957523459070257619402826482627805876096322020098995399032897106874745935108473849833966276326436261175982928292919578754740012277674607621215614100768230905580481609091493852600238924136267103006281567634838007556718102639375221447381049243682918231757754878269063313777111394755628345494610644062373005941452162036700774265148676781597755538016100217874815098374614657710389456871319296973122688296618128526279842102775970985595139170458731062264707105339551154154529689232759624474237843394098995522483419446922311004235297602975110969109335785027801732627280220942930631494666799115010743840905350021905422656389457102372916626272286662037134054580082390160450895305303813377520553714884842351178723503783941674031091235265109723435960503713624386556507220325843780582533365245232776834468157281221925110105036202793690119631461858324837291092337562030719250224665411194887014603612763345803590727045675620364975870097083226136848434061485590832178769951499805393327920532030345025607230888662172888079989201460037742435315009234694575532917676684291358679213561888647129222376824725601259019333351225388982422995788720355906261733255935007604447026039810660484211332132422778254677874013772289658058338973673176001936720423431772165205557111133282371493843557358035823269240426775760171568869690741678615534791243588546354680473814903270035905292808858780397359122596492289418758373549153204876695792814905387101545452654176557926912763700311534224264992311485361601694201922356954427954154909361275799863301853360450721541295031307821841833291335421066884462547081267287922099205317172571430170624625445896623406908327334625338086380033557533238661437258688880457337747885783415066403289351685532510532335332024922276462663118715904894830703387258904779950620968542891961786026390180398436841066856129021297239355584114177099402464843151591092891985788693533977225848624825441743169522102598658906039756326369512598919370429930286043549731816349041940596004874773822395349104526195679420672599276478541648597620058024123715159215593242919499832529262587582426400045947782667484522668492116092452169339774629407389453021295929031377620904044274565237613751429235180565520466077433169527496255531071354608543791821730295788946437539992876488209820058541856937999608959089403089009934125703993742960543561548651866065446059665404262732914037179299159750600882427700056910537393885334929818695865276133443873950151582803567765771366486123964178138772409656753160555730107677985322542850965601230394308069102041303841458576557423622227619632285712374952412416169004330639993447799936325758194571337070898888228812950376773679630998528275147537993450623953018576172524665194589392699052501119522146921093097841301568808278042528672950536652488068369534837868278462663122693717971981676307760765249283193867931204812500494669601671586036052686915193495384041990265601726155790410848601566699830286262030041347584107519497599633489052840724518426410452426444794966490727076001809163367609992940684950754756168279688581165483239128473332359354628863686160100273988325666307936512287206971856375118475000360602095264407754618649518131165810427416811464739965421882314457672648986878755063636514251651990965021255694949888885016990747997999971158624011725987949447181444880494769808758285412544678212602502899491642763988547107826063962639713661681341965858841121952446161784644944471272189426327879149556616864520752564928651137383692821669249961355775712836533757749398303025453424196293181079549019989480948585061988491440846153860375541556518730728198284515000541447648211820265628680855057943162368103126385567259959406771663457390324170639170675281106069242384434157935806023656534751363442231889206947229242308358595598316846237551705122004090286063192029089706974836710070569692957416077217578919181869812051923350508904448623946428447197645434758720214626989795736592702867417937263626843926289490040853139129661597639160139238024224323634777100073609339554620145764538122729550423990980009923309732453160351904826498607483359738835901884289312392762956900418306682178070228171535090139905983982312480056832156281598636114335982537723305419015786267713389256791266987712866910542341378580211111798179646820894030039054980520297639690299220047151927402821440975800281451195757998190859051485452617777930959893554948354346281104007752929713178011817966457192714234660051275943103989834875139970421257054660777758278401422618692768676747113316470501293917252461143665176282332277291700758216657428600083778004920916824837833041917166538273015618863918357840100821223467724416212246302759265891127056421402290504953561294303364108726403848163513087448574726609722897404585340586840144608416779946116357566016077708216500063856550106182935018165335291591460122712962984910467916720805710985957620180650401341102860712840946355594106297689107093932096414928113895505116121024128137449536256779253466583487013146801899758545656428417537668162918207173953424515007745255474820308570073561307423194687041066444427967392052686466411124235846785028286356980235989171832128775180780696329058482320944476265405949631316285639285585819791985121090186199050994594966991624197389379440334134877381376258803976258600145278974796349704802604167681021874665780656897684060901995545193573144254994844000870053282675910186950900732633041539050087811589538517455404032179285927233828380107155147112068865765066371801193327103070409572690360347718281242004814000322252073734136936235323308410774694506004804960765550042104069068788116976831775533220360486444717415483141991850361163349771178352239824244659301445292521188807068032358352014279595436103140206469010452452070240156611180149876371464122998385380962827045187312425537531214731325064642285875675581983069468282227311336745216782162893065200271764665413296677738479070678249536335328817262416885201658732431969926996875594600898788878825134746381165635342314552866096439581595017449023680377101152008008205427403729280339523404501460844636670333659846478150818772494101906264047567155348228306045969010179376636937491717997394950385690262027927734441872251673585175209147085459091648365825927423656645508864809937191786747641149549044650615391156035487617066332146324285934296503338651594489216802491091120080574613307322972955523915202874909640761923471809329802805906187434257252193505909719342042763838923128978750100480781519776864627694620945941077791430912943400128743248791057789064693393138680837811956394328923457481116995552649575634294934342046882297790320394939591022864830410281463423711056898880491776002861662593361165765073335725073513045791814460325611743078423966871279084853738675511545998672085282776514172302800652577097974408776218629336326451809673785666662390472163270000312838267250979370740493783531266226000102337898111349965540968692098832794214057605594780485043174765032085036612316822108892841298441945196565181132644242791351354680804115792565619348987117998527180677452623944320536431725978976834914742054922725602995636434456614204889663915753600319990609938618497944119864886551296218091141570787845856273386507373740411303329640937377823181071897292806792475521755948022582172106812197862137085370679766477978313468792840048771077209158304726714824752491809977690580762723870660241001572612789893168493383145662853454085797633468153170137392955850523775580923494237707856827342534401880426919815167787350916328526198564915798089039537180856066707462029777146881008866339564958412702075774228512169559567831169901445583037774190975053907988013288524105730767431893657073527077214164068792086386044247799706139889858130367938462518164466055533679708072354967075814307456804277857525861082429021449662951412458855716680451142053358111565272429583671790444429208770120457191796645756859012807956459857809661557699754066731151486744766475073591631927032571149820381220839429938752816947362314271337613966979435441736179541066947813171811398671335331280778751202069722658854029120519735546322657801382571899230818818106287758303723574437320088719331508009558067213517734402147147973287599540092706676548718451089247200541317578659290266527079592271376601780627009590028458355051601982766055828468534817040836315211237096500535285771491533792225442757460903919941758408954008884576136485739431065314841568157367293264747208385174372201758868847774737386212819645170920437136763175400566708437679146787358136140411378849499572757947695542772601853108705896714971210620269746841789485596531263906550475516095565855283733854659684532520652227149892214299118598582068225509221361557454248562933352018022147055572453758607828477665390290780292038304191442135536070136520698041094676161538766028704243745075400227054033480366635509596627472993630824772008279256347992118278971304016797723377028203928282407130861837992252757970156056335293190768675791036140209579278803855363922444279620436138116608252203664779212939564324805790537191278352359188584171935695074082978913270297268549138836086760721954622752879284857473364381540431909663153752067797430927689413795041923671201981861525187553738347130474989250222534297803591923892614684371158273356939465824145518181627670042079232593616708361177078408821664683248908423617474481894516622726967621364149056191456609735116507664252738416505794360776477893197174963815459291168292029124545036707179268153139016277456268936158495332378124554764107505113207789153152027394792744556763228861447858471545192672638017901324762253212446604624476844367119424520401631888267577035555666199366521447821136714105336517738624385413066277376368052594391415462237619819610697167163147686662604298502477760366525489281311952343079039629488480961481438182242963531432941313174969527110546068344896377233730597223309106169648481214244044381987382680499014566848688597491687814321262131515916258601729691851697387906619912490583971197763974917012015165293049545231381069494409790859334732020862928881587452689101403764701236371093191473558952185425563695884836118668485295025410374786386238793789823879450532251336468025306114783253757812107967735249815078117188943360911086448582927776548568677343786560623669047435777408630567123504468039000529517791801513011999549962231646228096091212131956808715141768875186698334910296115751583751458639436646866574317206357197647816608455323680008489166039471975831541666733200651571204441824172424072187262591521798691446490527751518975010222920449438941215486452514365967898699850133380390431524939254546138994719669778881722822083612939039909833889443280096780723771362173189184576920042825335560252238588687566723111595878132710124203848296428713232489160646283770323925755784519387117822508995693359242041437443305526439699858722959030384969460008087668162714398675616590133749892488582065577424883156921177620152879908458581484821601509056458419025721865387544594716749661736669167196110040214810719830748916098366166145832340555736783415927429859107810248243317926515283443424623344799728237185594168513937325200359368857426700751890372960961036013943843477358193166098171859972888003717975620943149469508194561488556282156244921575427286673058963674313262360165764592821376629876464318885338380804804707994288393140260384078234686186203110887771547613269373652172955303056643403878468610861922196826068617736379981974083430842920491196555083918747291071972825971365491957982316635107311333404206814232518154875459767095049247133192756077176474908433592876420887774589110028528390913590773444793118519034727655273902212385495327344885847510932833746385255248570352943402463914572812118737462305116006717789131173392680012898401381602943278964799724032745164924216471253349142218120274847039018034671320066352531905162671230206021463526116002315016445740138124325130549234102697693026667603550167068894149181237790585100089710530718137747582332782639202202411381228777695315353234929138065931955716056676879216466260377850617242672023260758991936682525957252459051640106344270295458283970455478261108097202146293089036249621666517904323540003752470648375351306034628585234425199450341711396743647592315237906916684625129807812634286529179241116529718147441344369904171491922810772873406973469985097939986570287421296444661741987904065279345135638487809776556124983662956754093752245849117929274943469987242571230330454050706793173439171598291498435093187419304684116464670590221942332319338141073968718162020719256781232186441789528721203632033426007669932373736324756812670861845425473114970644235454130076058702405545136577782835965444089045954754716168337018454025315016662523042180200413428508246619967392487172663299627018014555989317079089612782580577819246187760437084706019063088731269412476542376563335127932699688499029544921427637086818447628911903080697776964864490646818619023113218648000801580545653729061946719263993787745682995043752416780129026986928954072142830822107819149161650344928999249100183151687543130969677585754217162446230046911143338107992468065000738324857833785289078766452675325387489672958546848817894544487862457347606587656261993404528925882054964231252003260340918368511744669328056137984662384029358964494180626730694332673795094728293552171386123221715104896039582101085263250249309255458284512734164018118782942919002298245492046401482121219386494484438725216412717271044339625360049539449957757073481241850998696455381112355554119784855110833300525035164988883002181020544821783770729981674908865860498192464175337044904704886825830549579630098000347526418187117634143161929832171529099425709721362459558038183271650217696175808149755181125146003502176111564113565734103680071725683441412065896887561442756483953400626034029943598324651527698538060507679559253357568514755402165421387717117963815703128372115171962069506434586413962567875810389020008134806836924791981997975237044502787215515562102535915868503685623817537790382916502263720522957708524288113941993414783215659280972084670987580214252093042507840193063791570403295008509492026310507033871862523449610046397152866728501146319378941503744832271520528009239287667264396202653021118650138144275544963120209559423985382607556555894381511980142625102973321580638882156442071827506004023409154091561947720575524519795708949933610556840092743679919171166315281376080353892073982346352723984192923142994864701111680413911173353371421284239029859386111750650907773381524229808117707765788281806554839519503338978194428366816940957080259216778711879932606199508473497756434480814860341292720002179524714618708238412462603243134159243453225747760464739154434442251085034635753212934816224782330275785177975120490261646763838272380881605058250041560001320113150715068723126438514483038558203693950815588731975880585384892515441361976265431786985898941275957538629698952508761657912161386766727251480847071919611102318101019918474006536228915733475022222831063985900916017651261018098833670843719066642614129191599271922260038189662962782127530257653554559115983519513303998501370534259497714589410619640467830725265945643089412013466848965432136168423809576540720414221197940069993839717327976772960567791664729566300973585053807882717450068908484645811380794694555620534281092999939187837244595925274432488524727373147801651782511101023292480653821414731860152253144787344021729440968991110348923339694794554600672760314865949656758243729010245779258672064733517015956450351424347641140514600784538917397988791061614542466590573641497953009319784695442548929726975735765774005113905229914015282135004060600841722330912556964836325047539731133645316673308733918836249453902386301929647449332162095860670778785707473396972022682876057142309293742141690957831818659240263473171873280383053322326346986782878627027196820672142970222980729941515538714062204636540415113124087122894958806293509692332067586903062901880931649245530868770654416276055947244057248386667262652560816851262807541476085671242618290074521638981169418738497395429682423670212423681476243717478909259025014302029367596321182833437934992694025105246467288430167959710604991854526991650690968222198285788220702451824345148687871169196835637570604932355548909808683099314281125395391180491251901962517088745168260635199735779533084482238383595935780988524530764766263337605351210439227141701841965950363741697538001293937244587650944593454960090562710005029175708304122893019993085313255314259050031587911940731006398206786936136847480403586986788311440429181828382122012165738012132742622879380838966302221121554018274014829134108032665730489554409466897197160255293476024738745799297178799413231293469936801999486309834454093390211021793860834196631681258742259627963919046658002104004818073627829110746463284666401173299036117365304146890664083184610730034616380995564492169565407915739391798463683369610250337303081566917549287521614651616740282102956062395119169488236156141348419308282825430600155824466760486579351634250254043376551373696891122780528926642090286995600160508820985254407006727340692241867036667473955283463396896646901040745506243327789187289153974226870428740588972037924686189519611408623849306684739306680280968371647453725192931920118606840995496915425370061792379228370311460798699672411020775293503382605185722167671788936948665582805303297017526631325247627497675138757043549066915580390919593494619435737267494403002030166037586337517332453307408058526368362554373082805639485231360496687149560678540893241598732572846676492661483626067958628724171147510293346222793134217734280509997587681157293140233747154448636860914308164719161990209865771047041341077464479179708365577489491458875078689726855329079100114979685843401535834050007648121450570410795474426629439461090649716620729877415848304460282714908553183325924734827947294253221981286198736275973457375320566027940771663963123341605441746651826405373424200908193044500836112899297684118326313340438862649984649302197632821129999062102410014504806096508265383843060482313564229469390328191248298177209578398490778327261342229351237628750620117213524156141960082916708319895922396240176432463622036739393711112691172183173729902316432891349620915020288503750019257379800055105670863378055140164153830090463470750492971482142360321029654171577525992100209723841002472626486263844722185726953092489552194691028899630037483984379461509743293927912447518175674789648628661698926226395683590942661068892112007081391163775823172064903244983869924085072725122984582947306938808174773511695443201903109210495665561849846391285237384996524588135092385590619910398290648728743717135791230903875671145155060454714633406938757809198683159351307954794302366594471318461088292913974823003575285613562342714498407736103996062539342206795552585540344856689773118056725245979061137461897704083224896051296018680487327726463483271568703213772504856137373180803704081800769010656402237746184927851118589779715166542898459667270076468987269227127161748381723229910107000318021620345872105441426560073802430596969107643215461406578785707244052546035405639334109658571151858664874791513390831106554997038049847144200684267024867700702997293301894569962876529465796588058300359834159710917912688817804409020763589092379663889986779532357470487468097250012108400897603101772269616265345295705130765068505519778510987249469755437808525106003867534232862147764926413910671010622177369961394323941190883146071941886890034314117090867356866651383656157433710547436803399171633008956688275249421146970304203873244552423168150259608222011314282820433036573025965029288195599439922953476530768983153892032063631061465096576280490834126690348205488569210128805319569874542587744239898832076769452531564386398666110848687350030374617967066983539186880870796345096243541154143879586982989693762817516398365622550394423547641312646342370364627319786326742990710240599546339088442507756422590259419293718728341834441645917189972781546262349525195737842255590845151951535087247300631245646465670397253942516268416752115039188915244798936540330405105138277661833845235601032873427456020593023553271024845126651275633941991269462555806983079596735337677665770135543029904008513396272334325118473051690008066182539611242200184458620118477644537781539651380910415387950654681010976552065375329971729788813678104851506754130805940875967320368466790984139383145677128321430560123595278431440932688603828269001606247830355135165385500957023235378949483289984500543104192284218915452999148587366675270062991576031854449931889921362545888352376359065422771589931987420024644786643715791398982631442666083143363277480420686424283678526849224863252219389291368400028978870752135637331417826041624724478150958412413502289084043695164298736229009332044983934894637199364058193682664384468653863766146431207902235292869661644453826080205774064174451135056903568251304266610778518469663790045031238829773879628896870617290813935805189893984000114441124592775951111269007151133698760836213992750159624613485341345282245428397091627453728936558571343564885085884548896843338255362926500158640230335058827561582643286739049760930145137104112263513660128995169989740442057424450498964611006866809382530191699046156753832234509547122018237773343495011762611152005381896357022447583634333233871261836453371534300192179422717696589425572802043988786161514588404574313728566911576744442435910380355301173878807709647698159400847599616042942684525053751433116992500208046069891778055542719306105264774116823899389130501853438397649777843097512129374342394313386482502146177806515893031635786672314526737897789310625368472432761940381308899174577504903577485739007181038927174559491734470982993439376010367516303898100524289535547101958877547505967711936997478846658083400811030952812313894993800828570838540427906710811235165099690117234064157510365257918139381839481156098253610167677818921372533845958959039708464577569361566129934500102955322634416869919993676226125507355509519378205153448080015315968054952698959170116915052307891036599144968425019156179130735768243425420990103453762931160436595053193074323664377659147027465275307047395355687920574746522742032003573752561542803375461257007950428845334913258133156941050650605378471393655917497228782452314582036727480811314030447270913292823647421671125195114695037889914589036401214538257592500384864553178063135260193158548731957608671083677924786068996718645945721586764615378282290159143463021135487934905603413004482048767925064461025820144522963796002199623191202775178010768819645990578727796966565256081476777387157839506987999337832850547258013737345579283182010393674772258947880825070470690102891961469230088938785468335977005597428493666633686395337722993973176699937029442547561847825641747974066170218055972238967962728162327845646179050705543622716149234066293741441682743162764821049563811129199155596349709125032155201464949819750707854801842895819710774782256279661168023822650239134957701460883440305376046109447170389142429434366865533021863251165175790106246985001865032450760585239865101016161009361742383482162851847423558287328519792361344907713503763041642823714049441904031823074201075763434866390055122645097079683473196117708763152665337516556578975688937380394767429884581222363057742277042800749532449644663657704786926662481544953499037240263217386146946892846647797752783913480862899659703933174911720558664766268190861627504678088706269263205587257670905504773278267118886274530131045276633052989474527793765245323101237530604739212284582755158940299826371503044272628473055362829353068431247936509537667400330777629714720286424184890136521407081228358480816097026324794150362817050942373616265106948119271033515527981051178517379030455440447986945176846489358749963884273043948554956081344698895217371840100022256396599170654134781779477306870891677304953676173551668995932271722556625447373314511122877903249421516673482705767507475605048026362359235556048547044831372633349579496055834435404683454583923365600572722843341674507037763133122257388292730953825365966554666532973544970257789078537909620887634669852221081009052870630297069699995686999892865370455580316349282107212577088087688141055588823706006950413431524794974814357992212397433218955912959975335804111552491155610052643760395852083478510280273734167262292597143869646238683778105983618634050211264703213189249231214285169124272614590586643360680614609318682336628826965336228130408019770655050357387685711160017249049615879768340273971298221353847122666457545001530959939027851212444458341582700300892676420622509846907842556636952561063303534146032628969233610908159588951017319043206617064515551345121434224700368706743425382519459410731061290637006989903187035600672229192224139163322656824330025087531516912979392328109970146419502703784481139699035535178897904442955593359318389562124364518522802050748042281184971763944658275731739063929244781691894362673996050361244124080415983038487732291856416661250889566960082542200809948865178488497043201281818278813688708984704022187452337598186442611638280469862528440141995899104382683704959671764574514814999560478277247871283607345575216853597634664504075380150914909904300113735903474407937186494832842903948757779617191613508573009690080123920170602927371962338928680113016867062987263584159358384174041859191119599857140100713949226320424010549927673607244317462439836934609057666177787727533754267093419338514818858701219754164540863643586504733516980691425673978913543770465196943137352568965590099950840601710599502736701027929876576485579820450148935407451050497207681973737133288959789217745226335002593740351358316691751951084750268652762662396727459675979016817131763872871972494687011918027632271219090701276540985805295462690723091019721892305585414348231133649793621958307979186619465277962936053616552613623807593011127302975643508244084274373648742093611594406639017112094633664739244596416496671213560526645333566112828240043634226690559631582317140477511952968941449120979330511525633598637545403885644825142818989295053442535048040290511775696920063472428017158328131172145884101898490946687467037400280191714326342816589964059972231111304699834427368382496754740111675861360543016287600489618484938937103367303247414491104720654831314022133372727509430458899801894395475366844194910408188366441153233338001817049530405118671990935049348789785217950972701281804363715599762800763699535964156834474906834504756324759690727344201574189539593524710448040171632997440214588540696593285070707059160980043345627328216928906314575999242637711300058835503142061604630332831771672951555656697062801555548477976772751932423576489752971484492420956285736873522955453826067068038300968518398064214494435830347082358668855585322422184463866072029023511110529355762659010627419312959915666446233575318105175636999219138860237963741103169376042940212059576344110861111009526219242786035105896901320395643398620749274540064188719150441046271722912407568165695800254948634219071187423119905844282884527302632887542342198900320628994144347796521803327128091070469625290395325085492118360361906195114572838276086437056794601446336406306748092652810294286345010377903099147385111564503489701718945060170288231772232873254586601165436139216398563156944535839923909847586202792518479872811146643178243776432700995494488842261861393452539249745300549817000165623934552976882544378593503756229728610905841084598440071206481611505612724387234671641132252465868177397635773786160700124175548033139642716736110589092205448909485162265784713531105368296843616138379972152275256999381444406031641604136447178691656550491802167559059982203164839799366961137489276577809947514986924436711610035802928586086012434057632804194303549368622038355159691138883830796505056073934017444158291978630768556118567087543875608508997870409313974390267325866911902972322589823573617513639361677464312435188966369957713622309543150034298964852706823517092442185471607454901547305323658403547151943347793374908529249759172094996424365015267615936510317987722211322612920485061847995604242453044589401690345641450956662136454908058806813761243066747863340606702773076700112514153158971189879782972367577881190246397488758205566289171771855630267023619541176236952613855681097129562669425619875420731885714657804287719981729261983687437175511318205628046081657912921106037401058106524409432919054429295707069417904251857794759230156834613025620944000618847381894071034837279280842543568097016337776098571155449984564117339137427108991403185004043821615165303032592819552165819957890048661905028766773518952385152199713144710560215524226859561522854158267440796365847796661954676239784008234583268151139830389861473468061693408228491700831104956025804184857167183731443911833596511999627822485068670946018702874055930533841124964761006252949835453398486119601241744636718367318749037246276486129478415862570379639534850712540317224468998209724188933983882409864939743962121092263388269439711772685407835698658561939128619269708249478387341684173292179550050715267183874837712155536371624930712968375771112165688491028284743681454139457654376901308227169363928140005607740355716064929187611071336895835463335347324509865103407760387127556657450803975574255379059316844603945158190021091056318122229552157150237856036222188571443385039011571074093647280400152552356922912135825165025830632975548104437479025150864008073773093393959147939042441686037881558483289383620765426614169134377430184447061046352186608627255587778557497179919029615413764228791589154251899249974208040983313052583104256916352435243218775898603793604395596237819366923731055060255673522488880540350677752061605083767596891189386445321250376241650315068983068888710560346912765194692542741157564148815857872231499235736805093821378736342450731837009180715895083895853020148662315682725460971951351319515856339698387630379280394566790241048710985806841484692899966875389237600800437185365231495646037309182335615687881483681571956856203781766650506617211520444130593496685297855718358530453706548812324565581838821304746546225617885870329005145351354705570813669558587076425820001143201205260311492608094902098492840262709126363946908424546377838728094282023259957112116807988302136728214249968726025180638725073935229986357802672962796376859313770641634965009178940056952049153708131223777105986606580782790686602418326140081269301521989409678182171748661017373755012065663181319073794833089161916198208328897211799268954996424124420762727631808605149870606871709233659436046674366450905672798675141518979237170640618934950958097467166352617530639183583602668502055694866120505193249493786680435997225856185918091048283307037159865956647164599484749378073519476255618574491823255605864452444002124332810001981447926594184948400343217741239356994669042832269643074392289097765440724096738432748179928769682330960966001511502279158700589454662876063735178607791705116959258817264520799431901690619002054003948456611905846115824362344645887472050335604481627373411129760559836562528778649761435637510851311880842417954700359916811579931124046831182266683229190979411467992452489267675129800871485552992669941877218481607353111688395232120779491690279127246060933950073349120713966934779396076802549206314668383573360073748608259151861677836761861919369914702590576119950104217022884051978132618459322953367256358589541443111679850639586737840802678430866606516827033875560175962925090435953850490307362723807509351440270226783750196584428224390369750984494518884807943036413315654612867768183742953974166991345614356880499371462284563817491770278543796807368525989626793602657035148628431760599876387009744243250760678045536462309794009378360308365233953533076764542172449488430812219256906089677137752446799170288224270220603493626666225126593437385748635939307650465635150427613494992699219887080878674673826711313039048813910212335117719506009990662879686294380807812725643560071582162695297541562962480429295115448351999783185550826644623747329574145248942082798158198745512690620282237332283554548837241597843110227814274991121159768805019625727385690696323094219196683518807168666957711825379948258433595898583388754835136464826024276347543971404535403639041520422861928867498270953339608518422755129224542348845662320532164674860950585322320001095366658084733484618610882199331160794068168134185176163245647177890120561371187581009063205358750140840708728067917830651822548428984670236631684209754295505106414795681122721754674413215967174185266794790987695997428016205581074410257345466559379366321672873644372136558253851607282565596615032254017185608292392502207508430923985509253001323976953326990823653381671327014170528039932968553290292391111445128850447308793510017148297077656216633205136946920661847021661245855785641719063779749821414073077952407700167093800628081035952179827338256019883884152635297959980922449072420290587289370645152963549279676491346984294597110863009508655394442011054141671414866334121378012448082253603133628031710265591873858463034176362899093590953531857847701737400440099531943680562739442616653437849565842363226945350175353828370128612830510359964424457577678907744721689071143781338497750481813883044721671832974050608869776143437013868174953571976189832413889478221523214941006837895645191580428636163705122518224595844701832076709592196316527758854707822041451619378366969811956433343181162317630157101874241875738775487097134782424080896331434545020631730593682848069069216688837549242568377854143094940022238506868729926614703929038236502519710876074965655338508739770344035925059382153080615586204952256412757781378598674709594493565816937506893265583930004068107081217864697176755430434833719437484574687627779466217526167734360389616457591446286554966119193748231647682388631043558923984131707176963912535477432789053735996846066135383651030834919678675122495330002563434085690596096817659382510504563042717866925492950895728273754087895060203147754280656046260077370791841707364793774982460828448545702921367538160546142555349371724939536464274928582767273483252033154181327676229886174242891210046856784701258655813282886034376274839280001156893877201645116083031377880046833463270391675479920928930417287179656448934968118510509861871819059224597045343007974443227364854707525405963380277332449528101003569512373964217595538698849206645144330927049551065728698309512208599643047195183442204247993911262486260578533755266435704940683333262471152904726009731958471725968887508288330674778591104933539661569388089885334395831488393811521427569137378845873420966380029652763107777612836682243736867247691987651268816060454115247110550554520010144200968944157246909923633194118486107681498678575243973718261267019537749475989477173021561863112673364237245176965341499822760694160771126549393694437968419190201967848625521848144127581105684581904703369959216262762287863006836053497058891586377901326172446394373104392821641133977763428051014260399904644742549360150072930803628348315636432649628824167249749520009145080920450501426305339825634619135200968758579573803304155882107097221353857542103987520500324387594153475489301120879458711058613807288722348719448854137240962036002738244008490197514993658996155285784334600109201082745938583766238915276279327296422164031753552823165014123302481406102220639018732793751635027847019772370527090982704788060622274298188181710164316715413219944268959929113722695376082860961881655575516940810080421425391327673180219616154055305258555750031281085431731709700740508033098610303204073180910477433160583119721921127225731790543585604281591741255683254643195726477007107462499388474720197398876215571292324913040625446206790826748591143808679030546149100298181110859704926361689788627159950981323304058896319803260059142497851724622242591744607827467759171579698555003958541276573083621486230176747744281131783026440252462285889701477186215297326018121574799294928939420668397071639037279314895608834005897289719574945655862332767606640303934898835498065427852260976816386189062082042556587705303754445769826810543569559694141418058760753455870021968206014653334327580954735289096601932665303704633109630504153318163519150395028134799973038093503305101152479870019432386566577571701416018384864274543294096638835367273594116117998650046057095764148228733116431552024828564357370254386976804554174994424237679916607255752892582390970067177530679172163132059739463741349179123487466087637347613783737098772288535937687295046529564965381477455330607141409980669496327886016049154073367306849983975162599866564020795194830243167365791645604985656722047478695969194344536356920024970771240629739834545977024572631703686799152660613765432265694674921490763029694948629841342322819315538376794143192782091591861246023989883299334965398138783496773037357100080235051562719366672983883791005409986682035277504417369152098837501472754835834234130272831773134857860567106392683036886909900231346394987234335662355103273130709550672557572911782239285186266208684706443419599678772218840314141725281702056710502096391568970770231104690701295625901232681338535007055114359323587594796853520147996075561588295046288696648401794018201927493592416210292344333780746915102695501037574148693281765272963279600359954372404029159239239090359881148021112223833578856420183478215113446564007843507839269794926223348995081566963314461872474115915229060952063906391394107659240823807987538701206716901137518398092283762179363985233167248229434523525328331826483903075039657501230993865108688741997065123823043404590760828440365143456720591971897324759065296769551766877550073723847835091768116769925344752157415389006022481114004073700278539457549101581638959581315005456823205771793114028567939892434923102036869484709445313903200640597771885849381332671936120936568196623534246908293498708145274371739363245112517052269916739165520484985758367459248275310812826730115861564287331134144554272275081651315288836707894354456241840653404414538504111069543801106839960002049095217093947213787957669976586410437106264961176002143596379718240297716318991109274338395887138125115117155376127043682067852196398560024900031077148875589355329098839247075960440836306483894621790880831393353609537782191872785689967464805223547137447817496917724531131587440761323895759743467453474603727966654006150881119614212631462767734630240818278600857837096426572666545240579643676927931035810198416061122823530797742208556933512951918632816360663657234230144526840501246786443986922930115619033729213479445525410320098282543784498662662591281671573218228958209647925936960132730294913171848828325697502487890711002616147783486055435978140956996843979165312396560377144348420317305780205874601500417635674954033622257621411833288673496351325267390046009952996075102864257473620541275850474317257467738313659690276203102691679541910795930788201518100047121250216927882822577613237724811350079906922930682913347449267101008840948169148582485480723917968821237270613677349033359178617228797848154504184464385338795451539613066564353396529169624908899746084951434544961339568507441643041842831286275961976900032130192616993983169023968811746673298134457715965700510800270639541070213823717880463922790865079250695447637326419042770643027470049551678805755727903508083285692745669491451565868244670784476696559960457430076884413820590633060259145611282396256129326221052969480556141528317627489380591830740023244376957874026408637409763737445574095082509973023148829488655923557020360147664203535865019811841088015778387750814650787859027780066666002810559370632375115506036788655907107889476134702353207409422694108537307036933219000842378254694296182679389995876646336812738376008609739742371631435928806819764300541996288087682177685226293855044869323462983107291420010680428068105343867902944626662392882421482475199209835316275777951662119707518619265790767202870649528185764680134510452723122492060118534345793973826491583557066550932448618440070853883853148410806602004479107578559363861753869831107016685481276168640536173138013880165193309895036266746444738972227053514888245151475653359925818287819478341166175955416013588305107986458469434008279589234049394503082139240552866136156196878464077808586738334680586027330195561647986586483427661391840821837147889164930696090298652273523373396727161464267159118066744207802594615847149055155057707476363309579567693436096510395962582977125355799227867243610119163463295605290786048681134601206882727671205695586423260394953450495301979187957049792115153653947130295736674268732059784820163857301531523433812637468321632340624840209113247281328612732179006458743136458021694411227520355160092405543789708817598067204753534215622077747281704149125588959746065762237441224410532348957449262617653892227409135165321905116727267573532236049026548116616781412993404769458003190110199373803183309190650248982031128464642167537985553617967142578774724237581175134668697510333147550343568599188011037200557620200867029448559920465074811450771410601010583641868336594487586592308701877169847765540548416473904428627121498770879778510594437794261536221951454342435110272545767850454473685755223937542043474276818327126670311908562268250916156943088411666570880875615937889583941670874613573920885705724487352971383448242932387287697078558128614232197506223397079736011819882645226662561046834171805317488406836963543937067405104750649455397386488451666361747927256104042444629367005930340682689059935404660560404051878437583946218101486131403921034415893496718821940116456911877991359865602055229641358709997695666863076535808875735278055870296350352720050291045672935361749301829847478569783884635806851226220988052773269774861553015446984311891881668107794104290382229935462407914083667911580165988605926897313028389985932489278264456961590709447948995793669305787102480515512129578441991179545506318499621117727654434219569313670766162750209728174801276608522711654520899459231311208133319331496285882461042192742831419787619648031164305364693041723912088373731868449479950445912594114134530731797493363226975012092133900328948429254874366517598080508431632196218907576310725640957680327772130239955109946004417477687043377245537664549821332208841604000511734823088609827036781799292993847548738016948684718723157674136933550657027976664272069951378844536355650823246171270518204262654940018904005702376904998268138824703715072022933506695586721804061490978116171220452396866711122241161978392053250885325524923972436696008576986034049870706706509117578763947795497634768748407856222881553756197351782890959641007581800041641245051722532741779060768385914130982671383546953296102597129118062088184405960677009101621333693594309070355902839801010785333223236101095684243991847881400718028636695044563845063670277782854012062343191676090430008931738223405176717419212999947554152777314391201889329540835879352221220497002696298787308210585428399734635903270918585644471527239529814873072247906931843286882839853360310984222043903447585592610606814006820672553946503950047788048697655981583524025121858925219378864015285950333639251189824336798291427845803159333031357922040174899323787751911169123492559586873508883619994645181324767466286539950038358938865170979487920170327208717760230115873375681376360722152636881203741481912617309526989920278318785803370554408598127686094139801764306738678390648638766219275348232860848715219381989628019510138009469375329834216678808920172306409631787644396819303747547388594446717582826049146609947752694354599517754118950760116447007098186441860619798639540218400686098201431099351618701268474827141594051396891598503395202221076541767264721556101880866969259940782002800321831977139640038477841452314415688237654131638931565164241539110638413991031686110833332744949798786738741306707923948282326780453672776426067526699886383669009199721507989374311437722490511237105727577109297642163881626019077186617200367468083829872013294752301253052480421315458116072382462610537520469166803263037757818775975050176509851105069279315112209173473411043547266756400358039788859203541349973215314870051557253812074794869638230510148603029903130922017303888538504567347035484853659957426428915791033601148825800676041298620741143836628625066719773548552966065747749035780589685465183698191303749488595980013190029932210434278812519876404007114923341757793226023138029507440934483673562712706236435951820181992039335110084022542310444064281449779309813883067878363655584931995659604767932825139683769340624275195615033009212819024806777541096131426708107257693380212142811446546525256162864877511958904208952401794768294948893341520343623735312872788161290954252287768151217688539950859460482694825764696057032081622640337425617994997920127973662252153861753180642078895874684326457977351985373846911870481065971534842243734063232564749020467026502172200073792954982386331988650946217031624575013546681127145899447836396285515840563831388030717722628811625328627335356228327944765659650871366806788718184348507636007128898484877567254634053727409397081130142407045189260643429438666277045353085444623126112345772867386485638221566088532589127590181466812112491613392711186561038648980973805231173906478166034930989768447548600743158390078956563002470363359343200438263331088907780357942044003663109167447962022525508036754215975261120430003393507447494512058629838550103976355362537793080327815536003601417853259095744150369267133614423236848714550888242862173887964618211405271446832211704011620545941120384500006247359518190371082521698123635567393833392022596967758578677184454926051160552023044630847403247224221392534572087838471901903650686961147686815386388560298970832380518848169818142637951414376528910072273663763618664591078134969595187161846699244794878403063703791270057220057567573639806934635762699436874175042807427071615326737849413079360648751947683996365262022561236322793601644199548490048919749312216528159743402347541990870126963422216839179809032715067820474772416915055050184049130210358987602747835265010981307529889879294981129310337885508154743091097839116404483929809178479798222415102804340510122357175689344840301346883016513590394118047643924442513536189772110227523861173013628560414753097856343620207340026936197270401014766575784636436383540798351814390865555412175872250326941919872667501053286228703635266238096624674577075861309333171935982584196528824237224936026371300802808138026569765945960867530261373245619637540273591568807543294118309485175512746241280982231418218536362290643940270815203889280052061173653589706058793897456193625985330755468513654592551792050060609133736003005547757730156491996728006671138098032310690296006405295311754867764720711420161992903365782791976144108879000619221062291487802895478019280777089633190236353011313172728740068392238651349816293051128937892585532323182440264229548861040403557776570691355833309092109706406919236606755940455247632573319973669199551962141540833822717261276527266426152435974538413682694308933992400803412965960881947195044246931101457996425557540702639427733243844687032734808017638384058941256346696871605338347912831091467011991112768814116231744383114452114199273595809768851225472237896052034521056986537937028693000690170603958589677090597580598684841328007447702591396571622777469806431858970397466355024495943891456366254815765758202984818219328983684205928316580707625766794028059953387208253987129828902149922674497109222191105488855576550623625360630175215378182434472615665211489407676385079399741718598666220088662732941396233643521740736118500753872481446816403021180092170300242549040116087347708626434457160773342603995919461647623934557388063646703506444042372170481203118239488205139114948131077640941042980874181292824949511550178236123939525316457439553941050275686494443186110901446689108803449180182581343863366643595195807102265218131510434979437656294638022966256260226254130605585487114518585358460436460320414727674994571264198756405325250448453242300379040013832181596766704407705280072346698491610591179382855680716815374576079184287350223166850641496091302406321602249299823650582736669861686995248281043514139096362514897700184012428650243076654226691869855722163230249893124373773982523260989805473344037264325798387434456803226038783091654833700056666950499025126622941951824303547474872858311816998461582649855505248928188700475274690183550496990807650925495768894384026322255814034924942962818176476200011482985591341284051164750045298624022594587014617467972792070128643132123123310491810883023476353854520057771176277250512995103516392028262031926942841762713771735507254022308960137268975811948929382431037215169451718740630786771714524818784762338544699885018256428629281572832359776865645038572159266643507022616793090457907955395281837449559142915163515211644026466544374348855048082314593748039309822452254274988205422889688337462965870794413380518887120894655249116675279552752671102727453453712237869961409495040223135905995382495547533288002630015471557644584415365435585344566885842495452123027779476713209162569139377431504009150650901891240242445257286203494432033385311767594984637184467355977025372515977241263762178540519983708788536236544668015715319949515082857303971197061287623034720230373068179500316648105466016053736338045977632584753058164662387928186407753014108980236590303838652917137308575535070986904995738174485730264390695263820222205793504480799885911505744576686003180333847685774897676299522174716957882919108474375667161663410999476535455909836668736880720741313387564705682557450147731299238740624464645178899467508587607971601781064461176443604837275315145728034692363604849031830618410256839477083837430023275149802837251720359443794079569692337537847588895802335263069026370872722520201332475652497145939811828858542070231023267110057203671409694258840737105961832142720769568861074170620205493494137186359470578948750187322527026305147204102516561185169120817720743511210406228463754775140379305897223576617313612181334059205321623728153266661197750257224862190908373042501314110512808330848689980647181929808963442215002601573853797610920138669101916458454247644026288012502357206890847532602934918720205434019828522631561265512394112008025798285683763264034091833155544841492883299545998631901258151999178500701011873435363273646065877095582703258921857767207286059169865568496811630562279187337193213176963147451869653292151589028569338155615225918262315128756584467356458361758015112835016962124407576466850132281389432973796015787752408136976155652602699664722030491001210931992962373370694681264145036791946365267450305684707451689772401028171967297799160970002623912297962354535403119825594173253265007489869841793250625040029973346484342553829676521882499459591257235914059751166759216991849761970175510343223750998074740077659177679840253584601800657108044075909099525414608827074024356258853094777092136805737000159211582563016249570021414993651871930145959375664747666187085917098871644842052004458975091872887611106656329352813290270207715354107386697750547528247051538745957688374656088253377551461003611851751007619668435219764662177496729147798808107144303029751641359713950279233488633887289161068244520922093590696800521992729554095415614826794266910403722421253736617273064124381050996356630271921289834558250746066575320386483630337731604831483151557062279425377109775917012055464301333722476609921372432962622880190574415043341402071074808825608428950064129608091254437071933875475894220213575966298861359462093081420034041518116040540361941667244655657911327084424888695377617543899012382106962352307210700536443973442021692018249706516287172256630513429718531792712259470566334055219620552788801093068378835923753781235082975984730370026131502984343183650609185281487153771044156400881271975411171135962239682761175937856961176771697819420928538100703190086062421440512707456180892422125329241506958481149946379633702519689004226584399994888400670010076192474361224075609982342344241150191627901194543048025190204247034528854298036931585313125591108243845417826965335383930321257531057152453112181895618964908141384341838605178524232213879631904390416902053989471814520696244397072221891276529788555413129566493884731639829740039572376231625854968907254056701908692380408762598623727928238611678175428494894589389734609896609946742955424752911552404627833726764167785029896024324244211700232408860341950635770937664139364434487321560079290127823602647740208345955903979904801606602227738380425596519771173589274142102225780932964787427461683197427010764306312888329172655621395275514282282485753865974443104445239127548724282336215261775043088995362037176072435379880658019378319895739453670044534406466955000941327873568403515712077401574493702820577515148103613649146585925857352921679562583353427947154926103355586424696396065597702134091791151278316207271942838287282636282620461251284928997100607059802865079868149047734172133476831031459142899837309319416835963362485623722436894708502342333183714594600517884840151175608841628128350286324706932483122461335529836790590549370286547716901212488061434253284585311280595962022768135133577259187332082512517542914467879370599666702790588092486640190487447109269474980481704126144993933403370383921367860209465670639639584178434307832193712499703773117993374344249316052923708366260137119424289058636182078965278790218011506660210838324303266290064253134965620598734766118877664979188989648926904571368785453593659254457768385724231353064006911928161441389488434738407337474827283030132164247058180491406917746375728950102850256978937837089380645277413827964570106803550487627727957941118629579376157461348637716961266887751436083795623997144296375126413159068785427247821100561041046454224462946321674372898456730179445877674929015457490429064248902191624626425024437464271041377653031185721633028072576525181179920056530086239177418666445303674493584964852986781308876273279241794858119421500450140735962631403439504936807453672275046709005086482789443300316070292091215021134613515691769016673496282031764225994083734298612681955028332472587924285061665443257418771109695316724339459495711038163134311594713619908604451670381845323831770478495912155966468704364249104195480967493355432501217105290219564304553502473575466463318414449533564569293199825459473690832073469100234825820286011348067811864698926832208124924990302435486654849410846275203835462983655822172404394733581704755497300933302007465498434891263268879887850194429183601590656049606264155716237130881587966002751699672156705352688379465721794904661656145463818078416778291710225618471663374078194648631937893689679665050986681459871779551121900142096471730797635943585291926881305871259804505104305959337035265617821908517193504913348990041498371258532546303139812356757462358533102583582595314790495713663510663666843803709722316204264145360172122819917370906152307644885967597466230732200382385975660972625876742956703013793060973218831868371026845295600051275844728855907648197728076495198594533301778902260243245410555842639090550085542866631002751643994968701952620519620776954172493796606775362668134091922181464733377555707747933369999468258214353642255315591685075162042788333984673853342577101817556909240484914209897178373196129875968349424524322386708865414427810738016003431793567263493987317460032451477497382860625054288298150417149604988262290617310197191166549604905042620374423806543369779372782762090128082483960671459503630730210248861437565124950584854738234261491957223270947256806819958565880341853810230309751163839091433442366420804990540425838699352368048646710177565229020239288145859796240022575932056062352280446588284296983818438403829320467945058755631576182252376722959828646656165588097245743957243813254017499743937001466662533200924127153954022610791275806712910905650685681291238947769042197325962686497619187764089516316960907030899649080208309442787092013845621682496235775365579001456037027850795653688640939684695194976160684184813493838465998158362826482327438421519826190445292306577534678111466878351992813076487020833153989475424563692952651331093194921056199115620869613031349638007733725143315917733171415567546096472004412974107981357578559984158423314945637079466594935893124459439784365608303831099738384394529840066035500366259612721713484987459326733680917230692820119688399040170307231293210082887704837483408451976286626226704873543772713833209189630423405419392225831471450389791956767799226384584497594490119532849581188117851807788416391893963993569758998498080845637255626061853448250289625593236494436102989435186278478918743078849947425668746724512697808475098954003355972619004694859292783147352108946006729879049822511762109846720115042661352426931268278301785353836290437788413407613978531975406166324170671527627474734900466417451512204080157959406255967498164239150027489801232417164060568879906844414501228453169111285256829069927027196850257434673223615980045417474431273801440852868359866389232117682380002901554445987794558717661236637812057702152980927980748586915272673080544244777061272395683027660317881828595017473094542843474773308829218220709711672816667190445807259375414974635898647380304059254187818324917200398021294447410305358837422033335224074116696039350116335765973115774317222133329119833060531192822981300911464166701445538555831149131601069331173230643367333847864593052878732235659002294564663626331454268690659449465209861045287720378512331256309258895769787167291613463300838338772926813655905918802730421015545399164158927287834944182293404749786044519332472013203507882113684141457789380870170733425483363886056048898607360016449499319084306359814109239664264618502843124914745278092840844535933612620562735003496692275192753920665743347965894459103733914380697048218847869859213877445369234939770607783759070072391254904162440888827969837245707834204480628505197108146155011891431395346192629817218063536666696597464366251229557432663280304976394772887673194621070160457837684131158276679928535823515082076956555086359560339951703095527158212640109016335821563584044588288957610541253174415893293702071486090027758356708421814478795982001189479829920802096179417386726776856308621752002082340382321999161774860821965329227542325161805520321555933274485550904893802549444043997136399761873509745351284804092733146583091214773186057587779222815645640156363888296605886754795307290369642868050069717172107922393727163233846206494183363806865638899907659361828760935007215523853603467342153179724133568379771376787477844703519220105987217852560711016210198707473582813289657279125539782176708641649197399055807719814316402820425724222041593063611226958369617013866493272018435587416111272333441076007031962951753451396627271886388432867339285861423827311961388631962314143382598884629583315546499296453753588551149976860795741498249598964299700675032758309902571607498655317501914158721542435624656176049738620146856517149024096429019280191331282429087103530822325878532135033907311240222623223223851003087968336781212004728489444304942651027098316427790231027290399275430661836610162084584592512661858971158738293666262517924978638859353276443018747879616123141749530012811024414876831941081039435023537339220356274666999390579246325162270910635982620921548977721941394668962246153338193584443418189830208313483845013978051286553365038517624486737635115944868159339865529784567212313579769083964839124323055798433752229784511530195859076038782896872706921798221814806662583133966067183592778614490535149659873398256134705141050381356924116633094875826920587586415700274671626204596847746943687359077976176443574931389312183270625642050175299297104092444219046351215586565093521387377918196196076683948756655546402972799587822083159547380145886517623042993719260422312482896160741176721251845471376772257639455392908638291820721305710188292370180204620853397354237131674342029150300869611220269632807892503239398089899569224046613452347470765024119217650549448942607291759553000798681435881256184635421430011254056707632852029406988639575576893481311757873237656743079588532942632881691644393356814172420253933483439786219324203187105891596806236549450921207383233176772983463262322354942573101088944344829567690755189803348295949169101041692773807819691034462344091731497648391801287502215597904013369255871957526012162542023046778944278149732879696246863356031910161177978554718148083997810673728676345122028973149888092925430753717520736317623323548593460760380563443394426412378711989226909271270833688278523730403611918306321863078923342711515386291292389176100219020923676387164166038279285770855407734697750554826638707296245350124136817081935749246748857829007417412704855861871268287522249352187141451218950696178272496111230073459920746905247672007496634791164648001656429548492786653872833396930027596016653216994093218038257709969085022602118290318378552597550037546575553066236713162882280788785908119122194859214114244746700638409742131572284205461976682090581017409886527762290660839837584961096448700015025963919104901248802132002240883129967311091488771516122919422499907373289851985323455451780064309415062598291986439522321457825949717898276490320116341010083505412378585652351442016033513601918942804548346815400676579530281416477878103368896539075538846656624006189560599938402942651741699582895096530954936954918342228047019901665241895840796865016200196956437378703094161589667130925008026612554563679840933031219204472483301243202267492153545399122009369951926187500082993619685866356099823663244045286255245449619941879208648986603014117242824463661281964369751705590602064154160713675970324140010824646733819494996661621551948733517436792847983128929716553963380688920949686054543967957465526436601556070584546523679829938523895049913814557791199805324315206197231875889667399010167575675442801832675917397036132084260008833313095308536203309452997534401535652798155601278602944787007702305921417910073308882517799864801731952626856857607731163981330002492409932992438210395812216982202662412086143469644758525186635932501335138351498490328772871077327225416259592944452069239581448837211913880553938879252648376932615339674596247627865587291439255096107242788677801264989808633423962246249161826374564217166192443830657713638418602052816299064702508630895763878765572263588732417211366422433051426133616440370386506032041366563217748922660588161685071808106754376171974236042810239409808916346422275694915436139848421680591830388525659251105680784085735803189985630619010255676209649801607160836979374233223684813185375794309349197094558743029851957059283845668724721481339670400312060772055114705356963283209687398944919165864024220296705516662179903886604550765527517697141798536658384314827695631620413886860894960091837060782689415609800699121640073813936094408151987161209665026825245548319770375372217073090499048550637050974782866055470579092745469711875786697355657948747763627975320781875179902031019101278664251616137297638193554438753703788658362680983197228304416291080244589855912749064455889178845393133503764639259239247212621861369418265889881753597865685547191222313731745511159847588029407363619515975050544805446671923698370997523772306620038879012901883234291943670661333802952369333628651676717466878373977059901654023179624383744405123916918788824968637755736861531221491110509330006486481280196034883265706316927840459664251967908599485164710644578599329738121173619504688766199162037392582618641626015827444361459328894386357684468787583937328645477163433535223299145235301064760057155989728120862295103177714105000466490619766047938694435390602666320726944890466646760760568534969555113506128222656424591073101128519257544426620437138921719494938036641790527885734683187900962291187562946527588226638859728625733817871118052734274731266524951839467241423506465188369788177877011954920541789351404272934563867217280758689477933003479562327586501856270410285484107490795057194705136599772903651297113350460626109731472857006325825104210493461698706285112682673291794071518940553556787525428086380491306973488026832917767215470381188280371092654686681551173147990489028665454553596093153271340338257578419086408875925038514900022131866437400436914954646100915895529035960281983362086116796143570493562105772000943686115263746476843602844486342159839702968098901849797620660670071793600276927820304579190567911120273164571327870722258718947826802974049808859404724791970836021195476802804145410813434614269937040400436207925226099217570836616381747017074175325262118363957693499342755391611341522053311689718400568674959996007255572714524314924267645946644755334640679281679626310241953722422117082433257102082683331873067594651709819939416704345462846512245268372934130086382381727708825443108341893060571582711129693176292289963780054383976934606387150196453307418745792900709045053020196219899284594499267544843414697940627495567041507355931090115591885561789835771788598322976461333393520286681275735464520184560865584037845793148188171667468391365618027713737431660756493544318935418780890966849953018111114264372454180463913727806155344646483043564247094446862528309193799410180608864893751808632836512433358431647518662224849596655854627015825227775609147451698973494291344540422492135316891510875939649649962696523982754942974334076036404885390955234465385350858495279277748123280405531926242758480164778895941747027397440787480947414634057672016406361900198199904656293197915487518833188622973100640273898345781373778475272334804027074620580191008183773762083467894500796317079553142886554004455072790865749049133888656130884982695243946676196888558731372603560446961884006617518863101968643478907698980220689229394104073358141786919834892287505794995042873998082074132682064046066961862821181476507763595186160572104930358541212369689356037367503993922550765226113052336271522574882482456088179877594241995036402063453141451349574954983275162923139627931999641293302001951672395209611881710272419878057257555526501787216472737901754882922324812929917282139703077227907735613510801330426634540123431012619721838544867878840838739066153599846829488686043286435728488509901593644760424939025136488061255376688240243293394956480614512893428217287757847949052384852957683987035012063927966290423722779557183315377865065819411815696062490566683803007605200786210694789689964814398110721774620079073609520324211340508265077043418906489834957039027766201952163226407051711051422197065554795869687042826319518494382714355712009588099781073013943818327505551901914215964585514857024794503345728821304618060728731774979005869758444632373077229873334277752240791506697587033542344979271801485142297977237965667633187020534272266495535833414880327990194077621991662388803679898660769787510607278268719124884555379607176199636585855449361918166205904588057269851934308117246112097364940433566869485763360056730808302780960135883449539056484695559846500289385858324799731733676832364456126919839194463151988471844415613363225192542875060107599842732895049266425238732456706364340286189445612104062328377533164254815498395234952493562779508341555314808816886177895526387445713331993170337658661791573779646142074893026515950164459922754728289772969510471718320432090294238227726723946478488590294416122467062113595529006875306740703343967112781703994512759964563701643070172287238412627773973126514690190007647526925476473157348854418840393149684633853747007763607039327130811304797607047860200659136693886236911889798106165143279406482673898404826595630946365089355127680906798315276835414750427437467236843065724122593574001259912509491158479120206892346040689014816316349613389096612929426232112418475503521487174247355933743616903249929457042492947941100095935470795950662884380490200584446446874216375154747776618078748992423806530574721274709548630209101702152820762990034258631831047019377553664579006059237146946474364429227597778104601398336245404909646873765862532496948579356477508321582230893877624008561462878871421158553786167655297687161521164294348569522066771955559945448981487795009662654912427555462179781203317043490192802145705900301531945429289413999339242146915266017119450735436382103240028347341121665623902103021922003997772353705810868350864687065671763902848741680945807305073926433323700626961284124715354204439818168211781267194304686490142511556470089805043115682344983646330051733598652610874404769079660886965576415302086717508072594097267288894911302980782306781346422406710065286433574717873693598594080909007666726416574222812568610574856631094766984465380114552859411256954966473853667592144757392727775853550671769183260078951308648044959502194780293737133709864215887436880437550405095390335313608486955351390668659840324843068793612273407475347910064963222393757956030394793670692478972174986329954838657601342316350529357832136740076741136138727527279636608858000689528731422285921414905960109587821252475383006606937754162421946923620649845241446666569726689455569638749349572761949319960015292176663371294616580874343758323389581937268332970989612678360276911346391619708721768541824864676411281761669835723862215491819986918642632822834221250798479711216507979800100655035306275451069791605980474465503045461705701515680071141919623992465765580797591072837786701814688165381666226510022434562121938543841048498132361895217471475144842986839494720533606034531135492717985178600332456618325084623623397221880366434863570747562108899636442673224781679692502427761621874913909770360290063162502129685873428385976213401600237890544432837509236958000993305263932200130181962398022888481018416908085472223507239022292868229000773494029708349506264834408507260027283665609395728453988051021526135036234564630929419201476852092138321885701505212627655134502885833137580976664027295254258182139006587456558692181438645643702255455725568496878675757292052502825353700209148852933457608171188467274980690156007837126787947932477118459252936816547145968179062233565270826193718280030475356587719148310220852959483476987243274973718257699059768787630798492870085276898013442406920753470239046452407380158282218682613738292582257647807123301546850765888141274774776128544431679275881896121688272267781960228894664623990131146101817454256969344110926581993295721304870711588421493801058666963401937966334462889502481547393395742617879759202012498966292520231294138951236197671267960072110797114182950422527857016931159015333846075139989427977075172742733687138878676691180435126428309535701907032906874138970228148664369123652854522738970980223376434104439849086896929904194140151172539479676270128855349697916400469657977901855255469420108411610145254328287343191942835504531205434818111146568461099290154298460785141548757106330425021416688796922315988143210903382292445109846123288189663062538230761580368704198928924154689144016109066128169098266227357971905034271796679951841759045443506390534682864251924407230855967930130024481055605759853835726061592489413834965806595657168559027513143686088553393750746978733770705463408122644170621001813654130484189378025987790418376756116356044481401252377950186025859790103474022801112122250821577934830385423795763270328187696753695512118263470529633913225550221851671647215324247090485574016884616070504531518292231440760751155366780448684101633643745849454915060316761099938482987653440227096213212430900252017959506761292901899023207166636709015143613929719757230748929132806406013685208821668896683803094014828085596912617219591965245547401743730545259535700513672391111002534894176096283213583217077279121264527013068578686972822151613027753028784212870117853852056798696173311334437047386063596986674121627793918692526574620958604268225210851445037828950415965808713432416079005601981333840714305429888077461841584763538401763413724591276781161806655730682498451943803640016599667184526752708881553239995228000109136237901900440721883234421471565937215024435789075492727933107516692326769020056497258518805606901977415784961120530752870734723113340985008396382142479122873939252707600236509889811287294419397627886495704140201972866280056724140753589629445979549553971880236681706365688151662336748899605990665008125377469145417405694705743032334858153375761992164765424877679880073060096921971442876153245342219169308779765190830229655355499547144363555968191204716756315760733584431919773987165152764341131260357834635110443937637887650740228393397120146636975147830837701109635749400914258434919551970835167893489446672386091574926837424794674637368255055045169007155382619769288628833667765507850793097678182665316869725099768299504019135541798736764239860327746571136827872812360763727586452274695899388741258381892144860190406942982197843011793942382437730893069451410200298635868948081601068495361426061820199505537186097203059325384194394733983772920274521916268379592903988952465653376862728708894786944456159737948371718461591012521003106801704668481200445102267144939432627865620799950947771454152777761637811894240528966718736098969950228534508390759175620008627586345292701276152712156017544841965688660464104504658514004424964212079814220568184046410166316854371632706115542100889907593418269068339487705284825932880437050489127791010435089333212073932043243348520734620370028224847486950649012561000435916612068526785541585466654272331917954360540145477412376071427699895627556601164411661605627335663698218417544583515094692620280091341624765985013493248498972446555456741594758569830817655898597166488588598750235452655828723107020053993085898249414141058429739361692848686928736852342952634481220990303061834561353195983789455010989533409215615593267806652248086199179744767145602971036604387696178431119468415203547236424087230139005695278282201334896802552875558763675795992336153096989434503126548326886215251642218486727280872800716222440950904477710425953327355170518329633006519537078118411230280378366392041460771542450980079447297776218946908607738203607289396137048315888516566288726943573663518038307921225341363830820040681389921431158955145069074350504144848496859669618613904340584547194958174985282141418256206613695489439462910616490494049097277071594835617687900132044373948951625721597029590997896997333200956256867525411863321379077162785492530808983412396221100449464758175080263410720978908308181655057044256813651030408857053494879854591880036191833884358659515562342924778471977967674853168068639782095556203102766726895396004411883749330525575028455051080457493627376808799436117685911573326903151531917292208676814938663088807485117253117155280996781163866555600673848940927351316666844727636827712778621220651510773291081919811426097973955956548747131979022305032665125346793689263683914473402190504253927177888649580096565356401255327003018518802195686842410774548170303189911813744612411346330768220884504828019844471713657182557356711830784208133414248879168184662775677130041642162701733134010440763302936693777931767623071840814710308551841552808312913775436746791161353892577896033692296746151828025200843411109942448917883446478641766229748806015811085977288772227773707918620823247995916269726424017912932635445139699901914904410873343028484944371200928221282836722226574527743497226936312182462086463902608711979394734034851843236817836289810761884789486911492050531694535165935613698648826600848643767483878780860545425891232126388564554744969252670840860645151889733020969706542086861454630787589220556329138100453716636259813432511535530320127288837398331424864919469073787527643537684191487463571843353823706303508718354124867758813046386064928726199969932875213946786716602228675266316726233712429653879937450434699893790604655790914063618274038226997708607792557297840637633634945726532728610041979047276649074670660836456764858921699622283812442702358043540956396492250911505454181808157448259413635946498721571753702349116459855394388962034353801228420314725245214333316882275171518761847128458811324221744252790478081096494759747420003240744065344592697220133315999641509219181621871428512859118288160417955529571342686187466236483419906046197242293231210826160836405371099986836991388786323825971792820064712374450613545766840094427524373247944673433725522365741617637172845219112880425521159500530407378516751376413912535300812092129006640764625807485850484298779138492391527379355669617882722604964984161026671802810972087443403079178367080487708088514270460892918675468354615805808974189479079124976096534688770136939320070154293970415823724731001636271412035813840015878261161475878060666843431299741509185475738714882657704212089433274042759743752121483585979372219377157018711971556696673166211044060565514248799091629119441610170111816874886086263490888291059568703329508260101197813338817050538586171933113901001319861718650058557558476589417010814127627869932150480473141134877791622189483855418462427957046260093080431550621710576818668034038299310622913670267662477617787806130550972215902681659590031920227226134927531149442263416586752572533488597983726454927705225162493087555505812276345979132845588318992967857767318156646648746889368817444824331157604875254386842039213804999721224743187012265491585101374239532657092025714456644310836760966930819710118463239139652406013170923935787100198175725742949188558032296720839940578119018438596829949506529813538827139579236270533066842363781960675645881327259003987719828439197528121821286703729672432756336330143994356286155546786810648012937643817112982051570029980312677863648983990029382964353166959096819043762186995231282324967992237806366738015011689053304089836533413099851659631209463759830118322607592541910980183002653479161184510671610404854234348150788995355977570347858314793881854683817204432836810818026796313279257584154084489349472056075389453323324196680977421993359604733957942605369020982031633190902620864004926037525039108399717098599509509324245727621159752195691318463327091803546045458760479966337771309267449544253647716465831530412486030357209717383668913831442530470187686333842288203103603469851720848976489296023397714095568274144570342284577870302673223706888276020663844534245290776302410265413660807438394135113560106939280060466391538163987565311541607357564240552536779967642543010681065934354195183550071610774887677606240999447576948718145256804499296816202840435356432499517450432672741527246896382240130878429416661806504067241883230206828527299997213134517356269837750585363562981159331523062267125205840835154270005504337383108119459679233776737642434078382131302651521228894655599958439222852359916285280528368508511073054201652866096353084882959458522634079631833028323098660841333005108870716741247604903779793687713835935466219412456256039919534492305292327757696937182840062925998794551979225397071168598712975102007395265921893506850835865405007425978840388544206378666221333096315912431553887236924164175419866441652555214430539039645605151323602534776262601798939616635226458635509244237473331425458249543393720395374380530232396272268460015429562011906139340499655103724611349991621581191704994848503431567062626700656270667630422209331505174951955363126619159264925823108048193934838313957945153966938139115053659757642497308860397547041997016684442106200228118192633909901788146836465233743584448386644963254370432834527673380481066556686345640625448055598613600048072323115639899493488073317697746019638548481321563890618886671798250970417941777032921509491010288951789349174568594322972456617316033892960447632379594591484568378585376626841325952435169477461766678881912501937686673106004878782868141772898824175366908218870416136569086223289734028784359154150394367228710482878760291184028917635753396904051033691559854444012863211823986162296212962583764157928734841764431806790898062928826060850578804854126193881985121873937126836090781112019814389311377664362624512470542215680576766474939690940872929622677723767869626056194561055859541087600641362952300598504349967545273994342439730819464312622326365071538011061991304099336592368274078938865960558248798490317186678417504256683133080771703327790130166874653737261310944600921803655193465878494494472446883183114803420717613802554228409291728711448334450814549972176451888453210400669944917247343841023311104941214666861764429286217140370998569289879851131012816130951636186138350073398122031371310264595495357073371681406000048248935946735285773367251636358743942785565472283568879311534750556107052164286427684397939225137806380389818671843459655418435038648401895882727369472203619944731897856224554927546804886372201226761636408034079210411030025272969221205633179144146422013784493709563860489061195011992921157177502400559262048332573339092964425660560279359085040160423765316240252108123305478902161219058586147921591411322290772188811460453388437297736970689123744471255052282364568337751603593622011594628906021342156111121998596157390284216099352935303880486436331579071601629223746346160679721063357849765248873128574155813886341712636573017128093585778034627458596773332732577320881490801591496332091433901768908035379962679518705141528734170394273187657557319661506748796946367856750718406519601927673912431415367600609081483243431432296994261750173009789795968534429569826212116187945743591296894006941539106543059584210728984769083265879402156736523533098277533563834835430305322479516529763197015985725661799256021215791111931022915584875218556184271998250846379412941428203348363946532617290121267174144026887574351718154240383734066142436843857300940477449943386872505657339368636404398856123596834331581682508416453221544510721212310923421008929081135167772935207955359584578993704928046815279012806598931782846431155692238714931823149820130005278892203851384895730984640641983473386911608466763004982621030202005092551797529160652781753204968288833570724311912947278201609347820616702147224275285638763134673092800949309086527341359241344639724342837743983682201302951036365445519532737198746631971531878232060261451536942783015444047197886664819861212545327315785227542567997379847603769292233282063593489049766012695978564386059711592845568225357927664720633481807018600389815162466012843069281719021195079982850515369991939412080682118396072728640111194952464739448458507205686220728654969801656854608832642714526612549457366842106097028930414875738323875833592537982789976988365462361313410799577146368335025856492667344461721088331670485240400654206011527725070968300688109255691879953587661490764214404397134668217973336660287483665207863416374031512839654447280818370434927659983837636209031307990329615746324532263781572396276410830012639515974547539639016757291174337492191574844971688507715185739096078205702815191337420925584158762592498821669437608018396834620215214700777755056601541652111108283398076319738388753140299164810734448071659094759283020784703647111302196000345470388753185826778116139499967346245378701843614916845910943404743682515631810579495365406013465899146614852100021822223606234503129978747457392223521034810019752798750423902314029229238202929747304236099616087592082284357500018842011253448225039850990152497981265710575686245025113262031463957370701974972812490737562323683590595400532953040211906508106424856888096836527331160726981262030902950710544097791904675237004764984820938901909615314776136212162788098144963411568050941294744533055553228048202952465636206486565305180246257800748614730953766807822803423632348299218683770836738556508450988794775902038026640108154772123476328341018302388829566825747956860140842503209916153772133811489453689885247899159222049437157816592077927538322422169044483864367644515949781977018825916134375323789828270179281634474799868891530679852044240612986757934391405421874836643189767428608038110257462128793920758785410161089705378440331180581057417659622422831753051326825431488545023689092562054439624973950689802540833227699020680024487353765477023445034708322984951500399753710808154156483546178542204774857729675070109787106475729964493823507926897852029918743933172761347729322504520886782429169574785699055209525165402003078611333291055745755822600793127886453946641910579794482354876658431352108055340396283225911298929078456175081169867464224162027808139176837177636826345665350350489529658083923092349433788997414708202271500469315545377732153831842014423958936676801046893399605056985109387587961077253935880583244797864729990313520736131579613559860233079552928999218703028719401983244504903984717651323448912174291607967170368951151251399031420492310623559361258444152755141872601262897245177611282066012393067456786089701168467679337489529333764019701163497782009679515189517654440762341573817664290351898462961542224160367957750551951705952069432485404812467133646680694134188239418766879728801108563420291497884394709852986431432967726784037968811051990817505566983389126469387586506473792828677343793394426208434734272509272536288868535181925448399514427600552909969321602396313147644146867127178533410389960308932548878672106576958640384980373930443810459721214159437189049548246442472780238099123154280948377545003728379047288286063526981799158121679375039849337577816154788190754431841980193872079911803381066530615185898336127612384507566741988330028876739797043696898501841186077278781773312702370889431306510682624543307078974865968706893568136911512595343761988633198822758095104142835116969631322723360947956642743440154817270206807190812398737559354955425885167155141015554282889130798119700551494195113186453700640342634682872911053062899430462040613389615097830698619807590739441377898143625224987681304070184997781899792278800976167919148591515057032973629778031773853392346025912685276658154307623513509971093521675507478997739474510870243199449469186356571759946863222554505199387238030018438174619279653984973811447216147981055306744100060972373093235238836395923020963005121188941964222532929403275397887425234744917126628444137012834186998312835481966110770939739254890453573397535398482698564569164454648269138164313294306420567657440244369763803863220862905739752561317762587123075743147928555806884944134530805285055934038619774807532866976000217544559846315100863932112721980703269376334475943522875553475301638561704969313363022404507686785325062516569564954973918841005136174105541816885566882587122265791729453229992188139532068840817353295420154517195393396429175487540258061200531494817370022104225268550878729815793204706769074968564105324754683191722674688919623966557075445300818517388374751196002668924859653300201494215531621111796787714611917518236105188021881732304205086342919232511665231631214111209706656806786077078044004482679918488856540979596428075373801022841622170055977571719372103007860847852938808402339864765248376412903241781238470487417263108477316768440442826933914841916434455225047185560399117675830844307904942788867304581065313530750336502617031404954018462472393790129607629101672309244994452198653770360854849219138196365960651211573710884938799885136812590339856163352249600698929605285604843991206970588794266214818070959418345726549980650701137921494296749182976924403163320857581358674419138410526988892458180346787855622101672234359502520931625536177191818594433250528794081861894088598356389295656427345687413319379816617935041085680608206822632032338552499455377201255476734005210271541789874494338119065024606201551130553285632925262607500546189434564940029311195588650468628028586622325627938596218965162848654054376695953767101415764686446509263778849928414137515721200687890580398902215885994464073375104522727371223997745979585938504263325670167760340359387238575246226693168084667153943360939242442501787126197761257965076254347802590500562513520482549508707931588901222829140120238346913346097881489591419477502704450003992215792263982517876517032700711578426158950584869559602560284193014872009805734497748439423452573234501423666090240092280782616208595956076230601987912190098463593791809731313292905662478927436314556074654365107112094629195615376632994518271810031651118693827612689600507007915269508891981247856121898167020117879730986748167679924512041624296961464280658390739363224422391352382477366683656705556104247003383791019315895492468317111447371299610976465819623351773180485433940581900711525538297226023380219167105931876391024980043967925046863921385510539357879209265336775339098510301705244806162301292932191237955824841315859021927174040226384315446028190853037122053331483804301699689973805127462848822670866080531740466804921683249410107137109195977386368924937076171637569498023186927263288479899743982182430172671386996034234665126076485441955300464305703864799109569904999516450651537758382117195786688809689845380375440069398709799628994636801451720064472257156514802059612020036483057477345750220877613645524309003466957155734193021586766168788590047400707591557922639350094001939756902274172426307787457639628722522375876796384633768737591118396416833234069139624870864931708962322863194007811109523414180862319357002285308519411030066213282158075823647940248446683266623796300942383493270372332084309286018301700378880022166121387485002097395265594462744677774640381200520042774749523943449514151823157457579117161472861620866955540251163140111554040124110420280110562184103399312082752205963132357039160889408684818456932093257416386168187896414651526293820465775390641569418082478550944419991214640682679138548345169883593378220754515160545442114577883924634224386401112658441738234720535397079130299038408386689945051365954804643464612256996607513156745816630850541026931494289579771138825189366230346133080093070099572608282576213171408148819309501655818078848045003669994332736483110424232371954828671736600772287685630295089778455759312149951516470314377065596235317504836158560291537118956297368074540247681105459515995220829112605025607730194892461028175615223035816172146937296472134179943686212122058358969799359222408800984139394401699356361164011957090791710418689007095631405130377586530071705750646306297111226235205425600274871202738411292832862434368794909808748679062252182013420835711455422071585464543674691897112831932951324214877422753992360963254364607224249621491805884891671879036492575703956572414313811577230601333690287369634860584479135879765917927200009558007726275717836552890724145305528419802672879348791067901871437648531163620561868588379694949241307642017599178828359467024153485221598487662495645270603967958788868558856375605682683037406623827608948114138528007544097840504519899776591009816675734459687472197551714811102011368429375389857396680972683416479925319334524261229344375790014445157833559558261213507432801104867644254432179973202830444320794530740076604861996629728513369804357740132760349068585002758894680529557947299885822245299478223867791815706300014731840157443913198354643776027372789384876647699603199597305272212209699596692490910179411866529718790782297024861459844033660888435869983363542951334906995130008518025818116952050706096978677201740824704416160776807179633195835619330736824603461479535190775355100698486920384612166770650967195739104229896748665734610173848861475714393518769244495960831210016088288926914358440207008714899414260855401440126447885393685962547994803404974556292737265951875606194820071859580072079810761928460781242610536989068990493304066968756624953173425034399779793869636792538349063194695702245256481271443468848545184520607379737658397211669712111482807431862255501345818436005994631330185222899550176354432644474494662828809063497995549319152450034310413346060956149166317053356014583291935489894979073163241617670387892589067799128782025809902324108718159781738227032081235877206656868408669853171328495186776512693367345679230915566472837954125015047046652238697562400786698330410244987366260674305290477975668220014013895370358950987125083919881608437541208326665163774587332748662911118388290757345758064099666731589638243837089301868389277156861181855952291294675358623998540204518414780444256828774913705706839014796825429538473438421373512579471627572998974563993780937445805265044206360979487851252713790762397253724342944826321273047146269070843380663324002255080414838940691787968861616350942208769122111830428791091939553959741744265748783252159129997192167990824054269970976952759767542678718418259339854281016461385439342579511697251363766778807001902064246681252716340702558734088773685615377025417719401722660628490031480686316261236167531276972755131054170877846525688442200779029014108815944498051758267392134698810695677532708682653596644464811112492478323239009843375731326661607113847205214059017060804375146466977074641094275223186612927961121658246618875340207774701260893493140514137684275854868483551705939877461479265371744113080322342595543669743348076887733576607637490421790999441671361756022081301184557134243847419585537206207526797118041685977637658155297523658581668378097059361383630432145251167779467876705877398397910392739924009842963018426173078716472813729118275701825602994935017119104315492589683126481500118222502312421072605589624890630973724157804520599111708246396063515960001966791920824739783489599020968269688209290796083842932711197077326318867033792446872443350231376133121944435803616037208348893234508450505918679312053010350554489233828126603247033801927267453703284461474744399527304743657694603432480348890652063827735174083025507429666347923585647640809705910674830707771275319134859822156208204963291083292860420230003320546484646498004032832428532769621406233626641182446734356873028711919447285437990290318349617314949438654221718787748445990370481464333228305231992068277179362969958840887764307281630523293441314496122853605490825092582347355400457787480786221298143881209698511108547616628966670388373216190093762231534937431651638753181324705776657199360612794216974018956498180525493704307767366724769927701427222535144015571742521373580519353045731847959670777661252920429039639654081059454370132851166680943108408791194922133321277397368966521609070444508757881443537019573885931837322311741494670505789355219140236309568306716768074596270673735555698623950293542939868581778736416737015720999664611901224709132774338753464593277487240360951472483370217001561215883418466043794104800151668030068638665154629099606533215735701265606743711724246521524955317821284085387847974553371870384320581335805679568855726770608508755843965720691875160538952180872470775609137090216136484799622576596332565116398571003950582013570836308349865536428877456103470029617681180165411652303040068991033774344422175604011755398898907658440398971101302723534592753594561491277170638989497093740638044459606173894320928970918798685488760420730180074118084481230634272080464139390580806117606754103106942363154390519652621030771110058453813649017312191513532166337781279700261924788440343222001323811757628521740175642667865712809333936195167243540921967172688514233720344558400252458392383266115479375323833187598257694298685592803344339582038967593438653850406693786562560984801321856924344063154839609387733595177138389918690859871740400231077723913721236409752779049336879936683019678358056473161556030230140307782915488229189844829987345040695616277840096355333447451006746097018580930349687395083771212374001212015123082065275259531113041840891607264377028213523843098962469063541867894891531097148307895101849860983722874973826649379638116815463785179830393371399078028585601044960503499257945187559024923425960820125938551842377354922168174305360379462483302593237342849686214597839962273087040319856404773689451378371345370389089514284073717776731093912713227411593875084459492225274859128425095457952452182789860570167297073616175065347999887533116662608260297342635029511770264474787225950758418097899363854341595045739332404042595704493942765786980068150224843747533745324353646325234794651721113676466528608746119371003747278901618759816693829820265875626332182733146287272179311753601797128046369862513262594877673926957979006594411610165501169230418067762825705370754413041093216346114170248773452268476419902078536250032284571908103135898610008615418901203121410774303939851640450043611760871082794480156654295528112470060021183201496242604490087523918283229405198744554003181980069308802162079387286288406451707423354622651561100682303711338797093925889823345014660567963128289760207911367767344181915863492303825215522810328104260454404716477016283382974003609065582586186790607849868018349004425713724179685028803952395781638572836668057722080240478919612999511600309743038312010393582028829561068937121052903492071591328292090838390289883247304271039540683011073122190154915833630823803734791171790856383618042599266192157208972954281168314159352023185713231271942639294124916192063095767027859258255455683150142577750814895120413058905337978837046332923894368888540075114724744930457769318665021429076445331220867496639235316764109793401969322555195288932996960072810067009300482969093671435303215138526440408921096614267102473618942008673084577843963098937823383835399614316400980921260759869404530957397667101726281188105958437997275145271519854950645297414355814842584449534735429926420812859797491285823371350474829799294038611518838979562215648432983943596987871955400332669897677690244616102938970095359144037421696589070704527159609788611635539652059142534577058406551504655701344002034281059004345940788308642433175366683656369822495363440603197563475258714235238671178165973747356146933948133028118291770496018142463535489593158630393623173764595718988481657872997368841695663483255262609504523884695207347844507530194755594960039943161181755842894194849215533116744006074197720965217987162963954856353930067461713143580169751337076029068130033483017528416896201649885047292066176234129967471415513061026412525664372763196808572878639932313865391444797182137597917934553112425101120016821878412977115049878878169810307679255776404560911150630031902059538063250225195380916108494825576179662111814068321252075605115173519836759027313374485787954354865923924797841654035213468009131295180474505293932192105595000187295406059540010540581363527902084434402258306367579401554804696924581859521495807003467317513581841289487003875205309684629317585113504079407550512927787137167332937363478323390036169200998620751307175188795925043323814082694632340871620048760164286238382660599949521331967646626156582711489563170793321378514144718179337979030960005061710664316551608335197511533321865613459379924709032331780175462105151195564797937441101553609071147279604699997392019256862359653293859026635477440059132693457656345790294210108266970181846374127302137468513641196066483850989200580193687456275019094422009357037865320936191401906206733215951836822594185265396087248016485503817953221204526354909594948343084251588511438689025091417041905210622064639083549797233837909317722246376129162923917611277095199983018827320968104032907006440269403421424988676053870967895505337716912191887210693757928138608856863678351329868906245416251074020490500152131276038546128220646101356040753369458521645375025045676656120592876230606387571959817787855010115694780709743361538317086947218083120231598418942076800051197544512708193068176920163279177081285137144574991488872631966859093607303253440638209736896197401489901665261145043655912627552349910513844702086871376706188653457786286533568152135603818441971861391619889371670611463237020559942561749448352242461060331066283494026264813392453777250253268821377067286660464382231263496472627283983982885664756997259040802909486229609807177387038729955376722382836389791291783554951122849426283267084403036727188215655536233579592836638901964772714308474806073851840074689434815835101927672297392277066650607993327566088412696195564301167544250095789907435615508287209591776801248550263124726529484936003542848682316238007749816546427863257695982281505593261634556574542168747395295940648074577484670455915234744973152896697406184630662853793318777757172479478987425897530529436701144312893717317712253399091778127006715336997749647188933688868518227986883992753757848128527223025348986840280977969756281550691086227126466254645726686380302490002575168604184573087005349401122629209435295554692256197087432303664660305727847832813999997825737050305467535601955028235954889236488916639087389312420505654480588358686272520234833415641542232605561355831829752517595093837057193359616207170782321256561204352058501283186788543292144931657965714162764340754057642470106667346957116980331353857567910024440636883827611422342017053319588077731312559592291209684113973520951728583265230457507621778271331203921267392708684904690074720744283647680468388734735520935647847123989123053804926156327967180778262603625284057754041971627013700323112704549318175448926973215926754440116972746667022387152488962451156839251655042779201844818130180101616029831005183235810002026343172610003252919891973355157881703941385445881422345328751652710396906994799965175988674669946035144894689038737703482440996853008662286327532901644193442153552287791435901565339732993825356645098729012249717717350579769982823162403240962374442214366842690496096889740707393720343464059675033062805452787217103506105305102848627718549130428162105415119599435548551898494010154932595105446216899089107538685915680664156623259762624980498135224519884968318692761467736379383687105766496046659946970854894168824490344089004276619222604550882578543012193001654861356615551830757701557734827937099634693932997547209059325822837051973016694394657659632030290869985744585172083840266447081887034890216606014696145751866869682103885995028348944001557052416985331686328050074141342273379364053784672115876904999742378041173576322903124295589596105612821480042295225926355211363577237915883763459336128121585126347617501573486141657532976366880325090835880407670411626518795287983947299886986252470832974331331705067473851617101035302811126645894487897302496319014692288837908400373326947468721309393044954772019861509538461815006322300043688730112826547738504437670390657934649776901247156455290527194962792546594130957343609302914207076009372455431776369808665464308496772959189109485745289693068233460764182400470415664140038961957188619952873263506983648473124346772673806441309758994041490942585913294796997911902066548425914473946558645071322021641602553713883785692189731475393338533614115365249957917924737676703808135881802684444455488893342868820129696759553133521396986730768072193764691378781809622289780447844166814403549545901949819518831843079022664875340991296852680111744875024892026951786491768365016546356736403718453751118278165085983045584691804049071370332834971244744658532970232995153649844761261819346989805052491984584505534940159346668769106800442079105685273209237980748561374415656448021641358444248361900929230761130188951297018645671826874354596094141666602716120917049164117604407253868935251992367006283067336999197445036193896236008403113348248197884645679931899317484424205700970924164441914196003250567179508601291123651723216640416883729302889698881301378098105371127266264340195364378331023091652296876700885280786921351227840878708098462164181641210932022741845708359830768964990177463007240567267007294074439321302508033770355199160415173655308304318841809457363067887470888354324191923963631554108830222326770181773625371521857983550806239953028584498641322529364072862845978121013356330267793805941896605327502533682300697425784017811803089372198970980480448352077347846032110308385588647904997443749747599125242184345980807068159413297786752188037157847146232956909838502850217073788187203833302325563218039046833208686661855520713566491198565460271191510698856028029230283473849974781050280305128053238380226699070900672597052985527753638421657602077550348353990990163346753282829733245453766211806121299154211081333626535807668247778211428925948667804992936742957595435502490024424192698741394316257447104169635251997833280918945951663022483196974279618419341691046410434117885597069732584154711194854308413934542808405779271874042450169441490325440257515571380916154506413517501064838474932962358871312338733024446892500398414444574520863886902283161865976393061733692681390666001643321293790934374190156501346474831535851470459615160029297948920929248658371035093341290778895557952598575148826971237228727022959094166615157659009217430675548656107370328109758060470609650530668065266129209636579640752508093727188656255280639245665461333930664178037243763371477965237068050682841141017327227453224190521459264258646550264784650497612543879016929944163268627460101471848307493638247643255550757981990771651842797722517311159847000501432751417507442380216009630924840755023935439316007861085939418293311569676153955795855112649049088016208629834489899994981399885395769238762332525509959689078763094192142815255083884023002866222977682617459123352350201629823144595229683960948090570790068389645212030694246054832283229734731803608636761167904105854481811461860055860419738998183652802038378156112590974881621113976981746426684137898830586687427418602648288626648796596731743465948045626253336160162711005320200033004741804023482813136595126961183992813661842407553961338462825754665167214574098909731836489468951421009010951856192841265070248942541736738850359451000753430361542401315476190008544758510311874261323900927151706370701872843548857149400323130753888763482858595820540203068047212397165602641808491915445330869294948317336029019854508670742357926203118510190363298088718025559152676750500497250003732129549288250224059221295548054404125491115423203388256099811844933906509286490498855438675288138993698214223367872055753674008197702738279227164216367642642362317595722066184890122521623644260080387916568064981694480436118126470157104507089936494301172145017180946770228819793822837058159565096839646881976935152819697799434666185723223437416529732440284923499298787348510450979970269069234039202631423226094732487043124109563064978249738839550728919088252414510065898961825746392726446593402018888906572225500297446567262392091532902256195881479770778364817936549218093449929249633589813535934086006478724802961340764833615100594521995731285255469989438612274391572735609855188531766436460683757743348398684136839625450353769222427814903208401678409317544553335943499982891057097437034698524371743140632947776191665006037098994882481263323191971140473044019743573197599906004926840306726777290670364366413455257711832243115582565277529661396933599067770616215496976821665489816691458365900920064675559602635001030558225684429538913256561089885884374472313248434790605818915261117335235489321687313556049985157287468185261586094321570086533573167394766816897773997552155246248129543144961028137268494154306790318218493064745690605511562718773348168101863233044418561228663094913462382859343147959044335790537879161898949602135072208080347966310152300370743688457123509964250871671798046839368352741943622696417167258296868920269725895448738028348771005643511999672013664493586428413788715141193886279116508414097517713505975105984067803221399811494790433843210177618941884025804287319996279452391756929488519702410037080448027574809410102876943403199068153809479008509172414646561591556505673099347659612799642941289170541838612756817832120193578806150362990140138448768735214630941065278702545012912114104349333669620860391786197328158595536334883476546688219565302169119701726645043258026078562137207241122645793025908275680418632656043334544976357525754137201434350627055080261965173599790430775572202506005760365070190926670523867620265647634859750666057590167659324850109057318943768030881010785888465808900990322362592731484850149079823246140650219076418116225427214921187955860129445270907589412131763914214093435229149164735067405290288733247278487637016409245100413601394975215189635476391519837856756195690287791827100256875932990645795318177081901949963168697937517495710289025430947169976553436300649799154007708737646751310713236095860163019438783881211265979594099676551699231340797761304021757585027426678099487659428623977522751227113338400641177439117636559725925769499175164147279822146525567339170765872050569917649055079176433991142882610728814153711320505312474180283037408028842271721279116063851609525931339802835737218012865701668681467893134191457603408094371410958089137935798967762231034006079655809126089748629948155499979838136632968052935475252063178588665720383415018311888937981811165801031878632742369615230072622226335225447986145753784391862830944313989866156286922072899336348511415487696523073630561557464573392852868936055060578899311802051890595149516517927192003440095936645827474476878798820599075190554742248071838819016733465157789125601479367603312790828799346878521853244694971259966918255872681827631136729003849939567370873088214486152803272798076150944801885113691702707601492958705907313770383773542378222410253993626708708475994282813433893837226790269507846554119237135137977682462034828421019538275403829380996764366592791662473051664844072458367419994635039469813692342173381222743464584616615932181522937266323045790310698304844614754641074642199710595404418536745119059789265109634793238679293393982409120193995849562757807191722201994039885625731969877965051940546043623923761226495701669029846802363198435902224550752813052095030702378811104690701240184937518495695966002262255177352739027652462502783035037080487837639032720457938993735170117637978024941262086455093135072649443671563578698788092285089204910493005226742116003895161550266333999416541194421140560536830875746526836470114618183993512425493429594483241009472968623379694849429435021954059240162237955865541899668852262450791551847330150903717697996552609126587611275091911996940698052267353518796324281403637926987472163247643727962500054789085064431390139199280447792525338162770788215708854707132997996048018799737609500992830831439553226586404981008372297930593630516526776111209869932432567197126848271215676916565860144127153048896748982678328166178590343992338575211784333403503236820197119560584105595916781408573915836393011430898061814357150421667660121233712351695683320362303427585841646417764194445620930579641615623350154503591258575872204607498988453281601317927248724220656300206575003984824396724572213693161435011359975940164645418176321566575080825650270490744408988709405111412044606598818621111888157637666762006586238024782309404802578992173871262313494706554619288896437691454169387969798817620970753952241596348519379500258153985635008765907291629041989053568132393601237765154905080753014539926142364320296465865373231315036827101862652146006110337390129092156176291354870245357854037496459593824033768025639950596292334557326849899430417146153140103444890101175040403056927547892898684803013217363260168697211233980676693483559806634591392454894051855026104447584632145974346023571997531635613988213228108122146411960711616850804816426806029490039990570754806923208213050349008998704083222904799493718456085187092216149740404805287775426396659760097390036137841415781704861936826559027491781869300458852691261081480020060580011398261005888856151297173715448811069643929541549723631802756034477712829445383030222164810913809359017321228047259867039918876588102472132541391836770342812969878494140570556449471529404841470738074024898552713632855276762560145115170680562606326711853188672010567767774012670289302992792117270992972568116343860359211844865430021884098296683774700943647621690122322786406334644704173384240685276099037703260161439198198078098294806756758246217479271305511209672517464377632941375718729928050936137538770963733837615812829709456455515680968629287131690939630504193666676948482256382757281386928440856676562655678064489063500005881438480432152629595056671806703777471158700003487161391155155439722761174154713071499464719798834514673494069379368394762206161992450387279466423571803980943217816932146879477465224629332535894296858879125959072461301533642511826977209639858163452208124180932297935760611868382268276802254818030388529231134716282049711729456859100121042565101367566684733240165546620199727779246483609164412622069316371500125806744718086682303129041312990231012567010255885770097850641352774588430079437487198756334493266386426291383400803592774877564657685954640062727634566334856368396142628529524568289951178912601426158687714808261682054251285858711904114466564273440181424441965309741509157861664250868075014700492155321642191516856714285422835683936072054698003736733115057126208447915668610994421788984204347634249074494721746515817932215101425696094518036206378946854848620924172107255912870534331552398232295173765441642422470942935040795595992131573580141252411323027197584525809194442073004711130605058330424617755430954297300412123498787134503521693550238791271888620867917878655225757631563787833789974116128131900851523908426844187635406087944951200437257754049544486613103593219091585625596480310234017719634005512459087682221019271126787137710926199101883628833187928263254225043649217893490931901864951902329272973547783033880518120566372214148801701234511161398098437212193665211696977623414093469400881419242466646732568011230733256420560029650159080189623679376417065633217224499153489218077479070503467703157431393793607471812051465137448172493199738638109899514050065669268055394524616899554800126102613326102686892014535460235172834400363333758851690188975448306488418231830103282284948104412105414189387746663024350774974046095978487790390377781040006974848451432385407573366177311748742507489796779022041970703271406370251938959643047621999979585859311066567545092138657533258003413203098862799944904046064765698670279346539614520604820447605469771537318070718068243748759314452918094143452957883712086120020835756577351711676284811316397271680992020803309179351925676570302899374907422306572780188337709003030113047525462362547804088471387948442605981127703230234297714767395970920313988174984691138586209127529788015322849764175173086260870617115917327335527210232127847920528712614110984904587876113217672067259382724091642940386368590381118027814529877756744073818057265044406639609517995951638585870269876862648815732616622265764743053117773214902613014054814604295331418458937867720461401476509206771803069919855267705973657785678492904251148623598279563341537243068106842769293177694662099815295802131739272317742927147625842902294103159080035525160103193734353805065784200989738659290142099900130888230448367149400010912093624573036747430884941321255664122724518484202572676331931367515459105583911035655540011550208986509514221307190585772945244634898279928408513605460701295965764582464013715152907455081810673035495234855755082465279174819911847701951254013709412637656740905509834146994977500999492899640027643191606149108071213233470881210832962817041493094675707857940719532931360298315090237226638772527288721072461603087332502323454529692814326858107549233961596947170679810940192088834030579498277668737859900459135513274370057478207001498780453996745597760204540762620708098087763281097302796991189996649937994123539277594122201340458987518562522229036827471583830907684999194357080174348213070329863046525215276796318184168952676612106836067590404940956294850212523744992536380783595835864984429761286778364828834938135387216180313975547517197103067000979195685296892987382807237194773543250825922629536191294312957463866970981451045471624177769288016767076301801996352370915352864328988753038070962627103721729787704296649759797636851731183366572361448592760352609589628156442948424336710798257844288717171742343846252194854930163926728020155380843792151509259927490463097017066475611190434951238373889534366447719997844174154248218692165149707384529469243803477739872002231661154497159182106640456705864131627681846741562119843855740443606159172062730782838469835689781264214013145848501002364582654475961977445629384702079934666849431223406749675820784177881855283194385645565402118386415311263342636408248906912262335559392675634608689815301192323088955799693516803315122234593829912313433206684599900866767386645846214338980190490725050941021152660974052814701212614374193081538121093936495421372671087580734528317050222793735959386977613901866590747934135525206729042237216281523270505164936315980906469849418903784016152994342961582225268316722807118528937939139352323528418560766030346872401070809837921447995746275264679089783610886441770180846899238654119129970391944305272431101116221440468834152552052772507486221200941019572065460426746191950041714271323189806804847108239988077177977520405037829938025645791865213867713274547544179703797956573290209333677324544852455995446903433837278524729386130122840863482821145340672618639635925710220791379265272423978982042374020371747330397351369415510199825032528607548335794444415021843676977558329259348961564973559991448212168751892463702767888731500024821772294712570161964012779918856268205767617926227803131504803132783984984551086965471441062072446167938705586716615105966940693052680782062217607107457672141971868186291173462984340697163088101747834842635019701912803796126524333061131194003872046957778496038674053595666525465024286557492733114490647734835343412551981248492722781673877927973119225433162143936145999523292168509700806578971671250764927741155228285715203048113705563704164394520891036897649212370053339604066284026243715245086056447837078408537534094472528454041348935362275134586159631165953783094763141296112491612438663235120005642358626726813435507314631791333692665038909128432490577822611256236521583545483434215594979413344887943484921482383763950617102724153380612638821075819161480758030092237371974449855733274798558311385215996303233934406816771599819676048653587203842661633039587761542334722258831565387378693614560266233295270110375415068127609843565268737498487422303769584612521435098369162342196710698747882939719997321916294807123995961302425799574714075619887872959971016871588648387227491403408636094390972244224745793632378621751202104535222721804384773766367687854568780827220154909834552244616079265731509356293358001558661989778957753148925395884167033892358941030802907339463273849530038517125302231473830254144513237729734132066154943119652645463656392774522258599813554724362945104045828998076896372200313868669743645024029869815474660417041711258792847063865694243975727314429395232032908521248402878248593906056934049970765414293555675850420364767932965760733105561914536133732349182983077264012213474074821424466889376257000343521026862432192783189569379369347994104141854303333325811151026238603303329144973628927304292888446592187559415311455220210221792713390367818911709780308089644350201859309100788003721749460315957425706491798463277946428780731401572909488373622715898643502254373751496315798083463234795584682669134301341760304700736734990915822398103947364795692739699515549272322021112511034632910510202791773696171904853929463285500549232077559788271003790231520421239811465978825566630726910282694203075288355978881136771081584208209533970095994296483716215333687718586997992347810174389807381260594171569988998097610502628103350725914225583997471658921467488537902207575999667746577442473115147917816552859355252534447392477363059064994593086388964822382130301372487184430427682692181986712721497574389923447782222949520885434586737568441661587206317222426501996847101318605307234771180115006649660408348822258087651141610386364099235945549653628414403213221515442851141969189453202024746534911429578972534328746593032239627124725486358053892283409416193950431730537397379572613716213408397469514143842942232544341775707258747544656557639693475633208255161607248180078992769821557411713779814480908411820737621712873203076361388262875144572076721098655355863813891241038330629672326981623666260597967064368027209876424355931245800554022046160888762222095714347078827979027257011279791586415128501368540268256112275834806666371472972482058405410904418087734681952896593644207826047796269418231630625139204070642767471546342513987520265840129037560055197729776829534267080184075942364014197973265252087045889190626069506967485639190680842616602261640443054482232227763198813582934303488760264431055940366533576750171906930481966417031717998631106529384177109303520630801318487830407119920186797722067021789640808482280158955656111799023777352646330653975218354162809352893949324406423519665412135864300023602140517656052600340705105859364760164199801529576255826692890798417403645808851551602984694358161688937820290098790548890296043859906977602245362967328201941972929640393007783497105701684673871571122718951887985596605862640915669779726003762084687237461596035454824090729098564385533459674495810304441460376764440051497222410551589841975109290004375455316719870057452290215697761550259446245597731756747906220602077907935036010183410248318978649722129426446883828162712437608589285055847489545807869691036958849819902948873297782533605721785483670933791044661411005008025066965066236881075117278371262769448794113490788230813930415369704065408933935539374330608905173525327210664136176591560476651725272596034718059189177869275708697025354932294119005488945700890865439878924864987904529107898411372014160137981933893755994196396267508899078965905514240363836145166283406810051435928449594108608251963771823667485180087030284018430130898474220506132308507963066243141884403717511489362033541013171424817701833060360026560497874247940407330209250174034584996759917323305403199107003405980892676472061207046849507740607258758825340785772792633074875102622785405087935423786170268978031525413393955026379354642969975727916257480995943855405547925095165105162753792816210323766300109700005840533302288379609323446353616760160234037904649869124823474309673646954458327119781162293639549236120162806837300130591967266542027240850565645329901484139738696378938363525052607859389828767962293494851435584069969292936777869795807473185429477298384565648600176365603931375184404047239546875733601094081215083722675357126167509171086433165114999625708134234416887094495633105894770690567296796332359116278063997171529079060969800503664178133306871644111264027579775751166597747688649266916016257926503089684993463680563140794867675978040423660190292665243719582054875228108811869078872867473485859010773787869103730109512489906549517086035763833756862812325074476989097382409735169306362183932999554628920475474676194485850367752606573407962155939139996310262018162463764001727053604624224969767784298843361958040852518684885130850614705422002905517331390169146991409172065577861880129809009809401383282281388806098947810761070965586811035494534821749864673889036278642203038575393891852371559137173962780968812940000734989687128478604020665857065416363693983086842509323608091965027797409212940130841308939625375863457975064395379306375229497418320225373483292272196281000385763124686239719566368810624835030833830226216556769537149420115827234237410804702478426379605294438681753697806421567609751170140323008032375341010526575275599963691021395331494881694467833004202882369672682537654416056303862505983867015749284768330220951474673160169059875441947750322335261977758304278689255569494205864050969411109755120887658556300555703440788016212727038580960662265871041943670572258695937073297055294001742671917067005709695363760929415148615864463361512839213953377961152066537300553244061312036794928297301143043454671892311710730400591350409089324562434165104186054560986753867134604473997605834071409529569983994874987985228664932368102297993407188458211206646778306766563686631367814976146633423148840035403251592426451253094973584266185356707348406446886273292014291557698199782115704728606449234877269481510822841323639109626214711355128140391196187887637518159477910358607323812067621391833695145494742979119381021167030879719254099223417264254887151175501762190808953980643529624347775664914409309268475949917166548477444329928704151193740267325582639209517236961667068174041049745418375954433086019169579201726101854825002225116568887534700735710080885305094657087065590434364842204571407544562381369442989507777095880202980478296065659983994477254304436894480874719764216971048987201519945912320638454039056434620207004325460462092600527801758202388297294379590635366264018899064268082308208351012595608122446082815547134100880759949009534766807985952251388180485723308991339251231541713722689856188709446017782449962941557295205334098939831296435280343777366422196214903711723672941931732565906662901317981800862437071473692324560118863315260089712965203672061778076228045098300658857578759756736368730245953616721663729748054340653690367774221202750369887046776363133861883775405408401682114885416561941844727736377672742227177797814671071848407250148446343759061558557486547598220666748519847408858709255936546210739790799740137134528724225831119443628782736846358297406597842872279955342745248045429781432547585241816037784692562956217458605834983323194283296291477713063071752980359688746233625352258447049525411916975927465422160918492591554669115332102367065490494230706922161037014277850176323213978228367459783578609956491884731645213325424320872896545100410402058717368241786804370376795629310806210471408962318158421492745386004637814315118451306180111506926615429233285559240883930865377562831599969160915402951408767222404607683719671969800223004641179603147133511244906114519832653419611798380394732721823752221228549858449386656660807236643990672941789489323138792047899914684805885029752528772840800551841075585016079809352788728463453713052136002846768848921235256056914786965877358036299727266089037054000472049018618894158120905256904691701669678458447194009037535103556672636909647848648945453821930114576133169240292897473548408122285503894553784635665385077680237084389386363847178064119362684352483928942106055542423044744776321601871696490971554378001387184159992472650367723386586773502185554419252486723260850637787452890136878576499101762513131643686947973929320070549445133073500434603967309433151035272718160138363271010767710129592546267112786421820928611617240566180982158946477755803369082755600051014067396022215967821630865953833580008282857886557336310422032913997415987514929557825850839789414753724265888948591494324785087851730661813153103155215984965785439036004387489623408533364461564827318674949265133740174834772443159501441728287237257945107135754599592715005555542509185743910529004522476830986616182885285155052492942357579727508041983517638915981921160902469503618339691347528010574326105869094350621568507907895958543120457939568727001726922904584674269642940443226217873536833143810782326698916741719854313817727937101662119675185296946796959754658375784092004351128177414855017448320551082644588868751530304741991732761168703920721832272812861505297623310756241156028024697162852332909435620284502366180554365506960004543303767704886837273934195061015471050605578231769444045455713932469558722646064654727729516528458819202989412880594725705826869454319544819564841926992949958347783899373876560440857801545082484798241004533122028650880728644757886631998044100909582964071617227991760691068467943332982901750208228266235304178864965417295791223509964160946007670011317142265015009387231779447608322011026941947454219590750400326354151953219062340701629411202399165557651676922029790254099891093870979300656040800578641660109868073578427144337488638610731224263503401942424621905176979140464223788361914582943496892156071478108321685752291090748959420448532355957889652795551144567203805543892121715560267123387364461423716710327689932176017058130047271453668465148229419781723567524050326961991365237486859622192046223868019410179855322316413816429853162602309366611270226369929111983395543742176151632909410556423667612440581568441906936762057910464458628807316548028662873248605187922617300008280236274198945654232629447516581812069552034290625670549642948640127972527911220142099950620865568682166702526797854910053459535994500193896672624442112808618880691731578200386901004736594261629419104720983018470291880626997854459074141148483213857298328478835720079421469784100862751303090426080504708561776713310633598003700518568602425777324552500305026702736041884901797212165183718585540495483152617952262593988220090814810843778895294432933585997832790500805044665131197695486293608679741784463650903222763143275804861009741094249101166028687683054809008147095758400852573440318915626972106887393044589044652260766330016973070941220604729866845436757806716854130121422111821825768186338327988088244036312359826285387449625278002513324905607070607255491977259239207997302327821754635487806177646303118231253170980146066213318280833399520043837967379538492428792414328723782443745657783422600884446803529459198501595247636792914573124081721310798703515534630627720992918984165696676349166735166210662880036645821217328946075408518309516957705170649414457746016243591538163209261336376212964612183048714052657675903676589281961966960060239703377367188180903435205835865705334272923627235529072171037316944167498601147250118806813694586331499416545062144046590240678947001619899148158310625125267566154601652403961800553100911215023705518620534005417429294568036785849052886816329943728082533126534080369747499112199062508791380857521077156091520005872207325202861773281597108909616719019585191386106892723827856703760141205605411096336856578867033242642536611444025692292278908030161354024919374319424566648328443222343831907231272059056889716543716813427708154982752149667956500941440226680477004352410566856087160636255983997202446803431762144648795155297226055179760354112740940773328061828361687405374362590950484677546287128465304200549068950043462463642576269888674531473443526510222183675590479981961336301960510604758867481677405341474184094838489291838372186441763364894694234780411383768260213308518093110038071941245751090377306659967884729772087761875099366783022506093847037206790655265860091560667419235671878569855982671198298499712984500527449694538744722592973378539654444058873821944386012440400261650412616388574087893612782615024637588021305955176276573718379409665567181959887586192054314769729976573804185456001073970660666829042714746379380707283829287430052674268255356883654158236527602744349548734355183707977538379449763523149566115665257626520758536391908828583243251533165551746245293297410506102040088202711281087103173792264817422969696220932734017738725754046160184816696236035912463994467160315087489330994091884149029007378339892750955991429269789048312484424716835359912234933145583992214901292423587329060681219520209906296727534224353338443055335464437361270979899290191150285124509689239626729997005191723977288651857364133371459499501510631524829128375654830945252155655749799684496096354307009856133601639195548814576081665859572427477638839598652016731026891265955982798337024680003880064757061522439507020663614988373296260970237291651785952211561312306176462713121444168382721389959691608006047843504848981413608775250103078328291953434361715432260207468361487840282267452608651932063084461077920693826283037684803449624370853776764765573987095328008072635760911011114588612764418501926785650634805886826950475748285911816484065011231805952809423653455301837376898072891550274046382446609557834434900229799229206690203586263000854191493081441653052688147820542430761973420994345628006089435217408043816700714350545579079877659093227985381091800689689886362763425446656948125167682445261535265881026059646339555200278913033323674918947993394603514851220932236500099904944282957967963211632198622932752760544035461378031074243031662332607188106517927595675404177343148713375058720741980842278792444543101014874523767849812629414386974684699275434071909561322029204030999729246288601691597498547223595543430776012428170180654888077311807429966302854076282381256102364336499133582930080686279833158464433234054318510543106687659402920478852529212877950317338970090447990356764151548041574737670116869812232676612491231395131437996431332658487431066854957796784965954072383710070265666473111376854169291948367510089999669256959591373095294438886261689500138814430182654774370726454031288272023057461501005780291747785243875772561623335688105255697934651751045098107943137672820593555955123098930863153452978014736784285833371352159983045381783122399232981714931980127430423017663632344170768663305833808720160982570469491833671471916853421694259786136120305668525367595316447932802267652981810995919713249524932596113692445546764032536142381724134389422209028490085418057597415741823221026324655717075583650843122439909953927430238162572237000532042603286018115238390534746897003220870652261069522253915666337219946544657578600629994748577534306264384829274489894370146004921040842936710055645427221468569764120097264560361719065678000844309184077658779636258255369815021820164996035660117228226726669333749564710839896050559182959909927731023731026598941008609044284841563981763234354823250623411426667856653505486766908508070245641321536122997285728252715061744059847304396659008269655726560823984218612978959799575002331134813437708131103917428684930075316552555228562189238942125534812064639517558781972899700545993192163441101518585841868397956671060588117973027965360224548492546430558153073362383915120179807213242060510577529821501338683325521672451384586735851533858586250043620289430962852741714345255859844326545668122939998455302041723409938276754786921126666440983626636765365193222232082865471483467233026656641280066044094553845228676228514927815829535358033852804860029009085667700579098982118386388657491126793872040473169128682595142394160751307718992713163469138659952663105381324447845169959067000928973535177891129461730014815069894637248593001076930248369872442478672746045193622915281712441122620046170971968556002507459146148789737764779218800841011690087963771958252558511222546878928523906291646167692456985367245094539353059776560161100757016662517154158113732400692811955171288762357159822239251429872807658466057789416909687359120262656451476141282680848657855788260452193556764879523533610835892449261706532425639603918378106527831133538375057597754892616534585673469985513449157727373575899482403671195037307107116482508799022848323567812258285111660201608540309418732293188452095337232941350376554496803571606664050671672014830409841056172410347655410264049897463419441383260059214324807466216197995755314666316967382546197953085443441098460460574038371570980557266593565431034419801466515069144800781358302535798426595178563376594291379373067875444153417215695128554526267338821307640528466999181169170025198063898575053749635461523489487229730387646483853690276504614447010181985307842652351176148070301601301890771767949631238090451190575998541643494948632303534072891218797067165342849657105556869752786294370698844833977124523325712375599005619913779475945462325135834573765394724010739526253290245200238096770669030208334871337528027398907108132273585022252578776975595100087767531918734968264803748298591099899820366262656508370914546043179128340805171748939754427993770680724717320722555226092382786133673925100812654888588699993293855364616485565510176214697000421764121321417404877241486526488628023166903777596935749700279431858309866431440682014861293303340805214545448116630388643093328060996861678106848739429708216146074417121645690176571744143506192823625136613093990908033093145253099391214373412520996266759684052042817799916906010229899090645545951659281755125112460250562866508482908683397916153785106047184901220092706719137382610236878948818034185807398214022851646189162117335411326401715113996669978545386392242855326838281556418319264106044836350058314066706682598674992767231992919218763111807629343088026356415845614055810119775970020162646761730975597576468479203376428059906969012738235777782267354393589270490944722324415757332958644229148411310494924310205801271844368794922568140552909069670761140926903973177239895332610305373613470303177073232163682523368388087529747614570860641948740074429510286626001782757883635352693541714231993370906940612457951482386357075835981989253318716540733905734089599223594912279060743619107093677769140657450498669461215913148266302166773861961707263755762262203819824668249028915261388471579733337925075669253725260866380353725972950476078027993944401368278851745334530306632383185783331652067370636975398259235017919212635693020209624692579340157122501127402209299011177501140138419299924153078981553516101773704135804497235139746064675155403135842508367590936173420998193841459479219556776406662714196390316654314897966569176286767685702973802755215535620048850049298659727698730148475528275153402602611520385098010440318422674255642846429917540564728164452327307856839570936437423823106921160953953872481621029377869743465278915138313257987473526112599242428054815454031221948262719482095707039622947806957481751080185457213078378396989242007309589240756203757091417940465718588240352274770505582128729762011289819108494565887836147292936968391503231417845002667094736081978853670737579187682438264827149620230087862419945371058858772080042003482630997406764528570726664127810784510000614840031966308448434046845734075144942062116113297907591540799709506650802229485216656461844148052863681790394429925818759185846372938620837864310063387334958541651447225030806533725623062281464299643114500858628629586841969314914031433558657412459331600853640869235104684384817543889593729084252508488667306174010845873413995974410230872752413055492154871384029214897179432522151975045854781090341334464557129615101895012621463408575868462777464995275642525322727558490645963245648700334963555266221131216017548633717304731813928813073056171459615285136856878830294055491111467167234421904405597313036061168204183432689699087027105616780939775080103811935916323661919660799596662780635041936774704590655972280370632356952417484852721091448055017909541868086365481851721516775535474330546585932041252116740053874927336573719242925800479061837332879569672562383331114578386227139361405480027711346586073321793308695742469841256584583827995518978281612799874257781121999572761035104336925681882787029243369495868951335283044924286829537842594979066695897776069964284927609300498829905558566525090875995878815498736874214755582139126361491219507953507608412809097012944576412020505364953898797621943571052235127850944014696789204687379811215540271418835418205405837408506117873330184381573773429847678780853400287606687022417580077213513343056385379280261311217710777569910527787634724041369495549232813182105037985566233886311117457763360124895633562616739364699834118766641530607157249395724319990775534658855899304269265001504332242284788429475838231373805476291034211651938698500173849626205239801598631575394617114862959498917004244245060857779649478968397390774099133186914005761214562214683531593779100364146353160142523235834252546805975721922499052319433043325770953974565161794433945348627471079096943218707797136933249869243466395594448012409474105609592988843963773671039565188582489436960085270236267482693407044561896620183748473220442090437325619754456816554032837232078797271114524254951291601128479314511217851468139011279059549127848729653101243912806318623969219632316431626103091634056233468377993513790735294231463586721708097649390605949248715830555881649353994587289468846297511934292927854058779284592362763933287352777303197837493629841558547557956522967954672472775909827452310354887931850765257055350101565190994866363828981796567613308342073836195471363354198896990015549426734323835252241156703138849789709165002116399843398339595477295326139187608356530635936088325423309069495285377678549711788634218682065201860248928583879732795431852760340013018161399459870171406216321625274259887847369109575192842132748068564153107630991960262815307888633783708223518440590173939266356358772461713748687247265293040743991386931541035622123253153986015973957931714449379977432594198252027366575326459410852081976611015191191877779485520365469392149632756153103423692489859000942327236206976471145633253650535568493180375597678164622051902926785201704061315770549018383605699875008187524434254891280778622912331192056802746206610115840257920414473189049478621515746401315387224480952689596440055129220888253375123896881546546774477039128948083042621817251032993190601744744754898802271038400971461764636572180366585975808223106044832875051483469709512792057294984822373966094946621952222967946749596278906239261674073161940718861430561335078864349958404520302546355355828529714209112354231138088549336048151345106325071224887914870186625532051237167886652058968932022634675739193395024891828737494245060098258779277289827346018551068194358011102686265712405240221423027722531649131461239086212001179793305876665923394742130084080215895567392482642740573861597667364095974237300468916543966427468398157615413023097111695296846488320058639219871979939622705650184273143944109708215797286002687217759236450120996828541825274626282461210632096697896572793751954142670591415272092751375641318278093025964126204343938177680017992718106669059139856314788564029870518287633580919780393255803457470286561321860534080703460989202583374703448526569340345544217706741626782289616078283326770620284629066452725722376862277377318596951673932464146036496305769640920620031454730990135545582387658640970645525528300289023697173004478529538118874998285867594273625643745432168727645450192293081070700584302927734350905288990108389097461047749638351695208252095651944533932156936180961964395245549680559509447254467144598395293076426253409212451818906291111906192971609707338796420234741549588743428750450743483625929178429613020804457523605367108795448556004601964798602287083822694572845650654159240384504869553974594793280372532578044007223424276817249085314712657057431125077304953249256895995278334497620761721401732765049005969677904444364604392067133115718120166249220137130288265663162338561372600685370766717011752029839973424169195630160263428164482238723557709165068297558629004382457915968907502081866856680811890325019264043970592039522121647405382670081806788851559082897736142672511993570347033940558122895017721657209100467475226926121342790214826321839697025212390923660211689315638018079097833614501179072405152107956549328042446693169054547829878470437316699660345891759509360279405003455831330581318949557744750612822353581556904947969524230636317527732026340381661507428007944165690454692589125217387269408283925190273637761986027965850299202607331104674017814360884616957536449443054011651298675872032937440734329483504827849791421348779992289677116510116715370494250776111035693361885202434217421645679655624462793265733568259592462765616055701689071668416733774547060341544326522594900249380798462715842907171931696195067803640696944260212031955365918692173946732176026845435818434508974149170161356858661099493883260073377437406836446640802484481232697165675472268193929561221997878843546836736403333525098921176989701688772021242113003852485998314618953654879477004090555319865315134719693504309020716409332146609479500223818427171668133073857481602565906696763591762538856100661976735497200813980366444512505322068058373369917322273841117252059371305052133715548882372875051581920549644502436158962027630811065110110365507004168339169744255915777318678467119934816868443580915716734764113252240064939759667372739732310776152440951843712028434492437420285232837726179554573281965714714305506230090786717524296556713617337060833533545175353481460385214530406163365734613649952019080899581237542449144593736625618823252028278622711459411102501217403982010838415403191153698388876931510256619477727808924545171520415810693652616933571541358050473055933234522540845202571464664488288973452625976154953794449975932828854205642716278752467340339300933542689651916339743001730985557895513525091492445288461214720518316464150815736661516476007265853189411570738310806483832121109596400334282381051900858274201043694441529282543447421676583577121872039655587177106286404035703856473897685502577813251186271781232452005537026792541955521355072133634354931091153843419628450113550097611870092538422587742220957122500835088991707031436036821186981604619737804138482278464524623360589822192745700732280634870466541744158216490097402615272359699720241500795010041722005025091564386828620417918630976424881145826066222547157629917381125172290435849418888931162018256288097913772477414963498440172790436045377437712728512595799838997134120310931461349107434526940717093647520933064822615257199480364802336721267646291569533154446535577926582958371819790516573606696497901560274247058326631617566490410109950416388745391120967246482672976739251038926511755813716698976444086551067868002856969442472550676580918086184836701972231933404160762105614106705432928649469142745428001960153380961355246879456357225424030424808682320728691285054833961683924410457819150529723149633735283968269563758885862612717988136406627209344480362533934002198108030730122598874888300624194981673019019126815130363329522309664232683488904667543691160581965981922872590585692030988850653280990732825171871115046581621589020809144894692355640958168538818649266041194872851255289825064077968000405176221937383418362074875626727663924178004897277343151630328985132506677415235815234192931495481827464181052956753214678526815228386320586407621592140809250294269010806245850068150433010245749644614261517769880428316003888253644670763085695505027738260055533131297527427251926239029331514233154640153950685096555858961591758383129688443053017724262337364476570525996089598259480698012798604456245740516233618104538018146110167271570162964029634040313921064024649680206196748875994391807026795214215673629271474535343844124326646934560410386067039204516800556975364589226848041759748540239236075920360780018357708138985527940815737815055713825708938212261380793226798040888789949315445604447646002901253319112238182311489416965125122118970650460883908344720204290616539915788150505475685742295660653439084378268118321319774929294556633791320321801014116993648839831135722856127253507555195266534149226252832909163744459269460124882162458812321029290691486343057204877190100999450779732237339884684437301671227885104525225792000898897032877480450960628563941674596942790862417661954619217045976219877046046397837084920983777829448942447196511731396244096449654198938827767831935426069982764033228063054382526809212575169056840944266474241649693363289700067861450362330824905339128450904120925240486479739731591793349877985747780305642241262632372674028725671981098941016496261239440050477184190686594476156111308972780545473448346521763051978626565522451636521641685563705945858288909585193067230007371927621869472090061077338894313115812536300377422499800270594275447310747132495972520805861197089603279901157805556290918125647978738965145669702912611064710745851163520892821911003927944178637286398878295327932221275683720664438742103085938168675005680156208155857965500702640747079058921201732018331201606827900525648745194310360467734007114374157668045501343254283425831612278807317966139888409988038028438915744062276452880699776586830346813046302781231155004851315921614865302974032267211905834506015016705567414632875241987341845601913199663295367938209467642278544881372905214124486434837680117588216852725420011800247955623265469109444084842224838860761051963823701604660399055875459566387185869110378452642745871749591252931494234995322522037367347825385804136939117659941172528309012542655480871208161321347221535256239429927233545601847111803008944420484813634720620032636557890850293926110414974517208532976629826649931089510835200267640207805431319389483995772078839117990966550524184523207471993986286289532711555569585246223799135318810659375341169187535100243440867642508923467895338028139619550650129702904839144109335227818360276463879173936380893582819032662059007210180294450315402516561673637667264687496577165152066308975151446533553933807246821329728538712580602103341472374227731175469253047681600230503366940723807378192623215647908578138635056479827611338319605830675631855513121454065116024653471541963144653209430199749693256482365658383871628375079945283228536736651571284436401518042718295669274906103597315057049803671556324814395392240533680447759491309809346089541257923052758388052812885502271832395459692472794361829972702017593316680670198143684086584774731467318082466952980927633141352080024760324093887305794828281747531065324125687570370407329383375117527529193835453694746094318771345484824114662410637469200737863756630429452538293056355864380583474230766390890744292725283550386079558172448395502415662492711227212410180009441400927007661199660319700981739549655426934697028482650967600134446533732553589287770476603308454873484431190460018012449060636234588585978019932894502968788553338552437524819267724416037254979714967202521491713087334639858568673858722842228503432274339920235662699118119453163939231286266348708171431941767573778064698626402701392457781923380587074972484536595143706861696881190804827904448116745803067920118958018128651143199339631769803794649815382161171461132471309111117191536591006152525346293248338936910645344755058104728618363811204402536787813502120359898019355951068231510417560674502220465691217279330261505349494195800130890238997425456399990364594276226989309579854942855791850296308537754661873564149865773223608315300311650001958543023955674000310167887283900471514532928587188085839875597825491532052763800744587452588138325909216357030365848382213132680009202378008535957850145037569209207512147341023484890979022564787679781649566148779994530333654262579892308223178404453210485447031940048070361416696966558781621059992071332621856761263043857568866071015009435640678652426323828565050988300100874665691496724245173664574073497599601773357933012383349905631068421980711775869111837015834281835264591884187260703504565523544883309757938345101081665907904911057071795575403963580255720933426356048787771501069328707507422971574472167102196930079757342241885087802033145794360105462007346161162502730681945555683692314337363012750527056191409916551586338264342650795511577832973336697858565156564923182371306880461028430884900564189277866064571447074738508292369510175046680471160535414169713176875652767099574367948526910353764627290612147636227238130722637113469728082515049612905103875700922950500392581090963788613029606904540081185958098182542736384398998052520621656277217495143622153372376850442105069483553234286280905316855652222596448606959280209830845191120141205596339325729764344084860955082986297455944347233952550226136333278226030556986618157347807755388228742300623860134844868280772573922803981274200601315232725752647628683214834097213312397739976133994563543841940567960566430663276469051849575561260717563744111835333899967254642226463102959889522594984890380578906863426251536245766925884012259587436954757545726506086517548421415045667160541266687619216694264003802013794024078460293557132827330553637980690559642174470177764866625935216623074947171758043765927169430120185657695694283259701494636523589266160841985454924241152695030193852215645377996645653030294505573626152115941383085587590062467861259042669010806574482937403272039803605985172563744886783552626070187385837713816157891208504376408522561070345129550339529369245501104317577351284279912766733804060509508737833671901548846673713314759540170881691058986662944035115789523242457665124022174554530750443391382267164772726124677596276249074423234191575997169593293005804396834817440603779010561880324279283820224641817594772887418613140869708743583128198937531691215975117879754746946895861029684209201661012981076623504168184196051833340407585370836492578786988569592536049261037660979998903730644006208713621680460819292422217581643821434008632768739114430152930456626965641442817506959081654844038349905421420219642343290075341449790971971543380283608792357283803164102192873922367350344713731839721018820154790546704269267401052953255174389043094534218263433914248683055601593540256242667459978095327216930872669265544257879277244459098417837083516252705335305096457447010433604880472721791426963071054993206498868899846291451880814192272904003440215695775776294903630571750947915148288160065054340464641943195377330211677720092733149236317630801858411804589963853937401117392102044852420642076467277369586813100679944642874218374668068376407450999215780056662773092086515522498280314806841346686946012155758355604547743002750623061881870164167026078489321731089325591466160060050506106719951180730838722992288406338129379718630460301972993832321829092990784794962007907418972227080134959762560612155510416855059871581535437887199101503604555606822118183457315003671995269158795229286762960789554005458649453175568625026620811280055077409615441263432050310955295713720591699452023701690317838080865540943568671902871051520168186320333318312384008784708727719130997588592030191478269141859058693407010088751696080770118833171207574829841022666730695514711438767485024629534842640588228977709920545750029566783633396261262607013964252033599179275971477395955444887666545377902857909509502243714358074815674048807232860003326395671350612903581852826173178319206661657415100171706588766451365614998466655992477964670764526596678995473027862262919769447974900244337983943353148219914005774490062352492454107395347910342833705129251323150968197940809049584673640235061593428025419222696016444333725652021870525138361004936941439333534010195695107872155671938690947914521341250065394662889865786609409888868097390027229918997420976946080161427381346690012444118897497755235685091943957933259482933538582952534331743729676694323955870791466305110068267301468702092805022779015005835847298631048507043325450923194226389911357058518609380944698641253361887450648316914904829681650744570109544660933302838322077749714447183172568602882450784946526610724731767822258577736768649422894860464420106843144112514840900645399418070142822050413838895057115494586100500064234690388468709117437225436115216415956779998638899571406157422540775280388571723306866036801579548300101717525707085911962697070504168078992061017999543224046809756604186324555883210324841970892521734859860404817519367870037107490212800946532443082277495663497790870973190908148799343990172663824033677787864783051531888673991073312005658038004544946331311869878417442961352702818999297020019394927388689311152599023841506174682820141703510711147847797001351634386178105940208270280154111531860956758164717710527824967754768440261527180711994706421720546330887242962744763797248640672550103379150737728856105154326910923442594081321392256523650770580668164124657272784268679935625961756757777036623881597190992233146886216444956531648580521547678674898781444973000804707446096891745599616423703957704015952439844272499766177874577616570402671151018970381228724093671896596627913147955018706703540140114515045503134077577111466588660091743980052800054937867010915512169530188315490118080592186834673608798118435850389675122623560524357418847032726565858471639377574418566548816877437530684242948156843228628759150385835520105447898821222776291121914921894314977133848720946041345787723542605734476501410329906295523064210408255877818304627557273387794843817090513460269699463151092763553713924973374896845470383531323768012458506634207662074090603797144676724464077070859676392724530589904648874763422868348871884553435540613455435566059337405842117713873352061846301397931681823015274119848333589835623646269374155524106212444055360985735813388044832101951987357571471201614142665573157843608437679417806029604847019863250171574995786516940786711784802131197594803095302409415108211579646123068266888271160400150345760202192439411552048745494984882025947174901709564706228288084617472745691524075395841465558298897911892191187668360629781157177379242451360688649476375367306065961829326044505087633131189438732752634305301631576017279057198759544871622555926166054426413680892184673455698664249794599845394057035262140674681186958527095660788017437384643532698391314783270208038467483570977982008707427767854023057504856064584763369584649600180071382951654965076519932083083898857909801994896770440741382455303745172584361534160498309788330025889732643365084005842032334900714082620201241994756280777969700799591930427841221398719409985285311909236140968932958474333109678341417360158196234235883406716874027174178356214850680291271252047346026859315694118446381911952041903408868033901796524649170816047916751008404496931974300322434304894010405011831035311030927848689109174080332098961458393560507837051754731746564652019175342373952906644338884953748663964208833185528772254728408220014193017090987388996893386501963628654272021315679862002132870749423988112600606835958287697988451652355894612149668115286011881135027953807625567999510090866516369074555537237659755354347471182762658271862925537432384853521069282254465702144552646328927468837451818261859243314322850563044010270915928557468411664188907199089095952556066884921715312847161950532190706620200960510042616630962106368254921831812144930344797671494977831016998185763997233054647457910586852167528434838988358427550518094821690178234598915734020246594982896193838674610581897841246356952555694460285509910405194865616334868476817542173347679630341459152554100320459662618714649849620656877450736313100131820688667926414333788678342884065540763835715463866959608643299904023014771102201233539142667329062921696199563073063234342627756369212172123712044067808067221911901793009825603458042786855789985694330905131427610356107466160972618372496841874333905422910669507965613715065762243929444496174330286448221968989374370882924072489196118696799525979439410599937324901904067247120257646543161037529245509845558593674905622936712713089117363945424124212119298151515295472941655381958231623653992355062832978394081246697354825431652203375351348503008395333289585952276040079368622867275577593874673663323208536567828360838697474666315286377288397815316462698055546582054198469120889483683874581715929067153504663641328728340262952425535931824928342560315917694558056326601434324163413227701226139027570642305213332130182154145470306566470282870406764191066951448137980539900255903283058898152784192558084628320531735315987800303353892497279473363373146047629595109778885027773760240413637811980816205599870529612568393999361329986196488829917910810079034245091490581671364345389772813206102202508251148515302618743314682315502196841979560361850526815259988454181666723010440260092238309807498027154606889648453396562416303698795421616161055873286238209626318773016540744777040410510949275672869277236457271466968466072419158892218612821614173113035770784992058266841099526674982161995715243569326496054719180396658122305839386480426027002362334364050478308575545128129157166096880871896258237286616680011293386534036701276900444328177167840097488783138377081289292575844710170694014279396578376669827156064683906053789619933099797246763172781414290102354470116163313510876761983717171416119047147133559260881668313667769413027665554824585314505322404532335857636747196335589395323173551573335190948655649651446508059773522169747704694581095018713843937329827990726139451059383825573720209404134895239901728797469852891776614371895058393052029775007311166284499537705857442435337957834249643142649926548963397489231775582424074510561132856813123688355299646360021610892644356429796971230559612485361112758530888746901454242398890996106708380395499499271138746072480292196115973266392572407799677400643456820029818469211895353768558221540143726002166973431779088531279692578820539916828261920235397176755269866606814700940206866961305248061760562144621981950912458001075501435399792761106592477522516679971348539205144175179998303970764651265956103116138885071203043548852001462769020475611864990099072870948295701745299473432298508292416546625775306230758290306787912919439904958867926370345585455107406381550684234831323348914163543713079024203162776372651069438351285623471716442215798899504779405622392157738100312736165799371873912706313202779249922871208542149847908663585305076856605222298936852709171230122644589077784301484226696327021494081972288032187099698845842113000631834530747075996554680615741243024822005495290206383310405776663249273308726061015009606429217254570153662187756466461883096382901521042372715655653846785387333584646071144776305914440325004552517986727121800894463653007258374547271181703358201295393443856478213038587751229318740480998672151833233514896746693257453568958449170824411282702599010553038483893569103380184618096827750985266678558424959743732575049074601942490661569035778045654071309780407890240035102146142596556024527788831689676347043719957880342180468015051504107594531570114322734801945785008485556773267743850901038728005221142539668346089163637922590716065674966830606491653985571442536926599225200423192540060097506696691833141171060104601808762889453286052691484804334824788902783102126131289154843574588649781484624137876807576698671678299491179791337781118777463017980470525449417799348204834569636302148038699827842148756439258278482193454422974885908647947472595973830902731863657786877965315630941578510591878543570342162683267687391711112886775676939197451142805241444380077282921992317065811481837373036900593754566120070703318200528925674032400007993477045165657417375724784020060877837373190704373480905994492669922513640616985233403212749408934621267296034261824298112537018346000104516154145419187039364191606620349174962287030281750034293423173205417039488695007545786217543137228675353383616308051338582548649388816549454648975317931026355882998635376947819230369772015837894564041708752410308111512786391010444650251214981796505832058541595729088077916467477049606796307251832629021177641325319724338600616703217760109866446872376431873358790423364320031418542446302381262029340061893690814207242577110935973259704071380828227207457977968778048334641795189273358035698125042692801762857491571592445344348156312520740240939553972472460557979039125550411178963199860702333393432782729918974985652898411201693826411625204087317298034565672541770108263323468682781925448963252968573554656732640039832010837054252174057450546242899269023244872494127387353372327601639143390217958251093270556233792648396197898702981067931611940809155402662983586527466062501437024151392963739912803712260755611561223752897987106753027967401071137267697211164235278851718885215199235947512677572497217080714882886716436071057341729776376215031404084346458223607190094486155966607128105116053726895210867163753049805878343677813472633230819710867496580652541181366363046153467298451359007358913881487237038702107349639343456018931081568984100272136334512674143868207943942225944977780958700455991110551448338095068929127209714173023470758613741790417576187535733307525289063207288220104532504962526055875205184224812152293228869022600133528433690514040434650425807710804111235423621256002778436847293359638131478516694738382432909000896722752814741201090809003772955638538417741756643646269941005042212861065074075582885537776292940687298144057649163825385537977605154376823384645750805787721796236983574150406603090750975754780525250134546906525190709444863230283581487941674063402359309874253276526201114034944891230575756404471380958265415739479663347377907683597469917177082788422053396426353657264033743926321399997912875984787575852383816828670346658532532752672240877084492595589179195649955428294983418701817748390405566017173277618222528926968143166579711064739466464684387154356139627796108579457322149685668711881175537000519003920675032091309683244854217287189754469413530966800923511129455552452095814663391309348505622731520166514985340877144524580831793105609517491778677006169129522386672232401550048024279512113594806778534378988492000244333931413763731189861750985980237397910371076909687792812016294320693457198704117653765532759961987084721900606677845316555658921730075007528705014778834379754100495982507807013076508222938137840204787559545246245279896296849118092456904083493053422109060461464219441518537998244346076123854569812522916144046627729668163552965416190526482050009161800901856960377949796137467637815080092864134241425350564575596276015918357121915129641368394030986317611988782569916102296763202577493709960696145852749866464633233571522565289976453529884050597899153691154423727366384128727677406756315294066680007322136337635326071173849353818758763603613102565492298826433096632352759768106998771891344299302058801978758002641333564004958993973602638693654008540558742588019980048066236028531276710649293713828893052083484444024570953858866052525523256342134651044393444268479601592920767092885421417627174718975381758287041075712870629264233753956400707419495281093804920069432449510413363634494242006973701366581466821813701011129170084550876309410256596954376875695649442438989087343041382176327193434266200503704345423819575630335915312196540761514592937716593457008868554528776190554986254359025168314155106180467245103238330819036639769492094561726484927221374423927717703402872500016200132096938079216788480780177867156684283679727818300928942017082559944616757816665380432632787916565323968539590006842787025552301854964647200823246044786491639284604361472235552562147144562757405989581093267943642347719959715058877056445036067626854914941648149303098015985464006024356607812288802950030078019319135007109536231963865502377386327073727842369199392966957826133347714293291767166605381775904204255139913243229399130586363521414942050281858030442512488035123629157604554835725641839345603104321716933311103819761549201110472433730563888507369172852788271353423469183031930675125750566679291514155992565281480305070987333020869747204975037623771626214684865823939813539859588068306532598152581599963258486340557880540293063233032940616618738908426141825637341280703242697322555845011971420659031347495403951846671499464430481429916300182039275193614744468809376757070309893254340651070945109847625348145905359876970854705290860516288046744891506921079890291761039682110877727993910271931211002753828179518400793580505836186544088492890342847320794385400856285515321671940576989448222275116830068424640215940585724130783912552743133150469750132348153922545453281094977639796426804681834319546612502499594001253479233811233310772154515019244421031594972128834147391393636583436024565883150330300426225631545508492748786031577833153374697575051087872532687347850786023856661802694779379671818048851021245770020429539473114977008677557341819398931136861387239968630174215483257804611106909237129325262444888197993252109488913797007933663211332766029160910373555168777101230998512699373802120216743974322481197573864430843792870078768112902654892806424405937465241204317719634092920259534900760903359275170926671681690434275562971901905875394700797854517455272036845404318438954661127340292555696256093608159104550893064758440161836826294302764653400960450314594408851712747711934491254652014532268581518845535390201218823441735394783588784945278515793118595433144925504141347065996918049983329713354655469811039849448945544350818642952134297099596314109938886603379686814662321164635405171599539549290378396062291998912797391812236134694948543519042443455096975036383497051798376866370134400184537294435051131741837589346949220488470757599522988605612154426069783560723353617445131658664412452494588660219062917337429995874454318334649524719047202392298032784933151210533948537941864467326451505089096943756386734524195055164610304265665408873743042200610685269337288837703140002540742028285799286905319227201449131757430026275616516223660370243058461333375291450992828599946003098438228759436213247741831559129093782651238709542691889499084840350526494455912900808679282365353615471500908579375516244490502950567796466554871781672803397548859044142083610373509727036496081587002385212304290639097277485959267664581400417968713264736925058167038868334486695154962557433387558940193643172776058866422120961008460340893493426538010035858524195532606917125880734456674706338955370627165308325864288902953332574755982808375446285619298809464964320971569820590091194730454925515485627877380250543690423621715528661042444178235054312422901020669440085682420322744548259302634138058978373798031795798392795348766444715697419056981485272181336028144470795412179038107482318366953642209199961386926442252264297413918177942288128499067630973131868700646367123139585437317276803760769987930905739383537157834973473284840069804478450150041005056632081899016908084979720045560299618791553062479500743212418402874998892983825350729829823141309831071114445982913747755149141008434286023697383281635084729052346322679614307673945125420157060749466459156438778731933813653555442756552561327203265249650829901148341470072668496489002566373898700055374755797750162107792042639229869469879969190703239232531415014356742376038925100136154917704369079306858950849130328012979968257771366868670187162837197293502427631295740791362024534952477169091337860828855253213813272442221569490750172719293084963706103561593350861131868020613639352873371658282622548393698419198778248742515482424981611523955659691512211429984377035703156311909197186897032489882215097126818534406567505579734221679458741596957836537370409562892189480139703393450743291002826397824911586682723676096015937480309185560180630091632426932105975850851902849883590314967649374683065568448681482632218110418471154762077556543190771685136346123329360993880644178096682824570362864061594728902033534666406680237253559519871585749103431653759908634868390455707242501456187757831350163263238268418732942675150978452929714559263369763415751356587531509148196049274589946472940068659782583602762288307611246642818779073794843338327905388942659077237641359879500542049288766014475826093748492306507965131007379733706925122613765178927046840641785097468996283432061762130389164530903549143452756264349390342789323300331108958501663873631827379263004241903920330140755703924639737791676683946228335835939237259589550474332822979592967350427787071160985450445164071832017014756984356186788101099903003514093445139481686341297571118623171462106331952795056410652885951708407303363604104529304398390260613251729329566450853375748598260028249881559646136270044612935579888982872739720048535040480701916016197615410666600651882335756882052053369852438391451101063952987074301349689885716210594503042714966353603661217224378715474576238173361247258071629462677638213213239456293700770533448214174934072679998985481466419999254625751801414802576566039680781309739778027358330743752796028182866604530514082330610995232747882123568363408092132889454967069702472015995221066632084399252252598940211024898872684496162592851166254279370436521082794289437390222860888715850085426400929531363389295438462417209314534276248645946051707859693364136756914107013966245092460417472998553930480623208170650811251232036788457128500033654203268557447947570821385791114917338579468508053533585846871002824607152990281514498199021333396123806973279088570537218096467024614954687280539267254314767056910330547797099313202043801019121538824378628876096914431537955703815162865834105640341508376479249663319854496967225007183658221192353989912042933756922326362278515717800284113199257908813115297137430384305600164303695468877687726739220641119486497907410243856171084693350632439161361938950383063278422537159511932775162977060887820940323673152795702358736160016389176907859149428505294229707421973334430546904781429000017616221194409568030975372989028858854291155953932258697524723578450336954568549151066846268488480268350121552499366637894331204590930390132168630039712227193243590271962763540204139075732793560039894352672126423893862568860092615731431190999045614883972997758588685950497735775276349087011339053009308034469483190587389016851821045562531152755563213238776274534327521926423150791004025757973697728302931697327438928919752271061763103391961504162898282877251282149819848265600652402743678420331905346399135488157624946969161513665186675095567166795484530089060251553125172168303240046395673600797770241697274510270289574679506292827963449635376980542706932779739574434541284026119047030355277989421107273012963033156538240382315981343688088408673171869927035261490971635192896066413984979840170672061666841362895028203379318861496821542797121186316669410386309733950667840028182715495766490380348107906872308771498151753584151829011568225220331433013928626301223002839038322647066946880778863293824900676061463144806150047967681866743906410029411255765478092126914317290819107542113395246589873415712230308841378474241717313933181358811562903612933361442812610944082234027677780855125467920448018511120196074536136051354941229049411479628328275453015525947480548924200257233327647681877745698713106657267477903578448395094387549942729569182434031087125495023968259279183894543986588856620995211118435492129944851984844407787115113615370181914287814866785578355430484398789300756932634677291786982303092382669410151420101095474012962359911985000923309148482877555979051114822435676763690410709696966833181404590321092853412656755429077309062257305102923396863744329762920351938818476719445492631045043587224335970926559019133292091708400669202536624726270301950925172952848017100822845764388553350017273158716679010907990839923781186314329655893235089077843149939360692191616075655219558468983969120893175879767124755279383401749681188995333044583403377589609222892503863806539393845288531656167630512044104911887174064795459002739704049165181265844104084112601150208646405633840939304859334224017780774488540364275509903158467070145051600588297112269096047323146996851069144442437744880678936255136359487508071460896553575291977813311462996769979333972401797075562190940170602968677145714319623357609444272923468385287411045909693445222074881456691265040710649301224405090573857485769870498973040316807759689213657788967069906092649184643526149410420124957563800520550346470089647635335869491791077701114154094563781446512983985569752955551680599534847170101901896927946853005444224160725687814335374480648578618059598225692327619072266571887499228359645414815603131339011459553170027835657103713454537288704872426671132464561770234157778956178532658641622821365004129335879557053540563321806235187817830705040605992841463561218100757622534587414645152847076653763266074515006746074161389448806697489038265750320064062456036305555151939678122418084338243419524583308816440339421277068126928398602494471044025840036344235203757423205027327643649207103027265631902620508211227019708901324497006120959524357629366127695918860472320674804453415058839829886929109025153424273082456720693904672645386903217067820513354235690211649361715044630899765054917465935501590936894128656064230834872014883064577779927726581295512480000571345571237093301553612068133698730688862739876900938837331671198950574499863152570185224060526888456392323727726668667494968269959219808531604291102311395005283338641116003474631390394819265699608476840999243202167122264848982055657275181489558605280103168898128948696503788107422669688406868261353464257132035721700161251349903526649050567951685342753809417779855202116840156203601591416395630087125893417845129571827665875458178055843957540480076122899169086311555190080475701895504407327002927572561746603343242297572829524037443072992831472056093176531562217840874414481840637981636726735830634842105858455198251450773127270846300758767729175544518059551134068608152725256535497674732928108971938384208320708643605248309633418176060644582971174290106034446906364145048884388692685037289015784282183726753102439008778901583688487092085228693325195083851661088579906922709911241051502548225455188308790170494215580943978291169171931262573079671751816317550342404079266830538459404361581576005801911922682152689563113309596478801343219616110653191187780200106677620799763158828931313172395667285358609825483985750596227827366174972484239024583540760974822571476650313056176853210604010565573566003788264247122246952335488436178216364441395077408800334066986019204214873075580857383157317277240981339989874356648709290695064615289718140610381174295500441809105266962760074154988959222041362244839204380538573955033925369819908305195057538193247558038577170803963998216734966833888464210024960114942120245964970324692542940889377840856400150035804615257689763575335671080069436694395818804319940784751053946210676771754440104251276006203980081504266643804124157713196151304611238130575159535934654833863749719809806536638385508042525610650119730447268100598746966981667287631177816527708289225482585672523493871490472454570129679724701799995830094426263547765243630586861062871277072033666770230209591078124887106925452122871186342104002428458894490311894615024504820511653910880488458983716735473018073357684154437783658073699204165015090459286519982332181014435815249218138373533112027585220350564052376844897552706409191927327761369494631412358304336760323227265201646847253605441511313363532520597186602038653590585019740837219480160435276614561625800564534415810989579637900889651529820428587234941626506846684702667452697246416560377234706505597500777723656198371679617253161156412601239039389592841543117767958216706616838219391013741579021436267879580222247070362498225175756455624542057251173963512081188404994039034600006556535483076475369494984455932455733879203521488844791320321301900169496824742646094919487475034023752830842226286956474442950173979962263721691004080269422144899502620526626446701294638405583519266271531416942804063174913222693209241468510756732271952878709283710795615913354162808808391870961323326517199772803288764012005572315654360450894005083892557861829510446118244935949659021047525260716169456410583000915544148130438362464383334295044217312630085507668484099461213794229074626951576855248802425702046992520593295187947103004336364405323614377192736897300047731609906727000650884436808311100687539150989619353817912211712461688679107571989420511101525167773996530303740190588099017862352083992937140990850024812244055204228541521516937899888538349772414369282976324163814127584596812845970455359130062521441839882905276828249750591834561589064935091437025722049447633668502298649780278139991675833960095112913327945134823859166893420973664768383226047430195855363737756251418887520461628623732177060577804795126063781233429130902941642905814255298363134974771404181949733330269842749069532473951873907694597723183851491279063205752271529918410368388697763335869944818126895059875563793102415509779666240370013950516749689583072502912914246451526168713498675660683765162898925230940435396839900494569387327244877531660442210130563420051159106418349766972545045958569710193767123846553530961408248237999021655004535391100089572718378967837705145297937126871555938320938193465943451667717030305154956850511471226963232585040000462385815191684849129168205873060555912140371701838762848337245882368759855051002920086985245831127418011528821066559021789526442802549697424521345947116916644594250467787229687245595618091513093227144668472873168215814135314387075252239893115704097728151142249607119216574565742632532549718421495912709276324999098968865362792404153996433843465495633478435976023240591870746616530360459463045000752622575313165954585000481799905218410075082517435521008544957242238008721518145885704597864693839370750922425928655508915993766163114355825252418537833506509785868498561155498850538797011461847513560316053105985444434214968180204522647990871275706404039183537736285902738778426313089895476664524946944595355053121717911739041854740077691951697217023262606810432665099759256362651896996326415099278827694475068869658717359477018360038083947933699330866015514957301552478339802317732106394510460706666910212856841468590374762598437349449053023874310074920840036211624206793491694312519742511523677477562064214616834157036268072690784620581911388787519118923529384358779041803803153472664100696956994497281088376180235552629928713036277286551670800844929275240785187348930497511627006223203159549487427499981718490999681481147338593320853648292479213417824428834716103407551753638627812533837152204278758492824270004064754848790647531117223312081155483864376265548770556675054825636109614730761157255270525006625126012071731907590006703601277540610873452847697230347642310786316605263600446816473731434148020752347479041478338598121989246512574317787779830579031956502473384339750153028680935729140938067950077967855941243008783113749317641954417617328157580532737209682053488691011985168333496863563337551034860079200748086930179688694608665255439969551055593533985002195536820173370873525499631810663920919370629898280270768830397524334817695390193891963475171542140561477102373633432431762742170600622722254454324434045905024558760497342558764689348302310587251114047127681716254638924980024184119187414476043298728990460300485031894713044529020887050807735251555896911170638114776985681683135944986737224397025322956428864047901713348639639217387712095311707719177020397714138696504547516060847750295117583692844913183841785466152607719033507581796047463521660380322914959109954193227367866074759970637996784062814409251131653960252280148958444045449761905903200775033517953948488173355751708766974491521270583170564970021464982854377688021062641792370592547395913494253405339983194644818400566179708741517953579883468287606085747481612604097658376563179363029633315382539797109357482328851896139025078434146625205019446444048697974749259501876602497643507714454573180575909002906350171983532882020459684096949945036779808125573088515352209664975942148243965684760261944087154316412550661184045577873957267535697929021276221680909946576904101414733332202027498603211693589393180066397121133533437733931001226406996205691725985723335473933255176466035844629886576979389295660533461532425771023449339085914324608221287890998215868804104458129749261865737444284670540294209488346899413911926193289047698023830130587692036268864326982526052522995373588065008890916466532309795248206667610559711179484838617328748913667993716847714235344094366318664650427484136385226342880481677099855527746729597787221694512293374756340555775614607680163807806873424194167443608940770065164358247982284078780886464788045065573298872928808261684209250430901049059583539437202338629734071124708401992865484161458385960020812305664609463470381929654031124741250283271483631716388695391007692769748695056488663594947700648272929353393503453498126622996965010992945987282826868303689621244771630088297547606751821523480441524821763145260817808990639859407120818947679582288682450782973224396050714990698724139574089280143404347513124345888054132889934727350667895564804022295422232865276228787895484831183583751043975679988985570200303990224000570462976422392954804890213451912739672934917798795442514361983902765911003215027775601879691280675739685431387901996588156074113108626909866649927966024095517374498103082820007475015149067644671091690204193365892617690654716870792037295590239248193508950254267565241097124492300198781424973121737333930259062600880488652095363298108768192167117834444256987414513438308367077265177306816075359134317891945239753059688310771152062946347294811809773617836883252438991033025122908866102326731958141695036390988515950563349942712300455294121863444828902072440849856632256727941310797988064873003775549395074062823675491323706104423336363425942745000158744706660524221003860621758776347966390197601514592674337731832331465300183252320445270082830537201230225308618405075141374115312995531426481195536941935420248848502075110535434575160769650014693357283033009257644200134088797464876384512778745615311838903572710647716288233348007059753497616122867811759510615077151153107329317027561416641517222842187377905490701882828700606750059765045228376712747909802796922037729763521794469576735132621535350660887795601212052798513642872152672461075938721344753407083608437189896262931702808889974401736703285118996482069781597436569900351329181282536057300283186611318935880114946418469695867012539845589411154571970487460923479032597005436124322587589810291238193686515997159375660420613412806992230979357855959729254542812585703806334167801253286218223723510050713223428285308279928940635869033106570114752104525207758138488862205086898916120239931785237586225558106634813115142663146731253736239832661752612463669253706618491593979781215400573054346894430941306270625801827228566149924153166231897889043837548607202827886212802315244249816613889863636152472331405795804353654191167929797801564187033973849487884111729508015983665659345806190032102489568585547152443275564053901848194215006394757217303582359456589234320031807980735011927872544761169658404601852402978744981355546960873188522105320664466237127511401524480615154098548602016958700714146067708347452725012853858798020282611266699720473201519208297148978388836498658225348713089988588271707456160348219333810728431951771217019077481996657385997329627970312048929957659140136404747993915671481214508554030972221919222203759961765186992826787697296803255840833553725483657803596280438187713802749416988713331495744845004239311843850675112739357853352958423647720128935249545403892648041972665464628762828492598772451846317848540151335237265662669872587682695862114475711933782543585250136174171645986234035043584149937300043875571346858826376857794186240011456024518888663977128268765574966004249474281786210592583213877175415723613471390941293015961338136801397168371931585948307208086384302177745848714866719858498373012416314610987067216232365077364105125638823128045206283843954926557496560221339609360211258138861570243562886939764389785566910665089655713801945654033406828962908463554086140503733864033502357372223858985231438252207885864004673406274525817500976833953527730255739979995807605422683044051453292247480000579122804998225803564103994635612365514037175743683843489567735880153470334855891911400978259888462550309122265546081652605749429224694359050729543365730923741137501599996102893066759330447322677453379052174661738369754035553704296960796965937506381708918099696152482125430998888256741846483121121142600805180241789714652725360681348925141979264736756634117428881250170822803217459215171785180882852872665016947818244661025953644166354192717396832789282999981391605739915703472389717884469166050568580374189919427316645222958976375444706004207185351793803310635494143718428137682497551103393215019798710270343126756588334049448278467754728234356378335475963919586651067859828270301735987384592879715850679537451085822215604203780531503938187083373597932942833500160947499252133408796393867099291525954054773225869427071068090485682176937026507676230550540941617071518089811340518833208357559615388253419829800409286023867838748226238123637408752020586440855153273134997031794255591381727137904568302310191543173727520102105084736359348379612793317057703636035604691952475704645728052810067926603863183260973134809720137034006569659401547194245946620701799530469020731777153954140580350150839013690390263045878857177980324097922070093285990842264044085620443759489598139976040668422095713884228115692357878175309693078331799395461538023138406984910984553134976956885296587103506340647059605964122448508094457391605217411148659401603246095500527491736391258157673192305021959722124731994308231811160803124619659444950905690185298750800670403958685286963015773756442561799146580757386000475864849269682215521504104373445520075935666160746562892631530015495994624034124039872643244474938175227692492143770586155528771570058641508465988318479013497580223023116722278031362392730354866273046139100953163985000989836532593881221478874597683469697506597343083127288897480176806731121532865555603651586542336341117026050084429915855958396133874735374663837802470328040302329790175682887232803176229010432508866469003955179204583677104326099215163306893735184327104041701794674428655258962960277560898621701031623051855136465437742929807917900344674499273516031433264637899540122977318269731228938079988823670895238834017738745214540803887436140403687072184307221197816910825615763159863106145530602000197457072733604167181671750419046707488066025080765871650838985283962979503234747973690827142559506975216590658711646206070860735993795110551098050562210535124973196017361035205747376123776384367436823722006371702224810279857102196266822783188455338795392741029753902595501001784265274689315963784399731634145659947567444637027621614875199984850514183549738416615382765401105418653342960565994191412708184281420601913905277210090765279365804474396672627426853446924961425894279995780593057818105658828048788301319812932672746582083557619726648530981914553588488298871928408414299653985389444831051027565214092756788186164559647100576328120145961484026676180498149816041807259468525860460143500238215310315873669965392896827042667135122926188187579389835174564615829977687289150962758005814891427373133376330076379049992545511350057762096026527887435008705919005690522810433044868643107303544386964196577183895118110411924471546941057410817881231637476040566983789785823121396608289598000997828425546988197889537134254537066954406450450127476129293080278233494053198547650801113310375287402357165038358552283696656530145011435315001366837310805259991502892711987825145734549317193253640039243430163274328721292667357477187269163585140597480862036476675108230537604484481082760233923650817653529067802023520995073229311031583869027703471744790448059005522584274981712892094261717203165667010136282673716783223540758513509765446111163074536709700173446196940420060703868750994015170588577532586304002764268570115811454874912965506594062575810949665477672150492441007688094469556632698250674482970885162306303619546822875302695545092045300822552379025603574938031778564568800973800852512195854053360142305491622706007342128208133326029447916764877145049861353246098115371416913763820466381671102159296804450704991210830173698465815822497078468369240524786053147702572131485536318827647821285006125189443563923598331454545840492379732725003516105947241785146441608145805275815069516477810028290776703881210351020604418674953672212349289250628961735252209083165482474534307962825319647490348948793489368664518380761499797219794363893263349454392277957494625272270298355738906275254883585782253948938526946561382594477244139034568620860575536412712774175099117335126478161742879438683880146527342487960881977586828426541314441482452145418157602211593193678976991777958365736711123232805796739647743576811803113620925936410831976186725755494637811615434231793969443512276383992622407112713957699637342879067943384060890307607426024123265969369688785099721275850378658267363364235761543549059265386680661367890273849321805234945415665022663733449664776194019237854564121060801085045064649356286937211068850695684245152190613552333702594261089881820875752876438947892378291015488192148913261565298024285241093414722279685599986265998533094041170347441917411098703145278515745200478393251956714529726269778683083357058186943298369291105863020440855372784646638254930118711553596155013829578870006865813265523968677927868437385456624273639577230024923984384539545446523447745819067369733628162255970350172425535618582665960116969331321775440747292459525118824344809588136295981148209164396911585997518800617482922949196621135269440484039939963586492226906665334394124154256048642887671733393328546396012592829348803589029284216791345165362726669145931693953558168602468425374805863809347568490641949333568152181487889684470947920447348905569881089567339282142394210626819918750956824847238357178031652181746670790471219463153270483640490857474104528915195768139564428968450412823182708705662586729468780586900422294686727854471360974723313496243549421758184650038119425634515955470234134922283934690723640737306183487178315268443376456913706523757828229605302878692504390704141490363620528563605724140555207841640448686686313886854343467968469961146615973931287713082387599907179279729986498784243913976617507832497804614200142996544496742412008911862274848812440448263888791617307126851427797211984803378661412312153009737139685275564274481435464928741342949830821870361321524007438630082944426125316994408702681636946582363023961948985427391581111662894314458755817146432886082334577310008410490281525578390484736862607233124060962427640707706988284499985190887598448237847800722836606431848103663817864027138806539058163587128834721141225353331220402252250317468529637946755892393561662823953681017277878129273744342535889516881908102964391633974477514838641854409227949774487992907361125663654677576269660337904631074959628285525448208463573998960113193447358562140584471673913986974105273225512926582446030215805951580566074504023563361070086669778558149344715500825345902774231884255832484198838475833108116764685909354374324331620786383448913936716727203829116280374773095958302556171022091414411052443070242627695660254234179072568251939157801114600550127874365275083411911413585514451532114494147357605466763311591477357524094339628423053607621642323536516288708419082871522457368572838337413372118879278986296572560486750932885457188319362727615913986896103503566887861703825738470927039166602815783525283875447162710418580527110701166916039437118164183239084695019735230340749633841916524773544323344922323095458545054582748478868060894734270256113615599555039780058379740632986438399228937940733802337224734487377596821937852268632696669502276125707316587041797655565699995760140481191449413069034888119554280767535609294840235911402170579882451935378525259674493303540489497654750550479318276103028994160606049324189581736242299275990311982137563275614174230855530826871938294680795300382018879647030227757101735644973824379858685809082677578304007073852201572828331525363539892236837571889770761947631778198755971125890944841437792904775671943032790181690181704678320158842479594595180890366910847955183470850385405848161606610328495845432285677783793607178837595372817771917444069694739419158102356778602886570617074659671250074941953826702368646582251053780592340217523098698299380608630080176986703301752761125806921942711989386753032671509251530295348839078320761512844584798886969899058238640198014987473903545392152087927229428809739841154725426486403762415011216632276075924129507338818512946621387791319109778741241274828173879076818232066089208010210204218391227410704222062595988146064371431099097385875775138485196374879696357900021014744006609769487304653437221931779955589004120815653540055313934832591658039266276462019653478473638830179262898540588775195172489154568991366936777141382741690705457017209379826867651417673638522577454395847658836902529451864491158219814661123183301765811085702337512315272459798082119029714507475003904860814151152075966539081031837836183799408385283903484880988055126041334792285311824394487272334489588099618657102271238980973805869572670262459996956777957755340963882233998846477525684490014249290545895997486518405371882747912276678243079302682028440037437918245467724003049949691661414672744559229095540823637471055619067538429397745267254260679148559756270773344067389062123538570432868404144261343342714931862766763429923319595433820147114884453545117888466452455452835794981866103859838521099960187030598398064421955544544331218971660695886194630243629709605890079055786336068339921381492310494180348722542385696979741890014654910369846825254197773602229548770232143984308636732682879034318263516029520529645291732479241280067346169337901449798454775447422787517648661426181415202771773265580077438324291375086337566436867666781325039809516968696269298020423178599796036985727512287165937010559871989540471176375438361810889524223372388612665203575800212548792392296382026810173423647299550717800909675335413013242853971505621597103264706265989749961147861308087845554449541114900161003317013563298579821970743216204027121989730669906828518993998075265097741072332376007917261737668274381283210471068275929486660166191673266189344923554913363101857202329073241633031227755368450703787883175239178823602655672698827976970611009734715072028820726735691011855997945821043727548569564912099338782744462517971882751359545003161807653950439611689189816789827482418340475778095800140071885366947627901623092434632150604337594029831481359952258228543231967277351413707427549386291101311227872583288049087479789157363758132569868627622910849345957299246038574228128890578824116604753414297225045794138020931790928106794962610610546942027891974219745831744480241759893687212434940972191789010682039836577404202265569833041691722577288636428362414734072786903501070813703138806290304814593172970520058289956849397672162920571576313962215707972295074122092104037212208577545742700851538050107415486467991518763002815016295388438098161336017750782846108147408440803977932750821961479282118721877467645205736107161819495837874918649685600881275867072440619636684994190535060794625080944922014120793461540569267255631677762197876816983478041324021330058851137212453213384739002962227138475325497491723844794678159357786494953675639639553164964833394524214476436031040031065015533578785473571740404073853964636332102239957699258224043383792137183940247841692397599980297062277719250899645419056494846455693592790397598283930300577992575063879723386419565489719090155434906067608330708113270198258713903016675225508426951902608975388973025580448205118368039697347134371666933411652881879321520062291992458382255644092277408630199705462632954920042864136691041390595934694866776923417077654192270249582611019296082140944259851403239157984333234563680358143635442358651408683620678001088743604049417384506853282882872056071986896662737331065540681167860407024629746666663803835782775942511241178700762777191009646013690965545931045448425922943702054750049020696317804510321130479731307889306498749297366427471736044995033489669765471941657363110508312698591938263196330626221426232015105497001063841568683118788305147352054728588938650384478981629498490207526412344644235095291428219857071942020954306287639059628568583113953148320325667052245983720951839995217598009394384873640755563046142329655866225807958559669454417079046146929246492749038169966474541921052294156045141708115757610073206987106982207333452489290176685410127808657848382503312656363804292237862453817340002256662735648120995878528160642728510958556186273693384497472309581179099869226403410436286250872205407743927227458545188651197365341074452449630405182326397948951439518718849800477790128925988292755808338865846530490414830501468398815211759977775569303242988285003617474775402016559025668466351352226944132665191826228280401607179788782572337597249118630180608934110028392092948302449198364989476850240983133688736538154644524542345486326039956017181367317502704085828546012392147282302671616438657281730141781775762572703154080484568486166615182739741746052929208639134544014063258330340024842896623461703045271869818681163592226686837218431858379537871711048075326743675800341134244680730686422328359041727726717581656763145025473496418165255012707061911826985801086144043121932541975732971746197829911961619050432111112162795886319628471598945311692514203104583528359279947855636194894598921434051636714099617688001524361048495134094412414445355294215827394385951850062829639415141855696564691661451962556111151709005487844952330929439075297697582689149400060545360814666944840851098792469844398918556546351542076718626316025559900217220271248473254086685245874487190558071891762269053500468452333040732675731425159857844292104648887814905029015093630185055794892374948201008931862393706808012522652552914693805461398234868544683969152969034789332554762132247255883156162062184593418233774655194438242973065981861040127222539122594422725378580116512346928007351690861961576842567710720614687054921851355502849949842842015325618774527986458597625310770696085100996993453970271360734647023323847583954326727714299774808059919437177859272220937659322255138232795946656271118211961335379807560732675891192843210960804622461274519133139053965408314987330019049635079263889450346730077692437781250669308188753996852219421104807260256048063637421436730415844457879306491162386137198708421287278999453025243242507326900266142526907627412505630745450572482243972700857422179484605999956788017924994339514593625740251825157711652563930596938429628526701680357612034899285194998132091502125689059316421320870728897634530945959333870243999853755901923757775781675354245517692549340584548298441261918457166452824211111794663314776685182762286004158401296970699463229660870052017749442431391905790247870934576763331334753325297308278669567327044856573452178985127087138294212305695125931336860918804344978572098167647665584719574182389356328421215583979097561878942624394072256124355520024104537274057351223185431737074103972065086641716006891748745096045883982439540431060904050943239293330791618968770982967192631713525990157156414697768202185152950554945691959587598997788777638757708001909528836184140082426818375231882231758548315331191685259641972573307701808208579803501118588828609088881442545436258128592800619474124638526547262770240532635539360039050920974677322999325228731254159501527909806534452947802249975077738511123797233225455106781666212414725461932626552849295269851117943395989171179383742860860962141730782461990761977558047828310359688605894689385856371184263682946477324826838225177610116589979743964699590220737228064179577494861161823413149903786466068553846943162891331121959525551818113415418491126943101766939120705760697639579647700870291310600715576108610345823348647740959933962347290433488489051489570258970750639526941086039097230599417878427601738589566000923260247215892245920787628588723622640833632081077864448967748208153235039884465032113631936827053153718385112075885291196342581018745302618024360867623871937705643256699507567837637940327700458594343082608331115919899884605720148845318930617637776007828759277952800228225653697056994448700084401365371598526681246635291071497589243113514904589796046726325475131738250308365340299570107004625632819049047158460174714167235229988809771074589251802759957693554603229658963685151644834295740418306521879753469517303812150060997911977602316913779456836601389410852437209975571839708183118828992141597090004026763032084352425998168102083108715239607521674318375876474236107580459917852596529559051874718044467121334348429573980189049512191696819073569177166151744923963152930501616383034940048411463865028546959236374995327712242203262597388757334956232340086973829200814135943658557021113737391280426553910085405457696335770627811767369172041705199361780316128428370235779925512059189574014166364697438960897046534709309183394954676833040062880686083922899436504373772644308555867142996562097230134050794064747568678316344469087250316876749703617197370615881543316560256260930316721183021861271013278930384520458013817302123849483372859722924347594733513905735615692943133234105018179538056977690366698432486364117356315189734435045055126425235178383068701908277418772008148507678920654763395752620618133065504503740058428246058400909140088864033956352288009209210705678853984158372486652990924683253853024937272877736947545421908922926656058146794933633338756801508154821933308415984537630948390567343469637009699163666624543152572327693329174631610355324817217466493368786701668161377007633144802678935449178616610901879907594257614399777047919482900397344455604646381731986248038310634423408860938018771573267456420435292936319295950586393545777993716482694700481547868073417143613407364817915734840738906949425557529092151010340489589646649734759030471055394364470347623382257631037640065651108411932279836918606011921917600353029307305931332328892124712491125810042242912952143598125836152381427665085466588790377830248464016871958177605952512201994318625989896444815714447609971741262543618728215926512917090804908549609393791713100740918495348571512073408440126415337027071080189260995632040921993289039127577613201015012540129846375367805181619271573115783759914783916155137604240571461221831934572121239126590496501959672071895224760372323751744573574982855580019220186524551825291946963213312008743944987377856927564775609995612331226848758195794221162915148693317430981015572906881597729782124261403505727260674706661771275490858632756436709736045175186839026014779305446654253486078131539620113050575944071023642511491174339205400581430313278453961269945996087528598972715364906116677948348086731703454184472509451949648733504288995329293127718087908554589025614099437037881015632402713074798453969274951182276539313521143086375941939720663076164877718045016073262886320233822719593762846957718129842522604089073527859215393256413560719297526270258483435152509819371058949250222691485557601067359669960475722912317333804933021475526698939846242606412536745847676084680771619810190513777509389956431667383509360887937571579799774319949160105287853505983280084546047603945694597023022736880873952213958590089614837746663665260055036499779942392806850658545075021158682168154556061111995601507005046867274705543687330636196387720218848795314319609094570070857747091315578502947440998411265573275079744366535916285285531708439584063301437068871509672158704920786937553415818152235348798880075554926014750559648177217626442733728642588846857607230149374693684613243961980305844059619284841498011358209894572678725175569893532250850698352215865907902949538797515695187411661198491342227443862506137387449149559598661177306156090898353165382442363165913282763849527741888390531412793183793491083347120357451148250484984113850000881468041419346260470786050845017754935364451497869471662628095102243388967598740374877784373571883481247452196497557197779537022957012539008823263719687192395448972125274716170825214386070461488405458767058618381900459186924876442440773454791478767426646523221010410618661106775604024741029754197754862763610059986091890793020306748172756398667834278781549764405630914620081744197389151956769546481056199634175421710687995043480587740714615650945270451179786035466496539724691485091125491332854738773522859713664784237807184935162437642464061269332747128363910806177331796188919206785586496010706546817825994876570954813361267921837806808088496061251921290465606966188059008932674605998327063982912971585660747696301571547452509036788943185626148833937195939057448918233801483068659383267819187353297581215491501864775268975293603641432501648746805254279120473363881533701445234323294143143555189250523398857781465267648239699712420783741267459947048601808793313220178704732216068931355305141902401383768563027980270712956846176372334581344089615476593096646230523719834558700721086485494813511416619467354403207118122977230277219924283264482159025011335136411074447138229782605682306485699868275289438943316506888292738170818912178227695579689012759900177054166744603655442993332632313858479358603288021510835829461976792942260159287480225557686844142086188139162440967739628939681837077388688896337781221299502351122589146483728989922983453229327972433186681095559405376134467669314672598443637238886833769657141085123442166120758068494633274310342815086349687317754246331537567594923382297226189106987613305580487519959394368130877203035177179365877467611621862803836803955381446597557505234531029419297470804460414617958152396562105142135491841475060821492249049169090887510944694513235997809436831430837096470154884534892096839666858992882750109410039087394614881389517388826902330615810851772150127816718663830167491183505310699678482838164089707242585679387394806424017950781162652216453593539747438271926255656921607073380143061399245724042466580763383578184998935921816679231101283228965966774410528339656745922734848099987872288707102781638263907145743684764861024273902481822250998417639811034976101666061694614976285098780336494597167208879096645317742802435560484714703002054044484818893587800058400127704437275803121367328151183174166654172523055653443054629081955472612710525966690974052420187690079768479296543871747861624905110048327314476438489248925570251004107247711907684300381151045253085764718493463290078675589827354144271634385507787234758186273395321077015878010737551862426740858455447069450601395672647232932986367430198951960266935583777668493180135062679609443549911004807542694125136002002631297485745835395485708358424853379401765334537578006771651347388427468434305395881535514499407704242735475576020045787551285880079859695155854035873815535101070882957864638326114118170723870557728940799583238350539038124699392855054317895090634052977642957636178929815398530478863230247225360311926612834208561238996666394935393808413677248826445324638600074094740012146764278940527749413096135630624976721491129097015099681843076853364728220881826074306649860631329211605840290193659817931071566388862718534678461882973832142916367153328299414658855522332119027493761140750733436815402375095981240095079681626009382426543531257591619173058540892699238051348613291061643935504067409260485825832537441259273054220322942090173319663187036710572770717829448041378172941411834762140893582197380910633622220849711262466460961276637698347679873051440037821561557008738800277020285785384801557250065771526500379940031603680700401721827127478541201453283196618737252638030229358087481060464964276854813973589105852944001062080132280236503448853062959914909085029212943111718542575489024766126351699754456950413817517401200689048185039412042897492550285427527460075703600345172731643874562542022753948438830661990201018603991314507719670933782466497059750789646824541690618480863930386508121422241541038823249769926319693759738064370391399602896555672585664143696985845899160296651587664148152470351618243637477497795296179192543487972816847679103493174322785556473436797518018910077466331744648979279418684629942926989526755723079013156206598758747198928503873500928423014326818207239501926541607513357755919863814720162443982292199116198182926353427485785007877745328275633325702239943071230873089042255029145190970732563176001994700836485030274538171358213614049095246228973790474292616525501200981997817550791036317332883620689310525429980063279510496712098148425068473136731531129983492965195577535148178308348705728994976192499067793180527311053845040937776772208010273167371493480789709654310048818874347513287809286738010833567657481986398538983805467642497164768393593994354510928375201943912412462775564886882733764054221826343992989572675292523265777236009616696615956403405789612015329070044882148690022251922413671260218118461808231585092282492799663260635409430113978626598864197471800338348843203341492136119358383737609669033860521183661906866677258132246498150998990974709429141242429384357141115778547711284210739584996199203522153281194228818993208904102356461018165382024827955755747570615204135591520646816051700209189329497068396053108227715397584377183673418484704361985190197500745677776011872582414361254089139927802655245858185280952362440842075075685431038782664747915773933447781929637058371447570955573824524022302871162915132443749518544866298533849611105896214789966140574572306724769615821938188793414501778023764753332330921753974669287799990940724205304397235116613616387359575666457871817184005941177003037205170517816523726443557436461325435068610029131808655492276279193783626764894527652637153441614731337257273376390750513974842489537871836217039978964478179232313588806366208692293880607731380824397258569708887343835385422881027237015408049702489574003865097711155234715026928734266872943650092933193346389276726234778324431603511601923189619900930576269531202356693819866542176089102363291038827650436487237399152754204453650758477774444984604052392308798578431970195511226605234627475536218117333452150458811211241998216083606463576022251511891800268295417416793924217172343158866854867809860136521793977936286609940454511810368388642720791264243096773952612006344740441395940793517010208429401552585364085565787731701071372411047935385437902895123138375341313311718489445460547003500162912967010623298180963179799123278275571445917307865979275306359280052206194701349313187472232254293087469653436949611488513237609640464519666832076479193173107117977422655537114891091802137068483158262516092431805465782990875554987302918975136020091756926091421684118599184469178014677101460052848078250422547845447717232317118899308220573936187008822108330095804589215374036608051310933727730125058148712949968088132959063344860332617129931634411754897709707090109294365194223378852119300116491894305829577489130142398024913631375446237266801592914666101409001449404801179391505024515521046601573249081944084649472414518596055864958329669392193451793895738618134030432616587069175101285853286118226626329605397373345607261062172903397052487118590421334659328423074113378779982473034580673773786656200728311295206835591963144182891038984762084421370956809495324167673153300748239078815579106752082405221719987126231109531238398541097259997783683618577610153689487812207618899991356781293019962345707433665286067878230370453042100756158171694119390730559452522750522285446674666576480150325731842637781316093854219719037302788282936725389281341521174829532723621472218261762580585538826239824568920600385408213930267429217893658998446517057534253159662680456124573594565791718005742932054502564224379656363390712385398542690488445589670649802816872182884271241239032881982386697489890403971036318595267587041850334391290032938768792361832793070876176311992983297337379821998526803322798759202856377516898579191096851545906987040942834915515831258559188665657720237076502821981263408167781516969272472213765883917124126194680872178127705577910061273456490074760097095706861131753340657275768045039128136255112256758986878675403609255076717971312344585857693926644382931790586738149517230134429825046073487175533036223856700073507998364139174379895426714432929105006958329669328990618543878095145854597705623800343249070683003314310576849299971243954229792645775930162160124337849459716045814901521385363639787250940406436378661660388997012742637914178949051895461233248328465531594015806488319953604358450600383426036195532688184669340639669671047638941353162859138917364755907709124731959448659850894913493057737535740758534883848625180440321517871364189025839361461043532302174862424837970893654337481884709223384175852555863597906054809014140964501383982361862012289715835394528960372924585092063943596802050502527945883441834806400665166886961119373538031389672908788635633149740713285114862622837401443640991733039267375974052605696362106517334647249676667848522750739824014618519062689673915766983651606205038953921858540758917505066383347573548265680360206312069569044101555285721836875500993433134708365670042091616220990573774168104149596729336124232822137079841476155543717274604575774196638855095356864720036186419464370232339596954696748086995876999784593484405294609465744124589151987747811436080032054589856346278771438177519127831404131667115489991659138954200750147251344120099407304527127724226937441106622130227223022575154230918707592671257279245474936426018626249710665728039502474702716259469603071081899940108444971625646191807734310549455937398276225417083467451230654182447299029086051144005880057071791949997042461014682270510433822856874125560233131410985792243111694335710401975898290154834658038154004613924564037387850078658592786025480130169454231977787742255519525542274451578499056953918712521542606824038942287717891692051135571868450181339106452781957695327380939089993839682306995943803350781936493570726774840080030201888479360467229109084538227562337997862536373453340568570812907188836370668908888886032838392957490147194367820503452755399017072412306971275741299340511403392445054918926534881386324876897811714085562827725779386045776837779897038463238440993522578565369625173403634785059181821136056515478359027523033343296728500505061249455789906401819307425607790167349162614428903055247113672006486028111508508589583717446446260011774194202360462816965495933339604194314205309026838179673277695727390429697077378348593173153532637584927221075570487117063992671101588858495401581788023642285994586298067758344567853523559848428673351340771519484839320076040918274417734630261308412904115975071536283146690581093464730560554078835290188730030365052773812985947108260569317751638533754080979425114332253062368032014828172322634229099153097081851839725216580059223527065095261839797688365396620805309478161851645415947268381529503155113291553746438206735470416279027709542659869212108244017070672882322187365579934505175943803193347129361162704806577387190396359250976066619179929132272121968257622956021023513670660482073485322781381512711734386436288507234486482929281127929196193953224271975003317148943319684492518235018442225494167136826402685962841194819315933757896584604077039145657760534394554639843969524124574180268949550836732203487098899113950413454363114050159567701834829833121473227344891241066983970345916246605658014072661830096347980806586721196437215442519561129800692542077330101652662984871194582977220627896902694119126127451683187455033711977664874165299757131183947086506882380879803764136468924925590843489695315467295118578156405509387801781524595495489252386055884194130506734758419513382575804667003946202542774702970595253037557998221342224060768523901461190084996663339825824866271661406335439789482548346847532341079182566314164983169393752114819793735231932419628046334339402733218229945526308072606318686062447217303584110068961132273702447369041476196241353414178035187274464431881547306637801146266030979744564292335766117921312041411583672981027101043945487614026036456478307939515601990373822733366915645382148627415657670345141218271569063810311657429591389433203119900790533336848247449688733306447576288076822567081382556340387486002060818063268973439081239747366477364061933946475887762362464474631197355230345239971427931961705563881053706426042932270023855628527805763011252204324523895046813933198067635339051634985301525896155431445201422371274521447423287047444098114780588576693922493520652067005900532582514571835025268765622172020920721118626012199037945922217250402937730957091011676486583157843429821960001610787302092403262023150961155581964565576637391532580660192368121873811773663459854828185955729495732472261316559448959011591648648025938019715658115850113493074352223834231693537074801718064872658723102175681980715053255065828373877515375605645882782326017666997876363354185425353864133821926082285633251867963357985973504191351872577199200832795188410374031226573226033928236000367953832484618685926655477744816934453990279867550546248338585977310268869234924682311077197732767988184349864935618337909870144882694830644622394798880512432400556847890211533486854779553896311646796463435930890293207453475890908864569463490585026172471682494916509244620151461115426067964937476256070709295491906599998416511351145979462595970632205868386972004179911954426576509870374688848050609907831887158706074507221634956199498508970798419270450730568182900010935513468031142747333709322460564146227466412752709160438523183311102332170324972014043807571453116104543439659519781912063149509418535219199354273124143592397993967060177951835395591191146238098849993478557698278790921808312888221007401089833151756446511787859952175378121055331949935417801813412546041380734777249451887037729575480840116136018058677372903187226434102906144203777482932444071863672298234586489581347682901594953718759875498848259946342245652710076729738519582588974984799394520863391690162414417502205523712081630265358755283290704628356687120715768195091922115521564699659767721481945648331660395381219628504259536496564137866832497732336718520497724473136141785257778187495405432112993703396398456176250187928532397301895729073834817619507910327088781010528050256434602853679864154379027142690699245099809408932514723408730285043038192537261180420417095393300313149159089554240296185422543438122772178649931619460155551701286403755646191678260885331595885187341375207268968001429241996937018784754001476655221190756573542175567503020601793547871123477064454919794119727085436648592571736258626292500797959012531285960167124631002130999929840926978372838103478458251026812479527516867730083263098709026688157757282976290849456987750676364403737709513078907226948539265872692854744214310727702979452181300007885269297865677888593499631070347235983072279785158343120161018492283697353922397947988823729981849603637115613928806641235484232965013309653621927981367752737082318068064431991086428777133562736919703098306506516232446239347627429329927235791929499548695668076998594100873444289048351383818471972461488232321289669997517652492832555138795856651861034200051295254257080713198038175025727818268023994964057372617932999977947896968574082309501782569539692536848839026394427795209306972701941363229748792207573567266888272518413877964810595832383926296385822158381655741243498607053302647985769107308410263486819098501415233287626073823662180340922171320881067075482183350381266588153182293350802240295882096938778212995701693080967968507906967098765373331705772690063517125708831971264687229654326143897723849771744149572027902569986779448867498234120071041375309888091483557856024090785411771588143866668839677751757348081685996334328720008868110579970487822772249007795117639564989556663339029444055687878554769827566550602988635309398927072993610599436397733555309661441684462385920858950536413649193441504351559293401231765708384057116749204444288987240489118236985553991131269078999415895441576522953166115112907651375133364914445057483568519728649427953394791442590616584794336298007379949485025410208756749002498432524578737191373924133580332216464109977854199085647648874888542676659558990827078835353215777974173158622685704347513172533788461447663508339246677359703315598248098820620264894560270143578168649506509806342155361020515362449922724689013399302160236260508290297605789009199105169242514278611472574041934649166572449091743838961311568752755909973017900323131682308441633978073285764329041458683974946641525515793380722030183596283081810788280455669482213468506796052508463644835038364060354667939101292007847443488500483706163419702771994402205006188908955348560635302187916511186318967930868797776104810364501481767585040171250498767899451206116800107310394870778071028722442024455574126173209888930949218225984167158082632908453974789321423644036727705294671953343605165445152134229202216818902188550803971721935270497039714632125107366243750986031175824238154704159232934530895104725537708814837626348620629332430679432610661438697404668279003199718398326283299451953850264556658616674212221996242683265326871991328262493940926637473647196312469667481037516710471448537551117853974686063606987419571306737388161600143897315756607892665269732063178585308381389332352579057054290077069146892448765544836512629001078070723102540357802785330046534554363868737566060078604492520342968632489270521105591926670789636772351892786531150928372222128070154554160960446793243664284729428088466938513016639248288798894223889460988977233343083060089357864322196832208859078904194661496006965909449489950485862243612748902652502375132342888461477763415191357040514641182374207860153702458204360489312952227492995010567740382421068647409521797709835705245849216779113665222710353820305550024782460640457731845900951323399862276104161630890515674248666521700055289029289895731196939648153568658031016633997900419805467560245482651371999626951327251681585680174703535365578236835066227506667104951791486523808686997426394806736646888499869149117352509220203279704255702677981741097114288200137518895848515094363684303046718194223702903770828157798840060665281042858501424281061944559316623702028872693793531621710076311541372433295295731190804357521994545879073629431164804188342317516622347351101914554623064003895683170361800649628019500222760343757838262224104002273581344987744621199643388263532166755392537010890122483099749775387419213137030790165658469278791279360009121758099343819792064268717700946381457776280562297818444115911423851724059069170010597898339685695985567290675600361494264385533022867926731997292450049384915637420154158109141057644332011806649676149609975498462506836914841061135145714245287574307549149490730190615412510549489877060423504520862286262746826883859352452109944975416304105904259723962114024638552842907910729664535139367786741247665531195601290052398801242883350752733226884585888426294723525765392968766543276554162414502017391791437379615284579743414283734443111385265668835451764251749379179468583308830772003049214971929844371565702279626241293330430115749716158626846423597612947917403182835752441586161756762191356903748227554188565705350243687108116545705478696725155551866800251613892889029604756659802097250475012418158341269606847586475077933750081396253921190927944734764908215036677598050744416754454279301392976368800651411001595431318383768745265635461345731812482712352070481373921534144133132190290865714789549291741475893760613359266486427217328267295443684042553762866674192633528942797261580616368270975621320411031392354682004638149641857782058584380148187001072829207315472507611669099901845417437315507402868204884239533456989304411007101995884623067930766639190291227039081905146826436997407283743636055533130755619006309753828020790953890862654025857040691891279532994265530096011096457071269187094876536853293158681758852901468649244123840296861665623510370944647582495849719817058016430245911020179630358927866930216601259024645494498278332455931400936483224887825627686651229295205498847198069808320280135561361718925823194348050886842643799591400872164227722425556939606000038637063842829982213405807492591481683541169879807631944014564447970710223012270290616788401559383572156912897426981264282918897550498081081522209859339447153999938182640346085433481221556115969084729776330002015059622963374253700439367077039204281331031547348259437080268088765680314896814251979345291713415943773955937515320913688131517660530505680865019971534335331207863253778443119169294911613819058686396015044918747756565326034416338435559500431707599233682265779040210107645137276670667090388962967016175751317949675941989774197509851402864052237223275722508204006174338660229373525521913310040356531372656946976462239528373630024330609781125388001888872423169733259524165058450108737918081644726882905444586185157886631427707286248448251528538021759797957621753741306787962473329266875305120855270327443301630024644948585353832287894373119769023691543397329844851484383814385068877738478001031266743219278202424243906798484653375353341274838971548512341866920947195892363047719141912341909637629774722055213691407185171609400694511085356855352140241342971601013525150069682401792883918576924275508323850951668376659572207008464975070233900481103837635166036736092884232777545576659778791198136605847371591577872990856115074135779009676914080225595537269829685380541255597299917487644063549254011768396249657747777703173841294431881414724379695463762920452647378765246585259866032500922485860867605686201871256193356635055479979217396120807990262583595555948541263521156553386762646250109843917666764003529293748947956669186287310005026183013012875996934170845926893255677580307875022114759359602515998143910269305836662598554741747480659437262813922854176362216638183375070604216083287481371378067668569819285171560537078989648876470026378717134853106047223410971733530487800084665214302315504132502107677973008641522427706190951102116460517822225552597979524177399378941956081207283076839533447322415345408641150034109571624841411968954279595732961127117270689973322207972642627691893945233594424876310866742740253618035084612785468639085453923273815375942217652607071064466717487800577241057581961426316854218872814383129613663078275477198874439850384365654562649140702477100524495373926722420985294398640982675291738209375977746765789298283451719885262895531522955249282468068421595858252147896043845412912662154848707902841847112613417155111903214283514169127350155601237154864147939371830803387117736146512434704629671527446087215750423492749584430852202880066209719128373910315263237024476090769889253510560653897465754735101936677167816415210737247306103253315525848685431191523184556072993703766036561351489435100898787534680703184219356558002639600822896035801977371763835198472227489265794740924178421842143232407282001710739094434923565989218338276274481803282385596992264987619955305729573060432296058141498170827634115826038117928545916339142235065880421425219348991229609442605826558131743255480164455371976614877634223871071240841862717152472048133989644535867525910380112997067430137364541524155721479031909273149741157566851668350912746959805493405101373318054440101231454471141801793205122540219619230649514295597516621043691675866840444630370274770264501377192759569864764914727652005833373153253202361767597187334086983723990115955340010974365527415188369774267356156348259837386088631760421319131945433281120844913391440153087037282500586872134747043681641179881194681741831351016590360688605895569698300731484572102156661355596858393995563642665645961787236227940250647724185167692824957534700606756025153364667032247410302787496166276856787459148524459790784024131968518548961094353063256341636753660971861310971146421859588811053093572326458630714467404459670112452408272638692989614127912628435522913569109035631557876651469841972310077230462960618629407574258269028733065613924477625636117861784420103558178759041223772015235279043464832312349018541702380570046310132610211608181089691491022407568200672139580823766823989073693040347331895434412541662865276336706018995643582632057745606762562512250522665042840247697561505926449598415880431476872962010776782453451758801280943104687701400685671953753659120973347024610197771822496979731229658168921587258087951840222378054372158859421286982520257372531631518529405049296925302087542564982870806389825619085018701625224120323307083530707043672938823260295214681036317344620859044365789805865020911859467416884279388837211094407307877627646871428023917996359530174588892358913702265143416909313098462490762693039570407905842499800215648635786406840469126038946362563786133115436597991105114345205841711820788684927068701495523669946411631722652910502943382682174149006496461370890651747597177064542594912454548973667724216050231167481217991488330014958669088421943524039553304534309862533345489009173872007888389475009723479414036621619822696588577893038148762605035539159521184718099421664002481268572061444371690705733421451244373731840828034805032444863593086876277599556917050349397850656026336987534967480952197190595383618585482895624405172171020397469287973752613787726917289774864533334779256227341471356084644266357733568606326699981144246676742402407793612140492092149704996505325506228170121930399769882447793818626343939658381056453912784883731189332400872610306497154186353688654043523182278169415360124512801179751282842874851839881302455662738952047171304757221685468477310457179995167352257361613892397943061674429298437595817016614510868746884452168978050249061837517743005297821745474666879463905009667276058394348483251222893899557482447945171053658440708519685182783970828842954801231654034337874131329357662689760524267154862792030848963053891760146878620262459220023996713411548015232395992087557329862058558706073287422245615994429038989846851453351724797261953026862331008982567922240285720813553241203874702466931009332547936582900670501827753954954484164932377430397324675865042584966824106658548958798233910935058830427428098567887965272556769311961743373607434300333870623201692903832503912137337975602401376665289909770784840660352936077125323995944368346063402259369636008528083938265582954004485407227585470671580134365377326963156136392796183036567667713199924478360905134718756679703259930350296406575936530819073892891826097868956827986848405418986820378351632391508118796107656353764530635304281655040625107046376272882747795991134685070192595492584495526731399025117892312095331735684477481980483872829925862633768027897947007364222441007070373650357228918714746612511373771968767863646697916633590123907376220208587814313074785385828390680855338562115280090944305552291947077551244531757932291037836754903138726645124339784300375897998186477772403762547770305299207864666603664929206749194932649099185145041167273467097049941664621622387888912979828948512740861424699895010026751724672275269599408464856655502284889336808351551053168714721532599564758995732361274598523076182047840238526922298579195465873593649404212815720741422504327229842679596235042560812881482385542730667642853055960067424902382625531713257007769227936618939273942265690973795484312830179504450031080058058155662250536644905953983948278097160555402431281611016076368393078601921899223393405995888987763259495357014853881248076804155830562518645074317208271017702415277768068142336906605074340162369493325307109226359013477993075429535427290298729711850588303374253893063359633164555218857350998975951369050986578829431846381237483238910222448153341947940766078081301777361886982711009796455155706259118784836607388419221169079597126493213983719698459169218936757092857362301265954400686305084488166774061334260766566168842367204682227626340601677524364367140290927322343806488868644367844634134743313310636063775332706957813687123019611933352992627490007633660446182313642259033128371012181665846873545214003414340837472326688202065252063708483701155708795627710687999103847513477796014876594203332609505985422413575453117399462099558103397242387048619195435004758548835136303647472998678771282830743537894846179795911319583501923202460082556621133461171674454239457141361361795866359028140481530826846472119158105914879581696909236419606055964942667576083041886194681385737337979494783270536346790463493093003675772563852858320186577888212481124567578365543855752333849172734017968738878348788110061791927648583833167917309359773128117022892622104925415028503559990723809358803390913238829732759353962574116908503009170408324926199585361714465387295589183144542078503135099523292043292722296974407325067319765655080352463952019283274273648446608467154209012564444117347893824089018757779851016962172432948546014825572590606590205463737171377113341778561001399065278459925136531131209055066879769550455098408849501173180343333225856046504764531122676122221001297132452809504667401337248085497994992836194142538993683171489142132017067701575515695176957485578334661333972423056046080616582272124136373414411667643510543202141002712173375352104246602436559375815586373796324705947076251293975391531811145689028310976238188977065769194643866274960273539699440023543902520308209454339747064653616812096240138773129593972445192261514503504195186981823182161594131834344403646062529670724021955471410413614869613440218791909589430916868086080490133567095768298765787116688339777026061378025041987654675964640953741775476516420759578823829385260231964119568161151510998754622069130546168949631092133766181769302531557830757851542779795986151160713585374500918620780570289359716916630509830634834540736635118598963244065556287262294468377286890224531002951559219859372329557590798236335888252768309772814541446591723976211240638262581509537707746499462460792437827017347947455503793970591581482193147992135302245729740784572772278612760276285901623165061264293359911422480446178541430961656218538243388335774499698347544014818925220157696637913850466775847979940398428976458172551146301299776577126333095835382811117983203621067733662270467974600262044908207240000921470614425412324581808694032197242781287034691258910391783911379356971883471815022376374361621167663763934223786819190345528926091779652066945408352884606005438978036418487443215288713262003118533401029194961019532154924360752786061674919527322806817900244357057699274484832059101981713291436540462455347178273158557963045779940012416963927420835712130578282772753369806737559196808103750508230758355907709165596760312383627046348679809939950121028157751974753987103758995010862494413598585133307433563408931447969972668689510624809570628037701639553671852406740415089584084070851429144381959986494602835676051309074026090590848801199342905685172983471040757872950083378473656474944325357883694883105419866756342963828339845263254585877512368941582450264547552791617661121508595057008569408048006278778898551260234596483073452953397357926983760064319125066044027172918272365902586310071247901938976237166848194619411450237518299364897305555549607773762511969825167235204298004035453196612015194452569133994970397203910697719049884143008862590812522083861732711688343416508159694442802328619015662492036083542518454961984250691663684018949330019761041869876350757089424004627392987834602243673178115441145902219484647175488262639102000770361210604912019504839084322811848069013007052808957661255105507160129719536459820880633816737000310713945302211039562113142519848646812726310751249228894751747852447037119138348216724100091582539894540200722278888995595113074549995750133756920327998653383914096935713661107731826149630530688901540001664354518403342356479011923482127683112498794426427251105265068925113288538477215190896454221976747675429191191694499821149385599100800974442414982263926060193513240299405308508831748052208526398997871638732670003830729464545011209729079446982903413430997939663016921495364123294979991606844005359868937478203964675590638471582151243608090860974011835190948136148006646549860229255584743745492358044314996924815317853188401421058271435186737457484837708606300071947570891533513802473743316141047203446046887322261644056811208113505496331074615071916589641399542457427112988867476540269193262078216114382610144815003837883674196397972695091968890327183539204388393589187284404463638306972143714730999766492995556268089327784258451535291090616765910015751634556970243471603265635466479235558896160649907454982616147320083920377163546935990976885086006357891804568694023084108562962848440555143740239475139942772942100661152596362470450892377504507652101133512108272062844142693990649487471977087920756122054055743311694344902679334825443569414163849044782980833135661640102959862914054883511821578208163022595708622974356994140119748268708873233302296169427149570769833145300894034939917744133969659016921129824355182615852552720589198323801024320494838745806450390974440226525635873724399872210890305240026151585732040659447557785796906045089971715709198084154364809092548486408768308003078280195101539510603715921546678372441326869080044851620172408579887365148628764659531185827224841899706119640372953868592973495527850426073265535995285829429312521395736012631138813183154521960913832715189086359281979934994129308346640944909708455158217720707709471134791755432676473456704614232247022632899213235329914626389412394350337203716879738471953458431065817155659871928441830849258394194454088936541832922540178838838928497542891891025350604450042328488817713721673364779569031045570355612622949394931324855117918749991296626545253200027064436423574325164554063972011685120413561684357116410038229890749149191636935408676412442942979178559147727945794495271226109063353090144358756605903629438450703453959729263832084883915161622116339118975868988662283573507835412438808091284297966158011904722731721077733636118760891293751072097421014325224110245525132261700938069451969316454803121407248687721955055570557535092142785787757781687968226032173310240018448865436786395398154159806555426810163836712575428109333960863480397304626122846862997536178162836414423547609712927995630916448367724521293659656164445443163709165278454747605589866586107564889200126806047610947228922907534531479864577202238147225615539120968228123288676397813371974571272663724610605049869971066043997980604509815088062668814780420674901851921824154061151396969401976683942811889416668357011823117487193476107624266432068480257923172258921547700193110135604588120221411033617531072099455662820791668065444328139315319970322265397649226516020697917669469530194913726529035024444041767175548836590020314349261895539878779750015920617231077181075744366598159236676821124702765660004554341722160650156626080267339500010171702027048073911196515369860899140095897978096799688213267233484687023537301243761572563168176131730198050391413010833763006179101762845008799805355639459072313336016556505028184678407408864832999881630094428481970058180904515763986694360505014688502128613286932636775165553162849802297001629503430762371883686352197130897774852212218697266423478968752742599818667541616024856510463627612720020757701455934185879623869552428917488362956406335080352701205874078977703462432945482206754483764857307516593346074525190885148649207160717839821015347761227525680743219005943550668399411677010137118482486601481710913031401578414476257597298318894601574879229567534158308813289353881881153750622538058211731495619416069673769434730969023169119812786034467963460803516720836143662910281332470380888757511130158276255247453121253778602916355504584332048911999371353647561008315255633711921822747033197995268492520877078453451834030758361621799695262490750220635311872765684212647338009046899281956922405259312615118179960083995859377306737694570033578072040902118993911971259937995974196393429804570633621458573820839017110066567440308870476285165234311155372855456505366765824818573172981332428200529483700439683201554640856161391037171095620796439585210748341803445870415231557789062061333521554882401699044736454473622194714065976205000799947322492411545346267848161189021631263848915731219734737626583175653127693672902524917676764539978045761920128457619638829410098468657172549332554915899065434234478180561713742240931466774379143677425989622259821928091659124213572997313908560392987730854595045886534507013551713668051632234609505614741488546707087065023124952089771014039464712202010279661823095832523344354802707168349479974065837176470110572274017691806496029621313203546864810328238993631734783182827989534691538988784266389686817203630943762742889653494928742567145974307246161321185118492301834494388957400194800282619377013170614637178579013314850505160611915647148196097332964870944401348889113504729121746046097612787348231312391952301722077579018954790378857591172874846721048234632539857211241424060125100239766797959639793112298401289058565229313582636129808091216249994277980371687974746094068570933877482249020005248487912391598755224612785225242205220337067921773623534177862463513432691230128514398636137914278243342012149663821964408849255008909071677075336279041593532083130456444354290711733310697001258022292343328660631969825307502450212094147852232491144782318187635314454604028501887676065644767659015023522316071538238231547421326049369683561600356046034988672081851895260128090189609645970839302660307417234186277707266457873793271289584136333977267575860586737646019994655705815529694109938629309220372443299341139812259827794924286143782013408768796425301164139531972989282099700274410812329584497051476570630271201142714211168266251755185881631902902132632394911972634029784966259103493777539149279401208793337798138131909002346990729832191503564361950790878557967486191857697997016743754893591455167236479542056438585733818135724316652406339463905570584775291646695337416859326251444979867752452171274807898106617113560305581763261995943614618275857941426389213433200397224616292825245139887885657476616218481600620787845603706162572398565613145976329542939192540017846344671623810563483770401775496436286990120903599828716470868981816260936850491482390205106107852502490197338806948394471564405407388899478332982615485945762508274823263198060848512334742884857920567908303761496349575958203219916928569224665844673873732946696302545678256726354748595084539714612138772232433759232035968704702173210524129622305475886591660541682335231932333998452014699514114915818493388266601846194926705431919238056345082173261211544383266387547174924448122354694230718520694708221120662281720083237346631664091003087825408688127931356106929441213190582125692337203969636159983838729410518457396521251703983253617246982815102313449063301855381573989898908753793672995674906027994927700263848096885460076321735426555262103429132452017446255356085605446832450868974434725684186451503703022475375693139062127627365077555514556494038820768294482762871177359665867145570523936275794480746193685838896438332822871381150615010310111036813783883467594388512542795791721108409469014066457334524722683347128861507849743400545360767469791719561966997009387055991573712358043147078672182810926957422952958893045174603752064752034357394043660618786336509831970570592108951600394429709148056266763543558811884591883358563142774726807305758070898795061363542471656328783349154882044111139846843212232999082856104150027956400414926944538641859363639459819750210558789038298786807777023284930660107280049128929872959980729977826493262964131248404123892334830985148066412552933185482776470233688188871321152771600145739925246776284031688587219177262439822312302271343572203444364545959365777777269305786295940312403017528815833065196927740979023668756110246728204799707702786876087234260577960436409643832905128888577178739358708145662448488098897006063971209826180796009019605478752970863201541496042097695830183193443596287645729695977354233076689328334745040196301322327078229374255512294455300171566433026587934065886725001876508458544413527322966397770084003388684504007143913330354020983184287435249479009337043272209557824257021027254834528935642326657893303495296569624015791972690343707654401536265221372250725957019606342598896382048055824277266306435602105583296896060788159677544768685618262478013396007413986613328275279331115145591422463082074467328776242462230482586528579603398852400486509974592666839956480044629069881812161528750439717114404554287691808802590496326240772197815684298511507440074156695148185998324475010719581903305261202665018633000176688023801249946687956141532276376724924593481999037423595646026480570498306940905462349466550737023819247658083541491377823892488572893143810621944229142648921331777921518758178760986755603403878863525219427923042470329460377087536229520034134690778193519286963508666713244165106468884178660791403412715727144445179136515578853236100785543206645415152836314427258913029259696951403171604724666187297661930670408871073868007947085131553066522763641901375560292578065240451021763025541978362767686998318668812987012160704287823308655340094458395814246108851069280478311171864292794351867220614918502810063660639025361555650632998250672504302343916985926360394442650421962133654913560650000483828778339510294255776357724163099050237099170396789046713235354447347207317245175807262912848664950253381980568734636791029711961723199885948793538769947522390473835096403647028608594747283477346551417427222135465598505936357500162345180362649521204467398490191039626516455422153429341919439054230046917192139575901507221185717783787615480828819173756599496492658145182556505220643597284947315329979149753292000702067594581285069818500354616183018143872832324216651560944712536030161286619413612124436600281725267834868463856251809910339888916850088020848057335679443822189752285179430662931655533104475729729499206713005720658161158880831333362073208077821175763906936737314715766036150590359220970662353996340336219472613640094827596542393973806358280485719153430820154744620747358314218021466520795410904173081497453074475650292725380017661828926316732821265407077440691920405384055678693576076334589692834018168663151545555804966246820045002678348811786272799852028987123512732933942330146065865164049827225383220363814926693524920062906883200825501194510696905863401023933468927468076085349423125774574602831634635190337513706044937160323419366923445223062556313100780436250740543352387375370518712888277491934540539141343923447269075710955062766581413659879975496769031389872280005237293340755020996635526692512368412576421558812066364131483555665436003398527560231462510334156071223465818250542840698984828968794493824526595401386434909062664797480700160570807408332319567502442406663230658429155427911762963311790513174734635018197948481107161617719031872970004692225854539588013574570712366624768372212734266024424419068149685705603863477835195983041000574090586539964750973069988876016499861315427077032027451482003179439437086207868344827211903856838947904366501445624684133477451881657138566704165837186407600423571150307169097021107592810698829742075637700720786166652741630024043216317956677957920407938662539218088927856643512421213528651950040398087063399324203796868867584407611047270595826728446563560484866522399266337661416392105379925885778445673022158859339917600266077587494535785418391282356131592547428541129020721044521463381698069948838846489857290588626370219025566556833777160801127416037102052088498222959560875864139960082501840096142418769471104364445762007340484011035872012066229545051212433042845990881327910133464036320271973249722821304561619801313480161757867798094817373682271039358325279531609359792650387951761425280405929676574414063696852389429319565528916808007621934428074455022907612886063599829370199122536401196750766560002757915286698148678680294029479830735008574549478057842495609116887111587062437669555554655934484748685239148829445254558682710644791424954559859713642390461064368698788496559008711201701238367199199565009161292010768020318020899046930272273772628855976678074722531066812392358929073231634256366807975557141932213942744442560312907834153127160069419117697058975618760279349420998850975185327331142360949106672646353249700203295662327607609792665331046654976562272567849331836093276246215430638956248377411384216695188371857556581521959372978943905461469113113876618803564433849519885416470594326029044432953636409814187317595456640389663864053464139368302548539821031974165934574341573068906560900540419705914302990535932167261542313026891477682965381897010453036630574331001546750741325975808592472909736434925658316420468807919223307306422772861938408840012018930680935268180023222123013386562824426545351908620758688024555293965491073640518332549963062625457892062101847591463494290089147266039006866416853235862820152741692746470276942855097985513075165897949456541101192268040406832950531438422322510723519268671965203005295367855402055201570575665736223872260181741232105280841753999745784810614971930371148965678321156798381062637186355344055272699208212738446096658304108374734457930939352146912102025464386291066970797179994954208079960176320661269004489249110462372523838310407378730796413195237854986181967786950667928350820466989459711152980456929911230257364098707081393409449884525701807239459485127944904681451331617136984158805484280422072209319865658060904898763874052292546640882831740220716267245117152162953034988406786311485933536393403174400636695126240355339621253568466116315419582637385527599074802334505572227811580549545895338538568339192840327919697548126646889628008239667568144352976931291559652587534002927984308048419176213375341505074408094103320621941151453317782546366509067182257597536701931289534703667257146115000750594881461953286761259865049658809461222892760792080032804820795144442809509137666593358013848758055400523283996456534600267068975615533881701769417753170626388754601676592986608088116177218814402544567483456145499023658793446676559757395099945291236552364344840505796561200543353503091992587988572570126565604800024513938434051923452752041299011125047594853855121218600229579671369577802668023942940505848986246290632105733504582399391181046985511926175319076227300084543130503063763788323847105861643264624539315327845189918049228127740041745774062840301667023910389617489895114259917936412764693954681845185003560624352287252911590886506810465994275025041089243055804306720340182176925295165287348702577816747766846749612142863829247561969783670564781368080688744876081815548623553548344874052329414315606529659171337900307255605730299929041955283621054638652438688603970545052986226789794232088996025897094804080798970785292654240346534071960932020695417766524541153614871070240087197530838782633962779839116126296679831845504889859254729491333799691946397528325708943345827895546005340770418087571199548408170925525149541946187790865841426588021543860061382818997013604921917704600364612743137046986139568251719690420534465299182546524629049186382237907939292811964401898199706341926644849770834004691998841253914357264562004125733172763431888833685870659342259209919009218245806597454115643892704601712556385298262817012891063104831300020544445016476655618976417938542054206317313750143927280297462402752793687578600941373272724693526025843822815130932013703271873494428048599633347366849061494847995227265558305298687866552514375129558825530836376209264407858510897470501620549209992799020451902031960166385470413708812055390572145978175151504153779909481248562565745473643324133530439596295981326066751130993612651358871201186585624041613231266926978763471875238831070603854193606541095573624241398238967503546466556738659344342139814787252446365501156594424355833443069359474146684061222031686348763041321755633618342386173207073666484311432276181262086756212485360735332243860062886390359441796053386766433265102592897383952931380675670539414088574474402266534178077799333692055604933220137996550344692473675944380733883135031853391668644044195303511922869338982134801441852955465487278809846976453464088379985924696201413494544179753311815463625176905090604097422106717677963099954947313144184570992499062604607924228881943737791584285955099029683257725398872238822194092416324506737375480588302362571860302794772343730650761262842472232425020096572907919041062857005434703133451944712107623504581002813178874056585025723897345001728820137813743693951800557830685089110629248534494496940596384619765348841989556728807133015086503317815666381803800726530332179541150273386923913086045042618038039989345538025930211078695729240720473196947898139817750296809780687194203746494083877614302186999949659996574755044285681915663578235271093224145857551482390697487373006918273022401743019376540431517956762353413151763217861975058006596935319737597049424176872505045462482358695132766983892211752398885937402681045565799041826627080468733386758339104166027843017224928743856050878250606831690607454649218188102075687408982683846027326409579158611513255929405189897896721689934489161724695280046111686222347286961098230757878255502880826645648917710199161932025598061057979719637445958820975256947612756001295370008725456975874385006445756185747697711568215958856496958429471012300254928017998542475321339771401895471144597822751080393774580970657053558081133935966809585775038325929270961083094693989875176602694555632612872969065508503314701998972771076884590719542931714591057259803059965911213635595315589147126164420119127237741396105684843194412604958483868494862911359997917144649555181115228716799947334886703192406201203576342065052168452968437163877623895048453760384462818217585760995597847052716201606330535421110617636550896056956474619760271606620544344763905704780430375531224324695990093904734041501918497238079528352923415993792246559072014157033697324404603406515192302563023742847300497011994698575389018461547213066584494120426439665379446349258720810720828206426864676712000997585666876619484260917133253421040534686085854435997355753244188226200877608829653195077077070986913286007166435698829751648176428154521965841108771772772767283867728446950952242837264012809223525710518092467596110565402454805858532583567607091736028795955073354920885160919999956182382124148199742760595070762556572060745276190612999371481664581242840210231942362909825104494628169485332316131541068872789549829760863129154144408593277629108356238607035675776849653450205509615355440041488784129028889149066649509651335785279352274470182679470165724165112261241190694211105757945137288583283700373712736291855380298145595999006005395135888840614440740683100712224310543009436579673304247780210976825775103093711990730557060526699123939226555403393227711670089287683865642473599064710808505699956736712934216026796872208499230295676398557983300178852932021231838421912428515802948890009491116022859769180635419443961788127523620200396344123658631055541693731836333434135747046888225760566809899781851459640477930721349145954699698400205459470721984079282854865773763324153337856969675633182418392310511220744121379933480405935218742709844935782211102175066582609092886730346521146710680455331623050273870355948447451304151181423771480992324571424548582539567110873080010725089270199687337197078119527416057124295530159469136795792023094754520111245520117506109204016355418573830961146591036413147203984990458403487161308892606388717710077029279738195985003054320622730425031688150071527601728536766699340240741397059781818944958713082468781300884074523921629785680893725688397647550308737254631602058079433314050775817568964323154441259356383491476540878494280273354926601378989587349387227524577587810063499471950568989014003634608130730562350708320086222762327294418625065531071149155213403150582528898005931861198833528263461961807675289946777323558933796971223337003614796540733168663333767899731144142739151999954036602175504484654977920735603668040790708765971522392609726238052498078265764541517307592130006804631025858180048319368384486352672055881123406715900220779009038512652703214638065205563403199774541974790968594062721722766630125301366238628148502004321288369113723896608357612787111218374895346514152510779891145336017215056590051884135452092482096790559392509828659039972391802184123146749700851575965485322114559065266867600245639624168385213024358743140470820659311068551537671372746612548342983293331463809815087509451307103670709554249351286919107981392083035609441604910848718561891243919552355496909408200117419841466150264145368527807942077216326445495437893744730912428674004012577870515509199372215757988390683044107223180115034454417955225880224960972662048295724900975512059801486308554083123861108552615104925684148750924935818505288045683295096819674516678872332219374747230246913307376998067333241190618703691356040023349729306598768580253500270483491663649213194780893221366785762412429001639146920517669120690350482060651649446567918122247807691655161491717654877015402836405237467817365690663068621893302008559286681418992667476839587475666428825384122627979710758155641811981660340617161190942263334532365572438264107062690566108989005310490888823691949840719669281986145721603457712765840499467125991588996356413012668838269686848248400906418868735065009801898844165891832595414935293612960683043760436731771369457638947435445468958735589506126400310023540099422492193701238321037604995760256485128412167321187275587482314018454287713888912354805499289342380912182805115845982073479025532780565526487331825520020179119506743085327482057007986228582570381186783579447457433539588762804214493618001578355173564227326578697614606725972726781909362301018718213511656318228198358901956114629618086453628221468925397661300588034166250632321395412172130725763284741575748389902412159137194062673230290869239334797756680064116252736188871991643765441583739094118802169188155627460383394489459243248773726692669769506107909987053935088845245221790312157239560840896438891732481968444442807740478454106848892719101622817019159097727781255927139227789604661377645213594196017963323531670065945055838024827836742062417098759133998238602276297821737212540180602108576338632975128695830241262749308289522331291442018779373619173067898801171194566969139424330929658972725846207319535297908734236931134927517241314790960451022636949879400303553928283897824013459990924021030597642379138313713812247235721753523761222670293828888153042201961870558636091191816286336903945074313522246832037342233479858333105544275459049328928442434719702179676664370299116931326682184047561495566482655877982232544036775574136466438373939912463845478511442690942917084666961358732461331432110118041537947002193489275219511868118710892694166982618009149693491745402909648924948086890874150182138087219558245270547148486253549264086538654077596351864716615248775113938985047645552094898230337235437955182596681034516803210869980908272907693293515458434806924902930280706190253170727477575510860068995207749401236947433158994494658342217414708835740439910265456137889800207912869459756528756496130582074348115072989215961732733418150954364923310884519260719472361562765120343336477530269931865352798935440862865606034021805298531136172826174629984582503794268434870745414755884840565803731814113819577439791761322217795974260977388316793609598688799703653528121945782210554469210014080341739998193199997888984168174018560893693365964524929191587983743523076963397076139528732832464503988248881051963953075735473957583048732164297072940557825219328256707499229561135005958482449822086664414486515755321826317535092570792789973378897413404145418778385193918562954137799962721415805679036500691497266347102744038352251897628715006809321281205236992792950353039764169668718147168328855778655143003652667910619172305744293047511128202959474301124756750363705276468266377642310316720620447690627986386491434613052493353028933199561346966912726073855840016962123911136983998555539086466155345740297952217149239155718129262498206180536193070319468935356838362419919011180095590876870259714395271259353085972016084056784339758762375169874476541600414455851754511400998563971125246416006592393258724877927924604495055067159386671129114763693645993959496777830258680251149260528406358729809054735121993459765525103684812550936398865204631805049692055087071406886295147348769055336432157247210746576756901969202482446313964556296139139576705248217927625102222317466369002579595491465036632945708665439300331759780146754100582128544328895478453209172187487003426049722782610323621833965381059200511742694591749090809340559416161249591045355175940310543011683121758155276039750697976330474049043136154057783171609239990740396132433671902549852361903180094298130008963776779346123884027702967781319610517687093288862354723986114204052040180095158487320154153000428780716571116843215318825270264561005661280341286556673224253937049040768444068319515113341028760639965412177515908522757408005968194340705191538676412782364002905520170167322964459523446513910552514029264558654534189339051342083380918167156438074963569499171352058600530298723139025101681845932328073089560902181846873801757820194416970945205224798301023176532168569793753635799589221617949103363593321837551074982375667424441578479123229381977224108506504300796620785236107122265365475659479424719109209189762460744155803172664968675514070571261525821309999685686357848634301233876363215943417797183896266268078118436255959573699444618939721094177902930432306941149765925274567245672129638259008405864895862889567320340703198712324218713368269890972793319708604387409519988443632852286066327565192851370788896814997918107851379004875682762612299848633093350318214074537775995632427683583876108333006789036264917192676565335691168875093081221026548513634360020830045638389047226706224955486146794001052087737564307041472659274321593139866253933759058594504422682383747469404732723162635056250585544758627582107573682344254254480100890155867114136340380447167827844921771103379990603081596719715890072459954144873544545411932596386468249359643848425197620807945480904452340194486558614692239777143223926816331755051611010380936449297044047542774452730341231655644518258947495343514584624111525431694708922092383070934534085258010538459558704191520098218968782368479379702034984727692578911363819144887207978692906848425552530863494988971526530057186660552778727229913222486828141860119766971024604412034349635235684724108951189636813653160333353053875407363656432344776547041042311009747414934223612987488628379636071892447489906511162980548281871036325554609503208391094369807060172431397473095812038036832642340099416299418694799897251868573476637502963858252574718812766423708912903171249651011366323755340044729212853918945167441910570421838576665322570588015636068721827758572931224976266295332246621631782037900491722097600360745823373126079576242631192153774754652833703400129708207141513893909450905279833609614201726802193322729921827297425327045750531817960185742481984727165670435673576783919342858997162025416429348323888766406344301260426990565720531726885857695293356454952068506425640730303808545564684456322348484727880813385537284870025249199077282517399017407299553460527971164810601346886150321723911463908666652653717482853745370542066048347191349442315395640838236574665535073943318609348967182896923561425448626921365713282878276173311315247737530539137588624318868603285490464113412404081489809536724478540528503496003231754902886880308110540840542224601482910400949563810870977286164365801126369091263873395368050696112928133400074936491035666704572904666888394871857131585643963782393184224456553959743007020411729195263583165320015064720563482654995370130656371159402028780586463997032768862058832877267397296314091419172168191252686640866073085982945789063105177987053140687358141569556120309583152104773759026589764341299736387129750080459127465964241642816999611775688175461159157985400482684761561883943748557531770877447677848231924703938401621199549508139650358821610676608017169699276396870837580546026423379962337955000211613679446570438527215500267201054575115022709174768912649720186820556484863254633215981853806160652657685444127060194532881239851034695475214548892791875848553643657075229252043868666463481868698913226611633487978674869071257858563212472333096864918310136210441476965218887653966631532375822680529280178071179423332365230245476074733518956856200608738637955267826089040064620200728398082103070499817311326631261620985449999525272886250892891289776689914587084972482607150605669712060087483796202215243734759739578451014958935940695336849072076649044744176324975674667254687055752233632776209209584919160529236136017824549102713418874212081193248312890599028245340003792671770258340077326570242947083060115695032570138918569796904968289045977365292698855480514486346100366426763398419859355023350061018770279141574533678365359820201408464352278084326135292689257740275929200317068668840762284746127353126048412221114732072026815299535278978596391287150884018952321178726658940716078451979563582469980683593676054080770503632959993557938531323939262638210359707920097143022853222261504036867458777441772788939801645889877946016687965023022321821080911144822882616482575282569558683140305164825118815384316793307767614415785259301800799288090733924075403189620208957795689556335107390754713764034277348863974133775248366953817813096090583070688235687126693014726110587423334351473430990322147847685233442363022532982971563430315304293707573673784764050937163017134376260569619766708910673677593785411260671298878394117750133022284385058780475407083776332050337250740865492441891978791847914425734662668910144676490868384369257475709554462992704186130237239177923753511976627025834713324568442161386353059146277270947474078657966363768259896859473487106483017979745273108297838216668589645308402333695131966246628119401484001339734428908960627556721430024066338080728958283252114294572213653609409917536763502247134475398265441276518341332592204368650248122126175558782056020023540082292660002596761817943496400666063709652530510524222836546610486527907775435788514113615491401698867385913247669682772204707188936983241581571838738437580847345425656799504538656636722499436263365333741907009283514740017862438689393881637869228205625121437413668804810020272598147628505007928880602689336103340387468811711775964834500981920504943578487679108757446299704735353947997601150421632963961555394711775168307346179050689976954161842126949508584765998104129746136523748039904359246679937943152769154801424298610922673666671806050605264912018962132450173923984152402643349601316150320204408773716988232084094211881951458312677867448335452979965486422754251106725673097720945909148112634551758615876323225387450084297035825792468720417615348096897983478775163058605129807519218884656198683777724083363741967681740652295972364057014731520650851357424754539309473516990960064047739816522154117893493793997521444805283150446448867920929799682418225312761294091681605735293447430740409649170431683203644243480389452415817502220433161410393487743540946350554605555020660745134653897170826478290908131856725592411700262717081148303921007624125461340403688918719127977637101226561581053330793047368629428016326903100095436704555557948841894140027180471626822020011585967321351257154457449117163443251434680078285128443537399386736623346071050400375238899069577185918213887798782078102882639471354750175287737964590952445202280610578095653341811707511758073872866073136087755043871926101423934348461089243302618076711014067128184894759537571925363551681883080679290873546042632458597263773973556487501690015528065867890123591701776566896347899260497639948667925831505657630350402073836257702011959634049439224143068142426856593918983546686399295310356003139541469187159039328566637590318402271206747625841007309089987601977355990844021910419015831648677480815173600286885509976650491198524507276166305750834865124984458707963332610734790472611837991348970145545088389723352300154070903429491325815831761422118592479356330308963682192419471328677948832035416025461533341515456117544980457670990896644921273441603943883926018187652165265737048257270006441379539420425158349892603492141223117743024309788544645472459678336633335509870515234592903692212661849200622823440972114812950925440455409378831880757031767785339928943528286610113097705921632467325675614347559501818231142222509215547553729469756654035791640065143557072471164781150954827921324024541236062153799949575989583009892462126176236643260490406627982050698091188763728375694580714195895916948319537859556505191869377480320047332796157038739580670206557997793960201738202943161528963027323465936051239409157717514238470193614902112239831617805127888083666320517910204755445953511661892069308416455914573914137197871734450405062968533554130986014573195377027241989319313503403945338091845310635233927315537450641476467665667607163286859737226974260626396115448674914498221076220558767609800451294499687724281244238459358014504936271332798375987497284257186790571901657877489202352474513301350281728213959285208737820398954439704144837293910489226676519870271855511039226052308884166545054724098550110768970807995535888453377737708826404775919423391748370726863104925364199703608833859467433402484601113196298244140487017358467041075319949505524637697476258154176605086807144548419667627993947329604730779794141432326265373280905930377713383025066213512994330114763066499329822319290143485782148962159044622540010892325698248016259472316922847586097256787280006352803340285680660588936144865659774865570091585223779554079142060992719948650365979115578430705372243296069830660482233142719459735616244817383500391676168577805778267640922372301212252615147330639294891490474202195792487022501194038991766816667180970473946300141259741121626032084298634399127512338920750139480428538470554712206773492438843947466009777222156763864601909253938685649728683478872192523357304985417626242370627726003800556013585815522941594927183042866791454998664525339915730594391109564049853888695039937061188884813676325125376914283955295150391337237381901249391608720596607262810952993428723178339754244569787777234818343946596232712048910532949678818409451561465855334634981565185354525819864556545597174472810851494832580168205340660690507666798252207771148842641386009336922887264982666677391745853570885025303361634633267172628473938923010546052420468639222090886239665265617079108720084748649173516842026786310472196306862024013997427770056204858069619371220714935842859394631018775996378651803566643817553007858152143383707181362595881788381141182843121036015491254172533764251232153261500868391102140766552453948899745310422668788088742905277407959503675903136175564248459051413610198353180534555476869640041910551007370600963538194753149793159235578941511192810110722810081049269523774310070774175477283730971550632302410006413170567333222850821242519419898343138678979687756498657957725906124764906191402730583452873109703348756475225785589967208807293629296449847035928868133712709357645972469413829360403510421643750950167737998098803338626738476454352889179571914407338582622543223600867221410910070667490414620991236818504330837968281821669073175787254059582300112993704857813106354381919582960326238457269384701822415260341963374003822314078680134502031188099164928076780743395027960700140636600101561318302462133742667207400504220555225178122311707368560224911665167669599549387605390462659754418303088356671982545521768009842421663108503185419094651033544268583790701415794186598222771834113420035419103681689902990113258131657246879752457423103386074294455314848623057098881468765534536391652841811258376746676687670969954975398846208584772560029560949240856854534300632960827698351655119018776007166223929150101406592682976528541584424150732090804529864456767939438037173464055919842193029656248423042165213347205906962712977063190452278576254948993176622364338075091632144275501878739183787523472367260550678207721421745558499634908686747463567499164899923393240241337263699835845994739936892792998850160932210397878208545054855235019440259862325004632355513448751357236674035812584512588432638827347209263803823760227339564697072071851894275073389715140088688895829678115263905670564455168349980326172973263570276099305141437077308156034405744586149203337926173750093329381292332923870082132007482226189296830034145522770925546042365403154736076056688966540559910155926914725846033508988185474298700296424601647555535210282012963050611384654366114295331170334389470540410108630634315749734551100559452816814983273834878086071583628162355111593604842452195977313752017395074103540547584534631951694176608483638472347086849639540481975429321802909720333797775169056318578690510877242870220739944441045610003140485619646366015602859582128562334645192133795850351046591948912414768285834811996569966563413281452427228532385117274193685457324557278927656960995052107322288904248656780871871604816998166471148598202875658718645927538253655941183777126955531971815334674655967466960052828106901278976571094926253272681427528285247964707360133936835185400675759729396425866434956138290613593598875724218813127159980616336274982895450460884458027422508413929111176764863273997673334309660277267857682739602026267166784147279250023916021037406406487159610472086346519428151573346240209554321053471607757572800111815797929932729267744510493342676572008975763022919954003371559108782094989792579280118262098179288736379851673064429284360321064972061292857810327706818267059409217246181884386119348658249410115147632253971055247571334810141307037760824634489704473506673189544945166349451231093544010767380316922734391410408898698567471955857378597301092461548749094763742675441872443075697349393851695583348533827397473737159581756288792908714117762125961884180571300756355467744533343597802370310691033787308603468339668562548994934018438950871097206865571411536976432852706022710689547632813002096743586000833280542666129903173416301194702462825278534384442077241504356307301005070879011291581024518019212205149547234461586051189630847617246665767563457753492336359534084464406325406919288124578976997648096909299051467503581169038813306414158004972818373323307987241955989077682124056826518942145463063868831146791977403524600893709955227541428082261046457955372306782295130713491827797341929779489706084637621454138235320197400475477726752957487554251297406714795945593449566056327433260349601017302323919309396709620387072287502259436488023268895447637319520799576155421114958057400670975621771770245794502536311833285216293708897654913778537862714637443117933832056844010662810404024356370590596156945459617313335764568065103026098046205023854586040555401988894650196860014690988937969586586432861520977169567682597159369053669413707098475915501854725531484463413224922729048962163612224790537510898783309112473695258897943716201315681863592879708496126229175697873621811175278831087409279612502417676934098199775117154252247393374501908964201874374615249574219002374319308960383871692023373178353146149501333814974346778027236074941634515912604532178564719497778747283103728511064472969120395532194849229484910974568617398358993623005370493144451907591751147835864343788615079174845709762556424217228174489618826703371412463505129300528597953255417473534400584672931828476806259709777169152218802790473586305219307818025343773710504324728627342830841924624709909614805160584197708006995790861896279241635386432061540007272299070667262186607684050970423191011233135661206992758335318832313858677812825662156877972044483089201235852809326271701838440694038143215081502652311020693948782190514122950704201721990037914692068537574596716207914367356764425651311873098801575650946884999199255411389513458464965850333441746030815446528979959811925337602944812158057795413621771761698534338369263615333021895942004238714519264813568909804590958958960036127839326448655244077210906971211270780011291334148794124756175553986570228376463412553440789739951980575284570914077315872811216249150942701576599824088648713354670081176122643174514185212771225536310088120039180112033638987281265834644386617042307958003650145509207553509174401710666888941836300857729061912986072795218176392410306190191739874295245940399088822855023741309964747321509443786250456540311369649350533397052891732874737498614940734822286969555595604114383017747286791182410347076539832079877390034692049145707121620087491218079741987829146628148100468788435626941215796178732463509584314093073945879179106755338873904590984377377110971395289439545077840708833564736002780948385443196254902711398675136745517659707796366388475667680170107358760608143500742258894609041160481578251440404908540132934714314321117521372224973645703586063202749476389216450000655617494292507279618876496711478924709670982552469983161982671637849283993719861714086295782736415814995637193049053340463943052175063880745316210396636344234078324239720944310360861789526198362614115675139190448877258372169181622630914701333962794268824895243981204578532512390838243041354168460441674639886345478054290274426671711671010782283932242747472305757797060609419808555729964123941950437747891992202588642027602692778110069232953153655733729786157741151520041003735012189155067711399700009685681450528331009503057658678478726227496860067322469078571672666257348980959129456543199625043172525455090065205757497834268963141727838130442527453357814277193522244241657439721931971191733937219699102077846622269504735154846919214007636460185006069281634631646934838680486622659661929721926905481922501245386503686188558605201095072981195413625454614417155480283820736343303285423343930612926750685684602968859447795653754273322016870049717356667887671184143060392482058008663198728271079606264337702653282126884774760093879872037358723150815006042476707321618855674771126109847585412925012328014195618575259598327762425324374457150160256712880063518005290562314968059606679650879505045218335820783337813787100053383208711508871662697262200048119222477881982387361183433400642792455765023953583777383947014001714849979666533712400804813022944233732359271183302455847351485562680737573828630810866486202351924950157254823043229313390629632715769512050273427949873276474150347854568070704015129326599009357763441925420779091606000009622084969272114957076163107070989361857141939878727418615658687198131887556757182577815610395429560542976240396610257455357648290590321027226639990558815514362212251021688783848060434430905829732036583564296379729622850759803088478073984767948027750484875359285327853994161002425988080533038536934538605112005342033708791478359216945922852308853378083617649935592210181755237416549816680647016256425074246110943538577142726896135961954110098871266130181670160620936010250950536171190001365047114984952639898262413956308576713865415106081517429120765432443821001864635257507551732184344215476364504853990961907144980384180373004596140664077769784573636633093557500415383272164737973226014676092706917181586669255135136795640938323449682022492123713841332341719271866680770564991395624496982309096139699912698017177546358794557961972383183309769587449709922135940156403225513472629491834591425280290620267162816471826417702818863702779441294427408289647420742945807853077723251871969983877476396742802230039366159644501152053117724527637316888288074632502051862170778559307560953997407382308721174865611947052597730467720933779104993632525594430005451918730917857022552896645847493659349966666387253570267877440212862067505785418239387318484571972174148582265381970259211109187177556079524610466690511190202661330749631778456271399785096524886626510191152520375816725312896534716896710579854545079098761812938841004793950941636142944834037482827150884697482804959994040779650743172977903112022013614893969814598171113027605678725690520596448539975185320033955602243432279782391997344778887407626883171129839360015563779055457303011845890191455895615531785907449634435863148282221245476519363341697557075035501734219422875955297959380584379989053165883672691483895692259475361355473490742328353258698789343153526763391178966625729761028862999746220997377798447556394613361650566850408140222268220953193454445025585951497778981208932968229294882391305454338441048786146733936953998800217478080280040229639832164652742872905945471395218395025367976250519199241154342188115392906830682894262376732337173827280601734692812351002993570074007141733847910225155166477981400147877106143907237391711790900883642489120310131702232582321391041437431429396454609531787599979284172320027414955598947995423385024950229633945698801316009466235496862774860868061315467819168809497941721623137702532760136621852039975909934335800459923093518121061810693711143580160272125400395241867302150463618440376526355146140405702012489550014432908463612555236891211548420253486033439069923778731303534518237214745588403240436286322246103945555507124292843025406275262813989029303334081594279597914035788700748930546401025548420335399587553108537703784953368936647578111351410221634221134419228812892829153805676819571400986448640321394449349365614829938276126895222387156373849308008583842872215693103783531527132316541952966009209922543068210647362290627447038512966044417037478881339919680181619534623782636231129615523143681721043582887196016094039654382379178054634747930436242817710338159662117559615844605948989857226144350319225540211528986272650226334615872493643399630965388955509929225027095577484591454064603460774409421811361148032206667101623985168176671967322813001674865387529089624122663207003217469196241795106410214439263036179059809322088153873140073105210324659170072028429869693214605896374536009670381964839644204486021064847098636119300132594927141550514226350879060160887020172794223324875090486734536912407790009823450029000519278035626637069000541775327722385440672783652229522756055112033550060657921447113451938620211541091230993867549858992067936830769272370661500699089717650634591784495924967342999988924330142429410161204606675918021039652756512207425324987253598799147682191200326867300258729824342334779595453467209091830559912496421814361171207626833979531210507444463682875799393582248041293611938940704642750646192991726318594474978346951239194019555132382371339536489284357850471981877838287638794619767201517028048812683491483412956441368348577458722415190315828566231445582637424289931734237068683019129161493500445349071869820864433425467719839480818711360413663586896182331412947349378817149937894727611899218312168082151464419132638959009245865164002412589608331186586191077207810278564204681480629841041643426617488082934186740179061423906683745496319618340941884443445664440986200827815825009777921322586588803871038840480951673060688814078760702026780925009438967529654594865947972813796480427926694104797792648418553568962039309883622201492400297929500341660984076120890273260066518159404944312107806271629466242124067642892122712040363514775615737376291627379982923089989829662489114227165759562916057790661899072428148995750588892787060277389988266711083187869551628728890963749030361809365022730821849443093485063258096908004875116646350168930306686951941653082511775887575156419445986924449213268794016019151208572833525477673388937312764544681303813051837192916028835134754365799542068870063573435243656027383581010700737461571148835067583513916153221456415687400913284362829185485054647085088838770765982341026166119077545224859677452215075630166198070813845510002415913544109288943332598036084982364419900697681130980781778333984163532179862258881388444549691715204784434674415588404444255966568871355941898426917130406141790765289427998118003528158906457238666650811567031169179579227289602811346188475454177015588658568233503561346338143955940422983060655530875480161806156684437693595465129724660429765230324980583532548835330822067838929062094857886974106152720104796663589334401074484085808878785143894048736353813996001354979805877173226746241570184354647561944676997277006352487413898520825437574161311106596170147125868259047891912906249436729620421631206774408220934788220482649962514532459727787816666158576436359769343326963889885406353715027940286441718746053002526254683885552979099882491966340220696670069734899682697522297968174469982829331548196435863393138640315216626387902141157223233071575933396483252476024615655499705741680980618536094038412998254725372846328427487177152939931793792404539991271189851302038933780226093890274034867350520941338902679334746020077054379396315039227169140506899092108243684398958922386048368954240800820087566941699092419812653649771971229079998981898951064672093816479681463948805220270166404158328115176248226497838952000793368635429827326106744039313027443379788826018928629117998298427118163771816106156516421832012874666810989837340665792370368229321056243295849841378772831597633092133061633943738249789534595387657774659574167483928056370857978233733701019655918053585521119946582498194287423524541486676795868886071286729097849769216620175294361296224368033957992334061901717741712192319568368773308861007238755658993761167251014320241582946809461182061946495292338533491894620614813902614483782214112347852803027663729923531177622595453095135682684131743040372323171744331897498208754947375829988772313389461396342970905763301891284465246731820121973189456381600987771603913686468039064559808586273412823042897999116243215061854466701869347912776885427532856254755977109032211182637306054620646729662065705858123478196370248103945985640619307281045334947762877567751087537558626131482766360585584135747427721011819902790002956180713781037575976589439080660807977157123686341701842639851558299864383081077953959700288403695796762348737789717264315243861060120502916408393925010176238756143452556981455742160912059100936613669273555228851822903661511267933861015479921204467541536371144533865953510071148303172383247781326331099855002232795817806288136505713380341788162767508151392997182423647511223879868617287991171639965933716000338281253048256454196864214393741702952261161941101096409699874416931231049758343373090128630497876592244577468055703829954234884905747680675980471123385659625520469468993643924834215508971832037397104674258619489057133405262943785550433787397311596283817499876336631201436717126822449222624834738383765293215651743477962895600865093132555968213219061156837245233325340948666497402758632782869040236098420867188632880755403891334883745236063402384991398567122119011691980261244192621706783525221965765275298588093414627267004253421687822521573599234195334181762573043758433103332166702799894458084686253533554486275645595119140661257938398676621089167403816549937184215686585683774216400037100328550290657909667213379634284840714624640554573309427375367553632484431171733923760822594213543916522736892803433300410285583219931287270441118908983982198634427630204221888688398643686150154844917092417576915583962194350859731082424633378381501568672676471580350370821315954484486919132723326822806888958342424401782063874188770636555260060070050550892611862799488631085387557662100143249846663977327022565511222531519269038134871155170098908122230170438061839086251392103509722782993699427844289354962752461239529393207971214018585279018817917684337237941730214373441521987685969930167881902104590619237278811506480955708699887023898808505981370234550156911090596189423618592517948021732041713464184314912355115158861586655324565456115040148197798289227389912885892334816874448737977173279470205727614616094436186654982261442468299940458992678699963309725478711354442620813913522348746750555396329626590889204044740249072899533815681261376501439848343556774874450525273655792116022946149668781542310092627198346677263658125215844876069056271101054167928720362581038534709503897723089368374317294019108423918203815807559456575976122059089220421872087099669883022622571763450557514731502659881993641668277731828993246079860515187387110916853756447227929698460936918610151028081459714204614949660534337822987279319600745701010885686448705849338431389686655054577163373435980144036298325997108784187976949710556248957561395115081473356158912241150931615789865101655366070436127521681265142508928167797501458863969762851677624545186096413179925860255194093941367036044468626134498105716653928971255742959294895467559755936122922245262984101940749664597922291201018104412539915659329555627914053698088907526058745657646815254023557908338957690090731361251315808430352410272950534046863449061746368824461127570432803174890999011508889143205223882427367590709063898603609295251466303324951522485121303767956269369179514771970734725805734720694356240091740019521064206006320800335528008961574724522101228732536967745076092567692928138996306046952255155584668819334612222877646981213126757795583395608453945300151969136279394376992288381543314582264651571809730657992453646449587618203659629837277052452373734380777395021476989200690447947034181309078378725890503678863361595113364080835807438649797756319741619655275306478796271810416378798917814994234778110249457961544389617923672770964206518773232749331590676732935060710541813870047626915880817747504922524165909959497605730238883146456878444066753026063902426140219281043875842123521548134817241448729458898071426933751872586402722997341171329977810198581625929527901781550503927367251668720648052614571933690517372330621122147284875633307275162588879183613256983674717808622469590845796209929121763658311450495545195724617665815799423887424171932758695025898760915197250877996918562004750343239739232034163805683292591473603913408541905946438846390834867572969755108779614649840704929134521033300787175527627559659196607567416973502643724062830964259966272432580461501819994732831804270808592294969896325470550171705087042512292284548218724540423989845271753975007680376500185768567192349384367233309426836460550586851183382209335912467948137486349516659681604098888422260644953798168033786843932681754474898572324918055840815609568043686769658007317891633387549240000099761976070843165363040009162513220911877875246565380838197389853946792280439110667914769783835052605625217149353755629216009134359678933026432697097514680498046960675253801652487463279130884314074920787475303195102092350684156181654321019893416857720443366451133009303048221249392808230237086504748833369433686919797599801210202769629720307474626881038653209467969089892809995053827590498517106154786524652505563142342713323943767247020821800844452853752088639910429196695381888740280597040207986959815180075421020261258946676589567891927476191618442325742807476707036671029238188765975223923024470991952693582635168254410343383553798969994964198296949234182443356208749805726000833758686210760695812296335619754281364427521762189883650355025291029351963298917371308494338572056322363695650611936049938662366181062589302357931142388310343820984208345284998022401942366189203807539614297395728440142690230029447102248721855731209032516559851860541375520894261406756478635929844581447086220340426022402963335255536675184472574219144607549407960834028925041758052009530980814224427130684585758816576172923740690127063490961438248359749270819409452912139823755540116307479010372399265625333285417382685142849952158455799647159173103966087997982060364739588291937059401091211026851396523360435170231551084903530065729560598658432626121628297080255968477960742394374873971949737624218652462008551388028720333049932135978335494301866307154174279076958797598567138997476936391746746604482492074690447095666904249488537244443228551461354051189676510310267923788860410568311773097440291567862723675736978263494767915668338960752660082977178397046674798407044015376012555166151702314522663718584029780182569040012640752856593061101559893350092274023602746699005620787311136218474472160267741540641251246981016306741408133286391474024082977965070918958279213079875361050371449240673702936395383885442567948576497091008242915711521031315032677538256583403372669835955324948545088315794809296364627931630171071607464289240791048738018707449917874229917541208109106963048158753198171639615677389254413750453552910070277277919604623966982658948436984487359261367464568562944593989557938084809902335266495039730444465456364285536778391551549728452262773374776825302916925574760453796700513375435428748637366607882602761806389985838378999741495308477048870536593015767383376383457333108203676790305314861499864028773051190759531135519493277711584109539094506936768132885124051290766972779066771769199118651255600035757297687492995048519108245895074894165259366529005182314522426209137507820505671639782611649097420145150240877457946299262986666166902001729077268873276881810767908907305464470648688688701345368491027839360128537321938024975210080107130918047330380183754301286326244667059957988546077641158883623933160154963334408966367136511926338744098200082481627038542949742118602920707258155787009832140537997135364472930549199135914488427975364384495935636502428027865416066591715743330600706944504963915541469928915439527253963274063957189115080866019555264241933133894198682656550577445197014705679499133856302794659840887278220260001355758155231863100434162521485872845867272882735991627654331477149766196933045706309823986146458374901289753288555035723797589074417632195315210038160513482660325245732181009930246711135524560884114426831624418931926358703117558219695371395060916102565188234228934554672450635479674857276486652619864064586063748813580924610467805028539529566460204370255291135486103825926300189964782086402035551659125610233406518929832861961582125704458104129861244550846197064061562448317016502657170329847149183040707960074437724646843410276753351325068354409627541139453410959410276090619951894617887668375226847066158314862007147611449125366019719446225676897957485579714894500754207968285481466235930839395620683916500167583168943349595205489830348667846585005959115649253328520356992411808993307341814418179597027319159485365379071020137269447721309149466676328215284386676044025233150124785348175581566590095798745713833026942035505734985154520618553994937865719760858975000973403006728602248566155337912915274076043967117401884764134512412848874636418288127123660076202421445652436527405325127468831700185988494709017149953585674005482785476884490646822071613511509256961886338715673333021341631397449048850570213378085456079002266070561549679871457219164581808029180806007213958937235681589830142462403449324092372748644462055115609185629603268266877086177493502129883859662064217102382538706023219470143928076466976949053348662565700011794168993570428340143550477172477649006395975324254051858440257486525668468844073488580831611806525789436020437691187566570721186146549950885828753893498934515777763205755017446858861090032809041096826909795075816856684056680763996880808802470804278532690700217166060079514025870401119962865352250999436056703379546719010913379648736659738731120253513740670466717571492636057654015227873353152752891486255634678155046265726836573572647045946550274970888685277687419368219665191930685416659612800475629362763004883121574508310962493977567797941987736982116471033101604812569843742745040713096028563896745575798826544132857930385111503905280431597477759502553826490939717038844538561047212265790533433885741557499602227348391465401690092153641516101450347836183479351846984401116535512057085606603294292831410751784731799926830156555461987907708255074471001547274866475637284565223391018174431313072809281245569816286072836948385890760792890369630401911985040443288350949326427331735401153381503716632299617335759423308889731480656890037822423357269113096589618521160655688104928019825200150911418936982777399146136160709173760453050313452039936492994563949959984830812179226368548223799709437901757822415937443469173858388800703284923140250688669443920654338664186372393404361746219321321221108764878704754644520222897316190791487889866805035522668694657791794184943785081772509945337054121408801050368256251191794106850969411941689314591161197143247907519000954716172411919671456423086912560937472298069192653095464572039554900965752215088780714607949144426374442371737468875686211158884150906412475572102152308524703617106677948467602450837936319663317411922979627378067093812603070425136843296580389705099811314341874476248603563804311559164352574959477283787853784705002946571661803305561079484576643708688550334977364503378885294596606402651480892369647466305739932505829759559373895328484908434905356442057217651001865822630193900193974781465441347959767225627294483680768867254852305486047401453386427008380163779660435411698183108790156298131521622852213949867060591072481134463048163988894876004139643389951652881117854333691740836399100531832008130675933679359994704743483082747265627647392499883345154867623676962366945304303825767611060843681409664872273173078680463254569400716663211861000030884179019112250957634998055229043452270137829736786176570557176292713287236719692013085521628754903663748793730970121135198002384155434028145714178875036944175889149623437920377436925762210942185671137576719303958519946984030384701079989449849447060686563257448557745764692570057533465914038882704791556928764017285875027882131636709480181260522168866119230034550371522103496059130274687025033247790437618284415218423239159101208183923159084646897580320322524712195912000177671328216823789655355012606347678577259289542654094977362370634001826069061907257943461131226352717917650467355419235451902287767148786515221438295418508329184514329728135202044317645963960484306225378250753824468627554830067207748901405695564758956168007083719592903428815841069601028766425423462679441255274470725550276147184085271661053840396608027969306056381397965111355841297420207386613432058338511966424187305972816026103337481665531614094343691039234417358133188969838757113953072301477361676017501767946392352124846268662900570201189954115212691788080448045361304447754919919680552542189545796077413205370263977659728912556044939793502841799593183810811779022755416720468913592588072940162780519852830891883357496663345783463737363747280490229099426260256800046922516729686193669712145968583167651647529676831325928535874597605433584817246261178582294930784526350784269909624713703136112085214352703077430634432592824958108641017492176842980968619674577598167630890069468380853965041344912622662250558484991028135175182240439826056021941331329850511387700973276505305195161979535516364055806730789813644905304524077813807986753603247168604133992144124757987246074940670525709469011812287095252752302392004517443772237871123170185402505067706351229590663775776372337915466587891266680158614994495116733770414545303691691751504809896968445698543882854955781822858383601154976266164336377412074625443382691407114912129625822546715408405049973052619956346295817427010121737136936816068174525977422524718999868719034480993960249358243975571277205177802652689315313027403930916347292042598884537892487147002777784353987429390966370848317656974295117591192249387509058042203815654567206397202415936207121004966870522359342552266163697308709356156039485821576512378219569161560567280818065042720598981134944756273113646638697630216038486791599655765289453013069835071073455473701531865642249712300683978180324507061156106913203581960963835652632888213325561020876310932646212777927824882723865640525113847283387104387697702753763489700204684009971825693826394614838119354951992446364192306131777934841400915969751474015980258817387490437814340138831674652987386581209903893115901001877131961342637486427633913033905674301364800873551859097113044477389640240769077983474226057295400669493475603259571200194864104412487544766954609083085726570689081464084143368860105170681506874560593591264547488270982860889297022413549739417584260308106260964228290299160121140031887612619434571296773451702468311360241559001328971624200713558040299559636539793217580099635694246646522200921133909377991285323228232376209122310148277781063942682541499872055729876748757475260067406932715038674183795595828213957067729356325697251701003468146520075418905714456755930312915687061839016826012757161060100391448100046904214100716134508679109115799198870287175831037323756917239322834407929607455837870876876763963040667512015658699612742821273131463803677057634187816384645185330249959521578979261626102157391462426976806910967804216845559741976568121617330383658520964327057188014059949529836964132043710746783399827770831796682158575285919232281433510369592789613147517301925906423577066712842452933478921964763388466482005078918359119316568996583930568490524906247049001140555792967843711795640616128402513435364870756011983563061397460061910212185215874653274214198689468753807981769345634620230617787856320306847084489239095939619909022481588197343494033995394888480943990006991192261105487506853763303860373487794758404171955149129226488499203131060578130943311839553402460214125622717635178854294460883328223754566401018093783560954952303922243406503102698398844280769362350888645046051596002892331877475068851904745962469063492008503126474983868762336251656509840400611571452485890706192779695829815679990121247494350181351395759303429772676735082342396337140359300355525828210740484064255592593499339451695687202591012545725885566051697200272229918959296897153092052639793768611547453126192084006200483327281917466202053378320610740029534619973353008269257332092890935364485211118283207677893883250803822932795887754600459926535566332574208021587093463957573592689792461954112145258927096244497789967881170066013330075118270385583394275533472880570065159571435075236106189050686421350519511536577439101120176155498575092913784778905759926046938056136737568501680743940698466524514478653029904578703712281595904177664428347660417498136796469945803994171207128202071845220491870954281200065960458499885851388072360765889742307929520667050149532632902258791347236278644915881918717867113129041558759800240521062243427731308713973421986968373770733670092142008824487941719505968771694301184030915458323132044259385247191308665851837590386802016954494791011336045673411814031267023824006206061771105158264035176675497513208018470182536026694595065989004505208438581594726755021701606810939596363209112033174059181158262832221314476082746160347457858219926162424757429775888381846934855113997311759018700661669821973537859149425985888540354426266235693171920661006489363473661009456065017761624355894989494576558747368250257413275760702268678281666085778799456353795379878624857313232150489602654955847902499649620232754543498996138204557638522979033047110351168760720105885237430112681006411938708356363300457093633465203342200204219747297609527430432275429014220403955996878493981770257461133156067219624467601074066964481719267146501764231180554917380058695773463663858009565499499062852246486465014580409709106080825162724919193246312259750257468987664809837185426994883126766003293848617743695987544686833081163500743310585753211022398677272589411885456174160108695768775307279922838907486953285244121213523056324971511543056339261997722950802341208975824408050722000859504976002036147329442991012395668155984457620534117419714715854785656330520307898632347492534520993974264066794528129797640452994942159228313554482644624783466324761669716985658304394292173305699509391385310757662477683426743248532797003007557241914009017699319152201986739567838448338265034289370694972154121505682646801152310899556117646965743450216278920050499586016559095770734825900007252727075682449112797173325100967097341979327918896198725689676479424262829740150853658106055828524122012488601569881267087193785499920830687266474509803570331688574902812766898367742301826804384726550417219740448279155114097649692083315296916529808535531092239379072111639283792571945392703507096241286873726848656580090040449447248633538497104570440513310013746982159865236471428862120270084029611953062251147168800741933355384861462883972748785547461751472395005218616977708761191762568508682570141580765796893527019402211072196192240991377059004508030694113596076920035479205923806730445637036916547046421596876863807664987217171282544182681152079031907086266127263912349284086014984804285171498443685567354549726487084788718208559729608200315918116451224770064927762770045170103996926219180608763328600946304205176208851331144689497392512963111844797757527961589047497940269037159166931639563278160496323160882275975791059931792916557242912372053347485532247027451599585455892671896542711011535655097171645393395160488011958157874337088580571167554895291381375390284848312594518262501132633179032486795889930065642169998210893353134071117079582022807867138724676754503377700190729045259189655085541475368896698439228661721153529346460096643202903643004322907378728595554260116617044236647672788358943861266517457203982991302985861127919881558248339634482011957782788454932774815471265739758930376314822664999984209746786258639197288951402052746478863294864660053072621292574102073282250042384437453541180000725525811712502639232455063242281737511177080928515608882822584288891656446865878448084352151695715425535709695960366330603136694307866667564764991291415811853440513051866375326139149133410435014709116676329099908146432738579079208686061020688852825676575027291636151277968710278601254638188029843378180470385581126780932875894606471842881428059330687346606931120122953776687400810636306939477381534263465411227131761476325298725703265315890994794367612270169807507867374687521230357698090219476241196316781899027021861988233361443143592824686480731711824105324916265889230415037777412120544765559063803323391302327589274445021054467075101446121668748714717005918526007846598372146870522588220356569486443641391077755381269187418486177120292549685687910067803646156930654630254145944556641765486917809591823437892303798157701661572444217109818934617665424374683217051026741968010317589324475839017032396033063024233950312557954105030647362063155597312553229654900214032284253082594208017702681701536316845971176776332599511280909600516350351279668234188914601202728693820552132799592880016996913732129631917403166365624068030445422888610881128975828345378145148142624178198481242934934455208784052285420818195524843732902969837244462443742969621148961213675367156746463763726126117070133590654795503486016819373839820552685535152998128668975295252470340662456046353539479851855895934553162806261824590546533792741738943386384768696976917246065262427694192503881258925455429920686295300076226800165745116641308891186948439564587373397507833702130770064995150538568935016235527049703105156058966427311569385659753730323962747273951285282418256301589372413777533608427316520846473257479947396998107348408964923748446685760280442930042530589282280956592574560996915212863063365407883825517667038986831395140762297389219638840950203719534070204066598032855821943272980667757847953504619481327157301760535183337153045394623641334075319953068632914906292488110825230486917953970250163688890278058539716584178526899840048140544816760787173738321603169537092709114059168781160944228286013241049904125229289295257803416902822078668829508323872674755816099692146848893614743087448540284482987494251193412066689379771684407790591684172933202270302616318753791332294585648335894869200041241099795049893908071457208906602358531057092061751111362503370439765426233247267071393591769095897090842325790007101537428543481535263200267195410084374580266685489595908480703721930415457266822556703898982355957422765245089707723043617244382069668787463080756567057457564476455528184398410201698163105714848996004246135691121777744303108044219428220064197034495311395937639408456812299583808518531855282196781916615725330909279924441803452890337184420092659628922499270069729189529796541531437027153597320850677363702154684805010705269019873098145007466235955798639022941382844438704566523590655998043835404371675995125857353286596733640704671172529245070717562337842777275870183062793057611678618683683456377809517224183103985134371326024484253783033288961290326656236275742905782514121556193167600550332794774424093300163386871895940833864619304104449036682774518228424261428914796712768840122621303211558033474520205515949905049850826005840615372164675532518839001983108686575328208643280427037360210756931004812453864106359479482798493041660441437734081325711531154597759384260130811955825883811021509276949361806196396328119629273144687844953363353008502707893982314501412605498332234189406521504412459870240487143673014025050977016197995187044946182385409251966959864597293105971484925339822825295625923892203411816281268486769569900849515504819180197943289883113519618339597641811018078311467221039298322725958250319521890618888270465808955445710936141549818876035826136629362605084084462652483631426707994421410612973886001688102106692681258668715311710131439497336508302623238790692431137791272157992088074269654746115330985975841581890778845189940783230563178984866839922624433636496674217889954031847910929851614197634139605802599379502237158494213517639894223695503155463643292836724362215981324435426965377829026361031084099206187842881750724935783815714854567771716215856291967862317647819708762024276650026912954176403756885412382304956011136022808805751968559535788274431056215950989317558467084373813701983014554384257904838414590723454088960118441519360311816188239154115120498812639778479220876111506547887409491594672810743205053155488270762110049312055160640865155131479545488933431244767643363496588320410357691848461684105189388434115244110650055146114145422550235714439881591657043028102837898439294524165835488097358203840508878347360629924318383341447032466939354652144418825795197705913910485523914506468329047195247490782393033255344570279195380046257663129541691842393278525172592315412669067853727098479178153690464539353210229080824628391299455171796676943971401975724055531560965616776169356763294210579333549062003475144428917903344095176805007606817803863604447093886667699203685315036409419813012751005985867513832455204531611116949282453251041519517600639223969146427507948041691529233442931244766188773375010952683054241913806281477760234182679615318790072517534625588882298835034153510235694362325022036376860076976886419287134049753210192031170492299268563131637818044404888058112706685182471556222006181092933500759930333477961139901757277246504506836932548537903777745556160762230152221346664861113872845118497501236083053396770701018343533345877220463605123397110722989382556854032952770646624967217262041403679728086386551801620362224984459599783181878140134231417567698222479785691087739275683885173041613012987018989702304324034735193537694431804416584898326123212323746768228123012519040155447352582406296019675495956267221942832552338031469460930459382568358841193553721187656813400380627983574267829770711428209197443741225648875012106540106627300734852425124253711458502992673039258288172190471210635600558498080270283716184929158219291419007123192528977386289236934628562306948023119774138164116744974291239606208456677391375131222182333923780684564228729791460751816698090871433339175587581292849781423860042809722155011680472595576903039917567638783088689736449541018016364878543089286423557970801491952965552293255932039075042915328896499112269620321507641288627603309596746879188542934386413767697003799986626061718790138244447640027250790866044765682372081468344727282990130431284190262603572819883013014625091621242608101701907792474500038373686946953382935307274181974796922162994116837414511573743611535079759648913992591543729549057976337562670529798888235435700814388626886855221510142392342297863877448369623581100825481902351881516531612155471245931425485073817378983028288142306066748094770347465708971256382863777670851701154587156871397326616267625633059373836892191685726531672014165085123111714555332865638667209824528742504901137403829763358622884514926312433264032175769679294499274012932239862996325075613105358936369591912726079101859745874192657815138879734224681513135353188827013843875200196697008293623307465290326190685418234701832958196052409099992362336699067485364517808067591453816713210698004463226496898592371419500503042133880940678773761073561708635121214725672273548357435903233912648702280328286673847717170368413425789997387052862571426917828859977723281281395806194137030656205645124335938740877806946201448778701833017876774408353211705437079544991867147958588608114964815314755576276276220073370798586121036783245076293667604265694835172355909108870916655199273365063550331786077859576221222161424080240338030550979471820750003960779576980414762865123318959678430434107804012145039335662854750115901949553692030070669094987437600749704254466953394512473390177067191399799423329980390172588630729580125928438561481416992522848707555872834092792257656426012093972844428542811235488641250080223849530185034287261432481278385412438993274235388670295748239952057485247354832797778829880797360235118206024281940146794619046302883115559091945942968160820085956719565542624655962181149584786263953035073574436924234369238377632366795134718163634902237900386305414966650859406395756459782104771863563122649857967040782798457133929005631801429889326824313487646648350652825087838983819142979888207390060790292735867575062982572241103479107740621742396600532167983415453987160958964921916518873495492269703875842089984894699418637717075963094375850852219624897582607153385248558033505713213307810383088597912150038454016327130842736515880291699008428882915413514319151085157032003549637861131514714337327123055049143857344831316677312355795448132672568147640690581458678740804291032568843576540342329934709134828373826660226026472745633281739557351664449438255329817382435086106180808897612603398280218553142450584422501453377972583397731828467699418185670070910708081815030173358744028443100913401640253050437993606047385112827471778610072475131489984938933773048870271402590158936750731775995570496046968613050420526440826747951552886558404967749252065797352090451228277104059878897201593259686966748632216047770657410571117019683165022812240396664726018204016955027317401952281036268108305286887041175188670056264398602461179321437252006856618458183281456554997781900613014767097702083377116410999600501406251699974827737731143612312615716213196671614278933910910214516078396485348665746603739957353839580737100841282355495196538936428860041143686165141803360394972285745391335974468658402904548560343203676894618712046811903839658864064459752666250002593500139167742167412378427049943430602589794731538851585690272702187966529327864676015515796371339110722554689023581224847862860005636803944323286088597340489984071021750697791445583015523018958321594393502970724430074746401550833907120617670578391114708129995099176701613510091793865128895056441936460610724604715333507640397604026738458492546853469685267059284238874336918879349545798659874659683198569221358185104859710438183469237256704102318686926581697537321497916751747939959295073022090587697138156556658267914080909309124040070105037006151822499241045494733883216660321864779629652418096992469899909469206800135870999583680859077259728249371458604026798958696095429506117232826661009491294659189701906916847079505096467818650587954654693870562746239723176112370665072715492014745961523878445776837526904296970703077112466413703597039650371382071852579957820366670000749100962898450667197136261836784775418866276036679997264714487485278846520111929672581565893776955487904823058831656501843067019013069266306756166273199375666632731096399812679951376801182657032924431210083595312593842079419732456513118043964473759895851925783114749349961172293133808580656057147488822764512910094011318650954079613703747112010162729659311751350974758083277938671641035127868693458257117895792772048282884441554431394710414499931480251474651692354676164881324808442542438009088798542370333940421625806555214587748744225404746944005622808002979656111908556735709194363498537899678190962977943323579219609378953508977752493544668899922977825080677436761297513572267040153396838727772864031269554375589290688881484636238605576283490186449804704848513186839602825858340987223019458208889337696908308030130362814629309562026205247008639740818846198723797510929973238882473908908821013325211016079090415589911350855353929834589609495214544458432578158853876062764701296011461487297613789750128162154026853923866110397405194250980713821597828020789521410146022864952128348604595192272374246216593113086323182866901321153811191612745180477180030302919903531400301063928484202212657814699446255387511993813562152375468376150025200837607403677013759970177151246378545833640816747860718341578471081141477790957418184594021124706494072716684412360836590606975195624401895672166784459592086029249638529232763243615349908195365245123889092601920043372503902956398007493984052216879805848854151433802999805608633933070583540126342472070277671547353585777881441172019718506534071616652832916759142432111427185643421804783030985016622387213279275369824516949537845557280568820151763810756861312078357670459198145932617032192225465232155738586398538146912456557634695524817989837412052003503126696794862476862805662236934478010152261679970321400436194955025232127487746583597896443889870005092740198640745382981450247837851989713510857043037769720306063963095560594565358668725815150866981819473544263271465936960349744313224103423006523169042122721735949044888871992565765383939034558781917760780478650546711559894453282002250042840300021881594223269849142380022871827775953589886160051238799183957716734215526502736182216062754228859187211019688242288801111347598785258516206202531781468444527895696706351505619149958644920713849274817138376267868831653358230132195125967784412540330581628067876443093632477135016292838679019444964235395804577765087087302448205605167072994620809988851847253474853872993152003675100406424027045968102442012836317223891810781632029263715219584219482324929315127366518315434232360743007915455096100135452846522773842013872334439680289179015184495245297737049918204278104719724228056383855954450631519583344584667149456399870057710102491380895625876531181291206663248839561039522554747667680689082827816592158507252656184812665969181235612311971636073854501851864892601350863338962310167294621148358980971958884870760940717804701641877440332312006389011603232017809954722740375087465365142013980156898860054653657624327498663240563380010522535826668329571006542877520311153728901252478020418692873140515978068433776122667233220410003745576643018506226507379092917525507610973192506227118496888054831924876720254178192784941959992665783035355983905383775295948485456122225897399469732047549682048226550394824243379694899035547201903418576401022693741571841313361934724625330652520652690785520446066466176381171056609875066390307843498249744043066729012517836256266659096454682451322013725281945099138714044905107715016365126398970682645547704276712947804283996161497427581100741662692479652723266577199539318087443335298282508403320006654594250980491112804477780624492817162831411256032753794750023706217384497837319210059369742171457860326495351599436274256411615236912180067864808344135382807737234790443047814447834797748009264512434995935709423592374025255916542622955903983739529581407593965303232348557015252512180263733742715209668627248327605697416186662123273044539349055856820794801684277107786044739570218562057164656359730259937159047531922580653228790798371762131359447066578032843464809025105967488629144782650823715631575194118710068888198663729903619729038141695899882771976067552284985573480916516857122709757826658075216870782884930858512039088965617256848715256269548448104682370871537301662178618413949428442916811050004422874917208932002293048909932584852344704157656669374120652489480382957626284812005245812899165431648160624260810759479185929700099832951071888159893234242108297074004530074975933717043493641882800320062540216059258700804378340131904224431706433357736827816025974723838593073070377954877579141112633657210161346930662792787937320012236554882441170022210316469020465660771957063138688902819739118865372764276012990753449460730933587193518724738596909349553535851650536063044283335395996588184132740376792966256477019693714949236942978597146393966439658798377348598564628778207044544488041598266384599873693845799657784954759627341743069556218113063086786262229756175402202960654102604518886636645208412113914295856188304332672267467657588488064404434257427699110284004964870765024371018545811821525329331866831117304471568998209723003280734553643470906045556104801431493235931211430302262279837123829075618420883854450388579532349901018101806278328032400071853357457636523771480994634110370502572937863924280434581144040354321161244105285553209734218819386601344715811512013663927792945755381189416435578919286836967252201696065075466752380006713213488020700377065815175400307811082376271773148724510540352449833946976181272909145093565809600968628085351980978702730958594052521641481201949931379635129631115981104253731673303584120645012180416721287188032249520271945349611185687488450469359146847575001708713857647852717919026071645592419974454866067456335130370770153260619431636346452199073433304186380927407518769624651538249189053048914276687996120863669912570108083577644506995868986345140982454112358889479441834612455587248577684833837424044511994317831324767692809575604783913910144907368974454836543013828898253093948196366518059335762373370855090747722160623895729965711374175671827635480062726951132890639270429026443884473764380175051529783100877605169990810361303293214863134642135447587739910671315139659643799378552329751526697129599004518363983827077792792134957487137640618448048000731857983640152348785181503501240229868517852413777425774062383780227659903118230891500140640575855984348897301252263336112201686474701309815021890702234024073234176479015200548895702042328477786463491873635392171883224523449257409107110613093578704762816076154211654910607622766340294134762652344238760193323208345868126847003432126841676991198763181772424519106036560083048766256550635405961714429961066138347428090654115931925851172324388105586863963450015901644444819873145835553009295793882232000392429926939705072859888628525653027161895478317633992387549684154305213413640965554182179184930722758606168440046259306400925142790698908851797047156819381286056176822737220287929271917983653832721924185467115336899156164926133847038489173008655971437161332864221930459623755671066747472850952066563996494978889842395537051817199293889422794102771389708671160123650176418747409701021043124940941431317147680044801671100017505520468382788600358501021830537799090271767193890602445384012275076690735287647738208426153051643089703024211680043561634474850360215647979867014941720965067390521839475720635329046144984114378774799236933927041630269582317654401472644476105943596101595762959755776199753818066893631416968609408470661633244809717195703944254156617212761845262053656926960404659518060722943511758286792768536304996408564469697439355074315671261431914296216283609592494461791492708961198723329619995623410335487164395511664200583988294419955990921656390395249523981301989087219252438709161867737404130523256913319592657117045002828539726006230218248544668481819854805172038461534569489169414333635474423776180263671284354449522978157313221309873548323774130643195434067795412243469128339717710328742382215068192137790031079191148100049756545917200059845767205930593344911313585971116429070363991466657363892308772496754886106272454155140031599721581169614721088816487591332700159699409135112006966257714446874918857399192764424291077476602959899771634021566405541156323098901642250083607647786715894358820503587204718135522936319006396073717978417127300720473533902959574244635476557494071781757294351277835926217303153358560727494368039406936148684391501616729885464602375157435181874878693380533003765417945669840906798572989360918556005822484928486380694959962106703938822739516900651620301481608936252076426847694662882354446669691075045267454789950252577989637396430417220752000607184497635244372527368738893178677601207095662896463860344077948505195036961814394994344791833055023673700881653430872146283536983951559778252669952812287137554937656432038399948446495349764498468208358107291202747455210596029757839028131175050006156965679432831356759857889141605176242735658900098836958066448369679618203114742296341774256760938374074821422288949086052762040038209085677565584646102935688021746885636514248065175063107995126657136355973869162757130970136840148462288423080031778092430976771600952594946586024430030029228304828192758756320064810010775074943235477838606974677584903559353386840046973288107957658038180559497445103623570515307362910253103958721254332297846664167828981678098013177861894371594602116075131243314545557790326825655475354671860496912792536599122138884924218059978453894178567853776179654341199121139791281143202877916994870971607247973223917469938002708107885952012183951363360806440223065186239215084907049127877203678761289020499450421249337587553052944396957841357758013016174194965223252378574485961451262247331548261849121281569140484948345642537104163027198630080174266009484190469783212306220081571839611688486867350216020905987009002094766384914240047970345053564606523151536342715439100365875388082576688901250020040575217979656480275029607510850456574524114405473546140406406107708843266755396711763789338715966242787273080347762352782749719701995920395874899172839211695615721666761325748236028753531957600800248528530776895797021547983552329519324082047484701931804669597588118723244260999228904651969124648523196342837894163891612983271193963582188907326304745448266249637835817214322288474392922672879806513773106880645283296479164957121081317754022617501662168740883001271602828063629238843121111470930615034677710087345893399552645564269895107781886189307775435344646281631638849297444486918921642642941111196323261944261865169722324264117022196864207413873088106203749425362543853767893900798798783967381087920394741627014012674322045969342187465493270647914258007171901619053406518536355686134361676902116280169583192004506858207578614984382973436382676370695020150208379214816483545338902423715633085440105130638501289527590322040119889635059772394243983086778556704816273350480949259667109726574535675210314628632718645321417417242712842586488854125503548996894073710969382533782864159010591253953479328214762796391770931916708207401899542431448001188979816018461826371088449052331709745719760808268164725920017209731758610629581421387186176