PREME/G/MU302111
0129381988392372838167455247738310899175089750466150678337410995839630855028716421291493130997033023487117631692471572510713501712365603896622502878225208238757205385934263400010345949715068110611699547818341411312650555127518056650467954633789891604088673943319350725442402427380295897313457601989988495456269719843231563716121778928144559223417712732960431089301765282711357185019500558218268608160733568977846309388760314120027693872199305852428419670939331059021022644594285604946880994049633332536214660996244805308505703758882995504834208876957998644970167942535044115526634734438169136450012162632921496426438254567755016594257528496469047855105670202899021931163802255039274054079702213055084787546725718446771738130086398308563128131773724202997423070250714599659095935474079613818495780112178172839425745429019445768641120237987010463493974412908464993379957787146452431210196599995948339132757597144563478759299219872494703150158598829192003650459485377231011914028803455577920746516412214791832338311606508828982652253482582203115901107360346895484512852174745849567113996004664783058832979960028861891360526039300100263434693074798035135120529948575928755763693472412767034836424494012885901295581242800031949165821236273269497816207313474103704741595828723011784065223515852852842534591628609542052623008942081878646675930822943586921883083759979250680263260932411455032331305932284613995983773338764417945367095365497949595154252485658407603103123677800432891025961180941413397680572213714921887654990532231519979730105937604078184203621463660773898259335516715649699874871080151273375059730564804363965781404780384505520658893522959713091162011813696266696931988449923701665013317753331800588002420551268982642834944255650449630587201453487672984685162889465643328046288185698631369117358137577862871872507320416740053163278725595682143595255207800334974984588623515659936946693548210381825786403291394791727139261965245628137907504541116980047470685102876394833545166315001829653191120445048091405587802040013696656118572358863240945156954761257662581947351026936152361719174686834265300927433790856154530786315778991749883032784266120698952363077201522901442901865858660284523180812607007539595307115044604898297970987090863282476459906175414557414617065452149061382196121895763364478167132154709292822985941137177480238001038588187838535794637508610951228735229222146767547673412716578344851974469913776044172634756513275937745473576995022557383549294786342437080290222668876825951921048075152534616905524506739064828033296290705789620457028207189002229631278566501563946396833528217256849349887851062338463137575842349030393277252923954126368670587261228831451706572143672279890974792886036960237657103004914508125459403725637077454344817122475548845361099989118161564911679820158356501116503430064697701701478080217384038913269453911684045777470156963397710926913572423499952234387614919610679437828133762876878706086859918093752789917101720947940229026215430805577745252413517941071019537416761978277468043282844828245182403970703519540075698835166809604144841528395681275459740661848418039092410525527475816873908637557504070217824296522783392823732262081839256002217716864151615954222260143060745157389697975391976094344017507185269901109101239137137470609717086408485315905934032737589744861858419439908889343766637409419417029256831706574999901935418306170907655891570609523548110522281164154951110696872062879211792282883731014851421046778675170404449134038174701673284673384568418745068571321884642350945145038924158380260302165892446373370949732518374757562416310805653831939774317901858799811671663202139109575359690895379599956174985225177820265064700428830882585099806494946124870600426477068785498550593969696990787900346525762682648839631513213685007787302558414648800673197343667606598934552734740719459844086941825417802660824581878678051169899182005013299198756250743222027235179540005530800796687800503612218235909885481354026013270134395587220783378266998206812295261409921429482263818134049865590896505217061903191847814146046091030299792766215542275192681865720481978738216539163560148248114481855284672359542875485738033216841077430669389012085629422926850223135946636551914674273229343557027012943843115831535384055838191454039968787392452797177810249160725659018178819401662914308862984553602415435306181896188048975170972970095407363819530304597429284071713819491904976722643816219285574724669671042490600891443038891700246838518884162248316184371033808659873384517163293210412924976825401069290367390601864587615488818392701188047860383676225016725227236108550720571991456516206375502060433838444409063001406848830233763795111974297305383601724291226403430549219855975249823283734882623314522558169214106314150627753564521774995462894849370500833553616156056329543515320549267473722821320835653638349680591874521982552114596076962941720006930289654969404663262904426058395965190549170298499219709485080250350395457542216068313749228930704061485175836801638422826771637629230460292300533631818578553263350900331416700586168447257862774479742747914079161664488657926615101645035641266589932161247487408357133673707061132685303801393457255047352339166964093738883177817817057196182938165397843635556504088934515232157226400410824233340414950069202208811987489449464971277087771571457438217942648227273054156208897310337512579482589751965246048929321982402090272318319165448169718635469285861455325424769282712026930874269679644915802453040645283964112615931764780004727586739780145284262686307602844411915514659469208992489798177026278065547066666986865875658273324419744916612767979975999170003179963250866562961188488111874773109007073439464770927951405173261716518019951611703917738153909785846789315817922134508261699831326163834986549858582637919037511410365636166890178924891799012700389971495130638834780549810399048338885150328917546753173876167763540421534738280632909380473738009375607603544898760718163981625685620461019518118848414757822970865211728545195271341674914422492866226651881283983767978741619177362419070517257993926151298518269536848660128762260581465623732096574206971630696635437255809551486405700437345749588448343061025865638170761687802852328355572726528947346830098699770900786401892499592976956671430713273615200479579981123145249863397565221446473441655700279872644276333447572154370555326058339880162254569697537658689033736999307594645516660108462401310146219385055056005503286395145096302933587598858207552533792157237791583849926226556488203940143841767331426854247161048041179651896726947942996258974647063606380896531687373790395277651269856210078095493602594450762520305024307213792773520025725600086893502714641827656729805831341241857963499019800397571735286556645695888056714536610381271635758173154407979010123458966974881677141282905634863517680037395894512378765389261819049142124381473600933953222392772805174031703675890745563760124666737328955317968861276304401833264802413118476063691883509424007503106336848254356376296373300119464420318406321093312626726425800132351537980918760780295121630347985508367116501985202812922457177014252405978430327975387801787855058807781955371419998051372336272716283118733640713207246356278870339927339196547563105206236093085337189603007925181402408044570774480562224612110279728698582680362176842604315086182132002237087516441494377702936424143900741179094002051705198816509396138805114301609065177814104617093130767267993018306861601048419404941546872468922140707059792506598794550006744471508902930833706335142163866523380344181015730911717737275372507419031866023832813820821876307832339785749851095665260106978417495747898565689798428120584486472698052371941074802382612926627628871532296981318881519150141334608017060068588551325801906604645799823167857110225702373338200038100785132861843239726353954477628654712306309544520223460274676769675079312366406166135675703349702165377124886656641440745804511638921802628236636960879295969873366387624763505437633290530379823052540195245311463642461827983559034848945880160647722759597096543520719287440392171128672361618636587160675242493839981387456292920869326231479874310932972929859212367045017978107004617882037254293335637186865241303468327817146032081904799356288011510926783780859048111370619353705194639777913753372829908092457976169464547008390593438997641506769668079326136096708454557615378105533968898054512918956717685779072604095833180746193606108255667474444026125600538541111115350386875846319775752148778773357458049396094286528973027764657781371777923745921875372406955371664853664489223743946101915961593870302869464417642422598019058415845574750866449294346138932686046496925939252350293236607305253186344711711743534456193169423294232552258027333322976980089625852468726825113865086519924751154426270389821222659720897890430389939741046012990534403453041606160797051733870609790912510469584722839693941686723038015869758615333644776369915501008412973257831953902224304443106322212605250425898454850884736280565926290919834021398434993285683868060033918797579448420414540592965812244122605819508668229662281438732859620397436810609141482005765357471579721269064611742249860206790425808609374030433054245669813219397815945493444545338262322823987213851537711125612123335049843775362754488638794414464917343903104328315173244765708082366954180657061916281659397129068356375439083775098745424391371281015812713974625477175109677653041357422096087619640213832860232927142114279655936880691467128154275952904312323686358113729277248363414344013313764323617463791225321467035265839149033161435427036693209463375248617149699189514557890801008637034885474725938813014825493298634175267439545918570291588338009777100287647964015672968303215518884848869897657552533697520843772068136181519674960383893082688570691959087011939130613422913353542387269315449710691712553722355513448199070126785060276125845220774319246618696476677479482869881894064935441680029668004175389133463190632933415298944667422766749744534779052705328502162280787925595029777379244679031941530045014605508448479209269553043331106776957724039877786556220484666026400533618106117668125831235567167338712960797758420004599829508943660005137169398383014064390499661782411409460428178322749988616071146300826422818100404989596947071814584826578795405413250425752687445875231661792273474323363089339945432379246452294360227708582907795147172039385073524782836156622183407000861637332718928776905692856662200864272784448150490370599975597547920142143326239111543048476954082631022128058713493609690404061483124638967069466430406618998954334257541977599707073697593096244303790794342105333877603141102655551173445284582509082127589014117345766375100361177819905828486496550811591935781352090369653780908164035843160283099562014910578448992535668423442343036500476374496369126677951038741765128840358170430220149772038609291143481209971550017342942956537442973245085133434749322854458134175868362413310659081569984852097402046909424907942281060770217682200068225852314027605232110054996068487670279136975764541689445160991902222288523430045365462835221228549456514229488855185554434030428780139460096606056178930615103476112470260018059991380028820070569430404336398164231455119695804597324831701732554533374180197829179767287640066149341354500534816988325746853675953760017093171834197587717626995777590446595510559066820876017862607682081187415455087758213784883812352746108421296769649697431080778963568746472871132932373679308662028859122633464380428279417126300833866144179502590266184824972617648593468491802059318814472075913293770716272376237031379251296688948709318157365962453970425509536891265088625626472711830861542240556474730336248792700582003230689130071188846136402770542534443769245267017337383966761847150609842762250956390834533534790399050183614814949323179481846156784484108448926640613799766205989411995676201188114178543195516726118723231103227976939699793122518986627120555414682207421074139133471001623633565502598123009370458088325509090876803842367023931579208347210167440618857329153031594466550595225557971247962025088460485473187536442461929841040200926652227110452274635705487957630019783974754535731436682631325608263625358822979775887575019212472810607672359958160950746633601191515969296756360215945501371674090237378037484579534133231690127404687767154207348033234386271931707235571462325648209229452499639797731255386969605146183842834083385295007107418272598925913291824098254886902774165956473460172798609702369581274630124881163662219911931063385437727885348703475133250141399593960115205261827289867317466181914851867058651557350509629542862490825545280336719416531738686663202536095127283402306235323664317329420165190732194056995017084981718625854557554539144749010651922264757845336241834866092561741750189986529255065833663047842986315848225928630934438153588210434764512203407665009072600426830659773003433574819743216405166679629282473332841986739557779785058398863542435253590339574143288879104397084439941510022923780946214953176498077011678371839775416450080101446922470324841262808723139388861373405648490481362900235696876164614067417966323269738839318988665881619521682050176157968489615569554230936694749381116444702506938083359079107091672892931647260884329534511640301455818550192436063105191953458943693583355654328986248497660145194222226258721266644571852088674885628064046078295398617939889976293887855921518866509971532243707512075795861251447875397539475844956226019859251990772220155642358643074008924976672158804679457600293964339725353899724624250951928113669292440567433805095709755395468515615373539919758535598583122476274321727608530404582830844711662384573108201421880863194246198235691280896354924805662951478842365051673826997758851405746415936671463769639249968778028213303750799456977568887032826749969489234166328162541670106485198231065344030712841760565251922909122574730075482093455988289382550916009243746312336332361012771342448866981101961000682607227058173707019591908766790535123280156448546722635432481766422917298767256054856810007211647104560817770284725671300814411831915705155036087380984035618209682469877059963234318631119135598464170730677746956516706041555058715383083711858359464307272234004583354201832511902020425099583042752317962332820432163864041468534406914340553785413446655220316489900332466223360911317735172571007532186845086405497417510277700757619634392399849137452816436942479989544969422782693735426189010725693202361196127920034775347582509189482630892551852757112688727785366568692189397810541562492221797220789487685617147420440201422679400685501205644327193359894579316795867292890261620206597879402960288418283508800026573526104899737484846088152590604028847239336495096545163765628385790215064630732649425107273076881464599925976640274900022970789341739006561094716667165240839638984545722972655994628353877461991937973859077331710535715971722512546633488590178473302536323485657807075928147412503559931977533219419856604185685382235951058505045390877386022012475866916039469054136749714013908575997176630245372100442933228225513495385845987031325462661435452422113682625410248690394655537065422534827832320764147542413110105175395078214953566442992508065393573170243006596910556622424693451162179288403339431842552408412669741057704461983201649242510102056249129126364400565630482363613932081501817000535078418802564820990705628855024301604908840519297835543458147036036444599185631430393913630504009511842665491214366243503815701977992114358488329518943669960281749574091636839764259238893196100249417123840373278628726154612070476235039626512220658855469654094040438387195825190850755859885566077508125025271464385911523846351052354158894764846464803512370541616077816218220121833488646785178815689321586761191648997939541441438672498692959136418849108779488091566271424785655267217681214322316130094458072841438873501465942401872586107392836881608326234238780090223115968235281307054023518687008048043528937315330657843898610301249754037284101160870965667189685455420352421522300727326337065588193490568088560524076071301916750402024980488966497165892614748423792044675141965546812999493714592874427565076516242837061926383171442373117758292420091994355532981077569121337300898855671305383432995537393844745610853064426832098852108154560605174014081513170323940900277858972371877724054884315834627466637369978694195700963651319751583204358609177064989653738371469038831681333034183342144526655933626188433098827967390451884035514804247870468314700843115048033810186461901420574858612445300812209562415229140023432582466953599074450582159811518206908758227306397996808911314677639711253490225428955010207509402374885232622996882649786694650423795950249796853313569769726409983828992876284399277801021353627451742934092673099967453860506915012777088937840336784485493685238493104030102025276864424493640040807373411615344457289423878102363357816973844601530677685717677868926804581030939906037899562277355104359462390028244943484143972508717798462600155871875393098556132041748703917202480069044994931742596647284802878249053176493089063324969701071035139614757997317744427685719837611234676783270553835699047083868059216559316071116441717083207357560718547058337134924357979605383746352424479141879145603702150648164689773498738627248148767487416006512143870678638237312619917373151442854781887486081439856486204402867650214971891335446319433630806562954385226847340085025334845682256365569678075364361566601179399540642846645871570238169643434385049281621279053552794264246972930572876624035435475884367922323515947783186199227829913681441115801732845233442434682571066436300272569142863380989975220463181254871259443987867786064059920957267975531774481826837286133493322064879322097741490601689146436622073402061964846811230225815041087331030020106785905942572316269161140107796290194310283625915326839575000007618488259682653037977623129361162175007237536321095908344055725246562038972446049880618211972888907443838062288568803455428576646400563444970600356691115374375923577928215560516744907274720475056639488582075591221859935293380400504725253935765940382906100249341425991732060814522760146223003014654345572339009813011155909972729495785467026784193676517214081736393779979704185957548537489028348091592317383108570533825534434274707660409378134406764096801893713744383117802694183057021438310989490056498122099697177521893027953421424601159916964191390721016187296784489159623852388748520017483740916769535488558135268907448291990907083641340261820640914278678470719699449247313238543018240025919874978557727151466290263897714771738224091670286815343183326325102320087018226525949660257471081799274552658477859436311825614616110043797284507620704576826475065348390666691336651257644395540815894271075954534674026280080411398725399838065354581339865424374673728623664871736926874640819143507032615199705442332624908038599977216640167642771853357137879467811938604347974698335340380200076703822273958494993475184332677310833118916084536513354160163286668594297842668405804449446454075224835006222726457050833217706493481496120551584230057862510066026282496822604426243753651531880464245163322630855317073904862656465716509366387066109554211629721508072086451132803717366959148449720485754242300314304473303555526315583060280028991778499951296895759336279490132316895761216069070604319645216640212975506793513209747652055665259312382970747327735936705760715031469798708523608109187267895927894736278655555528984444647934231673113285791633233935298126442288575536003180869104045697228891581771646598405250975123724327663023759733896121024959466762351455387006819561967539231906991197083288342988369752612378215016867163929156893812435366198047248252120645315819446798640973188940220050068245126024486963387635366133061204416765556847982139171971093005627748606556649036864282797807988480284608443456779137971089395247675545110042634970938612874202564343915009605157780899150967215089523166053411808940985123778797917518349176080037540995455531646225754854270375674739712487850352365465447893345515161070401813521100224276214415712318588732905107554731425798023386616057934804999463853451478452084956615974299629880636045052788436992051901661977956870803100517375340367165215395621382715379083581119880727164162397841355880446578917191587932874894950421431155672313790226027676041332661819659822357073026904171420945082231949859098525096094370760433409173258311749576158246370450560104957064806484038091907695462894016738934406001817718662151710803146999678012638283768600800568153551154903822382435926196561116005269951011873513249358911848579629143773600704479995739639154046271492253912020376067547831724235712289382002585200011560286904392934695832941832937044380034767312667419825061064071175096490755808784641107042176403802101607248919402764359548812793308803754473143411508020784084147938223587436978229683534292677695993496087085973359675154968316322194509043644245564152198070052317850440203927085691008978960813107219029360569784366768361617216059465353962244025694206916916893968285066851079340957956987043732428657584098382576317761448891168450598393947791782520092521725655186369105466566259269711308888725457660373306038719517242736134251193134209644558588156061809359584176026231865569990213865651307336309651966367308332535678709639002877061020724205188912845296366651720981161251414557568246800749328306583606643161713787878431010172852058220673401248230937017117513535639521174804438674824056303804280272435776535238010718083330151163341104674474759290320560556272851973190880434106356120161592628781874973931933440236260666783357981193959008005083471845946470350526940275877609105530740769608113685570117546920755571479491078896078881273060205148193554943117307894578672054198342221897827863677332708483956017238216984031239445241530177381928373037667231631504552198527023738848330153811852513156839534858457510355813956122953800433057469058726323502887915918472533099818859745294244959083015284946863172349224832379494246048227494211839054397898191862449271463467344148679429318729801225645243642888452304994213743631293043736724591208196880859402864631472599072258661229229367425136368617671047766048183772599061974662487835241225356937901446184508878765530694275948063843823855021436781201144888406551209672005438532161473847352067253001062026458118313675162265830153540703123112728226267558851027068249366493215003392777344212359289508896802179273241475200453637682249683674032134785833467286026954921977340542797734376571677682837059433269588213403306171733617390641373259645262529488841082891418668016262807711007944524651293070999017234037502759581292717900326656160076167302019346898053186217288656795057082662708928295337881327104261182045448679414964513629148990050115297194247448097103616422978512212399526924339281688242748436112322106814852196312852630943565280798463616229579360027480844000957197261014395576823966995897248839833676183386456845247143647976829644316436085063605594156941968518486246342003877226920352440797516258844856951076520753370851640291768334260675911155739902241145747399657844991040588799914582505039811470675418833186871046583852625231171322163018035819890824220587686833058776822602082028437103853239798303511598137674180417643346291328274731500378669412520273532991873358115971033268879815505663773570163903351623173878874336254876592794652463563230535535822930400031717571734907313578989587276399981795379766563255162716730954403539737040128020290104014828881490839347179199196287250575267309362546439601744842847536934141805207052694868392692664402101768418510975988337541655426039123697010800623007827127261197770221289365018943755291821344105917391547596811235181124547557532012100174435020367232970774996433520107166733888647567098665952843156481331453834198574203255995450000499172817530812270449540372364209339157385189590695042383169113321667401793547317235211161381045805372858639991615578810305322571026514228093145055467364796828554761675642006997758812075996721017293583017725221084403962752549621589383295255214194463545843636607561276554892599735821851155861410559514749621519088916858822714792577372760139942140525838118598735531303182840377645598503350196381554659384321478454961678153220125669461334124470041020229681873395554078927390446392345910171396088576189350498870063010136311699794590096272314588184661172907078436853493750890152387603798746816089527012310619816023232440663794408140837580283651886492314252654556076132248716463197608794582495197859155225550328928433336021990372092197026424121493639525064738927671515153396209409846642635649784046373279453533328791117420247205655700895106548894541735264835921502623497228026382170736504700826119832497867661359416880110813732147691641498410371013265330885087103020426932897430320703285326793046912810095360525327704236532225397923174011641817551821782482221285566841111563446474971885734227394559776317765587850022025572335995269291373118923335541164730519347398420850586533614012483065943568951463842592032357612629787229326825806532168244550742751506250444195827764833830554610084599895326114156753299448388623045930484471652518902738858128066330943740649564063134043728990641996346318422037251359298440288808873950783901457491156005573931425921267995614966537123008424759830333380565025938228851826567347865594338023217908802532345007504738411268494433000046093560739239071408791168743215832474114012980252298430170818244638264685989842151288136435176992002874230661712277500001210133081843777294456663973951501444915019202901689004682912489618834460775608393400630975293596650916668367908463812787285150809577080223053578984219003671606737743731017277548301604627038721231168085760142941168956962497481565037480058755679469454966663546259641719366412321035775353533301140968313614986580949580978132292972194984568699668396404352940594400245633577761966234539303567648165502935122609552305880199015711170440577952807248407209417983479423678090060148019108029451719490182690488220092826413851779849427937177727066223835705636899839524451501189954722852307309071837171014954355950617550664771049367864353376839815050238153217744967011253336146903781230055337422158224487518657060045570075411007272941605990209775858142959879513717962341862442146117868649425543684546341986503149120006993585781882208686873068758425685552870898735172237632099209875856385394464368730856165252121630731750274288547100650228954021257516527975117432736236344815115363621316703603608518265195766590573851636427924354351302019414835864439522452603266110223350676258253135513105937956223303780533095312685309012089725977583483394728322146324510232643597736401144686051631120232633002166108986490428915829409607559552453257688048461074441251601591631511367586694367109574004438066972014481857888513200160241039110219089001835078094387452949086204574538479451422516216380083810991178102987645798128469528644265736042997346209690821591155812140763572439549130672301023862056326663896206678832627305126822008941026905800551254503528821757311762760416533067094037043621740048055153512863129008683199933284106486022841264309511769220552222732297204542667334632697656829641555737339915995914323160774636837298258380634737018186252644276244413310098608623037996472509778641506810022805407115695375546921856388942638931496315664712477071737903498127331905372654524673980525628097129687703220944770202420318425089459561871807487781017639751471850817173934134143599734908336569140970119654515545585813132480870418853242981478076576735316079709756642309892727133099362662641303653909036257536931667822180871271011024302575419646989629541625330965251066516479706159165957338350737984633675240863263142794544495961154424822075021157605482915591301825334087929094761656558146693022511637615314372433932817192892001241357886249394943873302920305554868959492613655582319336719537120261488853635791632600027743282074531689532746726071418366650750871777144757463173777775427879234864131970592750319548381504357729306933781137017634331556678171239088612922503281600958029768267285342002800377476864079972256481352300974745902278915739864401388484000714441882210815359497197273400618485123965593257941818852456328911772922576279876706180404077160787998964763390538787653875530362690986932703058772735987179824950859221339184422231134432597837201685619000626271564984175735497436726550227746455875199665541660795357674353795346999505088786034091508678918821907073833917695334721185716994875296414057477685582769712547272843086332442692967349448597271928187561055737295982479482772246914315685279653572473231436325540579855903748491225162482507108186089278362996691357218293356035076125103747079282758572010834494866116273887546771497603710624928365919105198210401207621138342480665583272440424429847540448593783697819819798293087388807792830726802512186165414668152526837248390217648391867915023480617997415496430788975161379318764765254942842506553632853184721743183654210853454300236055494289698061566046876768052607649875193188622309657050740641119950619830918377853537140331729412660422665571073099599722952092131718121122043784275663844849226287912878899885111768571836135038368106504884519410703973860388599891030897173156773516111224701766285436242957941251516140112944330102570702123029645059183388774313796792598168583543833856084444988678819444476288650011277066973167228392926141827440949175045747543957057208736328165015815403751923592660541579442577227089166237474171948519400329288466037480222777729742701128094125650586224124810049749295567550012309791211773128140512345537761475897732006623497185923240955387622592099125759244092703455890559706682396016652408464539519134488675569912670265648595621178086396467477697350654228816231756047206352311821658362814947324428902844184654642964800762281594089463900527041572352821663316838866516800785218851669722562264459416607015963576579636279901194649812620474607639917971979942987867386774221621939416986376455000290060108010834737024107601760288823294864630387362151888566859664531921591316431808446319063545475654048744389133221275261095053115901230338356127733263148639888176874738562916827509397323541156230560770320082335772530653533478897508579894678082227216623087118248460590029779108208258680812375019118294959763075901607102378748281248724705198694327613435339664038394103897385465258841480670032182972820932038866768377856997921237631723561706869775688481105133967243527988139854303687538718680001984783562421558240739403536316326895492254391468379972611661733104396441276939513792767755149962495898114425680423824718504746967695967399121441836893762869143836183807180806377926298644246814629946258746551521505091630577448632282718009002170934727872385196160137720044045143345776131165728405568258466344726107289986654569019714467188526521191554107113434908318800221415953660241976381985927092297083445203330134315034444857857662448960201516833676348784363236279332213183122279665960756422179598887488920402798716498172387334340498292071089330289444438804503986243042315712760956673382814469440092864878356564553154276025621754445266366864645085620242857238199537484272422282865501316529182596656218387999388721725392446137516058375948817011034262679658039986832578273863711504412970000010743528903175091214265990033143009890465368737730162620800032181997889796125275457489840474627165886206940211376583683435267828119518331229149916038267540136799547330215108521144146787724218671892938415429793282182694293141548671585585661227177975964178806151443066838990581695290051634755714713000889995540229199694480066079006985377389864156700597369009334376401061661070615645339080538679611511405142211328413096661518868078384920819308581894017138933882519119115142915581763307924995897018697515227096417909637338891216209813514999984972125497238459553776751828999092530659021071557253583140573033473141272261811271094985568558140775822053608394581322594737150013890045997908881711178924549536663621729726827227316624200686558287803168937893508865171235244095777775528099126909076269923836102841719746377637165635052837339520305672150251163051227997462568693380876810473277615871310928945119035048078508333229303033598870895728623888252471932353720831325897209130463439394182359291470429124319173835425371681223261083768844401607289508494496748720116256697481423843926323066329057176513021457176988346027700710726454628764894486819693497514948378101189749924913126334302120012664725304270889548250409718288158781282544066477736081008985821385285277085202825524531270357806058396719874968053335503951399779567745005687715246826451987245193713997128097675941568797161870943012960321817662990320873505562117466156576344848687414989389334984113323935660056020766006188749419859225822500454218835667532693776016287483263686061250804356390547335500879790294619701782107293426265920100904961621708403462594330470869479047246320718940187131536143647295706879058633599696132834008384817592073259100420017717137653477263200034768965463670369441388964029391170529149573620764404432191905525265399146976703850807932516680718179085298960624751908721856334368786146299500244813190681587892316827076924213886575843874411749341073881802887840305457459923714595037740227465885278690694630629201687202596305370150781554008925845460517190910567122334497923995631245706768253377827340038173498966787733992040716021001670262700843450745607353117730309124726015748809801886912606831667051858044030155415028369848190243800437247605876256806901976082940932616490625761761929826629028141779282067845415734289814336090064863913142251230010446918480583025803999170089713282429766105973094190585209559682514478137965423504271857949154057665121558735942658726381775587412851129030887954906786565710119495373607629945560438504278778296308037932666673330271849210453898520144584180857424659058733384634354452527152826539842066252691755891213755451782369503729658537037002269270528538892484300913291930670920979217906650665200154733993312908792698083586194426995304872868281106119866759273560243626101794277859629580031491754223099538744403577878144856238173599821317557630119059484446424231096416463757917752003331399071190900875843916858762069640553638715074356747696407296871881831290594747979002108783417154909440611828576256894424975841151532012532956239364343419879282983034677836849168946132101107482980793987456183046955945415702318086839490017920876793338927093656227864460363652325992642516657394998949524126778225411414830538475193384598644353170845969688443543195104360530002290224731235565963139470786858121507347594539018817504181667487248152996676652282414896977948516242439236877277319498650614320636819260623686796293405065314419062614871636606915680432739219654956008599010390697292764003916544105538298763302528239969384706148577787549159991640920424063782245416193100322331098951413651151373812815799448357953515441445091608428037477874856832882881246725780787430209775807961156402829768317328676657894532849526782432367548383421129599524319171848607070740141948130544212268009679619099844580903941203558840849153303044769645061864304162750554414108804236564474739562971946322438251372674696219054449867460788041042826388295496929224647631963607066929820865019833914239600955010859398095023968535843857083739047516011236343680244939945499816371385282925278905114318280104393709197898508349953926796756754491537283100502591179136918120578774990858796012226053677047862225072794973134233100455083044537610953872327986996767464872398404240587665048293418779978832349395646558378344919605983766739287704141332566048800035381893829654851672998300636711487415315185107442530219691241411435827833561438044063556205658260558134887951378248846699285713386519307729077377095739718520807458469360280277911074625496242124291408056223282620296132962183452319370321015681825835182976202324457865235653490730582763573438459464144864881936826423234064277678727814579241555070220649616165927571679732606931849960846821941476128112341288308747812107288201343919788379702683863742139203605528573355769646028833005088036296319894118334963593622503519063156881759574607622905475365538668202882268961403642926354428169759845930186048575032314361973162239953643816888385016899137630472847926936440414132211558056140772035307471858379907349339109082101447742771053352018186116708966068860863683430192161160183284735241786341458633828071762251089882365806154048759533633481252173648054952244691190435166874218157787090563094236862828236253895124452694926161925753988956647937837388907335606055240196263517164291124706564095702501549287282287128439902861977364105459853271727290941089282701704251614421525453211874132740755468595435715269800692595054280826393776860223844587583472338401970211249880917823199622328344720278931765399396710309049613885488182486540836112613309098566922507703041578714502766168612071736021983051643174823875024510257615267449609570167531509829231546091911889737322647610018552195720260439067893748772158613688066564091571220621367220452260128030109559349797473480725041693827504506574920745670086218307046045831187858330660409983894332707480634802374506508331035902636109161001729558280658744037906665232209272037966422915858281448081231487216005560328036222489049485079560871286184590300955356635364238651041241626938938211041243402823661965898626972331263231475115235432964068725012165842104583044502502224909684247366324853349922674850801033131916882168427431339824822957208874712839049287505672437300255815182743150772471489917545987065404296857422879410547631394936105686164312228453546912329196504047026809600402515149103331428253604285884409531568756752768289304847606860491205658911995652497681191376692892423040395484678369735871758440894398593542020283849553238205287868330486478720924814795597543345139038892216997381362397495694593851413456419041204994887142322248106306670441473634099291311201093294539691675591139225796735471357520590151798983325596731503288277781294792501210453299053612322907839522859797375878061160768346742054434077106433462474005839494377454873406105356541745294996633518302991236093554549847003626895214272439080412780396345749431831970049245788930224982028094058941956561382907876271395404397678092698805134017932638773509984029789552659769002065588174578003790379814863643085334191867231687820629327941799080641495665405881621101989981595502924589734381143987248357901052221484137522408845523625050443171739276657578836138117488585949524155029580935959470386132228676653789587727536732859852516709240054311954234010622836261146133848163258462670957540985057966560719041731232162994641955908597730355483728753275342004989458586366193578806879645066289555616884130568106763966452446886701623307914288139905952166887220828364578003652258792725666911032065236490912690741577499318094052151917932543994737379182040969182831247793594107173019614456538083945638003219917688708733937010526223572469958151279725484901994028345526596217783662819962536905884944482951334647521809471419888059686091673484652972255491769787367416382805242127318068521341207987422759542257093140684236181556153218273722337093132894845965088800161820228108576861257924215951762108063089778900443032587655796005649064754019482809256405583514356914691336508765017766776355235066990889418131166256621864818720793104666010554677468680988798912407083642066091845154368024138870690887869046583281189063186093799903081475002710137543336381273865301207714936330914501212755640327172941674240287505263215972029462758205152308619078124726485393542942070865605764956673527402741873531763398339813146126515812328453109562053023715211109526460192514820599094385476334379230983073623146496193918447047046443575254364501212547431352511307890212025634842171034956602840160775535818643345652780151366488871792714343169623267623679269226077885194623990148612332863485968739404284031890282788010654031045271337165234002650238615838310182307105844260503047778874381822007116266437068197723913657542445090739439287438755706778099991211988573338414244024919492049699014584232214087800174845340984220705781636283151125086057071209005930504558826590225796417480902833823816463519037180932095347276614561973221810759527398812977386372678915225170483514299261559537809165957096978459205766357215273722036621026475504651291259973861226109838376607104268464359730134851462359053763428229318150428771557440082903273465363782682935703330464960724822854303988778273964466871279449006428048795919657428972684913416430833804192333940192135248630213341168786848689959272825559472417866719556963672797496881477722092148472108984822882242568847915959333542827226269195884142397036468259507631545356854087897376596800159996761767048790093582470465766778531373609407569290541247418315281695740832395178784048340110897811669503086844539522748651227162429171388781083747759103350654888769968403089770420270517441706377158599198594145585987865766251183260396288918558478326190860853933102684691533290368680233446882969141586503958723325446282345241414064848087485560405823078377635442671177763293294343785350660358537454254321061742361418088417714657646016477096226295081759451213624337208837516900134419694007246947268873877803502447900165887741618977891652492110565198825861376766496943607829197016855910491352860104157417070883040055587393778681274585621321337532056792023565093491702568692886912341206429986898584293963146895731851389353130080357277730408500505149355010688344605457923299201467462216141080201524949763806505683660344768740367649207254586572690438791977915082073920007825012862223312414747864137137943636317354513385535488120031893845937310546775661736670176093507638128378527906672292898325714178702308082892527021253798404922937238007019629125860233025573648933080367493090659502305547420955309647552594866923303957790597111478916906677828170239620146439106303420571902781900332006624952361219128760500493641412302918146937998882461461348357238001423367174348146733444350717134536002244128288290743573403408388860784602221867715385925012292393175538675180183033589667084498724372903285422548022313317859086736812506681187559996474664728910539530893514721198723356789942625997147793933717120109477849604685695989451550774569777705653199144136909483148994488431165845534824291406610962370176700829320115226492376087593356242064410370801539297928575705604995065706455929318736222351836231645589079762316023513723960930644793841865891261078697075740945540864135861030895667653373163141368513889017482275935363879721991099056827536111669967520569483134515167516768597518188274714952709943536763750386769199098323358466381515900031775515915471392978667516673653083674347884898972509910671541979012499610910261499142631434436347775509062713732209210013917338729527048065638906120463850016984217240502002375410768277703082112693096178342377807341452070773602349592974715479177365786085634139770717674360413326152920180827736070671854532783723105177738932293224457684217981806830289574849525622466905699323773716545150188920239256424994271803604389062116804377105865891592676705181047138569442967126401513106418707663155326106630792322172932796459165290993551419567171356472040117711685990645788815591575350300195407504296370852010034320993468426900142867830203544532892368913797790867722918472099402677244101525930136239280554778298401632061209579787536405209238643555868168205547184085485199267386460630456860246779160730876340206099233319765460793156094436706409648072972128675451514811652661142416904282561214098617372567060113460564479907665263634362482871972655015623345646030859994379704332523079904290301771899333319965960718832835807240824143960355253558397036101271681304169338932558633451459871621802872015173698301390714636033644961619813383116129307440356758991892489010463161902522888510131574232569862211944239944708613560906358744272961633909296303640068002129786391773890565541181762465854891935792612632437997891138863602476117656901213849865672923045687816107382371334244245596335492936315079677158519944794480212688026704362295993006077600367862524933310384122964763888568890109976495613001973243511302660707507768539561423420817791903936391634476060067274280073726972656967243738696413257115039808207862566225358437576732828786434138438674166320248920479575944942217000071824614750572088080171620814004201239849498547614398378045807684059543434793453264935516593843187852983477150310975083046276747049488708352759303006379068403983739857510341099428924179975693502909320028705309212349514129072542005641768735143140444498881293296877981058462210149108002394158949583916711800900746276874952616590275255360184537623407796949420447797249694608969053213863193422464619910538971838917297001735600738712141319638841675956882659753015539150210079370652229956593812096296349888594273403762600780158513374355647000222430999112152640046880210868842567775320235394904623319225291695853859432856252858114315022951170519883827863947747727181746978923449693744080595952849881656671949776751785947007447598837487343731330853000725258399277831242222271665019677345054214126700881703584035765587444354241183830471031606522969605544925516370875453174280759651430293541157256399872844496824430718121555037871175220839252259832822681090614618428464246207967562802062717504111439068142648963958971860666498970619806426969548259067385184360608424596010305086415583182059634152178602172422626787427434287353002645663756318137879236194543598975357436025491586345698829115307903901722339445622099233623600580457160518880337081005496452924653011646139986380798272471262380793056225343515549705715623735041971687939432699693451973435883478295823526921365317710911361967007412187136814431680376269567106782764393335339925689501353241288709248462749383539040109734482440207791856930539102473682687637866303387975110465038674932369372606155918264083908705933925128939924917615264042328981971838833910867353802657941292964643339969732442498595695683627914564497244693719390018436400484689887325459691205739293016216508809950129081204532708862099118701894653408357076475437879109086981529182626350755843765209167045260025418545143519518116113488534273675790256980618882348184308507290843163459845555372680361318838697455961232918114242927945128367368668034737029382700413891553547532421315824278333570957363064369284981897311297855223532185588260528987565750400416092304404200524606621841838943079576047016599179600135914703351357670431059053297954522543693329322053734485055643933063245504549088340077455278188248237604549000539262378092277529921340063955292763064841443920255922255762358583793441887994925580734935384420069323693719917475632833687178686347778612335444189250614052867770035745299088843578923511624301713467508552998442667951295451478072939724675389608024496074145828705465289699836388175204824460054662183124154118729942606227487933774152729681428354958438670279171238402768939923093627246195217529810360692639337193649864346222908352707329111751199536301154941084982329928620734863316782870418926899894141420639886408062646664111174899177636581658026498893037128464645654417608183495739723174733651447508352123600061505984202776019962278037886267007580330108755988631751787580803622101888311681389362225802638411212819961018637160122115778140673678152517567366367791229076875248757279764650838990557508195533811341166729556507410593918313737907279887077899420059436773194651105273389338976971241459381051850753860815716303873012660635853106516197697510544303426033504385653349227973345726527274736059857517111446465363401248693372238515496504015928386668818451096284232816693469181574837462291862854819946653545174932494372097631867024010698682186843562172918928465716372837971546528084085328198038285037419583603424963835959754314413471917410388145238920887890010928706473640296385873736904884877814485860070926852286746400030486264351091820692654735034668578364283973338375162575251680667678323110199885662338229718785280848540810506788877640982441049867252693649857805590403566288274230997876630028531450953267930702656574277354942113944966408885000226665537770963709930301758856510447189032298063094423337842796220947580946521156738520004000061594661782084201455208304029280046946155308901704873490965062625776172980301185927283697122985247244107181443521890676175762413162609615348167777947490537207381850408146391181021537315283812353144673607015315722768821296194174292059891198168238195171264277642725025738913850925491275854620044546170142158798543298033364064628267686973362576936253286124108206038315299286821239864196109633959322699265004068662523955520084127480540148945937043915784947520638016281248289181731742187548165556437165972001004080170288624546311441071012258105274159502074649040904811623102623002263996796626592284897428806728813197873363642098581919897164241305707326382257552786978577662272260852294161904247685374541688557796756471390803731331061961862411875899270784127926629716745587321578898128948147745432304300329583353604080535792405498230705781395563188113040178631540080387382618594835511055922637245785257084721069045109893795777826600096763535904239421906829035419521402191345117398663230414341492929117500820259343970449488028073168012908242235360256727123744001044832859159723556813753394838727292334672317815227767755060368641062437033880276074325983917891473866815644895801869303832056589795823403827608270781401903271299772131050988390441392604670289853833255022198839091792744856177008733870130903734820547982688633108277005082037022574851283302298303459167255381122368575812233059599387824414194329288203298649853392473671265050070743026306085570598934711235067813653118887992381878603339883454679480057783729081482818999911533189486834240393488677984215553963679418000714690731636175156662908162237870090569124443781000313422885020163376663106161199453283471021021831451874370636508534427482021049378339998416981866098821230110460237039550520982650028502156425110792086736748666568387153066934563716495692948818030537129008313682989165933919509386994147451480502811981166390994477750618678813746078375417738328105862198985959864215524262636142839791461915066499254407129448519918887017613053802800781183790919603525427794819695863594729582142893900977086034249694902204980556027255213433805928360609715194950338803530062080520267215432940677485955691405000922308583024992131025372636093719090593602676610741164085601406210467632118088763359037415009190640028850184273087309926900118595521162226823873495797448329501841200801536139394035141495580275211965258760616582823002963274302355456221933700671453318943137287862061644607031892111621791899195671959732535912616462481324927991524013907949652642146328801821617660291322603540778406626232826596731065281492695872549600550768164153511452284562487356497415433202278681186674708053601059015868178216783532031983553926827463245008958053049256028233617973527411901166090135437640156434682766894521427954316952266964181836543498885478797755922954204404444467957755959412031612370381971715894662983097399011018179417026905155228149782327710977422955005540813181337313838487617168564254687467522413319213526199038082757813189020275676150050441703230592474139193602727749347564132774505715484555751486879056305671513997870808072881600956443247848587071609798980395497789591690945467053237010581548410065362651039755131612926400854846231441702272408255368217280626165452706873052616359658268262000480331458086160158183610403192386320210288590130925736199422863378684241318305385242834431283769464987984404366119228685048018381113250578280546420127645982625676436665926830507733835512328701006007734896113911363672023480151968683923462144049062407642055901649527884870338192051389849038612952217190704545896422930265754919642519959922169102535960151644823135925980061438579805635854277067569465809642942916846684719293062985404624824878073451516113177539692919483487998941934878025991506096178311841358610392652270534906002598943346932592266640427788783067499231498438855506571086546456338016849385699978136769377494991899855508269290802074293704699086944611908202912299426328957963526890454824571284469206954690810669154084545927257351303264222946833415226227984907311261390780099593800225939459924444749850041190020225358726788395621335322053811095124546900239690595793719387270092930408058838002491992043944779907933699430194675637332504586190366860338234055352521222219117234050495844556487148765705842612372481469718968893144627122288798675027168455305718695650582469866931077346335871789236696995109234875445204071682115946453753453689171691463514298488920889971492530315173320857299612731772726378461979537514823041250258010032762975326729098860853730218376968727999417453186971063211278492827277203028748528424922386401115648367172868746004716010867937581583966181936141085530822294655315339151103122249152362285414182360743753676307690843770722419091518153208170941277450819439161971661825896070724845659302245967008290987955749743926119575407737084245388751191099492484153188568156949372264766851386242688700279882401146331709289439484902750264367288084554543743326425629843117251332175471265211582730367870380528162836051528645221326128682097821184432990341531686695332561239276911174002775137327290984232448480657093963081504485678388427207901568880189730646602520212542136965860454635081056669380505935830681738841321488580588282286883019812901240636678117212607278292954726253597707093304370587424741410936562840138863514977010415922750213804720592408134671122994027774873754571062098547241077633198701245466949189404503118380838757005657448494791363847264956726846405551736148890017856506477967872591669139799342464303004173690201987619545488941025826294937188054143899090985555420603087059044004446338364083229861272957355480878896587106621984311426854085435971200469674050952560562644306435604694025429083561522835964494596560012217040124863709732079956470773059437144084075390310413161328781287560712604342211752646908721586748958705076687973991826481897853279852526982611856999847558857281081184246852551508999374724012367940032658112268226235812199038468412734851862322123732161203301906054073099084978637257696964532053667925836394688802522907801489271092943117023290666357538086076788074969665545288606974980147870908836965058597378368448932358546909733120853755493245225163480084835476507280517356949641278425941371806484690262806445328386943616786349931068928823308387049903704481458203596992928452753695000658976993770551187824737793212936127333668241625076453593921289300537835266651918974483476883445578630709696681667497904057216277951246499505522238688397976591112371102308303443582543210820248735812002871785841438683885077260781522401630757557179729746949405983123713768702973118681924077238691937502489060078692559939628790653050554714468829104070806891290084354512191382579158691326759060166664150289696307830845875447968743073219770981272109096308703730121027028112305407819130977928259597643401228404537691563861802792851352367386216584683794809897148045031757416197657131475408371531796923938930168300321232170702874873563728370899395525562496136427218776622424545482717055221971081033698804925946331180521617684548315988385434576564019830109112096616533747567453583319353226062561431194338983262064232430467397938061363871972013853853460227443414681339775085106901715881638127012738744464625309151685063852055973177486562406745243941193725705211533784298523128637839895518719129644996707502625583205083301469306851203374150282822443758931070485262349800370708332275731383853628097298591021899244102791031719414256497163083677578549434252358397447454318222701765884149093218591284230904015998205191725837705289338736848622846635581205843764347669936181560193393224308565558656975793924963535532463774825518388401268420845121674107153315949803966867647978174472677633267734539085582647376078968394167798936771786736082429468060821725531840180725002639616591072079710829646814646480134744915906145286544106487553894491669054613289080086819947214076885624239937809843450647087110585049667062742619101658169170310155070246217287579430797770513910661020628304275887353532528924218547867535994708889640707622948098953354039854525601126411527136947871654881236797235300842868549349119518569343274553910944884413846146673257555073622172734133977025947129683615193790904963467071453082996684563315818369063885807524122852370954803564596441923227846911340586510430668381812838491574811609240878060009880588885434305062662722000384389013400386794795495367981680584599486817605418041446514358298510184205470368364682147728378166678722567127416952985599686736925484990517850644387945257621867486485677156545577000776429861066599787566291872935334336588010164249713789156546440362196543733373966215553066382241274448283691646749196784603879270026561182593578368611146784791083518798016842020638386575045589353800400167865020112576662109128974095201423565883109981496889307356624748976893053327449737476155239557337357954603824014579551743395070388535220450314534818766155475574618204220464313312439812387166969080462511899224792263866863284941425043993539269823427408058882395069784897033721227779277914406464812555566595831265649148877598281943347728490385017724221579237255396634059021753003021437429041474413334326088115769484043234343356657882919579408270367812985883776652377507992822717076965876619608448323730519518532458593805438181558749521338141851641196027481903393379473028483103300547595829378881836105443945029118962666374633920898088888513923744154991912897164569370123676953939759592155957895385564258129213544028154757670555688564414565172054428642734593400234058296063875156785688005837058198702720611597352981542551576677072207061264506410246793684998932516831501608905080301236253900211827685589470218082500958668171083059418473721465045422727079270383217108493676980265004436229045842183478077146901522110011950353631685932462103926795415832047666195449348591345581509766737571294774080743696082622094925452791729731624894470416504573488025344047888145344729121334711007682658536311115687181828921466032469852238873761546668660647417145688638102264941706916602796993274963571445092572687455728284597550224322704956800639121287163501356970643220555336834086331984871578763156580808540596826121244000316819319582447439415452365352389963629907024780856338179708471138215352654696187929368312893231501056623843200117628624468429883233456517574481117257363042595003279709264934986712319813497257166124475146495608853259093431418683715644052461046154300536251145583608633894375184603198833876658863319603103877385728930616609739751843104459337803996133171325665414408804069739356769160891236131169775485365104428048857017487580413820041572464149890605826104216340922305418814387720442792953973911705415894147218384072973742711885559749334336357081172590706045463545332290971939274263143570882588323738833823693019234255603453167085203255523541599462045319881522391621902882588955741505885505603985092771885545578587784697952754778437139665103233594367482858338095832559822804080064539942590815312481669275180548290687093538653929611678999294887481851852944602873822436072217449705341552748824939987197786085995163087450091510866166355272610173200391212918058117943585435736893344628737389200488814053960159722026180318178260363377955750703167807357011307374983335287554629751627675635615216573983860269071569735856489673809073808498100160711559976300441491733480566022778954697079807892324808730843014233011734194507523087508702411782252556690074950883389489620954707809147902088400369975230638443781307072117643304843893091775445357744398171145512874954617651306155346560036393596435510379339427390660977016796777542489987684990754954918144596030575408161190851769835499652100543000591023987128536147025978482759585395092049779690921396896973806421532604282419785486124023121149410702634432266487043281515207859591435977202973235236752457056949148949263635808836159550799757549893656297902004598005533493847496227116170532056377213135521886803376523322027864867566519593308212867228823090911926992335476138098618459358745739273881954525008597620225739338472315413848718775685635907225692182797815258786265265314833642005899250198685458465197000710872278556797930718327016012851548197318426076523473663118413453859217840210971820057876825256770946547950009362921342948045056261903365267511024659914587857141416590572803858835255127180315473880875997809424412290011692079740815710022897127444406613740007135643147592939573687124773622025123549143715627437483387393757433198281457022608705893069897588497318082771143501286851354461141676063544296868573914330007501622757203841785463600109849661432599074883265408131356400430300456332555287620657985961119078957964457809425389494698587857126494306318835076725477280205557956445708128342133858256648013467479439313348591853884690135805772389010896848144024664953621825635249659006755281113868577824343854922629529394847587955594591701637427344138717133142035044912058201126114185510288843392647099169119106417784341335779239884310665948702802784750589812103562676499830237748008894674569137514658542581202412592014976328800281013877879865640816803420605479145635427285608935789570403573638219392566151662217705457316408144573635164676123358643778628824459183281579744103653514258655260155700192307929782807025195381239382448683926961825504645374442949422652557332829699328876540856292541135105168837735003993364016859450687988282078595832726775469850213715550968189934604542856308736593773062322522753755096937981674956471103196138307900493402283055485573190442836731321520435252219450679831596581539725750418620085704935709552813265291283588261167240623487866111546040060836940747875539479510979433049038190763656286107174412578101677265283092591424332364725770800314480564354362037679598274883869158396949779882502227621772130767119988475977559447188527041881793841638652351725323782729693281631856272657353640395224650350763574788422692087182371408334787407593650546848832820483461260646772114242666324140754895697250758913948984441877242892746595382284523434904669580233655973219465861791739541350436489297724050049945206834471731601341492692246587805948507826147631418500737036712301645641691722704645272950674815166792076630762471600773986210486152867072177209078222460913018128228452854322731571899260907669400319029219448426687339897006835213041580641962930211534207460763540541571049606983008424746883890161259639241273068557135687958319169178751906871270843792252839065692196554117578952543387600325048034908837472447249118422269595654138505140744357614218987731179506302629605329775518924138994486397270470419619481568851838585274116382782398273898075791888730369414781741124434804202800455453149471787416498532566128533174007787181269324709460362439944475002156331007306951308609877687268326810569525850646767922470289951228904595897607781919650636532536958319864953940871424022672013206898139230434623322887129403930958142103831336432620922258272395379019905614691798944856656695987801328272909305397053686975867683722624861631492006529621796691112184316430196479534342108336797962966394535763306561555695612588948393924135912409474384929749312768329908197620366041386591273907859150133030357300049209736645076850738772142645643490740500734897363106952924866372729285753882768547418751465054293023942091450417395599560001864879835973004811861576086255568463338673150581088297985699501064300146675652278372016076904443948983210107248767721023042874492567062834809796582929793808316321303355188042946489949079650341764848575115948036717474812598500042484229451971994968905372475342525917072668366270573683722494086657776084160526270303392158065144109010238921670769235809064998382753684162818710473896069066248667712399034850559985511639910529899878340685043255011739834975372163136670384601207462359308076381936134222668725905689717838771882791966359142914058233429066999147135081213784095362950430354740076056387445216814829570013473283367721997774244297016984361441779414962694340558914352873876723872611849286499744501871292528973701349283447742365152919309677514725117869394294387322772483637694628093307265876023857496315973866258045979389941985111165284069523760260835622937798981952598274336542073623406729121793162287271648274815334391983120105814876965677178779983121008741475053772009344289553510661707704139376611024049884623350180620553464234258741866710929681729344357872851492525402161601483687655404808958734645431265844934115625639541453820447110541751806437826515177311917111230397183780299871821179716143146307186971223263460210625922399913131967342603533968141174419976575881823784882507984515109027184887757911003302697780616175769719524380860710516779138273675460474620617935769261453379728874333946582896945737029007940898175630677189721051582724996170307064451678014242912652410185651699210047082273018265424574675557715636872299754747931251442497109549411660679517468812422284031102140964825828995310613210198551821218602895316566697572700169612665564125933843576457619254375733884766987380072105450136151385033552085542590242384012437336815532865194280107987305794140784232164352428498434533464861104201768326171075022944530397776523166538296953124478266028943253985076647287227254003028834911735482778503192787579904102527490827570615383841233822994693731894376590266701181240236662272233813078896409838999864166466286173269767194501778230959949606624477374082611995121759373348870041412305773215568240105254844790065981294747030050092590616411522884928110464420659584659555688171893352620188275733603884040345335473396523214738683503623472155867434410895771272181746796502986659692764073153041862879138785201403187475583478029031016089629419336242839146922128742384816487343124766535985525901044396518073868779981117046089963598580034131937147082416502879251721824819234182957534976327909220446780096840931699947953405516133480022753939525046273503858281927333079283754846779248448150529200357382229586268760831895473086835285194712077375487337636707854919609040572358562598006442013630198042069446463675737818606302807986048591211938004781622198475361042504581064863427354867227133759270339004491350202615771441797340080227465838050455864659639582568230925076820689652496881056956344116988490493894422887351362998190998683747521747719827774560334361630533312264051927929919892785257911419270977302676717959153482410582227319504155358425881494400079908815315168692892108242982713420486996529660351933690477495447135967553342170079123398960377639235767639077410123778996491932896437359714631422108167201116549169622379235056427585241473306582519295652552947157364701066576422578057164476677289040216271717315562378167409333666678091787183798665729545326126190709857786534399205590178583413030773379500529789482874272201418354348349193649456744188655703881729277270718150751661760388615305386955087022252951774378498583850145887771754665070043441547789420423334651011175518392962025698307410835083515300819563054297379128444179747048296152557496054235673496638980490286534734509266088195031664609835280199140121744540798733112432609518597029371021469078344791613085328764168041467771278348608090404057265764159678907384010740922576340023493051802850671139482843401782631312925611134643712506617167688721755608739515630270400692483263616408058353826749893377690996949661986278134528806228687381696926414826724610533481305542349511228229456254287806154749892310476985125808576244833025764691142636795804457749813507979139562499892955667380205586486640944508930328869697651330522315178027763585281623179311392970204419596126586959033357013020816360396152070158234221307559375051278221242902647434455264180395583124267793139323641429360278733945727613670062748972891044709752922221940515237790785952912972698869797235612487279093353925026917318908952720022656266692475757569203070976509165777290447191440623339763564114321796096269959269584993689972323708964267580495479913399038925079868945118991874444286723871531963280501637061541833136690565141378038052751311369824546084839951165410410073126715362989544254786758984293485407747234513150454936596632935576960834261167468532080442682923143041192528086116583208039539164649186780237945672123954330819043891594086289654406272789171468098950246534129526745593166056753668937450838022362983791076267840504753384625199613218889000441699149519753663287295835313970721421076782685537352569452005533434012515224662706800120592933196562051203696517228534977683654236269810359191326760117090538392911837007807409607055323597031642080785824194222852098694213518827667618720807033756907305483298612084037445948018718984516530662020018495425691847483864553966481749580253539576785345231821976032642720755484125507332595714040863609492726738954250932370037924859745729166311118153824863375668633421573198714924586541849434615882932589410291664909247633945819760218726146061016541556808146020579722017445342914621752808301418786022559756855873220840215721455348072099525501464706602954492885764189614306362362595688785161678907835505814477699863519077455844919642910000967574992793597151754573305081656758460924087623622104748325592664121217987656255738906352831241617876061260084621468205747077176688887026079778589204064058996673806612858728976228505454835008358665748717350757459517098053172583654346184862921728541157423878689793414812916697732501258872608293478562791081119271680308994017134702719076295465825845416840006252201800001591470460096100938448047020147963661736315814955151815941576400696950964353329138711028690616678032026849786927062211762385966842356097541214864484548504223403855897455669316924873622848683833909339627069692808890562717311352980511910976514621974596679496895947593387779421852158071425553870513394902604727455002581490895743407266764169907525319861279473505417818059430592933447144913826441328317839976250892883782056824478551468279381038549674476428045524014821285935353627801512871579914335347281585904898700852404751213567801059439171224858418674997600481872985982931358499546590192162434378666731869330402291999300951639556306898297086292840101134969216091049400724977708663917571989035472142006180903199338876290812946695717837210980792048070867907719937209029116598816855410015251382590025983031313743413815276519619570406022281455880951072198766672754293531102095406168466511705780250618136574042739100599609841071706508064091356905961412705707872165352082257524530492254150916505147807445842307273878043222249323783331382503138893980301876908996495829234961013031578333465705203227577308277761479981811913944641543157123581061530850125049925172397251087951155959943447524035956571725559486523171727556488134183058435625152201593400212964366720573391322793957325766674212777454148295570243281633479108987118559571759010021066484840854199660107363702636229455094546735603278925868047607898207189491701656155093528305251630122066158353378422543575401118859485359055642033226813471762260695760092007129981557622320199565682648845120523969011745070346606374252854499663785691106006103256354092109793663111052754587738385113282415129802345212081337901850713991578154398482959022936460521377131855220917390877090793573513510710875583210247926702142205093766696371721958736903095503718067932784372792251627655513453454388485502642406680755734810082387550080571389734229712650423188900071624610197404481285566294691556866143487734288222906292586155738548320058756685160030353239156333130633011067834233521839242128854876454047022139696159862370244126793462414266400680489532123577868977082860728277977816508702266753526829355894424394129926808634082265352723500162949722913858737000190367971341670023646384278110724977678769991320909570637911616038319834305721995718620757291491018202307112263684840624409687119060134202475700945258472804034403083022128450853379533615731941763097533984422955735372009321637074103746661788358420169419126694090955457825350324135899350426995099841952353537724899495994652981398945638138961113017852158715302898178825168792799839369820706144767277761626941958213084280332369506314703805955756639160228195575601496607233505670526889370547741702845937859539320576424271823452303029393177017676299468445461471877128625626441326751641980894073701676764388081651811832797540739335626271152198865459644216574911692893734840388109205746811240195219634114609728824678776425492659100978434553623831159558922606849048613703698439097913052402759294408700822716223073113722334525104073022288843371621598846182407870475097023622382901536374259193356051501073321906858973157552791678114518298916525338604339833395776975795067426279512294067435824063522335342087451504370588465435872520149524311150021067360038155160860827416769968356257558502505702731337993429394958941753502606434621672967343608248571007755805329713370266144331831937737643726208622935158772108096292076394930038980345325663756794939084465895024168445363622919373084859711479305834968520770205066963868262748416365127724441346308991352626895276556126566956986463677966794526736573265787341501451355159844317289295557965616149256889932034962230503198893088034686246136590584543272807719957399731526977597348601238456604703701481375340266813907617597236304787953000398311017834521474984935385023842213503992971010003103421355217126508463442209309428800908849379241767851933282507017833454793017639294862189083289827428038484773651118926025266269958935410264380037460190737047337254052882058565547721126832569479216170757070020867762930980408760175029188430214701610744215968716458863339871743620938413046019041682874408737615169786967062409079184885833571637926557474357344769326983790441120452351667231370252787406895117922132525070541046063007093767465324031065019709396714583266715303056038956864719597545319603630913052399189978223176439245620241822254761989775420925216519658189687352166975288998537218073264645319950813612249108586071860340641725708803368800807636969320862082398520736627733517501368066183007639324319460036549164427466173952847335814667450639469138375012619141695782164020115580633710620909022061025907341944982322563387464626126405549212937295123401692571192922005539685255367828221788609527584287334351165145916230222752782005559526636024362710995792151176181846898477626341248659206386129790284508629413234982218442567764949502470958944532337273433207360120482763476981448904739459631675069626768937393242372990909668363416668851765015355388507477284554093357738194667004143039562781475453456621093315400926935433579735023769647415711077579313701750604398762317660363318836799423403495742700772476990819645667531693921568174132772667182860728682845654723391634404419509053659661169072545899973256680281285900598925524987112742593344252207101437554471846766295266819647546334077516612252566091957298675525736828208491905595589877030043086184709008837210230979868537945705489375993214403159227004503780150450856654914915099111449604975462505665448548137896138229397106902937851059506712419473356552221080630079216117266046443455344016698543119514162049611787559702865131898722572802106659535545758054328272820540412814079653271507398183568944528345598556027246276808116893075371118165070955988299837458340399641900161516187952515815028178542101509535904945129008953298974734830876323060510736441215777790079974901280172506975119684013691428934599947094156079048882688767407113721363831321545412385581127145073530963564580180178161836245071344323849738051344981862599710669177150093771305420369055850779946495872854575713103523489004705866698560878126119714135134380097057102825403692410893546606096657255201345913524812623590941193336616893595915577273678364604392514490597880145866209942134253462536045169853566912386052769116164017475070910120150180544692255494164370258710868320898595366978500569048075788738228119357022498018398555465719313594598174824599704941881710970094537351459303507063877547756167523455672305656961478360006889567675858838842138823084504818406126644537616021697755396189901281719279583387607208662121845209244654924282371964293131421840825544504810329809233899014501835032224837564857446279583517434270307798783325288628240377262268570304001843686507489519077508220853896848275467075226541622390158087295812806564647596942744109323166936239183859925053432562803467417627042572605037617412837935520502118633232785264066676513865090290737256806902699517052892583965973391517699028304797327658238301962593953887734994982145493342817104930681015093071085287485109129049907135326830262443320406270100744171055628398454478391380854828407385832309460225585156231646830776991732712561763879168799842746030820942081192491719142639522812494707639405212352213154416952303637245294760566887524695133242525635856067705689030898354820376889060906275995160481876620018239293580017967464894992067916200586912846354162037450445416817298787946925284279639888424800644675679069578371657421946135966923995495669116506679909025524565474513957143506217972876536562684185227739314358547002194560776783088189704883944233698701222650897829103065913174256531341896256883056443148398508195808908656678090662082361591215921073883143609124936368052090088063917857706590526781705451512077031316933185868480081119591071086474445304484788001665164642316574206062394075609004783324359743701210527675395255605960049205495558927652349804617885807028601652800882971583990490929349974256497543724854433405229126099915475763321298097306564768273130235792851979684887824510849484973526278074211066667582233981666322863049989727285092226041905311155681179805583025551276197684161961957552139179024876323658975583715250026777859149151461973023913389098379594566141152477919217626281517642884246666581919717840387557829387968090700128698679000491466269517277913319529226034550176372239213559532217958181553983335901828641057643015307360540526642679108908769476768480441243522092761494243188143956157752139169032654747884505111539666851950726831435786674783239379472380386931974360005816179753495862081466975535380158875327723295440967032325752060296817091381493298085872847049232362096911608811864503134142949416974628191940749466220692217991878037537279563351613589308789406546888239155278138628034861996543517866908764389513031563007842779715554155421228864275532138200066159261272534744503170092740384463797966146335469996214663114095331644138406255709201166469348587347368912343287883765420232006306467743339070963404225213569522390286002532915985642778386209691372403102150453491434504515864275499847098992306343072921406726121055394411937960639641747995410009328105140155079071049972393117843245376670304214571341992549157339085183158467511116771319978536607980673084901654323333212093185904930791279752177261077023617594435840575130796820747945843194219785757029140938792795994551281909268967418903970009654383853997024043489701348394588024844857148565501860317414479383164206534949068137336812957296225907462111204416405220454980176152527942499592393697493860524986816357479780666784013891729053685001519028578030756232454626679178247525948557285998623127517388189370302172559509343690772635598758032084067733065210508467989715217773753041749983947230588965790922965655240845282186890063413220436607469899392655599657625143016622306315019184415524918697278517184009174299175911385198315643824522270852835070408078408254692471592255494076878841242026291357093493691220397803011752179079269022622942359501329076698675594851733070712682247983514795206549896063931306818035802688694621716254939507539261686981120826232876887228036325737454961718138377612009744998193885319629471043275262091804383819557164125587684318742650813164993829393318434156450803867334748586615009991086337581871281884269692037566972628566594597423470017120696058429835410319865367964267009725952343055409982831962964393500078330449791106527563272386003979711935073640677392241225619701372635738926039544592755232397047702872664207733692424661038665791745207304462877151241750265684769713156629128511488343459396304513010341275910954602910370805075458352053168244403566249678057428807109483969067734972988622041118714023264426231543965809138593978811601208281195783343077437313388723866662875827213871044475095004905489082190851868842001658900001869456378875933348917447272552860841906594839957262503370001973401029879310625382228552582066312816035104039218215177846339085173229911170966833616552025694562934718475826175238776554746676797635649567389321997687837738516759117610404155675741743522726034432889124130196235601603736253253467053694961585186758946621829479783183418025677894766700774582275957512880383734144605875847664190699024546230210586945253645082137852869361479961794597761139170329036958448872881260838038537037571120521563329196671352145418258482340548951483337763196497028582961361936417233198133700694658362089052077150613528250818273762850279749497019488585658570544184465616834846854524634850776076716108750210178480558215935888645488610835263162967745236900302307949751206612860984843927571502267944383802977440438081078172373871647805297026453787990770814169290038641957404136076706940157157790504459008584979894773636310704044119094286593009490269628376341299727866519675804099884007484604990824548429576174470020958237975953204422700726147533335132945429126618160179610910402299171999961609298470347551189670389228921696955963366267260521742631567295305504651820070904464100125201794130966219757095163245784093771318545650297636968635521122677184188908048009743649983481837751408451564094731717443320148682860426400578025303379198988613601453161354165925638545954736244120931847713376297766471249456941425482282191926328135894036726665108719692483675876184863793469632027144336982576185589969434857761528609623952432474931166471114162988209439164367923557651330348362828929226742684876864489759525074529993299600736971456760614125508937818525337120880821922504382042543845756935427530480131989171295248834389373711931809841534950123947265374866596211332113046633981337517881008253971649526650043256868016490722381926985892044411112929434124131456034832590093992650345873609103287552557839180625999847977218222750906236039205835270482024427915720598682023450359021693456583290916304425897874392733777917916891553902907948161966756061050817718358192108335868518342482252545809036758119396381255448694722031831934490582288154767980715117548775285298987379413880275132698854245908477861281294869296172131795652080931944809994987255439581468723021730771078443843154021843514464539641388643174711351756265875702183285841488671369738821055465552923990605848400297233998940807555967333674791168710248007368619053891581587397069108280707759008159663244196849199219209377385403659793680409891350460654754502687744852351115262477779885773357447513634010127799669917709271851873158168079666080643838837150261139392127563432272059825121766812560221965460285893355609980166285764070940454052162596849995620702435269391661562328559172592320193583476354070927765739274203424885242166983943791789458537896739987645223767070964779958023604459788621027285970910979087116742416366668641213764322796700742637255568131297672635282630883492079258478187961360965485356181724002558948801442987314585372332952352290574439409963809909058015587837027502650051200892796337511545541515422611432077998200355635921251355007026253988286048945438987657745595964777392993706928567780248868853114150543149894391460580657161819551959368793822650610135495670799486766912052034577053988095033393271956292623582051789024450448354889591856142334110857566334397244919838873412347583362959188924710972434632863402349598054153966353902440465266827096105241268277482855908795010634684893137259857449187102804044813590721224629630515466435305309362818539766274069857127011721296292734798802121710331913528129716397853292006951827503213558866488788856955657887623862605306395019461574862827668932704729350882918838912427720209500312985739036171494122342855718563724079906149682402054963489896826270258978938585506567354402068958773297658229143143386310157822282955226369409233415577847497422119305926680632568009807834422929146931944429549942472784016721112589221751068985925166828963406573263509229147535197534128843086892711646098568839456144106188336956806325098300652248513614546244901062026271772444653949226099219409586928783369695931011208456649594325247852084936846814875073716904123967025438461569764860945257087733308399478954130006858445347448635581804107515188477496036847015136844907184572557599297235387653613448324570388902342185888974406835980418768036634801996340902033290383535745306032882786353369184945738184015841297892277099631395708921036302810941645305047901570522850178276052150166188701067723931236855317933440314291283552011703556031975119089493388947023179407615973845261811619061186413420937771924760699537846641963305130903733027515080630426531440308208164242593500313317981820739737799431726482532255620401633676722210035244036912498355623949381398044484053568268092693946051143533992655472705059308953084534814012820753150073727911109579959243139339855496040887328001969104350420801793435319889722236840170028496200928892122717206797432192713380078826178786259297436677332453576498258442355638190166399156506941115833274780260752027487444799096822706513543807699277661979060440292086784416941269120997461904176229515021089678452044231778367003574573379329258719168708790914240141150435134217116987268993386532254725757777430679568984967017797264106439204915437376064421506824425183032901605912870942642726044483385539961215071292639174534125930881649710142512297870236815669887956504565498395449846282960798110600531492208977595497154634370952505401520067442231645711283829684437137554773036944491000281537268536021181206717696173000229488454522570869171059975273555128997391504201418284665330962444259475132249444875056182939221236554528942861950245304154696524799568914180467375901603481716010572368173861427380750214179775170349696392013039084125541406995067050734336839770814473033880628663939100185099172870319931210837727913091169896431724774797464039117944762054515446824922264894601670012804776438540300463726835434349119279722475840077369470418869810896466768431764455688305749350529129083862324350627748352329521234973481173280494703484592460901997033359267703978283503252148764758747196973344433205606609165727715753754833102887717499026967136369362700809213200238334290613172279033755699064998795681021298557483528451687925965459259217991183572138183194456945956197245078722357432966742892688793084115717682773805780763048806929885455844637579986758409833858343929194694301940618097334113022400870829200401418549502506516771329411054860920192719495083161556274652493846268661520444528560128732804429101929749778930484969995685198456727358216450631112527253827411489764312928522757609702879851143583732331525792556259222118872947372279401851762630093023916654268066382681142581066352014623734393735280985822298503615976861176525019967669406423583289843885088742497909608827520454776149782928606670266263928205756880668651716978341450971482210160404021832315213771315507796719252083659569623305074956493205155091070917210519108668854106591301393409975127887536153449439888883605163254825618192924560330034512443680851645174358584020887054632608265322238486819147361714032181135516187603959340693963182096228356305681202968674131074855094745371273368375633713233800795482146470974833238947354497011439320997603646393267851266997564575876803104814769258556441283236487540230839686330079469666551397971775774355813959298475268040481835000006738877963886510896052816140127483354005782500706813101966211446145396312866961272276032683535644694271232619753022478944896877839417548606868568988731835621605370536991296260055414664078378022817370162561697157739616023234490218774477193501917733178782727046010216581193120163774673877921313417237971491761997556692619982116179080507879328799248338335132194590414779861874065382303108600461953251788345895330752576857919931121359588204828771956058297615416855697352482802780541302201046116763139918508922410422673312847760312942905304632427811641306752969081152566493367199411914695909752315725725505272733674837429870846654495386340676634516243340653461100599516801488635852715263230304461411524938146272924087259399907549018274094769741694749354833821904824145612095014852064743124603394222084552043934152336698269666229263412665655802504233252658045217936987735654175041090106889041329927645590589226336342731354517420246317422131144960837131676617012949618116782110925522034213467141469077510674791502324766487937195904040317822350088862584829937572611020192745680910084180525849523932576228856895414666154990390354191641801432387851419199395097936474067652707861148080558651455354510531259933142040417157261984905476761138371813002877787788828345774034979126294871872961903065711467994902173680904904193852017794965184710994145739498749095962180740772755567525078383880131967539049522255865325878481691899134581820224572449811848245448445129319878866589955701332112055349191026986251215537081626012810120741826755125393612643716030585791744373538072822084602388913651172309021654850474111498969627234671906606171335845191615771330258703836664480709061802382243190144474883646871555831614526844844930315798978695032934737429819042920565032423301154900318525639598051323663889436807600478898139386219942646972510730990712879880048317887086961374479127167063832917061508023774821789005042658147617426045095152541776249520616451804715018678220763566813925865501739279316924379934454799888362010426838222929688444146294037758190180871871713381739629173426300160888091868003836928401192062340128576735118522206981472909761451560978263364016697832590450830448918410322463760965371521292848223020567014434907747731908826634404353100607857945680550721647359104683386418082087706606389205406069170310363014019458041669431007767053170939560002194711941260537581593699475350642358575699514670215104332086971802283810320047336949234627701200763600101395345710296805839135030958039758226952469371210228908613035725367711199385401721458830273062183331683723222120309620537916112268951072073831969118621748916512307237131679658259461056196289325047371602707482954126500176929512977960614971388166928474303274418416944947706279352560561117244067812038914401763707701314805328988706555475326472854944115778447011712256345975298661288864703076178336354723772945265767407788896355740117406231837062117097174248711230666408388636492129864007121114415587264397212643521566155705157548327265816333382718259280018640526278668243319999081805478015248207849612957629876879308039035973667373521054059401855655764889426314024477192132596402952246165295616881047221990369579231713762217071404972559213673628465968277298435450534508241917738951215680456899522752355742140282406301736118620558803500883728612141138675418573957238566644805151301527132979793775616642585476990853733064947234441452766936991239979247902916086384333100698041864472393754289167441651644028716650888354322418431618034578951736438120394472111476994914150689237396430899780610830448975806526408684686375112313154483779379126829974683916421862949168985149095101158780510903163561998868531409573602048779147772554582256460163080499486491473826381787247502187841520587389985238421650360522545185191160651804402924439417015463383866135459354495596913530367274429258108797642071712447195706987491788338796794932331617277678001695362297470088452486415655096694895366861736560378510143823152988298003553224911212477898098308321961150613497580921537689029307460885051098339260098516251689729963732384281838576086242280637473367693220489417133160348552746898755318777862676899059876969437585725643497862968274343748322719787680729306430573838766647677476706921748106679331965640250319085481007811058232720547072148921040161350084590498784140284778698852746467751185345273804498103399647722885003445412985236120053848663066907020002470211386505964847924399895209424957680802147057609954877999304397092215258605526974236972128332961737696790439584338242040084775883430218329273063046693552445915514860079824271091647173595485032700497718251960389345391083353704816330345538525361171600807171016934799674808830121436761455314550375796249227311760278505971248407785910944978637477087744788837300777538671159617220226689478728410246665207399670606282126919939693852963024779748926257935547573803148132970058500038262168924387457260290451260638423674162401767576569983564299645123840501383174208110418949358063714051675067187592167854795162120330466787025006011562389516964434371694941444368098255751583776654020204520351066270428964416133630006982345437963403915288033662267614942786430013689795394242162343991002304259671942030794374408578819028965852426582611169663989084063909006842138211385526624189458702205668832284384139580955680409656496226811030634181896263607358031040826110019160837752336263315839627579331339886674017224735376602361179085407269594588675428236639172584613372349279084843843164378286296693936927266238289451259077458878413599683924049173490354142101123232064492337042832153718242840765715535384430760713701474190149172545894177037209660033128236153975273627769827576813137560149357258471197683180210916005034383158477343906936284627134951058436795354844187217718022033685759947996088811183331725058730129844160972947360335751398786588023797695023640246691113291870414029620116170688447402480279433614100728509874778191264188386279344360084281540717871403595213332666514365636417289841449095025940025595071542698418019207411159943870778390349497961174272411955084842993565810587295605412486544185723179728560562457871714962492375388994819796872167475846404973718841413612778773619547870438295946504038034810741562330345227479865599981628751830334858017262575267539075331035065990467598789787232363071444584171789201004595139243337877400079519063807801484660331207019719425740068923290212197523700972732011145151490254655716391895644249925144863378845280569967608802614148246685628374432539121289305702645290880026289002644588331731444670340340739271862798115969616026191107480267022526349443301839832154743273992335285811682669550052789066266604795799108242575199329656561758934832653170398357663684766637037941030072186040234425211997420338108867417331014481919637332167273207552236993031172071481509618731614403695955913377909952445698369306254013851072504400498289145688894373689902439586419208980962361690825068117694640682514942016439077843745716916142402792153388116435456126171957171048377354704783201901658579976597180062865425802950215242503110794551917570569079984470115698540883835537913113076507269875448805940559688701247492972266890495099043293834905348010388398158464696258731270051720798895735006727003013761152869850777978787200771052786282650054126896876656761779528266593161043042412645742763241040178497861009395787463999511337326274783474564637604021074242360695726339337797908365372736509343407926351535539571010656596151546189334575104990689879690124919483503390643456446700424820289655273625331261566718283717504048631548478367338715834241260027768398983134799753956263596025504284568139540189106303034204108252383378069294501483288609661566653795875229877180967502979885750208148499829392202384990264252007525475701454373204026787471130748743042000033525706326680186194298889467439825794179058106074068044127849835350357577695017815032221366595864739684954854405095298122672663128608206941447941573686697705044075951163577454195356425430902223091737885129876725756293351129387212215343804356711323046927694520092941472696094595154686201923000682914042049931966189965966687672957720374015334569354895486227572894391262415041650147121674324770876721603670113964819646847843216218947003891084344892529237239174371220610965142033063318839885422779320278507887941666295632570598939571880622434352770807178449764072175309986790634386000259760736209609355777715188092236797382274706256607727033536697226607121275457506972330805206947499765846706734103743950417132311617409882817527394713389414401221367679321570263090110926099806206272367098584902524028376803073265603575252204366697063568435610554641624356175176910931230484565044781002184500330838029232207193050733824646057546933096341236944728083524336624134124403546247376133010504450609369593338892208439543956847480179278603868641673642474553323523796798657503884171552454051983900890319076471630204695175609620707760352943078975510575448731630682047914248723815885453313503214521916111826095537465845107431397865257681368338890453930809124442760104934640702244341986310552866964371935040535860395975526746381036405100820716334081544032581970743357592371870838886562585077683701060123604795832407820419628899240557938070590958313942815132530282877328856743009764032636432109673317347903161232083239692441498085206617178903789430561071461911416014922484134805244591416656350000573493944072197396233766250535808805980415999616844220180486697842479844294702014856325541270494611671453560377058537026808283682339149075407662778722750025258145398387760245748018505057558564023714495643108847798040039198808443839071955939930341242231132245193972836084277648650225042407041214134299288134120784188134347546750539589810052938516722676402129916948338966365834976916274463135107731648250301011183629624893372807337562574052179476277773186470107662202170587235285082897956463594970027481701092057178360079921175231062923983699521499291671944626194970961209374982168492278242413534060235838551519142413007079743141470540447864953506467443045233089857699657202673268006290566507590193860876487830489947351155045633128525124088695327813511803328639690114103618257529266565672700724720114286196561576107559498017224579907714105686575674087951166119723125234851630377523647808084205645606561655652177353217000574646799053735617503314535292515379152140927677707901731258901786677856795270603777231051512201352338548089893046123604989263510050451219793061269149773777460357380896904002001214901879222399982092784744189326827290161326249254584411396131632919106055087018536729363488457687046336014193444151089811691143330403324391798566021105632689931341876688742302220396613143995687567126797410719664621789664305623137641938976541694745276991966328964670319395117155986866634918534052671022513685372867788519710893326603880872535748816334697173355059249685262950814847881859891554129580456851735066788173902029676865661785483578035289482827066238296849724798270383731525622253045086055981054373677086386319612771427385731548773297497804561373149998266012918194234466749918517176858729676694380128880717670731689877407374440293599242067372348919491997510239603041578688611298126163262195312298356327851322188818315957381541437092528132531174477234106580718280975891085455206042811311301617252372754863008105549663825856950300930033588133777543479589755938253912479179887066500618576366491344126971543710402751026950269600605742132689725275839873391056180579286173950752940164431142513384885634722119079806709810704349646815908333690482510143100549642457881967904457052038401534112477219480339843638731963258550666822691880436058663840681626096604039987560206333635147291030743209755633291720863970958418105086072507509855601897539396509304601713568096115406761179703867285796339335882561349434062190750929546811300880110427516583962053105346382009630248992724125478888987184002744734621576394315354014159604655663131583461588155969008183137702349780624310831479998362986745568277897065752267802169382346126256825233204583508085173564610822031941304920840338113902225769751528584520891583515330669777836450835679075678769257957412128462069495138223006018366694057105566562290459966301421600789919949297513127866641387589609849126669973394665715910697830901759440142648281062196040670716887792552347631651651848155436566069030839979504846642048773188294665632552861872263261867226303787516905045313095953845839309428825141297627018795433552212299897368285546100727550799271144069382180243269417016250168962760372363727964095814085405739758882899660358719339277592798865293445664681711193677047296633193993209856159550995085053320288436408143439146771792073394174518873758620199041658120189904673302824971913599938068439607816786253083929144188185576162276262760106317811542758195717914665033527413583508845533086081340958669876570647389247499085953051342606649032026592015494033344198100275259066553111884200266775004320216460130015456547833462811854424971961018704848246714804499772441896591207575927989281701765040186795486904101583488301332126596014102694894426901860285801709074532120483124705499054222811464771519827995424395410365113395400603133030964092167126285486851966341215227737668714942717507284325707996213840081642006938382710209206852197307083027886519259279523488291887939247280312772027174169184755514996382128374804542198324025181470164315078194167693964616728157178943657402214302307130560929000402527744344280719763403577841744012668011460173221975199765158249622780124022959750406420760244331297367343879334807639332218588661970292644951337792097747322934588941718893475856994812518088587178099083442990255040981514951836273792033091886545421789086858509067401409243846421104185524229819004557866460361258525243750746782316941660795829352864771564123821614131337852895454997376655742196624484564091268218267625650057529111165562062033527469659245397825018654925531405489058902105456078027473695957531267447202929593334452134721474959811442128420004559203280891130214802110347750384075078301789586787794482814672447275249049658463810741110176267118985077917612532573533983645287572920283305989036819859158939108608899219596127176322166396251750563804533108730807893259962710572965273887751437900990634382557313736692322481293997704591160693889195708236126760099119525298519223321527095122787799546240227411366509826254623774707351867433760151655004449574604500672400517101028865620290929661202765113335663874435224259267841448849745052794801601281257502167662739788801976185721953186363534383077439180761246036207612322043734229867404194057919327262015524818658116730471445503970117796401342187641140875253061775178761138950299853114322788024169805364260057944094239984201585381991769313739459445791669722626208876061040394000295873424508420099991781979396614508240920545112119015691696470565782684170608499244714832273309454235259777263251335861508630600487387830445320512336028666869451713903313435631004772803264167887145463027354997799518023575649221931132113480046495827248212499007053399808013855712925221908182458297173892446935933881092424074286829548382974363318363332327955817753766033550394391809307828290256036621781843267559302914202547645122185993419815350471446539027318790189652769944770106948528405441073775838307949511893012467333039191508650861529369259202422226214279078917865178960818720248242895442010657479719496379219895835500838949908665453319256455877740519738144291545512288132854716645554498143850921745722973172043814185621753571243340601006224489673335350898110742619242866194023511921158827638981975427422590402992256137762258110739827696422490617303504090890224888734161871604189406766162710049360023436523641091691464179095617093432615214196144124158137266030108978903132151930741177163581045610916659552680925889340064561233461012121479574847586418257133034675160888080086060108972138795791166376684918056552472794751021505513631193808242360362623636547356225725639758964597897030961212747717503912864462451106451729676842099272684111987793890635851578236886686723353921026254759219231680593446034666618380051203707667294729605028302764230875769480250019223998976868973764020939870935750740664723419278819018139181969246945188199139025142820964818094257913573709975699284970352200756381371800910119129091551665322071145109865685639595739106482424520181321306138488763432471236528722984287750320805529373339119700043847628493950860892006579676245764133268724560403315928992206150903487724778779210175694356740082556759249401293025561848128317449199456144685736301568903681873945480116597686694071102428337061813771695958122003438645372031716693057617479056916164857337038484246264481331060877501726710439110294120550792280339770091217218779157705958577541187595671107666212411888340431550028884234374045876839732693490126820260390488009966187782760167880372663836195761555582148371066384931433116005969939380876673404254116707672746828984477462513298418227021562300795270118591004495699373772442708540647651110006256020458859044473988723149776222407997260715470951047118634421429535219686262491449046171841546289227093150668418867810405892212252982520887210540198392032650951672689281056162508446856958111131035672882426206304275276589053500329095156985159846648581185689450728358750297522531097380560938892275932025467085669881486345006210277148234413097514885211596133690531523859484056554119546474079737437155122252402028741926655323648056434355273181301740621525193176626880738108889013698128815818699133244197457329026995095236260605178584904852231468240624473356115220057024010394923839245284403223504676971323140481211263174659907171419003990037937631502699131644145999297045672603137413729744134743450770727411235700127214801559812953434744110370617486936170407816437818208928586662236837560785581558900954789581205475759436450793448088050618538581927810595572697586440193379328467023926950044384450046533644951968985888262843155371177041749898509094299349331670581218348337763460892109859676051111006405164947414815018498030529029175859805649710303146175928365091928883530093741433724796946887511626164750648382254404980453787977977620138108373521972807740853805138987270417582485467255166741461199047889355380690293012165307570506968954283843940927660177254169674542579483142237973621168821720691283024140594575178425360520736915679135272387428569736808293709975688335550361060683583004281763287811574884380183628421255215812980373619231748825285598196924844119925768779486406336931361340649500990155803420852522750878710982022337976150649693396144111317732423316972186443433779347231443995321744932487160100503052662560008723992075824567887195591802287879436237958592022526040318029069874486707945372490470012909526654034658452496219747651597588658873514821413292527405914587283367243441492601233673613435723425173468330400387686586885362741845685174527868173753493833876667936415055293341787674477148185990972300405742298019748214013785869980828051781378430605409306897334218037128103480276771350207417057241685773894273707408287122695235595326776947558799345761996481218828324347704164010458033525268022179944515662089262587764221019420102195931979563236807797389065319343271469566421651135669191460637803654941694136189271859186102504555118468161596433750886740653600326953075799692250692482401599971128060054066283979165772893111867485060669738135156937746417063397977092894636308608460361385809356984009462697615608418710942225502959445569172613382360158125861117046411750499147137978869878097822068333369216034156445987496602065532782784801967669081622342854872809716076335991375949433666229439367292191387572722580390136219450633632370581790107758551550967985396173811294790325006325936078193370389533269889791471346313762641478950488222469586214921677263541901706552537104944570645566017526745990166914787874742776160352082324754780156505636311676904726502610082340189170038944196340339495983263340258046090942653173161954173861721348923717116393840647310125774463358601994511247814900303781354313472443915215073113736382703943475581648247717044871723280385514855697229596434344894755735870957223142985089222275490186658594081178696721008066053817301123283101329662069905223810229679833588484004883424025251112517730502830742864472316220169967356373002814805968075037205055395033438662521116252061440191046904046757366281353488673470789637916093737841832431219680658128874870673248236263268419269927387700309777044470543082885529260062644879094561009483054186424975700113999976284050024605479721174218562865560584634442002442444886541350860159844347744557869089513644623786043612365021050013329359417236036667860152400493953778121831485108200042149189428278421942911336284111085099182597904500672411840870193342690223579150085168867743409744884262502863328472701352900837897071169852129793004554231580396045097234018848033607834348886717011973529965858376831272184508810020138337367208719598900911041488277903435777769144520094218842268826102298033642392639240664338695800898344107272755565110607303521758782581435695283283335330108382894321748877868087907467796306946244433443747472969770915904656474490213958366413322563011880279798884916821130396413489078013686419193773415917143510718691007782922298015092798393280835663356883855027079364304764877625958465179250514062904540715652494189112902308797809391464803770569978809303495814828300038146925663589748988802057379035697917970277553967942575804014393149717732951396420331436800205663697252739837186002917940068038977983596461183476414117407156219903392997569339485845318872043838279141191785148725621395997440653096507554517989072140674661568645046010693934098658599894334349913654327022359873287081173237267998836958871862285894807653071338897914487638858985913791569615773627574529696605028314546251608511772997978918062279896472303248033623249861964788526196889246613739158243371833701806369440684583580806786927070647058092813449887001654848313930629400750160410115732495880339284887363160174436900212925194512758670568277563700593713634478518498252989830259767781070659064072146017827849515635517562324889351574126768203022339512282592038170978069483050771881539061462463706834578390121116997667309992467653236548761405104461630330820085257070479033784788622391569865426017082777347187943512968617488029121892878977243103805156549505959918319946335567265369638605262165932036591081679999038075354581335051783016600201450492588241297378428807129009137919323854216725658607402069059032833467055650173483341895562010387665641513958487897524057177182588548603681777858835274021044334194248713296233813605647787526790368134032227904123093782074220218810640154595330451301162607231052328710170183846620624488052647000323892257908948992223567167135833607556653062846955074842027259371646791787003440445881137634386407479919027143492319242048583687220979601783878332704937227362167295874431185829509973646226140461615517068363445367857829684786505661095998366760909243537550754599358919431468364381775597341617672318931479550967745492188747600360302004714953887287863161236521003820120727399128545993346558845949203642114011425826550382264346913055955392906013383358434636081314973201101988866337397949725919429701831403001228898347320355282137354144685013914195737255398536111464420800634668076026206580268447645845054299871016667589553415778420147075320119709760426084404640078521945073590593263531585601973824997040815851088954111402801695457752447425076813957528435898383560076260780060987301715828746124026958728245792879817714155254930194044512036293542633727725685992051002342839221699254779632887767496869656695524528010492209091095888567911948278203086287054153084479449291379291577216370934758023858638030304598525785756920730644688633382699216742476096880655790376787482937546159184845677533547237723454309498115433261638085425166574183360726913093974757011162594929838523767254965322684399644104018035079874542790837925344231690375475820022838824449728875251252761016649200609233791916230480077866012553681607692718211197316666884074939698320646565218247287029428634782056619730394646284610732986309015018131465364414710419626426892893097395601848272318015200132988923630892580157480574400415885844334649403433540743537340465235773270276655070811979668440445580196132410495335064519226727393001809492021769676481127260159616551891875015886887368340972084481456845515466185070952394839155196435299119034448627792759607046184997484330205544171799556346724996098642639561643461912536915088762230747034512355313666090811917212769017612819835883898427331122910804749669934579512488780575709522094110045659974275189633732305271801976338223190579712522326426147417257842415881517232806512828424278813517162580356447685181201379313746722083903352846400739034428265355193737730291577946098185604582316583833696862301979213086474590356135800289726771405302483176759049829029348551078367005615178666435746054898562738001179889487980259484250185339049921114815531119244081601295770559097317592246372614753482653830185075419793747380216908254026556526612526576636569939704553534951060422514048058874345418645478434211205101156729715035177745092044411334041031857879420994739900426630743534937548226651462625618696116459392615885536586765175258294215754178630428809765907435412121171763929297016359464407864346424512126757058953074216492605013711263783670403188041165420585174071629320145179732698954071883541138016543534507507283030405988792406960601718398207470073176890383041345690192038180450359322294697310829681076352080947888489620414182593459592454453070367820121578568530278605698087229588611202441304472359972528113224543805605066395737287972761254283216943317149040306121775981252796171566487955085660102000095345502984902373584279737137536806127052590901311960071949497955658588433105268325023613811007884339364688921694799005269603388229737221098967930844364200420745983899664570344886833719405014878188578778808454032097548437632454936843652111787953228045090243881230476624123884554155116900861974096740229415617565942038475037980170618951660325452623894235716192063428829483742643319509656835399675489370332415416782798221758190987786208144992717408844892679380475733957539587725964471951252244982464825880631471601880190150749951710362761013279820890626905837668932452236039858624946643522993261400481087008661370749693312908540297133603153902447786862372232872904746740965869876682663376247882659347378001887929300109800367057548066692700107639879171839157753360195299731663936795018503576714268304618599915703743534958149821534614763605024265899848236438585958037388279493509591916470855356724766023802026275518874610298897591129522458572806100341696626061379208065317645493664149684353535263324501585691620754796102321025096448806066809938720336556375110020693298550335657901505174451349508340770854103288499556302285671719106202991851599384759892840717890038127194123845386283306122385577555148124195339360765070371174313928327253199969751980909478173949787562463931690936559013185099259210005481775180664977557037492536316608027857131548490328826597568058805619635823787702290030063262418727238940049655706583742941881934322986734193393530012593197565688299288912459124658529169671138458488558920977354446738493845048475358332695960088330398784360995963322154035139445793745459080839212694071424536035907189573358257322589269867580469270413888613634200340765835156845378255199624768866882858567967910543978382017390448693096577905564018626156646520362268872205087714687694157055918540312319134213198027443081135976683805315977190937241329662176147616673893695987500747598356069384741760241196705330393487408913122685423949038247135340963841367356502021185174530858496548537504048389184402455338795044410165118903134236113380063920319738837003118292015718635409878378833471007562849254750572804525580137296984182111476718912864041168698888756082467108662469162692517184691112837664535853944884254434340926278986121133197742603440876201426690501744145973061206358961412655112957527616977880476915246848800500151054154253465099678073871165214609484747167703098904615259932622667505958556101904262779902723931905829072487612954992204739389136083673138463009272231433028611278003926938367848062926456140978478559827355288484369329586591184578868135230274915374838424044431859646757931921651619962650181353225071868568100944680109999297829868331315048522535052824263097666925019986016916300055330378026127029772350272505701800851672649874897754109067910000908607338348782836736192157785517433182760138806290778236910361283690465490941774474799763261693175493876264729281441826899361372476185239828294761717773641532597151309151415621912868723715443387934572960380757424121263112273202062337281129511197255694595574935652296696038497844955571666696693292084145048950800329532675824314780948572991181453780145838030557602494098278328259156475790371581478893534582244221896491281171229308043870034449303573115937200629747346891749236806974255090817320062037129581318027105952605377731586210503072286734998715996728950676818679434117692294638531806604179305489474398029807366276374599367658996787210382139788732551218290341390329897332450534061658845002302638643067955478279431505093997994238475146534656887233319127521010257920389786221627156226972673831083967931967324312173839652342201942324638605449297267816879581167035823498711613323957847115818059432746798031604157812826001865325213018905696507547796446092082305336867136925810399712699179299903257697174248396197325994578240401855755874568751823698378843716634846062529749659567085436871691662294696973677294185043619043564412754444241651399749285089768263387568031292007380352849849181919600013345680425868871826225141974047780986983616097832363838937102632225882787950267767640627033274127368861064300070092623158952909965069964161176119020802381635525772746921548156045667940042748614810812426769954263428755724283263731392494523613588669688946938590429488412157513823548160893163089201366543444474614337867836439347529657245985916177830552753037880309129403303147705261776266030695805985023415147094075073573299234218603400556239329832244820443216260948426365314032702905704519405626013479398096846964167158781097257852870849637820829484827160851134133885491828082852279992748235898081765781539322361924151392647375329645155092240723193294103003839198542203685392489959585209245634698913284426755626288955279105833629202736526475470971108585700169128249997235573766616195221734686187646571999945295595051067533585819154052944139461334463606322096446453262871691385471090245260493317058427774186350209595952981312038347456450984642775117900195524263532586606875777881433539551724420794129860269067032183069966977656493741252394625317080273001101251327472201243070024543066758578275924548892924288971200285480923666989015706631865062412803929497379045326255978717767092840729108485344401044260198654175378825775800523416254487047347777113135806254484678663770349667448850069109184944060556014952633881980607031715708850230371974386368871059885453020380248902130315864093890716694883089927269837702937637642257909118278651054962493037224084212517678902017899597646481901581797101246232618906179168239277186479391981210662350810266663052899869125307385855582465904184793826773774832667581889829777692073603063273730371630376798204827904879119598438328693326777165440725265853060409890412513450271783525134571661995349530262949114441941276831407870494412591090912413641684007700179660930813571063357603224406881676368597785323234191777698625860215233957478973414973785902972548267575925354650624594333477700120986923329146351268934902448194704900111857326862983735308247296109248958945387350299351067429013761939496613291144423471526704923508888742875287523192191693347741255292992305770330789494826174221310573317805007338687105489232742068802322629801681988198807599803144105878062096082836089620947271981334360244495532119842141487816578927613259650845684832474431150207140579274989732617230831664652739719182240016678288667529315804748828348006741898525137226003027824463831884184704903074600955490392130619717693237047481728997682268778578959925657110698544472270127746835520513198141998753341821983328574693306721485839378437943653333295352381457218770680688266779692307304592745563046264879901034709950727348032107182417651229157247257356830409878850698617925866686550441851327549386852599835135617850227023112577214205420680252478152384233013317917852827561142050583736727358223351427349093646636182386236167312880681722085932332108463968527758857293669993737516945263116235982602625675977657248196075819619523943603812046639273373535507379441291833205880909349364588422711374153611592335044134483601110418550320790967710748860512793124203463377367669438484050475785263674355776971137477565124410145556397125040333854891743736543228304591458079437204927326844415585393159703867308241472288538731486526329315170643374159119721527701313250251571121619141192987094023826366705128369355426166497223523711010951751346864906082390661005094081904450701019989972528170818972901469786189582809434301789579567973752287717419279957827540296332612039912501857183726005245228756907383600710131960721648668356493812248399446185732015949952187956740369550192974620313671319746428107644682797103176258954894889660535234753657393016863461885073844249091783556028994923682057798747123810376546238274454789451510155875467939597796897836920971883836547434573332540119533247760033631582491601219098636677377602425141621427079332455469816739107666031360622924954957946709139914102076189366075699704618036357974953896573544112381304557432842354703997070164369332542658041980239892216302299456050840331852249596142583860100877475639571293033284646673410916795571238210511024145080532828220010137913885470554662242303028529004009040751277100013032263027730630022160581737845223496624071099090765606554803156583018259028167163351844074595962807742522236513180602237016568241091469014632757368704203484820604688977918771417477832754636260254388023981709523435317110410638516114583516569872085527064817845907579791917926072205294996188223002786692853912322572133822164187568802475425355399215614774738820358866696790070903254276002167592891398261263620603406231401925884985252705216287784985962909043305489683809473823822608193456265288391728697741937175828785647239579829287669834145660337841710806712240538524114134693369007989336980889254719206810336628917712174441779096879264226376904787330023465962947784084649710178345681013567946082473553425757110587852513455836901788057863362195874418530972303503096613450826478021394217941208188731748888584051224698195785160446566325833942534600719917297085640269848134281999912069890077355206094849585652409284872034070339762073106054611650784084637411331928048951820549318857685188235943328088481990594887164890529288168170963938736714665352879572022583631442792173879393378558644989502335073678532116987357997186301419716590564151403977451900088073981166682273498579115475617276985593954757135846195451904878941852175277007586594932152091745565418537481725857845546331408463630518053479506370683072163064378544939285223711001814299005643840131847253861638261047657225007429085368576835536090423550231896677613983860001803173814621091116733853278359292385649575162251480295521336206077646687420238266814101906254080585593174557427405541290223656716776245311541755575129956592875112031632785080662226857022350860043690554855141900439794054155877366911418429789162736625532557831292060225107876386956100758699045070986167366937970860072429210039823864237218670791286936434433925871082731526970741456013096670488619468765382462223705607056032596235716064285337097409745803234957352762439040302829250296849671935652884352808717241366919051276762635759687370888166015314817943081391050849371949660646707998888459036437965212116828207449315874104758800518917058402027307139172508057206636895077064000361823832426059701466730986809156977347971772238578688540316366737884470387268558222812834871187322636995160065479157944282947519268315134522978219449074670439994343572570638666367810796985623464233032238889442608652733523678080247293301739642570848419628527263855450548132216175928507640196307347659983502218663792104516942519809672068686121923491699157683400572522883897811908603907087696533655183144548060704881846455920384125508437498913957112128844790448426123341314272474142450509928251243773143456677055004971703835666197092575487496991750670404745692007517812441414337292215889283180470987840443462899991959200515773612407390782554580195671952625480861091434411672985892113040149753045478128362133074351518768349042212430386395719735454066724122369927349430982645495321499221412620337219861546270885135729556860877248866461095534018268418695795755864961788780322880813249229392544965941231348111426906304758536906378454400116122330307149363161508498376623834667821024866914862675562644165130200736489586513562394251690075045821425176700046337168063095480100334598709719705790936069396189268744444985869499483093237918495284383558365813761729037077128697693399348107405703134131216531553045599502217472364962776416077488810556180696466507442715374875500883775110553337523861319434803162984877868894983103040284054786820920646771940909442638653904209831146974744409250896902344653484722035963717281676938597801327620731783942530177311125095758435295390791613736300005838928194180227238607687094139467650594860506733375944852079249614313310668581803625658673630727614674038447906972415638446767245916796817389288648821590925329279271263584026676138943960637499817557353472017704368157253934828935771960364266899350768117619907270020228003297696190909695857642874317151092196203394091367272627701334571196554807453540629151339282358906231356700449923061962145253219953693078355015581083010943979091031807002096566714361247724615103185824799479236029293223459892426175582494798514088229745812825102836775364009334891760369324271277423496447248704223653980125645344248603837728114574754829117239349292164233852844092789573240618567238021883004823177463113881285892909784593359842674292950039960358545431625644158805111424205058123661773113813134945541611627079332314556514542027058314568375144619870837912850957271688910644436499957056324795793311406958247196957553053539175779423036105474678273431432191237551089729009814254938638478014519146956332213881620149038768156081538334574607493751329571476778814660140804223531226861357168846606459431634766102928174841419486615548130023333576560660011119929437920017928156133061708569747663748835658474089075597020593863635440483063412005702376299762369090656794421035684932224332809155968144416890002705320329887684760766458275346201562718555437961127718775010017457697798723671965635753216797494905685659551642552291720705136450466421713517134409364410804225524389745555273039551095182934135296837378997976770331194864736916793591290679471968366926825835011238723777592489562936403446141815702660612580264843971197177714306587862421315346077439636112011052744557730430402975520341028482735696486432379443955177508487311399476866798097253788129174374648801933905770155128146125184051875414934354166785134695517479443468395112663343443941322676559117187758826308516725982116383628694004437428301805986262958649178580549022194098962057543049670551644464550383228225864825951597472147224629555659731910703889749927900099552599048078206771583418100357653248541244285219678582281926920708460879658789581447083450376367100106768340704320721945563078988901939576207376492831230577412138358392344455789504173916930775038714980917948236948764480543997310410348061477962164846040401540719440794124329411596894044345933974607339066653255124604330038742855707310552819315950478000095034718191390399386520485338386944458019698173962443026468646405148148873303453345675603797628244347398722331669151354136492311292135494611787966602659544098648760368216628507882739353093933439850298489952490678286776626159701946301712425519392981478864780790597444569718442048645918768850642264629610170098001751806281734320036148468102532198377344896234178669134875741674159027246926998343144012322987988876301169613439732108250508580654258106205034036774505864726832307806114799655066883396609835959314188187383657245416706085837325496285675291608683323396079647023351042382569451742557497659189273448466393359337660236604155946570872379500003966378581523854143206718602415898492382836447256277944204384519861577682400667692578409170627575504884839232352453910790897774672307632935874206838226450867380188935192203151568085679243240118097508701593754112302797604636755250469216527262614703537219536972092301575020196783308042019087204400815003164384158407790245360677093450831577054477144792749894027119439662681211586754073504356000425373554910891768279183601875850030623310671506996064456754144971643366228330021405342855602062658895331795818751981542474984122936533651772166546732936061397306303579977500695042711581141347740348151285899950018280875742573869577199259298004032297460618136053942970547076846634264379032945828399310674004687864985888901692080835069220304418099392623071514532260231555741483010746715683394460235279174738687667971668209096498995436547043727873459617827479529999685663985836971446789659240560340367910484390586840317268618148342672318508081942701063972676942163673208123797022592160395108247242012294740584609121419413981721321195264453362404695328463648295380169970477787868335333206257035059407019301287510474847950392390974371774001111424705390045352085898531468495403651301512910449909554293812429371774043035578008257791655374631717327861973130809371854694736347384757949365108449005714081046620849179833844590324671586290185795927189218117142460625783112834569906125081038063226225575799842206962487584109300099712997679486109843092073009812429045315641932909260968880827811164081013253946375946662559470782329032047110528043691618367285528770106845143974310308939484970037314988106433122755445192769076496854819205620818891976022053434650326306581697649457942419093956197541561598293694552832438387969762637246338645307111895809763977411094884332555707217372718318039521172186855694039703111797233367706075794898148840048089488494363897489248972033921870125478690031809595701112221171129384110194814421688833126364821809037903008467622668913883668702668459095281352334112403850785781671194037328807655035828967068519503539954725731089842188936688080607763768333795357676984330581315667560618874701199723503680180003351590242600040418472270741758409930282027921348320775308616676685989104725687441677892716118187842973281333256437320555815599497947982003003933538994523839815698818179360025321144395186659096727889847596739360655567199238726872133812025711323459018634962583156243119904201159192098427670912428096642668585817328412561644426987690609451917349052784384294769745147111335383061093421457041481882281710676229084563493000801443084954322200433292352014069604054154263549076660796814147819665177350409443969238133604263390798319307833656707729405842759439839167512988102118426234369677024651839774019627650879194877709571940632036021712285311792368328117974278224558660583798192813085152158269626592784295593808200437084760572905602876993818484325166720571181291638247835363101698367662494379976833849922353404691972629415543405894235211556604619657955097494612411959424421360487539265432149049215132032145738681553852039739148866132422464499600495940641474925316012888411888612629795663369809872913047347326554923297818333838263138131910914598594569482590845931378684241566099363500485335005544408604468558088540360731821191143336570454296149220264744165977032865804446292726331227347127656028563199104744094058030759130826784133878141064688378663813296812204066458765359852817778131186076361722737689405734869256220610283564787535740860753680111981431985637365390356016185243186691134830073894358759519805369848640888095138655672191982147981120717807226957447112465945633738867963036358223136477602644142265611017559635592850702097336496860776481939805061693503225687783873846327767635722302623945090438129441450616483162639990362770131639383404251188418448576320271828456580023631807686154149679161109633823000359915742948352450360539507901876322016891896708912887819930511202292861701837343531087986693998079396284068647870626636385518450739041228131085314545066930335620384385977953924908319941889460362601255653702475358272711513401433371897272647020035054235008202884222366176296863292678942756864539717141262280566053363395817242887702629444709842789194618527469817612893645050193917595974321770336265099882735254641240728690047129780458446470043603166307150710250521549934970699579015736569720868327634578816761339264289997062058837682469753733844953382575434647582718374525283860147700325142910785375388556325996012435125647750199051354043660485713595684764471674563744783658096568270433730091558738123088299826823439569851377000536656868006023079728772504264508199821741113932277527518505564205440916813040405205466778702723411275632493519387134069825170809698300540824302886960108214064321560142948720963186058052957959322029309389801519742115430007115079450095480814942706414753129932650739425168104856842281759484232811089555369263811285165397244886492648755217957795115723980916414846439498356291871978082651467662825258481285591694497561958054519979377770740091831930792523912913319204121444855503516814183330170203569948598385599908701346606884177741851136821836688122052430364755468973863035105316441114899230062366085372759588701398012678824614093689553318243307687910085702565828743791535339629589300699209945484698467268673113914481847386978745451989100743178986105642241471967094357552086023044149075474807928272122964758613160355730691400366866973129680473309971021090528100793584141472915462150486510269355314822764290136440207827712112539501753937863313910000397568398141455107725048223567913177850348885853336885688458118196849449846861595075575959818122190750948598389309219417021948985461163844270174928554881141671340654172152057373966583585120014170664757176715693498401643495818977766129281647699634463890674666028274008742720658063549128517218232210515904312862062336961460539269636313765805310668976781698485473850318552066309816996520601354352457683279253398698907073927486821962913793755918248117361002042702691995581322313119794522680676114450781464892080249043734145255991139024007104333483185069730239347132587063911609887797999811173112129072689173789678606131056315476805821595572567689122932892030322487012850326522183743362693426924180113901216571322113008386849635364720194325141051904137682088321863444707069474039596330287747415867589828672254608194609256923858527422343370862922593644068518191180325398584626473662608278377827387699012387899612050395905779836488918702960477943369808124087480569125792597958573050375290343837911716945942342038858199251302742802204760941637048684560118335604213446620023560818237411255385737918287623119870837464877049915113547888430061366896788165084908357858198423101146357605553291425354433688694695016979886776511203966831231334649013953106150650161582915690758780975327574762727070792749585546369240706276212634239367043809904043048751051672163471981536050131455186686870089361571139670845860411176667992566324606070802873426415407642169379555117612597619885306801103862446891625591765151685905962760446381597275762076428380263188951074487715198837481318994654762057752040847953470474469641051528110045953799823801275526569808836301754610930089226419355495728794902790583573558026772033929140070608790802015617201297144855805101573665147329972418556916777927920013494752985985720090179792413649394081480139012995915851750476706293274421893048512748207071326837494339077529529664441790335790179167184933318120784689159918286087258798770239082759536589146963356682536552727968863732350426560675518380412387902047034252301400640363089054985963476606671865100408501979578505942816559694420215589654233528133755327318464448211046624683732647224261014855873335195327682486677665725118708067698584509278768106877464248318355765684988195883313781524752077282069202610088260749321792955718107355742752651692380404029822990505565054668615915751733408045877685989539829680822110833351043324283505237374015253380639701707159104328756543974682571097060175961851919587352924496988185576994428889009800727285942374679986706780845827611031065734694984627021173179704975768626327891824553705166566446588733379901537795369096592727031160122848670568151645369649951136335967080347710976066265939109688098817681628516795907014216251737389913037209446711447825105400130166983760561779055995060094830647380591209585762961852018010101093572425337590031673282422995970261872884277327860203101691381326339366957572132769213145081384171321159485781262172346179907883579802830613428784903508411444208660591760271540448400661172201191075955594174772061753272110618134510101591834402530585023782902041930235594645983728789228096717179957376930598616506707160853491675525215669453308093831895402790717841008421481733212439992699333825675250648009209276164057235271192049549587178680919677065639337911318847972551265139103159179016515209020349714355118956155062748057521242638147654480887092008388540325154689702032780143976086759962761323039594003880560647186935613141177690146722457240072276856295947742031470815059946159442258986719490424188160078807242235117433219549452516172645647749764310429473748727697098100031573816870537517660323184022194703133906072251945903318808539317700240987262663763241166670702731660556022881605150650957340565277106115041673365497034180542203793033630187626451942127996947267239687066764334492184509459736672803343570655517101819572835938948043166516805548278264921713083416485987634055385605586154582649843883609186208958753191977584278657659847417934852332410413385067622198808021335581408008772823935578173665719379515241670039927697751285235385724445725814635895681277919758865542819626409991036350355049949334133978691065544768395139398717618287431948292973864628629779507762785227360154571395625460105184448256604407153126665200805849481686052889694787534676227423001291896246528430258322629953078181899390340651298165791113242722053124139531664539426145667039106207430834931469902601232206313912051755726844028189011381078771626837634764432027419979356110884803136337019030700246362011106288576937869517404132526769381205203966222970878741705299408150233577016146053898203996824144720053509952383158827361269802784918419790607344741409143849285188808267947287638992029168287159829620806579035678477581371896609166818628750976591966913036915147278145692362823711169709018663899497163349122484991626477109630921804949435333015287137798708628459643382293072484577444230450517712947638023395714674645372485719380449126228190029645609894144721338969965837710723364683721161650352222252450010440595665683937846712778150660969851205641369452861583356861218988409146740137227807017795621649683368951778599962291435109408590866614396564901694494770188704553044081517401004750903369845724992698266612048707023483000742167675665060034803571254360260682846828352788653076046562084894824749740004569297096557318636214380406658354348038745157678265303678617768151337617946273235634246189423335220902893337923850300932960320680475854411909873000688179711472986030633718235035797212204626778918492252340437798311556251809726290521840350379969207539031660821781496388077956559491479147192801098865269994953047687815212266176328551396477035096619995335657310776815437227505063117024200867130687452876910276559236274001286242805204105582513462172792638567974530983501477104695648467514622386045961099506261511368507463247917813309665162964377861710752743265792074382143506442799879129803103390106032461012237611066912012870586804491721291383160965824801967539919433144476738355289858208741112653551221036599875846582441448919768932875579996256595312071863142977831821210831711300487337822668079695245332499287552455049833461621577157296402594026077142563375358203297986467121904722960296531011827468817081777397807496511312284184718286155222664962513366851307345492915480083978636284902122687701797763628416009012387272136944165148486267356928185489702710391642097748619983921003467314220894631157923574204953796455001745950575866580274252988929052186902673737632497551465147229137965453859229715712399103064508528620626360368002014542556025048579015128640750965713654391714453610881062939112247975322030699564422353945298977221502554765318476185402801766214269540196569925680689526811363533199181784243010329252290625942583001970748959249413365268070694126913549097398097548832083001186853695482631593511072546666854231506061201525260885219487491309570178933520432403384044765367419633701441445855480776335335187577559401028281863016157858939813164418706828507612664196469400454480089093307453829898273806685314203219771077021622696391395675953678021641568443729297267495234141762158577604147613439042066307668053393108498107172599682792922124550838525500241754066693885704244280541198292520474536936861595941821927402885335841336115387252751790686957261271119057805482981027950821413553692680690880086728855013410831387453389795881839488808342456936872821332355538681839917025982017118155168643545546455612675142251370999743687642257307100036108909670084998707760185700766803061873584854105448824181565160550697771605797226822378853935853787508235038541631264740163213607169717495721483293866442428744122457566849228951124910757400903376395367339021210831832053127106240975861205555736831108305321991310206387234642059452118483147715493797765693446734452162376480374184144109616066959405342620365876951625837045985724386022015228876471183758978227005115880077518857216922867931653833208172946123157102496132874589339649431367236308204272612258117526001719507997004130683537983357612071607425171787866745914829159304449985065031790703262399163030609142648715072857147291092869411634049839262002229258279465591849105525278733499817549011079321273311903791875376711883169818354180382417301981077834162724049462016439371848396061486021302132795610630353737071488934156717913278201352203351404463017633752049774813366334247871966225979874727497595086138644808627949806406194954620065932810167836403144851604632914526958842233492722186959586678507376607009522232461671905142331508847510199677898575877478348714267417418804893853125682465325889046721538633061093217661389729485468522993200074193581186896487732606923722209975939156371099339774601040218180689587596147878721740538563809941023417535874996860600108892929850816409429276173389929398049962972584779291613136008254076960782281436630571607305062048243804381981139833528459320426016418675853237651932209625118462501263647304918085051223171706793854464893814308112848782017766857079099622862433091833994838641760610713960810349369552075643571072845458891435036726889046557167562524614638618531298871222534979699590000998813265453016937858037904349289861761775004584795733190177423833997788005249920291034742030528892923823310028930665551420620136499088955554082488697631879693030415389591812543239301836392096573476841124967312753623600947678125768072706463384549852702456757244070423060829677230508043485790447737181239038942907158525568976280152364265447641571957137097773830668817897774599472534895065489749423471462488475787547017312120375304824915263906628664943939036488139434736108996753630211862905378289779365368304522109660673997175388219215432708908098872133938500302824159196615470408542453786688352735555617213679520573917654997402030109854791059858843905224640266225454229034597990395459074787351862139296042634394494710519698831554336731976406603532401546820084740559307867820368231590244190069407246555923910118998128729599471091968878391099551388792335551274022439193990425422053790212750378824771965736203661544696904312812304571226484675232759107278107173109311819270596679799403067622151585336094874777570439360440007560661170549193053364530253444636684111727661261780866436325656903510104159860360054354538354471453164321831353614927134153487168380405632582421674697708017071447467285820400946998834998458941416427649175668676569833339255128072252190277761834699753023625034904188597632115225972007280080506230322926247478690882196276794985072950382568888927606842588666942070121991750764900403505524500755814888294994766012328773057932685816921574679478901211436455597288033783427262102722029061802128350649017653498862157209383106915220401308920414893455556405156478019195200738268301848078610789755034787332091242116693473372420552873784344837592717130952000246991819355318468663573346993334764616686469767473879052267893428845414456788233450641652502825758159330347603214919332915401068134053821207364619240365584376583471629391713793134531297646565000526707193026740069684352181067919699545360465543047102719948468361088898289871164532462289021036314833862250365588374183194479885323599697532262822995917494125102138952120901874797166098876830143470448308431851574365611967912693252343928937689672288674307386914230146751461313367443073222233187189752345944631458906821605213310220718781799606682364776976427021632755955880863179217469173396810373073603681524172985165622308866757642641078679967303584918226107247743191513476438320969735669870255608481466952775391856564719205254285697193989075399748102816449624122170502929555086453874412851360365666517018872777107448714599599486934734413487144038852039221241800659801469833714596199060288160253280695898261925935418252617894937236197610086979093155261603198179546239745127765396821560608028787487222617570653517738313858641572046175253291413972377481592051554922702637583263525801316312566233805042487984542311758809009521496938470675281729441808491784238699171297957359279287289982962556007870807397407351423943907298226267152311084305086707179038337940251552359848645089457988679420347650029575080149294929068091482312410964963474499898695419891293664972879058662795615443842306662202860307452538153816169715316537076509612291426677553666160870467786053271498809393133704377312983424735269209978782638242439850521498664439512008958616585223147144299156758308340516422141923286666139767655696288930573952938813811392016737147147548277814818964392740698987551011349276637536845775730472127300880053540160321403171700739716761944999493213984981503231969372969765223404521273267164859537556906856666608059606070507756939470864813567428464443244467660033768927374792792041379510312408978624673928881919793103188924068521492721701609553021160550667409552965960962033272359042173522531047542788346584163058730327138797767475963373479645552960156378240988014810795406471942139625127427080313852844874812366093837237886814459764084502800545343561622828826755416741466349395473803617225872902337324587189526363057093936221528213885762169753613487079029810370354475939930074064258590565061461036972390033061667684822861691553450447954345802628461285724178818733826856623458856334891592372273840979583615588453549090739048105830011668927965173428906928190232430214947833500564280639464924962995477833913209834241649066088552341298853384370003794163325281423520873623877414892455066699286408012303260431999312758153134048330774350223202591063196436161584893337624209839814026070819673326049687823883254673601339920509845340418275552199275118280751329131421050318130837482537622294013837600027137422968541412021541771147294209243929108012695222468099070413074376136917487788907385775416338385767825640319539019394003997559051780543817318429611012319569800674270350704400691902357204463129929538764147647073051465425565810999447200756687973697302160081657955699012024478024814013175580984573839951750772176140314220055448702791780820107370302440373655162095147583079870609054713636589554480001490163543900807135108356728712162317480007695537598328111785259921791410194079620680917043618461336056889012181978147761290418176527619481418847811009526512413631337151824792809827676934126302366290638746162919045327858946651135998740170555340680689275999985001515058808143733783533768513857715778510550511867933297995293439024616294776493647467329490389449013815539003906983820951599882374572021659104522813834550791284719141355637213652016407307360429980945088230855191904496518542409964590486940366537493536076070812091081370173456170862537863018442586777635233911299246735834643791804881039924222309503113302617624162676463427034295310380438142039396529670634718613484849482704043875366576657588278775236993169723494662314157701423165448133125647288684586004527419642928949010596487757121472245708651967901362531148565653401305845258870162618161754297984940130247335603890191394029850429855127909840664395514025107779997711103272488814111031446767922629928648488473568160104122747035548232615763791595983192498869330056956972864031922193327851291471211006738746766561380683330834029450199655493858448438130984511359307021001612418596000315242783925502004776118301887419131638420397269609974267290924696910070213079419173383514107542965648697336358080671581881288597777179637186961834363579360578090267472676323774328863138061954174178241957813438030981289090900367599457764416285028491705666047806606952573859969146101924485083015511751803031793122671395133501440268410112362655063070270358193672745548249083009086834565805321168539909139275139919997981341865282663573627197734905195207059583800246213058563850600758805082894446745882563952687258122375473435595652991444213904382303744727826107810740301094143712647673985976527279370536158256346374252716975917512136551032314205487835604923757578053934694075098518467391349796453340266282196526209696188146414744358397431432860332435982612344745788598402183999059396649563424526372316294548884325034921048197350960552491494859899371507998178899041032402791570242376263622294381619569445047584734424938430021394220453089563249564178274560296145082060831252584275755223233944021034298665135725809413601394603158618052534628784395172626474653350598793114643849034682568290476483665158921070779613982691899647926444712006729654898762412062790606503106503645065480194314897901588906846622977033379955477383031648827946414373311930677770306911678564066057067150401194772876302179365265161172866819164618021004941121148946169289397399217110368393986343784365805971558653769136364694921655678014049062691759597344316559222100227643851381689802317483897451568243522867955582049348343411821480003185488913171150524182155930356702409520902855944263705066142265467308809357611222390515525027071788066113279506605796560735216257538856974937109061760019558050299569355840380312730502277332354184443838228063405316750876931419648514022574026395063440800889656105965926140401516691111203150925627804176885557766805676076861560470480300570954672453047188917872480631269160620336682793246279314130233449137076338626478442738765178884347612087798795830428431242244154245793275648321602859610096382279605226971285800825418190259296588539243516816765204136372109012949178294191988523437560052019750058275252851404602680568050435392078357115509030821359634958055677488773603805605324578120922973986419214981975282917214748474227416361035243124593076794987671453690249468172973281039970252643322059644663712730151472312264809496481504388787542269629887233391234349240625211930264208758223722594379733134752883826022368346966024629832451984730664472514533215360587436280785257673783395379129856042776701276143615228952720975402754583432999300356733341199257383376580783832967144427398757712157573698561323391129364696248890994643353103059598080970875418303072697309944009822341666049767575104903679029114269408572874617647609926984555125164830255701135990784601479690234696960331105404457847255212725779111495403836734642158760474472915433948273619332163159199879562472790099023783970186474297216386016215070802137382406302435006587356134297242203942837561960061609815314647951438045225967920806744657958252758639591494973545187698160220217497922163713283974387266154341786217524060749968809320784858221633835317240183116669470205423723568379684958730865827543587444386036386911712683933883821311596729167320246567806178679192012013295295747760595747043094828348478780791517473361544969042062622772527995177546106456383639798264248020018051083102168477643875409791040954593214958225846259532129577879739159069429981480261896769045700256280753622625986601236197677536411265379460104093257039016539195887590923611396625508183693989925969436763908362294322270061959756409450399830951216070273668432410324278227404149779593167535230720541066145275028361566380272327853914666832494170777130928807165193349163457181577887288894272647129556165340722287648389435195631974054440056122762041159505030214917445995573936745128971528162526426493571914820845037507162982458442899666711331451869578222815963342728299034344257791797890183954065209863752230850745575380339848227699068182032276411227560302800747116527047434569633319988223524042656755910796928887740964350978964152021703512962474471934027254641640676970624746856925601396449523490245793333466389932582458910435151090411397828570670998574403100693591858050355408694449444334970450419229381378465972068116075753834550221660277507275572411229775122511100959380815517415040820493619354581528017345466510832026895405125935779043875377238132750828413524777916847080804697370713936124265973698064340606779483190053378120731836360220889961377516610279714498979286847328659909252277630201871317889101922680563022385840864779605258836354216039612560948091035609406882953323248029712205477011926156900741683569293887738040562247143355954895185403804121308921823331789549953995348604184646186912750181455819781507480551176203180538530766523390495205319614378016496124700569487742950351259887407561212209952249263287914326847763720002045592253315094817202739840881574689017913323071586358589187402621424571921880486480617030589852800262942802460593059882146871152761993981636895970403866217689748972165455657052898796191362154197396626790260786094408466448128289198755095825086333876555534192929468060022057486907965994949797523032219242430362746198589646593171665873547056851478841659061292071092212485302299693429730005956087446634096542772568241516595063812073181473345669421983361223210267171790993683913631783092510763793146449401256165086462019828212155807452934873019957804454036028839953175662782135615414857853447177804007214835817461515491106894412959845698671371215757532433841692396988828129083731403652932204514382907637715331576277474518210327877113345157320837859116784570781803240281924132961471741163611410874026507789064750929514310806958895828332035233554698810463584401154637696449404200730841436714015947833199949454813546322183597815905153933711332086748291019192679330392639617656815755509656308057516946757551147003911601756423120494320015383793971808212467698014335365642495183804899026921871438779021733706769515642269587462876567229147908651686906943655413572802066408864114189386843295842333044103931492028373703566846005855112257741666695538395835961190070553522936768256822837228480690968906122287688666469487136484712244050150154907004449816299692269862040570199966358723965155031315592179328963127202577972963215259622337826702667453507101406577510450920648848077926318948389401778935831137362583202321930917444958976526768731094752735646750218712469172588280285131957057996757620276847778110973941955110339262744647238281479699048445425771912048565005964793292636461612058498555634829432041029880959110885792093555330464054459707909030209489146158212612475735650884155020921533440278449133823782138609292811758145125477285581931988863471138493804486714034294358889977595303531380370098269687373173293842650973612104368755371668295941396347036609110932093438517052015193469163005158838965030313602714907287504437675736280454685643424030467473178700365009548825743119096293622445736183299506582025199603788974801441964683481741999333005922026689421697392394998532271956527264896553903433444657901646663243928334213382690352888517335983738457613933913753191219930922721747000549038261296037658851392744704243183939623625212388966056123523348994245072920278910169712629492792286306860085326276915131824057158172746707218078254995057652237855634567376802612936828305003787285217942139130780902454497348447032028592356165705029975200696167923239704110577660979915074030643183972887855931737366992410376790929322496559329097721136794204313932641198487508637784018861774988288830598862961112785976611716385405362757779770026618992825682646937599638431783745931549620105683852910563166334136718953314868750362395451204316745410411733973322264815061112280352436903207277267170542488741412869936689067903697840152008183952543617162990213513962368488924507209688841544386151941274716590389026816431330929448220446239865649078169226037934705121920227483386732943907689704233166016788037437671525036405444798065949569844723120908927697434792968682160974905515399237710496091408642100515781155769391421678465472802023097743674223167729203718295738291643064169754833823706564131835567135244272143683318823590087505007352483178061565748188515923284287917959238421087403571967862124190447816720535659249846755055703729462091567837692057810823667474017476115994577660124234376692726524795761280632306584503394246845593646877639492713363467412497290054849537655981598894971146557210011988644847456889924349176703521936123577651101183890262752726571311655127825393219259696817291358022958247273695867414642669246797974031171449700829590526059855743632564645885416485572144320303889732224075720442608514691268070328697833654106784266587394072676107935007253642763484178934913006824141332641024293341773988666343082346505283908856926492678672793437379378351141960665889691212209682783366142446386797730519806934058306203267755753429308714704356163557835382408557782528518041725783097137434388583397006720881107524511092353486320976022298407332009714605580645559980301771889157316065323291392757437760886308323543326514611614455744973219658747642628648736686200193993302842451793018548114834771633890784636687673301553048413940498004916532617911696345765037503444596283895560701309391869966967231846131392709358435891228886670552346873605731209354262914085926683506605393273055357606586045029457956287271005158433706187704764699873538365092515716150636898541204704118121557456011883761459316810543444295752790524307292590258030509425360560937083026127841625095245686655824263485323152817872934599498065237391179891307204360144840763792429556044119504495319594381813194128986943757653141085146328764534570175200459771114899667924249544337379969384408812592647615289800159770199069746974385223610928708278303959715362919951752356958934094962413416738489045732546962170308192540694045124136727704526737023829197842170295877281557522708917887412882165653373267747642008529197083685204256468858908698372308421161329428324452594746470166048683360261923499618755364709711096182224124382644675223970854077833665586703332543279229696173183300293304844456231868750586983330065767076592706731141623648810370531453428072315831950043144873304969845854247590812153684275506916582308908091737381664123242170802652612766116905668926884510736681177762825180975885111094187064689425809053864908946205417395205356124380829859713672922401854567663367494323984975968360174678552431508658958507677935744054151489376685253037194063985447540106321560251171317866255265813725127098667824572106837766966278911852439775588741403662751261617510904436832761326589822701008816678465936726188774428872605647815809209484910177492033890961532468288262992773708670413677233866472144481447336056049513486382503845631599161266446270244383051114169906292726088103578827697263831804015573099290860563250375504200640221447068831805016627724749906799897407171520645142118824135829225796470525702166265930892166712981404991610803291993751537837692609749485408038487269959866290393890310036887526871141727824035448769055726960858503891379671128714972499690653612443463341676639338367271356132331653951015384057521035953055586029551241058974055610854222213831228616527820558163383487725007409556579570441886191541845787596603729200685274730147279897293177493878424007657817411219074449293981539383337045487926658959782956806003817520926292898268658010435372913771653266094315633610367345123989428989323097826420391220504425063804554893545141752075665482439928000437776237358836962646421440926124919344549025932533891303238638895250158151636260081851591547009750862335585867122498388172461220528657024344270800290715668389613648753148416669715906951544294549225991694425696643141298017723901186424596700478700556419225140688927011873268618039952508409324978279892629407261261227162915131004871917274807040356864836264298693806852005850693856119923255534938566611500050275491252142964798835951551574461519392392674273067211208823956715371877098952358960800089980882459926215018027470570637606038673243169044595157140748756536106467040955182690511774437794511392998808571219672065306836581266537408190291052316058020373092587735079103548611632648457234430365004544239406693540070970822638423242584915078016744869967345764845372383845709706294031280956474991559147714851013364924987005024928477047876426947266936590637924031902596799489180980148846291711232798617623200644312155023746095977271903641049395139335138888958082613257269086413867978928112396905826343544756163662110626665970424429286427900821289381053360225886969244813255577554309199113259019993117758084895693573081677460999457393632046608384520025113399653879704980109344418818064506727482549930073835435075373511219890341517674413538885761259624916016620932739126091587926383698586415123758125353262585802042446559525581268408342872430510842568341955643897503021714602904599019903945600009178416403225412554684571969243259215500328361110010258967593480954788013274616318787905689291156259360773689080515864429307868204998458150727383254360440595128717902326849908751295344848624873960554985103958145391439674597021459593382218961930964534406443893981043001535859591311489258848569230610855142904973829923135071207509522423944530290833419258667945872980761782017708810310156853666980842684489515414957938903135005539125415763666169095554353882354948194486633999463366364190490823393681145238393620872836144293697425251088818543488545619111771219522858582515635695071915252079543723976803796669343031692746306655812505048941190070805167959999983980932297640585746337652299437697913739362503948194289654013046991139299278689430809334068026103322498681213577987163602533435112856282634522430399221222768992705384651990233298671089031407495244667817025712091748606288227966794360842016046660337601470212252418252451216169787592059249125501841489193580492433646638692407922795336287205402473382837145170049917048815981341948853878701735829063998187941808186006495564979313633190627812883266063035980362176569582582395971025698331474523925309244286340412415540451485881089142251646473852249456492259445979906618935359465859455696950896047527573429626066279939056502068999628625898261926087829944920477617592029579514570711565286541852850255117812201525702842932799228034438141536596478653516193232514000048456519008187369747545608457764143562670662288233684773681351008935618422187498118204613856628142791262493403237718666900084240058350282767231151897246633759225692304474956702081086514424528791093621535811860450313836121380947810666387293219330567704063415429162452004350875971191341752014561241593239513483846519419417664231638561742138399810510261782293325045128182135333937327590029447936447679424816128766878369224739215266604634543377031985614265624694690297944273213535980217294858561320916108564208760415483560752439289900401412083880940142419646901317373466295317009229796997267008214221985344922861331619080574493199792041809925603874943385538201440728392549855097303907769561961308042352011748119048667014241935072127119231877833508325084194102584554637887995328298516919402322053543192907592973626137447659383039281872876831594422649344708263294386422847547119164525782687829115007030587006297076673346545381721708884059722368778989879915585307046224889128284439643114716529799595922476795711558132023185011005752532779053376426842945326263156773584448540350257777706798996287665552625830409121814528012171345760317073029307638813262306682349836043180666604033440225302219950189342461336210414675883878002684298056671208749514371388638257113753998351043759228460027661726899814403585120772093249020282966722771137420242567152060136208736546128556312773263342214844282201380543721366803326920221236789883442814187744054275670568501666948897290926811074660302198005474128196225540782940350760613611824877477362854117584587101563236696649108994768048099926053460207436614732708592639543422791229822831628935528708994821742737669619451973164335393588015036893728659328486475907988855006665326998452164084802928136077751077444008201252449324746120114271450190914194505769966367572653047629579380949855778483333979774394537443597445245873473950681419967492331208582549946500584537882388708649902692393447552143655365803106402664484838989869429489103146604653310669981720611427357909620609095277091259942465460830478982653764158699212478694095614558634643662811882841249726586038959753757432272147792044421700924060568176893935409429589024021468682760985724898735844589809246725377260341244923096270497218609921860195339090860122753274726489914157738055561756444830162729277430309251386491387264711540462150945395322225794173162608986431218076338281593692063560105211275252428435271787171174518598876282263461541332629680306933571217181646917659850487809352473772973423480855435568267182695341544294185597448347333842983999139042089692789725768057139745793668632790778465886792210121912820194623027709374017721862796635427892955210073511410190346863046754758871800658565632478838637707812944660918823982755061734472090363414306920935349432765336651913234363585038695686826153167736092755110164292152520153680149097210969779789525092146149563304789779736575066833713364286336542753548751564730748954359142176807290393940988069819894696924911627582165362624182510110376530464103439785532062402731395789642434897903880706342535369743679393904358971884083563700196919328488670493822158386171073654813000153904908189656826339142578467552626642373062092866681935653227417523482136020670948025818570019451446862319209648686001114466139324775630771087724129220645025604364669733988202170085723708063400066574852444445583077317549166061142457289163383894919787216873155039756777977780241237616505296861443628402500968608687271592113520888985020799782142807011967118890713618266114812513778600721206937305683400245496741103532284573287277770594953908097012441180026367765301118268935026460373771429828433456628786886696846451512045066236508558790123470017414249041954153178021368191097582999426072485425946438707758274045778352189108343048465860699559234455038911702279732278784420248609172394673622240037256212402032632954109263804772733504900646910538473531682029346487694546109805002332640171537007442867770073967055307134098818979729389818344880675540813265187958606694649409522542351731761789840194445341861120501338151425659657362701196461384470613095105964332633335036838034485414777147297833738548315394200390957704284845108069482765763393798719014810810531881769809949851560507280024471705258742537016018984914564177752889198618240595492874587970333312560898481320983045259870924776108375512802033963444663660294518403253305462825411258309007073516543450547095152102889508517841353777767260664972996661325786601560445535315127843638933460083873494613475185977256553266700231186946496462118157509344907674737477113997462950070490302861674573645522226869984468744137361660972835132497169818257807267798446868688859550414451961431142489087939212303169738077800406818145435219058905752941838654430750484129658102564625419481471706004863288164256028821517242059067754595323866884436874585268758378784650591325385596069912811728149747637225006908102332554539011205026884749066452704212624769742196053832166068625812980212260198348469739772616082315999008602579669914511793317657480106025372296457261663874909259779221131988789628895102991323847433888867155425094226366165848274584638249354178152754330565000138626795319962476873814596109503454441600638305467445635505729499959401233500917920772047233553831394411738343174702320436513762604104413637014621438045821783013992032490277587445508312916735812937541116070832501676218539773778987928685549096673746209436980126119748546842566173310026329096007568143156785323702285012848384788236833327384711906159528113525470377776969614518666846341097995184864906411475720996027962940257472442192420167576034271374975496057516952955602063634564112735917640151228556101429246983796089345702792200179913148563287429267245256666703126392192024988231117450729184585507836478746951417843978579717575572098400468659209105706642457099083374051948481611208313598147194829789975129719766102441524705350690231788497070084286838310907430828293633666584791050785312567640920477524652469323999799270538998631480384392366850745788682111240633968788695293928563254955544288409381204642680408717233711727614755143033071247152587242230340478995704198720667894478379443203467420620259629242994627778368845325562767512189788074422513194677509040721821135235861226540182887473736581114416471302547770952378370379954749698038866193309409773640643546587273237649207888314691826989640475660579507612269064335645923940757209421848624047846096947250599194256336378502305209528659047500024700390386246610148267519213641137522136060441729773077399551061709977094991177008974994199644388283485494853096935996814680580333043053818285532666238109679871362649785280008939278578987549050844178891419006189596037736588044189814013160630355633592756822947274125634265739105048891918893438464084448896879398624708007940731619469884864819222715040501597977685935600343900100193842290312978517951672490212000110070983123935826753302843400182258210565473247513016359013208293651334835396404609752581375528922841046849546672858976249792575526156205387054253274586647802774323859242650800984845754802991482099289307647955908340633099812499098340610164524341232738232712140307729364105556239465411888082709725893441819224405215993063835763310910287058373369188534109330966282306696384923861237843931415452570377533051515115694326321424089472804459622240434352729827913571417700531980550857900734958159254843000941395329286245090666060909680818015212487034157324275258486614172048928503046368007958302083427079158680406234854761292853401041780896535652081571569687343743367838778084006421547959016602183224719355797218779147466078829489066251437959763713839239537617251897413216706930809444128147709805409113477896784067439774471363037610460857303918184588852582436447485055344340724927756220939506650733020478562052785030931150614832994904691025929319677692535985947583267779682202081254434938890566954744272228282325996678695571925569640480182448590094926269331657740181485443889074323129416330207535790722853691546716666333983325222648530685236799535574675961141485153188618215145870600686956127143191604225032128034760284980821137950819529038122254253594609973074591427904151096714033894395808834609233586247882303259253664317851741961515202342036432521847917013216925516921341495573768073421133602904602567615637378938872129956352923781216157086211793941728341826991899325220804458537128561974087113614765034151465243799037276115595051810454871378798395133264832343161529029013499249790356573741364574435565974793848174342269438384786239407132769566060982479599816860228050225050065085717320372792432104722578370270378126333846640426026799165321351426684926093102898522548863665097158728886204809451185789164052398946498787859233998473303770183820916453772566061576265167628576937241185231751783949870937682043973341385648277821608190691920117192180188205553398212563692731760621627685433990040329132971983588355914570516279394234801876729785364541279491784522587856245241242581144379195352138782557139208062119466663059222841884293306039597476928397512894784438488995860391006778775463560005688315903130301129223969037096459650733554535944393122028288184942200289447284162146496663865407159991106103789442502508322284172572536445559434314995303491410430560716106993119722166679889299505749308383872665507450832487237276954476589206628196915348491443563733080303494216127183969720994836695553837595322599055142935728167400519083189761931878807432497107988258874079868371420850543971376603538765700194299569223155242616517750004860122485743762569196810085372489153298242998194892578632254068711652592242303048475417233036378715091505246975420607883620738255863502431078967364284820541803519142631948139192711374441619352157553922736049056532357104191847484839489844620519506429323903057305547255269411446360144374058443379294649961929150459333480111138590609264573255003965352500648836672515653615373885724540043739618547371995869626449998571228244847381025803718910218052603471067308097566484197699106539890675848126238705653948432719753917954649634593800104928736572301239892264972769946610291040289925870219037946478679790953281191225051348324590287753259049507654961579630470529281095741886510604175383890393642783558474374479221070049156458703928377899184066180566980765406679911680102631042746261926231493228606030618495019734590101355299003414488804159378270700151063366195955018214903745441281116958465062853770901206448542994932522676886763959910476040577918294053275308672145388134144766377919178154931338607358022494823785054499119546234030965520477328144150938562751349490729151494628142165687236592486728401846173637507147120270268200401467094768807600147972186858237914274520655055851565358877918617073257516307984062210414439803721392489712158577401973156021698420606419139373659701694123597427572025962897452765034714301305209464994690063713753881826614350871314729942533262658297616481629930108012530065292095309839094063477670990590243807781011347832708588311295388618271635352831619930796539874044117449176591917018154561856865150634409760984911847589755771056956186621278258179703619234426714725514878226392377832846796952312263521095812181656429702950608262816652806504544704344073206068440190548878090121877492710076673045462474165160833224226173708368873842759600575489856603493335912820625493321455098942683922363772316049410883618311918730204543299630177292479383779291657082297903131268232211508469021946091577140442706075945648383726544405781377656868142662896160462124935771444683738523161723640092535935316586439915827523706783395239104609788292169724488711786622345564299680547553901730606425937131340633964938117891214865494316994868213349578580509654327031221852581756532015541767578907247077194095296776612423938818006303500963175874556525035702026364233129508914658164166859957958156657289718082326391627063457130484802129080220259154202642644331857903143352556610193104137488963486035797088694692231902961762307607028590029750962275795173327003257363717381703008327883647909299304429530827428901836308830164033874836482235901088507345069364980884475405471087566269590327194381936460504286459582301226031440111088051437684272232202181513428491541821117579199961636564637504763490132925328005153395694856804984527477113309543700274157134033373185705094815405746500079611320820441455819507109671545316224179603392399829393439805888335160034420346205519917369666992021347980742959406177036151855268016660063121035609931347728777292053494629275312504745997202168071202290123956047521024873316012499549864006656848723406680494478416231147050779356126014494921709055934123974467078616288626612245968630064421734676248514352979972579631069581423340384030837966648082213736284983310167854285361291966412414702979761176289798198523630457118306698974868739943589738751170591766284824846552884418150772641406529897989435898169527939845944194982837277966291155862845829544533351672529035451134494725918856984544003772914219709383382535333005482405291024135637531491472988949626968125211667697186628815406305857188227829341437176828610220483064282122787662474033918022816193289748818381919654381640959370784358906667130599846042065007814358632339384904149839757074279179313326790564794452341417671509451320651281901918865196330073508045648721065164917635464958983078504052172419917015692968256083237810016318934138740348927822714785160534049878171119096433914341267118403278428723781415876073868757689266623505123897355837688742137642263031483219853758844133219866707262832247772735240237200370215863764099947989844598457515841234702691909559054466825318307417746336285501099959334343297550811476980093954928827353691931292875077478496672563325884887627988620785297024141216868879135799059817593549930295848644297235995690357335884676114316342768483173549177676691791490373590287582594552998623885717382321569224482882107151383854319999703256118303665864171033144001320273557372786524816056568694441744989949568216660893978497263448215232881917778266863693881201581695168579429226349112429314701107499076107941605960562525160287098078742526185869586605738023943562928450630200425664548245770003608901246460975230502377355698816469879383431568730858091369203224798017662347076583281129553057295806622311249822324751745003920763634677770563342965031413850767242560655019752340228963441802993421992484996998287632433995487949668569218349706764637781975409980294270852921516277331608200939423873726155521758044446393287251357918651767333106159962437690979267292620606830632982825367031453196698562343510106785358634062544732332763333129923637286185296901149187007310304480966071864531213420292869202800369924217500305334710438713696646192935700526827723280584425916231664661439021573694388256524593827392740790355623397827491191931148091497817118798473087219757775435021921713190802942174758983745494634620216844973159842451720467429323049916915474748831292286360371257684952195442406382320182676881523976058710588631552431448591063623683935719678972773948325506338823172690969133059905822741534485683613614626563992495795642869729448563672314749924114711607938682327487239884723116451758771321716223186723999432257726074527994534794281144847818981503179840529367770800272910742321320158037992297262276139089808821544271213094509990174673332761892954747477552970310446335242897353204235503241089808118516709074733924886405900560142908024640502562993437112646459246645615910280209865544361987487418331437505597975030211129457689041561398786076067890730329325723412786385374043795813303063212029938940710316446190786868071930202171283077066189624666854459648638724069014881089641736466296411625780006616969113199464588365291614011826403638399951681420036746498317441201131245348855149277756799482135288055860569849124720785000598827260660055712215139016036569903537655590663614929579499993032862227637263492637744975378697640214111791975764614737833588924572044326786506556236930366552228404821372339546357173596036034793363013695111965066997189811411717378999837412932664808622365448379753128505166546064780796081495413928276778313952458880371939132759659007590303847009775418094184915573617759740649587531381677050627380605888847113419545825205139925332183059173281977786380840470883117834112376444293018361321688032137260412777203573716297840916482024761270525593107156208057034590705787359127138446500034125362262634969994220553197569832742107737819745688064342850602189013727415912097107925027185381888400312059371206294341351508139519440197528223338106843002112665765562246208565935346785142638249753839798876567049677435373690654995052717134509067202589384706290452113849451959501188038881099331099694369389912739113849945379725671384740270400522880293163904070750182657758206802963217568862591488244472263883687633252004016066462418609374875042924246684706046919082443633772095916864475391978722929339811900788814771582756134623719106928574757479177197796956341068005238944965089366084165771671768710354230373039619742719621860480321153948697243239022275504446603656003548309805710277884443748097495234232659699887277573541937025757405252635873637166687103048244972220201411228644070058077702356963509281465171548335174388401033581589822250033844530412971602320063536165923707645335425257666788763266957063042553844871860154751796994792040070638469091884093157224383175181545515239631567961727276029197389286208769264445215725059139303387825579786550697032889389151898580551444509421994015338652474343638785493563660655832771828806009352262458397074986856544913247242156554193517469344905398947093072784905007104768972954134538656288157826553685420525413053808855994616745502396106293979534943960477980125338932572844523435175112426919433909829147906887347826804435240016681445449146658589750895777086285416573572685728892472532199317099488936606387320241389664472496637952795674767131711912587711438209593123880514346382512435681999866082468111056592888686302598898724502417389171537410792414471908750293154914426644611695178759601635874592631184708397001214128272086063555370848178434786582376247352732283482897488996036409552416552320985230241404306852953749147998700129108074580538361726743785095149437521419228950172019290715844801939859738270396027759977923661516695120338484741208238010208741032785517262788690513530421466943900214164985401704397528113956538008164860338363814408099568318872749937718581440867355643207243503448798157769023788084501160079424258888801638504482231905290708049481595243070278556675493733624009503183620626086060412302841348144660183787661249821974148617930372887488679466257469251855317743597756401499634042209931573964833644029956296190432564475567494959484121326195747238659080291267661711897973480182118631870464373600190995109042838326629567340967054233466188327418531769643684158057186043868713632158490033987344492285114480916733284470731816831476547880310382528672002128242027955890923730881490670297077064195694383279670258230793176161430938947033385179090026186668280957267220718456093931366103125653942629239544340543536883400414752054505728117049005892843849262712187770362236946821954077762617654731036438011530361668631093992741472620523129999474303477376940061564202740649210771309811058468017849216331169297309824281571121118951086755228562317997359577556198516322058485158111180733002230228307916435793875604442473862285641836762116314228334980461452882635395710462875787144889851602676164947825436824254422569046786413591188610150730127185171312103268443739015923427089983463646187641390769185385956381430015804307805928661651650202678383485457481280981610196902714789510441863042121328919735876073786582708966993258187777592431899331466613767071662730767088077771373345937698982297725468067397770136253613813248315279524098113293089148731008063202046529257094558694887906072833543530909913067082842676605972401766875130371325892879198557984973364378003273166202345332228736187269880014070430872616287853340381244745622053049963317484845680578780579156050611588884728333136996830529611961038293648407168659181110473162843051115776223971126729832606635177007754942883172075238250523088957193988792746300239802649225331201003290203730954480126469391950312400485257455964187660185016988257241333315518640062249965046945420683027518534099157061963690928491917137834578990875987080006799079978360899999124206430716402762475173489582605662795579127083119475910341184185424489240324908172105284963507021697947996875171175390114070213136018207213680489251592043566799029276633069721818881126018513902154256458275481308187711843841581191186828933108121879800918761418347029914336354433504764568454288662713298897642584432976995713290711266894707345702971943692171241042073794486560266478962087136766266816184410199763021466641146920979991392314852274365802967298834891184188159332622674273539996288211593702829235709122708600060044785863997346754294771718635224746700369175846013872103882599516332112198753275907780352151314378394683738318341951279987737690505005608661547341438522643226563141145767345371837683393553536141140338543540234053154887082041985795835766351750733889109945444865668263938963458634045605038546242744995896275247273383162752225033166456385431815721034452488455990766704925977706384468225093455031832096110280052777360568851411325583992078282682492380775230423665315497520605955940972820000042499483554579162736820455184981022404146686962132019620534212957967407217465895106825441266131378407427300389890774217794424602159440338619906032776394320720816751153687052909602611349024605712919310137721630376650515501469692992242276095068376337517448826820208585751488752515465237510374053997346035900753845635513402220261260525684240606987380155395741167192006684188889544062880312496119334696509278716122270362352292517758906507688641503007310464877894961667896375359083349672059955287223028892837102565942571656051155866134868734722922156480921509313569289288996770027698031511944745566279966009329359541295200857368718777371086861684433454041052020494124064859289865336094607723309615821081871370197399856540536151219864080769507720894658810243565273890224171850841401086549389117539711253359330835893052347570536206736618310040099383446912003204694262492025505188216971480998845403190458508472789798639965068111315162308630369830358416699377435036061173990222800735183613036748226470515398202623353815461914699783821695251687389843081758982908361593665586916591504021975779685887959705588576834111793810104398493326763928718731989722562054959215160497672967690550084429204626834883287966473128835039832773373897629568378188343548910593928074664037346597518504137856782385348688430841223330628298275526692880868352903600169918542730112064265958503900789448392467458813948172573578679728049580619920285041057403648735465273504763779516712707384732106854210453447773888620022826283793747452938045635290237848323791092577007147139094217853313898476612909303444603625181435311765296818476554635522457822055285208794899741510750687470926262154211296816374786083566564653870497643662534371592094817415847603802199596083450534720741539612852562659279390476097704859318057247512466012334198376814286258054803673035402774341969080762176197174517767904974743261914812858466290758842947832783974147062361595801562514671367454742079804024318030303962673649109657515127690222822746621629961742719809465545462532249330296711005451984600925255105263059203617056487969000887509760441597816955262577255873966366251324285392286261243484125704562548720416755530756666728505954346396528161503847433867512605358537538057075745138447708684092632647874490232527165231220998940380042017319735621621083955422693458801262255110950060921262375559998221466818143149102993800995136592952902619514597059204638950520272293612837904214413399976615058661479719482554158344580125880578800064815250526475180859234269609129247486064044731697995178298921136200007768451437530659764436248807567403260786227736531939524054309961241535148914099825024116109063204126989390897582230275775451581726343636944051610937206810992100222572409712434456127722301265196755591401051178352294981064537852344181581601310535583488078659940504337854760102107051478819130053727522049718839429030717573803474875197082062876086273056572957508219194022526494136210153888026213751353983084425962557678904065805671745479645360204444310295920623090296630456973352915117254350224418345131490192120090984101525377707597629254531688416977961999579120388855442262498110658726018195345357470854897944122753886692451890822770102587520808162336529825825315650001763622982771439405032268731430794271506594390395446856396325357789983233979745059033675995758293794405215953435833285362407104563146405365111171633710074586702466603134170865690713486622682595406070257683440980012675638657355459635076640261992057648576899204873898727873818995646951412397154503571661786004106376151664717620910032563474374968840271715120548851908114974435142542624269238638319358916945178348240786197220125590967017164733224731827833214605961101533214271136133585472950852954653444812693880043812564344499424603633989653948456190087145090303534469521136459224751549857378813811394750196209991937102479852434322058542645651775765924292459702174145540107448718364449214578991979510171005283815956255582351906621612494574177951944980669451352143289073452359226117768930155485595166211209999485241276000162089946467602767665001336719271012194488475379320612436307177820105058466984522687581142011827437406203803901178056735926472066381572862432780402561132258217463296246281260476937816197830345583645324326918189205005498717655708351871780644213725037881330173758993988569815102188554337463708395924672719045640239360193553324592483071007693432622025501477315091505092260040772817077775600326208750763959555062174995111434494510513104046671936510812133647747875227853643196690392805684234511704277466883184270505807543182784369589622542811887310384557240871546483514398910244270084381506966912197790899531125376624729441654473656323144812227963759373488426502347868814898000342191300696021711226581212453455949132203957971650674794612425867312520421988192895140572358074719416967268353629792779363421304885191348073471368132260256603179415747575200270186607474263441301201045464504902006801655788455171906086903111421482347716082086322664143467753966104535628492270358802640470048929808677159193563831353172517268820688533659648501853305970732399622974308869829695752262574662021652772517025140062500059655745977625192018169605944621580462846942122698734315853220520408597124087134040437304009264040692221725030847129233772412342649430206021526355750182097432050412026271880319918768803665980088685352049534409606656450315641857917440265136512580873971853258532939473536200265145066894106425164736835895570067239500787151997511497792776235994812614738207613755259959531972287414380965513393937152652376852392782467440139369036011359785545392191304143492105816046102272570138319418103223987181950963285002683245421571149684940242334835184826399411598774809564568926563272750362759659406588962904094140722539657014114825091131671846831371834415332870417438383805275816044726646078178374773515684442851072416062272763558967022246402960996581551333541258744304444883958289168908971799065426550925474146250773164936167204334868559970058218516976028852961396076663673988760888516203865829759722766030498763470097850011471819847416526066422889984605241408557798320324140380440469095693754082127410082807140392664790689030622339108106043348779392020689079163953419804906294681556297982088767946118391118087083038811776848459266861532935744275516226579641260693934925168204985591418087303876542425032623825189840201754239584667404481797879634786667662394408222641207977365571381882790842671809461794078588530940372444266126288109459936442890948908701305354091761443131869326582987787123690110142017612472824693449029304481025736489540333487047568517714489744174110879433494292700778361776620815996914743766220944011793504002721778067834660847492517879978036215290598736205456175689617967470165053489948769965724863580379806597734215266481942489876456951505505178685229383265910679911220115102386748331143699544931113730265063772012727862124428573014575335639878019841987505904540083492282880947431839699850125216177748741344518250164053134412408561245720757739318785637142208657748876135441848058846832457040028284666857629584222237611460202458165892719739871063383785168786599870554016005024587413641418790707249178026641522775586470098288121707510658882492613659083053834287642274966481475881212637222288090440283691438715980926188631327298435637182378517412165296477013421954056284556471987194484019008574763850966187976457229425849453534593966293078069971518831992885340469897918406105220726745996673888326053595084846588680256484462825103984728326311305714326846545895559019924222619182741441515019396563041160153000722145631831667182478180717522950682049346398316510871876673555279471098878677989140413074335091185457207302577332716744582212214114255653056788597249062904810307088447890627769011410519563068221931572324879414751499735133404555913732680707405574772469861461339435885245741022800613215051911545781813086269080461001430696419181618906556855025747799127921872364150263842439765586495719212181455013332818036531934152453281691509160144142661938407050418442081866953886036619623650071906679836580314681509402931574589476943081359973419044013962952761426984733736346761134297480506434607126597229661188741212013002819330178276388967001478292634576227197277294702371292360626479953529106574170748758928545870017338114546010935195107291565135338777410214516268320584348144499163651514199816339695018227815822955700609748460237273665858653199027476048587879571640039412121412809199679478826031638479213806857263484731303549960404119227746314224011092389435532881330571420427321214202438169741630691121601245147896267114948099434665843533286751616332572304292615486017123712013812996979201883783612029732471096413037174421515301725031395470361850025937198490582927003680479216634275673746151323880008698418881279424449148827425611426650540000698412840965414540852893317817563947037361789248140148668792445110753497508115509793811497329048737902630343556613607132735604887173802881367827258502622702173547925156826089516399719796140986260736835380054029246597477049481453606294986088878855219775604179918504262373437395228373669811996335058943747150338042808630234771883359685400477201512443218489326017354551550479012538256844691090619920210850836614668522997152310969524416612301763477410207088186194568260189445105439435016424661233656993722352075489452066879485500398311365108805864930296076277240384133900336887239378947297200631263859903716714913327680541266578547221910497438992704985179302975927012482010125137749666227874110278193940701730452603564365815835707723186632134918305335239652949015895726171212544565334330473151987057699281688783977544996136147497316249325838799320515934824473219226209587095236610770954226748359321361191227879700207670369792125812572483624873128391792412732433111830514341340386609420744976076291149476235197115206861625537515424144848953569193287568146847021070346364595949831330151347047899325287191880424297391153275196190086296096229498989098578829158774364467825842656342070445559205228669168522122747615892370092133441317130191881109370489539367792344439668531119454334517147782790674252798797435795760571711668654481138857725234482953202584016243238808559074355377901903855220626589035382239530133389237191869689527107581292817466123835912337116112781486870113951928060078786568393771486205503873641227386263471917607816386751612313757382121963647398595495124581912264998878858658692669867709885885369557302408583221554265126740229273079699400981865428899921256286344007142156924453565547337923106501657312913809524111576317697009162562324929424926574258550935539601548561072806040327959039629511726321389575912762964540367573708005892968622012758575517059917016135705222937497872161784923105648271843147894291558227244251445242006170545220094540435878858036625816829971491062672809001161783403908664312320085222953824367973859352410226196886032712470701797771056153609828624804242307085185113364014786665497468897375180436261482087414784140360924645218423274244186279340783977760774256202379749146689701232892857843818740317916294812939371196008969712259473711686598827620012166393455900237327974703205469511453044565371343957195670813509267849792208324009429805648513137105997377573791507258041839992242223788743849964159489039123537785081983338210616307638650931428509962746219383148909625668305898330789697113232137386842402684166400151927406800199392408086290010227558454184502033382890325741324617604015163635413589065299251740797065006638192450761439245733027019180933555610528790241062289912359442418695202327541452958293474344965989858151252885851910888263602019196160727711185414051754445098249115585606027834760050622760370176428157033262946396450968246229393808333299845277740434875538735794390388993418547342857587288579571755033790559178784000209350843141198199920743412732709394918063534460860289336069926704589175581441957376373399945114061284376499070389519384645935431155996068136167072540103644357746948746530639462934508089033631449372237486624178262697312386291137736292646279628324541641489693008291737183572967491312954855709532833828054698711882839804053225158702028723175143945317115621538560589595270905240008096160654607592507285021502008527144314737030348497557710888352612180923907766612372369051598093344252577746391847765149685936606177265771397430029113716067797797682832244008238258702859785239380257645887199621174507380393151033074395625111056959837514992150959690685191052257987227169055022322166953915284906111912704753046917855262553429604420397525514724803586499900593410808212548550558834680158996540420941201520503067575271637871200508811532225546161550981754359430992991016172282653610441933157926273101030011869793858809317571389565337085238002433100223862103745445051639282781669373597307908426632045894567319417184831571796434701540871142959804346374648819467262513003400014051596871662707392169513845864087661471314848351318907502736681050970118928968325620077469574560281769260245840332399802995200803582715153869309530898053305669661215326102994892278440222201918442938701530855278478154467939991336075567231953673938372812679448473303228511627499882168463625808395387569474624747220478526825749849914603129778300069092110262535617726484311634574639966552719674768489253670623017622661384918622894901705505766668540502772605998178627556752369597631279625629008350580015408740628343131163159195973850407501120895680360825375170963559008194085601971702679276264787645032078707198350996566755853904578819661205631152118393465445396958371627681426782874639319537413212131219589918241970711091447063279024419163633537447981802072650324646849828309884460883470800179929647711885177240819960739171873685177510946148107750019079123758078940968286493117569802495133913807912473282466540330550340218959581783422113718992152110269596890799307378769982123756784388341100881894129443925962919467240265664108517022269535079117530564539677573047659193423321040293632766511137293581653249977205998323978840547687004485580455299275373342710938484458182829937734445360218168064803084278290523042871447519046720317528954753663825020049437040086095560835503738125301168403549724757589930933581477661922617013230423170113696392920576742254816817949634788244404422317966436641109474787309066874621824966796453406194153603182294156593552309734495649778502853832481930031499752395693679411154380907592771330436425210514525425509136757267407877729247797352314456151812709528622645501397525242204325444758046042466524875297484216421232468647459249306916243611247729561485286155763900758393136395170333983197975038125329604064650396356053410424700260218637284431989039506656820079700519813316649164262666648511426293788228036157652071854072219157435991109832578557967251898327374279039504516412606338615279955667187746059372625013562285827414704192265282150987403224298166327757443833232235637964437483578425285023144493974326459996709361943536733276991660615121520962778234528944600944969338097580562610714941316200711326213716539975054867722260144362936583720797717721212007961191340075628793084672498486802925005845090229091785532384468924093524029474719437310127881821656290742004235963381398435619174719206635353805864140204391591682432712622223837823920790104461459592208175274046542382561847656628543418273070190908887129369377539162697881192419523100829374904839290269316473533216172710117908809760853700969335058443968965713555600523211204741801149608975743932431604001273951279852398562325389693082071219149588495813155381841662043586548513920236757511588748458581860761835375992720503168679670416819306765710554434472174021957329444923341142079570291512088809285572891041481020893230014592149792012275895487722436583079802515397001453997414567877068020239544004302778509952396131228572015066240736615484254265978183029505187133422932206681920773064081903307798260292646869007088099596755398735738102488802116786930702362171912376444587812240612100509074166503798751923816176246948889492832842257342009873220850655817116554944643511734398664518467203605949871379811945431355059611780885442966814028584786102352302071730481463411035611997872745046925522942308425929882969205962687897565039544629536931363751132793771340080845247037742503016358439287790451251882597119816917243966243588505499954113154435806400714470786240220424635488561252445905478513655971585357377789740840440751940600664444119864159631456439741495899016731543437789487029728829436639938631936442192160546512198956238618491237552403286541919151418222149089975315279074904507300296980919248176215928275144339589911382010609910672662041031292383210429517338396785245204057447708245087423108289244216246828553294243002406311004497290905225914251290057870145000062040370104373796202957280061060310633172081789318132844663770398225784941793515359749940211321132867165614657369711213778531247040008387864348769467866124046228062711955555576858034178868474670849861368082638279241228810005085775893582470525320653344712008297873612008787794669598148110748735167749081410794104415705414522654040901437522377744550216480100298339776483782910169820153522015336755935670304724787918730209784466507009836418555033831459882969763247785868200749955747159142611536373177421714647521783307500067849616274655299367332419365835292680301406032469696505832260049420519129121072603452938804876920108226010240666447226729865682457978844641584079891554568220646226815434049958315520384209921486265443594243881621021695453768162786669560876103704363106605888817968426533869787042848225647425990522982932830406517442316228627511039424393015324958151987271496790551479401998926841771019473138078961711138213047964571175537771067073191751694539603254114926748998208312539616390998215390095819525858859440613346680259788175460360026031914345935770753841968943739210459454050060962858179262056772012591005804076542574397519088181498851740354134203095446655556826191057063358317599025204304908296171306985323525174643163102397793678718418750521804013193777727232479367833928258095580311197636561035406670771995602694372090395413008045908162313055309416068040152881495418249393441909811677266148493870393749528247074940833420348923096309310359698691687062852789914868812893758120815800718505697180206203214760777332618919027770873001517892665139145480399896091200562853058828538908420330595733599427846529757151321273667493411797955378411033465161586197410873143163788702717086611860842365128159552975648855845089816573397824214242092959068077718555245599423143175155675073005224539383709119669086252460467454420031279814896280323886908583952366021891132531512590377540399346820582855013970161393103148769584301930568972699165875480685287400836578052138107207487355978755412812820725033361617840511830866214609477687197671608088586931004095420705770957699597293446382168676752601498509253646081451945406835978856202770855121909902949916774236926202835205854028003765836318511031149066313702747591123629795905263129451026286108083253368771180580727915110999980972645593528908227144730220256656728209313647838824968832487268446716355144680967955765877219486298856536843421741140596424421154740400926300560558985679989610102906067548146165699909074490985492730756366310818312035025976165025001286347117207002714841947621118057046326948459447618201428010938158396190306765411658224959719707947839742415775906436166112787173535620334604078222186697272155329693592946771769101613665512832514595713467368867421475122548759920418161920486989267554801492056694688081689522047139519125392985199530856056794676385150923679962517400871540977732727608814852059965028714603907418756680712724985680305749363104663063161223165174349383934926088747273377391578240463506103075928383084996827766075328008120517854410485529387357869607302029925731995413432175707784423780773710097106670904653014727536401071195803049050441590262858210493668630833924880320930669068538440626620692953951423994851225552325993056835144392296995066085815663807388145474167925500986961987717723596751370391324942266367735398849273365016347498384631893924270662900086805484462346098049147638923599967784690571218869665438921842591073816132669047414636569227725720824782577576884564021822811187925759643737218220073340765906533775788729938121912604439370291992316386127590385313749796310376817189885369419215354954481800189212215112835476297076127344795312530982646043233454563545989834948238935980452291856448490923933069273799613618710123230010194304394288968050328341313163945154776163818685026230808104453798080453285691058928580085518421145054084093306138134263044680584684136658667676664460991607220910522816342699784094242843290946416303870864356338345580270164100585512819577387426396137693145420496236396485976366097587512817505063420899093561127279945426902115200331455082784213391823175368192365783978848829595525230712060803970971358925775869008716352901630288170390413643434495278247771469805130857528976944673095061896069622811179764440837832234563904318265237276421170671366792229801848654482133355443236043835270244352914943977538596758700326000107749458893033931002017669500458909058789743158899342923204925395509564894658912240738295296721797850549764904993219378325328027867615371166725970583528552454327450006823461342359218127364254015744305198007976968659651532419149067674504786009210593292467682975879199856447786102835193425123307362754001657646840136128322819969852868245649913549680443033627152962996601372765322861027011680719886105401182572763645019519530999483814435588355574324612472254094018428043911577289288255105034524605759816346315426843226278948904007917882369467530916769443158031856911943229464918910844112596925780982025306096959519233683407664482023193910087851993057264121067772395922888687973927513532251543534995839365263575001447906915140008090509009353416918280389647075071584400501324802340945921638005644289538014177390639870900030346332189295454657642886827452486592025176762512309636442046524363938927878323322010932329346539885231428498158074879058493086170475017282570285266670489870597153628535926853945457501526662362646295226836207253410007995338466510421789846833364316102064182915147055593788627732272847441086821775049327204004294970943445980795663219629146824824502849915973678687773156566071822530601483638966746674650400835134461800878410416938916483554797019433277742978515205472050696404617782313632137551268000135931652567505101378131260874289248323946133189597897492387490774654644364198486660761462039195242326233678568871621157957339952603856871965177357010248843849611741383673677212553694812763510916253823645632073698189979656377191062886833660311026282121129060227075810748047206610814018013384323411802815868980047118483877591810390967105737799487765864499068760525137204741187841957252480971875994516304664959058519248709910899966272794276669278565502594691506975159333230491306961792467079701148239397399284437336296472920523545232124797066602803462378057570307802907308602388908769642066157400903068420064125751119305879779219015002138486454433130091766324527922432063044957864878709136659357528307375763031603957945680006212086465777622660307786660928469145768143205099773426350937284383075219551265954380412444950025354935481899218605589827775319249314657177659426628957066641988087395977096909443656591220260539854487608490037976574753409468638306074901150671769733418616902063504983320434963123992695791263928542515046761629397837937474794980159724676469925845058520074517686595378294637826814134346819482600408698503808922365142986006724420078908054144305261823352730652226049575102962590481120378551597031330947354820706010369831386411453734875338152106373206690284379299062407991420552443105282480247538509279135525390791052336604558652031704229203108241500413515458392053075315959859164841562633216234548989249503302157174941760594556112371919147377780784663019357095515422655544186853858762477704673215658733515731566173499314677271717131786144612180066435372318699298328715956238157765860203415183672356257198084474957877005129094586276679619664797079054967633069043872991253297307483956389087475671574620669155722179864049963958212165289725875315130581221184560695393332980709848815234459466253927483545105610619439297140590581052715408708227583492219687028072539022686609245170628927897764625816912077267124279182475466976507906467152471571283054720060289420810135205185205170403155148611625968078439310776777574245043924854072628475253095127872692192092407459728674881355015796721759583906014214234604599344453672947080340278095423677220499151361208478348010958022979926606760523805571791468377693304314190810860266408018129427340809067995156497923270496522886827207528601518720113893498302802117799806264206484136827841729850565876606659001832318275003075890658961706492576106007018064776353629832669533588742842243814825517163234973118118956004802766948622314472671370244420201701721751412667243127006462519633875162326526990596079415100235799983180968338227538868153053376504537373755459414099135970087140855693425225134703530723990878889943040639791756968515251447574855941745611687581770566316109703858919417635904374481355690412008160165993672970847685188083448523137131848467741487866568108926039339590539936454381644138543712850989202831984996746084342892096769542007845074576647281247757564746764163524879283401639456590768098974429041075708682490645710725418848711646180104049112571648149002675163949601734664270871845115535930980434559308224008337922110603536699121316565004736503516469577684911265610010337841123611247139073990883033097868046963593855070253637612337991704605397247358811913695657316040088631222925873601582105949011136982963088852555043591500272592911005072608561764699190263949277779351645529466159246600141201389045387901070374706614862428421337176722893475534579817685430105527508911669038956974894900053834367590265971333414506107831765397445528968669737088968224654544899560485423042412809171114463499018637364745564578731087001483594894902598291006511874918041244976617005236016858841990445269891908321710271502928642962162395467363122105480752841934090471445909110525339491701118277870659157796679262475763700993649117803494554561733834033915628934993096560121257270531805646552929309704202527752365298151040583006065405265878996533879546355561466253379360387910770393615307165167827360402644388239603349279156412459873192722121224219749330608376447951223401545030280047432730235645977726622868916437302095592239839086501585437342918594144632854624970028396675694145084760593432723671507870929264927169948575827987100437475496784674237350455034989579424466147980263204338448525338864564826558245580463496535563416400307246850101845429808173714225485026304918209711675814372870358933765962837446730297489753365092789903630688500878501844208641920369247418747058693144244914224473876020407548920606740487590270168244607132781922443825220551304649660739485025628430766625337818809381584348763834300278038738691212431150472635976643427411618954416967346072977500435308477144164972672454858718875674584993874943820253328389525299387469503546667528273650696818751099984688973171574849553900040642569356533912418858984696492565212574695311386676864931546657150345599566809867856473838441882208316702222439397930449816232198735114228279203729007817428485656003376310844573760887493054534526164006651470704801620291123958875596320293716121688377091572636611167464099227719074148160363836622428446780437828408540370324402120181224428439219967926211943642373466916046606942037549707807595087363961277916565494205917839412444116398072845744961636969509470179263301574800018227491495222287562875406002640444235036667030395190139339686375744032440996392035625530768167867713061491868434654433970814262198453742484880566058381347142595643567799906713729565057842965819054649576835585795846318478862964026049056906687642837013928500160301999172935535088557151646179970272826764712477732765947528386532346545400766268692306389428185445857763519317805951895321703117023329166732268952193556622213105869617621738466416934573951306084155953759450926612344656129900858994098652592506796663678484921454278127184242619384177442566558089493678215984303654553120961202788364810056894766662253363234995569858929380872778810088973612753363618367499641550878184293064419341000704804262144884912030460089953890694361281170589103527848289843845247897838107037410859974610072475306206817488570994970121937558160417787855448027664352929790152198944972759835803114180948638738708543845587656812362114026717464068330050665885388337509179445578113317366926739807387677260710994869326619481256199080588258155614974512261440366515382888956388579373903245438321756924141174686227522165368567529293708797187780466237136511415409782130993655546058178903570169476196862939210021117751911902583568069349000882307118693310428071730383715517232792191081896426273477378930138334397851894880303289693115145820768541427437526878488601516804590206967858691220896382559737464564987953889271771920381817785413305849880925868845032009784808779420336908940286291552302011363617526720361125778891304107291769125852020940864266354207891370794166755008515044574282457255160681699979454277757752670049652742803748103329218924898719064878278108689129843512399996328470394199856239007271839731371666910222768485899629917632484969797524648936443426406778659962074591880208763682096787461075643694604349499978089912522977660737375632772030424511909644794098321714257669086258430556891903078487514959508157165327842488376934242508781831348188774367655868528080416320836560932977247352838561976675124694744445021604174256291907194200157234908155822107095362350101870350443417902221210336884702253268074004031106219253739158146008848172519194817989139695912342597924211577529446993259804247526671724463196840498079922181948159704126349504549700432891707683712258440267050524235450198534034044543022746085808771897738901315042951756605077761677575704311447381150026175265326817818259272535544969350324756050375029194086305693679987494661314978210580233987885551784989683133164917504060501544128558166109833287535715410250102654126411777747282620692977093326441646578988416119500744333533326348257811804520245102054011614109223626202632133778716988301691869476787489365302005177285274614102785830924714763483741269401416419516846324688826228074429112831342516921692496674473571122585107119256378295081159969842936898909155489351213463035647223974156677093619547896993976418047980617823423553785278515729805620931267196817932405507638154052374938461297328087903758873495559431582855311400574086045741731423981856951869703271697243503624419351843133511158354927564259674239390129159390215110707769378646102819052788168877858755382821930701752282416255346975881868133915251697080705099793476151407290187748988330394070411305004817354910738273969117337765509273349476847159481402914318769087419237467067522103464017052270148426602434437544815602285528647214275005195814632971679496534766688715962506222700076655431536690918966078024564370340755759675422052805473768348944475820434766631587105783529560799835703553982868771085650697267307946103400515852726075869857985437923925695586445536595112601022418711796604719460195640038198541209615437891305288881831014788570587744295592377935298135412920024700643793050081711781785471900692599349681913242953727283610503147810113340750198103649488651790157174677181128723167828886389891119134889826862862063636024714575732068380510755590529292879149804771797615982604023239081976000840978977613883074058278560574292795736437691447876350531490389394332721721813913935446951900912082214744543882420603186315747403082325161547821503219990677699984510616453880518794629642446531953939031951594235747438539044877066019230379693057410122789875713671253390188116573602621354289272169053051940183731486694292204613027499554185480651540226998607856270511285007964209586684064646335441990064931586385754627606492382795494451898701725079349329525167989949509226438286577285792599807703805799822557580874370274498821220207361200994250152450864069666137041275376973394561296552111334298571210089106401421668074139618275447103173692636460961764084293367680886630089490908900189406086236768086543394218586739046748678883191119644982751756570173504140964951586035513570318435668968279671162444962383089096345160969230191059373677890156617158149462487404986076180389463736492407771994242632288132761442018673167723559283001651846212148221076816893600208198311101191004202654212601277644427653549459541415426700958020407637753765672312913746975307423500483936551608311539118441667743831873191007977676850316457293526374597005384263974215730017591189347100131698441133313393971433277580459726705331452854762437234042376190628374723524804282228376604978625180551008002132071246007057482889472238439189800339782663422794762078412035207933019047397687722751126693364586642339387989321298744263077998327796364374014625795069222537360253116113101585898918603143106893067151105783552054669465040715893853864685134617011662518923141163097476443890324694145205045186015203007842865919382606177182763696564369191500665878517210033226538012904891797462795743301249739987014882615937549494413188073229379525901693322772512229839916592660111840220846206265137375124318112548774967805158172066915430660541940352989024878004572804068627606561250100190021556087255267757636144552215531870105371231874856037946976538526739506751642809910821815767503333117644150511366031745164864130718633902414058511951840446454528135326763085867341351478026511415408495856988073593154672672300078434249055170700855635505109947439157161464229694794846150956679236215401514366536086443241866676547608113028801462108595615022266569905467173155548085117269627349715953171290315160732933700075507385532928394941870077260437323029141749064081403073481855315796251787006315779473626441103499919447463521382364386198006502997442513653566528121029027820814358326775378907824689609041387254819776009232720995495802938964516523634886194763547318114458859004846676511139899552888252740606359677541556882989313308237247701911007853515955622042419083894114449047962884569457559435089845370952544160948846632025777835784956561561280456264354895835953679943314347635259115371367273646956015740323308327050643162885096822734707436682353098507627041476606083863565725756832294508516316479458146325086345614154030415560242132560698441356252951598054836671127576338191895013091015534290578686161988178565343101880882440771685590952725953831365061460875691860753159533822966976177692141344758520782128456870426192371671635412373723330504364314793476786719399624439770963391677695395995237971351296620089069162888670517187257252457275611166894753547064995343942733366549957148020775122980209377449543287920554693058750354354195044718109769665544265575026090422615016148333092751418344165755757847032336384021924965858653278612944001356872332326336029575336021674439081399989344236313769047277178389529246802638380919219827531643340738497515288183699417681830400845222701126811972478933988058190562971392820971686259786467224788732365188280541738466267636629490287683532416563750696368168107430950498290513454071155859738429644736064803050446780508814415633184583480933895666232904768338001037869763680007584582197083889159418275133237520512830813366376108107848803866780614475249530089233599951724529572722753183074094657147967410598034379859863989892733281050003083183418683928569903538047061702406713955581850037495764713302784303648967510841666757219883486703832634031436568077544462113551466998746541306072779357902594742075614427664812494823179013498091195279184933145258734765548426869835592966617880704044698599163271079714898331567051858563921731721870380454660882238519601865101112740615652069093187884377810733470703462198935432064643279381677079588581384384830315394053163660897625201963727652559005359181894265646783902305397395946916382585744313970077824334014078452042611357224301668225717351755042534627983971298188076290313234818072807353544701817606420800576449559695555293068475128628118792272853189415364795659114204610230213793254074171357618276202113859871417663819386683631830702353532764306575007677608007563689834691056217737694394271963176455262311855084680990659661257679616193492067450128227747589749141106912135219393967427662777784855350532890026210397420295585741549107072097170110975415289286771127197450225351002765850539597094853738354203499361480262547848456910460415273296491524912615429261933217927613414955087667146490048711228568953542525050762708695179951736239776994431186921843465235861644838769210275954576197428457606371976938881422642339058957316472171380773029062309110483071805095885399215064934607173089024512718759898061642408685190323991955067598416863121542079113200110205660357085611251126376643312600423611931637535834785381246404215826236973266330225110216371246963079074580761105100942005315007289152149192890758583217578745415674894907113520395871162074190923623840536588612839464768722192668719720134081922312467220403193008510731960399595139218325485453750617747218849585052898697104064157925343681576207230070842153450136544885698213978571112841838901175709685505792566639134295889929726098823719116743792118129275892944111511107809993465580430636903278962001650541332715160262592409505366690244700166647647161894767506448466639630899850930010460594596466639239235964386244463875840889787645357389615911507014809134628728760357471149006810593258564775978094850294528769743389660435427196300056763298391558913975909725012277418241470491121588496959191811041231306969810946205874387533482540192446825664614037094846661077968635198177095702586694399973485175323404490943042031846299429170585336758975627986322617806288894811166947790274913491841104657168071800701999637048277180873844517836541107588747176466351052288989673871560958022245264770666477433497552467101840702274286664297580149187444218138863036386984151686403866768081228237778566240153825057407944667870593943767680815407966226454928889377920759468662260789974066557537074735784070737069411409810075030334747221923687322748194236651282544489525891343466069814089741498404880414458298803225625802425300212310706591634149110883647843848436843218506180113041207943435943235317349025097324520843244861325185145606623293713413681364704780945584179392325073616535787617210753517897153252125975504447798757877202447092867072551466215891845244544930481475711566031492191394766116595268182919994113004106768328053450787472477439751636014899031277594275584363197323681395922479446086654144619988515341089424894894444853096491568556857374542414900005440551569747000414388796457158763202984844856330220301395296172619594756293563228089575838397908418052137319550147059380181731630563896823130952084458481406540815131227938257741427526897317288231066601569944816642448284183587717939248128359242124511084160151620647100830931512675568318228191444826334374855935942518609795151031321886369356602693187167427715723574923897809076762589703960703841388497359964560193912150811101213046391169914830528981145989774674512061643418224923310060764469536899364253459342006392323327860025740455557559345230255320162569193779773490592158090366912516919797779751901706311276516874618284838268664612282093118898615452961415629811802435357275133761929560808105795504745482658129870977503755158277413412112281921717321104344146302513261157452999755177234685027459968860421694903218051603422479611010305455197049333168808320303203321567950094180664125724348377443633914511976137626102186202669897289662548538158727365227593015588760896892079729353898465509241042402515689824439720852033604551704573918997137163362304805054457613057841277315409887956726203983410408887877106480516389128233219640150720714950918918169916377480437731961948647829579446414253717997405558338724422516119957142433037800134101765698229445946414444283030600471741876913381771090622258989195443395005757900472733597329383419011390956553313023533037588668529137536708010679826149595815330628506535237152154518971385604008897552816284297650015045144401883567418834194458286984882004249526400241644037252459581544491263226329724141561221344764551770848659033878437628296891512014566854165163824162313361745725339059911052654587618414014225438572289177707686904772187707868538188210941421492174597568118408815568306633793464064848772119745128060025369897672144833191787972993544211916103537147159270413558852112486062733135005482498769164433612036138445779161849140117011012154676741461071986895002195006022211662965519532757937463022852776824542315631727255873613606134687039563165334693079419324378212548385127328640839447257346739551790975773110830789063282920478838125281459041246249105722833628117558721333093522621852924046350273243344054832899499282122618411570235142377515619699375386482017395787757722531983595595408884284601152744992079644153492557318393232778826355002616165262923718678831601842911476927823729623749329241568659792682599742035765398164873493910661020828185740139057671392353020357312233721210074591830004611903269595292948745827095013608692639658227279569739378599185243264470821474973792688342630883024292318578476589212835276957740176115783442488696963668304232091836661072277600799912429340952248674705454121777026747323545232188697423536186521495050691285625812575916867282003394098520582988136937853279435774765230395442899527068352388287838030428900291730040103291111794010850478895071114986817916989235115678141498598040923669586461524312351374744373270873524705637338156486811717271827462697220792617778328584066716231547230457496017439360285841816007911783392443670563131016083650725829617015551916914018654661397837472113454282206330932448304357385822023038130881821583580379353274231020946415489497753970746799737781221040503352711520545301488131078198741802307423950844603402787931000503450096271053754528051637295789890616577153449061741997974683583349512927928496040441625650002844169816544644442062402881964212134986347241576468453501937310839064565805321052480917892357006910520937040427178517890808135640689109570318356637255657207608450913031114589219116904805423251117142355562018408898581965681857378147831959556318746588858630195674847418131382229455870122759495895979796248196357832420680597641984430005572681938143073151387977318962526738684521240890735281327455772679964717419853372861758478533382035453795647228977346902630700635380293027387652171446481200205614488111773190177812420496455712286629934011688507998748250618961404754294437421296827314930483796960507402271396405563558353018850021416386145301226566528957662651173588733615535018204634457467180181208039389058791454676154275840592310468806748358189877379368783680037149667197846322358737633048033151638050319392108192621635492016924937286527271522792169408688168436609928679078227275477748668566092859439052957630498712315785906960046931173249980439460418737540655439397662101417250569202054091390469343425151736204358435590213400104971586967908558810595980533722517748755183092383007481250307346501642097457599567358768680213349926477682382380261680634444345565658836700037020194149645844942400077367640269404181279576852342719423080844942390567529069254177632493815475921610637374982636453932377277845806660698520788488260582088935179924228351238787965768898623192906282065012057646488882840173178260608118922348655870387051756153982762561710078077644016037245769029454574102823826744116325146523564348542789903732325148084264684574659555971299495990695396400422036254005121119077483072545838358024208185447204565661138087209510688453113405652817339197195180051737508577163693586985396078323738860711318592035616009399397519911204584432938074174468394257790218006777836632839393571388319334797458201254847214179746343239334251553490753975741280934894224972698677434178761892691798130466974149569830955072168236122401008602247033529776207467101011924597004901491922082079003511672384345513856242303689671365194800421477058580354861259540726826591551638760129490969285408967138349669795891154857390416703655526667807174002155680448072435926540568326148452433148750418785941201335047320987905924176381340029379504991643990476026877631198310292971796575461686424764355821262738164906940750770143962771353428123332166607566422497892410303280003552703053478219400975595179084152377383031426264633253238656931288387555609851007269327476717503359663039395740946895185235606523160558461274190186238077231947039277017815456292118601080644051923404037919987282006106768835198695446961131370466762606435631690825483442736152271832429101130503984548881714620637947429626916614239226545617652773424967816398451641894857352151287975757728543693266622022202422416492224527141067463788550024022487455357016488616189174883094529734255284948187984690391359442378226106850871326361693505834662251686703399576947867933539634582859090366491755074036774031021103239220629136917723512422382994827585290381118865694279581333949037196551605335129221674083099058665105726583231821749438874338120185809543002966502779580730925165920459277858167746572911365776764863701706027063613206995511975841045270868329892066309863763264011435192880017541133927036431588258956831154851139786465326376673082546959034609860504191477046204587367189670977430158274175155759568404531063309508234630131064142436056556299690980299343388960387431680125758030968699635279919155544545109995792665001447959296618461728513948129851379899054832064388404853461616171676935326595624457605233974536617647482894799751217650789595118707270047843239333077490623495861924530627900361309728852658964878316796551888169377121588272565913177256336227874232765566637207105372445902105238477221557714476543675490685094446101150499110557381826767064666492076502467669483249633967860720964439720074420013078763836628440620495666595850469622458248992823926550440943090432233100184648286588471919420678347484339893015119734175726196682401638495556100437211541267414360864210141073349320261219736221497704705466271997627616037097941250694716316239280543783298546789760350315630064233434533432429608907913528232319653291678160231761530407711976832431660432923830669406904808299825309571028548945361599580694908779240920707464501105984432150435326801419580916161166855182925818221634637726138947385281603382320667309945900263904862851061702192413189335248736820205935198729643152127036518595875358778729068025731906274063097562643443772202459650000883487063640566307566553340355451115268778023536152158217378869887853358679811665993775138028661942541879984116399838320409704655529989316479770477446537148774903900105151820652820124270638209169620654039050382085400751759298777108319953670128708549188917380176300168190635991454714098939507004457748561392607424527474799690290546287931748501059080617823035695277783606594053696985642020950678890332316769662174684969655798736068225286495494096979350658234690801910395819370481352236536164472781869282071912916018569151108841479036554394576172875741423757357894856572081822543949465998142696645344092541937375247373964697898961232124879056277955420761244011858700659054025416858756278607442811874288533479451335127766448541331939975255157531261937591050563737159916625951254493517315125087077117419046120984491375549525404829593785756464446496283172492642581436603482683230095615825698184376992763124047720969388170926746323823892645980727357791096358921170414762559136268653731045755276587543350581537982901522492878860179448827194607407734570787246664064595503904932400332176416957678074629097144852653484916273064211825170344925755947563274948804237563128064723334901101060055099538112355577979804482054673049725408800070836977998591167073695076008200095155865153458975765603253234415611382375985534561928106224331589630906657600437003336174984140304291480836972610287135633059254722821009890729796395997050096083017447368196760849880189934594633579450874950221150387615075356237131114515777482195847136795655579123143689245529728962760978703366851256310925765934294064346344554411048582912530270110567701122524285148514102356516121054373344653089769465668728008451363354091194094553888890240983306783475040410325980855095025564435557025099024251471719531789788544903988115598671575494825256105552413413168488575718032928562041170054028071435014913107511893623416001269024241891066012633354378744165574558398434528113087037009921112706013435677996171012765812823331664422839376265477594953016668827044824548008391757353188775630244013305966572038691019026280888982341332084054804053718314940102824100877177865985810273323227096337402852197581356257776217337219413767605536637905249293857913170836259301432827548708723161517343212184812746602061212228889143451113183250609115874490606686516403121447810256067081034737057108204390433246892154846959298245136166854479304105224037473069943587525841242513032629809112571045627004986990154068887648805931386065293520920039478618753351979170928688393307024823030986329576922325063796241697667796279360442054764528355306520859753446380538069216357609219769402811085038847838596218477652203141591062968663206378994366153720055046980799199718277641907632929186956894937687736329869156544141398735646590912865531025750253367300294914311341131422597685266288057950594900405073602275551589185823305143330946592007377708778280233380401130486939263906589699927785983967926909941046951648294668689243120329714690391074619440652190683388977399934516184544454654424151380384663535964662633342715493742111883171227901724905466240167507047300723469859365540097838925008021192480399492935054100037939776504834750593916692919205863028302770097840375508272724057369064131997743850538931330295767568283460755417515339302047025765686225013422122191053357995819928694150251606444911727723115641533364631381582250567903966941123559893148446081828035255621137083566934431345706088436571948381035326859219957346040787911797806865972252219908590289336331404128958807496483319531327185804606336047836876400703920880379328272817456862728911480999261237352119662978239074053733699768001901941532029772442239789050599181611437683608550013279194779145943652484500388515639526150426008260578246019132038514848685329345763732400087572974604752392876786565516514661439828868973466068487393526509649436109171587250364893835275171972147808225900689829636016685863762681377459877094796966896477582783655328571644000870084592395388026773284324171166413734203248077737143122196091657945621749671582367019038268354744412798220447228468231233499783181740939763507820480155339973784140669060738753102550743287178990477185486917958887025479713584580748801113382372229003074207916304003086258544097066196255003763547760545999165936623327730524228937238086592654349914053032491049954554278952738189372416094921379985783341278647035216222061479968272974388546801723411200469343690393560848896105499155111004104598111353874564762610776842361796352653809024103991769704096217383111591044101039318038780825360263558203831245834702724728078722322493373666126521009876467148344769961232942580729262428195541649102123474368644134274684159740127807998536181415315928199482657677740511366338356318231961800329358613767256305177099161397056859044811610486618259153402437401258378879750189794352958990929747955398514853685330621089232310018953665410429364606486388083854236774686054210333070147202775975166885170164910209337315683411301552933826673985418950412092291411429308393331639930665093674078823772649664450946457497046936384052026171848154997796735076390993395803626173914073466877190780504424005617854589864156859173830656928594452977503616916629304570813972454100303164719917265044925400076132053004708634275797407889418108434267753432737608563901776711021586028440413137649489371802766382606187983302728101068000458561817248075066664601654508508554936386470755819304174399168531752759136181908014659935825958963712782629448967898668099167567329576898275956122362747288320375792995765231974964582076656620282409328249996812778705143473265457217467960975000441399753844802520095101151936672597458273728009324566820905777242985509193186854855659633224104163998682728496134075794718330306340849196978284193935798058783850516599424903017104323676281838633967466943995568416202484061844122757028520198352098341643896649075377086864198839851295282635301312217898715669719172381816349038215981684814330272259442236057705126421341896906587803804556535736204592822245449761865510691655093857379676406032745491481798294651337737979306539688428239964758066041767110327189037390326962552169458163733172851324528885835203920919589438849221576305617083281374820606714509720253406591501186883391038158293807259444189318462350248867910413370898614438725423456561321252141741969174610406552364096322359507467334917576941231781320410878787882570882370907960423505446779990792309664209384617018213927870154096182344989805860911585233592311439151321560974075745762669482351613783577598477593144008452148066612256201870409165240889554510017053328567929883050270796268324814529033333221810921642993412239669302190306298797215641890048805908742128260824678549307832898410986302960154094791742472572054076620158142396717729892154401821139944544642445866411286027954981954025424765231770347994968935672592198688167710700283168157238295528477903734929585487839700797208743785353320582362209405255786030519614904362150485601509982901730285015946399267880028200216106955101616944606496226587500178846733710037607869537535680066032544273752702187276942549470045898276157904247602018176898650120670945500916418221402746156188903724235351174894555244258379855606756137109334211513948084722950842789988198807670751635898463975303488134493292393240118103871814869093492814800120880378208789471342372309158462732191598835308971431016110322844496417830297395043119547832162346537646906379414187551376264977591678486793980698915039919954559304425092605298037527005903608338751944460413646169648372423698532531509624668209437235398730790610463444821352768066720486622532146439559333828539587734829264670987526836171664510776926430668060291336362245999750597074488571094205067641979899264003116459173785614274435593591193469070289616613373512298821861450290023792934431739845876458241033858188106253740998152546066698091409605315082438248117223076959060308212986008688395994348303416003867156938158278145978996136028003683012869945827998783295661272016974037775729372985640308213481972555350320587973158991695496141619220215591483679839053092190719279722245319768570207308043683334545515854626174682871904552336158458496773508540670633875672720562481286614276713720051363684228158422057845708219950122313395888262590113297866192797826296459972957919748590321541250888995100903021488271469254804592182752917944219940766971536706239839510383044660224966999737569386422512166008872039212155805410210157084606717459687958602544426789263430538365261170084955309151248826046559115322621862057987626032568691918613030681483064341514049079482349707976531606010917604764410948085790162503960039376453962391420439623867855108100775471009145458311734852131862314178470261119878181791938184298999413446770637474447160117455418068223091269389081677639773716499965700219539545890802784388244769355691824509105728231046563723500745499186726155493641705125680378607149282325954403751031640960715620998655307376759951817538828005962771757737575206104613003411145306958669544303098146280678642351806280533605664846375043716286778721720133759794625100673091329647351059297806301865744232625481602257451531274830344775366099229002030771931471349598705129036584839228737796444809122169713502916584198401986960685323466341898552666405518077843547828587455897391716524827369384789083296045596260013825117632050208106397776965171507450780037215723292519691410093274003482754664505315939253110482167464398769892449099925871430763761865815376951663557884748631716743558074387053178520620169156204847806559355399793044948422920096533608481495737547502796585195666907599442806699832071113704392479047285654587781991218205976749891786054637992316079126664398751569225689258080485582237616881132484878516344743625016157199167072790293548892810599523917965513013497931758727313486344470721874593676660363718144926154784676894869954485635273102803732650371025126373721451723779891873269952007967212639500355727952908134079622065218755660204301421646792770031623234193517614129754910950702867290880295943136618834382231412296513923717955686379489305429754514677173173731279770431520264276421044159027456859590718625229298914361896780880508075045622394453541077424244633829672333727997162693422737748678882323362474984817338368379905655019378159880962382291067288635582420145834283182607473281324652116530634750807171253348451740140142177231223620488378234282500748479868462974745764197866207033832635449454846779903238201349553354172891921739803855161824714178811897749932692645904987247577658552243377367450294389382995919023794999189637046069849188800370447921576400726813310022406310023558261682609694882034391486219351715711793006148779909863800727637003577632328082013974627601920288984686019956552959687470973149588237389092260992648503653466084636677697077243058915105663276175615265714657065363664596832529275612462483049586453966403692724612983273106914310866164044464310932760401103615210193086116236833921615183846840855891745235122575702431800406320980178620555401383607997997401437783732283864863560758300811169573238606319272933710944139250803484347701234714462699019038724022819251286381349545777919841722208133002084427348285202853758725719909909884440660149066104917660095553994844683598126410881488096583213803144813893284889644332591136897807755972190303140382281267411834069559511021889323447079260252250998535794795509256011326120179304711765034868166935315946366755991411140480309456459944768929663633841620820261932227466934740121148901692092961411147036860291059198435792914304980970544001950847930796387226753774611730492894714435291314457286704624369208674339803539284898904381392537761504039907387431977053151761298690966572359220740985940714336221914341691146815524782200159411095140664211717452254465023315513897983544211262796148672564838897889801409311560450655010661594701094727880074315263168109540858880084204167575447858266564525572878974247607435316839184630720686307250283507029957465067718292238181997775086768865635121013228623620798984882877233011717474032598658798895885663221747171162729402321788005901302397568241011269930578286501837590071068086269679143109129865079775384831867583355373403753454451297017248857525878494496698370128451682880082293389926719931371123031487213541586421542210569841505512280077302062808093215728800624364542883005464383429865131493971689635920104279555677389429603514813497877785761260881864913246000165586323530728711955628556261909490070175415139633044049965266362586712396010419204517359338446670174774732056801114168489895242606316157649224780911191597750406139257250173704464016412428252787371464363284427565859618733441513669827145351273063077623733042543551405727944999270421975877652358385253075347198001461651089292446667987131816683821096522474469354105218952485474703762438882399705325989290699485329602395790657060541514977107890802105571895642839237571877223659035811783581705676566183485268182836279502037500152325679843509688506675820666198112291158019875581686933981062265623170962297565445383168462617944007075976049353082590558551352276426393885026990502732888596225086289585434823723431001423795546007077463695292857153503848841200180053325964833072384078265563497570063051709847256670413694400574127639180499534732172018454581280156500930877935483944545870759402822286484970036587518272567912153528368735661012100337437102820766031120696865204897831374156473496054579166880389558600711280768856573966444578934970072447384329556341431929053775451038776647890614309589873583685102039684249706838017062155081173059132222009281950246122561115473488299345990055664424497062407159977286369394708554533709715486740775422856084667423365362626529012265967039212320929337891336053262917893029976217223461573116149460684500797967262101130217113693082665683697468899261255990693015113891862715283522174092577092265510103955605897386089511571410585724253872289930564895914196465078355181620780677837470982790941655225728700020744238315906489781587965544404905871573436853940184346586606327431206077436561885701254174057689347586848925331874957369333996210354123503976871675538826038407498464853752346419461373347952984700736836862479924225662971558593283994495616097530287136554262116032248864288386477718801742441350845416243195665264022428026590588112240882965668732934850851368862941608855107134012207035243335645620802331360711109219677901228489712372306880613793547696956687956927864331545264862657430403571428356254463707235226870237514527890894559705426937004738877055368306016504330846759362203795064230003720094592662652810650454877663701245501104909699927024824598588958181834874236703353771567364518589416396185620988847722212663407163865984214496568194568278578072786984599969238340860300152063811192284417176177801353411582928346920165040160283166227430843003675060566764034256262519769958403522001951187074168445684399601665489376291241756004605769709449146930346379409519998965851492064462559637052222712108735260478072307584022603779810294159996430471239200719681164318566844118528255395400261697729140792069878011384633923268383393093147672241523806955392070754901294809218054203073722204532865040994719891822688972181453842732879914922372849119456755719965056511319623823943473511091951854110155558429841132110358044058339382033346442272853396326225918851030024273353039112657617300093800294700964425544938013601280266902967984283338313934663883430095296822573945546432318905152238733144824193743054409751063159300217163563813213566394127220011749696412947818638946417130458922603897258881178807277541954655107926919478702689951163904045992941270161990978598727571337240550376543420919229281420308620534598859769365357359057502646185757545783692974845155924940226293009016486067946426263429954286430378867927817406731967984728688210754739720578386449081685262456969883636773242371713070321112153994072335853907894663199833721552369583965390292338741807327968462955018714013497459510992716279254947661174557510633818498854582796704931034825408560808218675619661835695382092809077154429124024412322121056509408009161400974703495480645104466324842481547702121287795123742290211942378694984670119779563478893121672317563558215354381786991715926020877183328909434088450920210073639403802240439185079318719755784409185190800170292962129459221922084757392982978006944223161833443403430229538456943370456708863853774286365186703316487665826056356899005912426783997109129692382658947159049242643265697307200189389104955309376578433581028365794055851629019399805091287144417635527845218082195842596433266950178563786219654361976873116322899599853015560216001669440965477731281179047315547774273281838610610013518279412221330926190384613261418862376161231158593659564326109777153784758794789507467181407547847247734157121786449656902506142182887417970647274135500551407556453777704963465742896521918790202066971886077834127191107014781207265630681842222699524344214255177376976373501804866882724762484304603247566785194533351897671925098583243419593570140424500294233753912092453336181059161460661816072698414777113611368240131710734218292901272146810143314603908311118603718900628535586553143452476505559318708014736367706386379791096545254324462250865087749708795996473091358494231789618521850436095073935687668660498786102635281646684552571566212831258717769771087858165538796275957775906999089876270181738811711824794345876847254909595044175747545813245615764035128859775195661818859503702023475098406745526017786711087776105021984848618233967797335016349261344944501015391124125692610959179672556791437579963598287518520452709890461195903789059806181447764412685821622362263727555679872585784210008069238796278254318802230381473364494835777860216979633817587795973018506728432677744757787076940069787594087283775183124693528281911660532664073797156527371937703944550783819239641203848918598447580663554676155544755497366139863263745225288262646123873646216638306591752275050738221685996530528112271013359696958192101886905662646513429994926932957554945911813957350091660620349188033089200330760407373814179737145102522156697793226247807647514428976580511099076317111834612651734402136394435960500813036502024524183455668079359562227669743465109204442423768418047238549316310023498278664231718264565681991140536662373473584261862869114506600483941372418962008458066808258305191161144562458117692457305942138238856279398504595068990539569925024227666128116037626700083419763209239559661323803119468169168870363217996313348196684668884171609175387747756617099767845886297962561790419115355951283183655663207440282122364045766473709150988291895210950780246973317678949858219760363929920333084835866978712798749767539339889639736713948889783925212224648685442029911969405406612142790353231351275371475279506405778497705468197718881352795093099794774965426831964467115882283397859512277362061928251475464684522278094159095556470257690727636885149483346435432812074115027795986660503225302225811166282811595899696125035677398252972947598453207740815467837559357293351487445417581142280469022498383761597148061650938124223554365466242330618381202933537195259896405829850334951857145407902302651687219206737530606929486170883407248665919663937960562329689333315694928561657518737465666067079549226255221453715583239811833095218112769757230051929732906377019801583532778312822505741973531145106438376544446576932181318175597001425470720325863350454181620569062168327387698221501955110136245510629866298187760720036072121925413132660661430356457378277596316677073959418011615861261144906983883086314078085258569371665955570926124939059217963419812237648107963576793557075283691843940282653347987667856117681066585908535881451750554939596077182475854896065134566401884875492562518369369924085481681827630973153556369130508112352570256361784664497174354326692664250012697696483513098190839817191726812011316999984798229705742118780026057352964436145297585144545798939481879838052629864752152691057329336861157664403290549932094333877539740912721390463896848820467602556609983244815720758375814369660936330832149212441454495331022694778292821329313650968364771930104180328465743730183208253727969039746387918145143980544241699085167247982931311568155730517677036974900258173228210707022661584067315733773597381711214608956381531938012722640113783170189850119608887517542930824514877464965480465450652666427032995350973316514084839081169290561736264909954248998995056224583394165811205581137297361892501920273038112082453508699374455630916439276258321498535224294996767385089302118546812370811587103684709905120093387821542688236825386070794591428073659039709063205829701017030679748645061063683728705330515117187760795922872430730802327401638462309325033113566179738654147126733605826311376688986133164994994871893329176477234488401578358765562894035069461911922148706384584438234220967900019017358994209168283547382592954298788568959842381720532638875516661745922718873046914179712523175137680196375291765306704697561047389369326807508647686518377183825948878721705447234654486537215466462715016982123422991194529716007203803958079071902011762562134535894942340560650562347437787293731027612052688968025680712485299406288606116474735857063392876659995902415278358446383141641300947087492763617880784083512774979054224792768766114231049474719644319011930487066030291640131464472768915729977781491303311085606625319982620181091791951380989562548134437897126902111039551458044967311866154355442232350935318581532905641025115339551274605549452687316932063968171439232382329924866484888437365091964024840995989689640953054108119135785777483532501716985245597167173308639460030735466944825042949986446874122299926389627974506211062251001891876327534063029311074070389528453569737396070784446624282356145785013773239136070216186741620398033032940055360991919290174744530991065924208608703565300414756824845814602063468678210538061126044537487172391781446951646053896717692626198138514246734363396612010699258825448391884617327561873729884512385910334880693724604266078736203557184164385540333370932628118325317280585347201546407539348860636443074002675260761247313104373068832624873363068509095786208467803371822904543300273934359325128520487761115952353459267149750224615063226267903332699234691592446216463993249434612552206192062575227300478987544342983067850951630354237588976325291587444189532749537999107267411717802093924060128929774147357813252430478845587016476181007069430329982791660058093512509910466232327793111332180698588272343334116390997510613923785751669845915488639625974434629588335943696972729141868068982401266362721782683697756204431127540640669509547536572849625409902023709095241924232437446059980925026703532669459890802079464351519676370318720397726980008531670596929020380674591481036971527984500984383996849089452881762405390160146180150396980798569044927986176419870231268988952025365730081968056368066766704740353942707552670057655548262635005989668845001744400197537289220710836718229764495313027806187180707995433612924892678055941003592966138766261574432928541536324192424795854545678262747721310902095650753841611037665802086747602482795660720169885131892580600364468124119165867284547781386211825860482880993754057442661830407450391494396736041947131750440669118693090916041934097640712826847567573982953747482995067672360938266858635615514201607377522999212394791971060969556074625068012317192542786997330216968737342268934282379888123461527287866863343859326772563363949603661247871677588457999975187644741291963829766935822031403192926658403995058119169592586063846035241210277973385367222867514545755433644497031282449231903312557955447110715309249003856619900799309718816034281225110898284343703047747439606737383445051773719504413830656152584991479633286972069509427196067478090579791007770128491931048535486694888213970938116208016294436354005130774209572210449934330470907813015460865531805731020702869529555269470134127980816499043923410065902816594326796942395182001844960399444970698360181835017098847855269653376489905091247654964855634664036894969246483302153607611042487269234541451506164894787366823212929105057393243261142341994901681857304447472153093397496554247727400371918933090102651641841432183792680059101760572911154101069242985173593968028227583402563068847132987344204800382678879312249558172384979844163274805821997765386512538634054023883630702719032324957204410827639375126943707142526769764652944912416807082170169823436397124576667931397365370618722120412278337908970137804196611884282175875442966751423610489055442460141237198285448664085431355859114751079973625889788102824393089221638698475114275328859156241990852466902425500683939662743842836015890279041707999600750801564888655554498594904926578989864596253126995032039919503866894588968522750386058588735464049554379895504481501576268529054755270847166304402328524641467852601313945316252802612784613674554000226672591696054978969872877325695957971879353493256524386296661711133538937816604141768346643060524776100078402670363911888862114993181383871849186104268917366443861956311073213090200982491437588376903593148210931191873819364540479183942715396224743169152046891681900092289975999333772481285247768270365606245057456163761020839063056312220228830923485361076093060888931590528678207695756468797822249590548406830731977588746278910323201726718171552238417604309382330218069356630271480838796943631410975164194713764668098161657135053465092414110785446730066704312004014008283759283703233771137046160539324379222195124643999818278001407861611784856186290025328245011821785597549801546545441346206312749772935767839984522628298340989991272866578256795569009823226663681433313327102591920822355084815833692679078568876714713661987933299970028323599398034075453984165734198706886000679578294245407513059341944660440476780334336635965735005252082579519133504775135740561419260466104068558951194616566342326438424116687223523984822248986183147162959312847642101032724286273391483182930634892019841884205195402837853573990470884277743665529921108452282235090569290152790501473873417879570976763344629270094312205856106341482090579788074761570226790190243338371418116567993124899404740961114046428291553161356803199193200747928528907739622465353142406814707294712784412778625361937853190616383041125830507523070427290614985856041647430389131532288419683730334629825470261082998067824860409020742762987875212159247687054235047910814522222799802531823870028710650213857387157688543949021106520774113180525781233466089181290353194519940902993716150987384223734275555586905060198200863544717879596915187179700617515252272536637252200146996321279428579539932024094470865419323627287390626404503853147936487255507689029858759755687897746148849683361705026693400965928794228777519547405174806909459328114517396727148024598923477597198761294444956098135493591006783338965484181441008833035186439940094849266575574123006070655280263394071857182159402616584925790456560384188161116306303901712513946937398039005652389554333725519127380887984398951677151757975528484304822536996464321822642618674748869489077980401285582892946589242686186907491961004063116464132343884188094031612558916355204062740724795766344448806250255397148497413292156237667851061977255909512654377139905947226726897459549096996575209175826044261177008154486664780675285486584763890452140405395093362096438142564909358867381016249095312429110559562334438589493066017618545214602881478115459714361604060512846506136495468909530308257619724258036421465271590733054583281515826255613979768252304489849739858549418931270366579810497536072067846484884004590845627670580990941617613670106009223422529955128028398183869797805703339090347161084485686327660984896839561217432549122249493048775702858195977495609059511919457621187221690853013778220258102563388433453705256256549487010594611412730690992701013133419411525335352564582566176968286361931329731969843541979307786404930730608379259694173330257129418736146150342052338862489890343502862067228146127863623965121816807410108707377389602293610248848446967346156067138621866457215817206707500130788167553300410855218023765288017118911149080288061828201793717692117096619956372719918305791795390553940139163194718875288544317730721432585521009785692538688165957024275089037068725850098859844488930504314501898642179626692967169911014814613555277574108547967952332291992228491519249434549432111096016456121933679068101787565463781827334844552798077472324218688379470958732982349810532122620828204600226610805185125886556304108832374543200023755565058610541460544985666791588349782543372380251314534887025889461893692714105242355016058413040127028407852183717699693509460766230548523733627716674424771080926785685168098046033758139170051284598278957324476151280311640539940770825349435737195045035262758133377569038533003282383600242914935047744251886511808201149050814894082215102053712260350952723410131350548269457481392013858232583524874442900519522761280030707978287626305017066974424408041803281605665838378404513718530469714942949073236998095681911195133281756926776065076802225083329399588464605606299132122284083406830842945876343621923890731816740977901277403766841169401307974521212815498645444112657159738566591272939838318608864042885584375995304372407993551836890071646544624912207974549670055718890533759046272608345886422346394752585850801129718784371980968262236043932314069201958560669999977246783647507131550992857493417686116100862850693111972360365644540210884263054578180584716320013975846836001284119338136106417019177532068035066182353031674966690528874892103014926123100153498149407233679734087409232415968160054266552419322749047198034606526443356018135951341333567514205558350849721772394791838398995916069093331017329072073784507854567895146675838864070680194344469273129668831159098436359019964317166868658062047106837839393054433451943260050840884244013527582540748483205659416462709781863879358622938045997514768671921791796799064047434564557368298250203957399868990476283865128504641816688514336122380760400022365528572870645621139341457244502683333391159659356307349021702586502279735618610427133690754185099219530892066269535371652860421611244946246923094281487569686049020148399481535467537219237679962209290554795202629748990449736303365802043840407012323024882899188579865575586395250773807722097897632578617015726947994647616633040280437832805499047473314559293247531300809758212642659614752194464469279026492723871306377862400060731286923182579238119554135992574887774673628971263957807316080639568875955538012108669744649545719578517743700352600708153890306517736882707581869890144006657172267844857044700812352800490891973531319318181982584702076044559186570929593428804873874862067157209555264247248607207905064573416349404929313421980877868729147828837242501070918669707551602075130081012827159501602362313547243514163261996020905828188911422272102346575682712033838395119638531511284602848424147512768131045282397437131133970307606565558304867672199275060875500341910283104201252392028604130812664928843785892942273695430171070142359315162371233970524510890792274277699292282559572231359823482196672066249988921684503074686879072621166448052041361155354138096722399642951813637699668496345805908238451726819924112445164252626248148269017308102830050693206230136348551726908699877083598520432354734139769788976800015763475436631270311227467409623443592125719504267837930760072500407812963189214169941011264213955085546504669740500153818135704176834954460182844254938269517383963341259808069146944995265033201996181076792226412054552271449428682935490029697927009610228600799229989323110170823410787557568174016778326837281003867756697467971865660149588736379007014414723865743549807536820797537407573214962955758383683848774935656057588639338465847642299776075389626490432828086531331656704033729724683117313947125892181981058191555693778809336115896275069343725686056317165232117677428567698991950537816943804259041810038290325185835543463743280709771922474565602402032797330438466261016839659051272739865726784325494264561395429303931097779425005212834151098185681384882511669678807883231458871692918021708287374498374924352522689638289123812434489281517078342669870943661149282547109679173492498329191070727068946496939620190862291533288530654454149559975384060684184492943261714404793092180548032285979661923747297811704231332402016230254560985774609074308884657459323069808775493916747574942131196588501547828176420230599034973281061183657155566054870519035222557934204633507899222586053107550190248845121081769916425737648265200932721844091474200711791553733267458710974746795387752773660125574268832024075587247461053824469509806053864021976673035260657767033242368683694013316842689244297940653276710617210289421201696242162289723384986281890413174835789819097490435975330943890724393079087812775546422132187773307188058377468927174524130028841005184805375001095266367441121529022417792485292650403586918203017711598416297985109427816828787180124552486539645356727070573731333916647533425445990365663753729587014105538189139133163144631242385014758578567055395637942509339602509482668525742294289365513553824538031411747958305586041674671617686995350063199841994939538504210339373541633737461703437611440950642147859473581602215828675841559165861814849338816780935013027046813507467266160888328037011335585964166485204413147944597808126918998665145114403924230758628351273640414777411816081541530874541815772667612055406964706551696556951491687186902060402960316480485285078547781691140453175512961603078061303136409038875442524976184790912923800619124002776972469509672536310442390918727587505334630281984119623964888955037120108402496175039700401101831120402804120599927375170791805554223546738580795643237022386920175543794339917542677738898107478937997137152606018482146325729319637684552332811415267670846949453277325064698068553990475246408722021130588798361416791376393583342014428667345401129094358761870428489495182958115093773960081402222341462396922879460042617039820944943442324835632403172183198449592912777420926879209062423516391963112776393926010744540496772257105611138036182275737871897034699166388251859539177932668860928042255211738176341309864765809560999448301359135802505826379421124540201035225980744460091669539512409939740271835057628808414614666737183731093766667735626876155128365211401227436933764444714669124421598730258686318832890845805173712180465853918841462122828022554674616586040338223010172675466175873933621138656610647692564163773446230256001580776965908857290118137570095626680343857819944363900638768706534099188897991242146900990764944983106236821134179124226581042493768510058233257954778361477867746820739848100292502343791047546760578229441454812796117571539188795772941039451683208617081096124493468194317620275711425104295471274529295603277826679534124286630096478359737499398253503885191292404902152589401546414888119041606888545504179989273967835944822716110254625831585125028469544742476311801725607400136585122150750169840619371853665852831632726195615766210619808042981946004176557601438425795027101180908938931572429855785828768290795001191923000745560797889381703137828560580635314518331388059829012987259535236579776518929382350027410927120768643152829575590901208575877899725390169632510871923776251072765859508066637134112954005783713468060215284370365159036264606864835566952232146474839612900002028926285787885726378284701615526624155908678912019583715036976102179931990776104488284159120494752383146649498515260971274188381217426172376340168564052937731498950647336839583839433254712386007417902613252920388129255364722572909345542161477588023960798098547685154562381264026375467314641533874340970314485518020317554112169462822725195441056268008999801423353653376447575516190612460933051799674891137420400646030465289649403219840129717019836563462620995035792399018379990589130522556908877835733974427675780183318580599479369662241285723425519508864917931097337252736589438760409125154451025030840447161120399383772254353811889061287110834158629177617784208610988583408021095284104808481457005444634374966516183129885316107983136060903966363737561873628011180415643201503231105203491617871059479979854471010183093123045489688895069602266221135199678492426881760455183657635832069281993820035864181109029527582550711179216936676310401320347289068647686789782924049711307549105519035992988239422821251017258368804197307923137087521139684136895799949811885502167364537083189850808446041426015519430435003347523026588413075525239652167819600540005603390748963013156777113484399809118207334519237654573511536854037976788383747178177659632476604710674687532878929010843997060824179420167042929023786234097625401222759102620594962622478985304887065442288943127226090218803233749521878884089193826945851725305064516883967690884358533592116929092963765344607827864492449771362915273721013754290600591286227329571742346839293492997669282729589252356281645829107090751544063245204015494944629814814642178171533258128599224442198567518688573212018155692317920332524141915304792892237308623940530469550865209945257066201647983996239773996365821993943121716559690129544076160541034777075477194242700154187744049288444518819345598301316117613518323731106902686821127242058831054981885885212424785596530934043181945677534851291958077147450376598725729513646086690588309254867888872829903602289314871514789789020346502628884113802292102588152441756942140112434174513386838413225099574414991888834942236319941866929684619731243750389555681798730197148785868348194296494203050039663979667022817775416709492236784646686696937753327272857095164113069617644998685843677816224433695772785501884193116230114928357546070358996600084427809672010877943489614743562740291492669181010525934856969853728787035574835978734249615466870141389972744634530809420189173989929311220595304117178069977805870489842548244615087130521090582446304552730558436719770570345157996186762494931907254503511511626786076046911726617746716418880867693506549644814321426510890265029430686634778779256013119552502236398943505686498937857548238880586663111272078275785837800994349760735604934259320337811250222278562696940049611339393998416056436906471848395129221207585806296994739302467783476670749828722992029388156947605723288295351755898041504263694601873045431121045461283651082835085375422278436916997988467974308527691894869569988490519191099947049836109313787179794482045228508313102172057758428662191816665819820864479445048407749611452611335539205968698030012848560700578930883381042076355733843993577252191349001849841351035305812566575765451256607554079235141301497759437370843619247908492454698164523717728749743445560313180549178883721285019743794306610294818930793466647813006288803009489728614428164103920039307736097578678133409528918964702399064954379704282657293037592256037921128627452092233727570050885390600731547664465735499223243256868864777671677679180095373170980938470548934328186169667304612593536302468399424412921032525152618741650652234863672581725976995493554867239316798859605501530608706406681282609932442170790457938789806332378588861585708510056606635056418761975033262834507699806454041774440345705864167161334075387857714877973992347631880534272237847634122826538983938853300254876741760465981651210510151589465683877221087884880509793884579239814327528886814449162285960369748298750789217183463275454626569985569030287473501567418805936248929123813717660412780356797136250151984345227964653903048425753444765389585214585974734681819352183530248409239156443056325346894839634783354043819913475198527792181101243175555065378542376125900820064373590036770531171885235506841001934974624175042186180587053432284931734188162881474339823146741931259076432889211606007018709154644260751836267720278025240819480749428450632364028594078355904470158118375255158525516229075656269476428686844944572397376115944062000507313956006918020355105287249299003912488146802394976048822081414647136376483349062263932617868555872828114167916599262181669364299505910959870258307333432380366242582561118615524835826213459944193451258211886734586346263425760279113321961335639470986658722471303199939434184718390583529520205544634240022505771370337238416978315718615856506729348180803141391540231668494203629086978561337868236590481776948329693006451109700082515694600096434294201780725254180795541303013265040189331659554489315931889187603460976418215079520131562523981050989427984732010971339667936985833689378990553423009816174936985764308557234749659929785957132375518788217486024686488793755744605120760630914122388941506750013222692292610443811019043623961593564151829620307167901152340464010624220376360950579147590912257023340818988378329022785574104521682678802242554772663391846801865148025358323474155652268020423312697779936183422539031229867107079359009188138885270807310600518251124146703577925407822412829036282487225215669620962061300136567825703029403035817032579318758454531530084870513879666538416222073192998902940162208721842839927725764777361202943427254874685502823509365405193997710510450642252255803024615704100714018335922558764228465386092551863094397917853314204908825263613396848295857614136847468968337171629115343779467961890249042259425852249048805820233772989245452469684346152010919637481093165820747030548168769116852720621696137803772126025839391620596401986115640158695695543866026866745823231295050037386303767775380946923918301646059562760969856501071438134049462282444514941972648851936173049137047835788345948496381603286182599230010351155116666283632089022592737025025009306546362105668962681757562210868439967934141772827021334650820473864745820352789503003753710460525017236767823993070239577180621664537555930090380615036199494648149771326819260066775489864589613884072477462940639783863572973613100418625084821685051915242463519318727174744897935267973630535525855182990570583074536371385849364895838473918718156329052987757985570224919051832089967624289498072629527414005225582761482599955252241356380411075800561030110647175864015783566996824501626745972262573458754405247273036228498927787530941425663279435587706769472279338860616088878116525931320137122017407621896653456570344345383899893923308574461940901043186561649428843381274347194527644090464362497960812397705844424079016076365217019074222591025725763911846201743494959371044749349901812748260371139781602671085551764436610963627124873859777530835906937146226228421023678515055413071587036506759878842635081060191743723202447060899143455731837819544243516626705110929877260397029709012634544082221313175959878015302139136800332200466674446041040245828781479225048452820610194031669924450346507162701097437196225937221653948095817121806917158230270908474021663391186101267835283095730987787012978059796179392524978408338973460563817016148928874764134208173518008490071214662217498589588186833646825807450575268147391417592275904514154274832020932659784236774867548922885638287255112229500659733892837811328276070392326900231481035488274012507492841845093311362072074254238562139502009279576795903208281792911266045659427417628157023597714657644952875719735740639234834567088482472209823255494623419968755624321306287494412551263177680641174571262090820184973440354268696475437195906966134660307875687369348758870031657505898430078000772263153766485504174660695545190129420729193989768712365729543904153290214586178151774138655628062473706916894205536140291663640530238439334685683865254274058390312694160425367295875933805653797031814392240489976937738117448616719021113844613319007045526847187542110990366494006967676201327069418056159830913286617269620399007176781529832232488377983331276653235843473113363094482006606387069103129769459400783108801178553364236632339609369538368476267899872765610791355673196674877072554692532962298001263391477966697886552033141930334152857040162039570862925669729527871349144109111037562398700671450280684378063109524124340167540601894603761413012444603790656789703565296604263244724938000291526263940279423722951687456394683729947637576077735197983270521548197181587754218457322933560237061586952218654106970388614936480751824938759335564181054874122249668438201917023246068746587619798446373220417964410717193920105020207509994037195508080593594975156776348686394056265281932173625912347276485830844794583776222347213304994314238031847933643625656964345273273705037921134183055205163543748196859835367091157443663325311025907628701796116828981471195625014496927767692396142566862713978292960796512755524257265732605119498527089636879508490064478408266514648712084724280852640814049056463836777815578433053554623231653606343354326087297148578424876864047944322209977962973406404554771761197189515306997225313444910942567257675055738228478189475735843263204333126379100075921874769121548563765606773128364964964698492746397114762767865334394028462327076575323013443657289574951938170240300806141544999761616477725347118358058498262463075549176587806616512504158631599285155585840174254399694109571433373800817758643470467214415259772484339408645866795014779405121799091833064938956810256094471227388800777367007358533782203392984276015696375290301456507272288727371699336193659482126142506384785366335086709760867594295615453417120308745786873252954415556730921478767642933573032195620952048428213749857421333043692766097749887024488751759375094251950326229193075469256204551052022074981748461177982914702115383911276331905795153819386418475306891974466875306208594504633591537060994701136998425774000677663445827441956030559793161515988758220014933595237758375857199268323153776913357316819640895466072489723165042907842085298542286457274332303248627440236696016628805916872083941904091876556395976076238177585135023776814475282925376732143876227185141331995873648194790945655062255746374900502235187987066319774464496401004827626532976736540045713652432253450459270770206875867873090920097979605147398755378373599136041433691112639388860669489157637283005042402092308813221799043681543894735641209700519561839681618432907530669858408258521974348471225449417505491141479802188167979312893177190435957889975399723333457805915790744794167369360519290418152259840633362299575883801121134310305220860207549350632616028201502407483631990438061614554343229813648967551359623311055198648386975145451805832558262018389527050188811140544411252140624028673806331854587554421368918992245430435485682515460521093307841412798351785541250899282510783598212636646270769103449003504028567158675682540571852391757763427723495709739104780881712107812562032338338021992255392896975444771881309396641968742720042410034851009389841523854222153720093761229318690641779356532647699215018257939772710792932524820308472699582995202690354002918387047235376471328020109315421637970699576481817322042481850803457776548187245574737413909644781222650132082990124210090951961873156667808495326250298871826869910106206134921789068946967417954056558968899002191583348698944296068775694772034255080173179997156180002850998734574930087837540910925998960754423279838561029923606144906937254813962620203889276027974189865436515495636635553668718328737301077335214469339548149585544248855970061624526662955809717880683370882179406980483252654571645154722398373930652245741819804091762328030691311305937506953309490377788600575113290263652620300336469828328676479486276727640553523846671947533269275740762182707250096787227609370727006426882082336179069737171176660755323051738531044218384757546021518483628848117429186748259949123972687416525284365733714027324010775329640477315249389843882423167296705546222887497046977787595706548582916932317803063909208687987841522480038262764821712008941707852551115475110646923942019632709311959888321225213477038437771731645138957620292080986375030743955638688950801710459035230430473861445252956135331851795169728318703646365167719118170053344240437471106402048650319324193693237223275876288920598590878297753227795324875785691138856419034713944983520248300812981280571487271842600969192099116752606417012247351778779507259888753039003195262599731580789390432923284106434669045614678062484223802897905033851178590748695483606131447670667947256104904756352056393235468760811740761332318372684710161434734539416307329768092883502281472071897665540777926625394484443512877772779034804494530631822077742108927393408325672999188489633794546096388770416988671512659740927923783910417615211767657495817975422387508559063523781520033500611806644335796594998638246369399401748797792982596716714780641176193299927507229148771943050795024317818215488324803552868846700836467394325694865026798757863729532643736327770781210880192494270751318949378160946617445887706281840236675827932101910575189625186181582606058849581406828411815550032721595251569511183941570297256217533276915683353676888287798921291194481996335780151473289425325785747555395742876727758586292629236344923936945004946415293512499180649063093330986896973912739563079011846379268762124163421994472965284176275441660331868196151339943699211968507485434861375703216676014974287028665760907753203222987732482511927141214918686499781049976196408702798831196346885224049456943952610827101498446879023648746762466572129439637489158795869210391869756203834559561014390204966781239833119275548710903474405901251749503376890166371956056066274434441216083536102670960628772050000345780450035374992164584008984352889057229682548597671954693159702883814012616733234373956458408802866262907880914981208783276971787848957707685620759666129314600612282028716712044949637186329365339131206941412732959831061932145334919671540112261816855244023081679970337934564402094851966255284317402449724676779850274669880109332078622522629003450342221114647445970309705852761762144623148165531785412544568204606726157711278149956575349134688187468469207604542318951460961041287349498075807527566235235448405765367686279885640684225314845898593735767391077276189198227118153922634806853279745952755251285923546185512607961232057533539079548505625744050439153341191153948000078670373925823459526758228645870850298043768428074250824091238124641845363747492871502060385668104970668312991210642337074888293375154214789494804511123819983716417690850512158233590032917105946060750739710148414835334195652046862385374613510321192021464529942362730488986598124428200483559672493839843806076183966683072250908175887898378013055560158747367697700005034306753966070202467334389601596751702621207419623443064601032428714406925761182648106954440563255384167241418694192441714637325743457916732192236148611890885389004563475129840987248127017073458327029742152430377277510922977607070550942412064294078912486786369209336034417616091881345023205844054765118101266760459251569538599816838822312325382934961282938646052077964786507568211816935616394170404731313730312243350905708860585058279544472825755916622168368942453881379788239865102869610616740181767057938453083004496641164021623273061004990506732799624444081467649292949545440563161734209051517651846574620202091585955935576253600325783559253392943103247224403264071080358955537333457732537829710989432176347472961305215049519773964577251707453742330585304109421951157547246946600794145049246651621365447814030557749468852549996185241839630620766320130228572181461708738213733342476653943843808925868306931122644015222375198738837221458536508050307388082035134493757576003583622092632594282235814746039868026610251665609836410324350228589706775683501713185852682537591184510008305817978082291065850578503069889681681445510483763438542760864700923648389821758869163981272494181327089632726955483757991224064782603237289170748511018946769784114466539836744838479848944170842600805455849557999307750260220560651710339959260042606514616892080194481800963813423893862968541983912064324080771729197074454368645629868529310725680788068100669568691269172359039352643031476173665934560860534846921596629795873527859710624405942541322564139222210289743808530641209190020923497854061164072556989292155268887844175159949961572732628959127432698952192039762899765281910536474560140329906501910247921729055670655223993801291166231561401383670785382788362464407144650275981488717239831500353401986890074729174881782739073555055606017379328277534414943981769614293395844852034247869394236954285647410830826304090075454415594578170763497875636824954531275821918234018902975607480435759779387881598432950489483726787545307346344309147231861565782241154665982932172742917122711226610178386329309186773525710275319199746735019645537408923120120973207466643228555637306432296432505091046255486114879303787507433727409836728332297698357858072493572582722548647631851147795047333657184899368837799399100069182972726452519783399175283428165552843382522182529547948815528436945627214628987461284733229821665527687966586799566924444568587754984659393340366037404307938778917176382114842220091649500379142832735895991751742251330850481806566664032182175757090070310846873997797356665176240863929005706836093605326541420345382477773035446227530526410126387901976035271458058124249496911295916912949591289914360433673997557019893962767510315601525462157960267640566109109747943830633128389903105955056935400809168786322595054543396646910487001468021580195611873384860327209971638628536113315250228036592671410415281318104088848494606349216832441929864647948261934822027105869256163164743932414944722338884179510762420411566045383086764835332000658038414659115327808576444408557777738344250456218678330909155061597869037244004418236889442960359921078456628386018527186586483730405611782632166240700436639981529750585921916297847627411973914170365516499242643176429143417440115646548257373850283328305435392018340398685854486726609048937376963191128762819236398780311989523451621926266913963197579068787973729677926048164314272501608478608279770180759190420162332196409723404722562529000075694497654371962125665668060638596322076077423586397229695812083891612474207443531910065550404166830110086723589567885397704546561711211963426664228464329453055540188689579082659447494710534438828055627824784560218953788398674772434336297581767697633208111206342307977604181138743009648387879978326660494587500132486108090621127835714534093404538409644659361948523390977248665773446074685035134981498103003070542347748319194604634151386967290364206931092962874636394328492366253160345942485810570478497835684196754701370833720676411873188371490755613397700999663146186248458408889905668324838427054074044084881358985800971218063323360820500683669393475119359049207216484508437381930287377250033337372531951030560136104041851153062298991937933357592048130533502237112358217776433658060650038747167225014301219737558141306979666095111389459333146357494088043105154648926056876352024726560902325780544113415093666151274155513813028719999647896277869743981463314319748730214571978415264739170300155078880818454889682880285129363235500542934055910903514190544182771688948058355021651344061685003559875338086303384502953872534834564291668253873296581451901140919992084908699403506153501000692834813226791196507081362497581067607296539584025253482829523414294549789879891866748280516883207270330616762677463847310306164490002919203733508113730328818317842656358623423386457625625337865623060110597816407705095194383917611376814941289123063972265957341634923382502738563725284742944785523967421041116575655165944877156693127856456513867540517498991463883155878456120855181436410914531951468839324956083948370131399434720400922642941755439053448151287943234001111604648087292940036454557569777984240550499438259506730762338461858060247375625486635585077141129492233973814355659508455898153647904163952049452600840812645833454471990159761033505251860288817955514847491232268984509678033491132602464035590225358522738618882332714050846207431276951871382060653844232787711759267384380365885330623709866233185246406824341704038903458091231438934508342742713103486081100767720361616522160354901163959589269858302787770731975027503595372344908134141726677241975622458601115730027878484832087684549729281584060050079127988181531422012914291112015065652920097627599913110710946458883639530850296688339960531046811049215625669487832087797450844554206563667846021946147359474209444088242395337028514311470107128052849655428589094297507245806006412547880654675752610634445090012982276897398254457424728667060390725926659843271646193976551149459683812678906018167946974442292970182169976217660756316519828171562223996103086485850318359587087484140181794178638767991811224771962600556919458783033876209356348405308342498599585499635954459766099945454535119416590133933850584872614962586195830109522601338781938201312277072666034638021711385728149601529595959751074928435716823439683506097722936291665229505441353896336858083134831601820878471924257177839519457047875591129056660587576405835872011334356813214221588657979014254629674857098413811779956857517432932317542543718505485866759890642484800325122988867679523085578516937965155754149578770388385737894358223554696661429463391064457850174926925134544004681092903957194243836058463818206958418603503532316831861644746473685658105439476349191841878633488931206165787544392261818333382475323157532713956080233930740709924091073240579432041097720915204803341003074328209045438352636638118014161107334620410433247200566817792734186479527888471230095496822054659655025930442735147620645550182931552204335975896013647090744435555869395685940849618026101208567313758176749970366826546892581509976880400938692463393437151539646400504495244951894931076424027450761253801453192266429010946512579776703961166451938541137553218601851052794208646845397710261175482437739781103716855461083163196878331247034998781220715352960583676093707376996511487487451208663450933547536260170164223456682846749520572190315684979202898488776118655561666902026334508207303922644084889793697640572392454318997384744553275475570016134095862437072577077696262888924453963167158050944565127703666411931595985656646773638778709173504429516973502737713996563221215856937977942586553668033105055745710777608273644313545947953157473633007965473382732444870036994604166847928960141160694880960926606958494991487439924367343138476329739041877484641098313138744812184989466303353055014527149719090480108808994292258363353293330304775200289217225448036521744339316787986071434459789794631854165241288362871751001672860295943858235691021132280392187084176683616060773997070885865572429117167773594591678478468079871228575511753231067784995622392900028243861983287343499977560132758606087677288745679479336943510175225966073621367084479296188347609911942802989865674500847358602424137074940317647703789017998131479619452553315782801959545640662284571620051150455534395776326588247591385342086757960073809216889119762266772963617888780951094276976160784543676678218365035683853680069833935787288909171320728523894250950787554168989598162675998244236485380379106423376917312956772784830270650419965926874537808075480479766808131228457693698818708730008736738348874370862424220515901207655360711303614356460769144087544135324674126263934468669189147253929133550919517889284499756132445195779608545536350321926457261263221048015092020690531857015786238572315014777778656581802938628546584270571112831566837129917195465457066202189452576547604334313032093597285554991823102195524233093568021238375519501664262485290249840079661105325600712149300269416510142576145086868036094741977794929178922121519428674165446495398997754377458407068792524918072421978338567114894311804383132556567038175238635747206277156671263124589711021162387315761096408479986133133897120411895300680385608268853900261327604614648659047708220906332699884015017990207794496210416532936249225528556371581222798804646288098423974283058259172523075038584443578113904975059150713257271469262096837009053725457453596543900814202209749709776515740643272404850438143295908924180813973991516761568971820976732716541828814814884828579414808340353688751263802424401113405526598337220464386107334436129955613837697740024832739617773381955079707182665039576249380275153472143251895301527571354893382301987361617810911803182594294550506031834554191137343631247704274144732709199522656268801761671520769837789900869610690577329889879083488027990074531036238525338860830093626732265203984304068223232723025994408688264324847548774466309792517037693030887465674812714711497203764636706936036079797401505741469874782896417892029309205006152236657609389376410277695736401280596798980389263322046474456863941833414181684978891441049305989549250390327213663670629794963964042704264232002430141214046646549695472495472654964952641692311279725593390714802801698275863023998238642308235326936740166038641878946257529863699595137124420180941577906302405228234368674860387173848443146482354580142676893550623912850493752930515370395954762645985221636407986346213532993057192571902457910386994818168782970725174133447311563777010187470334314661143244702915896118059248174723587016166572141446402710914582268549969256699772255157505393461097468168239702538595362297066015819804526607621785326740073003762876346793275167293192568964041633249306931654363433823203941426230132569271565442425026266929099312031048596810542284646205008443156986696448773485861080849936874212342631889166152817724392233473619089195331198075544106792131890372938126941899446105369805226707498499601754931640607467922183200962573863541961509932537802270180364916024235602314212918010560184675921624272501417237664535718157279739137893418835946480215964870894736071738513087546800420931798554873077223291620187379542030268357757766165872003313349292908932793264474380760351071467358727140667321105441408368125823476695389701083345109141670563091418822667092038601895928666199134261601804628628607204760830637445879192516240084582414530264765306673920312300583506750584242281004803579579050201397396119578140871983222928396674979859429313590138002350932064305478227745466220845360294813171279221345792179959749621462823496547405701131310367046155154215240404348160308960133196536733984134533178554492034687411833273584416959725737077354255775926234012373386157875850784874609944033133565899721378221406368956456089235022398912638666550619992824432469786576121044285063054034903357418501202978208100592502854427462342180286742189933198772006829129225945349673785675596742403986855906367582376014459916489428122080558072855800375774076193453151091041591143754927946803365414406743523072386400224108532806470013828163408897912558260340333856413546876405774909184393384001413643098155392561198341773748798376459979979312283351750177382764577423584305398877034380038796757710134205507504752751229711918821163076180942870386440024225421461413626370554336309039779368852180729694543943589742209892736590848955132264451962999419119986803822588256057643617246792925493828236477447892869141457623266042827384743994749975332581969884957581872013756294316531084700400983649080186501660019974975488732032414186013926577136015188658609690594135171748432607717652110211174444833111414776106725450014574302006648540910185883676569143401027655280561201677880036441693944178755161423084026351294825109415287010306186099267940405268482719088980469018936940449220178246985531170938267115527244697864050673372936488146800975951028079809943642246642046078543452542606627556330823347512675236264851947619003813778073105713330578211396793437524202196769500549672590629828476734056613937557004785596038634294071322746025508194095430814836676531999999737016718118701621226855071151793851601465012640696002259801542087256440364824622692104155194368207199149105846567062877658005533240262074851208658915757047780491983627144820361979551892309984032300997719720002816517190205060033982214546254790345179155482270754845273336973114627001513475356754698551004393055100480364148972338866833507107775114565480074742101213030719798515098984284708096032942753653245043932194813745076389831791043186653104636422295578874101616874503755085104364576463418162915569067636725391726913637492939998011621170475129946061403987301124920307816595927941518268243026123802462080345499785017377819569271619517355537647193292474465552691091770197563753378566795825130160338323329502597524001449556469947166739145326126381831901659005441674234370098733106730328691485505832835505348905209182911465407327000005361928838609667273910917049265452067032305627029899676742060875010620046392117935598362342205737888595080897455142539618267118763696739636831229163927963664311471433301058497932061678620594459485835703111228417052751708304002882236558231739930401039435496474258051272355347563148644448255272411956736070660563709192813154650589350978104719854759977620328197187654902327218207048896927686757369682986801404574611764761402313483673113189814029670541538573302312318149221041116265926834639340259837341859699457325070084915315969561098750781753149297583566508931683974338010293130720961960929900672953644416913579067983942717311691263213919358626629226404465832675609321223025701949930061714641660622343960311617236790629831648598437450953121862890045700683972516796052952670118141708984527949955025235692847458797973252839592379591451418979288225258704040516415472729087155649544083419246856399177437613978582505808065240545626133500296379997109850064003595186632246198063875592681682873593656171359002540996203422575744418454095146488520270226367045110872185725818955751291576242899792812050659508952329673861205708743961338161422556605032799905944136300798366645661741040145840796525295263173392145423162027357742562837227282050935551002257694109317535363028551790438572247243471846106945394071545765901264938927868428780530526377894676608412890393037465442322530777019062175041532781019035459906543006643498514819549251804326234220607566774052943947903302884222695489742702011819406640100041923747914541806220632174568295578631747421485168870441578700606890603479552595004929932161847296360529393166715836306915365255365764724913355364669217457223688112365566225946377994482394070865996239276968806722906199696792807835773168379226851110411321799830712130930089659323224885601084031994373591541924734925998528779313349923671025897012212360477735388354241284032704310150571454255073746033033458277368875014154574134007004794147745722596467269191435307294453033345411338135847009434978758829555315716122542154265415362794857812595729251522667387267697638043320159960720381059841446058291502389362631564866660678843042455545829629638260210845301259209401737637912794233730420171104253988509652925364626035949478936339574010341876353651214102523399859776766892935055159285019285875970364114331343107751630596317786169392235962984379416641397235386127423491765501749237707678321477387536161010600461254272333920100496367670254585573246760289284106215112074555566806293939452195708490819794817156880207713375780451989649018158879119130775632667752433076548068253889269883893869453854027566818061763706529258620379598214708199479722569943667069422738584086041878812926992867108094031947934654012231539764331311105703780986119085237971023307846920618321223677585404025773988376703642181206578338824313813422735196619983440544637733010067567035972316520406969873146336072970556012554376455131160984764355276359825747680979668571962784350236120361100723199184529523714260268271587110654283136634973407627641763071831407221698237370216133559729329506724950838834466489385018637106677891462369090427483735522535230032515463561061992938943900604368521362511266230501819722196117943710587761607786875745287194863655118486228415959451675122578957665739337144633556946933889344905055810339119522933733383784846040179213343538817828763509986601660363982552298946576098743922433489607727029314699147123579183212254791268662348179361962126044885397495297904881049539301848012722778029162058790578151925070916655032596569134051519961284894662107863913136871134148505167489299039286390360124497040634224543807156468624770491225711349665095988667163315700500335332649223387007909617984072000750386424387752191036562792756998767371773325802519870546334450847503462972178612135383257157903181687102337568966310869920527309986731848913542445687301079161648293482205682665952471000292069932809642591754750136507328770552201323784333044061643740437291285190857053865753019639535013717627696477798138446557469303530677480274336453858147785496232230260287974641388467860458832732309776751620841156126446786712748452736005355011663277755647963321665378400525395556600256476136652564928877371816284667979520160609738612293233509102973360151220908026939835351268030996069128461668074159925109968910090608539215737773608489658556095361719708821811572036227258133247860480640020853498276412551277057015423888484493382256128097923533549126927036296074310380163585025766154378504207277003883813847758306344729151167200094586454325625451987020098462326247755501634041459262678295834573129675943774508061683128233370464993796582527247344150814375664252707852373104631476501681906700208998723576801474229816412713889938164504534675162742247770498129574673672085399656019161886330704836883781917910644764783775460270392109865073473538815060985024051885320093544509354968707125321791039794895972181072363681144615188799163775313943049899830914729802623309247957598521139841451512508181923926383811481905671097079789966050219453311471541228660733483657640728646705721426756500417472580146166688361997049931981413071797128438539721032948714425268084440239829942936591094442719920559898151199032932689217953947603437263226713091094686718113572438686654459667535393106997360588059315391619494551994711322935627890894615227910873012645474205377830549213964213675928264291397110737789700395102110343617677513801614878845232307067959983799516826852822789492101195722424200183325998595575094642921053312847790647824524043520997571593723671539483401915448790075160237331090048974875712255461581641047539663460195676208330110060806222509008976933152095674747076650356459409253169130105830664201199787931260402432000478902327467110333958428174557758761699370637619143905460759490620805837770023801903786241905958915789007666943102682249376545602708099718426956306859465462473813398628027706404728149644673261932079676726112624963695848751647052691184734911964784657203222054947469601288029812233617097923292826721941203509175801763000867584588980546418526214659564236746029304090365931675027575925367223222965443747940353750994800142038890516784861309512314216451453180616861859765872669585968192165750539379371278788808908128125856815289861091397927977028219387567462188320137382241593107142037092828832837974170989384687852584575116396875559665027145850376046766139873522164250071151089429190623456307524831763184428045060805299388192775038388862844927200961574296133896960939487802287875028228060164273134409834479072315741074073973378791696251870454131404324350536716386508866950249334837686830543810963653797181515186974667827050792019015120411311539714810956883483574132157706942608982335039978138488157303319489586556631861748635950538074314532901211873848343083788280746951780237501359299035348268475181760419943948030080710340787743201777463325475068153113632336318111529280291792614723698260139819519897399557151477414688910608109401831051047202510026529324101367666157703483954885960359159445269651400365103356474936865844726553905354817946689472188029991016859431979696414961806899773299116174490000826464656624786551568624884624437201887867542541524822453857472309355126480150126556485560807003110997661340079461819582970663461270205044783306667036871354992813193552690595894708395335225392160424114756061197973255024829830350619057241080658354741569284343443257574582474096269345721522300069840223397657642224550297913117564628497230408162946701251797231482965742552703470706105098250159795784124560056903158064959265040848470961410105203738573512578080001878905249759262675898815873531531238590450992556301466486774251711065566803941433534335698747598441227316219939217040511171364684884849265490311859621104615525948517654700041604323759184894158506582306431857263689823757617326126734441207088810024836765865498226193398417662451599510313488708037266565233055229148079399722918399912855012176845790110193739880029826059744215193063112615687839223027986269537871412005218128195615304589541351351459814121597837040612571079920111804587780955692177427943851478436013870358860431866401978497961212834238913686558982849711557367791713889355482604566327950933076620317209603201126460651243423644507668118132309314270486547805925560323770609215364170007538238308654042075052873039688803806616291132468003594625968374143805215574679272143945519406374021313940464761659013566958689751555860159452755442939652727636425973756866740239735594424817160446397222649084485475626889494770129275358901815838695612707325836527571450488057192328204853121417833864055871539995514896879076785854791177359584982010002848802769979920954496550400896711717864986773811404180387353541796374855518298086351560267878728441004429561474471322077693185516828961362243692323250976251401067107051785903266086093912772699026614074181935873488694621178135890619555240534914182806436410457170018540050902926245270739645841276631577106947754441351907105013315020488383277512098550952240705522247055703077986812158788836368012636524958766165852130751717210237137921375444793651087630412566774292572530399917391444997087678087234639836317641025510394168440083747311053649184309553577066708497026225389966337183764872835063641940605148508763847673890120739814118324987338675926720842509320169758342850070784402221401964610816049144472850092822822558392913753920234891130976081794383488218512627131731419791717333958963855265706656446640214157946123982420227893429948618593771415624492243907456449218774337248607473020633874571112142083002621421979393290096845718565865890864712468024144984494047090683005976348348950918134975189259650104492611966085262616130014019699076202567759247818179658926578215260503301585943001395188289677424172002297211470945655755118894482042108715439354146712275675752102859176682198629987352813576515163164974415098703624996939988900460031241937030044648912835025396507918798200095078445778045602947396800661989053340772022317079880390802851056428183215438210583559765393064193911620944068428406982997759043298397261542811105949313290176469705645805214705297407688981817306853673584616318963520474399092651796703326315399123821526629897660165242307870152076033559860616804829040105364376704792994492777350850119855877050446929858755022288010982698302068130845463633365336351965913996492475157793557896424792771842971654166894455409839291289565290958544643429971355881716974715141049402830740630942061027481891137270006105377554019897548330347360221022178270311274468567526384666373440443000007903631300809575773588775568390267178005943331295336260997616934326990710231742605898616228247857456462211839120309587375962185666863899219499299476256093510681352505501286734450578386565546583046117068626901467708653392595435075303986214536956873452008721552592474450381720785224074033216105835683984119180997483698199505393037960714617962127224183106559208273148190341754286248992771136064353919276747853350496818834306034580094867602284164380253091363706467605999880973072245214790540836247518200210112617598650064597080772525740462145815567814828644925688533168281431730649545896722057192247904409965372417696523734594472689133417973618372206549858694915771806007452843893016566308604844832710400850829446717907150819986454853524230912763340654007411472229354937351946308206100603232556056794384890406973601570868616698476363161614357386301077656990719699718841448853243952702433632407416503801565048691597062790055057677751698099183259298924915776038175395292193417202330450788325124786772516427087474527574115699067380451402476278523635127724735887047258966904704358756765327438354159589845557849437663775294843462130908047551444515565248861131066547191543750182619951820262326440709153716193355703118450670456844095183189932563773937407212604693128894674775240146955559817201805697228665515000246223070820251923229135561989650884660946783485805041366213683654078412313115275798985784513896651966413485010599953646337074977165806237643380182405367817939790707970955728127673310239802627666219729962595716232331213571908712721704317423750756089856137185462619358521680095476972949994944477589541068404678197811563879346528115346379338687295918431387203757751010976085357168927834874455208213930458147057889739774544328832690953713332919254779192858051349077626390141446310975561944953414245287590213230624706737814504306983726513070670880802536258519635538827709584076215912966796073184323188091664892300081375688626372340000968014468410020178300704573517090778358907901929826163994328343079571130611003070046387456733510242249006987490815379669810533441194701503577315840083788598788620652465949258753315919153686427199506403084647820145002184031093903268196571702521794058103481783328241198802626442371466273100461967611297217027064368487839132085777037024345512216695191929923838551949485493609074509507919229342193642187144656497798780750159242126660093573573583518540744802520046665758367687430833840062429725889912217530075534445342925083538297654642308404548694130117146490763680130138803471964600846624496152312840734315500208875236832145459636985304126422085369752653281247268523692091906649620917542895385134949202449355767219662554198593219410861870890199904355056574106822857519177460731623728971655198399727194191241428748890934447953329296581763305520861669716031636623350830310870651655489909672071711810715863189189638526582612160753493039842111251324272657188816343567154949230471404742833751476434297465138897433217354471051632547700700426471068517051963595377117233796102401393184656592216312049593512629989438937910932100623660741819344020238290683961910448257480141165636521628296737039370143338631044847532948181554095299554478011477912228448723746355646840122250923908548298892927382280612278839126739822233749399502799320166483681164720175379581435963240396026964767226249378082875738556500700602281526162302795464278604932788064397836710757726657281407492461630102520214378524195041647920919907250849231854978366542605828663726373299742700994050599094794468229912902310068659621364016911986880165606647227690756039385079701092059466026398842868690394714706375412067288109215502399856645166338837891539121708573169069343403787449522597034890196735059145763884395849751847214207768094823530724481118791575942865085342110713021222110044146431784113026304986930807881014427657699820888860895552871168704514643651530004403227805273641067162210877698984954924010498789002110352800139393716188337353145761667185089628750738532433829048837242628665950222875785736622903156927170643033907279350895135516578039823255400890528850926435777544938894708371414342852858336169330508412118830925771768983483890957822324354130338421567865611366388847980293359024189024939621010950709700382192331741340090513137460235864108420954180960382482835469942016407550400569298300130878695814440174478494655506640292994005604104945475470878288295410811002166201453995929591529682888981650159457504307757156257959486525533472924230268924471870791350980238417520021999298898076280285978522467187356965241300814881057687517804550179401801038229159604131352718353863649323171284565339323147743259048283274095952117392035220129094382012505537458321160231660932555309085116184499417127751781898966248760552978699369864530230272182688193087799580451681693167341481538976674939066592795372622888893858191197009449492752309185381768554282512797255467652541062197076626448234265278767411183709613379993340460489293079196104172992676353740664371792874292860906800692674592862673173310220445384235135346515030552978473410956605100291135158379455522681580949383508843255005883441332753068059081460001902238424154230514111055913816719932661488038296823519154737125456287038153866952336553329104111989325608363535453513355003127877477064202116310414796846930060077192652796266896597448890840568945919250562185873622848140770132249604287129381517157447865682080277412930989885131143558868212671454248738592839427283795798629574561103153907618767401780018970130039356055018655150268024039972106326693571776620274452752933123928356873805174364624218566569604058236033505996044628689061041599185466040929703479296543849370229581471283063131346281820298429332489976322401613862676572887626261023009825445374033667808853074668620761364985938996658174744181219546299770649922059399068781492165352037088805125884269649509581043218668993115100508316243553407674732825934012433363890487988579317936037670441760310942145510072570833024611317517786867535168658638831393996817519256823481654299428187899501666514746488009308564404245141826079937893972789131216979034221430277919699550697205526952114115919975022223199533220745529284148334271149708350286439418865139093620643462296612445839728720141869159082246083825829761056355308031084819917966531230970654417649372763254936664283413527751303585375172522349118118611358253939678371458294998705559378023301182229785650978505733104998795094114222067523143347542360526185631895216479563922896224106801671967242500073817707494082513653501133863541704928478573952218003382013224112849481008653286226762038214931202268408263252281853236107393929698200339681691856809519848783935697157327836532804827586306759621971451649167897052595415363629131342540087030908221218948694492563177817050823253593921979734525177651360669772308409466831809639120991100662925391622220492612780005246713801888834431867509217527366039758065337335449918055995852237216833384600689311818675719131604953234306955958264083163392493527424700977799395074597333179360701819460012034238393081682131567699627323524019684558924903261142104181351848745610547594331896803464098692686036341801472517337868944631873582780430398355548952638467354083419212728570488898047136156814407809698895881125843862191607673680525055348330733677287651074362858493018720427411152568333443876500708590538522640033058296972110337333731766889092300481772037956034640075988063659127235300619143035710924162331391931272194019514853027918887603709164070807912222231163028223025453641989413895798063387284345456174867113700528673386558677794549546832723880427265139103185100758760607592706998850843241609763902638519860500356830079946069319296129729522846598168143126280234799814737519334948916526142634753869799037800186932726289170779682090068663004910835330278227502444953283459654917071125208397303528326157757480904739650991807253133257249596127249311340369052934500435057870133600838674199084669684283559959235626626229031590213921614844433238427180886418775743082414930607303353336605938467711399936106919865251271538385153111270573391093516540571890082212375111838656278695943098185501676940792032709107416106631250549702154992729868704216514257010101206124925095124990412893562395635521050953729954612026927827014578797223939589711807355090906005084751140851168214253580888169317817192615318468721672248056089271367340921265356205076561546655198212297038114907275000230060226572663340003031377072665189359457854833468133464514928101687923952780529182838512355975325562637480665954592409592438439624937243782331393925882261360584492733224084853496805110238154097880151699556892224175557884229960908386927134010008907284164316702102491293752623899281370938287359994793435109236241799559443426158973285420419592715561098617499931118786635918932193594190869014901167343150545902439807004085082825077042301089191498236426478091971908125600593147389016811114897167198456555606948878930496381397885152464044481716012341497249725326397610562777333367829600659035496189419249797005881776926808777597249555738620909544197651427854712412344737397954627891605213401294332357666928826877198749816310028060925077452579972367305594382716128277454316620854710871050230751623953032301708509177260438432064638741342895343092203207301101017515108355252920577995910946408064428039762623228587095763703665131146821273259713397480600684556050968233982409865614247710496730462621844801180063622214819611853839787941669051568367964578593010566797912437424475103477803474124129261599415852504216042537614362856083767641070189681994422253166688445263475844469794972316568669545680610728518900183047745518758122852379521993114890993411801528305829453423083298125700077013165900714543079556695377563481774783923138325894097719752824188674936285877494422001202375902984772295586124100943309385125871307924788592547095112306730800179531403036889849997670871269928975275406512064981580325120808735525091570675952872458702168463246003183793612784581713946863186264005569622973704257263127722568892702024951760760001016937903932547144030742676424309580914456966004469886456293257046753035142987445322203277461016692819539627358824658531174252268890474970008379710808106122119571171844292200380775945569995505488487648367951085060890595772521273969236502493537291105207395749223741389334636254005996910809760603192281661177343512227710000220777695176432076339210904471652568761209175322131317499599079310184135486063078631643429937172109737712853190336446077099951632122905958196171556469394353079546342915909183571343547031365778832146240822395706700776300335305362389379580729540943495510092912634404155746868408504752982602957922222930460234177125661319095727464174138180724296459931216294164766293928133877559388258638876153597087126809763342927947182244882034348443437119251648074937491955417775630710730093360240418961435997807583091407732354454359726409369407092779945047368685454953641421194666187027802542399268729616433009302185992580697030517559445269566877646430967329089955061140208295936231480453048252590047321329730718861488680280540245482089717702216084675360197998232040139361776967066442118138541076223727042574486545820927589401447092983672008998467469673353229169218101646370939967785733047222113803606151332434799515764600436361300107060026482142262129257334430451995860302679889597617409110162770641505594835183319956879945347456108590231893556276064719195754670717754391450176819725634310049456901079289061854172436303480118178729529655878777285535588642063557500609399201118144133228177329788143218342343847943517909368893434730475547581807235452738453952870253637872684786724744793473530914302373367107437405195576066116947028027477137128957235846348660747379326179139629790446446317748170390851753683670275636115655028183353500823632496111613211379688295170093575766733159335779109086556472658062753425077720292521916140576121858058577712398801500169820058740969257959539906524079629340255232792310985267395650784561360654592100281284725406921373756375408674629874850701974555556690860753523763957797307144373272542400255044492962749650612862889608570516334979875132001765905921708411836942575701816774438677859239501936740119304826986472748835695370787493196705822858828654820951685724202513084914979337505603516323863608315709115347501167214061923866840232320465023840669672824016542545046776240906353911535449188189318758243202635558812118999195957396588164879025665807837865957380029428441497882352689328291590871346216348118655318449957126502631940866472340745103391109063277897694106592626613546947128909526896526926148355131098005431646640242888163479572470467151641250944655887927513030600652193709900686495270289590166095705004125387732176358815948163543422797922118838305528456606920671632487925408100310415024455461270138425830908033478760808019529866239904339423629569809587182603736249907319943592498000135376678403600384351830406869100954500757659974640008362847520625644073800202433587657135491461378146260089284869375921354352729202780500039089945862071523293939231091055192199470496922545254203309714509123907132190054541530247499843979612795524073703147428349689303727611611536395088605880328851164794995189309535522128265695555013467702295534827519240357253269063199188106356796480539300932213700610225281467822429958969481081226896370251344299666082362572947304786923167719600860123805379081132422152656931010694648936101144463078012959815798941192614089550223046219312510939395341775207843759518614389138730785958210334057854055697589351947773845183793883354092474984678803926183295184099089686933968275653832208596889659256684899635590031838208197985321420225972954359034138849659037655354128314656308115722404734760799993399370715695082236559174151045973267940798798502191816172785371339001217129308595868327565851903515122544329359760429537903334962201449259607991778675652282893934344923549504633266308496315799966672572518227142384831662335405341779435130673634099055734714473956803918214246119639081407973300427638352306989474163649816180295004225037734625394341894752428612637204356366236059221525694586218929830020454459491961743039637611431468072365344498994100185302608584975837133999086240219903532465642102078570219677719314627125252499175980323110481423247501718544617447127325722082706878049718131302640158404099747229981811460864129844645995127284249833422839131229056229813382766942476822412557090106988573391290354132272100453322428053593441652773823457712097271193492939039251620343025774262325966905487147369969199273172230431343369461208065389986637213772960196775017624409060331793105806050560921578404279974719905701770279823775156446885388071803302121511925554899526520630577817577121404600707052832215964921668963957549631374194224624995355859794478483585125564811746827650574268536839747340944203022377826206031643464949185057785370653261445186042695210499026667464397869756924956776042755719919109653320376476305099841581671448410242587366801905422562936319151107880926321294337083902292018467590633128733203169144342326123595427763746432453523745990963935311948238839832164564950592222655672635916806710773981895029911562205276271621589302525474807031551877481927239535682191409684188105876613493356020243166740250144938941292700001328712990959814434514151915337083660077375762935610034880885009229868866562319117223692646559019827441348306167887801740029327018677409778931958343515800743332759320472504580719264052451793249246751505124059615982294034497810868787364252093188329168794510034432442860128254084420120172865896374092377337467705143845966315571270439441242876159545264598420716284200641462769063555998304925510150639295103271859300861048008699865628087301722031280586165648483046001416264727009030966868243613169865758652334994849407317349802350010449622652501302981172809451446997588484374994976091765344324754808033239021402358363186965600162463021275851105568972094708815249111715171794491922568029845792606605486144802126027738351635557491372008209004897363417006932991738187408278682278958482566685549202086572448214014232546386647482258909093492080543686683396583870071841350965778938039466258574788730087325890245638438087483285930725186332934169416668570264643490938793320847618673806598358480936062534135315983026644414932761360939608018534208655914086454529666386820414424899159072098180141313280482212274413878558412141756332709333324435088449833772478182833543443481827696696110491886238089742927464502456465065163648054613494762958836507397207421658612925096315886806753768800101841170930110303053724706222112611359813299484957533608757595053490469404143707248864039090280778254806187497759820750065749749629569081415473009092333865574389310029385945388246215460527187738641707909990258449565758708931158965957314120197186314849570014700340887011644364157316692958136457301639525302849473175776506562776634107761761296126777440669347958149897660384928666761249719527152661904446812054860508741078082674180537357501624079471529508183333489735411837771108832381298745855986657580867516150992262478038663003237837807889298277534731637951627917138838395120370036767386760003090014925260004055982195155797959905864486855593887825705312643219886757153959219867319020090272536727558596065584486955664946091473277813898473124975539770374765003836249325710481103570915040718051945258141424657350574930667064436917768574351253129683130925749552313777914820596210503693955252768086351062884605059096899268030645453804568057156542673286072397263083101284161339067207297448770941993776753906539324124683022726289950808189974381240033472568676913812225923425809538383762420412536354530046829982730451368189942069245459789967802821977930298407675622728126817513241508175907426944794043228630152440199303969480018580651022616284460259058870889835261188346046325751057181872795803818761184190507634685837654659505843058106575753255867626941639748910994580871244371288461052384129218627605094608927882779474791621644153471706447102072069240688440423645207755025617475299774665834542815665391235825252321381803204403285627344293301528507057082474891135080873228507754890971925094341352596115068866661896404974371430601852247748564712269171359247582886013870781904317479054381659263365752127840875585967553576198960887152880106689763193862502982190394326283355447728111280817020686351547360190973984124516977515598108990624926756168731509529827332903075643003491977470592985160219498405722739650850170360336301618400830789294284623244134659696546684350220213252267569266397652481271444845064271244789823073518780609869947909375271059253270927625152118184366617539666276771399014052091745533284785149718777459843862410272782196009057213064667388454420808001390627162804465112218999842727351970264191516305577859512791781796715756637849413762486965383023942652069043611017746243822755767882562176682309868747278098196845040737615921911776932291433658043511938093511871595155145977262258079513173566097235765155303926330855874976913308556004595045291497869043243056563730882064638675519450292850817069266072232154836669185262674847776809517521357198012271603327843280253570895922595045291973488588118425949379346093887694221567510303841740083452403693501975334303098740817710612783710419117920031315700029591317907664035698197606902762110892663434350153025160814027041240815357088461419389652741912846130505725301616851058238308824842230463992996188599812836149564825108072515646768471865323890554437934125855777694662844756055596812412469896393046611871127376396232268365135076691282825419456463744768599797107213655293934502234793155047380479817464602800142155527388101574391855589918771108487201424058009616441234524261581033077350982660230969503331925794369039744666518178723196261602424948303891304260808042107789202720761057985556246984126792083570704039541604371274158580479851167021666603592178295947105497627000259529319580198968723179162835157183089058138223641307328722582148780262011453463900062472721278144643367314652140240135961806869255690573735028944234420478948016328173734963765672292445844228592370995308959767537767364805736878743636183315584943998144016249115583562131388492602953176312530740070542178474685180148877484637925358212422329737246463342040229551226720623884743522123498322234389801011958436364163898848086061229177920134032735770660038397074163375688435838639357542706892615135757878894516887487782549144400937386570587167210803279915279228300240601795369525170692204841613842540236701239766706744952860161013647303149763084288270640379413936861477978689062910671227657454155213334329739520985521303690873626697703101767437140064006528015230344343672995060282962954018732658448549021363741520554269062081688074011872103391733768393385264850591495257925010460934070293262152889842763646954530865931046815721122849376071695756712494682359287599190547510679758164383029124449953180433291477862366639100607208943333871449521097664059476830651418002978604735821259187614140209965372277283794657107612429223239680351118898302173444125132776150394731065443690595291955000037226121179841182426085300449664637231296778711453139011816774332964473598340578148699534892297127950067649832120069779522370641358560748562038385619376509769028665609622006304860917575624221838468291627237713404271724027771443230241023661710573060436672548379336556367715478836160832579748236303267656749694153914459173352319159764270062618130341178877597971152878454463004687740804318553042767555897299338528993455486316200376104387367508478964696362764853643435372977426415904308794485987235586555493876992151827533153465765834668586061647805240140257950862489021971709879335831964000434645884890207299972854955264741725725455327014010969251507274858062784171288039040015649900908302471240614958505598098741508070267698939668265258698621111634626074115669333107381894429797718580878723754509275854045318230851740849383695170819465090747217333017076981963912525484193881215151978153279141536167629637435600676569187268429275625950844313005263153531103862591097756513094846559247124816254619304300326737336144356357619193671162111767551803001463559157487765298487283488809088746308583360843779253838823600708679637380613053218410429473229152554611373207744039788260855304407090719175284821647160633886646369168006271275678438868323953279024564497214741699963911942802924074341214085640814638931755048902608881855620255442434396792408928551251190304248762466841114473818518443037971768422885787429563916494992150743416453482769992806671959954101040363335318331055475184831886075656597840037999484793958287415739220654086015210360530483496512379437483493850406336037345950672568069912132737841511954389962709640571913260476566492441475049388876842449132201225885239788885380243236835540564576979078740906057597361460375942275661196993823222436809257255843301493719879521768122267662475659778692408970293654964546616738043866378765624137785000040491888173820294716762575075616158713498193354692118571746276558614942884870649521424372431397080024003394827253506108986945428066171301936371696794837186743450392614554251556968461397764363436667774203982290212517616439538499935287094834344877243599106733606891079162164442126404721570016303568743980314194058719283428428234321434090987277243380306228307311303699634036182142861813540259735837883114998205958677914371728320569558242554735996507052609714904563552663598074075753727369238289496474456033290106883320918570927200675290199138673244907818542574368916652330892032345655695558376053797610136638782602038415061620723024964765110105609025835332342689148261205815121273916163812736120697199338551175336581010603440558985399472331496382317275945043776474888129094641419620623502296169785191091210979453096298520770035429022497224803294418661773872822225757533985945245339132066913291123152249731563363209570958386285877388355937121173522322482949449370568123409216310045051387853034787598291875685355411369177996981395027401849258564207057991062948965115140849892456477984221519707996578815170427277923457717720248226230154692347459131123643064645891106895640149421104754092544581899784828488965387036799640505777446876286328816137942394181458410437833994656506564555526467774366832900132323324779372542389379035006298743152010729327067452889931620123732303740977819299934350782260262356119658537315277656833197728883177941716181043493105756394594724534279826811419160861628620011239815533629343888101687847217341246738526971519787615497487027583597224119039132429727610786291443101001996811330047473987765332014622657603827461104499932987410803516562520892291989599760124295487118500311820057148678061514765108849834599195782449442743600137718689864692383061917601457156170428777271543962821557610140177463412192236208570249461332940413959448689444977423017233499350234799686422557696857249761068175565189015156491841685778833217557089535877414627886950026524239240438413637182914553519319685348835280801440359147263017656346571953908393374964219922626623000438915844816044215736661933073675006363347101655978616776817411778461424304135432913939708181456886579532097911313145418127806970561105550122437147199160410816523876215108503702890387795228134206762860323811384440083937406794362594528598658950409738455786469786628138231578550920740125372951351825131733885421558505966795064333772657745570825827927868109218298822551628076695443416432627915221848773414982258441305826194693408821683760273732085915675809015368387807517071754058458787715379312208801497015897276366641943330122310129349068357405441844849488141368964855508237561627837919690310489700030855631746612786372865997018589031965641943809079883381035490504068035640621062969189693933270087159634833426882089631750444211201995423136669256110968618364293124835706360414282075078272622835775385802656535810055224138726919259711323596449683822023579130045681760897250986314964754477238745559135906743185429558851465116667146030615895278870794996689055328534241756671037652727070758988880457343972843536978825383519376067306825072963895160579043953794144448682562094463443281214837855184132847246025572164303465481980931013953637158706846379162930803832707467694427479432970869137444462136108089306740191692459435498123487034814400170311790386517068665401270430379100008826624810499999708889914195298731831288114339683422477996222609347504229908753291348118676301391025915306476619690328460359614247894271940527645441504292153810543621954489681272269725854290948345316109178535627196543427403852576613703701100994826989562720862642409547883911741158972510512160433622836701804729589000509250007155583751340964798922145339806968138779701648560781156376215095752479779238026730274127407610531939499924442791999140436399950931731541227455402837695335511578424845922874544974033219015026746314314049416506796465640729879993917636076466915022348517153767257682680775995506098432939722770611433862933083126639021959891265176192614979379275162464434186842517062704055750891779915373189534491462240208504981618027200952430903676689134561288260221480443355149513822131795526298734532164190788998851806570408449564306908823230994546894094887128040299421014172344209479857705956984810365444425207864186616532403929311458278396640606044973213360214548129985517468103583245935826740154240520266773591894485482097060256097598770226826367646054728684601995646524611423101315925918453469248842361064741820786821118330688328530447008280841212923241233604791930748070147953916165093256281993857086048182931736865674626395133410616750535800735599630976667025093841248615432526771744299575388452990951906253976738992137418053684566416878750906838872234143500908250482865807115972078017181304000939172852894808001457860857525246183490075683935305544913937753013930767159469041449248933939276529793460048233316831967553201334913189720824565820405388289173554267781483256968258872974648895565531898157506331702431646876139613393936519448586779486734712770028009917253229302328657904724685722407877681891283155652009369007588062283590170542360672340488317365327217629784793560810182353594993672773290963688732229678406760058219808895838837106951935166484642571946068168985984976070777552588716752227656585647729253756990862438892531251069953970329285654899924665358695864618017791056168086661825574790803503466754788634752410259043412784371916463918615309605361019530190551849191669642491318059920768564838475508251297118377673464860577259234252548069373816049962073846673194328562791895990208137944501134684919880792538346639282787084846915275253690119572098715252072085643664807289573880121910714543964207055757543359498521095554553746293183165170742534627719768209736064822169624502805027653061547750759430911972768919167634516614642150659023110312661153656325976273187024120824002939494945237912082308107732776424542290311625307730540076707724825760231628247258884323847941388182816060399841644074029408751131941620141195051733560489945650513295551157501434710194856925998812215472002935715946715756533972993410725394711458534708801649231145091354191452209549551457310501018525693393913719599833288387771298713351921571128415424627718930883597616807662496336162868319768829195692567524698638437773633655000200206930377875648948570483443260846053501759406321375237416307466467633390072763738919188801905424673266069929350953428534301771954219892438282601606755477783994410034120046488999433667652439782332079741948486679238900912368774685998861644427955930925512252228573200451416404016425276781949452514530390810651590219980652272679097468458351697773358793633824773678424396065523158133434958889738149145996828492981224622769703056664254067833265572008640271272075886523760664029947197070476037796495461526825334612751819673017302653049786268375846651804537579364123153585721393933768312494932294906403426225288335897357048058401363332467220767611814653468727598944312632122794960080883841402212264699689789451675756279017024477647001479568642590211977573372132856547881651464123133133554395784321283760743668278922944903412398064531223631159267075730779384312697460720806317815551134148626813674364979182262655728516953669404168179047593488680330365370113969587872343974795130919161245298334094569208673486337283943640471120115128076719177223805315561685654753897034415698133666502631493324688629750964831705309442618160209736386476633705578483992376000173136705164440530480349497792293108788868680270484867474525742853451671656052095511197295611378430134747784902226234359965095965791962410997011008840841482617053192659969690668899434538386565250122549571532208787916001413523294684718347286505690300979624073149163855509583249348212770778309746459185229356066803162377189054656873077840853234276194584764663980894227855535757617232502210424589992410739970698705118936466912778860674396393661407141092477267939751038398411244076672868379236923680513531067234973157078094823653265301468907824932667129361713527888451389893002989573690220368774847709630789555913244385627182932991668751151910931071707652738022355680675013899009877080915839706350215673568511785147654038585023014442823230568865731716119439069259125397674349027057283554638036306378826062723661244339518994123021727109444592836583227288208220850795141061725993036387378838860589816210160098007707881491494064063535818129589881907266618601110100789806147293736526584322982188678702845884802941130837203431147206900212651043040243798026698908788823590084267242104254497007669166755488238879623326260060171055553387549669032186568940197864017634323402301350626092385155941859728666789395532120154932268953454050266310256452995169834219029416508510827665443425205010057568318604262458291147307372664778676937600507419929471561915754360530645412180072208295954011592989571485537794193600490870876568456951849403882374924742203606726628158617319194566334155089331254176838947578399304698988658461268834112805656760636303447633125775398800603641683332883623402383631663631986078001128017895638930557977267651089515056740250878933167133406120290679644345119693888230234894236329460505957926060782726582007643468355098440825867304148907839792638568913838697357004573175003114035624411033694277492563314887275345677993379478708331276533302174995364913642616387521152081212717857761411265972804992177261800468002417721513587858644324226126762106289767612160814691531460474550348266673962826335756201925594633875052087435426910268923302827599778898282108013866218729303462829585106261336365427992401965054672170248933309616510520808580695181099731870681401131562895997667943627227355106610878523102272180277688957688669260515363822004058297482817050686792373111408461247699528818038128177070344530759996177124986720955884909256999508372180814291441189312774834955611630842620643850655436040179660642116060633696193149231634108555245462666055108655806868341598315146240231056369539266151536358507169199555829780798073259373384031401528855811419464733596098207513727154340560810655426123759546493746003076686133450847454487742263302367453918948760618753359707520022540693921526859825503526776702065949309824550640516819947875127033912868437708764335325446683480827509808072631639833567248115348401294274777960967677448888170819569668295349248133521079457083900878804714723902764128225789291089690536634586446265532978939056364535631813032056320589421188904724065635728481733375864935629858069081371683374177249120722170580945413133705629786606616596520440739790276845719623547480899699223865869709710869356667936106611518316732971245874442597188875996131027833862395071120243669659165487495158789660251951547537215581189948772479706485827371422964187404316974495943974670682255776098455850035821076818061623463692978422187937739626083400673935842280642503820200271179831805192321835475342665866761532283146013445551284394022078144755478893519338965724696659995637698155725524240792125627310748299884953924692367072450327404326448995671781996463967993185578162644617159955438845522476662683648113609706097125910396407421963712964120824219912248114308728793624392414636818203519221258135830701495540206562596840890535237533887154913778907876468961270849749842841112571367260687830863274468068007673072374858845801548873869946498442926952327394303994987144284852390429128924293191047322946510049155806221083450130367716862977454291038173093756601342651476396847676391434825098618352650008756051352428533865610796083820119346874831814591748858872147374254253428712714177565268076989084765820500764363528857678307879581076402388328827598041613290659656150381580538575387887472256020858481804375162570166131004563157389561458608802615053434790001761753953845312112658047528986224593534676204824462812449579941263188680713756293613951587221721093579940964481826214951786049885269333624693952296420803074331821917855356249841803216214097288412194898308456235909855737798631023585098875230690724643001029558234825415205026654081188808860887011118623587773200621384829648530834806491588806700780187067441578613967129542883067452363371555461560454094045064401963627117209074813964439970719002587882624828413146486552882539437020695993503408986741108893751620204836217859744984140741383726675357384424271844318137936392813689665730036583408078863685871796785728367706955973638383318281372333581827944753956320228410164419991551210542227016518460024375919442280294437173578208194071776230057626036609115575521989021987337126195273180873025815493691341990365944759060679640719370149789652323011099584405040683365277264139339350344909857682770076736884647596236758699512646750065988733643622243788754584714772317891698587977072314610040325033883563928463052570229081007808220677221992191722667098578597524873732313584776553298697126087477926408402050972302098778228746965864327904242607425506484576585712126488902938981892648120591193023457395001907441447233119438887624240605758711056633877587339176297556927429664089169120424418006395303899987698110212545410230147147674067395705923327116075312851223393131980300118337543413386623713379050432257399035410623397776430692879207542127100180788928440805667621019163801189733167767283523837269557747951431385841510446718702414683905598554649322298597114894851005118789339798057946376755886827654412795944837608380457987421611954827219948661570176166509200640927619057264364909492164684998874140814019234088615434446519074553080611506749430623839164642147384763476969551833532067872939968725694210070484238713569286698936103575304369529669515476237767324182817723882806429042264908100910129493077103042745751519621303872686508542923871110193308339332729531232945902815352405137423522448183906324770508346374973642512395686423420351088653489009452738136733564206787823321390644866806915808059690884121412943784438127714640592480208036281995470910747586472008287689823637076903273016958397343709902043203352839755933476188912838491026264900256154244888477470421247841414210705177304047690849566405929626637011271975524617286198881364245246979952434494755117505504868156528478650100804397354653274539220354390154599538473956353035658029376391762573595257839254136806528924055791797506737759690272907678705265563963164496348894954622120203279210305147253970518891942796971062914980510683452463964427453504883417394556340841384032223311650876272070380435431210501413903814801193005254548665848894487092762930294699915504117766725763798309051089840728462930883748268545861522477308784538752949491290090068645235822746325766208506623799906210905952437774010192501482173710716899609000718372017405288242510168341880367478935840741152895464016817610826677600880236444263405288318927732405656634138035208167821919370908154495772068876566058862639183611517515243644129563450241685859575717188082030588353159681850263407562209073607150614315660936219911418771627681748224209497827104124496227633187077602018414609161994617478138834432719415354526677717180738656447346690927552269193099421910202910149850243286920587499341815483725732315082806737291612854576717877715933968671524829404406132502258714100541494321973639625931646070608609174830859585789225483271164785620358806858208218912553682629237277396713751565600962668444879994302711715134187973690183674555778655112701079482246841811376296867285670329157251573338999169626849842429303027015605751573676091937431135275137548370753141537768348024501115270941568939135285636514424833470721355510622066044017503716773510093185518359964327910099035658040821078551620609448439793736546589226646148293438483023090282381849779614982054807462705068084358814426803989577447453897878835295600982851197697717893649886015885075580464371243160735299299105164788188841604628281762873387986532964030713739092664739670811160480923166500289165538493280169783690783214281569651816009338096110694066479733973885877985239873723593521947281661504904936578295756511431598639098889671761428515292539730261327982266495632328015659486980768448890947324618015970624165851309448027082743129327010680330274708683602571443607507829045148206283486968831428370492398882986699545137700866007775864987419792774966743899253043118308974245017724388185293542308668994701225704496094751364355447197293314014852011628022502184935751365591379238092237209362660819825555246054790492966938866712157544611899362693973916333193103293091794615463070595949048431361712534717668757887810068712815156013528320013955311513491583421753136644815958953677970582110200464234123539725915069758496101839393827978621976033519928599852730989295893231606328082453983016031798794664970735197726272635203131348678328923094453069631852534307242779855699169239633478500293416654339128855000560321177969829299221152959788713195031694050610344203599408101311948005288982922632299782306082559754714150522612207996953806402386297174006382402277129742837412842790109079770513614601494242844761919156242066635791234839800822967865277542152771406838092557889753544856341820632392514189839226709651354782394161797509062191675013777434039112233875348606629971618309405254174643663518566217554636394937165029700121681007324834036129578314915561551160779462473853101430826264827323717824316445402503926627740495429721258465083427591237765840586531877054789731216625053396503886758148971117160142118964109291662533147039726080506321040275998663153834988221222577668196275011828951373672557771915657016540629892925471539291304571902009451789561743998719077403005545638588985205429589331550996582718859476508895552803718853461600415664514192859826832463456898310629486381902389629690183732631497522441057078088248570393767471820958828575120347354816008665053974153677337685167401174099318916907297832607400193163349556206019390785868726244109422466714834238440646305343500471839072076957869599319178664606368741664826748642594728789840801969467465077375373338065514913065351209464512872107954672448111980820987478358376032369825125302090669089936283884275437871193740656353842403902395363208070514113659859812347853471879075423196833999325598356969795244515037019092282584197378385740811548441163647657930758574075071587411123352472911795609489031488239160163166953107680787378797207584095764906635911571157025902489143996782355255511122152077784680647230732549902807814491287395127215003884210569207910542901452390298965075167426306225556444736612816511345374889562171996664024302039486435519573650858727574850306970909039399775827107055612607731887265325959741237851675488837155834567858599731248967862865279863089863378086789369692488702494642024514033853304500482280646353775671351620718346952022911250962265611042317545395411233064922845225019457838049444093999062316971431397156017031584961396198366525755152648622706003697536880387275464448637602115601589282479400454445494575231891741963773771796476990238702108613803398611173852716812479043445567967755858448215622859839088455038095276573482264679361006130063061158116826066061420303404599219836566348383917300592497897508621537882572406845265425952656169043953556536755797740236706264117480081826202698797009008279292458875375688174539146629295557908762810143319416964916279494451535858559296498214101322475396783678873135101348390699872322173852648552308002861011298787260383873126023138579708525046418453873038642679182521861142249991329038213509319924069315460734705473567348355093816570209978734687993103457028571773302886699054976525693928766611824830204750683108255975937675784580376146288373901427283612087681098429862800267917999972714482054885956659666365735184194041809252904645678145432924550137017378503348015059920367443837204190422425069158335499456052487783874401287539381999150143812008632844931810060009536583360369981995877348442332634475668328786335949202094018575892061137205502234021396052933695382401732325429813471254666569173586730305581083021462945473257288235879362817636129726928983556616109431051373150022013393189572433014937497391023160903558963840491809466783708681712034986702002551888738624952440170430282224543081058808149684073469122848175625300250739811542211808006057645055254872786238724488758405951396106968425433003306208024792397181920462152930404942557008285215296097239177492819987952822493994962737860223104899034039179878821380739148040071168076892772168487556678435690046199679597103193755822469805004915325170711345060767141793314376855038775942398304239837224918772612381307114261965779594709505676970646998094095268765363907811696664895129014331727055985172638632471427085192213856838170982340449862142212042216421696756633316572911164852571706490363102672943518728916934446012017926675964591129249324452520704096239616374651430202398784913425189288191881015938746206942074135760755250171828919345678306284502688969352501531749044511386993484248176318988233499985774698313921565608485807214040581994344672019703887137174008378859865752688443190303724409868662724904969433258942075521387950265420813836014893884876965527045285613987635924941839307484431640662809139865923557621592658227849888027076408353739586314804539062231506682166525608678228698414806250188916615320108907246933432769406273766790630127266567713657419640138546991509817646915557688068680116901922305152027369044413166047098327623629445074209328821996060591492656011997227347596449742368268640940667386983284547205567945241425473712045359560660668537589422001505768231942506767510761819821269384232022541834009440231902866047572106882150992597750379335374332318206405027554001735380021908010487969640518580764668522556451596169161655785121118949533688881331750920575962729039861500435525429188451719000763981600525172214661999975628905765399842705244057073432566439763871290902899846243356434295949767494598049913559888289906882292442216802007224958142493849539067116160792983722824421138351839596605652132803782645004959088842591333734752750109097640683628367873073565898031726797235593721559112765068019908252220674459578482429834963438950377929152649671634342597252558301905877852362106897988652714893364302126249077570468922589687328352871315432444034445742012297068095115038786319046600909478451773473369268454596174700533211162759274932593234288919447356515035023739644405312113798281563209486981431911239213637773796666386797813988172559465605729992768910760958278730157187200481238264376785766962619059457264566145183317790010822901371098401489882862244584106764002097823263692863926599905041120814183529996938203349074412364288505385275497366739740005829589162742979181800226702058960091644829409407233591469375455210260194654991995818002419912638014660575932187908245254086227955386341397230180113042338733713039145275925442048193444176547753034814065759695694838686422663102418452778463380149805888675530421890555426083676332384764789195903158071080029880103754166971430916637263651373889067256749104182415267634341675568079449184751061750425340320751570799921035880689940454876193976757618396637449890066506694941901387145336491361451287707625654926818010456649712373552098096846439371350532230977946918030256761462937277657792729068502764852381394645395206449283115071628195760720098232677744396896271929333048848463784248408295673007900834112784042026488063855687485225595126669078703664902188206174678263890631850009632597288726859934931776038973634765089346797183422876857770526690330053505595030404918433956513498750968233683812823557525517256842312065360811288750627618673175371758330975473511596659787887532106231741431273316317898009444616945016938387522608336385554665227992381933252241575336668548171409231016540132189697487788559767017149126936077808166184304247048313138593108568800194320493224025843076724704251109015042631976603367409094271426639467946629514174119505965010666051622284374813170096235490150037978456240593144533201270826936881173112662198895759778583648898003661668854183705926984724305564553586763442785248446440900565368106376514871636719771620477447905976925643098319061429867493483548965845938899097552015974119468303528226838624526553352946604866181727600478364150223933206183725365911034528286357590569466657206939564133904887800257139847086375080056918325343512812594439983162005471431666762150992244923822989036853742906886713913584356062789495402531218547241235924878655109251515160874200903675242255284880626848706072120334933763467144419935984057907665629972716711491717594044754094425882970930709313424669323545975420867076350660538629051726834166522270134165230794558325996923878247102072658966197483816623400814367696954640950080751924651011780708575797140968411725001625904365370916107625673484931628693635306816760670847469193869028630108061415385767736179958430626408068315020720695511779540806003228937264856507824259683822719502366179008179067596559598573356549179899145984693369844592045136860994208943623057846629725280115502923482830725416034671949503272915365245618213785062000765151389362258074458095928077565250892913224589954056938614419240607389604821090784723306881093515010213921602671290192629854831136335534563547135642377650239809680600009144189003490115114613551868378930952787854586362045466114183291297389954620833620299022196737984042432237870492605545228412742159637089001818011473664266031893083926035879791895047663257180537296068225858459515483492038310465637160524446548925382703193317301849463880113168168291949572694943660611808665613836653802141765960875202546064807890589114905280034852405093043406461970241149084459151755566294540898138572724302472770181136826320579293493315720124195663864205353958550266926175878923137165711218644016762694115292025361774368439429939141917683016687526407025285124838524296473432473981536370671523304785942388811259236132786244942102189071041895019254433437938448773598353965802693268804661540153907415730142674827264866020147642742398639994663798503289281104748177158526852105899165131716478178990143956112409781431946003533849566895456039825251679992081828594614148360018373424339883960527424846492152286823780886696749392761096627652144556935678054829447413694963075013270743219732967542910361489762616352509721147528903056204777559056572129458130230751947889266257172223155410124388008569098008961924927581822101037323112736934222083267494669356425544145452643384779283678814047789029599171820108542994652679446091036838473584695393908388660738004209046301159508221999712176970335467703997944939172892724166288623926115889575926957715004536262359276138501993732210870584697306283346376359077034917220017129849235677718245137543472324142393468018518691505483020221435671563965886811453217842776581346247040842243266988295988975402112848178624533910736126652063556107003629159855189705496963657430385463945275358532086558660059199032150892441387370634374762168233094444364409660408747423785044066318648691897096914467380095389599030388596561237209107202653787618633109762426483470287897253822639775965355705648664318462520030202592979364765200088593601379738521080852872231437045235759494311452419356881182490467136317089121394515543586350791694838572556592979431492262746195041794883864492425897039923148265313015858337635919491671563222839146649157234139780857940170969899268678825033741398709290361386416133251218503950461321035850412518420700461901626315410365088341186286949903748148743408145879850419968293266075412532618469824712324560892120933957259462963238876640576467710804621103762965208072761719018209961711389851280446762602141623748598594319434667424114372459929130954297331890599129274976553711537767713039180212866451676675166708298179098933687719442950498622106190344495069935372063178127266088812732357853371025817322086378275491273770467690850877944463966362417527693774827392119806909841730265262605859429950506293737374307823801474711571436881373090852931850611098292478637847038389317550431717259636395570676308847743270708588415145860224400303778339962753664245592748988176466575819766510607609595466337253285910078532389453907442528036534975134981332644817483128261536083706918025149388345120300789705621142335833496493729272076769133300974942287154358999503991849824907000111363242938624464868199937861823276963178211178868636636015597916169793672218238295711977409530868479157860932466831578158039327494991977160047008578161551851311235619086585515454327651435597582894947286870883818112741533939714140986672279515465441835883989970393791513297689279184809601101291176279816903915153535405653953243220824513909336021732212472898239684055943467301571604749070157033553001010063396578399482852595008773597848017625698006806824532849728831058802366894688863399572251046549563656669939496027130071243552771485027782327636562237440708392522788949811716317272308212467212430863327011360029990403985215224852474056213534579044733744814692914588958940344100879860500787275448325054345219089017068577254095954124578712360111644389531199492787099015266289503960700912622486570750612698372395366679872753321605644954913545699497636733254993979115755173748533104964323627806330697747131133978764952074150946893834349074619298894123098896516983327691897488056054181592173712063802736966998205391703541245507500637580980849357096859795685631520303431388320645898944610577491350309288579206666406270994457437151894677978267323368787796415434379174832022083590312762349452579214016182983897265821120308466975270276919876326803903781731210695332270552725699336551704971380320689821015029049334602384116315584303481964083879291373483383713038317836835944466307884309409461772365942160635748498155646234955469970099840375153496255275733321414794831184442615955311146416304123214767779151478348490689930202745141892450587300824251238002372809019623874155826858404691171708485067558465173701625450052686827887575888391581225290033922621837391521882661437661485718428840030619883053679992549374412400407946189056024599458763581400526883431930791255076225794276462380787663808659176076122052668151072613356671134921985300132613134993656400492440356638309601635905223406095298431216534913806337726949964957238411252131721334205993424841121417874369610872207238875599607342494298774171064802407504488885740476201798459486330409667470272339696484626722284652166986066876214125162936575433348200551517039720399159927884903748561782637703868500174569138682782944170244264580935643418431480130220418109144158352869352132080605937997916455894389662286043773801506545278393700983046473542924657964889658396759352405982445124967407959588892659532303236661811452829143878691164257491625603493076157195484125373809679996853174878831955757494747197769034880529492068636623783002455808578991887942874557261584576006237586431822628252244812126496008481573742217696975839305821115950910316683438068350760844917888396187709424670042492630652466844851665931465902796198707453240081426178373148998437954399573901761762147808994240014857709904981522238120290135953910155347304392035452129297289426719388096880575131839417932313885778751414379050464393974041298435121421295874731590078097343608433091901098456960803330992888559228906217877889214345530404984444909714999274386538676777670120185812707056738505089920666537136641558675850848354398240413902074883637198667548858311186738380500128179209441739091594611440488535518613669108659663613601832306289800481153055287288875121592175913903102836617728246189907830255439100439376654235276483981168986314009356433000110172847027532833565943927659878675025303659012269147854964019989318161361375829730924250417672724575204059743761806199887868305789493110217344489282920638404584063782389254878520290228748784689119573900590911774414990475834014465923803261904573011398403886597499526443829345232721287438232677101176870202384052506744263062206990278725460838620287598654300938794142286759809664094752645848919543364692563276873909895639397539557611499261598825401995442986249004885428528667423337646993471356777218263891828541653975872919076972987010492914883183581072954031064454686753088608655749715459941280587438855142456159128504224451263349498446491719698781526369377008351400701156564098506305982927325596063879199042241977735667016260924241231555306021443737550561955008285699495644569517084575324494285960326846567382599162510554571895783599793308140026556164404290482816270618709214304853621588205879187290041742487015973728525713336899752200797150249248894446166204030445928412917364477098370990594346892515471372276628008834444716146472179770029283972992969451804366518736462483998772960286641382475057232172917314093725495114312706430950276509586726103992581100817288503992372377321148371413871869864921638930624697136786521913964606816494188539340739718242938737990534469949043910851560760286792642843263688320391843632022879509880588031066443574157099124916406654642710189627157639598199871054763288072966692836174773507829856036061501460291590676372949640205814264277401597314750706536785369802700567709154456401362150338151094297153236256336251747225156190009217702164070995960429359018991192296408147589927117612720251990794463573487147537326765120820109072805081040500605327233240932301596751889024890996968878456819194444069233676443252904000656693128626049733275878779466761590594646262482353546690481883809494823530595909842921515895983522779489906234002068632919603592561110404037182175914825567328170998309904171436657422007667133846232665231991648305565960107116358758016232503867914391524091103141909905911959279583651009998276905333370958045415524860765208046937829240372218385345749427569466914507799675079999497940862728744731563101921908574792809490911465021551489356639622170698950337135434331520664946807287784558695099644005709077260553196218809989732725578824361098754642092614860168939017726958289917087274694502196183180893113909832424982711154258393760196119738436276898207087341067434421035620519693096757626124776708284830832034036019160513318022707337715723371100654690879736861005931253919902177785405174184941677017455896201652882965648962796174090962905287335030403764524151859646607379309200582469716627950387427027007142376653054184286358739346981529750497700148664759018132605808923357951538938713370487072727134645630578925495522321372382789737505472219117682599576668717307261324864203536750166944618374745027212410769959765644608442088999033916505164183070802895998258439387296286016095352078192179779480789634988959860502427404478525651921180828244054354610000111687752987953283531037031855725764480660708266468450971385544512534333194836063057578185301620733719007933459666296798573144983385426575662362822500900414881461515505600314844891859114818805767205583666941582251053063287905339718257728985268448117286345173627146418082837263576094504962589537550756503978721887572768989483172629808257567748172902377575542013938863985075070770586711659751410368401668027267387436831252647437311578503242321667311698228140212607094006297693207459153528080404037234779848650455964497865056851649567646493850593250292127636831959251790356388949504809167725305531928046782007785334964557466386647876619332469874967598054203690329526676690934478186458864488318755991524520140781682927366277994092803547297648798430700392773267843604827146353522606135900929601809456235734889809685347434415968479802524482166536741555691157060758767298818140954036950851829506451987373325213505501825002868065403346313084481347641898590149895991844565030002434827731821305034303979118261755510877386294476030522081309735176375176718073658129887406706386782980752627719643756359957496299108960612094686232208415334957596256896918472116085372115237976605001965537284267387400731376057943603156646145318630829833396774035210204300635737233480684104343340409381473319185313425473960566793745105284458057302694752553804031710155172072298749513123467975079421174091226306878943478290954459576526684389365854155181396713719739664569672375928047785455769820698405477692819846387246052040813449565722350879791351748312893145258436411732702016149785915026015055491955433159326246783165062343232948506171268945311808537333513289699642285977930480194616883935063101723015894496077019347075161292214699366927001498417345132326406748439148314449457959446276061310327213310260947425547545920374128301570803409326362278929039230544600298716486031702130956885675217968014951819958904113378028659682688613721413278142305304816475959058779169404894672800823022926240351492573130255205800420234568779959863541270559120286211014129909179339272049874787552893278141120514709878098376403540245977464419847065646789552366137118608694046676350368343683767660568531501990851755497574975760119732096589162911438847584059415809968608733368320469991162007959156980752580970860886324194717294834546297163384428634202011853281476398804268524003026213283054425538917685042959251428888551184247805595465566465248518945156819577905065904105609907142446833494846945457040015442321933026307836983780856597112165403423666630562109318989119005302365893294409996460612200069977354699626936705078950622312973343902780206681598692463332465776882088199112946215994444355255046876171216929216666208058552025357266403562958054928912857815929073045859787717535726493912244968484607597077687183824016693369362599357165815272010414072858417187037151345960080947465995435105873507651102578768630044783080589511735235374762968703666317705554635242408094939936628426586604272254314031763231749026038924011683610470856383674999552543698906878111506680745958902787648986988069960482257895333312398370551707556029148311057325462403521642792882744323588139444048671400778642711930071892810942240074255102564929696000322548701719644569746177656748135619058483193956156287797954128240657173269045612767977149263371964098384073675937101415870823221174315005045817338346948311243954518682721245256929637535321204644956726219138547964694925565915281853542216651587930933401752986813135235349083184821784140360011801839171595898649489090972768270457393969189553673101157250207133374419180793743675637251149385703252234984714755208109563661915189448498376230087163624780856255956077623778857035487330419365876900820164207301480492585769268344092284214213581334435239079778938647898815926356895279144880757283611521650861171720262359162529861821312394102731436462531112739001252399330752243105476126943641666635781397337736439082262009656495615595605443932418503176949801678663823081384647620891743932058505761621412905968077592579910730205180466558807211807408882125229659630785723269842260819257456576587047537988647319850482643353329639615282544215668063061114539722443784570809768254167736150592604464895096469321182256985981510393002082571170126613281722032571974244472028450447974931482799070288482561727179548715387975147407888749742515580363054257070901940947722729108333906443548208735092652290388218010632609357677965051478638910442181962974807070973796088935480014198952549603164495337234452329633888752360215787210893047576807550869150455036124578395369191979417865189066874395682229951767838957215950285605530510411246261715434352819295421365397807486895056298716965315102954084129202296040209311426273257836520089253253261348430565841491596948748283788291558639953749097542825778993058375838332598014777941241388091849542283134734143331438273053127483298731784508731122463907318409167137902318836302592355796929526646424839192320748712340774195051112264072610964438925393607153551731471794917647163942141783691595529922885078398637802969878136074924498945455756245712623549789998802325923896185263182530103559342383014180731280506795528319030253863298017417005939571492726034668627694568701911918828054051403337734495080280378960186080103485754712574137256874489394179757606486076010308133269988269930667995993998410951868388611522422130850394471092865982050344404122455148957605565004350052731091110868123943936752777370105130390315895176319713277904158723558912215885883294759835337498735606836337938621835336285985329773615563651656490933984904670232482546173391476394080652239188673924639047608748533294896005953957347576883036076723952713483783767653944652559699072004243873833273043197930308885044427822217371660364695335406464900973299323686471687089488390203884428432776549097758113282183542022423680909271522555973474140334229385258655723354320875023887197416322930343177490172821008232978852023090779236820319377962638623373093808989523696718967953967340848097627321034844736987983320786737246685141735642372058565582707063465506764837267091071050234819322798534510743483679263460937522541740469120171770492283948930739483712282148469691817806421983329635073113320617230409353594727094981473149321203416576793697939336813535243436582924936027328840559650901404317007271986325432340093362880416148200773286641608562230862039906633708315833969769285574883862842240287068637149327841240334890565494929271411892618017219154403310837087777365876797690644676824606231054807579816830320540414397477207380541278429457638184087369309364355278003782760685730610724773748949737720588266209089774639914388103166794962161329905628275528083844506144007922339140268388282964841686476788742857675139991321318371056089836907544012260767336395297913985385010976395547935975702645389220986770206654876362498472013510518836692826469187274094890446278047848575618892604871330694554723448946347964400855711724266360978671694569012173262741668546514863554244093963147250570491046287526348202082966393577514425061183630568882603215491942608219242887910468855430672550949768893672384267534191066763829171525715595433429073413322360636834183803775722028083412314505144931551156527771496466516702431661857256697936374274655294377587260106183388828515073534043031627961448758951758697219719224339737973245869484326827324053942728562339836558773862668022441955782338697269558727168454709772440920937199780469777343805063286300755908090514633661223300212632283060124522600392079071198907510273248337652764199238692654755712082368184773941148800087750808351010245635938458034431245649071074273843195424596921831202989436793638245724120641530748088352019808134423817466846347753047150118282249980872546233841971111064350069440612377103772352915999521076353144046696610359120956053879640977693152899958203729204244418320807866243761062458960386974964666528072796761985417709908255892670474297034357176927696609703443283655811158540348016460149004589365914881955910075793613284484735076534921511380137546828324429467786207260199720536167160558520922365405616547781658559680795049379964016133337655764547758653047759790837834244529235697472700106603420298968736058712581244619467537878204982072183208547516742257028641367620827316562423964886508251056578021180982758442854086892431587840816955672194373985700864129358123027843969490222559541702931504904640316656488799558347544219557759442612629805910344943587800214772700807538822811119539792294382498356321098092813526203873979760560832035126595591488216259188023893214080187498699486775447590298280674303541352413190875911382918265876197256681087731119001954519702128135138220720072512161149440909659365296899156354410895419328145079001343449176521632646852429992932023722291815299538602104910565674543546029270261334756384611807479133097130308054017846876705668175180535818708675647482563573656807757363009251255371880356377487808181158176753001579951508230099143406065652793140786705635324413623503176372830642207294626295495653927828436997318262505406249344520293582781066169768312832870218959870465729795211874034972607721917617946075004568183807621503852566207588375063101653047803823057733831108643056175067948688768272315004376890194506082363545571696023494022767105139813743486245238062720273899098652069920087689726209856235014238070124956404598445063771261489257938283377527915171700414181982202935867869007214156059213675389196285898837317154378859396042422220706047159998836492169537650438535935488911279192914224023402031332157092432284233983917727102792806660840074755142718298946185236472355462037598506061630742936749979596567060798769249955416142699244782924405506073435659420575277899968100357718284049042246706998517579163303759895167039293206723352149165697260254517509658921476075599815454843453991393323274539382117656464532352434153378929437321012343364179717546092483573150270697661263940341622220229591835279114055579398656525773593257944719351132717745290583491740522642240033604159988649085709516910654670800639758306413388147378216107678521850366568776485013736781178668390831655163809176692303094609172106396499114294627059303276089232758934013340718554968024356214398979491836631628404988045382858422395540698180751702395407699442527053713395135060104143697151157649929586782693024407289662139826890955127793954505853191235544809769934595178165406254349257298886984791340849442140732405444895132701900545802329900019378990526634170470878607256499817136294780968687449966199955267588014806909345284248762168263886325470908214949934022679558100862881078832114710449605371654205299493517574197032540306381364393376440411201344309940837173909993597406574889389205607877765332656480800890771270010242940700193420002730594572271864604471770346574609654572717724036665844885919111574565150286699270508956448632838421715026154715835627066340051270401287868666787077854806157893382824797661299398448058900597672410849025662352613168522574529629820573375167301411679832000492977780933648840734825898145933386798258582301820184254422564954618846539195938869783446138198378185796337520264354585271515183342405501229716627967036840374583519993604442635715212958427007973510727750675541129080349117982045379035928222751322671280557533458889357326393359100403997034354869430985035362848728228546549155153777224476457498737519981498456969598469451095868699529708987389165697037140218122746689025764023328807349273833146449783134004567925304936121087527471806785946360678091044371944549639686846408703312321891176228147571746644972354705996742361267353493876246429957057981139829531551667706505171183493549054321631252790866733756881046736358281670185037609544252723128503909443062842662294683251868009728195121795278567102597265674122375693155838262317901887839905344673933378442609322536485654917880011670392574669316675905472413184517615772899154831266840048628878749559443473261026891102596063644411172995132343584006114866222968205546996906831135903299519421031912194029031700635568775631531397435599274813157592996548180438515931283830121389561825734521078214811218391376713678889757688303956925887473515979281393183037482249983256943908427992704035521496422727702957371810978362948090689566374291174682108246937344187485006592744892977091150021722069196730461165858361258688622851511943453451656792711275027968087373027283218737347760152668185693301456101249718096020730702124008785639675755317901700441222945233539535280472129976189435471545402659812433896942415968360706991188433773818876373489481972562027191184135706339430495066263937396194135833483280900470790232172445276956969612488263113902702241732847541090729231973264795182503086842360350881083558121003108198558553228268933171822883245114769482418347766495925352618855102057548934745503656194078022783803221021436584469006930484485350392627138778336686025641297566232042194476868737734709547836760655906090628642110480122467631606660312462710567038331286822149335387767678930080489888407353576595284593795644847664481301919086040555782479481038324283930411865515876710320277636796894274839763294082802969160299782963827085832130328534672502387594662820268254649286059350465838874341317268841518536446832220997997763856632740194378705166775845425966734857740720633384213103365509272000858037286371152495963222195259541569639909162571912316959310968672929767662235915585185394512034282648902383628770868980459245434907423531818844296753219736834962154018653008545424126353412186481713914299541114461861798436864445770463372371483768510296717543373096209023012261995607585382107762232389449218135412185775177319244459336107412171617760695677365502378693872407779366385365535969820024809592902832100705021484948818034624117442911755106744478157236685666244324772002931099161154211783115107643661792269126687094875907609471716418612881794792892638077337085736748079780797457729492306923757019690397570326217075643966740576728135142937859621004998886533088019770303950452357568658686715496095264868693025323968956721542044573922753814147111998144679612977211642708677518241809039468303192666979422296767533261214574973936054417329439307376703566280361106555576577094555487881264009949303350221050902319754296198897089163319664548783284869705000278699670923768149813485625752479443722371945082068962836843676239778473633363367043790284391485718535636723821678260785299379876227217686062322755297941784800255872123558679504209811023153609763998113106172966885250899505523556843722207242618165221216925158334463416227890487948478517765834754290819950265302736463876159386680442445295656733479414339605656256483306094935789751327103737729224884425024868356961891055124772609889154416822512196746782966801090215811322062465480268320707644015575923651544547979680325330366177972497716730335775040692429797693132196973078766220862412635652992174005197790581969761552123040906267988420991148321402428565511034774936492141216631954907982302545306183676399914003708817314461432819091325250959431077769415448995459764910616956655391048299241509140179846943239183290752592722707661085924012126444696085680000120092926892327255881305699503620983274446057124796338706605480000082069151627362024714530385787368690232398505759107216316708130103655070261394542817935189119322683805239522604530455117530956150744479823835250622928407049801397201322459943587329879494840568794652220995580205284771102240675528758237722096097425123870803297293141736065456012430240357605479633629765053075200753660292058782222287823363108164040770107785987396924187507518614501903606925713188639209491608406960007305962830493711853266620743956166643089241445597449681005205306495986847309861105874287397015127814450585405145570528577649293638874856719128480186461467201941494394876022104804483147760444753639119710856049868726968684781870650662390359381059096857548934633295225746396396430056337385452693921076404861022599062160403547206112492994953206060624371721584799146775434689336188475491751707881679393706607455205027623689477247768341378163895162364794461103088321546017116286524885271862341410380150341688831632322573513738755616643922338593325183491623040329097012152093729462360463488551572890420325401810243326974488334654642743462888471039272890306469276733206480292579397909431930632072441403901208160640010818815609134793145386459901994361847466716753862882011811599599925078901403778043817537453423702205512328293957706005099642776706878727735075858414273720627838017333160095641769927918475873787474684781929860945191610086835064485473689045332008634652081289787311317758734783617774795508915467374208587755728939063698840072900135454194314694558334981652149115950683679604453089154350143248182504906841467439544285191009311818074599041571732226198594428586657261154554638411147761307181180796917112188746968500542665566734359121219878170438870486703186339810778102842897895733992982174377321675670771543499087151167504284565816879337324535302428175940597308579887025479644255259242619816837044537718403405442473219753133332999447544254686495917291466377411199615939689740178797861139820103832390942057151053550263882682377671596392898957969432037761008603882981477401678581716884002901127326859886579191279289637165168083712720738744586878004253530093328991868183044736619444571899421561656065152424128737186587607117244546765318933575117349801626221189710122833792627104271732386672197690769575524434437815516094242200752534680680485659228166658872453556921116768589467113930338667101962692884611571522847142669459052529302338117182237241150459256582027460623157250879410917045632328957858116754230866602010664276771406732719149833189542613957568378168919873590162597982039908351770227636553792954535136779027592885603792214763602985676230029029457599717791843437171367612397048854832449043677820028088694506102463570812104364100171131582147443053841332134155476220754866702126314328434029461691349243919449285031662651809218588090715889712621088086438377814491528669458619159873199179284677801971293068360123225891874696886265909152035258653996699174953565724524939084778398858028822342693441210446775253675382181095051397552363677619930013132522028568599925291604439532698581929321243154745049583632796532167825732914808220510123485859874166021399719935367187742535863298052545717485208342140459888184503785196424010793703093951787837649620699756350945260752453590395613210925187368890887557648058132952548032457882322843709353050810979341185914937681270823240503092721655100317933847355947081017842359551702778842449206634756132113183542407437684363502955162914143886644715359609146805047918901773198086535652556272313648457185194282089102218086394711214691905241706803010512463408026302267003677329299663628532385148150359489797100888535105467000180172881248174067683013714043831424202894760171103351860278685784651558656658662151064238039335721599329632205551445378991908554986578905562158938888217220308187879065482914799218383234576906585995611021879391290417536713363419456254671456530729158452698163404235725340727930941835313363658163936675691846823840986639325386973328619528937583495961746549426223632047533416831843104146651440024478917137568383578142330963590386432628353460587507108090011662196368903037361729125567641823452616450858091154185599000171654749672544645869169442146099240720744598435101220755717521659598886112876964159334999152470250383821647400701097179499995149305187256537590342819231521866438489236085523807229205900683086645034548188346362710702913711002317809886996201798794012479036178634612397154049574361885353489603031649385815688788932833931890226715896796811368037283886513903300020100406893937679731482220594930077347389375224978692455797760882407662559638680216218823447984361394504558397046111198358427532491326268298631485471557542291003960393389327540394677437062223598743243161610544049471692401952507856702513010833703203459605830248783723612787130020199488520088096788264204400836671469038790493930933627306741378128418571557056975630172355260206567851334290682289666704070403654448988390357209911337206561639214619888056990509396009932253135709354592570266333272553891273620573236408254689684545858204870768029976662922492988033791277299932998479414421480222467178523769791986064123658318197765167771935661375302822664846744649313350254638903605339958915636588701096131354682828242879653834936402523412145107152031621299787791465335381200105580375386317573390961526693341866214097478818397308544963821079475086203035245686149294142645136698835185196872765581537118419405044447112774737949177350867816977921940447122411528077537310056862991806978677067065222914703623004135455565048923418143105406018858430592649990688187832253337398582981391079734989577309944635461441795536611047000036844737628839536741251359170053429610943947956181926493552450029232743722219901688024416898541022239447680786016779153573636730940456492556668879091145422165756273346735302467087966884630749374039849823174623261549386219302153729895856638001006202547357753606627013589636874822557450779317956245649980551993733739434320292612655625606746953700431371952570960330031634519600292411660984873708497453133824443229046684517243309543382382813085456231747806140669185480136449529825870468801856275210123424228375914483700669414992187961088229663640374244309686987248094023651733160199496742180744154486387238979490206988332941748824847864855645655665533299113066551511869748433104823626672911464888884526975280040801722557172833111554047366602969051777430650542182983436095211885707091641754338579082843326534480833541099884171366772609829280757720421972897992865360032766899908162658035510833443608704268756250335812128626759196665338147922790352887911153456414151554890705663116613662426692642535273101725032390309706028688819613078048001638782980573234439403956822423326440013387531429270363484635170045643499757691217909319878678294114517642169603829862871922026556250054713136537720591677464825321912542846438572112595371434067276256640836894920204796901885538430251660918194322012440278899737081131656795135607562235435364138848075878294904542504271888981163092770364772969114590104231846822264267322495044641251685997751807208700532740584414430615510193848076109559274591538686818146551410833800151383919715410246872140045428037737969618208693291849741596484405415241315519394155088819787918130001812501495234507155298944429805100334327350273497164327313857559904809093291285147770201818323178618684816830721309952004533603581376058311261583041542050128997065727074337536206952045636767151521104830252651179552198621031120273516263645171009503967095725178469186556866775234334373645446053335238975043885645151209697438941792449669558593541852117346184245758003815927680835022491511342544930858539689991052033354886730834734124524759573053792613414733424866474344134886772381972149321316523509831291748626496423508262596227077980243589420362333550318071324784197953768487749587053683683032297419279648788133314728752897097807654601887102325368777741974218852544714858824138248897167844775015501778487863891690490323734342950911350758731946182118725085150647682621956107176588684227901531373587706788410013895330126499245285218235983962078898346078862590905746687759586433218074682110264859190831107231797027685953455896036847610858758254659929210279715610131328078405520580523722757672257529684311745017346002164161719397974169336251925756146216988301999410313712585575080529213505643467527206530498548222682901752708876864414580830668109048687588758264430821013236448395291133440193521743683534370835503471186310311001570440310475094041258887133552953142683236789260745086659563752985473787854568857763843622804246381265163633023766584869291950088450957258236660535785138828217735333328634820392299337022643185485127804342254323812017983116618192840200799226779160642191347471238626460322780981778008257032432971777974976799939775937191010365936067927943443134463008252867239043777251715358614974659406355409773076147180401994447315099027920536604045327192919559221786568970215317035445352616445464154344220129287753261174359943382401167415779133685761434539935876608481186652453313814320888558932289818960117667166458241138082714998212713723643259136091489063206170092801014091393838352556287888313568864387909605808044346326433434447482941386256172029153722856564549745471505497383987469489293531985314037697675908220679202331608633706934328364411785484981898271299166503063496528497596891680005544652901317457834850119221907566205979421215810376418827752559612538756360544908197116372027088511283895373803443446962563817741499920575537221049207891931152789257594385721511109955700237083914905714629288438532590491298379732223666372801875790297851517456869055994356887333465242284345012572327231332588591034251752013215720501420519760904859723293136850605508622119778953663725889901382126070161382203358120929717184627518497892803541787401700046215603933613869558676188530793076168979314654282334037297813926633457632664285097591379019664255893192486732399109390203282889350872374857085672162113651226430993655560048333090166557484075384930701175367042406255850209104168757161362915919136889227182889923933764583879903747376087788805058089785344828575497377773884577977152520529297052079397851249348375888758814325873549281783335837152411026820409505226701200629098746852096908529048653552409974764935067482452574355887106986450314614819177539984520951334949285027499415728448328355089744793819927108215843082615402100889027574034741973010342541696577154378574880565445120429671332767074556060158338125411841096476443074764044438099200136988035636714162589125857847386301770467494820206577686815907579897630346235216456727011370399138661101960103344141733377237768049780246604432216070858622483495050560576819576791997105330957252433333033091623050505398507876408820948599538116822191964751707649558018474019302592441196448382387200455696611496832642225415898772771864625717848358132152580324930537801436356689846665908725107745242125130709681157652643650672007070837505138540242298231433278128365651970834064456571929261310016346136738118461692568968974976048571021432319001473846597465917010751980180369596244198715181729439896301985828667915751194866125617502401203307212541722604458088344040058485438184596016532920313253724360081072612400155923123624540178578402928200398819603993580655788536392689186878959036256269374826168575752607054919770641789259318154311437972094860682417632084121492123737045342356830798353147627031681058515113682843311874781878760606976286899953828975104041479423732479984296673785822041480045459512342729377932112888316394548185501831125939822837461138338845606661242884558828949780414323526143621777613826252958719510953598536726275173144927279777074351818717207752960222777718612935763198563891236795826105398387045891656656164885626710293760053213356169268854077649401742778454876933361156255371302343481572214693161170826191147454357108343614291443483887429469973080396905870040613813548214724137301987655002600786986564951913082111413898865330857071392343748770841751635254345751907935269579137052804467090396546519579587074775320484358753982409095542722256878636098247836176220419206592239722743565493563170715018074838260359250007150693767286235504104273067799801791648895024357448721415894692418147697535618373504862085030867151461545127886888465864290587467090524351756326453961734229030299821287841278395526435483066999839294461734143032902204059945336373444508238022359383048575027358318950902295586806703271346804042051427324249418806341415701282857086090993317115456205940870964572686325907053658400732326859739265598737273538855438722138199702817078523948500844632049959389861648100925424401940617579774992186001793615317477053425323689724975899670505174839530830094359516385633234493033223899498638614550801708981410301062662262661160596225326808591800757614091904735294294845429131289987779952141567228014137422695161170056325217781284198050050602930979719784039547744158674678909589113696549431575635191645062025682905600160585376677003703146019785224144131816919567017555074444130040693288385849337886156430574147431899865567077549966321585223766259543928615415661327051471556852628441130727082549021793310002298885101046713076077687008999392803702147464603966896229064265939722085743243729411651580669132181151896984958684552568731572942136252971019091268095996780463626359745379712944992396641872148888504865554279855790380599783915721872514773898471403259073721778171681636162399171769292894645752279658676270414569010067562444375884852918014777164406423743676860165263140862364072541396971409989615027465957928594693521491385605627203666059292237383114963045569409238347492735221450253308415514170404425849729463630026342088576696312129702244952277342975129980164633859113091998786643485078311492264843458327491285262654777205894155465759919789735381346906063079610761796888213009187310065015292525234561626800247236326819486250561590008661285219834102124277332758029962991384742291395127750014036665663405516113518068156705642954737449906457842334567234199526280517670737909284004584004982709344234308881641885705100571748009282250329228242527670001174314755068684507943634702175107075956337626040151409636091040630319307472766380644197723342218473564758697994320221472866574029541470622979356829369394268596998630675336777946962215210468065559148515173746046569361292372294729360175986813763083202983090345427381224315981556322335373944138705723018707729302966514286131456766923036454963808071957470791221553647098168681390175082162620850313876168376856735576440994792987766380961505786021245869928393412913014372971081165699196970368645698955155511166528518584434028900207069977876010897550517614083454327046034841253200400523370857766059620877120000184846976197485371974332269932937051282253362881605175638961652436841566915243407599999105360505228146063092315536826696094124386340309539502199698323974752462225394616622200109223561142632480860207351502015633652580371821030103487431025354156241488316349836482936581192112116404223043344554993924308127746125791551894185359800347600702842246450111739368306421979900518075596148509134431298410956043969750813255706946602183905150680662711784513473728433216547672121486791252814817712972081339284710668481567224604047216338063555262852049213320812043416068027449144915993969191076238991618591859794865177164788386648986440320815386651957971978036327304426604126101215992006778091950115683667491495781360564566302920005718024643501840870864953355595470758725534855768249404472748925961649845957382374039153583920598227799029946025491151947778035900085053545948157287799811503931745482051321940219893245343367051988538229442915898219954705884548407026812450024208725452243994573978629248308544447142547309329666489155825577707107333767511521489373855295807204101089501863064687359035918996327254570287473126741619043240511335560346000740327047886874996616716508964409441337674748498082057142042487505246345281809363084100733947300046321254427363540782760651046693950980138296182838484122555576494117559634042396499084216849831996204387584448327160867579131694227802974735719965168109532885071423973388059617725951684677661957882476212650545416286361534908001761195931004826259772846509915389388035580541892426791826402956184568652306202824531657187717660739887450878867147090719836910644670276262686618833358464127693860696865004429712890599969289265687809031189407675925006805226238333533048570861021274305591864657729300281086379432085788492308072945289457506738234485261876731494058361614159677388341646090853897921160764651989149199498844220400214461827470298739894455005959626579719831070423910675276668244222469001932345833847440667072768547133881482213545834149253506642071463521208990058704517379782644647812194183730524616868772783817486480259533714085134171193060959702276020364073790622303843995155114037912827550225996649662261602007169682896308957567527146683900515599265539464125551541968682009606680578884957949618585452850288748559494288573427363870273679957027582205360906689371477423742515190190879564991054295593072880334022953234148706318395531457024005175481571606968157552836883152776748879557786354720115893433042493315719010598251479070024719268033716486846626872881442140571801631189065498532805670495524604539721604378468796978338028711871093867401063125506325152397524105553414610717470480457831396962299963947334488292229661254193009698531245878655531138855328957294989011596885238515976071763320876223757698389995696026279058013685404818729954367191924898115924489049149708432634721137854375236807108453665100687539914064791264916048627434510515982653347769318404744682545172803744555041384719820813578535037640980459758424945898760579142153806424281472434425938621930375439442827680528842365355632453501493675022838674941528966963315397687762559503381577941145747701479716030322336892094806544222417165659932048654368745231544209136281055358685230989712989775271977493914525575645631604630425128249561014684326748101719326180517656730623933205916378941299180157710009895182391337929032831185588199630908106933796420023326734233532911727480102245774987335591930863141397591556492771182706632793569858066886797432713203007961942214068206254222209239677177090576543287551020521681051717247163416331682096560192519906116414803363632356273122124637882744919526476335685058595664535549495447019590488245465266414327254837521976709732500960730615634226573832188088941158285282180775841268359898260253147563858282716097250463736411970985589075919996803502956711430056645051847355943633574999749536089734284108459952392955058278919675163311728210001302835654378659110486163820327397808144241614319509814014447428937701459416958056276745328249173953045447151430364358793988576041121431854370040885824551952529676179670376381012429965411839067923417481694315158358247244540306545500399738394595510452395104937245808042312185775277455864403805817151594578983250625343303675776203964737206869023592687409430865050057267043634547241077070264853478667569114029852895204239385908890240491398512092842803123206808118097165423555655657296630632176798141855887116475624046271634956877329174860428568991990298436000842872602967101257477162476682483821236662486269985618350616125456366419260461646175217074471059215193078974732841748338078965809453206546187782145617938336791669006468458209839765163655615470587286355308807919128993286386044227988339384053033511984239776791484246286100609686056130110122809355428655352994084728283962157918518466596493928226964273616708228449743199840248914753415432454980511329171422073741502061572180672555727270276673986448176804951321898101168307931854140082231998873789579233226398894150113929540315886401256488296558316877315346001492335269546514108230589933709039996263427523230302441604407011370449475545951885114433602051558144056130074535223004283107913528183780209312559102093432287066697088727146355485689575408530499935129285440418973768977067871107877777931273037331117635223418388651735713115508058885446876053072697467072691888937281689715204531505603106622745809984055539645868347631025988872491093675194650323706691916302447201905120468400919962243582437177178583820417246512116909361684554111892087674859964654447121705826406318864540611667456190534626328212430330749976874969976157848324642945759418551299984946003674432000718864074746162673715501665108771438585289457523240223519422102996738560247028939769807471589919917266714172822127164539085809255244128239209485603287683628640623493737070027654402163998363256119504887818316500509226539387143052677857548589882406574572351130152205795218451781473144377867564014921193877121177341380104561078391646098219623686761159735670112134109314838342972635228527129757214856376973016211797773664820438751900113270160993279026469840576455057619901758654669575063833372910053400159210298383639550512347143493748627727770213129756704943243779016974632148667079742032328341511240862174197493925619415215283047833642012580493421252585692932530398080329257653631577023656859803283844433775689541758044005983078046548230757081054624970747653276979467195483683905135428069015685015480830814678860319899528434131832025228026185328091897133133108463157020047219813837749024499632460570795119167264400630814872741908558123993403653804510697829551258128831240407583875280704591208181272377514191580837767470480003581668725776996582087299172786626407531519652250302894942433019572418180567327748437428693063547948610713504387646239868066274836118580910480637144462283622631890734337986818227870161786838344666798933597502881511780180311503877651079434684401403136731326983168484554906034009574513912200566539029968670188446112820480348519968630614962992548963456109021609732041842792145840562441597311240319793936825752135374650521011399655926438675918342406746284159130668826077572841558134388178123570897737668799263279847592376423819483909851173563425740429016378303424757196980245580519273009711336711011816258483565623398483404943933507454945615836753742362979558014368138674236822833346928275011044994800841943196517259130349441256512175263603415583150853091052047700737823819256326810198886251721397551234671616834672287321772185757699781598852287278648428199660767731456429932714135135890844525857367101612890309558820630149706043409947307079164763686800361781002236450232686747063021742928547835926761927429767573995863819209425078486977011522010760853328598516916812676696392954871104213283553214034508044551367494994678188829966112079329139936153435441764318333283050306096476410372744303717179177374629460380180331577001466105287222778707376029361676883641355560223098265738266171370746079155846056102709761917834027430417260197319340597939401014048901194679442095064110858777450723566775536916396729965080734771545700174639927377831969884959145009120475423243405335032305349844077880971065011295462454877661857293941811099634950411688179831541720377046100237815748632556952982440896344379727225994572428572127682380654757997498830321739645050081966769044811002394100033211532631595626535645906458440481000434284591485640632724563127253437229838769216758112519820474871940245215331650066638707060678976599821100846508448744878899218202113063626136993538608784636651284538264333266282310793943984839886717050151800525292346627113958219446327198634473732326412505895919627505856364096893954303136665132233942873015084767750458839876693067270275820203579623970293728371381762515303586976678462226534531013398952247231364527798751574859007565060684207044302684669598287320856436845470137838451961054725689160413470619266027324254400084398695056553097853061053543030530695569612692597151137422178467736506408348954611838423096447656624476292324230999171637464145125003516543834659070292090845774012876345923630853340759384874815652865459061734356965219289641063663336945735162444513324100861041417740448099867234553239931081032167946793487438109506985475149427860058276174197173770213875434798428679027355240172392651600116743306591268074695545158407429778892900625712910152748883505505732306805946408133466824486295366610500571695524784778968056828547328475405111050056530537739929907738898685057850318720400583135789694097953490352100633639662608911669239472148365532536477485308541264709849184143139776627169795229616762171307110570946928288396822223676459098031469020698221787148342831620820150954914864654819505181514784857615926566035996942026325902655496460705234601255668380378123050366756909288446253467800786527447994939629464421655391771942543599928783478990785700119558416297479979230053490902218415358759501966280373672204112358959126931455062777866901917630936395074462253489668501621125059623944009680894456190050870269710290471430191799690705890481807882605080942800380086779038235067775202318798158981174522191813985719170533730527719566747752279919392627026921508146643040151253348694538414890107976359103248869522375063335636312977195649168073587030051010849858255918144352100494531919002916688622249057474612204490641332912751899815876300989245350876862552530821148880272402179967967228424921727479768185671101191531839560342966444482078888037874601716789074888718616407053682723289579809989480372832786644401524841825332954326020961525502006093528887527346156237111699480005369585275723261450060152039680157130835150341637465468622662752782841980853433050626100214717217121430897528443779177026966361219400831237130615581973266000523697524903042918423561373319467266344547297247205621196599230770304054312427698979732392553840794804665215329098655513762927338145467419915148426942766231313460855114900694635254560631580660626451886376288646855132397714889780074806837719196810405006327369965547354579825549999842013235628700360406164106213853070149101357420220216204241746513236508894122489065961819606852184696520904244101789459828924703289314606548208026773818839074943555920194632769412350181502368218577817326426579046904654211776101761694606841452736019416072411256027613791996595069224365311200908989936190138166165694817286192964776703178724862644469878895020522596785265814378130130418329244085026766163164819637575076202897954413197058384950115438443919092500000999538463007850163226345554508435228619836163721897188798845648416422921349807240210618037315788694203029518733832128262575338285749449581435748033061718864118382460071292675183272108249341780217283192561574449588045740229240520245780172329766284800389734271178661346551405421189949918195020689226455610930565399813141418275814407498136242757442038724259664874187273641110240514886550295460421910122779681326060363704550439759361944999726689405841782924643994119204161203888985056862259336102274691231078834943368110778823006443253899272020427541687414682892331525697968120162788938387587396087600926442262869386959447418881069301759178837522242826742808180972847445772699027097811422407349130425756211625757419426621817960321435622296580900246984946510474950115373325423616723791038206650511151277012615521836633408001603741233521618975872317011209269304357926439558819087047880565183371728805089224273669450980083873726124806214288709042899825986914129007710768232189399271252523599429708537406152554680188839563683118362263894354569464671064592522103043094871653996230135014693430082138437253363061393372463156170240049379862518236524940333899727161053283511153289367729768090192251169750226216424503757180432246753549497435146114682928665502039425006257883714182397034271696532887357188081420791557245053531338269547940731821142026038235425296573288667923734190243568536524904158470696135637015486498687417200656694567714625575663153856112222029832283401830343602264770319504805718062235566822869374217985724046342423349471693065305086650870079299512178385681878139731867445303465975650468491519043834019781852708617923832395200416072671027055195663892666192603685228287635519823165261385431300980289366259108876066361504286153005729026972391721837410915592823157123586990636881136338063776609379684827892460791979269674853771061248310877756016723642827646895390103179947135390531198240981124521591720833778249577469596860020030533998029585350965737885361801624605793923224132085813470368041222336553387216127371165153746416571884050444369456502726208746743315701497597155945367370365521289321745342014454684268285160558057460353839678683657995349262287784692986150939648156485282238838059364295661802251407397928948707776816097746199177175029663186132862547292790491672908702412662286104727601496947840222119241049924389555608214376459907182750259440434774552149533369895540768749732946566257908765329447057672090248257426368127594259900123287379405716753755032692591717422801447467796892848058105007936357604147113908911428765999511593250872029405134710928812010165460230756344280212776509964781666731732287631827027790317157887156684676293579389973027794957676742237273741895042511482321955276704245878080211953290523529611793553844235487659402250124104363819633438057061437635941787075115611261491683603131246416819040637719961448213967004442403338298172562275780929731377109462244054518752882189088193843122083848479110419870627492316114148426436260323598606680736456344346658076461445945911284519975079926842178138441384610351191258022988346626776259541323905057190740163541754029801830007736388909637258994922527099261819536242464658925165374662802092235825599104352050957095720794143237535450891048107507472055548434143248119066855193692614917049437084101527485053468570787109891300360948415377168699052296287668376158150461043793789097686353967145628068879406665360533735283371074440790838632395762982990609297433642130687607287887105097085867213669427574358997635118908213820029867966087572416872600977610285944273602906186545130311074596751796354128524748864737104894673807548308972219103425831866496022741833336873594886537404669441290731198257925681067251101890187063031701300115533352429591556652053492007641541374596823477078259787421469597872966638777087133445585260734181680882015847716438229425929645152383834706112790675164942644223671576994242121938228049561094683540713653749112909684542796830602955269426370393382331814671549260911172530117140721881794821648138046539640718409067634580740721950359517504058220532847528634199275645665439795072690705159713918522874725625145081635848884785184162176465631241542318223166126789797893870412246392908320241088057228453795192008673070522192786131750526492699995280774911407423911693993699202005947417121512878826721391898505137374774709350486924737336135525697344421569276350516698466531839796436547552731060460523391604497165927364952478732892249282236386416647141284414976806375946915994190592571754202757798300626195728349457684296986634968957486855396246267152186598164811715846950026518427854238806756337408088705892205482385840735907382089075944529225620751575689738246809892300546801795549554684218862824207405664584072328261389456798903065274370188614409958815609254193768446058009612266955244892742055821723093900397812571209211456464299670840865513430175472872187775661329581772394220399570567047484039536513646423931447120221723592618743097779750075163468115734803589352516825099800808420568480257080224856187194888098392406719297826758567056572539237812335789836326648925047921607048244102620835367226274654968135384681876448479490508830558841082178950464180904706848549626584666484376282280525169532202806942723789457373281565356200019042732160236611334936882166416350958231835152460116970590625626593563448415114890832173135420859818967988762700081606001687532883829243399244011917338409466601777114034399140532517349553263715159540089589504337537124631720697443327698677213154679468748158404356730522462246675697618379955139660000028685787338994774800208833140537634983601902428080422719104484530795496103705070015262741000954308307635704274962985543629610274454932738461079888352335015142740483021174129977043319869683358483215471630528616944593442415367933872651023000791638150343850332097993246577118965768989334436772253975720910238220310969878574012993920430989363693108523947372434332323880915957216048377140603546811413086703929825476931052478441499542853473620249337070618169059092001305432489843356506877554840371676457134234279836927438567523057747889790554272317693293768824894501234938986565555580499842694367914371258151990678607321531230980299053658513379213623247388219053096625851453184074234327300763695941903846224209631708136183091805334090199568610306138272038708026539306491226417538557649459340159063593489652850251624162788972641738240607819119753220050016699334433901887619827318949756519178127111666729723225902573183715804991580575773990062010246016980982965861678899840185271901920462099133397891216002363301691258586485663096243576432462276042222551743332049491037428759156631170639418198765299614838930983784290425712820867750496586763110404541412044348667499330760008825264237701261457485092864512337795432660262830752962283276560633901998839512820228485362243290161393102700053810104578088257396901744927836983072398449927846947923639039263177865607517027075168030004210700557143101756951124398982522207410256852080529940847605151776934283742028927886563494540625595358858348547920713448107701341415570706233808447583325422938158504354749955266531503425378700560182052985600979270532308572787333932512333791095909590011821648143977168905006095403864955805618497723841894712989024186326823749452079941395614429222939870801443169131407479766936511689884077256589077881282508207468933254894200127655407661293357135152383281079373099712592272892145799761634276289536426858271498337720319386802998457783685244137429367076635183279866919188419017296830285229907612633729196982533868092880855308174928456637048247132297217891246221898301961943819239975574689773397196422640035019357901308363788448953981522356580047572356106645803284116891412000083700389027055151915964686794202683484979970579904048163372828956754588645013827662528296053595999557263092646788346538572181010477828619757116797642823354919733939108400156193171086900753969997670005916472569534479913092581809865311951341600904446731271416324942539452613251775559653397054785960656526069077504220860561554299934924496935647010109926199210442116528421893270862615314169917917224810742494431224016424026855145328367977509702943762495764006895418642397230471213955805613655358961314338583871915349934753381577487850938468159423059612079381423897361587642318330813858614472519579581794130268013292348625492491869310820612849806070219023679881228627860875841656943296767553036615402209713200657892278268938843389812574682741105576728302190342719084193614576483026284109353167123556755346547620437427449046287810064982869782164499563480819143000947995877385582510256785794026009399765937377058150630937425874725432806022324735625991583895492914318871777433383337582697557359097864176120676310654804552284368542131302378032815657211233300395622116346582413115894819876758891230895061984841123173279430219642585313884015247265399296085411277591723189970312301988667107771574947343772312511945889873794473482851996044807776823735087175887373922392847563653160659040536444100225247300860853714386932964550524744078663937886281241846686233518463012772691280554723261730837512416089058504535517948854241209463449678918102190994328074042709561619450367855394852963930219493966822618073648464830317338773478876620638271024294637836135197603942830599675043177247604091296947533191575622699223751074421182128309119289791108606392504296571192621308635941883084696477825471712828204115135490749820521600111798473658342146826623332225791836182134240769487546861668979954484892058780698119005204462164129616908879757226162325945301014998746063277772495199318319664980136266853612930446583104511503218010531081647062580133152139573445187176351263507890846985539546292018696964019466282048865799555505360697041541083342533209911389227465089613161545525649995766516903012136068403545522696802464373073650006882838487605965214995142187083804122512574345482531569727655749159939006373718149161649279961051535635835190871216298382014973059063408982154615913651543969721996129313395681126978222252444867126050022974596799624786385928910266451425498270402192036893455179173818059485818988015533466617968952850392769275845226986931924421974428539197905340462477964569865944112788648735938509594337528084950077427987503241281739024708998500692844153916854781753301839379844449321134528372018036632184764965040047254990982851745115424406986840938921779527564772587534143405671210999383933838767851580538400290556303377517795106662215462080271304311407396297675602891657982846949321300582014631808151788000846669585370210501337563539537592552074491557681156942156556149552395032787721858212900303824480619943262025688883933282651872918163022113617937316888812067527650279198841465549762538743350379459423485188541101445517053021128748119761699381638005383191384388468990222940533601341540053469295221927444080243197272617264373966413482510040209807922616829807292199080719151835011697225722342539077461920248172771915355264179743514353977126541235698883137064218646851682034413580926904405322892088888161120895387227655221451969859083848583328574907617257610460722666747243277267322672198952989582882255887052858152235013915834463107615651595286530023322460385895874547587845509134397911511019538561754364765184397118684057054640127675876049266913058695781929710096630941280435084720629546303674143371935978217381961833950148754395211550672818523634977483166725962317613093601318529620812282974835339354746079361947041855061756035525384722366594166725880388235000358476173474427016838227751805164625669003010172508827218827470923794294774353781140512447847490854275218689018862282400757812938446898545784813916335866469933105519507809508322063158623506100192716105032306158461313242135357366582100838156898192614808387461917715483059985079175498943703531453348237100065009084884800632311922793147683592750123060546238544148240114589421644578467953857749018614797630357247696045334310224118607901774507038901376290427945203484068344552013070961525606053309952048293722440894122243352330176812366198790888562631875569787869925733218458231887203781535180952240443757940540232669490651966411819810583597246562544563476507746598856520336338973968170694832636975146261467316120423308086252050787986589633894752538959280150252565679551561490763795570432132919014123686950482900040566453083463718090919043633676616753313423860471298553855267474744293558746367988361058117657837552574560020820494170882696104854780344323184813116312445561603754188072616208265452478421247074473327391996791140059116805087662752248155822060744244275350606376754524607014423336997408977361062338452264249371214109741646076903421113071736255762117771389745677846640025917413416394643411411847438759340472052922168404510530864391368339441499263812188240118695450160014250017297348177864295437480822613284096410355347191421169037192180109616924903620348342668587855753982744196342453351844944083610598512408719053871898407565003601861338723208837738299954644691677162089603008506386672992904277228620049359219937770010821533018783072078943643651171548795879321454707409575053847638893787731704568676987036195389738843720492087905874184977208897427350724326716637575487581030793701926580867202358126685751394962197361949143617528637553421884107471898038091644210205764441184584168576681944923401462359167754773039153295851863595917837054271431367867780980422485932700482859162969740347752692237833227103718080975446332126337437287365270477683020569340345113058445409152771998578936798330241341909247200941013496632674092984517829656776693163365104084190365294962642927138861908179795302874789882900463826478679907072345847857250280013970359607957674141609456457998804038988293841936645990297856228712382568312547775051704664049846305064286008942383774680027812122880091734897717335950938886592900185514318978868531105421872233830391471536755398460140843700155323680547526367416971001765468779511628612427267189117659568354965566984449836770375533928658627083160697759427587655124278609352630709977246037268800508788098044763498474269852704769485791293557937596115455634119224385504125253120987770121247561054091188520450207053516877608415300117170372715420206100989457986193626255185263490133648640657986868390668264768102795130148127907087509237100727757009838660118742780909220425581608326992133037064658882092082952391633926375609968830653810990205714346907524342851894304613696241063863923272468753148885571368060854545706921410345872054646752726724505044051461912803358108322804857810373867191046636972563111772798492828774438138166742506025567125438343013289806697352028578544519929615514142870729475568036151634981360197991719388318832648287386329563945286956073411555754448366339806123605938148638251298132897319138800237550827936678284969945579397790816807803085712949728420535152742760163176782234623942807238772617923436863805970043447727172328059106926060823933204538566982261226334062684678515696897384717946959549889111936309839265799105346194198388252401510427532219107822072956146332910813736475902699281075823144703037400756832952456139776882402018884986112538676793200660264734150906008540788394471711492881614279233946211214600968284834465961986650222888418455433335225984059553753017387710448005818354211817548260243611626396353744185671592986131556924631237392803988469912233471553798847486807114909622638874580948109482645767002580338179850623393882593848056824330098842188807478005782377764957719420276272770671644373426178299625089944149821672266596464063962291207421298654525168380988807201781189854352438913089208118221617232016109446690858116287122028756038769596231449317371605379514620187820986471387001584264444569886486368138820811464250438685174864056145011703628101900776615524048780503790259933551645603591823547825951696392148724587967280773999753490186949447609207600389498314114445825896541096513677849715989030316193164747663816020409592260200353018239491354149798949623466455331501144217534637309550860858810015721757792137587158137990382098828130471215919101840099663091650975078950490016639499937465405111757968496131577787520469471598538121904762931813182969460783219071750489339287326927756851925826571129706070365920683948130500540416479257353431135698364337214199733110885003889736847294330024316074066305242657385972365253510966730359463289431129859185576770542990576886261619433264750001297459782593404767890262855737440679108834936642078176406538072472378408527799765284716450148605989548836661813108084965922407024781588571137971682894402526959161944426147483845439796921644133209708615731485458466109728447906738228828634645025547685907844189269422846479894537852513201026295935139827619764710878802818728956390415968694264942472023322226729630809094941180801562140515798123752029529635999192826984030130037426987236317768969109485519586376503431895984390343949569036262824337499328442548242250328666538857575705840249286857991773392402542617184730386329479668284561557368743920070861454936415824155794220002771508624559867033110071906989790012605261048408112562374323094858135030093336737949396004228784717282469876149417417027888337686373086422557285018879995930804151506917292596096174833354850725795549543614535682432430340526677510413514645757572494888751245206969571374705250125486334820760167058088333514493756941921180129688311146079011111613615151905541700640661598946758279866285594337057728240303506064908918080675880514080458489923708507636920907759807294036552928812211150518007703806429258207339695711804919586049328009859492600303372518816196764619067188507915427511057268673610418923679912690456138348177183924621534123127666083605174355251336430672239146428691330872884413347551247680842062532296878250806264641096396126377669767302265124797951309637482074138821438713765299644213533408560200616433471833867064956796610977886099603872579368769195290756238512286216647037948782733690737970169081875028512509072674273184351086016769382875889803597521717616980290507877375876557773661183673589082464572094387726718866131665095035347354661527533036138269483886435948738545905092889667151271558150575552572253034214921974036358593702157216257061056041447640219794216890132213381230730880832065612096386105023579081490987071176806131654438199683388083047608222950400265793493651466950059855206089667872367182891142523268858695677569085857726049586099475048283795116485291373442414875834712027160317212197154781779748025623896896067640729849636644134479282205357974457646464110298335489232998584431431836436297010156891915704050192906905147575156147740948050197013528035313658594961803092644848254348452903826900744180669767203615238505915735283726162168785288358368828255111103642475582644987067912215519055609089810060036738793645853189639064083230833572062998161598932821357085082810616575183346582095931046814686839264138538116760568164693704312799141890000870094443478097365026053925173793140373797263805385407618179706460661416474615908275756627175021790479158269052025719560711600503411165438124813041408976023382212365725769083033713232125096241460311426082926635241176115176654723396629740859710864391992861509031768114263986969927388933301914323646546313535020844357344870010350035600471588359805908364000451268891253345680380749459757350520020852125270810444856025690936929159070719993908365835216648554756482945891458163101007505744856254006039732156655227736971089052817326212082901768402532306197250613859856024934267500587233667632497946917005281194028247827682518778645656314551287504794853043706322699396911131153764749706272368034735009662238050001464205135967870469725420748538657677824464882542044799034364134424757997330852812943114213177906634103151190410154672903815688133971271213363466552790249316014188957471615869519185819077076032237965500417632813782606046960821526703910294531209960413852328896591391191155132612612986701947028007335732803751923597022945815389972413179519194609897968604418952803709310139024680170607038657048277406208681685990587496106913856602466985544273437227079342368407528369890331167254921576600082454708247904516346104365530972197741628662097460195803827371468274060934625927092133224912599484674901735869680891569707106714436422944599802476197876827809362120780824711722420086099498759445991242441166868296781398449203449227344229056851209174319022896579589163313081340633626565825491572713313341402783609447122149355803266732543460647904231060944868077524778322136321498118252198618641972512592954283977567373037491755641588446847900776501742284578624425552283767986289237288141009035787614092566760584461559266547703570421816437598136861776614213364172711087892457599858408299605009456215186655288330352545152933793543351339075139752875320842173536903670470791123235148901382866615975526435048248903189484883202380947616332067879580457387732379793463770292375419513084202538120188536164379751479566510181569906518456504386326977831493506620032755979532495174975470039342460823994273261442388490127941709174557686003258355598005947950665086471697665094470866046568348097415358886810248652365386168065430797542486399228467591520815681007489524617116663810651744209911386502244542682852059800981312976618141491939849067622540835112316220374681538515498959928210140447258368884793092751802845610387368868819746595184599178500694653478555436098194900312141795817533634049893169788267975774921131695435026099970233259830787763970258480572357702093427451339583283494327288913112402374012285255058493193485909717504489851774023077972001633068018317369792159223262155335166572382023715658144593330350146371341437367566566302753062113790253515659639552749435317077382464456090467992946633348243991387253017529597569252587317396905148100075009299905104782687188018900112266838299886607465127353751084490473343724477169471809851364216250574323584404496294639724886048269748457471152574190922391344447430186969236584047521445069738060009899505650517751729173579982684671941728633599437621875693744834140734640926661408813522496999772185443245046809650389413054294333889666642935525634910981795443177737002822850247328247413171456730943101542497538997784495193880302258300999774213448538776188354201112136217058374513797852245137164657684593608416943306649795894358975936382774296840937661353242095527506302913457151204548811397856156497051496818582431473753487064190910875062972184954072556881622017614442604154707893177297992641651872478512359215282926006282821365209072035941689613757040387343207714183598719941144801918469921415440036417207518893859366903179562908276682887319125337072800157873916238322411281252317283823072321805859323756476438975330035048486298661692322221861506527914024418781359844210931797169306683631711676309308652425814550947298970430729566647518186132121709113174582362718595222414693002219873526725813150199362664364897786968471164588161819604626288826494355241377901214159520402637865668810203948424397517407895553933435227082716685020836159700149735417717232476605595453324948149414433162723528933462694892506141386180486145945066530780094335144236958525427569518842103075501168225107600824912159010285786398862161458858681521361464584607289415832127275973395842396353825674580856291065827060165047409224571952512997512992207128973557815314708495617552580190257747322584126290617804862119409990030077178882774206204250617361702727511235327790912383403712109156871976980350557259454545263676747105559322575025572771427566295539885965629716700489479582296107828041312009981356145750919461299718319740358426456310630666281717398178624214783139602980317278172183140154073301803421988946060284154090290530334355534860356774911965399127853489450972836380428446170291602669530449796306609907000689210496283414024949675121966459920887003446374548563290586664378067340831857932147494995205786588587857915825067958125992161149963663758048622551025662412200535206736865509774621438279388631124019478138355870480808555869062530935145048540229453047421785931331209584421649764954655782349092696578099970223358699169958480235809590045352002119661304603940094943469699732903950416740122560852427321854474223908088514261608627829827068013242131329007200749994716958923805522867871726358971440434563959057794486287647299005178845024931470810624245354857740140458663959455870021166621651800254286276308326076122401868944694659285840772358685067647942295341518121450084014520419871959752223610494308230923873541207453270658891082032395798141693534458030257976644495698843803508455180842353475498502507538518123797081722652482790080214007896805293702081848377126300211980157441670848195673944735536754441074053879098647028088916083123759068904465566109970121296423035264018635972997958291695689306741903183875888237040431103193722983402315756911267650091577414633089259963031122329390355055695517743206424797410267203957791036594443558822452752470588832743702186337455720361235952756025196848218011260211808174190316657063319905872480274511068720671836663118500928008648401216152334945045642378616692088220690272098079110459883417283055159872349372514915958325023906584887605465369882646033733529213789269394252107934553294412982180105399515467120255135342634386072917174358007258174455410169414045895994527503172720598397877089515629682332907318723705290364541097138911905205976190935142159007455331617813538243743491322565708432075300120501486933725717529390572635481258919090934919735240795099089322944378935650564331611445872233841968477067395359846867336425507919134678605657282866918342390207323320299401839935701285701265526379327845108208941278809914548104681491245552784655888153976087147228739679994546635649937928635889807873093244560086201479083945854757271509731285198432351774908199342838941304410906018202612539872997486470126369969988299429804522290515165282574051355546290673203687907477657688703323667831983602760472415776861311284606289393674110958666458645008033685310572548617641284657278413688536196699851735248628386506442807401794026196941575690448595306125828881036670034526178038265645205081675303908499126733461217926666648600894954548098119483297598464574999695151737352149581978959057787290883898538487642963371115315762380771265033813836625818689151272087728883862626883694243486486375718490211451400633116950707866738431926977327905531925037571486577335823067775367991933554989764369538968069152426227801115038404485327904620347999326467673235410946011300743458720198839967986452007591009848740281535400682883091204669966588232773518925558628339109958498753643979895868607896565426460642588755533087962927237955619798021941555894310201532057664114790242235026256369402806427747227585192230881047757660761047557540829933005736401850165685284661100150621140045215562089814646159520827029819363284596403834093316487883446278971478120329293319198531066366116738464511730987943521422026548214549142936836346045075168695318071570036729421497557974800813687210644690702107529726341649948271567974268690901333395773309997601141289870215932211263467621851625801701267522680100893510296256740257869930896525014023856407344883239284848650000722687316691746838350896092994333940600733022069447668268131264903294315496559304305044828625005193629642318289112625565741520043636171790046082745190965625668669034760190644113272135120560778789861193361749854934291158347732652355538385646448918484550867613397468010865669557928227548670142183050738458245342728341688869835390371622332528118202606564471906057587787553285359279869567038239089762507182853112444668619327310369388493503853098461262712663354194799522370889469709746166719829202204764099785696275436313344422142997254581819891956310908856348308547562253792939123608434714824921010836795497277120165832034854243353420546647913925919603779285276375896304544906287189072407284669610498303884836814904363206661941870940891629341330884882580055863531860681190538380285700073477016126710510612967880288740323447953812494204108556275816374574594639280879584672030773837601857946139133974302817725334929692197815876318244259282295749502876952405916694559546755044782616237678855075123282527193908632176549252224271695645395341185518764588714741740105574170722816071929445350861554592933908585872584852986178780053430705795479202979171327217919594357030336062509923993643998541673624981091910662629868473344150421266571534736977291906169917090694343043434155658252344949166035354232744291444536876648565425726341535558214085157283467188906414896476373374116889118358521651158605437304666790464331399075510318114837373943317723914514835628282888395252121110434039805149124493949897718009748588572470764794507948496494225409833992654918846701312474878518318656561058511192849356189770284904902423020640635090462063193555135701810506655576946918175862997477364961787495353602457917587492012330344320888310846128462271124962003112955121412182523564709826410317909116403903363199038860480041281836007760336762582438655016049592795433053279610333224396441308915232508981731478053415129025204978368384948477550687301479256627258469852760715573376290980487144548831995631662668838201535960407267273514738202590743225497692327147589153343772308807228477501043576853662463535890666112103708588907302493751355889211691844658168877040410568999248127562071990852419369375672092914281930030040636655934086675590360679419851720575242513054291740093640929716064520534478169180240423265510138972304026763476448620973410173631602162010251277148434284631701324913242525719352521714526532237039939964433636296191932458054766797656739607191386148339005954253411082258790682695128481732417129309843399142627360534410630076696653396099515091428794200045573290279950922108859138627987131684274632998001406557572967048806932485395786430155490257673628949842602494544509611569567995222771882495976024012046691484608185690312459059653130390372869845367600629762604408125940495624912165269665052813164634155776341453736529186403195986754824077885590515894310983248550272482780713939816423467446246966322826519961440782943613224627859778549280945798997363447312664285972040597543284766708447574280487429238571302118607026226874096371596396466839550804786784580564624755165586734927251746991506807281447302471469414676678613714890847719182736867282268543422029492116302603879097199220404634474919225753778653674350969864277080539974563630665047939265133106467903884757540589375797001247243979187176216354044436261543040284121002045174171697253495822116679245224491067669430485283487585494482270409076471674545267629300995094236752267217551135749369480298553687865542799957479582605737989732944388969395374082096772714570344384614729668048714876174402193641778429949268671948047617558337617412850638498405203867605739441285814920663974591888460302276602924457509003425662550585509838568474753368426241141437839583662902299525058421587140908896032151057300653631920033219479240612993518969035938340893174232941552263262939795946030369735413855677963339037211674565785918536054485311393181692609161314209535827103032892910151561744786185455812052138950158737277332051524329604117656564234609061227160663669024695709357584404567895017489096039529635984980636982104001873542459726061413899546156382707908240354762421662631851114790876031085549834678282894278014863269421213057547725053630827612151714881644536938499984599385295278959669349414502469357382207309998964856944989287261303597796260692225583119572496232936492056771715926818688270464397604713011780220566379790223925412589289274459698879243967171743453980984275371762978510275120803330913242784057501578422132515883519175531441091582027368021752336554117504453850130552006648082092228831726111497986807187231895885330876644138247142759205836948710645103359383624057920309439050879707155472805754097882339064504971389616295411205532377082552615468592188030902952557072162744572642044607341413545699758250597735441022657130493343013270791437517824909034173678823690126960903925451914960037908763767951969121218841272240987247083538196180642371739162374103755604585400263645479733845439724660038486366376268219421696665249360715414183186083572795206702503695195095050535221869549698342820959662396442125757009551356053711296761037407016996914051890477559043231670378599419687709649787586531634174871023293343758116606520092329134342662108232435264345494274086357129734871543780269750253097560219375379788747829700655566966047144901241812824108260019098170894808091747190597614143826985552448398949982051728432513067586482382338348728542288950733895178858048756403817074208098888422511995156295816328067195349203563295481744718253501183103651642100874259263139995989611057065886788749856182596290263520590866869585626002187477533099741826241319264161141515791245913666218530991441475112633734664712929034590788614429350937340552285179582798088872469098452794746015518251240998811851695748165112351944915189618888648318312558147036647889392559268695395385851866408563482028764333036528553310400266828457995899160072300553331807496766951423168703336954366056281619490640538735054507408174115227267196643821163828775289716204684072764675881866032056530686418860426524437661720153486571522180422608526354935444399666410953342245814282430849721528430020728938850411345482128048914660777492865111550884493693926949495784284468251715151003320816849782160936896277770091785850046213933705536454846835831694436888148740751969867872997684540561009810003540168799674088572417495974671715566219344296221500129124712474548941636621017190182448971376487150409933856540617296199324203334846631514330008652225419373185498795867042943613763200989027302387061560323079353988354789719296544796190773213048716843031792706460087776667410930970714566142008072412578258552797526564594321521706089902985455300670975033962330550837716530442014527616188830665486536834021200682708822803785243905017273734881145976905092481771737170299986555859114383426263108860507923060382937700663182441514411043218697154893440991772116636803980865246667601918305082073153626498071688645401581907411955505421327523863153448985858136898153895585565418846350897697459244841495242268783513298235025790768376949384302314407383282794245075317451770462159840460340908295760623113935022140953580572675906580327209614155306666612699770330885463409713096839906997697303614919684024960397306204593577780090046096698776034472112567164459459336616446561918078669487288649981333066945317228122949310619965066595168210995720234973833060553877553007826829497745687404835963619346386910365991172038784162869993189651632020363077734471401932525921984997507935562148065756559554644490556980604376911819219079000552567420496904438340499959141662373782344426202894876042600171432920022633679589363006878350600830362542080868191145395416883583108063284113167598492955166196749097950631111969745228330459514577966776277197522927995612093782603314969590692115252694413534646032451772045932934035504758136694438625993057427387076275457454387697490466506517833290341252081169143430538000721705204989777710439059612274099858268922176112515099592170222602270683826092003839464185609825298910565122393780072587187608236878395683212256483766375162210283569811229276680048663844510298707180992425477622354940199875199774048966255102412396873602904595677732570945971865763135865337165802059012601646075100357882374889598324535236150197502586825465147787345311576821382338504617169272786810704794224819865751309377659800902945750130752703744804578126874218693027366493690729362577268650640588664065469435703182538191493063031925444605391077710972700689368007381796195421556058258433738674654678511566511908146354913155646242039093847183738980915761186164810517370443680597410222906178991664015389586614786746540946384166239434165062006653101611671040708334916545141967615586794364209831196715518131534776181013366435019895484764858185725076945372993961914320217886954003707437298081394606467636033767188551995379967393571687807128188686782849345324157383705270005142692078294805085334293700706270257138955939331275415798526458293818030691226082712319243198209683243415871850503190928043031578915118962632479648551557276431990555644710818885500895141532832624075667036826344256574756713901438738773937764264244843701429167534773856699388588977284596524347532569589272427244013919819749263330281479597216610767250944473816995423023633129933686620037906254284835533845196618495099562083582668115194690629933072589084414409741635611334970256955857304114734438401306537239305022455981316836429689702495032457084957272266078396785941033678362384469438129811572992812498717348314571144815086180754861154875253535169261341292534130172530961956519301742972176615257414199354939194296542001294435534295989184387257830709554329662275835600513855507431474001669480425722714261843444901888442954127032089753991143672165508679155444808540092411875488640858435827134085069866293049162507458775002071688298927295514837940571078911882276092689392392717270264980493790350687865906925977753160501529966784166051336186433937925933730379654889507025678768066887533804793056740676956789950333471404361848673512001168110891644655593750903665318214757996001866201735613885431415338321746975509032094861375320731309188755264885119201007404887674978781359989983499171597409150688196272068081136649206807400274396316414026679768914665416429220430704538428943921558851118551605123501064232110839056440577033350529633434826845509875797694976731427857871680941965207104412567315480085517192845247807126196493477363335193675860116358654626186541387473663341462950722192885683773044726119366002211841899192817515149914034899500536194147756640498023442207262318438807201777114116747321593053703448009137081900787432003098355602830923064845435653024626846688540148937422230742228144268416628280733491595742488725365462014837276545251146660747574404882141861287982515218429605524188598811373729258040905176424173727741561669156272607845425878034430109330324232969462707920908383842836574057022541106599755049853083544719407231570053147435547401471328416483357713983111061873355247817764855043103108945699155038297664296866226805269664747747222054020214854779545289214600496854718543382904780157297915108997910719908924615377784483865575253528636653918221469159758190503451365356051312227467359610428644707632672818469690522219986959729389791018942033830364157733341920035772065719886714635635490884397979941696568196042206220521206432169871505940244399395183509820597786257976433108949194347884531368400286919291857287554603736660465664160035845065831537911775154064714388183906383730802641249796667327141788041137440487224237537007778867638306500570766536996376759014430235320758123196667071576009787110973110404152311592757679267075486702059825622157457296724427953120762388121323934985324742759927209208739908651088191654241835306728275395291975068931220802730904415161000935941634183086093650111284933342184697011225530132053052793106443683321464556571708331057828784953168065364616996977985179262239115593276785202622355209709199812333922101126583078511421425109691423469746221608700049292108685294277783724165623608745246757693934254435364652885340655536057807178263430815534746109098320008669069769567527894727167513921862593327840506890565913048239521057271809662567420014116797930825020021140134817528849566368552572665743926935445922450720583855805348628956240767682955619548662417497712225511653271853535289975771853505202022162619921989032414758278805909578222936925557903953652142063716770778565130676222522969113712063531416638113728517784263473736450058867348882684232518266482713482943853366297444616580352310276387492870498609968134572920133540771750351702516718289459718912178079715671582321303926719961431101448612099728086429512606823133754375052109381638239775421872505247138951465119314175312109259930722807072629975185511770385598892362985615379085749209080685426536291503662817041223751369127007785753674904737134818288105093420473451182802008421343623090722057186375495484159712998282469469161514639333661912806959977090540854385809971784146780508753213170229680962722310673051134589161322091001214843251434726041648795438211326434630037288767964765115298008277810959663966801350768012680351060492505243147675895170404655403430602395558428319368580620106197236547329174961974517727726909533005273766428813085138364909887596533650853335390210305977674701448153244757728597712891268043833066812022134472933410977948267777449312221679446924671051389530865742561212839477879679963731266976461675457014987826054625004909682374548081159105516406133537262313844954104653649729887559462535491567061023472099592580931028105332154445996891904400308571952656262134104059101731009160156403496603326766009856119073092906367110268285983759190874064761048469291728414963010583210571653012623442507715195922141299008587230444847971583097249540958711212755729997021830482799656154141494586693830948416423097396497829782104726556019759103801184115909073208054696624229161389833862408920565315017498199869301000536139346546434099131903982558347514702420554900574525512462222098222783475400751989197041689090697504005245270744610672618436443451309639611315336143070598087839845551876449310724821784141737618654046104784130199706553752363171114100492058775026218575255332348594837289894698147202677434257291893384985525643498606950689817986315000456214494811672894330851072811732099805393250081083198721762199688755551558407824687182568741811191626165550454257820424150953605341195138278980546348652960543157507302023035823426525530039606031308813569791844114184867126654750338414556980365846802520780511655596781001968544419574867311358973456211134752992476085782593364099479021456212297536629267831647827039216656934341598068899417766151954726349248533717911983886566322326993264157336123709863972804369226413179125357547311281727612611613415961531228078992482077673999733058046422475548704256234781971113412373088517495319211224578686435268967812352242780992145600392938034248377995979235734212208557210939126659858429079475139258098348715249368778099804869168802804231866560581881626845884883359207685793012008409224497809403062516014121089777411036681189869882079938232147623095955789484025661097159922826750947467464449876355806226612801770949852507324493918022468499032699231129852815381835659715241998011483927759734674482835123758357819851177871795636009952067829366457137030375913962620076559077447365653471560720852675290537582681867238993118483031651505354199520394664337066346246166237109378486904158481638199840948753105858766468013337599851607740629361912497238489070593164220946300621355683251217591479170526448166573312100328468820205759725451888382238188037980963600217468001831673430288048978734719024558136368519156559071736039058422224712848718393056063371791479934666027997832446234796476894113981895658191168507982378500437419182121293595325398621109563046038421721321999320611040602763870008757094058793725397080976723872885844907267565890300899578297312462949707423907543062354382613540776135637812655437222068072054191093668512434335609281228193482103738339491657495513485276533407883149435166442056001267067029313602754397796515245616036263192190230849666739591459949635319962266770206737798561507198491135038396899615130973363627289767053324773873478408740999887569565545415590930488648634408742002044901682371278503574691591059374101568143234962133869581110639210489353010590815844240650737273147125493382911898398633123394539475502158679480646287281350695080365642915707994931224340230845784365635145464272733120941551782072547793241912418994402191214197333875447552927519417843635913103251938632336600980491094294748551569093710035524336657966037620463912368804831428734131816283247299352619015762129993970757261287114472988083403534494981328983602691960661360098869828644269549922925854019914104340515451632843594653622275217309273126048277830036547142270127455773471484073174163371691568960807096834842905946708565476347912021135121884314033924420348285791273626957844312577807589833130840044174192343478745630849404355874893304862125005201314143654984442868196623614673898399337237328844592503412850718576494993894703532493444706317661579621065657230501043507300439639274229316652098428662424802884575482421102945397056207234508832122939920072723752575555400250078624979364272367055036572289738294563909606505795030337294932272841179413626457111810127608756914826541693243159835661024730416833967824009945391085319276564669595814570832345319745179813624179228370084123051054660518331205988696240049621956942063093853400767413437899314261450145172284911761303799215033155038642356058620138911662088964942907980941019963368659469803811949136630215437481455797332514311115778867220543825264163885111594625520445921862128547742149595442505971712975754011735901867837738185937040877227031485964177947244777907227467439830871564127604079129877904765713844792216373093947307471957157634054762143152710726769218171847657208609935621300617381748957347478534196026142232206073599043824378207152454483255332338755575693407371155578106549563829525095392088100981060627739969507828444341465385093319565909550133163637724601523536991663176535348655185033498461859864592373854687135485774542277726553679885670977469798159004099188928354902867939033044301986194212098827385680437093044433288737642749968754394262691726899099053823386544675478023974249844007354609084608957191616083908442338593449468617487479583028914290155766889861581300149182998296398711187945061399194935398829787584602940400962258241383829012362404671548866443793487691093500809572965067418531194544918277615204153006631875568963066111062188108599536444273364254935788867382932018771938211846416503096776250618844423742977299992759362508313605248385917807013650584729900918860216935596956242473230521072369790359408637988626625427875374326503795382450460846702310989333611354023091145037348956712612805049932487401731864141702930191516761191114251004691240322863841493835111616922179966473599764977391181889445267060249614586334732336759134440909724817605363842561635214682432142036353171714315685337937702089708342821036234031485925591104600504139867089376665160289949367407227480058526681025541005783817424260531506521190726718104543025354028751355809962437915218994467076931596998478765489456159687231672899112443853744836843215322593657253688469975782027163604029037351766033842082404431873579951566953973757936541421577308207168938699062179396647366178551465629028022642024287908511189381573303408684334978404565147661197255413113035072939555406111259224196087872769059097927174282522329674459836560617840278397014843103512998729822308480932907864287004641617329871471053145082523600008981934281666990469324955013959830586953327295405804937833949111085220001587314709081268684230429967989437697761959330840051592925000518987014464530878601183246494501732093755436850400047511837042584720398417685582823250194349588246732871621394501706589087149873171728507167715341172452244328187543361049460338127367721105812205077810316236460733593940461920944372050374115337692115922071571590248766016655690496914712682403028957014449647812999084138355553319394121559568134094244498297667762483360275911977188112810398918866077397202280121217871088078811262288258721744927598136109958988207953839657834038587832780040149218810643601601117879759272682063505575158388044336762309152799652157028281803251905949420856940943498104118940469126155266558522483135528681968633250881165011829065793280750894643502097513034241080554301213437821525307834086060446811004163871395317612349392992592975077398518424789293813722721442581606907959876353165435607628446125101581154417517827846000812066502584051831875739027901177416830737574665166429489497685166666484932774943409351864322871477469783083831971533089518721553813492346578420187746814842091976689521435361345958378568830589683503307082130915816165841673556587369415442730480699697780004439857611686947241522884755154630580869063792454250855535738832236668164807625716798883614681138747989954336021905870968037235911035367492000055984782598139449318410725314140838866106035799938422178754718762197412295466875079932129782149992751157517798001859945830150737129802145707980301608709325395325717342651234648588027664311680194824572662270181074622571692234809532685286320888003228503642917665736509523251925319944599673375246126656043985381354469326606257775441422616629949795195584817483430444918653769250482030814604309967948600405767180371011821454862015911730280841174777311715737074584336252417868140717183520323758181130164900742188621037889330365629238588685924193835383964499626376745914056969352410148624447437899407682954711163555395065149175198372776297003879610305974032749281906135491596054470822990836005243716732128729706434459322267145883913672791756257861925818662092836543495881995501452448861366530396745368686405263810327067012226574801928573973298704346666816913528382291298324728520706102200763261534172247475044016772110874994578124142756088434504472794522398843015010109077942900895520687718710152030972079421223584656310790232199617771463064669594306718290001397950880402396302932973748467527229089583834134536445641808967583260276577149255554761139829292559747350357778172755770640556672932781159212271656833065000028444953189806631635244860942479553951635812667108542070293144279348991843673673826607166601842666866036325101012630148718650960614280819397027886804609639887835293014678664141120523262228626676224640453706286611536299633410812727885473711987496057757638452928275310268458989926129968666531228339011106643300234656613786730897146736698501168620932426676946942738014990176135317669531047008452160217273263726129700478012594341716814268407939983374731152222791117980294040804320781761495397557896198612461962165853441232107647932718525541003044088008862912706274732487307788967825718654275847091086257278948895061630788731874832417964928642927951105887460099768819272423018535163507000603508660959538536098838087162890574425484097239603665651612457320416230111025293011552100400842694921618359223330566970770212694243716730469077541848397196944061177644497808537403617006945360798760224702505058276186566145141907628730474834518824758369962959664139473273698895087869115636906500740774394591869912481833904460268548820926492199536503902553334022768749069765582354175746811493667200352539251521660473403493313622581046512056034279062482924001240566532347781800457044831900399630192748885993908202164487022384907896853778903839897539912145171921533559297832539856088353243224862478196738790958368996065338439504310905809520125456492671500175464893697936297378421589020949927365233237849090364166476977997895040313415233485824643106204169194971537375587556472432234198424544816574368342087009409952932500366636486453114625818867429361294710350549056772918460114277027074975474923535427114907795854445048118695926272846122008088679421923900520517418614388356050647623121395250021640121602242804299870210097109463077949096370934886464930172776535056740761936048106924528764789586101723550565114545388588323414760241276101628093597296672485216563321434824737850423343610569064469491074908504289175925568032826230296761341584813901600249382065552624483392922356462620890497850825381120604083617093849618183092872539679935041417826332451468765659798803106622083163371993748086431830625150464612172290763377516299623340353513387258538340404035239807152324173710641966117890313111759542635719949896779615331780044343620127222747397285565690861566300762344183098852576716159906850466736240505484279337393611568095636804037780249621517153221744153966484586980760909873766650620638579061182106395503555663213276598880538692206338478555962934814698186194316843709713492172648863756792706895830808971277617338382239855064076354504191445877321717652954408493514276809076464722520450552694592806123892128338036652891041104968415553043301756515683409153728407254772091988304943567424853290012432657789498279867687776119547608714248199073104071228795871584370056899472373430120838692678909635920895602418214276511667731715662933968415907806782981632109483952599139291223819612162173111583725404746550322158304063416720351883321958018239517567904575497639603088616911381642901819126438165777322519200442102482426715595552252052980700266529817679706693228664391539752652897273183730959452166960413302553524957350615059700465585156063911001650813233103078483056097910800599626872430887727157711437814604291769353550835605220466786516043995862459638070551480233912023933728937571243190352259297870314859199247052667795154689971950910279734483965033210383053424878773225430762397168391481853871377414653175453536774776153946212127514218752076669017459712406462523433024509539736293593456996295247383622423110157739971336232783377280007861611768346909959740461751344823055377675995672858318726085032031983639623824555489893112109488832447399564993003631399006834425171620819300123847509350798862966206599665620114518207910166027607976807967030304414104233920255069613636047451065725328793346026791565279232523722265937559175987768159122063095814413537489851193425310818914360362028720935195571740210601509736980512392147700583875231304075547615159445979978286767324369267557376226018126578309578694931704265125729719173780394073894202374242350657979671170291927689299309268014176798121756903199206901756732943539690603431732706353159114620257207359598728514032455086572802748128923714940290853309889056826750638483747050859326634158451692945673478963396920342957722145638230741148316451896785648587680848642236973883125266297065352542177098450414769582318338844354174915154689137820988967358012256261489757515030884758451254645620897268851474355192113111136384845498498215977541657138810641818237345080884037320301516381024239714527788880744860287164088029729524258917984126214927023881401222299475556266139113738535053419688035573269132851135998127440510355440149276104362153462571080787987180983042325924018178834279218050885886208920912517879777295943284469189644274733601564782738890409109565901696943844393344777793911350398355085114352121228566924462346947180176338396552703220220256001584035613259775958617990921674930302007145038240144429822799941068734087935194041361412840286858673611263872090971204326679832175304516911188666594166184912593950233363759349683982482408428392893781748296844387390086355126083818003754678323831387665275839088506025636054801266535440106349633394882315550940124415079682303451399012173131520273212155846348696044384265091710943016629115179421186294318520178010452744767662460325000835840608884588848879124838944617823554223485812694799155654561151309580201480042609922983302076254599325944479177431977328483965452001204287103598750748078130393148719607224992929975182720759165838010753599123738857364595379930339630022898036628270910359128736055662665775804296678884989382026839978526126801299225059019473734153885778035632567208790641711663240167176518329480959428774783721944937795755098038496832618937546674896128647329105827823901175105072579029751956324697879882076705918155357553545535612693856807698589721648258344513947259275753522850903446391305163890730358629584579962076907954014525656824493503498677412471189678449744896382250372843424857034507693926286762377522037967436750243042464175240532935558611111718538449696686040628109474840658403427211980926208536309598475339068984362247997044045755561121910566070370207797136993146350290423864500297863989179190670805599694662663687248117674034511515135104858122255277600046758423710061222566192660515590034595204458597510530179983074308031713365618529056365652329480471251439318111234139942846911956450342749495896426656052840433697518933792904201751341098177545456709519403621792823396199908293304865066680293557458869824671035018384173860546678204334143611968450002904677456603199261688904463863496232531688703416177241105217914500620442375770543251514006201838004780872668307969613552152350160781353554388091792907937015642477482399811288249518926708886185913470073811525903795896011213828629333628734102857068240898159343395746547127874310497530559377293731960143564547803570762887401444777203145524514750558932471072837105275537863000753010574366653891331820975948346827066652985629771475299021044708594476719880755912659881760418900498967976066458032249852633994493265660816462484391828502075565148851360949691275143193410551715146057783896782166109701357728514329730038044811914379277869918020566408431091523322777615844356516852313295862097050327887911071982386700159018181599715319431044638267536655004810291731819517641066253680763349389008068592038842011577866057413611931182725675384916430419890729922960340061175370235665007186910702721276096188820624947364187788409021503737260176805963731366830916983963783990400736576999428640420347176373638860623838975995110245901603994619479636601330793269673754583854649334789814705507783321246370573977417503974455144595811729140343768093833581452186128727599188465345012017197076986327801323265254218894901809857601644891470190067686238506507095988155810463693887379227392359638989548130717555288725839628728633282315324750434651146133452981988102512262502832605180996326032266128782656210130852374154062472976514115837294625772948492790938741469188192587165797396556053994888360349505668726314697329556606589543051764600012745491434612207617408907729491464034037295069856417611804468613764815826252592528121767998279536372781410141862562459012165136782167385705316165010750227803977679654430057150764317190240848083767303568059718727696365825971852211257362088148580277007607660970810284245159369010430805465958819316874677385831371561356467075830849893313931111062730171687634510892767051865122839431847798676660979317391049148806529549647318275107778204569203881717892333051902605783830167708775225044316050345909696934040532548700138107566720611794992366089773184096106322379894812731884911474119337245135831104605418855930235977886867571796459617582956302885237604876900202500102256920135132628860923610628330746851771424195581675529197003918314522653671507013429630323846075325395363028507901392849386622158186636060232265539821241767941899784146526247417998906366109970948813432436041756429196884027766855618755616429151361956726372349978692447520921504187768056498486152725475008082699155805217980259191381993889388076192788170551265177557479419513296006281890950494815505201807626760475713682453972969825763401113760099940675986702739345662317346333096656584366723494947199045866425421561764313620637731612662419330435547331198937986286122918558332913285549457861878619232401344210834953836895612723541336379790131753645330270836474012120971296196119820687671633365605357066062810640337912781186141104248060999796189061524569827530185730176396639339326597605064759002229316871586877842536049953674441699052773570643426118826449261895989809537656008041268178120667437324962054341635762919631358439854904449067992865485202807703768766020908855722250557669932324113717103206793330391958776655073281633123541221080830801871386970086967069026945565611843515723663063809859296017892206418816043936955236686850671970241060126036740228899645803418404543227199326642938749793449596189797901483449113739040823059789106802279588364461764956410116321115539406884146640426219426922732342160002568686445442014086666890769889533276733338485252847875368875619331607082840291368853766099041937162633098713152513566976869297709084213959658728732057520252007527176789909476961535602690417450756578440622062210165561758267991337232384307545341395537123719535081920723918055440041318566994254140783945064514992599883454790355992208803397362428925757241950227635008236510114256294406131890828500348451790965160186279941263653499098655926523405605035562296776065449350994070565026524722165854844625302838486992949134585572593195776782631238527086216234125895586511107380417907654938904360283621204078210024751104767574544251932542322008646688681347837120374747018013130759140891748279763917191953568260863721043353253868632107193296441408424257577846501844691215809830010059564874830234707099569931546686823892458065243634639540593569768555198069322929504429570528321804447000119144264886578702547388560263180048015147305487291617688674509647670276197724090432654934386800765233913499784462394117399484299632997329982631682642250354974463738465072291586821989116560460446655409491455082047296414672387037354341141798816129228269478537495426329570789326646786708008466684672960789197427750405256969464230195768152860238132197631002429108684985900812647696783002814002828015338399398251838394547049028046886661953879919367134547454926248881452531897592087858721670182921233357380065377257997462415630429171881913137904616105159351674130994983237558283235204116332699915068812648819689099897323362585036270149814327891351103123699981233718885992784619993095317226370725167684218016793605579938448383243604339217223337906551133909610739337867420224243504616702527378330565466327608827013631080598545329397326797323137598967273957648348237397983340570353038211761625004528662761860842847471909267202733122572183632429255261047493018861457870714768644206836427246128000051723845500514421942473664963295494063676705298222878307980558401538795551105121366196754147044506390021556499032461235962922796835540569614902457285170760991126185372478246078106176849977532660598331685741543272162698518167465774430739057008836925291649964430363304466645195387923752441998912152009113557250801481237075923349435182347772265979032681643327867098919042203465078323932141595485006545045753762578046674834416568075976942906396986857351922594595820807052527182729669992107054398971010934838409212960291765187715309749883492920003517475483617329121571378625225845258254842083482001830761112292103217737736043028264872287825236771608273420219547130342316583815764262013793930529614483427015876373878148089378939529027896798601175242179579270520487993694150373388016922468090086862516620912868062478179877360884764017486799241176862012246294246372462265884809931896113096918523325672206507447485336540879011789079493361042545979319502349381135292376443872406988258156585270496094415337182610619766883416043745598332832249814464991528022982858228164380125747999811495918547269021911265786677093905937244839828431495495852070334145413338141644494906988895059177313678270818989272216406253322465833059417572823012180814288086929470187747952591050370299098859352950689531377410210370843233188583268142000017061604017966507374553544120738891996671719678177145154857546789035017684717295050551957876522243797542959193421845836014769384240841766119306500472033238439403435426797090138952899469157977248752844461953230834848072473216826013735615520916085466541268129737860149174706079020561467615427029468464374427868047597593446405567836602694107170555120781865936519531943240824405807628748960215886845399542413617619920607187196715437982628130311942423739409184128635861945187967189872702387352002592822300006160942000289337462117902361420686446946982937593399143191015158642983346756175153964219752190558071623991805595457901446809724663305381432784682943801506547276620164302416392504451445232691798080315407518882209675577954647026946231756664881163871319475348932435248969818458873180893983350988783540041988435192432179946918035917781717994852666533927184270356873022340526171403174361241012506809271816916047610288013188964167809567797896721997347816976965287319793673150949302916391500919996726218072516431832697557099660632376472351923880450770318781071009813690802892453783975349227548275039757775747100116290703689549790480766209790198045249399090006603048707242865829888351504027274882642887312972796982816816454541119434896636615241029493929091560442005831869379324912628884545402748785612903917970415110656984181119628248215040994008996750429716380466296759862976572324407839376759644786443038113851623475504083207109334531748876066151444061748836003573555236783269544219639995646546655962083081698840192592499447686009686011493629094824579166601977098742824410480998009016650645291148092488760524994067080287867485038852896127124369248113913090939730362198619869999332365870492245781494208636229876449990204944982662270531089759878340901779109323974244626121516019906840934941503978121532275483191381951258384569574778969654848146733649585134237743786280759860988884751885954664776395095712066262652994395181359207199558396583603388646002572286190583469484471886032134444608182194910500973011945126250549333376627929668004252113070956999913500647306393871106759386646174829196944735221511503410194962754148186162368277159432007006866454430568385673306679170527518502174182236358121205618879471558066156411603612414170741312634778434347799593077088536694085907470233763706233530071009315195859687982063105429773649510625136832608701540716421351435812861187194149275160236112198807650282753565617150903909608132154670446300166248239429175084286148684865393086127036025404264655822705298638862382609079954989852592249760860137106865914280515237048741914400389566521371171470018223471498251114725947234018878493294570778087391056087680977284597793127186667016821102016350958612269440377584461619293840253362561429204131235427026642966294702667041248181590469854552666580533907163413479470026201110078389873862460082961392359914737047786546947999017100399762275213566226122859986141726698415221616603190647117446648466264516667117585939769253437007871575936014904923117295606969989135385456153813122171765924331439831403442491204724933350063087585300195279879102453786050577900222208273991500802675086620551874478499309682926623730550389276276257240728400663126802838038081763115036598807694389819082672802095832426772518645352749014317791694378381799178123112110598215563260170410607071710972696126190185804343452838665792336701248504893071526609465014233332193803551753293034654852306439520152214163569210859019271143061721878036725140969819241635543039729238843031745568187513269746635552354401213495131409939636214172088368851606753950122880291354915749164217676258966648209034008633633938693585080801576059630781151175961321606585556885986475617976089736223811286841200005813158065473251607904642392604997957672379305438850907645880657411049097173727397024027129327503698007387561667449160725492113851380597229761559572405763975071345696166680281299553699687271684280698813400014715878270342787645084687716408523221899127807384555361565174530151831418724548134920057086924685648082744510140764163622976547583786394372156765563722124490227429974830399799968980409158202305521619251227309213735041896505222448958762665779778390367525699959921935641079741111091666622648782306516402436227330117381541192291923979860992572811788391111605220512613748203623178852072076177019618288314668513966489483572973181363738003968871609631088141757809938766504269205870528303660376705127498325398399880296969564468701462788931124224422747284541962930239227481938115668200554935932310240011442484646068233798104744252915471795071578432874860615885491936888712204262025591340102300480733754784033149719345612787489337995835600548014801329429141902034328795476328312601974602665855592928734931456499672463227951078781253536430223155186967213775984685189041719162626676983369385740544168094235315694815030425170968442428830358057296081481521746034683692772292094058423989248715494968418396375935415559385966760172027474761194099856822789775699078388039347566796677979343594791469453200639858112387231132970829841725114528837721334202815954967902987583749656013839840013014658407738976064160479515574848226693177016086567049267184389789377212683951770992855781140370492115478112894942867352296213303495349163202062831881504517544673991144649686598314406963651425923074542652961110268233337035885219384399659945324279406906527070329442740623287652120323360741222085339335166438509909140029886415221615968968660491337455339107717795286461905444084696667356809407698974029351077871609724632454204413002333728993123641848357048406432701661219838532133525149096929100899702121071245834516957520459266895885585034113853805557293374352532109787097915488243678556535620860215561094675465632826997573495431305422303176993429581093433542844468897859282553021727798797254989768565398039109542182661050780819506279292231001957909712862695390749996544742318128675920052491944852968590901565139504732233709415109844994303019672584684757190396115196497529587268683052838146250661102497817050895897880524064791413819647287577248632914676786369297854818726351128257042312506731725459056140330643328127169473468817750529699208909682418998346258690732445130104580046612397947227262509892320597938330165671159622139704222653057836692104794925007262085869110044889031735164145216145672602346283015392037301633300542289795016833665132545932750735586284470021254318504332247875975801807894309184035162647640420424613115088264029538841952874263138644829950912511795093478081062519994620336186135066409648880010428467180588107223696171032721951599770850584387798828853812828851525142219364366956623018950943162355590012103521233041747840002665055983909110743651945814456833173632760548103435852143329336131129562869067424183006891885693018455945441749890165622079875422756982908141332981787866313730190273924257068294735840627936169103243873874836727267813014089373609384300560990304712314413541127297579196087936688087276886765026292185582022389638893572504977965101704421513746648110889565568050454557384486809500755481963457006291782287342690962547133543603078172060837773832538434144283963947387939763142609015859342362406942399390665016100315210621379369708435640191952737820682584706205159510784073360273168379549487181612597609605462920479436472568788487532248003753593336089237673643791305756956712251684843034272349246271064678468171064346781560715867372450941029962457557938585123983414532097226965824884659728788401446217078344358705987081811217049124578958555648290084160029704614553773920885720897819133236398670767091258107240985787808264210772447009628176380271186046716481733681632267390453328605903296722076715460009036571315413900973402902255998218839452951626180237153802062124617431513575560429655492315472182510747205479873642240917981992033407215534352164386983147971526553133838372241037940871803248275842603274191078226521401757281573956096369062482443053202055000537034523957709876566438211837625032389595435579807138602110852116698522410839257513655585465001114753349236694710169789265245892550721359948432618396008641317006104858614333684215769081896172401701401270683606851288151515098574793755312507662833550398335895289205536762075689868330301421013895322267734420805492752245246272159891061258231641076769294363728828736614705699496200406532132816369150493468784427595024376425337266125534475820654246799880008605317470166740709173683117362100923903246946948633425830118226076734228755907886560623227494041182820941113892719336428789305165784773521299818071003624487796542423595396058144403958151886738278240266087081614758176592203007327510020539927137645124564082932729805775759575031176231009266321335669695636171203903888763371985621415193576789802925672244439880050727373735576029367613077694077390753374198658563883572617760829574449628961261073959648271607463218408223633808388779831217057169607772632054581588195906532263712028647647515118794853243043104769185208451590509339399407478900647065205522735943322712814515031004817207515657571603474308106822083586922681121576054674441232178336947339720964778158179036552344603182598152630243221651429418045787325499447332952189519841123811192392158165092542801064787036539940365884435236274588637086300675958965227646591016481565507248663324842200020985123202733565672015804338606977761198896302223499980106416226801773841181374184939643649991281445775248068747191386270752969199742490028808591493653771720246450545959158957821289560946506266510525227568161859015071396254861000111941311050135861995568252492148210161546456277158943761516785650377861818482933246022634613840435367111020386385952942788608705668460819465396546940577965473655223233499762946354389121667387687901343704063828137729170919448174446346877431067322261541410654889259622968078636273973303774587632003184597852314147540750855741221930545366892321894152839551885243032700503061470585874026237106925213456039163063551621219340881724827116350303612668739471170888730956589469602959018651111332017501387426883127202761581836058534483853640479786254597856221246997423840651013733674500514509761011026411885841927319066569776453697490375102406086719986826639127076686846368494282954389632578102619086539945299372005437160129474412401357059815184770313305386121439016371825646175566829379371816906697330891222648546808523772080642735185763695905458896786123707319737008211651201579486719260383647417435958439802426182357319048939314869283293991327867122452355819131529826080888664182325447843683537451691940116888951136009724586316532304270846889545032965406751651946898824183611636465266722523793667833795716173312439978447514862151628444023785368396591168010598936102161393182715414452628151750634903736124830815720285419962496096663800951341179343064654180641255035178681255347913827076703512986182692308767309888957781530333270100589085188017779603209903181178402964311935558594467487167452626078190595370699913943754214213644730476140206374081113945384138320911706499324370171162889755430411999279253959320651890613380269606603081057588297289154332097402261537399821031618786687908209925723733076154263329591164895556568904469655233260968696789142385318513637024155153755434800226969302140077804326406811442919420267418344543746007247373953681393860911416122750410934869938603902695341216436359146150393189738859787888872874474820068047537448975152583394686050017338488369976302667887482720647934731012996806430478346283150229867015517615759234721818570650918861750807177943264997988602923418703017122950071937114117895421722845179392638078022595333855026944123764250860293325778172657852217044730943743744510312934317285998921948502363473632086228058163721172609892886748623443881093728782246848711305692405064025881403228553081712778375039651876044699125423282295921840286209578692819907752266049152822589300453315318103908710110480817395165123300835285754146369006309488201495932431792211489645257486391864461722743091393063739664972489293449070081141837775664828571243225704033320429455472551352298937482007976048441815630953668244155773293088363462849358544724702686520163184791131972250830131283777225005155885998433355685236895409343506651314785380427693567715262801026117085724928192117860640900189969428525312596079975676832628288189166559396311998639414147420740358521993266164334059393309193589495260095441822654228101496190733315115857025049258374659356895158021143676891340612739055132280877452634954705601545166675414253374476826064466574220909918469485492175333721699465589907901882499947318962503250556317495254595448005094011886229834172114699147045140794155264058436528680497602983350903455930539068313530188176018193530309039483337228392576759342032297396304576430707017581856425627763528426666317719639329955407016434803048052079308642137038254308451584492480120150952802939878609350824969896869479103281441537695815240153605646133275518584985488523817686588183916951775183337465173747962369788468503350861028969048156534315323837988908964072874875705594960030331358752892337618415478494623279319592511748227685993353884879833697719403338422710384199368140602345063472422292420065522326272285319907689433476613948746385319030841786172611275264083265327309498360878305196431059485795621182818124255712045957327901993389638013611693898990127246875742808447460377647926286964186248086512516097157082632468192065254778731918510857470024459810619288637299198841231050692810031054278906685002935341593108031113866089000483655221962671867725492390324711053101420016675620739855423577043087353367668402139256941275329451909458874326052701039840293666480662837091048362383799404037238705680731267619906542414305557031315504081320891899754469576020870777486959519395617687874544407194307744095086602233560057076020816431657047710506797800930444045689850307778178530465994176718247695409035143127089417053210077202519996425682815487866521001348379915172031374657117457085959005996992049037659640304618912720764887389313444170065905503146115233993606967686915755624338306285101482987364883751496721204613932847194270029925497747197421745767767519622914159054636627965119155535572793081842661539017956217608164004766249775603332725803041811885222526511840759824785760848152598617260235618608836327573442842947227727467184296954123227469739632867368079472761810669273569258601956132064696176601515130914837048576290226153050337875389430389880238253188956698703011153992393871032426391573275629049003862310189332488055736162537952210336535297171514965352551106739147230249883504307334930553119970782024984371109339880981633448647962433154708744330463824277543995030020090442584150634842223274101914438641571343847214443022749635290026840013800547628561539095385600744875316990130717121815789144421477672066133071689441188735446075126768187260953246422933430979910057994140747967223251563703214380975148367568461911162610138457902233005964030790558323805951664423975701087756958577601579732927160129963530607024966614015985206055229747667133679508254454097231069463682106037835706281103889626231483278007342779074937899414700218949183408908372703885141296040067957028823147883289988203513692111008078809616165717683647782400071783887470779180087777262357276723190820086769548915495746069266952378124059384251732184055677749118625384308169673554016849931580364853440435190342057016969849065679653272789369769528049261280211179488439843957441247387595528515372900880164903118363832320073163849151013131246860428135057779756208885621486002729541108401467093352165826379824849967576924771228568096872869540316313300828252035700012863717994082032402642248559784501730180621220204151277048626254962278450068008092357341693163652868005105331791876198762334671040099054511293279585882653657257633624636434367636347938412184903933577519086233880836932273434716347217752622939293722636735319057797164653307491578858019976337602302909248536022478457607620345038443585528616553896496036000468762924555666774761467254029280906897978728436124408896198139204165675721812493718959722447984623768851689524615673559344753991011052835807571846935500899628502699779104258160105100049021037303224130353050611673712279811167587389381729911389029490444525567540748987997731077033999647908715417447098321568591544131794171960664867919419816529049212015865499677669582059294893488341438993496923020396864206797445006018691537741336392696704857337036311979233113927608824973722882300683484433959419948910846580664095138597112586502314068827452867645461161868563224375782914205939923275698099091806773757614302405495800769560950461377150464019623960797557180822142770313697312514660638222863208832315450376404023224328312000455909381461703992078821377838400692028401154171802000334507500227127897598108873456278135121533419020480659717386120193321880067013460792607148046651943790388627636006144016258944659279070350333519075454245867562260501326306276289928532418171057301076683040393368805313711144903441821462164442655804988083325436552263968808107462658347017392764948443718992116080692289136821490856375498528827494558769043110734941138008328733725292903780840882214931423178031441960127795900577197352712998843162996488051028214644653678624474085528431774408813277445554082161936515765666678509620337310301029409626428991247023912527494706123559953452016855040377733585989533056099508825496407363964785091254074738500474211304364963334597257103789310894686461458541507520828258715160178422140855426924369991912391599733872341710585351610315840429847820402479973928315887174054583904795685724089984011804331551537948706824850588111122600774512207982262691163740483911046282239203459503952992587238774877042052133355423548357263791780730727879635792820628336758676063565596046919523928716078439576285845938814391840676364457590700100865572020078462316086791221540036337343538169338499055033420199417925531573629873245756581357292049901407714376469762270360221527314067587302808832492695857423982970144251893984577233354909907216799711632039693448483254733129346126278191523538922485129637434750014614453957020609587001565173048187561642079262564760324323523273323862437466222127463701022733011525234550386448693462140285441723532412807083115961027434670688031614089561714528939112214580930316025264993496168312951662087532835124760582052925254439460627856598182942312378218519564548697507618035276228690815865522398108718573250902543811177698675688159147647864325181593230945354414686771185767631870703954578578036738142669383957434676398078814887409882111849133881692134981025301365562202950254764805470452519747847760495657023129098786343773432384583860449772537761861556089145935724617657559945786814412977770542950987417577662900594063009755047999914303627335668621313180349724677158031203040257818828622576111178769038561315382243502699843172290587591625049344826652927834752299259039715093780704117896314512634883583085627597849196771777333526213469404297436814262789684736610570084379593344194819177591833009971515293549804166812222410063691952527572722890972907703217461705815584560595382613013085277899601074197512789963923279842156662817544334914136158352720401328809686929273247746312876127710488107570467141070719138676640133049393405485813614241381537195139845571800512159868889370018110385421617437289007574123802916608334448059444578768551021282553959644417521996901206359107909656715072969876282813412634799240439348469708210108490281133995678663629655117056429627245026956117226442773622536771172700434214550140963577404773278579419198011175646217035012735887176577196917650055561923993608644705891814537007455098873241503035919962684908207190065348132395415255905787174753075009437337496453117696080222782193405273009676757531607724017374165833261584520469089577010059702950665172986626778656793526318961009988504513451773725575297058220337226647556779462506735999932730876966524566890376137732570202123690540739230937158735414332908549003370820746077181911836950517823716561180108983200287376457800578838285531019765004426687639218162394199070998065122981056791753494554113021825602936731821908660582663593358976787964568809736544167675783942971877518228891953955795233276625656491653456410968092228652760564251744634557853697455883876020834405707529505774596920206744348867163356317820837527036815473359235187422743411366914696573592748694037348199863988033310731030192752705829402251377980450720228750695960327259910748081170356206701673518256949971360723746010074515676942684264994831376050765371350229653750421268815676259765912773281635524191059403529976597342752055443706821186192157400012287945113556104407733806519509478309788870428541503740459365128511230218814339532222119405030286239539554042282841405635758652261985902485905813397760175437343668435291811148308352957107903739524657826662370075802923836489736525091645141905299121699726804773630405045434267904416050579582312249509835303410946181368836826669075469286384530673257712625576339014672798992352517155929605192121836713191959800385291140088569150175232037972816890575006374916448563594707238995867575268364988345779944949717995993995738053759820458251165905420319458772125528648584591878431428808225347934946465805788864310280685240580150908099402117290465184918593229033343453854578024914569487430009047103782202692997405631452603533690648600600092151642157673855003239988722962464212522647268085713628500903776923538150868932781895996088518091155066841768833255698384702120302606426423562844190736022971684347235182620039084209241424396087781333232422404845410282562719274054551107358166916023233414385465864167956702945054564237071573452022761511989411596279995865902197393070452609494629727065636531819768147848098087928556306614807302828816094459959764700072296409501572645467530750643130369150643306641824281011773329266110899717052905517580968609743129016419432270244290637549709964636072488551577158760117807732380434301856142852359839991421683901531544462924751272036051273722596987180483194465486098664837472212552560360850147092646576132065687623012432808428430397426466326292259371451066701927410530507508032657936917246460399814123322153158533877726246610814774584303365751505194407170526361265983377287217970470258081573731327829597434287833467367314808463034259362784945694599756478256296124139537062119466716883375189843888943803887748779474161617373015527996276275464079921347920213074991321527671432686642374946030371530568199014311676992925958743259408598181131917068071115635536367965234279829855663517032567066905485240319400595395986001928966581698644947246347704945485256871290662814621581740779755592494678304277540008969144766547881388388310802787319290042617934016438412389889771333513283532343951317077485923028314318633351885375571199833452839165729366232445896706142286304361384276735661717340629784623822618975207101302571201961451755798960172013436723821789524110546816692167128026966760508950221339922489902902001884681933648473463718328764715278789636156379430791097166037249448419500871508389472870918107513733065445762188075218178951902058508445418617587082828210177834365641832137744696553142328232803525973696569786041245854306025496979971231785199916375982416946956541274104166392329038075018623726666511064219406980024761671086839051761156940263243347999369434592888862459895921048107552438217991762258121383374111857578296506504845598250544271012224097905560471428804401021351668869358812943760346037755187447079116198521364665298463937431282296299977792241215785009670829516872046304254581946558893313181488021521471604189142266571150693636754953134592924935048555790263025409980467746243994326798400399296587540033811065613351776020710381357643650526951614667631228131670043048943162019880914435335683007143499898647786148345697687283783503913875819508312937623152157776531012528707276572824007780093912171501302207286095410201865471761487067238273450518023687020969172403619254069535287164285118248508153050695634003250279528666123711577293023627657949499470338836490870120004859408480407385412998077906792885401091687156743282529744675680654807358841896609963262210695878528923067189886750015268933632256763134698634107529610379338864726179956198389076486461989580573230647714121543662599770336423279954529664375143925175547974077008016074974980678941295415895137051709512573558727657303639731491735288574295263003895037106756312586972153541395744891955776494187155190485448831889241648553613279137207088476983176379934256508895363012502630175530557998791677823666633307975436739158929916378836067281279609695436662131330773840447250435608920920017749894361177337083289559849809359459531760180593619141114603494606602842083520245996560025004814563167575988557416352301200615935348585536746052458322644996260979779069147600474606987703963061180544390895017141758181976038333205498033180590673144953846033526196706709554679679785452166410719379002018498483854545352880792486924936937736305820276007124621640641663176615572510214876939267828920343427140418953592855331431758104080956295468491842688375918757626700544993277343141513834813476437499723598169929287953094619024371675298291453079446479816847856623514282208588542803796790491977771972898956315228887624161187573533803140654361495351677177021404696609503051974579718394704300905779607026362810832234138459311999549446254201690013859739571183559154942458253800037876825434890861195160927853178441307755816277069854668516234257611081059401933795539105483700783630132121429416034227180775266582019731827268844031005598737647416555805507202943483746204334790615845414529575459304483135331225675411155458169836565975700109623957464956555173028841525455073913431078035627040518113761970944526757454541152781812585331334673848503961638186126120356555685256779009553973863230737078894239832766280675808938989942169107002329729192038512843037177661198524014055145268338696924076151239464764440954519396015608698045900086266506635313386569095384876742851803385365774519892069914810586117877981413110946938240938433098091779556051675791069064970377497900877814380384708277739459728680879145491577241618570295336877209711032578429715738977531589389988764812981025505385401896243923146525269624822862218567454642182968408703633137290751567978956352110958294618137946250183970862463417016993314726222611521449220099036971609059160573972117767144089100301121949517411445589397998519578075050692432965976171687506609144397400463831569583265655088975209864006934808415854546448431652685731380042617696545963693483341713189725413542489742689224016952797818667178560108588652739814390440450365923012971368219480682291374864478015359125935117775432204440179394206163089956834150077892804309250438965049918759901469649848948406513095232166772857207065770737243826228827151731063853550267911238388149255523460395308266129818156553870793382125360937952782765584371402126643415160992975483371228481344270094307825660075356671785790785117569123796417716165837292364779998802814640465790512446811975039388413262126898381565903782243789535851106864515104965305091312536915779311672264532498050888179551246968984670289603961731810664904041967771421560677707087914188009920544962075932979233458445643345577069056956809500397739673920092799021528474534180215772775883049554405965185652426056845037040983567084027008406886581938108285141070011469332463265597259883387019181421259585411933777399987325812253858021972937051079255666706519117142590536481152115456368447614082500420970943362729015664630332366140497032232161788059709528522170305454749539147348049960977151944411650288031326601677161270995982599686663635085286623663679735862468879991576587236301255041836218646249255688593940196021739533022593720838622225296819080336545014469749206459417680329409061576263757430628451580933367039580638809629740017056156360915347057561759275932699163419685428941489455952961873453847103385594490379168190967030078849358732471356799446472651213231694115539664564292960765780802949542557679697119876661822606913229857375356693616154781254982581031035048121014766451327138504089680979194645144475168967560411522247802575836370704399241175013129762820907435330131699664636218472576454382767700104124968859275460493844640060749693748910987878687355334072534575646765802661654684228653588772611233637754968800362127334262277411174691435584877145661383427728786902802379863876744707922808248035329502667893690246442450775545931181541315070058570223158180642834120652043080781559435454246146596338776304270387903719219609570038135107383291221243371628905953245605803869844795355180654987731253060557205980365687594874831916197039756290766444943546855778660790761886418199373287987396368918810448663397609675996941121878626459986913796768403929254940955611816278684796758074691154620750047605236790274840511347121285858458634247455587549422571506022051642470178668235314476108205156449840663870867502791462057885507435916639785527133100317775757985983893831426576153011009506961671764034860377413315764221484036316844571283993750194432476502292554909099970381425883756707878947481275020317302356868490373933469446794468336417280889993754876485584109674173319269010797546804599323085785679297163016327572850526777167987480976003071755885847938276448426395804263960480140670864715377413895398556064871144751162420689076769968388728080779520671323267283039300668867204743737209992921050350598666472954515925874197301484080520392132338395467391426283128918461611909680310199407882913820623732298783939241389834196320117723753872917215337067731743173312480266513579166969568887370369494337814794611215134091672465847932432195560439673280409275076722764090677309500744291918001163388597633977730179204372812455203308962307804297032198099340354417877082388345930061544158040842902788794777857311321998064520513433730736386210311080586321848151163724595106059426797505899705591900827433189189078393940781210970354237448318296402620791768431954156585724268036090281585608816115540529534861008216743096069341688300829322816427627227867859472414086014963527245723359572359425821522984321969676771921872801266800928093132925452509190271861541658288408955932928078866197997544354461920875327299888035635235269266469721255141130471713252513042621136653519991273885135143929116999328123457835822758620146441135040544631725111548580183581684987105688983955650594591828259924354851972085899308243564307911283057003031960901180523775485092354697940013561739784025135545967315368799849360980872562880987616149156757584802767684959800370975288032276846247769952832823095878025872992788625163402270947886915028872082512237438248072917435273056420921094268915516971021726518037043363519569643218454067181313198189360809565261404284331864525218256939038606407878948312673394208154707378259540712766684115589276951791522421909227991460560254150939688838812964952169833722525805985338319799772391414270995731387523169139833325595688833391427313170622142723070550205008821169792684703852771421062320628976484436765995716130794552537808516054934552779125760172265545103784524089937706767854221983120787837056867162493933335036077424854346410919970042333473315727547565784508953821761391073138682191157427267762990988523985118866364624175277021215065774916115318653375766976297729693942088281162726037360937581318704590056563385689150438688955644792410943167586493822032769030444968171545656127948609762652513091948011420209443473134762456428372133757065002652958982610889451523101187267940052445725473435296553546832138331978782126572771173191990841988626184473822420096655569498391005526062901386200820914212974291786600977176129627317306801762005746811374001791681202834015030193302593456150662606940154848657456116909545901073812172559712773674747850735018832171448129600673026590049459457300555419104255306007488200920787597277661568673039764030464688388501753732021134876724541887513544920789493409548085779399378377116872259983924022845919478456855065803410305020140922710580820775280951679489918177024404153039217710190402393350792495249872705114414734474913891775914872951156524589222418720019693032522038395113687656824202121731046858019169800085535157233177210993970737873708876646773388953640346456064732253915005931911565596831932479832805206577972191343448137146543305727627879344892982104735044257969966100646249251848256862600841440783443086134303210996791467511473447993965597654230289605027186525291161011187434836665900737823070594315842394818063557148531977913619565700249365165487144492926117272061826897873419359198799988063539678153426159072336508858799582323367055193883361189019823466163253728742224743661076989614998971122755507181185373693802148075922963125535400509466256325934276359881647447470327668918479618200441448763131189043574167438933985774878006369830131293877056177829153498335127617644622986713297360685715979840928212859279137897826693722571952534762555209414286882234430021115786930743279664099303382968633166073182528892482595960603555277006959563307924245135765954166954827799557459367324245592551449420232140011686834478810665480856500031314112797320315197617652645919427292852893675503375026851442653133878876978277805785954624559797816001049156287594020956525388712806624985304033177747775369147789790266299069719457829342262179069202222724360911618993885327153477880456705076490832597451396570114829896583332095185511010231108833759494165130133284252009368930932274664855740900567981164839565613200493587969112078142178033212066984917277905131253666037622642516720853184754762799384037109608751437981303289203040741497208986540271595177776863774293874432510170154667381880730563239724292640685086455543938937488973864378999379058469707918487055571873328812368737180487561023894359326129339559480108818418311729110016386605060408172992538190958819771204132755377882076227412712742857152743907850088430620236506733443281787960557880128225958772121779786358286056716247872054528517480732125883008947286356971916179208194792102821636313500852972100443694738857171904883614847045475422113107636281610893074331744555029193909115431194761009817877226069541770333582597120359838247320778404747544734386991307032421851055338336541355194225012314065128319407421438129481059011594615308019724701256093212001897271026779339442560401642820247342535483574344903799355850490462423710512243077787502799321855865538409845136976691861161428295826416850553488920652569441999892001476048135068268749943962112115114511003928218601305616707951788789764557074472913378300690658505340087022135162231926406143808196756095988211245197127312648732322022964711633037072523562600543773449882616273510162906025044235233613905270763057180436385027827375885933542224761830300216221576183739982530471697923932870763069696490348393801048625811648840499762137682595749799169419653978505284509831808340713836092039594271001284457796114269641926225622699875657220451177246591236349892151273059478315686261635011935328305339112351294800785733151338630777994638881134640561149188333177719882220829130266033548445959434315431783037406039747832050661436156407193360004577947688065300266921572981925616835042838598238264350373232560723612346974312030903427702680934706090970652313003202324821682125729474451690153693158090310678257354511835201612114486423573663607745085305123334257991083351805268093496238862861210378344719407743048577538626284530578375209421252823129999231853301257819720803227146251728290562369878141275180810230026146921086997311510718619449393129850457675916876222019673855664754065690224961208636138154222963348016873942699172216301932858874052363321456684906417647107654432815078270528143974871165722506513703025757574122927144470182755149106535564390860990515042038663311877544034967094567641656217245330028570907843807632657219961364553509135325334619995290471842244005328217008093938200487533491881457347266590537069629726850368763998581495231836542382641083528757400948253899690110462434683540603772861485770660549824374694107787185216895927632962741455048182705617322332833874719993733522318929022535916724765082638145221327280314738526951495441892374023208465838271510925162773530032960315689207335677850576103898426179950382738309053349882628617108078388107132870135534457750927888309680050610230513894350531170400304577676416995334844891253863077240285412359433428904943709192614643027093808753176235338007457393097784148301660580553892991534282039063763578661015734604708420888895781519331954804629968687433342672009670556166603142372135271635253825807949482293646170840229119917318710728087358879955274761363816004090509487794068821298018430768250735419078930449265753703891814580628727774598819265441849331507606981242447476828305702725571340921730138231039544737125481256565176669103788435324341938821534078009348311422372277346541519766807060065550282000535914919101424306597587723525534385730696028177127251744622919176018743408901851791453175096731074328575076939754118071838306156145176407340892353852504936382509459604623892536093029907441944848746239483407404417193133472337265252570244720531046482395822260206084308528993504306585063308820989382318037728202022833900475196405792498057422122863042220843953569306568136494855389948756997959297878291755664673141954267268261119190209256577827908253113706769340179010703828370522637569679541228836818754595718630977760823193088822434750519360861852106415551531176410542132573655365715449520958866429933826299100689658524291012169100193668964701234803702696079583944183703580533935268421549199446952752213181235701043714983839530396309513895291094089377676699789610540917236546648335949270744729167361054364086914007061814161619355102430701406985595909701589395808938230259268969409448347331191160418316154565998813536591431870351602451411893380062999795689732578057015981555960568530743110642645320438116265145324844597171865731695858377165815530224471861712637448276594664533864918117493762571999432867693046710959385064623025919427859787408974600374500800746571965344668575956786709266107756190882998230024376644746714714772507548529464508287364796219789159341678157936932344828352530848811664251014958927347153573651308225707585835315242235817443870789723844405054801847024376000012626396620123544375210040708153969576430165603162085062439403620710953626970807094455735655752094073936854394953030862251185323645519422378265125144248155504860949614029335622004013614036212051840282805214017181962266386380482713885615486865779203977073747269995486429564810412037222160149739410646647727056552759742176507084611758213505599813552552731275847909237425208235168545835463908013589674699061770954948977750128598410443689811867380706701892606588654352751313256456202888097647018308134006437246148083299565757161774448111607757178246840258428404675331897119226089966715659254180812647529790338254893831687945034015002341168567262186432517386168753305112137814722933273013188064989293496900012555947972175190032377371016861271105264244280577199790772944993004883143576656501997305526710979243867070104150082188250264761368666562154840249025114779311331662082639616148367949756734313767376528200845297518552805002428031335554366333413246936699128488714285230268613235248008302865711804468520877008923032041878158182966270221532186902268687251590789651273675452886371747945232871272944371225270437921925625085124973257613367327686362000691341802839657535628045117514769966674803434125906813755813186415728799417851444467237932775087901896797886079618733963895953200150397203621449246185941772572031929569706785550214932297871761963553253554560624899769387894483642397056671969710461507239726312695516951299258293015446181108187731946237536392767985347806758181017659120985259758523841992630656510667568097864767392275128626076472821916497213098713764119176138199893279861801596686070143526180264153435184775483893052893540755188947000691615992004244791376541730740135096518534573619149784421122357809052215614303279709914875799822642983357724064158191348297453147733115852560846160942712191392755710283792330271966949676387717141389061723545091834966791983638057844388810863751148881105199428899852783071264641067176183146502461327428015976391506586273105488923939875455784306922561686855376076867396450767938807503712973216271191586736355583902354226495189692125726348545478422645722393473170614415177448918523221590825268470225473229818391482641453125268791263259629956660503796309295847057097482270453308609998699525976548525721522040688630809358869113982807819828471196567724317469790259190789257575034001023270379112182940028275261884109471946473070277246281106705873581754862734336825134435420872617040422792291913910651069564606355868142232231491475258731833326777655755032527347990134830193715906378557909961732427844231473902429621307087188207321031854805008119366730963707849962493610388175808604454148432004281605326303754682723644064471719618940500237086833024209052494671551984282655429239638566072720200226524476186327603900656872429156570602196681853393603698871917861464286347468328012061992269265520988713639289108339612983821362794943330894084050595578158697726476667197173057658794306852270363915233031873756901986423281326365549438360981902989709977020723502489093235364312630545761593287115984747007100158902136426427644386622774613040768049933984471707362649349082450285202730660799478012561006738429252811857911455587827621077350194123919737452765929272243813819238771109939642953102093841150429741842513787307019120068713474396175413023610937049103312288664976724995678223390256482195896691546895921685955603080867233081976287189734958218572384383982474016163001674884057264331386575812949127314203636470640397794190465426109981659414989246272054696086241238806053008429449808385145768649565312075065205931922078454776678954918896156862794808409332022435832166811427975095243188664115455071043454149446342669257505453267743673650377395194076446341763552091127802060808875147678541100498302331960006507133993847019507095958201388927536653331728441234558664086663496597912755050605566635960154228908954369868331134975778033824881846965407996761861749721016720499437799995314975371042763990534723862304489991092866585179505687386889322468090448019069023958556251529258777714451929203202527944201196064508253210158258200307999337212215298085633849792466774916729287771479242916786327605542167516186547571147324893272736194894735132356802143368314026872317577548793577517839434307658982737574557648424866668878221283362973287327385430401662174167642613861905660176008859611659610506466477623736521903470315084644415116903801608200239657114284097623036109017570837631180110721687919330668072285245293959993675030291916071500970993875269667270657564780161450167332727126951486591109483483918573921397079033494447882041400350137813749969126803108525808306568831439123371313304127863413711661085753889828238876974910984474417263368127410649307824270012236976965967572541170010767846167612402660408827767374723850590589733153589668941975495626987830532888469326124371591390502498468591792314151548624131274524689417598229265693691096547666365337254745504546319970330378818870142129756190716034823942280427436981256731042391499196453590402198695850256631917067070934262073618914663513788627727079258039662559697216258552684752111083542443631049954254466234520470557367880518790211829413109052726504120755437440149874521499221789112494644412484731637583280752710631982451291953043384278160270453617506085243758871806292458267660509113469509777104192370116965595335845559849528088044222358534850720829624758731741187459514390367753743303529930819952085959808539697740930311857134944960711741599025700645261388274941962276487774764352785837613319449766851235954729819292532702503570888143767403859094416761418969731207891069596190511148286794486741121959244043251156651319277963586630030750431671171853620153397826998697350522264908152529663813634096046185139705643268784215264145202005336062586274699287559616808733982149829919549766971502349964835210146790019919298242454340111129795932337034483208125811590579993090111532630841184757787871003774342813064354759062404104854900894353916225156141927043091866477706179154378748283082295659462530630186499608255189327012696786022519201998447761192129488144293414483944022802232129221522822590945723694944035458141951495037019426012817749316315424500549867292385795493565440236545321449096050159405503754150518827182898201939309724441382316017816070289618232652140277729474446964895422509192942765773164025010217406224137922479233442284552632228488973738731768209427800507912700772985669645466049578600292481945347675509247200569149396727868969727467427824861883818449958773870037339877029792398789107778275704451731061545328004737621060475105847330364990029260783076581002568160120237466553904584701847004757270456251458408227910709292990972298661331889568550951499039033661783077449154983195195081033608343080373185417957730833516873005749449376848786993425797626434090319915260850417749917072988678672612537916834392140653980920455818160382715901814647532941970315244143656465235696667076070542666215693038580868972718030587338919454086447465813225953098426294607168965868416035760181530962337594464877768378262493534491365077565055950982587031456164687112969170534552860232795000902283987756071656407710418945444443569959249083972805306943017832538535189032019134511369252580577730581305267004460743182445705286581409088264656296533239790541922001376012587221549520866729686302317455234810311035609211857371522839126825838651120395142884605846416442434772185732338850098225920328051069617179176869673341296973157298007969294826910089609153632342322610426878403060430260839966318561106525052648927961647008238381372313835166879124133020439058315918244632397138688815951216910198626173869958648417814691638496200859495645570154109954463048582822609310289342168407226605576256490957539154566974573075598955975391751795368653638002944268812366225105820463655568217149282022017395471427128600353350578109326240135893326945724923066686392921886901396827735595697757686190796838877858297795589639853809182383338992481896746778346622005522709411935229087905716889579774837797616318199531904944021295165847098242216767623714568269101536761631310895169109119072690401876081048026271769049360334633005451731573760228235135801194140443823143043200278216099620843967884290795579443137964601721257304108553302935941992806591296617445156938044889574905274955460947339955375247819462690339315558045015449964561859420149067143443861786298640736502054722583925884666192904677990978992337042691146010338120778559559736620375108466450495757827386956336128938667963357203657726194780994865239784264690165192308129960172677236052446042286095006978882861467818089883730441072636669771518249057584081540205907289964185435493584957069628466536934809521933064350815835084992658620896815550629718850777430142912133691548780722535846535707076808409004579869314931632210299744080870192515786756987884982143788986264738702692367561496763002405878170329589170242789745727410797469373387609590659145305207019424792813241727652436183976402578901598714094527673943049078730749388986458921145500387949324062698364857942497115187621763490998507768055227002224335447396978239277170012942140623415756074290121363463180183457692675823307062338218378203966029577999373005694210396385335848908003451415872368208373502509540516896561294239224298605242361277347415764476481956158459462598931649064795259812454008287249609253713864882131977813278557338266578533085199094814617336115979013131483431368707319591876130364889499225959459104645432429512985148036134759076419834032086250568683850443325332157901053302129628702850970254055967928651134605611933278781716695540214876537422457284223435949955610809173521293083635981587823813466053264340858285537527355945249985966275358834129650634581006245451769709644716419801598037562167763889113192839879916682737504920242409380417215564594884823640564466919869812209205481423047953685060160222225506030202794050910490637775937246476122346452790076319046832095777767700212912940516614891240318452200238051372917160679282614456680958489642477635865430380550138084048554350535472752263356362746283540796958534136739592528750119559994943781429130656254071452142952400526471039290260500778866280851851445108010207059149351353908663508345535986012684978381101167121749910433340984636754138500778995171407667549213730467828182783508448481353923052511041950393748836503059712754049574999855912477535302714383389980307228019578599609167733239145877249359459492606120835435556984812942096480460613723379160914132011755093854076899993912846383451040257138132267125223093168926948717549908971946811129751414740912488261996924377756216803089617981008655622261914103551975441445984791042995586961639624123582078398026663468501894863401289912257122304850393609804457017413114969053328910370892659691183060251220111547816509018058268157434471388767838833194301724288112644182556702483592963856807229083741944735905899439998639104432838326208691638691156063203016296975796328374056302232802682248065872633870532942775028367821315305397947057302290400516974472581954139873996378046656808689741051418155412931950640827093422523926977331061330023340545945681452604803619124237664687705340733016879804622463232504012692577566928261084894676874441975272308796497344933190217248387096095192383824566937129118148922763511321519934392173961516393540428534591955387580449802564450436723434076449230196164152004517602548128325489248889193167839905525583773581877304693095522768153712923347956656838885520435089473698546492793338297728328989318280986020960915993048758746351628264702427337442432611210436091272693526059697156623971005950104203732087967065245281232563753688422533096473672161741324812366883321092143445933044718293670741913159274551738688718745389635793237721215303491371600547431954377539239373140549829522302257878292704827422491508834015985766729106996429258650765816458477018278011626495675822750545997910664437529812810078347862257157869343334607271859020260390181158179052911933679468117834709211507773900978314290844441861134040957642094777667122783539946873630241249298078834429062470799151757254117970479426934803854562247992862423981500435438433145961767495841871582232411833145731250483048859982305688541753786441689382897315839636809871832323501286880295169303781149799806673780687866198176082249537292102138295545457163635056918541170810525024304231321660964199345998838707411692984076448694472872536888406014300101828755966257415595080699210582873413561279830010790965768239494271719181769085785040215305175337311926136861981559205575962527290150793808631258156614936849207130532619080678121583343189387029679514312149316632310191615876215492467563644068761240279351479948524342812382937323256679316132810966737732155938253672302355066285893140997692424085454844600701036561988690965760839032138231035949686160693170142658579604079385425941706757879164241779789452669294500490066895283851780627003343703310167183910951014124564581283948468802972345652787177238943299666154426752965897589618147884154879637823351648724824908046208907897158827760044824565258419537724543404021230683067687264075053695821238885915137677315065714539655552757366949522909875640674936893948994414374258074037606067766699587370879789600314335665448605103146862871009496118247791315295228032283513099207035646044969173399680816438960490172951715356757618043706029201798172281785485769064534503209188894787006666951620725011811257366310633802373528574958966595620079636236658151464931208623380405624683842650254241986471099272286974558816936126650903178727851652205752310060865395867396664722058027225008517214440880543261095040168392771182524199959252137584332909830467916909287735892939730100383596814164985129506158531647855681418753208981259754666312769843123024564727301642979664080241060828477547223507473699470717040137855177297887901971784928438846766164324001462211323274976915807396754595254149409859397164398759648963267087530113686603940899005055219999578772717249984008620693699008478291058198480399067645357445363564528570007847229685911239880168067767915855283464095264757638175252714879161703409476391450780729936894588738156864987327379369090575102743998453592912491073375788275154052286124247501164169298551521019651557317582386982239064170782349213437048104865218226505000921970961044530986923719494608341702696509003422188188872861341518149779439171053402412905897917596988660924737082382354600578316488359884705763117576644155261593561970882957758831079748081188544806463493577960364463055742570337058087174370014175362360565393943805682327290333946330732530575428230707275231864021934130102477743962098584510128693728405096721830868000032535920230783883734790075246281086902811028593768995580182620504917756863727550822206265074119162267465222169065105946894548797308358802111625164228055548927365539208795230372920137254529904379204129336184368854774860943394272869627878624147496706437528287526228075036326294590926393040158939820550152140723128617641046473879600770388442025325501633835288785317804225100441119236760266604382749797004961555428783377160052714779152404362043875747665516307147172985359142877228193044890577570523057142850748590248155763341218200745109937175199272666652077285370415162823073151945926493103414077519207310280013649299740800312560622126576838722601230401413110626989449423975425216695963447486361496214657146095940271885066379598929295259777198964161487726520913213098434908639574780177451990914291232337939483605042136877020831455343727962180341540751473483523048839470509253940769089078528001832135994781734878282569018776201554138102375852723369471883218791368775594459430319968517711316374301752870432097962516093069584146593429107571278024664825275471321141323081989512664945870083511874664681880957423712924648308517747280314136988230414953727661275332409301240479869073012080871847660092214803492996671738894801844988453055866139442438432105856602667037402039373481632700351303765399760299488540960755533516876854471752316136267698129327467174723917501648605240777399680239531949563985012570699088823326069428535805357569409098399570671830946320720493429461153647039382400681462252880571575106579753541389761577986600656246943372892820364360015878246071698045426846458156452900274042632666349257506710143605753275815810408904369593697437726816537386763485013846507548550286394572728499331576402367200674392122076227832710145812322165717736018572155257685014642091688118233309528310421056748574221375834298687838716230366021538710511898014894021358498007820284224813296001970378364016327955852808808712099199738384441239750789713000646946994973415030143582621073157551400128017837089218617123109704698175264061715661035599953320065013177142743060017453051274489163742911214221359080474810938537988216815336088369385037057757498662669109251339026350700857556966679359808797805015909722954117599588376135679659732219476379005412275177696039573223956983686364071411574002858472746287847889584007497524916978984700230959778065033473829938689537797861674930740526831306597643300221952608545791861518860971452556513312493532122362940412882228183983872063423955550685895137551320378224977042854920626967039337908949077537183218877008944399437112889899301240285798440712968323076595657576579466445044792285447976017939472255675755090265758690667810472886298451366506047549079651838332478841643636603845673149527257997663354685813341796151086943818085109610104773253844105958922462288195787354618201478746784234136187745250528379683668594221818479061934035282190432674115526575645766805348547127115992001503160446657738401610894731836470059646267374880777453071878313761571132875993826668220026344649368684550819283920944825130818428956086003852594950013293386238909292313625066821482229844074567189165692768160424078840964593617912263295231046959295024592051541706871603051937491533333740986245626148684913434308545474580853196699224798280966931857838217105917810610064573174949305904639047719807542121104068721245706766928926859105956515245936482776538497587080942642928604174553121456747133424295750604256515190738213086843513310971670203903406019581232651548084486116065452953945276020082004406251471229850079483986747736921827764279366363950006569656009519726512234899999382515749177559454250317844831007940741425455919549901812170566722951091566477852132559794233703477184377194413181171698050048779355797249004783479209223136526681224229950214358145786380352566471201865153789503175488695521612449794537316711867711090745759912858140156159799767446630733381949006807784834978929297054818891463112402757862432956919294031345868955223400581082753798592573827730071635550945954937969962061969542840636917295390035181792561011365141351813413964105084202077683363624855420455139989870150772287846279020019573364866246252991164082887108123636479226390106261055715022786790949607914872662246293560546375407276589291302634280482041335665635562488786228511356083579000319538224251543014979953063938563661812196342615572565735166473822982619967459497801260403434281203532164775960591341845979451530867868476326943612487174560433786922768926849134202614485744475678501273047999951184320722583143532612575571981144289375611551117271435857512266184862226479190054401217229783131365173200362457591649584719867358723755453478710361487064790653848546827174862983210157972583539496354953370852597832143307898494099298091664524687742750376431678573807181617053787958936293031556003571438589675066881271240996032691360615279474413826227111360694248600284936714981529437559306118865866392618054959180618451888028339426305329343257763812347332076009913148026663476769294082225805865277183150506019565316282912214016653379195946243720512047918720496102958587942106744156523487251413380125585452559173424341695836619935609646899124686889513413134309112746152154517379063164522906020117263908118118573611906938494390530323853042942267953538501126553458319530699472855962877813953647631852775612704673882064186262261155982917199583868280139703586365951475230749206447550644618460364911072994597367790993957888218030353394492382519993570294930026742450586384448918563146104420676043862011085996711305160640768709758187820395998295746129565456188527837824894536757232020055255658407357134374025187824182357818008865541170187309574977669474928638622145160934886721400068887675881829010678166735285565139737436960213023444805280704417162003918088610098986656849374815955791167135912550332927845395564672178966592111120561640285897552086258039914342310035205928974728019086696830054839565782800443843350642949348332117135686609370711264666927746075333708529513841312435009185556233500614484403463789368703260280948609531555880194662606145539448012993900425739745600972628678968500699145425296395396306148986693606042719740755748481446748860549311116047704789358566313923245023199508304467883005691859730072555581711335799836908597413367770109319271888447133017268286939823569777589220293100970469670487495792206554685855326938852766774097413631966268838086142336223086650608747078782118816668898335957188796401157448763889506157813392595113325192438613914444340933008241578195005349060000524319144705258398552884480507814464016863601252149933709278100226801306395909768791558358036866240964933766854202219470593799705066107612492198076064222268454902658242628092055443467093219910233547596062883307844500776831131298991732905900032102013999150372967949149658775285728402478782636412592689815777956955820029709610860184663232137430567718012459818456881496086265447170945934866277985623757276144404453313642835401967929346767097144248678520431001481627343270645529282302311840664305926808237736028402384280331798641547934789387929199027789354020215271653550580242468914501628146656062553139532029713023056707217497106193405488095490878502931820701845815453402663197918347620814873481342434409741155722499721636829685053965978242835680454978945059970133968401135377135509225599947900553364839174539142962587562023594638055632020200831552035102041176781348742321499374918889292897100487167168716303080469419061244710089339702410096118380404264075555706472471688772061943175068534025703913717922035930277829460187224157947253970622879202795878562956345623394197537553571383080785987456563949524724524166136077940318166770292070526812575721216215749160276771976050916839548574731472051812124124406175082135486211043527629147013549009536436101343055645854005917459739995468031475633042041753699061522479289989498268891478049700494319982294016645791600786474222051981040424121668233662373302477900914409976459160597456618072822758636910431221268612528973704799353067669064819283554472807872358995687728982442165723296589339113568025703160722446929459053620021684604035305889114371044134254028136272496649190239763724436546612445542016322856580367442987662799726215839906298757866376859988962854007520783468484161275432549522966884625728348969500401037688607443833243701386693667926085291824238717938513300796003781218676067550583297600937835197357815617019783239641089936745153864967749198326191174585640314187867004892162938015765489503828361177075823885104962479225923286545068454680273861707866007180663861872611339464916511560867490897902793026810988510699852060497807880498595869671291941513182947448532108259301895643964125733544281842864357758497019842143744940188393684611544772821204797503954281761188040180113939263593356738966510098155327980425605582049218892254896229445169685611721273804956791369756513916645137545656230650875507747681413624168445919237745509026924861324842669788670016124509813055002697394289517691416739713339248967742461244517553794265558739127360685253186234365243130498352279295064678910377958196941699549316425313489569294175140621768820510561467786901156464681239073467884884254439470427904028562614081982326968237270282169592312848803717343384314337942415445574830895233992079411405533434891386268345094565202415222737940096683868358154402807532511960115528011128065725199806959006842379942625051004329288911712287815487970244649490319355520529715954037345300964595962724318146764658305759377259146760824509984267848688427109621646318301060448266056904069092302031549261405188037150112291888346261885331958934405455722953502680662529644373351149134477778596000781941682410208995073821339078529975664260559547757269395103769346430479543537619265624918727557674612203077712861363838521121449279714253072492033314611029107496480608124880397099195624784870998157353832846433653001026258147619032522332616066598030982943378659707225550280911143171541636959784802627344684334408354799953943308027245912807590850295188161515675450131581960831327159892746689605696898207328272691329854119661259076428919141503173247024380206860701939304836028204435611491823897918745529747949516514685325475781058140215171055280268200131502532682936528125865737459211167974034781703524851233050304815437507496651919797447003572510011726811086083569197258773364582319625952672683124211708020602497337176016675402987169257690486058843794947678124371673150310996774108042278243017703321782703785630226237877894012169492176231085914975558857386910256400147806616246891207040770849090079524666487173289202992447083220524058979579194604856210052060956255430979423465350689955694902688901823572232872113648898636039929384487256471381448823562650740673369181378260979139834719056918085452333788330144005813894187570715765248658890996334391156868375261525266953025629743545700434987831022087736658741609901823376252989684763313522995780136607110627763968236965659633465158546750365408041781332939126065208340206615914689703679844897048862096301265514879695160423189828969241590248152430213423455250465615639346910196387574030438172710404129730806813813518946686994592529072553764388371502785241084621590654647555899964653627960306126217204209777581390833060758794433465696209702955778421212376201338410791904309325220240359413814037373997069243532553069013917884351454765822206221939123635840561865559015886980193194365638885475905993759976904952116976261038407150083652343351899174327344865090942353289735483262127792320297535967479753810550783301680016774100090801808307591178175172168748661017702432284591328721018395802508180379233332196422287415322628380271405830152447735591748360448536822385580348191774589814717059068291574339264442155695379892774336575602926800460483712782288041912510772958462395055272199038244301503064513431863849017963425801801470645647712674246504983211205730104992787842019208878176256514548466842452500208360998237452345250121768672492382725251281953853290704071907750536083157836929215888015635832480520365941089546938203302392444643947969358341472885061275117350703585277421474950911567837728397063390337393747080605503905643388795299781097652635773871417820024539354491602394912298026210908217460220954844481725348120391088040969312766693563029257654158690183857511093553924871741831069455351794276717383757902866252748576726577258359112164209875736182672506886254759153370033767609324855609499092563283355143322686543248475849381939700523372322867802587437712544232724442647425748692569186174317465685519203044165566356977226390479956639099227142409020336597670322088858734152255229680151399553941971942491057679881408833960561151878059590377958458443401375927985438169312343586682125814763061286587071744665713417755613484160227332841975912678364555645300692813853061159590578501697019609488446164629128824003779444929428549563117547186275086603903224547549515847355984681907192777482854928219054718576461040362645868535555548985946295639397134405680491479433978556134752416106379326899197943259778286055196064776270505239434618800863219452073549160305485642168391382250011138508930900023004135551223699116991384348958259611409440821886065666391876140022175783870382071115198369026367114294583198535744862701347964613056696614502360781323012322049514528095613366323164395791401451621036630554353337684066960452160414409837463614974783295442868465287924532470973878982526046814229720446127920745472616526013753857083265833084829415622737710872952943091699389863629253987655405088058215245815658757005311868769669426245118088269192935819041939228241824015999888850282904578694636324716395613484155504458626915559024469334669438057681522440150337889267074970858346433097013502750127652757627952569698375902467184193351957887704501279535296331041276805509571519904336299738368469815886687623187023871317097240423583480551992002117740687189172181050528490228504919515634454811222708629752138525973848740496373044654616908141818175708489723892223675210084405507170607292502121714073571772935610960256633433115814232627827783040686706041691758503754141877975314524516279273948026493165468990851043343442841906139936513235858158928670603902477948289180597283180325688540240220025555916551523964654582933765704929207720136712708186435990966502635099400123977201389221672077494948192327437722343898979682635584575270435984156247341876299302237894480932403356671071110771656906352161521887617441703275908898421152082149313588970301271600808020096071188409435705775625021854714252571393329324790723390812812529599265211183531863476285726679647329200018767242533188080986143974932852665537239806802857740932733399177201730254108178860777767569251784880383466413438656624572141353548335078681907778026952278946993143915327841141201082498153918602864959688823859629785406822784663311989379911349435074917562053689467767659803231479993668039108181206802634355501179080695161798570302492619960871659386897376097940785460359680659564954340214352559908550546940827267112489020906260519916896928401340114521930604990377315273712129872179522810931959794349679110337281527513422421989528138733397341726828011038900001240045097980153302411585546181012936321682766854019767750186681142669883301346315573596134894113562887602916416626740990446391108009206446204321813637220880550193145617426533320082403899135439071382925139364225685363953043815996738194560414368375311797960622051790964260745499712228231585542588862442371524432334350288277532621803082820679581655893939114682838411341776041184883338042369046989492511672442475291932555637880658426802413809803405996268442960115112551012667149974252698201015985201513492683638988652558722128473775298174051573788677302741310871272614760165015526271683694431318511764889407933149395844512163198922821665210030836903965036691600606816616497743609016145020208373124853820469526965872985467811443110469094398027352228226258278449199085418658248353298284997454778302169087199791989336024492069824240709189898516918997893966383177104018714513214183070749891228097210617311274882359923847860074686050700067332831360057597359772420591216163979353935798985433180309337121482021599395281146366900569314588042855239901125911875925869288430437118103955984604196250828333491155934200045823399022541806006573192505136570205880021019821825424762087046382581372122881163215453912353419559436222692288885642284903638731232367198446403898353901743459591088571796273910821270464313033648596371678596344715329993238677266439733038818812113276125454972884434097308035370801990877337560232188014806536595707637407027985441776470387360307462863579531981780317435032207740769961838010463682109678937793174237063000941998384788365355340137103544566900066667722764074211087674739001645414212606361200946632632903405026871003466885856212647943505949148675604384617343108628344782413375907584427545976656372964323452661526607692398931130577278620452386717396608277924200363915761266304791465385624350163785069282883924570084548581897767172885899248646612976212725987781052392807085069907869617155419796159112766090143253768771916423643516390754865305678730745532199103624653485024410529512894886796476621145938340602787047294170581668324546062147386911422749252871995676224829937256556296205399330304802333752153939036088864339535007644530593239693925760808443406722353984496434752701803092230840125040911016839235418895774175688665725143616858556241273356674854192221449543080173875262744884487122643164351942938337622770687952653911809426033718871918632843307076991946892158919201949438317732534674941692610431082866973943186047288681604745931877762187857960814168261100106326768297110913175375771684321626138672072728198469946762455429491225117883520553897191656455018102635449156560688978744880635345606093391962683737343116297419123166843278563312074041410351770861583123114066935680151877996994430571961826048420117564309776522149036456253833882786636911895981138319007832518811143938474588029821017361173986559626787029768177159065904668934554880017548654055260228592367819975548150063567233548447901983919921564564890833421110947010705187812269117889702839843859828677265637555467743808531434525266829768717453114713301953201237000896484904607011580328521249015217990266518443805171617158269793687471565214407816571130464390551337015752632954749578878035570706383882271376216036805273522419781362456544878711068870639170644024340141250762429741073463784592069499818366841785673315321757892734820035897347166789728365432545867393002538385109799581909828544799799712162106953582469304684838188200908282668196141357253569836255635929439858044532333480059982886001943855926759381214427441229983121414481160859825039763423122664472948747232238329813458953041987627149297406830157693617814392090543523821778409264810810232488265614978668360220145410357088879783715881523590588343786152265415154221445942500747978232970956963544881981214926403164936621541814590887775793977058811693859400732977936227158485041842947031266881405065845486867770421772843434224983114247252434011373061227401133566107966623442698249270783220694557750428332512102158743948123748261913821226387904721441982536408114508690403362141682660794035460582247559190533384506271745478834674969281211180589000793953811426151748860652222949089054936448408464225947749556913069683715874780689094958642073943301277739728198449239512451575357203533152458594729045954753796732270764363816326737128685378551123616737524135289005406910213292685947457977892936032155687610638156784444293073864832318591796062629788844229542044328568651316629706443812482654903556562170014932576318646234820443921868271133806036441052230617156421699843228334623029956942275309342433662828752659485977405760944633110427922941350346783749841421020372347165334996506846483456166793227832122708019997656649531254461119052595809616467557621036820970015663432483755998722674924412060708299941517821248787488701068030045687035622063969023503469262821124342492908349053677082201980894279694594363820430741770622410574565899318554919559678073516147983828790111039188693247804674427974545111068043538099660806679396845568232210528006536431025362734566288101518765687085961019599400883837727890326605347307278469894726740067247952133141283738657593905493336780001834900132363462195687805669313954036980106332263391140740414574947237446728312489515123127369385682031945900247871144540541238243305945659387185084182021743965969531523646240285192198566174189998907631034298656837187075625902545120651539402065402100192018491425941047230444693432110845412027066321655138866446302514191057788009636777427220711785486100618829457091667597188555282651922019257828993609429768082667474662561879975177652523953313160987875427967785991197123907713400765976315602518898819634579321331629088063899406721985997838496602825398680223000895927091002565499421776653505909516594578473841258604472402648635478487031395857158829317057260021991491576056772798316548088039510273706292632398782144742797394371479444160834958489655439086433579181543240793443954867158376910000861467489483636410294105641794428795912316775023719125018855322176280172025338959532890515582865318690445863790160253305632873165175980609573551244905529515850457684521751452203356326484079838233167863966396712928034226362150801877065458734673054639682641805831726187154592453786661441252035203398930246978384720113697244320520467337627236809564119017375019609666892580925747394036591790073296457548939159981954384256551640263844321114376562004025721781820183084520864001944324792441613900809153477586512958251244115899841360045425918670650151536179806990631825751427714877460105938698992325148166825865072626693644128768630962515751653661177397436318642277732868940646833233249157211931664254875167725474556847348344624169221711864891620595865879482036180384787514485699866582517286496182986256896826816175107671184588091521358671896467814921970834592537491971479055241223398836554212636238651842095404790456927652377769212587704052148753754061506090950403169286858715686299735337835055528254200297079613690836142734314519717243197469146248036720754313555221510464868983811979857121831295603211720570421896203189521746634792983823605004078305908225616434454711993316614721566582668964981041062313472870512017521302108407542405596015481440399362482107385662532348143266693872956813916925871669630445681715161546612441242192142391301250696415202567830506783628006186166245484392138060003709963003266708078675863596808870269779361679283127227147863987135084377245667145202221766504530179135691581486836459576611395081976804066414472502445498632704819752498076892572017997027293241640439684584929770966231270270328262853188917076525266162110427301867970687038483287591164145854533909132861606456770468028695875132209759381267779944713038927865552378195161700020949873167167614890353295270353657186488064220009405434224449864290567123297133729560170230031184823364155787501868819908766744261617609784158371245285590331476161191604880796913700706304315843774636498572837798716438218033611384863716608853186588676285843947658518618503259882699876539698074777748791991648269980605076230906909753501441051995226070215116613505495687412053104206096775900913847919590791907237141717374235571409932451400343834263241357072121245992993013053216323103254013234074998541400715618317034541111679422854657893477404998366952021489505554935438416558669746948324619966286494462099086720683871130433813001384700133712020574690164100582929108234856285631474337961015273213423934525499823239081312450828584944761838212458901099204314821422258290068584449931976800870429871216677508952137928234289311713195511816864807658232352098673286481613605145499314800884298989911457788158245093232615238576745876583180660939117483939920358276126928446172314358752322171137786307820243143264890448003833158927609654447320568562858355850220102327423884839726212556550107952608965874236073231094163196423855557162874764604159866156531527678728064823220528725762951207038204721459543761849116129700953298305494382216193175169555392146329000965807469632275774193893296439525143491898797935074751088600022837746856774912976171944183273043596265764025826949547962111538115815063426297074451559143575218266445321701308975638158436690588912133652921497008545151627147513702583302741805643221517436728875739777386289170585068423098953759774661074058866693540791209339655895614763129194493101953281492751038336208057124103294108851180172577288781543387655494376729323583916309651998483713991763929595837820087946473042944964908439066911859605958538945294724970730329170656815347023511454519591470166243614434609251780156334114504453132923018585814317969622054528558185148270868581423698766458820355787964986215516168397418910348623407421313727050422740987290846578625013665188348919209782394794784256786414951744524904025385836940224346784983762368454341348092837141425851033964929249773341984516502409300166699420957558088561328796187129259642230123536426640945707410237154148094180189848898006573370984498190312892181565667651602470895420021551989155720143084794508926548752836215032110585442928532148529065839761176586112585417287927475428969035002163907727838042208910399774026202788075538473939171799319661104865069035572146340053737403350574473940703109290973194118225564768357021672062387335101350644267886142313491339864409201987977918600803118955379211576984036006496733728176220944143773138769563408796700606237882339049222324710414480773460282449754396455319410510591162648498538804068563826373042074817885562543447283835325915239693207262478399846690680747961639680998658068450104535355359382321338259650563183036793901058880440024041349396300945459388671824728698781202714275027920457213559309555372542709974296339966600661359875636854984335379973723558426461197678368469277238183517043438745219630817759609887363585737043801039564685478365570396792037498467495659037049457110919903964775873458077495805400026192029749796511314686401527140469965864474311724076502171774444921167277401402172593854684662512257014432254409050223825249928242682425166060903736346816167479894635422354016763666825182036521813339177712747847580842840036253378647139166929456458774674296841287642666537937460165190727174140964496040939686362300363453823051387283180921387109178108416130926223493915955252394620895852412837525093040195119967289456147502077359083301242262101911913614056814060374088559352486610155779910825554901842318544288037168576082729050346183002871286490855072276203325057763211262368584734164987610063711928533136082667174221443399258715758261032302707601308132226544909376612696677682255115669228947162664185006278511539661355107037312419089958826738086897444185378675989148902077059168636149009670879862281187255414556833813631592235617013958498534399874820592421604961692037039692992097201239955210709221428377787845763739064938347482970125809734869367123523419815482514649995325873300509467833973461961559561083403528775609974992305392673348410998721333708087920705337211364542095285483364910473413086482292883269995309951087079368815781854603017999921620202355333719688485802989774665664972944419161304333069162777940269460824701600229350775038080851236520169981683513405459926970012195977059050065442197701783679570946033817717353383084235889811458249461071650913227337011332175090430378950494788316546033412035078538704502994706104454988492148820491437774598349543991947568670050222099307965923004571268107827951267777763581165139345344725305559328147833976974031649303039158573681227130331389133494781416498962678709732221720313740641517594173745204930297569655376755164907749086990404161676483797196812431112003291104964471945441829692679675916265604638765686354307272051723762886403271847379866915249255154775982335967717605692874026415390471599561069320390767788827386564660470219313663045271530246200398975819134018146841515677974233548997497302205381998195984631298687518840719554323199586170235219514819243404216202630822750800489466344321130084504017702323048882605603666696121785356190053562054980452031700626745542062136409554098101676598105098083776816238602767516905136867190068056275627827894234518960478426636775076068250188235110137543175598685704262533592454306205852067280337462590167816368898619958435284445718446280223816988151549269560953081063736369077423134677412146448716748086345971705624513512339845776298200311007235884556883710148414441861053722704860001522556825152245220556479274349844681813909703379578542956303592633327385268606713438151333039735533507709022355041711675621779457617089920397482002189438751892750578324927184984476264300859217931760307965056200610485476041427100075783572786210711956654452324231935268306907717760169851467895308019792168254757412407650721356378605322428453400489066083995140437266339562178035340968000550477166532529733419856395228568667170333192496897752680153377264811125544483661507399497659643490056386073380544987273075373993392140605978074564131217615893238440870662020084525147729049854564874876411138659861807304807790650316550679594954772230032769143221719134866247940711241878316918904928735055054715408067686357684967042435751316594324506725926524143047928118607138329857262081992055308183067395435691933693588607568505063260431941436390597510097984550411129418638558623661393863220687685309677328792033851443680241075371872621877797017902249918830424789235101808855352677557833872699227482757988983025568159611066254207546881341854346615034922736584664312727794693672842193040714678790000910816909872761207489595156397617993334455884471374640250369747120756359406495972796992228550546226364152517516089698148374264338451594562756831528642181570093662965904815207134550035621244570361325027000985883561488756142460908661842878564183806743109247392825124104653255468961446867348278997492832147780222056736643411824779193589543595885987516264785361373934710481703206025840271362557512832443946835451346428491236886614808786050350224050170765861376053389907111226632207267176785307164745713642502376336111969274187714048666091215070670785612142494549601808303096982671704412444531406849223391572987068966820293948948742174924460572839505432909973528839797625173409647467170462561906123544121425725511014383849314662135225027444598409413210602302169943390414547965455030209919562327241874445868471922694327879652952478038571010243579726487216319208157868387239519436783585276763800857503164019559613520107273627373967275974893737938224275162162003320459956412445890167267085302298944347037492666432004241162624115562858034019840931802579118047730305906721376687153510166569198544875923854865130311501443372203067253311625513688332097826412584278248253493212632659684614331654311679953202662744873217830444006122158995509897216746645203079053647590918160998164118122277723901747791260512271625703922724683022061807797150835009386500185916218389604680103275675407023592154030001164816281633302940103298853625843019969017088593133046851603241044406420505414282830419150618630340063979934966144856438703932973241024634306381569063467186031491128666338568256479297675051294824691724525375919034087658987954255298753296564171871403646601849794063531303207403832490881966753650004794793364194780892971902029248140145933052669280701567034507422855865773442571599474862147510864428752579593869067950000569200205214185869598555509388944620154177160745095652237467301967766140145881180072944914783032402382328561330546211527489987920606806846876554081022106662397500738623690065331053931418660046451428905125886003473949412412116796531562981632131909067641851415835975066832154724208605235726324897678668233748407264411499853912955740139808287677959793492451820515171283299719462648577653189340993068514811426201051698725488837828105030670884973762028575211657759887311332339986142427427503052733759052252275775970619573845307653345937805956073149066050932130964976691920484012197228550605575758848044891460923592048136534686685457404459131062364970890801520165281484370834137185990321428127321585577731743806941234162013048783086165979892099536892655501652564658720557522554770556092561910112666985176432185188960483991955664343541637234408943744654523574584534831041972267502133402498055669653910838384395233504859524167851276258448795744269754842343824490238090698594488266249303122864415847413656500845264158149990210382172484268644998781308801210499990743617598838170369282434121862620085667109207422810907860235186981487412727329955784353971889198438702828442345587653076027123309741144108370141373343627343216531919416727686821787418726114671789354766462619618312171934869577592894863858202532437043341756136628729798546806062536946947481699488248119913106361287674946989151954403926410695682621028898744812560083548881393313015124619560304032335256180795757676696138365377602432207479730053019862161895347012142392222864229033670145699092986572952975296604858438716252269726828753397875959332384522737719882037633934111241243421993594117319887018298514258633006522617389233373376471094278296951623755712256219423572467687533762035940558528598771512686303300011595179143778111759596481403712041334438393139480913087627299677395595942144750327383928578055747975002553473055728245928971153011121530385232818790753430791503433017402098651023265624629982948407658919984173768297032232173449602709922638272699742640975709205233206073437180148008877914892295698748495715761337331981909726708152954537467872527904171173580766918594122655337146500711503424521892158646209986607217657278553511131473276891001408526924374069014800333377888902980228038007577123073380904221941768436533841437712348232876468449210927605496289234601827219023898754215452636787264187889691976800596417742215136387373520502584456523836837842991408661169231157173667027174869006038071461748278316638243537814874853336752883740045649035845685447040371268831612580655121525554308846101586964785402955860371125299686219491403523039533819674192119873390697715971837768125819654285472134808663198779645604465014942752934532214235257325371010389971647855488336159667915554192354384116702733374546624201555330125168783766365585971191394579528216386228247151870311471442138596593988952325207743864269992603666349717801186819807643520943157859276967030045047558870277292105984900945651302884466189845169220877942459241859123201915274152176480689683227801047340027275101487456325673248768793280552929248245645292610383789588740465902213163248773171844038362912265022715146639231639683744354156835135418542442856213906354097836334506531232284771663468748201141405980410907512086053560096939865217485852261664262847846957660925899501306116415346803171789378968781450687952086938894488808190184346756094513543655658006955354136276530613019938885297657923586231329817988447871806259432060073078236152087761755714919059758114166252522991501291954576812735281283491045835678881116023750975335698115305500338595156468576032688041391838132838234935147696680422441733468696872834886535068023918390862470330089997154554319691914516110657825557345181606654528378346285699014735787130617630592554902855760906787595730170719841790155534959720936131982907543810942768498049145788799020870776340047431923175354900577994275404413238669294654086456099347340758705287545194270111005136153205598926417158780387428404667891251885151459961567650610346568199861095110503635564615115748987413118724754932871300010638771610345389401777404703225903967296464138028616341307467246579430536004169538037424393485619850779014041883862606796281234394403315522502404486745906625466876042478668272217350786624977804445143506272378835766084177559119451713096248496294831171710449638958627400655904546480936173969172718479419217163619349342446337015430321827655311832403683257537063093753772496200392094789337421230993565405915528277207243699996837525025493148534544039966522627635662842854381323964970122116619013325602206032941972850448386128694741642392482799301318592216735827004330149095480141243467962493063193383059497101021572950735556597311172961657805633839809617070746080718015405436001051388055072954195199204214534767941319021625557335297093202430387361220022689783042068760638419391324991093575149650612329307061415732279922050162248546606318868471613270852532914163760878377884317808454928302508877650653088337404241716993344051595087622674751286874916550660849332298465202657218846225858109915733259182205156155695333594085571219968042944880641086113861195756633129319919071541649732669619910626559483758917496237292935471709907890404414790887881503007419947594916509128171133270564923023594366928391673950551144282923376772229711143964111022344997872000893258921868219580953011124013389077958140035646610582588846325421905147113572333705430099225425986565740645534124853116696812152940460381017490853132214196057896134347610868616634315186176074846763958622614928856847933218236806810253606430049657155872643790345654322381339686155805331124615396415734271663946418402208858098394182708707465175243892208492356955987492250820514079691384908266688191897056245976462641732253676049610265405290195841259277848696045580929065445236755019298704221842946149928770559567625239480952009448129095536896729674347737160803838089877046868063003454493047803957024875635128834838920118480090718562213534695635258401842422908486190225972820210264750620028427171717849427125465525859608651190719936673061752052985985226446749985518400023489935186722873986713686230042417683293144886920515221903106804133164923489992573358563838216405269938737467475874326508411240907418137706066390182056148847827080380494537114008602524334121851229679878683579472417091051531701200697649576796612317490636372353786639687090254878685796882875463152617649984565236703494647234461512204699279229648097791590869798728390813583928509704517363171507566491304156518725295388248655666106717365692101374410086077680692392134153126848593626647358552998098397927770607016495130771729883553277187282145222838064597105948661406449472835392389681661457076348204274343445561221686180562277745088664275336691939729902460828527640123140859743363457940728723299572809818623457255460802213691332990233813150038687001076491646255078015227090642598298528807509956256699877898016703837613261621919268919527943464050336689008348910610889014135548949306237223713683435091396297393819240094460343763133229396219641892273624519089079778169342533187342167165721727292167888847974341124940148457864140755062145884563875290036236952342157906075316140535726472850662793510513146825032760404627600128951339350368371247016214511853983075719163271173874988602678704678216132452019706978279047173892941103194426568416476025094402771388408269683144902071243178865822717474597646236714897968997372704149389502342770320156735546095693825884040293286179080703114745328170386892039114164431810244793968404515811551134214378922419718490750006644944052251874071175013703626196721849728512417348660547225015698325193940598284572603704240838161890363115623312830900000894906618548826847950298083228278670773881776539540329883870643878708426829986386730505551881235498133152704599386591176429748367368470080096978249490406957497397578826539070143772807167866144684551078131226642530005880871672790238361572845260473139503779187621881658128197452794362844114434970753610201322463423787451264666433668478841006247416092623051573589612398382067270367294450253669370232127727459730042135254162666522767373068987881214843725804134119241979706438444226726582283380678001845874132317272041823559809007675803950164149141107547831478958067231929361104364208365190911338269303154533244105777837367145487808650119175617289597142241469228280608175967565061549648039070361467488581598438223455743817178435918169395801648169132909192272341121676108346338792406768265745367419428977651605557426480181008277367436824871312048809522781874198945481378265396481060487413774144067709027084173027021758383306402263762173977033845363831008173228707774878918675283168009311730265137645695236458805065474234344716176583674955337060427635545732056689112429112982494316185022421327089854623914637405022360537110744087986567652118076985769605515163233299788414461639353174689613572347020576683289418644337532090665318477082535921417422488057088406794545508183253290183293070166454703572489122326190313345175469320930385451179272028194249439604445002366413983661537367951535235051415531931898016650926451274996939242474916980782545807098112326679204733037975850324300143617387764103059717344133044755050620122814725068459979440972204779529070784363999062584274827978598945275816903922550098868059870704777778371712797450531903735308979117634097560853524976918675123764734989170777739981609096727967500719802000294343620414816971284972702265638187882347013223146872353152672984648449512706393927178148129386810943176711883307282538972696945121102818808367789753739537929805576666015605831836441244841698665834185141697741291272844154993767771386557326742128808183822598922741086394586732808937687522567897103675466155572992623153196638798629744679488052826708969771109943811937351210441193145188284273134015201336980469210324468024641582974717543273916787482221535719366990067157826263475841190429498268111053546082034769818710959986313767488169370333251085952048142870949699970761456660443560565387042814493041875923998245502715838718724086784937613472738175761743590433104785845179744105397398072243786631851942688691715826379712725323350086037590195455437402528611700772795000229591340544558410472830367187973968554953836408031705052456204489286188723253494140114460619905709374478160713574716424631599313685600360788152823097009225984196444104714696745790172214597024480022626737719826115338664305679103834222663971072289134631126616812039140782247158364268108942953384653225473744512363252240824502567297961972068460200011605336880645148247627691190320082967650357171426518680651856910736193481343027322902141847503115934466918894261622628353691124501449578781621681307249146634261094407532215688966713912527889454445290422291979916321980961539534948505495035295238927942441115424102550665364928491588059044081203812520138400513242776823347131674995644541855801687194780028594078272033420680476027619255548350150320398505759052747641612694028654452391421036754153434666633832681136148718279000095396361199127812477461855594059346281665553996910394032993943118649286399017289304613035752962620850160616380437719711751819163275223875565316581654248821593418230109255213701459464350531561843907601479104898518417474942727590635209635786532934265929904959064221851154102275736298861027396356236431017926934655402734686211345190989835719204315447959404322186754155587148692983271236069868756073359986406508026943348487155898156076581121056231718689811063832618781070708844712526982717386047153183050566306861090647576992514635673296801129560409191951343169355485476160256849398519312772356394418587549234460353198139599125313361772962608905535565510821904002019594710201671637572593216569597192908063831921345913799887946079591434046012491683959398763937779140821290007504645811059224143987147338018976543913894863513687301611176751827836243126023430006513806774282675253727872999258649738239275124583238032304166848784775024034415499010097799661600553757240365268956076298130201941644133643062882008595543968427024146337248053420848103907466683246922612552987624729774558609616350594644428224062920188204327053273925950267333976325993036242912968925301152960236794987801802339430819235073708425123099767855973641736955323956455549925720264310850915094577819444727255530683011988079435200418413231214083571743244617263785303699020279908178361127271126550954821967648918737499830362575522284642042828948045122000562880208230251315219550153145033280786955748726966832709192736916160123343632669067108247815791841824614472135976677069265473987520241115691099119003468639082531122372877320035781796154135622241842497855856908427535130482191070671593546604043165472984115288460108983259112980513097632150359469580966628567635874382736050896036025095831735886949975756526816571545779179817078496237253228444677787227673033715150735862484477353113775500078699582294828458491369721496941635086364856895567579156206230564263191646092433851326574602678433461579081606542916723813378259613837772027969326279455239496108671940200226225503398745146218556527053633836386739684314669083019495744991452678704974611130080481753424233149811130498143390070606117498360039952345169750438867904498103299511213510291214098751921954087005622267949927794607129584260486199061680478659044628621904068636028337982855613218071877679782305310003256843593698208797253258265651411902550072094357969960180841300721230080595927094153885963447521946073197962971890385265118425692161984749664529083738774273113772953114476302296461306340395655778675316312323481406785462503711127046973057657224466188082237185534157696561378625708153459776792741613258133683807970489035634196990362492631175919144006039774814525492467762763241723438466995815597620218768476985356940671487653524657262708820865438727565182375743724316287507609792549746116359920132648160774495185978130990064735437391923440073481083779022810955895183126578278408465078025562156513115949373843662716108869570058696878504820294030887065675649669347550261258713247980718611409508096098000699764251226248105955158878689521365897372800256411832184177282268590385018623954277812240278943063842776544959762609471966639391888127030308737963321746789428930362088666673807442639076634332986077785848274676898028606444313021244462443334028286170749807941951716174980782492558722264375078821136957353786910872983450550392300325664439237744180156771014513247630896784415945279496455844888483945284870165871613086937958152597262193621422004735591027540220215516394972280605449951178437421304507467785712559188575483915426540512000942427840118732179977257496332426167774024030759329250994572900160368916002430226614025551539668427523853927501464937142553131881295898506850276161693157268192792778308215662581072115668401346222309832821563153148181665479905040082512312083458004325144376148421790557157435152628122533821270682901988114862777582810965921604816374394336329129978925490982772955735550311988876357496883696660901910510767766873746866550798671736082558757564242242263092987935005327789399647755211315089365355746094383845052431964090004782569506824543386903741799660054557223052362489941488461026655773001434325527541545420723732844888959160245207792205308648367180827742054873299435100544551440022858241775225034758817987642373145648305117115108326753706926815154996225976387641310747658955696912307477818252453024805066200089487748917294125951771520900935335744114855424840230944105238646002243718753072085689007459387563575869747864335487592963239807355002490172480658946145090677162135775367806909715242263688350803164031261243195643974797550215461650759360090370953635693906180632646117100488083957579965703536636615700163624999624583152028652792565443616457746981182013187807731039670672388257077649479452389410167974569032269010390767500577036604036211407605421156375491809858670945542342012727704592751844481342414095582816798261432184522442602528231422385440363052931312114798256416855424583008533999775940652060232821464206905497321830421685162585517452294902435746776463278333286069473540042252934739437381449708962100772159009287900672899867089967729690526227233860647454412966537312896509906768448207079001066545078815173508531223474851178601102975396222040267668733869507256131162793361966661999828587408501922133201420885383382312921251583144733117389227774266721163373617638452907480045017337611708586434282180421422052051757279386082382035414426102596816657476727871795971615098972233669155327173902905761172573133886932102937324903752140495567159139738028647131739939704200555071260105298053509128560047492228597351805941667520532703692620251527294348838361246405976308608271131157612107974428333197103511202869906518378066108970686837464060440447008059544069147177593521811176009122396353727533725710109284262788618651492034950670820377396925591702378132086888146662733948467868790639218941722963305298309746499202754095180641985519776370954334332645232099457874642767479136862254884094373407667047556714146639844857232437937333648622412927526318714030563910581910724258657664992880817113893920933383838343500645917749751336354849597727982274010796807396192240453902543710221490628801631609994948526020383639426057040875589043072007326857675744158750135820501952247716533726135250443289358744826999916699167777162399375776975914162783597723139539477552337533229789061786471527136686228123216519706356724134472099563096455301797858035181816873836362673960216212073256787466079887132419975507977466172874465115195139932647555665970485735431036190876240531088185302444250766142621591014963089518893872023840487309215372797937468634733807464031061169571786945575707150600358101252725597780220039734536645725711919249566694132725964299828245177149717825932880776302011481281135518299307654291593535815407467794212333634201023771768505627363850194339802923124491052342638114819439521622409170685165285087917352090737155892992274807054612313535586885730563781544075940784866362392999032133356203575176982151590901216317301279855952832736708843909654487540706086573849532220766664051787124606488933709714709177542725116584047842906717960813211619873460107075451891489403233523155561987478274440665407169599650520549419551420435084888516149371694734095073833833875990494660872062173802209806096114809440674131481503741863453577245551218832444464836645977674371640808238246302371048612187586176852616656268928957468834378013520124707269316272217462876631700267723814889053801556129529696126697833508465382534823296170056730026390975137030619486371678521250415914225612467398418201389668870907210471760363340787971107201915102829565081165488232896761603990389255742296119799292887253725652434915800231837759622838953829895241450632497180892565865710437865452269422054043831547501603001095758005867352718711387951810836313581976238643605829363645544399021075772659427996903017735523106456121225620478854426372173421027049058924042355113553423245624326454409188861732931043570353150563514170433205016982941476882413841080447946753008039366328722473718303203677713918704236053925497013649561820806616498594480153216657248164623018915692640781264614408017074125485573742829362035572414816739912392149533857041828979532303363450820190707996358150207507537625371804764571829905723411287296663678210692016718727645863860510816653274438068034057579675944283588054130084070538437822503004148184233366815664115524389570651181353373263622829878379092404171848773658937515492457886386101975070406355354769962626798950827453601380817353019976336416187371766400756280036222006705662408223806838228561062945905270569988892930340831829269767851943786869758768326970665332878728845806936230118815548876026700788165876475796641161965648120328264501801963001422567856063279169369712968427722634716114524501456914147509104908921274495058437747156949346920099915105474292512451869610234703935224671686160270619850536070388486067554125865138042517643410618575991479696706540702117436359801812944440950924712553057297254725839922201433839473465437609157782818502071362239076756656934908176875153230129842400478858228908069434965672036702065092706532171170417990953691833432573307545120440722208188645304859671909756273287249765718384225436596616373694589081738172333745476721118705917757312765216271122091228515889210052415942598903086106139142575745829091496538157862294488700470081954318964170814021997939619302918430875230522949474831617211924556452600731531117535501884309510060539186377429512228741427611311450600418649555903616908039442012383574273285421563876559034392447825447522345544271906228780073882277092207104368868410965566765623484012314475293875032208699087844243196718941613073689493516715015116545089268648591900124905737063920542029619506685312455144182992012720336014626269790901076696907574209738541479818784343926516150346505746632806381448045532349552696734551664564591375991768223989846256563097585811507048428694993738981442613789199338505459849653794207410115830600239053204453995428399833312415434946021257686425650174527277542499732224496597440040902699646023489468511508013749608487679282453672298557258306572694100266125554837796154966752177843322146565800891257676019050550666493474932192595622988783843980392103074737934279668019653443156844657166097401813569155443867018954131024857974684799363182936583749543188329110789637927923217794896033713492886797657937598396079844270410001593492785614626128669161797425832993596994684380810389507259120826605950121490994977976637740393765143598218128667855217320763289181781020123294636453002860327625966408146923448502441709390775206461666880390046512120861284701850198357375852802446841391574132119030082918277198244373672361616457257379086814824053868637327912162554747553747339678433646568034446884751987586937408376026467319088975787436721344483036091926683736776845900046571333653685899024580439099028774393872083486370294767261283598124043117418111522815618489375430159637360266050841321451213748183613598157989385186738031843641643727660935472613995929354842662479409777865519330229584215327353109048005039064515876355983625537080351638234159629617268784611458058098531008466739516784542655771769043353226684102056137246015290028441768030042290870681488783237176210238587083189357655191171329886661685204775939361636509011225724220236483698572623798875155739191625194921737017946439710801316077570497636129717230400080741654032605407352235430485089060245191285172201407063434081961130077033680617174243379067386251423835645339833812890377795598295494997297801863938954887148211699491709259791947652028259451207651053082859626569380111054539281331282199511736275927559111596359819919475966321083494358661010872105899801448023214836130004956122782118919753205091561305271128196073194419280964303318875037751895037255362471656293675947754691271340653518232845896262045647550290966593754163008888831611933900894497252410566663010192909033081457520839641328666677583609296737519268740475270193769878395944199013527900521356724301767922398269083291990742503729003086758987426768822783892288584380800157373581156727910793323638797519370638507709781349380984126762969001957582664369715016620752101140678130934685663085467370948625719859248231667199951128503901961396700820487227770106945716940756714037282652271905324801332839409944164085171636379999448898915297826775906672827865344674981046302041496086956161744013517757778646671513967898567602799279900136272457718320320547683386028805864632654946865755210615123196204041126639089909692438500426864796421783842993353075020859518859343819231732397827119532864591511207421789434778776790226121846504401728727884672989720073456873805326935776919215229898922059438046056851126647261425453968460996922227532505154484875929499665190093436898205719758079480378359267975282571237718502021516038001972823234091068757886181413327599655714403213226052982334893729140569391715387258468024063399294349383696186033631928029634127903826624284697209108218039542869021029513272188441276207515606206383901255375022604601671968181839330876923401824213327785019769735010280822574312590948174860818828177552009498983912798768944674528402461186354101449416727760409781285820560116381500149788303716206034951244910307861072328226517743785923212370073078377276021495064238337334467003419290041307861708739933301930993361343406497733612602582441529514891820555124810045201825537992849793313567328971959582245217946864242376112091721382067526488290162914957119248279360561955106129647588318496769954555812200632411424040048315634108636277158329765984776862666956912722755648145906936491378357434358589888331875984189489799047900087753780305286959726066293198583732914648180063393806142043182266466223932035911730992139706536501570109388286980541225855031014324405260866401568369143221522007736534691426387914698262640955021575613598006965614482310992700236546361034744855717615492038873845344287758833705312588248004311356746950676750534633479190598014689675501234484657374043563540777111095880179343911815505499317887311847700608153054038939333036202229294060607089670279684914802906509120163156772257098929570348542870928235559320903967081858708648016602002978601139871231221481012807778902387149704054053630918953691149498284985051484046006849650332618453856785391074939413968731164310190256748893286587239608121313884375047793615686818540356280361583155222047018554459494573619291429757852470518487836368628771728245702601739321408649382355767603425919801124564383330335656881538185970406623723998080422788296467407054273772790383110554410684986838133137753785396663773773670977894009185331214620055896303168252916301490519377789805552929119576011047216827409618650256583087673788871205701060167689114793538601038803047837325311080681417337207981720074323481941039511161179616345184913781120156456910597786885929119045817745265839912291764165574384596448621385262027714909003529302459366580958788210980912883356032574397526309124054341230052195105095477459374765943403871425957730905558906747196972386321790578006990954449736489344326305244906992145473054476023526365088307118835066708796816738542450247303114347504206193763197296107505478603833440414995467414728992165648927345699575223005575381507616158482066194511304798324885420630932382611280025815478339276718163981367595955093230745825952960784275448957870511202632063248023685596716443621459042586670492710593486448041787626335406856915299396825524780905401073882257257925282367194480184420295051853592371299417858473090339958407905164711352055504711452531786364366676646848210783838200991563518086500403145683981550351998260227936921948483951365269489626519380547029028781519877773575277141894061933701885823821893754882352728621799980727842731650370059675549825457004382218851594203232880879684180243536785359692633042259577363291900568524084617587099637545130853569352885852522037072832807129371942072724609390079636381675161067420299875855298316334392393772315738863396299458215737695201916423837915339839454253255798806107386417935450216809953263589261062004715243205414536077362629859855279384263347369978270990323134667248989893450658544938698732220021641897076705146684833356096375764962735675119370235038617644495553051651086006082383284494182245026647719010016231139454416150649498429213375165106230759948776962603603543592156235412989339449797170679651417663801207335059110084257407842728010825742716801971511111679587377211883837860906857268668049842006737579253357230121202746739570159858718946414304213998665108015069856624269433119667157110311488534508059680440489486373366040438420617363969834710416295941576326390912383944257372362713118351621229762193488234281960155676679889499226330781553779827930756486567918975724410816280196741268255943839724975734939585814643125395379074773263506870961089053809719689174810678626807780250562242239299210696632694866761911862358812328910321555408258461976580912350263562069180707840926368087034122709752303328113962290737352104925530302194281998150519668476661277961218799905692773295993329955508516200277939638959318470291405850998709782762813084445496237602546143559451496042141704996397350848674602043896081973131113580375304392543462256253734178823476901421284940188454032964449981903039825080802147753117974844383346284673247233492478772895148080845083971493954519982921856342033269748332132167185162763850108154003919117041518299193313413130886702490582756895691233158244270254704918959676782044273159177286766690268363327406706815947016678513497746987327242521519223399587110540061704240246092455327381961291630631594350842653413529135689956617687561359692817300774832355081371571047041880028285966845535936844200892729604627997596179580565852462923047221547072374484900797097977251648443934526195024561470290260577759747116479109698093859760720677052748234146165090997330553520139332475610425206508564609841585040000479743471290634619658865483222740237902812767632015755544796336884181362969697172458203635238278847427913946707134321140305673142310379062467743755206182796245212487949576666016741720687564229115679393897824890376944769409475118625754026597550084654023661153178473251896696756066811778932079360868290598715122896256939519811504088220192033548127212182072780727109070566865902689030444360398883237650720937063137827169113375294635493719358909575040884701253433988524179637380200235850212275591011746692488820347144040440835962478806312055197657134468157740780058942123638207752451019495637798943423653180773422295891976764398910530115533577884927340262404945218543869101963412369362936322458378653317442819294230835828829659110139192216766876388017454991186136940065955737412532407653505145454337983093405545813073574190835470607346889088731485967022189485086365222157556787817080413624985982956791055610471176141249456626721271163097914102308468281015666280055098017473698849998617359752157678756666919360708458133740014655633633865838430048831138315362783036657636381078840095634988820575373992284252491986178574813257952913556100499172252905411005583361578735384268125750586779211156385444705389513232902219742401329764331070862451476104298038546272939193802371959100016400335624710240927425698595838050729946210872579322441733603991106727450479857462304117097011594062827222130044531209924718941142707977608128407319062778460050936130110570990807527443569306725419891602707420124555321048444084993805130795294006373864101909569792274440439860821941542124882324611893422586061432922803077786002614115770012177292274517084561748079565292551365633229748759511971388378591203247218515860427056488642771538414744908626019740008854782547764706252985185041539532931471450908910622283991176523063899586063338171409445950877442883376923419251848684862122784645265818931832375876983981604298522252909181064671441025424936767599289765011825411817363268686451689671340678016517860292422916031104765337172355698941210185936418087307794279282903285716509600995122807401081781610809698406893323438005796680279293338763098026057057395475802217657969667975332817145507195985896921013593673077297662825846970193959061685017576562579585890136108166328979091780899544200110572387033352385662048077489344300715752231725865122644096604682570310267863897493320117990871082253772076948748624752250814068548891839939036533069964204817561351135898415602716671922894419013576658300231836044138296914431489609300615241696226529404931300131983015111975508133505999823038297307843756979448691794137260855878557387575648238808472461166250137941518555141479622924862394123826325061029895468428244507556512978300414773822500856745009683628238345609228416601791398960976615518098102258406874386998777017469919449842935865761069304383549622227220513476214745901352904318432579778741162800345510034549158386508389567403021593066366957152748989541996944847252859750976761558259442780912260787230683503072077937255963915518998562670381378342215322846457416788122731301237949259020116164791269464003172522200408633266982381580257500173977652218136492424571707678174117316441757178638150618596681718345864269295985077578479939528880931211147161607449481900129060511708190429710836879369390245037060516566304161175954387941300957661465742266826095974272440336164339985857146678778847177330293082501848734455366971658770487960458098207093078512520555105397985376157570425596259268054609713802749729908290614340691292833710473851836903724078245135888227844494611119020459232384901861506101621809702725976876760337671910974043032975797217510718197144288687440302187310989003859706275609846533347774606165132866191638734113924993939462476884053457048074623395049231020751233449448450829949495490622074274395093282992087941597729090625455339454662725507508349217050785462786832456089515132620869412842449482156250548829460272799184775256585980197672830798230484582335949882227544044189572895331744093681485171287044961320068598996298058232233138834690166927492114188535807995701648304193818866678516229070554828997129752043582621904712255994429859942130424383132596770493803513522050042254826258675224619411774137050618286242341249202117882013848037642046230649432113473792143614591079063978287990772557830685187062181120712222556843049474153293559358559477918923861414053715200601184323963443493645606578225298687834723764671109984057492558313220625755830512408942998912351983725112467063438856373931341054745247647322553441970723396956175053378055281190879982529960958318970075684915896088871653085885768301800481108118692697388502809568024302077178068739139010153344102756719406573213340867357833366200839178977050205056987973962475790504237189697069567756176331772542714436653344523695651109037880991585354497537728507085945643031912670446829512611752160924609494473809003433231437486653141297384623222413556856536388362035391589428830596544251871217299408144284727592443602879719643889241308334920943598047760556368850460660318732392443326795679851946494898137918395605983186152789730315781482729765607714401739490203395827999479642390770444628914027610387717029446404050352933232316082437415972480896328269599853013247469150868285060373633851264805416222313785681715082867225621208201497634648636750879019915711821616471044637787561346203192957044755500592714384039759865113358046797878256705055580661680416694776198346238553045228302906644993629236192212525428874327417020526680849724835990607687430468415461760603664477539299887947182182787020516657697618377928427383188869593539400162391199664222982956586209800520963647418153627649792160967293576300088160332722938956028675186805384814737475355364471584030532367456214076484298808725955572825573487539323796390316578544460406776322193628439221404520581198333292613739620214145253084035789675474724449224484199111270275225006873764517083995901086707797234254465943262571290298628642645883449505731909525941899778994124660878242219729443844953538210603586345160852629289810983134359661385240642554865671862762375104287235515798808960700175197943383314264972260698864663295007370479349789292157787204231778515519653277535697752265176127191480644470669306234187101317683035732720611871087089581740598024321932982064778449983503293663352879382198541166091928287923450434496875800922805243511972345283280502790344207636211144581215957621901409259632495653552837128637777028225486439334757255322066210477009519333292393550375941834785530007034315490251089209599089400869695111747606880569895327060998187986690183618381789458172982414334553678132326286134195994353919897640728515726367529566524104246245831141007001946439912708205264099600376156380094551058642826597744705118310186936114365262391700596511841426249547136762578018098314350012050956319709840407387871936948778284933095714605215483440093661017170811331722209330162090123386120973314591821240399825080474407157709623078407450428683425640175268001048980327259492750243675589215660624775258763389850999683333270589469617365517283603450011167232833308246276996108461125954728954903803630769051321653561184938257839438698329868015568882405116246394313362450706230474301971914061371689907555322447521803405598955626508906051796278406733872047265115021561087339789724917363349933910853458658466767719868626855298400370107661694707244021852270350812200481801295111900142105585925526339060387775279807703532297835749052844120908652345841143377118088139038853825857489240033854533040120189450774313140305059363462843105443091764614957242951460355186847104730562559988790875348418032735650901915397987597887671883411972538122724976396407794970640358546206261526922444950137903803380403909085089590534235702016081842100865006317684119854520497535439895141817221237287234061171149018836110301650239878260950874681502597126067124485964654743926760331100987375805469567203144042915851490908785950438413142626655638436148885921036544470022018198012917474299081948864036559387820746650490833558380038477587950876226076766234758230691510736593968693851943143533706887936548252457418446241241695146274179018502849551930087713365274737110520959303454802038759868621784871313998149795326598561625105833626355283251041928476980368815746350911391667393815557488118005007141557189501351075712928315697990113559387724156725528313709586169446722952312059685178273616174216174100745351689143637954037620731395283602202762965582531355516736681272811005023062269198605576167652881998464996590532408562499507048897018110002541246888475446041153441341257680046861254424342237678723277013167642178938170926975021862904755716726615971035820930909064397525959295335719409663765914533785569447196029372684301572956165751904157744308733240852741735626319158456331582053427661625963149680655834105441451144591858862288560155688790823188888979225097452141738748813432153546380118480281529560689549121438412765357101289614196047435633984766037078560299247001507071717252938857771337250444796078778738991540058044941970751301590528239944783268644790958001053628463075316677080276386925054633574532583693237134449986368166682607574182782322453305641818292211999688841429452392986013119866214101544226603601932077156516003631900360884427604456792916750220996024386939157456247686081233843322949416902529012561786534024806884023627194325028531740956410795269938121409154116865519216887067034460609142206037778183714746258983123352847412140539127599022656610197148033970308741208390345580946532017348900248994731607658124993405163662094996699668072004739622928078340237846655220002175400775675990192612641319038834066634529451021349395464529512723687223491224331298291408301393661984373643574010380344936405471467321050466596529866871987323161092423883073842871676251164926701475396395725153289679931341577653726703007537748344854980041044217731306942758405394322870728168165324426749960196505629582340465190054624423989267972069484826571709877721284211049530008197795757240827096046246074118128553249649166687619353669516429370666197582102691446784187981816135600005812900295744870050894554671737830747200303244637786831396858774975383361700818123225941708053495082412621891604604213757377261008744521826258329809421290843885145603627252290809314882113466842312915044765784510328993128082767702417941374775508162914286403790280574434153698990257184036608585839766783630810452900975435996511834756322970006878238812216621989371130883195988964565680078996268880486073551490569394092576311284882426864024460673986142201654697678669118233006395513383833917843574650370919524779777785330159225892643177482915920064622580960862050732040301360234756368798775255094453753601767354922003839911118712080551160623521340733407617390170316059371269618129491774479694911734403317232412086355798002817986024870930434254711138806443228065617501248686890200354011268356728503364440732087900501404817062659660878454236206505359616602789584434314869326841383079550676706507008779181989154021386519986998426740454227083910148976470779314342886332498243156702294191494450684833710170439734250878134969519252254211529501062744368856675350598544771289787968855962971451538857894959719037807721915039734398103115200522767781545875908809594839930979145162187566025163182964031617257167833399434605327731761068873741156690641707382281971013259394852196566836778985391553181599681828243067742466800404672022553192370606623556669515013637080876135255694494082642773125058895522068563376507905589793994644433325724683546704538761716942671629504183314675513339854093118918486044289964542205680879511733643487939669148605523219324738693781882370586773924373300554948859837123832425689425531734201364430135629093792769445446918285789147074654248626451555173338273493261170953880984935525247925720027345442289294215814188922061317914151010287174195209670442676570125963842785746742787116008662705218961488538058158831323431036907382737680843503561292198367748530045106019380980604613940683197689541767062665619571521883053073996785948442860729985983697240972547514801071048705866119678426922480104416734736386238043492082950050423359998587929012809658820809486361689021258738128555424009347688596073094440790078035949643778315166270970458685976250353588129065218190294260577376207697629778380607587659707754983836690783693258516015921640337057153964464220222233898298446382480210663545100377314730377754011643848026576802928837666174808122586776541039511453495281147906977357156370535926295820040986488323690310071913326143134103502532221925441059132428006214041534334614319639581022059414178299999597902141628162408163021842464482676233416646046993791735771926571171673391494509133016235089613821591434412026063200622120727586250656884768626541419748905938808906502767256045864562925641601582621549115234543176658133025138681282752907676006849185118010623124325451540121687805754527295699178116867247954833103004869436813462024918585958854598026641137337937791305332287354686643846131454066690245213411508502348062937051955792337525782373769074805738900726332954797666612189237476893219665469663341408741382747974154664326802452555612749191560661675789209173242272719776554766059934561825782803181305739123412064064206132313752569646755294457995757264391378537756029869919138507419097703821542504245330399038077427809828422822284994243014606053150295972443203354494913963606741385408915551424651354337972975339344206143215479192363453638604440731328707729245214169851277141208586123633681141557496320975519415893809305830192696592436873806160161326727688472642109781262932415740087131876650910490425680575182577519199306269856004711180638403110437014018296798157594987779976810533024639477720011977522960511097596500726396929035003963157820885290849674508292318291684085735947876737247559732285034975877963342080995110438391368618844966332401129694850598472518564992529453475269913932117500477031362206409256186464682186792638277082185885406192264931421703268484750193948332368485089218371326802306679058034525010556935337679407501929121513517873244789481969784311030917075991325527064365793303092250101239153684421193980199382090257007569749299735698058590196190273568316159188252790303233196070134215912670786917710671407361539037335371001836380320226620749703973007036782450673689185796355327009430468006724872859534299691996836868916461531652347415833066077236874293404674080475946155863336697507130155492156470439378662341484238533144084890515569151980932761437190621030579809947956350071565525073992085521982388180173224300005323904425193768345858574710807826578767480492276311795716036199698949637729659548604489984736655279111329122182275976890847352826119792916095089355929024054153511243489098825844510152825549075336856147774101075300445327823223755418292945078282533961193140961205876107704231416558586283154296759858701063363484694184820565366491196953979357084872596052159199700857866475454766504446584596945741097244553902498823644506799602581238688581140465576005289339749709995866285982145178992169682144593000803576223231570351141852251566506385233759509050002555381142277514076712330718726239753630581341767194969616762060355779675228961354317759420773457123976698639430918598161411353028123431949885102522256116516965554579472226300010486439041424199143721754682908565664844173839720183601213299685194002055302143140094542136092457079067264007878718391155550300583334563739014080187287488424352807461120910345756258927916282658055305753326425659438115857482547492369736747411067282126838199558113291175588805373516614043216550346550110099032704477144619094951299782636864784195569611711784267259514094793756606680957271623696189286355984530280460759977218423612450191768079016911713408507055499184447654149743378272436157275201526998819130433342181327951170862027337620713750534743100552471482440895424573547166044377064936583585815300421394825875839839433653466643437590216829769740395870989158094824591217120433654269924342932786792450461721747002853834107016016565536791091638063474897637511544515741679318088071040571365834864760549531300898210859413837093813532161988508705494284851348507716463865117917260776579144975274287388582487550124610398302467755601023022975329595492609886875927701186379191128591868867338898164799751256816301644957041238379179069639986028247649596673680390934604350746515130023542277361443339789908696166455493153908808170540201803061320177264980487233077600591895203054432939644608387035693141413477351612452998976968049106988996371463412395861574544192498047629414275725637217740076211918221084780959840059935531100136496126522906582006257797502845464961676268755432501240807278334520781486859849173902532313168028330008720182964124249355107280396358925705453037246061683014738025038322803795864689117993323432189584601998712664675971053574789282059998290658226596396165648507707568487838181901617691289074918167568711997471457466335741136573430574318779156963747982684525754751608088597443979270928139558683002578119567551730816367657480581177183668004063221351924817260405479973934781403221619970959816619281793282864636582556064487237425007819136108442085580658408496522156292557652065639707708512722850024215536173424845746691527266777917801463851379057598445553369601512448593489646841987654613474995952758373881380287070948136948938497767290326170090000541850510402531866104310847552958716269755969517581338512167731852764048696215511316958632012943181616814128507645603607211328241712756196865609517844541665766901482148961842397633702332910503313009276098592331104397718817944875558238175747804666950664773976383163135832099445469615168376598236499351956655205190088335349795909030108230167100996474335752172962263113043952752693895778368676558114127747111645037522574480339664141906385004540280735611457414841515811768477441759211366468545096337562849085893347561785206038603338200400554451901224990662806136622084968009883570571068838483330054497945206709764333181378628173719483645539670750877069987424125997594099335444599493103070292161909113599142661304286841018746676320670549442180192376951948247877948956790590991169313630594039320045237348259445013047997769780584085436840710325136640425304976069360947324615817349429691973122382242436902603074526694001793483995682041865694829958473000113632607282410775762993186656957570069086913388236066245682036893321210633152281158939322145486469761970006425240988950872124737448439677506183635145842922080827983420652208375251747460186555249798488931657408511186591305686876628657919468826179296367902230752987285423282107995914461942260153345045160010583232659736961735826884231785143409859785668578041179151528444756164299596884717450196657511040549599357452762974055792251463919052521737429051708312408916392084384126030394195237210252642030140541038462426023115454579311674612372667907369939609152320387024138359646687058780580559471662963976004617196603354607803828761164699808728200887909588144083611552654360983937135399684670865195702944379874539999725681442542590481175348758977972326956301803120168881280228677357508026640452562992502776065160036316758218551577583106788397837635322533536493850867011362926465472812082217053697280811531266786204754335008054526782045331264272050403281991545146518204426338954548985752446311092360253761674409109639397247742709688451774303781069110141700424782086588882331098210207182834832401028334397868720714683684716126338928758593827888779739168655754749335762118889525029806000883559509769402328144576754449869129368229767490533383491065069372093626212694546959699992439370215550617322550141144307383519693991832826015052010747115366536199720519868603023729618943603301510804649668231166600292727668889572468008845232111642470346931644912716635997719471028970345450278620783623685959766685729290004012749333384765341373755863086297543958120442562228685114061745901405850444215490027156377033622903035423361096606761926118490372502372910408232264982925480982129312149586536315138533538534280784619840506932682505344887513837326444608329118202981158290950960403281540673654433531348839603319631762199030998156828939773678997071491909687297365088974297738567106779506979777336730767609558532418764303976736836974999092040260680873121509490068653599675426502608287682860295667626141635884314309528771182417110698184508816104401153422591321317950233313021284235054704358866568873697887221697782027543688759657299400327002443654897015045007480034156329390974410730733550821051394685599487154196781620288984803770876594800657651944753364494256403574523481236133761792704303682998279087917584928686319776351811876579539773823684414379963431400207202924301455798718235047004396552256224727815174784148280650678866936429458969640243105459324285805455320579914789689625935188430604521273005792847735324642169934534497929939030719391308664409503329048713716116215216517699062527299771357326924440648051823197588428085834209384588479339350238302174077707030276074372913610077310388916094388415762745479100461223567641685772010259319474793989286746917022264131142456277875538685965544913925106448423828711744291030087211453483903257845959209284950912818560595254803475243538458463464294490545459188174901399890202541806378703541499736513727013437741221019441643418762772216799769850785510452025442539454172096041308063760919398291241733174255470589967041641470169802601126540201569895720624955140487629120113559264605956068948429826749702949622357488114095751148032430101154623849924278498263431370307336783511701491479174138252935557390190594468947861442754054571108354867426437624753063071467264926657178175447601097188615697700550112920167863938294362703086273305324243499565261764385111282041277593993831384645312688634834723397742872835502894227519960112129230863401002220265889084660963458622572929391226114609971219787840758142587205804012616004120507370732116380947271456464825928526675084658238817923443658604444522882496485186827596797363003380953586104700450250485354693509868390878362011597290885251631373924634207690513065413886880176097806168735470032858466142802883788326657214735236467494395002257217538593766792042704298718332389653108975150231540228107397545322143102746232518775581344198546096736708692156443957953726184964485580029736759121100510560434282757176509933680714206732822894005575692310415803325828567908638820230133417112461488793055129519651868411154816122051634060188661038314471916376487634204688456474902953897703128319635020905739824249462789551819455159781229109827743669312454206554104109616391204347792546506901117693158399215856698982582408581104254373750477689800130484666594253245807965120591043026455107412124998316252520330996449639755841937564192642832377954443775440239500421887575672685291824543479756362032533594775734231938017563698907162914255766619956820669820054746464148393884273797904057696964361328863545935990808397728474000519493314218273679622812410132955329002230049679977936542653170575179530112394418504067240845128291352391574000307092581200224781493431685168123159980121145344572003381880927475586666776854808115610963936479835981522147514027703445012432759891787050880565784335947897095450139695030999787866248872823350089079285962699370543528161943071075377021513625287625873988821002451438441044018983207407302942765025555060504427453610673532143775333100101696764120901389203474250136094321490752925277438769411189655457609525001795024982633404332528687651390871157295547732337613738555308899094361456780524105798536041031495935095914077575972388576696188466186697591983376509619684836586191410731685550170112139749798322997632731907601069752153128760660318288283641911777113093474590806724217508772526184367919494805990481989657429425466936289396695297463487859437254659917761111274474315849201748493656506076498472416587261822692957543106062475678496573018026914311357394993961987192892047876915348139531026176320317822389260349880849089749770227176779490987294779265399000992044378481142345350631021477519618766192202716880835173703649613721602669972327785089129362737474967425750781290892887018659424606168171241123460605780160260004566556627231965014672026572070846310115068690397661191213272536780054314507199847590565365125768883988622785208459474224036453225419861002475709947780687291490855817011244100167706206189178875571581913070218359656002208145821619290428796025279251238483366704306323346065259291800099509115124058909100808495342077209882760572079761065913143248525517638112779799081375244829315123303007385170729952222655673503115948014547784376049699173643560748971900835540659064128912536034251781411574785128472100670590525178186191891018190795189186122323594327937322452730414926945714466471356314321940983857317259124881460330042051611371640493046515349681009671565468716455522905623153778247412285074066065654227670864346092330292432179343474405502635322357247893560953905566431931768198025527491057911748241937260704919688475762478246720529275656641259911455849673237634897561324457392018509581310385098541503267343222489030797795921546734593692527686671725559260305528412423584748552221726196247413328156723611841359298251572949389194351489566360088531029696215195308546541998848467742287216459974731970187795458037514739913958191640309696260862705634353330436505686084225711914976706684391029828380032892159537752670613480735241897682656031046184195891540858659248979846052906221362529234243655833720026395921344317304892229787702630758166904572440576845008089346083069388844376729145720486282339236702095626514532393393550987065814484449131498278202567796303892001888054582950348613120558221799666335442371550402846042824846779352223715786987717971820071289300156968318418780176660465014023514441198360958843969262546932139358143086952325807147782220648882865642726547826986376713435420386692264627284510657724922894472979066700365558201729670769197713230400549517160582946519785885433649439392428224568441226972336837980452251816006399288392118409762174281257467198458250553410560119680636815025876688545754822567367657992449841214192217122385681877259461360097540166606667347671270447599235761343829030754624743228268063975920382237801356185887597438094659331958511180609688216054065398757800160587586939330349487127938533383366437726747094289364246887183445808472536851508064417309411399662577065948580927216884558354817138848441666984580183910979811004392262373649103579277155604820015874172766285942246868970211485542534218589369984084291810894110788181610065169002605900848600175200715822441709229775274656712797084631868360280726560786491226416926762047913122725317736024026801269581012022253031696763135847412704113600022025703346269078893414199980254350184760018148379009238801928404344879173018103144042508548528268393600022503066132464329670376639876636249171987133695069943698846621239667794081860651237741485977346314028563443227719751258323353291497079067736499678633928976526967406400525064665912965900895678094744625268979068312063345008088101929548636747062591845982939792884497536620585720086681133335994944660348475837799256100942462922475373668126977742755286595240213987320268619041448009924909055141329123159846219516114789695652562272466280820725621131963224362660061883460681383193762622346690138782678010229985931662324173597412061471130982300857046794525369266021682918912710678745641005751836739332412034490012456978533216938388355350859456530775829486844374221403427187109756647187467513470530503753768856588582866002343347060211281898038297474074449440227190416821555353894402201075115325485537334561074763497968328707225761557137125602186183205038176862956695186581131841944203741259354736470532359199087269366755977638385514325593080254624564110276001949852904358566536727846489719880919256993162155668552728165374221052141915798344048327374137583447271532786646497423817667451532759648033878982756005194464919493293183224979780655286262792864155429119093640263380188588734755606631044776501236993075225963966126798413819808869289166105051704814401047292002494826568471605120960365147986243467658914063549674486863958742490028712396303360450270164820666008972741027225744586223868598363290044365104644365882361484126967556410517863712694543144248866233808726681028077256545743630614506960965385784751677184924831109591587785924101495112483784805332913077784753055326034308713009802842916848613022603393558934810900984573534877675559795664416710078131917906049507789508992834557843918142432771372495072966397912878267750615435364652438172660742420784008070578809295895056361609745399231228293022936774178262468379751953604606578990634312134671181851005792267306653596414734880134277775307001893035307675713021901075479173824221718179280810934313450341247536098489927465477361374820812355983481491335875305979408881587688250719762996718780582315139214399150563467464325260589502781438921944501258652858713174394427576787476110483085952349733384239846712896572146548394675860055839997189106030150145836401052894759450462091037331601245782288694579400177114802512880980228311334957331790110750192257416298023313365889653708498068664654073638336305850265971790006861612798308329301231095050419907335085383178517630578212529305471311034083522919479914344020740067887754257369168673912526893867084319040016439108013524791516350838676105360687828607165154484177353505043088565182908945281051420340274209321213598202574779882912446350756080702177620580713540502354551028457716494738024837782536555006416925750074288912608069198115962480989105882832349052328734848941376327029693163958358901187614160469248537695515702646286368813723418387098218434932072528600054426613308915857452190675300653105923828722837305726999806528876503442579550015042982858292559897492978565498355165182160663971996919185798644178951813136176422538078436485471262465513050160852311783266412186952056297171309451265010870311133043242105567769974121563242673044006643063616469978620507025401270069849508954513156207155650108902338649508671863947803299164676765882125780753764657216752098016549846006344842330814675279339829328893142739315557567724389941404322114270146609254746485710552045165056462118675508661235801754637978347113589081546642495860616710859620498835339403147156962075247744398828053528470173910700884840931606129471134040832369732009860820291000784577701773045372197214749210579562088723171921959008970071635657002113251497436988295592861904179124615955746646445395223740031306660420614375543454225845047949765238081649511845769482863432126850991213325166063860446259679660084211595097729095595956140347474915394542808975051923707864973911669466307047151199208324042951641796384904750065794171075255435663125732422105330357289784384393156705305177533233587627067729508313630240182116611555391422951026151640195261377746411380593512635758295348153498056085604839606147225538024897927161645624176914795718744615925219533031878797133955752771866279489670759010695015605256517275337672873923544120410691119979165511189971615025621179678699592200251426244877230911770686842371573988209635227459903500982758638779925697133386324495921176790030807772666539509316560924957489451588674680104853308778367722972989985791654046731070824460701848170858345281716867413861256926627158641488537955591034470273582678856709612307217166742470532514510045575279113526009233223887075100971865605529166729015107114882342586961821311939407144470071934333553087398744143814688861029008171830467004070050685941306241326961603377988611711089158522973099496510272817779715499706940925623764126532267606449293461693820293812912039602280588822339717118090797039006471781362233347858947346429140807340946585270437137178025667188582404141776393034533498265367995765058403614400037257316040250920456824958221766834536566818328048589354998641506378284477353952577787515945382098273173052446604548973846890219447016803109346749468400577261424423346647367822302610370285074738619789294986510250124653318669526466139668246574058813327350824767215320867604342816735742407804648916893402538758880548764408882718219827034848154044239397126413603254652115441402370959753321011074846391736162242214729912732993960570098326284776487654786488358418236573229104934629974601663612937555570686715224336496369975968450717725357779016427288856462387574668833252738616600849352535798136756434231489339381553264088522196389465770412751292523509442632145818784091106159413249144563256758056758282963586149429356463698671514046195034387562595969352382516349491177509074174197744941912825621820332711697036625190482444459475381828743890969241208655889281376346090132501243494509724504448294722202779246277797009131432622323040209033632066110136245987225761644750480181155001746547539663421414636514250777566360472163942091251571778757677798710666598006399697661179187804461818633829893722345912695848246017268142354372032807250929405206534627918308604498623498675994400802740847189050518799405141177603037716780488705134076832314103381623433541662157214505432384420733397847027786326663070875294223543102871833527353824357852103434884306996025263753081773192451934084109282591259147280689741693815347430097394936314169085687429784935038805553300527764403568111358025111806681492011026239695987999275996059520958776874323156579435647503593549098336428424324242291042264739706258156798391507951574568038266151847932764981562993758717806928093058889694363480223202538984191072650032450151780832392809229106469045770168381010049919055023542063369299180484970384238214267268807141180630383606043760302597455109668855080412918177791238927219571489036389158455328329784686907267485895239918007496158610859254208218003707940729850003260663500862275910241914596899913966737470322700504406915766716247010522747126596555721962100799174679640394260781388731550427418228853410853139484245375393803184847846992464245743404316675813114729285693799490451538978619897622570030859363780690602312550462044283359179611179973044084395723638630971759473659668841348455217779272847631868931779069489603236030834153054273393552875858496850745110493946894160164759249823670629052394703759455525732903495426290717765067621102287925674891146116938362694352429816919975866155312769196828009678467815145563152847530307832888211933060315830797865875781326393425872549149290467913030437209087331516990024974564441527242144618345118485431879979060010642912439465457325460904671974048565079472766584775810254874433055493277964322551189702550128827925889983072170415437713697073613381096013068959118452678633635510477735004289937087248996915665338016544957848194159596090747257674860503444055172869597160337637057793157211712250276689786868252913046893585796531185338451972374237378841407307498832518267001094119554912648545212013442583215991958910536116013416422968551727515491831757291840631172070225882754707311775713853579016032887584366841732779810188333756695482237401564298999168915587860175996903278332519002918011779693523870455740787262060458060778159148440784856946768280255530621582168713428442410458216556646141798924728955721811069816170972228504977647375822739928744904223548667580969097287319489847838944543370841095971459444682189627022945677121889813251078269228784409437557652680736490098359408451875086001311652387363494529252038709019660250659592193172410502108197467103183300330774753894827017483241652879163260889236554483547093156851255674666654520656091927089279369999453511420497018357398710005692964368150233522322444509107703443516499686029210661646292527415027544375372247439989204453985569682343351651308662607994617435510404071037070795584927086197391585943389295823974359528279768121876242166960828413799836676633775643930667034571953348675795133012998796968242713328743782343014530031807180707420956102180591311795743159502442787988437250265616269942787649573476795963106022923895773787110447705854541101443668156364307488686748904209028689086165909771316879927687135537506653325994982337628818077406261568020334487870481249658883920138218748610089695235178178790654391940480396120187155965204628674548892256909276067788144272825404232098568561534837724404672054900586325632034918415445011453101307973405272892795317625042256080056218632012412684590115185194980744670383875281265919233268936631599117492599897284638444690965870643053557576205268598115393314496322319532622307845959461376929993505711351929469684627802984644697526780861477068225112369199851088650065818614461024552428673805800853892474366475571659990143395727988027048350790066401636586863313805409426763150026706050779155190207616061910449301118042514986043775113520121033681477756089932851601764885138586749094648691674202806929526311449846822553186585116135160286182408596063300138783848904237711511757056720877451760084056681131452572835629440640394716460786048915974650433403343278195865959734436265822650539387132692043951973259995327826496485854129886831827868560658932779898583422718295521022824859225357205284577758540434309239419499283238942597558561522094063204506822725489577635343892606880934595472785160538389195531074300778915969129742569059670260371966515152264176949555038989532541261119542870952485619010730178021605750016932552084584725334032926194609742089259548101599017427139571276593621326906293750303534144515069691353228332129765009551731884777466161659954587989381929608106990342082329626660887829325547135476795776314687784265737390038552004716609310923394627781809995730899650332967910382487084526318809837549838904421276712655608615763665124880051333714722415584595689537382473159640933416649240713983759890785131782621437524018721765031161646414995633490874432330660096904728538915335297312013316226774054097524071770618238559673774077632065700230346645263861113347613378606783660734078121225005749435742591759368914441976435301751486629093863973737567564233087478054417420215668975517427729321079937370660175975857332432154607785771371485476059423495888411837431451472374749519733554681079141100147440626313167212419331993365756849791079250221222558163416904812343115090152985598720528994411354169974021146526804054813921156236403242612277533642744680381549525076899532926276808386102858126823347392711013758492017380579738934271573144070179327907657241286055162386309464704530220513001709060793268849975986036693753368016448130829905719088612201751687137113463672426041110473315497648378197078670245462218929318630357142903421519806120636170848780166375377114177312236009527337702290746061463750067705741769804790412664825190605258407430641932866100886927213172946421420405981628009577984913104350197234692346106585916455460017452792544083353888046600186350605460892942059464975152572146163441398949598325162369120272338135348423731187684686761310822386200133054935174208007305131313442565907590829335201645714543440257485052790904494384420621596613583850642125142947563737861418346210981858037338741681290977261686553396452162110974871323253746095835452283641368779131002258163161173402388796487231431697514349363942104519481136104447915820311753461509116099244168085395129806803391922921393711463356532570637537761760627637686516923001242152672955041012934170516132745609874373925870485380872983854591594797411664033405521405804100898805450275742564855080485590232573250491217268038308424828681164831789666900822633015598830524759809319338988997531973860570094882083235413579582216253690153798961965708305032362993916119746811610949654697887880460270340931894542305542510095473275215972197036439727998502093423533574801414809420263285846147031216233313465609633936469787201567868620820006136585031331821339950053197029973459294079880109499952259849023997375181293279706916567019836352185686401636198980827629184506262796477215535650477983273667746298875898996349829231203619797812940490832586077884913602333556022800157316678554739977538182923184789709372503823888762958842916347290654360507506231270035602794778787351331540906808156349421445242511453755045957190155340557729071954772308357140703882133886695488354322509661986647771044535610601825420535886842136252320417691499513892352054410114661295494350345864010604209135832691136976598938136716244889138186161000694525814981210646643313483779612481265167896258536690893884654397388534045893565977972088045007435905614320255024908037003300042534330992911895961764027990729851401841792948672899603571102776948739988078556615580371070852026607758238172228233962662172891381189324850832217246859401883815665543991408177775324404215396075968608854583020966234150542568796942384269903928982346962197155169696165285051508851267344159800674547573531319046129383603780335074891485763589666268990487867681150628502490940574066363129238370627767505134328114252841654284762910698474908028557493943771950166140382577897484764543526158843654314253371389364097071559282953844141503669371261875510822524332324496434623300680963817919683159870941938966652262912499379876294761696242733627022574585570195748740907186879788816341441043857101883908040382621768118713935576877045620424208283159603423309838856822101790057554273563768949336238876350391402333978783711281170184426811638046487689726828630634206669266969552699269424217462758278008601725002189538087211107647961250885507250265741816922929038278371579547706225811449291130536670869440981780823146290106382267912128346263715851681196967949788596835367161390184837670486419007016301539289767162889890437575513041485835683967017216906797186903110668395059535641349993023344695165320193843926186971387022914327681336926261211641515480367410402800376822482090644659776860857644396353463461082948674365430478393141005505458955931851982757361610726717211899702969078879981740127758741442546728946163514614376805838052616549500629254372964297944236237276742920639129837104190271967843083987852768757109716724453809273923594338782348586860975400020816866729430550040411230486336174399234278867942050222123795332526699457106282054664540379157516124682875778177996229460892202335663246290522249160633328197839356613864777096559354402274843558266751004099241158186840657449266872054848280155493719177758204099314973011153396889152611391471888694531545553216910422342417036501492563002317577593755150053832484120409552219816616082515386180153136172311141626547143706207751715901656297036749060462525995984894529970738524499734154642046593189227046638636167350870143963060216325690232889333503298750520884746751336619831711616045945817697454839048362572666692499251129121578169743412442745279734203021456570271215066788267884352304893386939376735077146441660899014998172460907961452720569427174521797309995233852749593734130415405659504142816192789532545357391287024539660679037442236023570065935197207440223311446929498231401908711511914163955030599924244583305762009476684818064025194113972301370512122823206433624985400345742582547190003975848572908551125854281769047456382623498191215595971559356971319565222010768837502716642223847693397213328514822860329844684595889739513458208648089356446274376114560425499507491991414833933384037639781582212974727362580489283227997714029052530893198787118521627926357457376106134182681015519420375605890179526350918270820731176398988866987308884810489190937738880610806123693315254829010495413472555262357200768212796016985823016490795455614401431335253997135083242367123931222085192821791472968086958188074475617696729276570498154990833298024608410712983843300515437700740280782333940113068129529490972719219274528627776960260470071854328819425667250069959858719068642835982425589387159766401010470243942818986753332437895616583913872167452257378226470484398447656596172551985753650332976613661571867851657663763978917546257766781414672902959917163613111420636373930171394388124630740400992191249169428134871600353688231101469279524567185453851044514796914228837836485952750180730122276292607297146220752968078029320179219989826197030562109380836787679146882096101324595346396629656499569024605205925414316736466983863668858394440530544397679455541439210393137383929734475829129717927332369662640538713268859756512856236733273975120543906537472624581438602035732386372782216377618748069638129181540417078987953489448644452947872533985943462631987015075971591332800664344610402111076634625697337317518112553117958017685274376162467301575032109696195059930580676402107966394632968275268655680186057409696631243974919032713385080300992104421626382261364259406476413692947743699336848109336462215614647467859801444719234200477299913078566408777525988530579590495463070441890897079449807155474411337250340504929100693812255702518452007127586004595589373953161852417324399461881855402444038233323758554847720301966610543610090122719707613969324010614720263461558119756420106684624213946982757406562666222869792300157584691371858986415739892367187748989104706119797188527288108346570767663939663130497826953475292369024185006955248773424194622666141944253729170920294944023618747101162503208156380351898991565566265825014214780592896948942949046028152839397404511884925484103710070872083448559722398802151505886381670050779737496816874980448377517111075827203275331351214459350189186199802077167757744105494411160934578751609047336775613344950421577796005073392775720959738107750217636016343957160555582306899164163336698124294498694896460383595909723359143052870805395481321148309819637162058961410341286808896712365282436874021733045146621893518983572088508196039311793574007470655618412002977943538444041213680230076187697336647184219514772551137401351571071055634932513339245462966395864729708203485067455316462106699521248086001156108308426347574599789618866947879182507515509850469898678887915699675563920347346546510313644843547927716055554405721514177152726647618713854567721915238476597569765932542158697861725770641134844862640307656312146455865501326432385755683618652243780936533777970378846125197199727386343704121925718651647207385103982269516434949873288640163564415541247411317546561550758849745697021703763324667932631486155297697100746577745975176574668831692847158110927331373615681720037181003069562859151159060738591521746247678167013157525131526245100304831109750657675687216454700215898860227807544359380954612392330329591776349150158774080748120854437836373136496415254671244196584249318030874621821646003965219623198866049254051536652400066101689298028602179013706940134533030406952475774474887842589770458055393592115958624142929989218525678552467340493923197611002903559140038439327058661909821323726448801549759792143725882380866764669422308967410766553198190646391953414822423508259328325132325872980051624194493851396274119265949903928988364688445919356813072571696113110143336186089837087980655166278976869049980002860047125085272592413342163547684859680595467035538543730115129906572313790252999829966624653664450957806463415290777777371791377288127565566203627053065961084629244420541350636941907177278163089950530466240036831154348762076245604736344311854002159490125599159617369875990989400696586588934470789440878682267739273049569603265522570127333471193680748450475708750841043566689685071979618221865946970995898431347604050654999569516625338347963063923508095784967088969859406935350127995248842527349018599911584817148133731794822172261694044995494068203246728450083513107422109462768029206863990936151964202242033650832735600760704785672271094928041373183195360440391671640509213947246791643688121358589932557938780397518767007226762325729589085459864273181097260913601161222204743704669676518095943254075350980938552237847453360389764366171566016746819127125448921176489181755940767586023179593710985296053809208728714756490382254610916436677354938620456716864716244633095958081648383949836324092193225992060956400782426993449703382247076768585767743152923216539801659802727428011838034346821446998661705348779240693883983620559604711736647131838887173879161008088828907487843586819714698581598355189145022170645717283311894840936563272341903137413466215800954976840957406324175577548663186946274335462455916244581529776007260226059506465814061281264606516207246011291832653115190627033958221004186415852374326498422891494239008952036570713663743574508380110241563286241239047549427306091833398094742433132455350146512898513773019205791478408833100931436923150627774340609450963550801350584641203317154196869010474410610359969817096213239732173331874290259529069129098006855929283437426602670299135602008863181723195516329972824258755136376725595870322661814958111073734949259617501378758485843247597835196030778687741397901144781105069459832505917048800206203751117077108299644948820924106381013925828572552978438941780503176106454875892835881650506769664513720827007310613870437843022240923662666688140396485237877977086235236320747439896526173126796414771626935750664790871150092811775143882099700971720942018126029874581265864222135587365308027313153848823836597801550212679407706844502445564146765939716993410914523685152838921704610235086179226231751021501217885604065175429141576365493407770300870736093387216147141134664951629247852709883543951575633560643999881680506307716508637804311606836130380590266756568715967233560079075652123358607386602272121206691662033588659668252048847155782459604393279532180032361677928978853952954682475743345001999288391773232079532497935875711184977726005117439434171427699618618718357853770768155481035927449252426231744435425518902751703649916217099973678822780793028100146934000105995040841176988341378480422194031677987462756004063484501784176191107021656969369058362522676817268018823350212259065850170532454924076792948822012042576791955626390719392207634541365889951956937315362708100290696645326106312627968649085081903673265412604536770952402488359463604039459278521470135810356184839412328460955047224716655099319389988533629462130699586823061679265555053444315163796286365516898808757297084480232113946881823815988457161890721989063147370014596849068234258817265975348988463414452311162647856969748687101522607079963444112483389902659148497524495432252921901099121229622439624150131057425125297344800878182606880925367242388766040912442640216294694537498915236098814055183069157071822964315521369522928035237451952092581146528907599255967424352916792203609508637235304409389233674057993687028626876445028694845943229197681522521618869638107504167236611848742886149611460065320909977795727059623903344670152124929306265049151737869738137845868278245479639717429352969571564638991689924623160644225757274182970726963329509700557917157984849026706532820442511590491803849446080599300819323178827083444192897745114694656103612948974177417361007188928186228746626350547294524953244001810623482021361263102197580048920147790035119893624411994067117461608861187115456574086958862485146302497623488608401502525537725510365440315195861602536229651918568683703658115814540929172367257568912921559064526569323390226686265626411685533973968661353590186106774626970734888705171483624501228120364931706077282520745655083033159127110024835859878577252463237109229861525919442149781140002206593337229482467497254916131348220230192358242776566019134031389363694330259721150627271156016671401208418699635152979301571640105734165747099173100138874369972877037526064259157168796316610382207163645579887124857905753275183433115089295427222852943211174790285782365137551179351115348793963939459299492810523227424337178610962943356760549091886696851972132465540633209149087978033049360079944235271753117041078429243019494961912998467654261113527163570781001743845985331124221467141761713683815534023095087064426923236960390774762992252612196184121954073416860700264610751805447181280631727009587170682777510959425117107863109096343095409804986652879026319161979899602989372929225429868881079826355692552326879130241002196265297973352053307972605889967100551998403970138625333743663997523308127344162458154143520027713051484078264933481326905327800041559785049252303193366615525327774863329252814604517463221151420731179828181816938790254981403078869982810816319411555464810360212043756284564293447942538030520696190150482159059454957727472775304062131672141067874229270117454918254560834277538490914330532705851631690047431909426949945934226843162465070861213572337590983339426353472639413156484381969378601669155829913622236299695259393682329947945140763516589798267386655294902159644668725423720121042143292878465861352514398538206676738788567904725577909974703154335714786829814791761682219656554005879325010015091811838192147620537871006134153032475927072405276225150822540275663579589557689810662453479492854416025176076720812155498064533092729574459227877672939871098784377208044870236204432413353937428515129659349711564654829137891066350383290841914857241171633614128509804832317754378828836219266532333492136979663431159079930591718290641654146562044284352711006466143742646905565470778841299514156738062636746092444228455525111795122731218891334698764545535516315353624508641613030607580992620093354388844647281033322961021583397495812693243011225402848435215089787211751504771925963316302873592222521916194672336462129278750700520290836445699379387241930469970176742017571952664591911126845255832502232561871595115872041143169549574334982719049735796027817501795774380375065775248728457927756842746328177088259238056348128831171000312664026214929306282229702806142421620680238922736851642657542839316205066975886909868565739701260236692684268813770338098748513122387558879173880193365350327269221020944302374919581853611399733878339565435228040904208443744844469673217102575683186125147356137406843158271152887337030763343309802751543814195855517893432939563477849466036853303425935205901686312484360757495528046646003561866678352528867971352316839488256036592521167114472542672080301522019647602501864722414758580558346073220414696734463344998779006894144966067513199894228217997951831103515941642604938243143759780373630705611075049734987655198539565222098607471762073426969234404345742438957205108567937458557343143759383319354438204114556511450176414546052410419759662973351865693683513708736176525307150561317757093555963340312949608144126809369327082560233830146710172093565738423281126233293888830958554700550009710421259985504489813345015415253228631382774716810722378658842680122682102436896726751986934082125902998713191676525922381907627124996134573525794950613988101689220636313511588469017525980599685947387470610728555244562581272744185100089065902381534263135636202079490471808551565850323743558381747961808596413094328994844737811928257092099105416106790357085310714656644435354530109944065428304739275695431005726300663292141404653074141924848926593936054631399112868026456807552436986170908265539938208587807902984938493606172078795464186449727808005662694277370180601046833777895438104683240579902680917140344604328251379466681974223525249091971027007358208336682420440789612300864591352534964100218015051759133832730754379024849907442500475422950609106377652362921566085292116928725601767020399558757716431503781001081911945098885037647563384997258226802322978589901872200787228303383258298852898282534950713353985311564438878204131829154015280850721441318198411530209629422526311329986741785066480347968619993517739779463885338907857291434425946604848464347272881372610574609216487128740557972822002455441966792841048033853090220325638420172009561957343920724599328551779762626048852813046389426498981750984312553374672594476409270727766327335924338007348707179439209584446633799484825555319702432985359085705434211214959824890423305677952545256004220566973703283711963358730484937699933786881649536053532561138285009514456221439699917780281947118124598478640109755354083494301319315649937951469431578583576599316924919697662372903500823757948964269903603371963784875197125861023200285639208949573793514416978698714501686316305667546964256594877966283983961544130713508538916261511760713710401398759241870521462024815824861335637714560713622979503380093392764894459934667514562866231267960248638182146993894082463398744216331969074863570484593864954164011702196721647177971812750460267610837342291280744394513432885332828153894017939443051576591366888614261080742385326914216657206659082910491149576129792054408647286696233088024304566132885233022808735102484769321003656278456041662591820720828558213006980198826185498885997212355589058181433531855231519565969142678936360875875455603283701229092422869918901606006046575440226330833769725222940559840195977065744163834352428695776411136788327734401414611790029886990849471783542663103010882072658750030985537701117925633055239507234398185618970806729088933129323587862363386998749230536505947720853418461975019648548348281259717887137305119529263905371836509552167814829889865178365572501254111151032051103025486468855459330352056405344512587546648467694418691493814248189939213433068436997367954462340047390219671747312591937965396680992252833784305535239889839994844718650179386421481072981472861773472251372297615507666351000899254909737699804252266136113253336982840832133314906848269769398337375924771556134158624734112372802397148880881075951526846977358776542840600630330473371389458492670657166420937665246815833528587881864658523869295007969948856675964250849240430916125175624855645566452493874910580682746831194610745096057994981027008524230303421576563815521437200468659561183162342778082679131957150156530902649864927419112151382558846484423676204714664684894404609572685092621683387025961319219529282237554481235173780653206578778045571269672852342318625945261781932650840603856659230055495894673657634492281743920102486911133716974476018784661815226612741273506020311389912865132933078076411987959837500782476687298659824712020743878246752802459276740883052041074688682980209497591225815433046040487346928185089119809852418646363899909058125971153252917532582243468244569056568671032318787814855095374912860102644186505240068096097117110440036259246822002255982481020816735964170378755814763629094474617612458538024062433708223809019876254102858354137362013716438732195075284662666239612358087293526955235109604209445903167733474053268672475912546831988282680317356353930693621412950768504015757177619825530844239140322754406412522812753756491452378187703328262292937721179004714459717567262087387471416812010677235605773595943221270197909777062149834039172066201334020542621625010843186799886618229059252339340726030495716497427274229166496478851805935520699531724526667604236421427716437672718059934422636853937344935293730540380881719799582813791154731656597811476434597610043512876630718746051278161279910877531819934396031278975768660436006302682193407931220761871904239046309091523759265699309832446728793816505347075864975582418465540999990144640141680677910458037111906245285784647529076094352386398634840728729614577592770099434455230407488875923939622409946780029063876791410422418558705978986965540995899556786379891672338414231667356439417599079786805522183313299984921747829529343922032352800437757508300272540503592919527543034405909813841808783793274889976466935594807958483371429607215813041127750654355037844540479464072705811017911062397857977563271328064721088326307450561089309929594383298909723282118211497800780790432157488436616295952440674251042264607786737043466535690541141528040735103785273243557510388163269580563739902118885165077662096574426664274006169283281249956782205949537410636716254881000725015983648118743407308981268812048875683660135298714766822687867574763376444087922293203557727666029779361083933228484659425040100868541792259234739258515669753483021970175702964389500737261281559800686443525544400819445244542028508519808251576610844934575919263024345476794853561700693245363881914540102602835068101868421777986043406792866256047567720521779005073251090041783778732523854485429560500450191785469413650417595603741525319772210795294204041762128321171980060232293714638623847601483676497375381265155719976536765051536980001144213551136065613629096850323567909713423105284917574818174223169851012433642377557718352831347303737185228087771134554531803571928780595174383649317298240922804783575902562044232741680468823662921256437463123563420594306103216119840186555004413192262074108531201756271200703474377285231822051514960103232266294893621109731852417316292286477002740043001133603519994920279316741357259443264222296429906000602272589915794350803692171886907538720934916434166530463594753637780497446549121420238344888262393291226813303211478266706876798572499272553359055055209521783740456496365583287380787850459328794833797399202279865042261909208384970526230801094633002417780842420020883748557261430308496268887446919273427686499711137522013174165518864572972829541176893960067163927071847077030736468156900698663785500052945932645467311235022873015949124160757430729481650403587810375672011924942029865457165442524180187822375042596015757159763806996230450574025603871694455948678388085676353861980202201107124748246718012263724068882659249239512978437304206573084242715044853242641209651090130635018009952371015339495942496541668266718109974543120192629123469234877971429354521410309523699656185902986123959562662332626463723447271860927494148738284206929105683214179481484301222782643574167807837972379517643279329688016775312887359209375775678723251887552178621797616057569634547681832224240263972253907388733842040580445323326571758849903984184505147649542896646809495574303574050968901892466283943290083113630980424184823341737866966292471642727676316614651152471687182941903473694674887230153563939190409347658218953397176452795919225065434835925019462265013512865723177383202989736364541817455767722622539623762977744040334158082516894726517327715671408572660115004740087409219689345792898663495984868678295650779873144067919019194674385943499080551220257995114989040369688603281826379008687759045241153462645033759630239789172995397722284539596474174876672639613909054789650880333334527800875912453803463885649805143669180635735247091221460492299611589577176708392372491360345681454954756609610618392968756890225636496109817919722491873441993089865264755945280685726508954968780371266452267534863593410051735054751564348989729408392119178835705964747483819881006097285440104336437657404628458936620226236566901372104356064527065739558009297032128154335222739870970971374750082935296894815563091385414253839317104993896767484095570258242916740912391655192750855729441608378986585198719443534436539210760687114472723798353324475113535286993193833553109411218760526858186366987141091766667358266907441750566984142965907795784825648172896780816364846278884251895362898221981046996774302456034596516811175688712693134016215479851773041572956877869425698764061834568390161151121912370641837497384867198544054147826830996009944845171401154220494035879316377932974212962887092433463854274777172319601223993790461167900722789194958883325335822340878685214221673232475079495120460074054306772135580854449379989025844781840722518313905775089334704420895414656320484785687737933662281053335285018357871692340539224003365625164086556129563381648951559193021301532745859193246206206958487452427049415195482040915062085879783086434913639873598268442977116768082991246233912786875007772680333667207765788803278523694856929976140790846677988926909319517231386290036844597012297561028731450679022600492724803643482215300552582133973792810903815088792855356853076363078413284592584115276606418674353006367883482773112648201454262620211290277401284082248679963550697782814541500564356496975702244505610428238503378776171237252519379943504664501856429129644809357861714457178811156114836593875723100564097734572054555422782446211640921262223679878007984235546081916477155047679487890921801426783158413577802971560512729027951691800798910407232898422313751796636536799702451343504360757930676574848596110973530663293528587103418854900709989779912441190668772178561073502730998650822535593807545999616839416450854952770528098648847472209961001290000798562436679754826041973452250723227518122817214667658027971659795894086354025222408626367861629282008800467240721132990698005324659470496379517897048477884226535924487166246619168283454989141516469813900999174707804018015622464697027221213789722937543104819073789238173852623535932841646803757278329255096613979125221347765486100587898298144084828211328372870142175957963542462463227279569129564195836424620085089454733520469809285237007078933596472494155262462921029260908548537773702167221922167043840451208859468712609730849425177585411807532110186513382095702002021353270578513157261465749363831068205303504633998861309451326360073502466549239361193523305601389325859275657929830166270150143847901258609640557696223949282570958435928182365173930509140930825882030959689481691513741705609959806345612097488058503641389624479247956682734629747926029042772975016625151508311162323597294715432734189982802720803134973462708043533275089188062850646943926619595961833565426520516889402828506453605828577085997892394156533288677162187959074741522595817778485826910188705845429006322668332587949090927537242095127241255252362636733353466867917516468039931038362784254834943300627964708524830712929063406122184609780230879269230004373910707012845766652252524115187677641279935642431094206134348442993745952004776401776404324157488623652046221143297589431526782047633064079405213004854779396565424235039593829308959956096917248391040391732361863327068361215091257390022921656129517117183804048150914409520991612735558727207323698385500724569196129681183065501137244941990601068602604752747862967653399836456232418179026395298895085975820963353442133251046661045281491311019168646967357900014061897881362725096395617341540337567426756293250035783914243661652971138079093486674029395902843568964211102258087111737508193595784468918824943944713333553734001687014956045261563724325145032803377170495087660653620733762198883549189615603901031777871194629114167530653339354905301851230404619270009943530157874266306583088987532056386145617942721193712256533950811591023898732343563785825140685018958743103046204840805029174909900232119510825607175772344709083895520156136706786359626864752945468113526281889265438731217714136032047009140345733342016290786061669006650085070374629305169244576228355096342123771584585431970119067933079997904409408490849141621290916700737760630054343794045247466153255699087578517251353562246235540711578901387142689549917517948459080231319430184637537346532824929495541172824033493966429848252109308288436458663753551687781024553409460639118633651106655730326034843616933085215249378581632506544771971549606163773851766059743771737284903694124141338812228994043454734087987073020735467902291689310322970235866851212428803423300656702239669659417720287339332797265687529868403929304016425622647646651587928847978619695367335434076579932516842365991871765756220812470214278310193279907265788845053880491287515270689728507494335533896904897097521863636960234241189646790340860653191103842219169585849894427167718267943511078391884682222926275492286321256643259000845717924394270412052653200020305050159476606517662159464744616505159309900687537184836985602455169336912197134456833911937313240076705452567016690631694890330653671522318071036974941969458951313396487959672047336018264855789310404269306793827977975264520506992224321885184586555806784755683029843894834235542153916879796708526669262744756044790853106386055570431122125248025239842201170135087624152221099060516727833820968840286263724121511094316939118636325426564081968866740699867786480492947909048005856089176540099245975805566157424811032399679148593331972425695948487975194141778468739744796110647838579768916353864159220813529529986429859576003817951700807493360817168213170675969706138259224582429539039573424501113730896196001900919870358974442840993289014389998992160624296038796434525268501871565823124394620487956388246822540491787891273667021956041206289352484858889441164854103839161164788587611830651696579723732150402145772561624509089669534169040773740434807275130876083679400038958594118981487382501489251773265851136855282947883182189404375979838669584851775831001946792349714225245388209917908813053700685080145072560107061256070884602646373079500037703337620682488328119655273594309337735705861096794406623919236864221496803295960748493595326000505925373022555250702892318638267829825568862933318286211109351844656459327401798568133574420219225663951643386505941255035189395124944827473101461652369992660109519574475149246696134743336071214522915284955588609458204783507525454437131547020289273058377126189712082947027653095946383905728540856615872622764130846335991912103125681902633593338385428606444862707406041924068224778283984921290614621772092904051213346525015797383608262415731050318687635539581688084600697400447980941050053077860929139979839516296225711695092710561985082366937054473219608465765456397354721144087512400295061752379593518457223635530595023257014043663085999075794814202844049602080236114964213169203643429671520478871155844387191803805956225592330249407833024055672282857639467843275163390389383220258052663473001038894409087884816472329470817941258066926847128101888146833884620868196607777755951558768713491843433337482556985477315374116148256911547653955883949057003383685764281434028455201024405568692437915589297560503797195283929381776996860502253319503879971907083108467900147825965872445558791652308129142569137795218219488080235844885334369719564646796940511872783956231808131556191835149584630440751547082269558313180189964413475394709793983397749105689732634608246806405970781442785309435360737093808131985630435936391351187480011791929853278186576834486179540194019043367901000493598272469875066354188392909810223850175364153230601892167082682452899393718783029327946804475429517096010662030373689734825484000592999681337988400659297891439960851337051929439386133668650369670173217671840040901758764988461486660526332226905026193532843766804561543029670329182940757208623188314252702155433859391105144920939220506206002899526486302975763345916752866819824543700622448530331332234214078807078266653006841980801229643301131258405203022661282595369457598692533480082619857736766360538168135695229297966618047421072626373804857334508059988614699790525134336197103269466418009355284648662949035049340613102790278373550609454355880812630753971059655867515677960647244859427999641635684684774460484038285105748165920504892527613941453386328743075547678952385628853368110861050695690342665828780279753790943474088424582796806148655673170549105206171091916671411316994528618897789821177036675262003098879190569075230490559679438278121103662016855660689345698216370532841898734319001762454529861996337973150884754052224797902753445949626884883443084021815010425867002423707804661141295286794709570672802110519201990889576526406582304647544602221939166997229905890509919715880817976401722362289950517071557924094291540354207392620198624825020297472754558381372630474615207795041484548702695476860610288817386095530732043174699111266386236763232255791249572458612761838222625395236523608734142887594259409044418543980434798755945586622072010381188403185767967731290301038747751041536396564795249863568373016569344740405118339602035568750273983647701979566769590683572126200212371909062012202207486028984015728786542959213339065916813626803401321042515698810897002691188602882820244433504056962319733052831145047109839792955141771877235419500796441311016284286238030200647365787175652665356268209676961121508519240775720420908852501854150613752255461875539664621540175558346166804289654321901538324647917967596836038232122675052137231680388187750376885725517001068819261981807093918986999393650216257524677143554480833274766482611784704056656596847371154062845266572659141354228065516744628408382273496998371159942622140953657782968032761609853485782819961505055298406807526602922423310853258528768370423662550710137323973088561163853041421302516204808391436847688413516928354845919619557761648300628752699882209098439423548412854760587179757334021535628594909307843324623832735326490264276088022783924825528404725939692169983846661519443945754031479995427813884232924673963082810042912004107299671326914843126022609870933407658739921413276435079708891782440499623723237871822898589265683148232068726429770616418900821957690416457783132640687657671833381566538803949383867829159049424337377086404281887631337400990718780130857989133042629935628195869643763603164507539424864580515403089418189444932402371435706078419248888981430686800617318903609330145307947975186220915850596236442524181999777489795435826482063182400768808950029584430275876577571215112793794979517071601445226430760110477711307055786858252414049755458413711298453384330716765979052865866488697457583095770509333424970942810576432988001822820156811656432217016329336262605426118313569831540798958411075470793999727750753665049771166807692128829450921402432279036672265471663610501088994719690143811907293084257250228880846186628251269392042623816326358374237848035456454652425942272659706793145667047967130139987675657739110703549837053083389309604016353438833178973280645626270051167357594644621437427203184257995762575045681166479741063802377628308239881821975595991705593687211827670105529703847500249965624136397954623986490162499873987160165433962475438763197577065340146604380285592445528674024408686523765342682101138555075426636173199202685533726098602995929588094571400663658795685174185543043096352434716957969693676070318430490076341756502311958212581852507614791019737205195507872874273710377554258999191092651152638886246014282456039607812146749262920282326608821195021875865246199054386377103080283306160121330206394348101360830761153156002142857264686027517911240779365015963744335317068091478556945371836856707187815785160680657678802635545700413718096152188306283228149602068164345573914499064331731817844256208219737333625303593951266774810796115646295976920692732280711057939973382515070814756179431796722199169347461900805856722394201345761077725976777957598661849548516086983401831385333302354441528324839741540050043882516341047661757701253548822479524650476239805569057126095644168762718745345300498854446616280229849440353392232920542758550109304364120588401494038085339582159280057039684292690241488117264503901933041323337405169985224577072435806897821074585700219655931924049538238702475410352222463310714302566342535893436339277633842311090143632440903335322248503017253097660492619310299433617691989871980393558023488794131577715530580211634838456083101402617589161751429271055568381100454624657561068184225088575005931998629718673420287174847587371839750136867884487188442350531828289380306302142520368241310215417307224367100535062992095602759445691203780642715396473850427611767964128380720087381652361708675365243133189539290138914757661728438843620310318655533362307717532264635935772904596385334179505332640221455774533856407356294233377987064749076415587685286847976424002970614991776994523224054353272600527018854425444134628637764612479538108309883954468080548639406448882584651862302183650832686707771034527025809350519109272515719572760939921322694666005178100383569576210399943071023973364615724534417508943453450342330392618488957247178078618375890902936577699208111832952399371464854807746804188137236384418749260004581432850200247445462966426501268925172909806933282531985032830863913138671153802604443482537528474351669227586064642810128188223861670888468524156286884810624415518461411754455021504801831743699398539819085607627066002580322528598366585872586816733079817175387471292593695209678013457645486584286109423389104138701233213271219325860988220786030694416965424009082473259046758754334612183591019458892664286556129857365851526238396835318504928914330177442790432551813453269107128306493879070860952668372924907427791927016129305794479115006049181404029745346570273236548577978057423953158107101174125822532220660123886832472265825548497346184008471041627230323472184493776473263508258475957993115439351399626450543496903107499159283887530859461248861827266281157604140014488150055847327207841107479675684634903588370268437686720601376920995420128639203058623677781168525133982501700786619524497940351354574300121188953897198118627101862481988219060857448069783630071470417051373775004238723601988375371128943762184292132850188521993656170488437631336921474334846293671718574395726342761880627492943824725462948950973993454121844718835251131407648136156474062754726219576684515869329804671132484178062153728883155900605821301719551569352164318649554778750867985817476199771598953427419615444542460242268716578769418562209046469115127432363245199168171254623784076920819549117605354817943499569166436532482346465471698273481385674132441738365080025792225900199683628294739883232200988554052202529281313228245904791699994419575597480222498166691947277343257247074722103506533709439101700446436690303991809897579647179861520885677728501278244408559780822086010601417931369173513787768443271041821290216752914440850891692803011780897705776285265261838026059435641009500466539197786742900079554516872976540664758158049450853823810481955995159268182964431387400097194776388175428263283508682240980981323647735672181680058935615875311894906055376714344068079107053607564106710970200806850582808487936025981632202509860760545645070388394348284187252553078922980779349045546861991363373124819937887246905897887977169036237924122018234082564713762697641830647287229338461702530528679726446102043018788321237346978316654038539014676913665243666061150649144846342378498799853538558111812829822253122127943940795769904900232748857445735159743055444552320180887598409169316503465080541126916549410940551028109872979368052876845425936020998618581428176155497340182721511373149198944032701023424683689566322455044205152651243589139662494150819299429224566369633347901541609154202454856911438668245655792872962236078070947736461257840614437050981195159472431859765879419747542699140857873021562612748247203188659899972834985207160915912330542492219385593236244644350014321235460956256013239341555456962421074271303874557378875707638790373463240774119904420027595584857892283198841429669526909701838669909045194342296941024909655902332020384957557004208542255450391469590387715189893058112247577631843149930225102000276285678318467908125514207670173801304356687423498508666988458966223598783818654910369568597538366414507456167519231300886143496441064074828990174728681416160058538701987394222010699754801187406298355871158770541691400917636111195910474350130697648591626522487753049148431020850971837066288085595262824968138590523908050896998109302730210107421401770832130340955296157444267290501394323284887045662313966926580677874516850638131837879402265631355905967415597113332016102419469190633261962770011394829634395968007101377907199852208099580005668486054227681723731181386778320550080347170910638747887684427186992807363974061995880634818028582654777437741989772217432814532117258423229511686354683206197856623630079510762011656886759676758163236061589534054340882534186778339418647328626442788297441406026645119885706625184343837984705233978554110666389224502013169179978132198816656821680577844261938271845489468617845364562057163375858719705325977775035053338481842165793114834008496166489173181644113895159567348375228217552605758717230631629379957848589706646758639049186212476357654866348958720952851192814762019536666178096056240698071205459925218306997714158919541514698118303252960984704371925930777087386367034621383584306414680463818961811506056431449029347612980250363264091121671237753709109698164915657124537884970019842155552336742680095272962364788981114424934778808407413198199979081936000940818143267737050296041312081403025963025901695858883717941598700561869398127765278241036031567886873556849198507795136514205009970384085345861009064045824073075105034344232986062833966183003821599935659745321518353799140692059726298702532154538057789149878458143927598552134419901863017731563401494078227290217012270868480767334432633215629522222405868122752679309235871614091587704709635472621552093892247300172679887681472376399254133873211967856533165546112712024900289621750722290082445049749347975330489623653538430151615356067576839945637968000951091531294832700135733611374111458081938032427355548559110677640809365600099820531415016178745406789295860482058002766566445260672410750373989967014407806238168179847082265432133993525261372232197344593560459710512778550862752343342543366534804837862320793697126688356944137422073113069704385102327908315234103099578273131417298567728406747888830216320578395320298946238802099557093963621215136596863880383118196466813767658439464028826619716957561803257595514754604268543760569559810717190538811660092660141926772325645751653431372384837296701496942145720675500708157054927368507783656524000301994166510387712729895035415208836607111534456144123389686278930736966114063886064262952335753044513198647823095740830121223930733433158367481446760317483007105288739880689855458056631921496507372671306015563071541333797386926689040086407723883783363099863863245200106511800328898995277551728788484593037005819545248861628728746831030264336231356630860522436677263608418867446608538978422238594706798082099058317524074714067009571952548875791068765371724239866465849052616366739344475950910798196133238382193189717249661116887092837992616085576436539653836492111216159928791208411972810251296765672086144682446365042025703788516136496664375110934765694838977249564436687725242305636283706670465136092237208142938812392852796207457004065129521598459625602281050288578691411949137204548249261750125409934914515035913508299348839910576039064541992596872571621098327050746729705939830099371918414128067681615786829134245125645702983249484511837098216604123175694067834489407022567678956501095803588640661537526030729413718746713297751220764188148225659405331692802815012820779686198883607504558833381762764846593110096971982874507681045539715177656026273397711884197471354665366804853286208065467630770726555926274725187741442230530400279636994393058478754511049386847233263945868679322011432637166844538677315355280606098262162280070019954002946508070163861787003036454571759628928806126005788478463642596237201730106976431873392295712661792314007056931833505812503702248942533892978063102005220642280686502759897900894977016913706079064835572240465294798807897673402952354560090792419099128841559254766589620857879622613107210373035284550966370843266139819506440375941424284467320152524981140067026514456814631945755207278490976862047376788031861659522143908522916610228957469569524035827083812579218751651522817982153696826195739183429692939065601221329252891877067674889417647751179169015328855917062504048403632804578490270194120049026901389512492768809642558261620728915110599808229353422783495907093303870681729877861779804199769705739566879783523547739492918022011517865269251443234831901434461713039173708145870476461173209304122514541560506381871702441327972073449665714822568471180038614445222979066542414502727153250095053701494108620188419130081536073490253646280205043478225240782361736266613519280211697564821609879247916412563372649714088148343909166929253756512270024360165473309394751826599737325715539308679169192927294396478059440564664680130502273902914051956104953129887759790141790677445653444693353626521475180711695885543869030844610712775225270617592241217086664677193608237373565808957349843201732146871216529757458792751601577171345919063802320544932745568304551082483037935234008957192797576503266132051752734187300586274683207257506096749659456435019784000488745703237523495044025543174964687924092367900567883073662166591032398285039193796040668332886179489505668873530739884597006997822034083419804492146870307291623426198950584646856432897621145658712484238528385984191738806898038298910898310780513981680623188884321750614011075004295146190269297481726028008820978834908784164167219704909733773315175217879229274815576598774089115801354826297060251381202536261570680478251113443821946390212918905217140186152051005401756818596080863918867774744170509470831815870724013749311585762886976574327245628247262627657899394628760666511235804361020345323501555143474590555290813784913592480400154122115229177892784468622088914444709252102154935708671756848378606258226375806842810984477564433702669786208093821433041016465355573124031937730360712818721668435022796318360936879159636824938095464516660512692147365721378433439862186813059440008572467924608217236771743088688974859964268085249421750206097162244048125903932260409685754202678233005827148674661650294059541453454843872401516920964130051761666317332893014613524730548360445623273232434900885395704856779133614800965402485849737844856964778896201331360557637254569397387795334570937609055924578482705787579796392459686907444629013290650761557725761204347726726617387203985856636488901028150400012299871582088195774436393004088737970865922321223532022225285021483037921777932294857306800568386790858010433900456962916301500867037246774198090761471021717451531453379328393772950996309021274094397078057625068595978769516899217100816938697602573795799835237510037008231011883665619479074973355816699746927932774254980219866478480235540825884690172891950052948636937125316771178576419850008002176505765597717073183661195764197890818321365605465952874294145612537974829760225556643455685393082340450151059805061505029517300199432054024686074864464231811836537326717412930400912892513047804295400219944415357127222753277475441073788900355612535870429386878613566827320555512030035318888395241749110477772276216658590487141442160866618744723856641220213063724994063644268253754705239756094768340246039867039526530985214902298856665150277063736716608940275365370560737022853657368745612821968137409772099890080071905540686155858160430815962542528679525942117928730790110075032587093400166212167863835624236915210181598103742193343287372373371547780199472635009428454343015670642616711971022675328180261496484378373623902344302265272189660229374494113494601769001304302938994572398018868861393114332508693530095969180263687560455247477994988977305612009832825180444250058489143947581712336592495726338892422205270112268559904150816682788364789961076711313309425590946801724864140889949583514900269818883762099591842646581269266763170011690069016678220338849272322937326590593746118947515710330373659934603859535034066548763614654762888890213990568669174716627471622800247172465913995462451942962119308247499993070180539037359749854392749319919104957816462958508660841636219435602784354887251482380366191799352517763374612731551317649654129208657750074294936645554037033869657813204880986825061156879350336981497748512971350000910717970399942852340345334098585435081159818762287952024694250729134387591019558625183030296261903776842215889021428536421265489109535259517983412881273671760698753814900865721532335264737598675790130018175085120562565082335007364722376248401713480766031682811122034427892322281701015421475658400407622120801017674660756023114222240285604816137588918993066903818861855206770284254942221344418432724316430895238507106348891027392685160825399020356790005691533434640347506266658769458447046871156924733444204928041777983154982411771096406375366024689633983411679372410199475823859211075944604423991616730144530921674896135901098070741320195729098250026929787375154597436670638710314194649663745879195570899952084163258742100200049691116611469444386909058561505705456432591487131344523165878062099729060531180837574408191152935381206518136489533711035124607833359498119277672783413877591276898984246162284530949666492299055775270053486326074628684672271885159729695546142560358909234164757981485838341140685029600603449450613472838498372957341072855615620604470355071083918691487121170288159236678320305410935699979060685194049348779001901060320750528983817942292298663975674105063815440791514569115982865284872791536422492083812698967542888354638980396613238325873627006534378259427821935787283005876536106832377967860339161059215789072285373653920968906509973320450438337458276785560232914097100057205220737160511194401116953092001440056511933519034629603014580889061853566062519985326482427934145631439402462593974714466332935407677569229282846358106928015593797045323633440220093511111947845907236187854817697678436916077923340059511006961166531729407794204415289411846584203851733895787886342168723232940376304791012284126630962225156902836739434425678160307534143196680544530060864000017178285124066125964937515386815234027914724354699908554284936834769786490779708734761155887589150938569453659338778202959642949837915634529000201232025462676248367620824600014687439127496952738338734119025822659127961885094037406125159807099526684459322927825130786449051836816990121997275789531166269922524828579724463573180624266786260995661870053260350780064853714666983947591314429870156666653158620688270146161212190937608613346986239324505959179995873274713637802164704273297438445251245565076769043546255721093001104768509106161056153242016691432651611840793380145793583895390550706476420978565897772299675963945885175174965011510377590336446221827958942312765923311828760497328235666367885022944513065696428984782511669928484927725303069964689801769714700570812716432999190638541606841803161219464745663333176285909929147057120133855673965460247729806833027433175243781837108003279855419105873425716339269637592255158836602703782461575781297588864881396547709668708662148243488245826001806006573231493557108470614364690080138895180424727687693106881279614067165731151674378883589338990073191856237486740117840001008830611753107786447888685067988736007389829045907465706976742265540933944815210602699964711958998456547574027298571014943069065956697456801915338960488818918435056430380495685062601493924875719104787511110474192701858318081304877039211894266699270284656799144633817821971508930910659493569960147506893199141139703037896644580796792945633528220134345439038734962652818100493809616543274921419102541964989057087137371921337623497712280148751402364608420843765726682208838972820238826891478623957178251641549081077165416327503405620968929653981897573002077497025472389255645967920942755850368208484962732389323361866436763037803166430980408218835371606068538357125566196642549217638739228235491853111735825153407227729481472613520163304211960825111331211480246068088552378015259695662309379632045954992439365711281649110343404284591427585134154029375563546851282225441107487697367538053877778383919070306403568787602595224879721658642883781788941203747168070390650303772284311696492595148315975284815314477758749718936319965877615704462786141026711481535408377206186321851020062522333687320444124977309087711436911980955115610266387949033053578118613043678343909856572631833506101112500859081855897684992298440229861957263422503318539247829416312600584487524955559831409002228565366755518620186003724048141793775335603483929991238647958336007898819541937909743295206926206064294562450147243345811097531486544557238409172888853926274624230312344581235501043433037670141634613920027061081723779735683302788804251606501225223482771517680504150433304029347306671546257522178198231907973338086023118621751005991555957830509369432679668100053314107667450021101685869331943942153900842164220068797219177385874812249491062880669339483654952708765164185789437753419219493376889173433852375382973526403597517969842778840651444844602925079852368429548063729282415547423126266431653993350909505746037187163415242509069845912868228115633819556743767316075130499723461144695914139273373130525544282439719932568326168728973113527033067041462051685344273845263124415658170634094215941680761017836295550008591063619968336151948006631303315285762775472828271963374578959468579564195871406478071233083244878266447722426053718055953366054157068281311030162591794077150527253524379901929640727361866373594162105276864112854575751968827211905149130090179296071658433630640969525433291447392543567645202827124368792169368143264091061982818743888056782041289784154646005516694280049199420415723582103369327010743771967852854809078644896353593982064254086909833013556167474275095703790212241107656489090624176452347164111874254294512387988421990901099962281276835653467036242580582167099008334495895976524353962301325064311155407632115555418834899920279704584842977788584259143617698221685877637323628779739211286063153813530994391249852410758490508232124049271985374852264653215483033992573763653323357149788817046885368101104705924338605190701891812223122459998461465565161300649876786893442229977219213492875468764133080188922170566965867347609116256643281626358451794905254329717036237322500185151364085121720355265025391522074937484238941664522451299968043225510205204928623853543263648560874612673940853729970998774782979630088069879459845811255981130501104365364026834353755111993333836783643120843981944893927024959009916769044829702198783975823171890162350213645328295869823092686892011493300339913899521294350038186438660921501737475197952539500142853238793410078872338669149545455991872392982179394119219957978022972835708970383014573861807220825125109135854798362948729435219055284512396296526967667473605555167948780382319867481623251847138266647001090157432778875711859768541479975574824928693209175397076717882401986278846137351482722994456945069508233940926339597480291529037773129643510839600940860824953741606519562188459317317445498523349528750939508855909946816714623239503024836633122067317066705852086075760811564329337729600447675429244062835877545783573702898449013208610925924903834751404440900811114522520511120848482442924539443481423144410383334518980908867154523982472778616088676244334691334862207154680335279753330253030185506955746485214699869868981029527490193301776399326328503200935050470101134389130749874392564755781993055764191378304888836082841609244672077274629827836537517123082733511768457467783488593768025795640951478077678560248026635770255364294035624769081254535158238537010511502859122245116632463163097907289903092668244059611839997736335683124375045336215268890436182324866420023904897936223244740389876366426651527394433189361181522884250538550301036738887065464784618660351556698831585670462841609327123714947609558168612038863302338350277541609617795978806372735745735350893598701918699378050969286949663838234550211439924860917504029494160698963764495509632038490556438058356433659865898104419179641075912564629794896726896818593138046290904765223799064201240607179306515649968962029964342278652135016394926497825773488493872355755857862132603094584105785433151487969714239127190841423364068998890536910120801170384670268455403174755544528607856868899335179385917367852207386303723025398872510501530277793533437663860993589712119619749213292301161552760187701462791320155044218156445442267234173555949465320137223499671240306844761229429091685365956043534894832464850525825207721218108299215626266779181908811654642417322081331960810688320257014786994801034800514753021491103578173290442713968724178953676040932140650997243109774890839959629051547551965479745701683446091901280882570399939249638039237581930352692818001263413047343376137926355050969532842281461742401730897711075049036212444103703093412182287793459486363112925347556166548001108300829363661647239974401231031680637045543105663254622638552562337374462010262682805131527792364529383752405172760657383740039421513611010343506769649272513677071501043165994390490209098123033303500664706274594503962097942718973570324085219417217932108772323955046987647248153211896122621475459080463619462639387954225335590634690066474867733052942006260546741552552207485504232226895907973569652408574721461389912840971347324802166271819854129254313756253045993615646987328092805431988145278007661454409179461790847165410953293627048604619236781215284930666751475746583328100677851842191608313128987668400968702847955088174893295654191725508737811430408123388981442781348929637433335900623432874931523667878430619728210105162802329395430225246520157443696760537460954232392691131235980428117851029038150152932680784896501970291214319627237866044177534022164670866587563666952341048818861332197286540376922948293252622711853108895818930984866656452387714688393938267387437088055559577460290489174186318441009440649622394710178417063798783005129370492708742485124478106592405236688493493641163574247163969181446876123057777124669566875147047344392857695877437057233518212501074911693427812239954086970388320340858168703090501987330887806767987504083349833966313095798526517499065464208280890700942124116447457293438632287093628153524490330113439628707239926903058012737800177805282552475651332460387732133378841378692870540438808986526934312994433639453082484073161197784370538571972808087477181685496328826578452874881701723498587859402044867507472448018944319256676319905033540866848027336310438301003938038562556379766401248918613124993172810789757123252301010205707695040097485166495806927858532364943215343415005828639808483508124278121948921131903209935607216404486605944575082378487786751559295010370762000715086215265235759527356667053608904419032065121919463309602265038402075220081546143582206626883037265030879981079804556985152231844607001336082019471573255208239409294005945562802903393826035244522970503881920319870058618239912157005152342231468791611983106995228759686315707663881950127291354526669825986504508528074064385269972702679275587632320057219644826131986748742804134588206452365933745933057811306748299415370937669988453712486964394610733199392827871417454028025882580779697078884133229645545616324067635519111989496517357532775726250086004510311271690342853909409443603353358511557014391510098396632646870183991551925937092636801481723787149454050806281978122568530769526728397208369346529915838882981651057108496847586885692604310703406860260974882285832649229558047817935496177423942304962843362616893729664612515161911020925347525065964340207611137923008554611691435526957641039861996271466588656903545289999099508135250130316401027785286888016005348502631384050683560999143616601131431214561023335406917846071300472718456931206634879520777388527672170441079356957334510587494276956425496143082946025119707197412134660859213786808402965499062771462377989919432501623840764828753266480914124551995979350337098191266160355405954412081737973224169015173990937590615059097099658027495461054352986092749036149835590388640662440984366894077300128949030742140781191935933802073988297800630153656390769199545906186034718639211416194162959795459907593211867516574846973100821550055206476160638455792741605127463892345268678797635047260247076000991436383209189559430805575128778807573702010295534543512880673058555253210914452639889244641085178467382122430336571224341535189723416779160223423151256475821777960996646966819717279885719041261169284311805927447402439314066917584377173231064014185211829011151690918388624880500724653813043389560400158867202131396070571251665646936150105920519658061104228723388191229500536405893690579599392527905193095986657661675796587115343957628861059071241913760703057966145001103414121420432086596585618490106227691212458559143279976857931174758944891968885228206481047901119553435939309835439073512547535566695904803615344722049966103515590174750386769009175580427819718965811997272667906198122385715074233156860256957011886104084114869177898605979698617814565942596363767037706699711416111344659698622957330555301273215193668080008533744768290368739993582513137790496079305427378686832948357100201070323579544970587662508631923713483864262254648649986286447344373972923197717812461981881155640282666387691489303323361569997037223280723598747701882300506000883215817303484069541799708475050662227776878670728701661045253859936390662733118596644329661726397042913354981242362970856028417577938190291168609580974872750514158687766896666646004271566993409224585362769973301573169778243326195858009081061801339938547114898026765722202644465521193817135832384700553805722268794611591311222526471937499240059560093330515910418725967107532478064838408007636632736208735515930819234314173384794723981402736602327876223882337501322425537135438042533834980192387516402630957567656344004973159800757746046543188226606266637553335169358477274857433086691976760857917649668525427744286081594525079505292307539506410953991431171553423170766501583771317747676410816473129171436100829236441816338939364941331223018796088052243346898250911917108252884479657359501632206012519857358803580619903066117276909019588191251705412924560726227285310405599667926743209029860341127127840493928920909319182086362013246315678338151172496234256605239424132227375303402161734694273896120152061719465933319379111147563277667500600691687416858477344789629510384175316924577947532424819085450564059009013376438421444758586892803242439630192207383389297982794670646471564008196847117758668760863319540454636771261417539695170827508316131010454219506223127240323647673430508590658324649771866235953336074898885039469405880518230129309328799056671123563138409118729602504970761091251763160544061742261526007109808424287575678079950382270149993121046578747098854576753469835858309678344518778784776832766939875467639855383615905617463072193894724220858144167282851801675787082041238824207229789710716350000656642067842566704962284451665859827254463576624163137060811483406632013020600571974286162571151784158031388226049175993834077214209045081901253221753095890713705628966113483782390727535317488414687791508363528297768345032657840902414415987719440122192370541548288236899123633674932099822063591627711874372039975092050423491241974680408357314184011774097482026288526185895713213166048373909988532375653392258577077187456798270525940463752885684939183137983898864647695323753851842967954529589380352698861078433986368368439706022175481624020115488333804117836295919746104110828115904767355051364704208165922720735796627067251387405728023261835520402683703511066258887038183551081706111483739663083608793290025592811389219019837124103380950626490654192203808993572427561370288272802433588453328253646950789878387241734530759750801416176000273191166591588975582288080632662645486317330030346742380865000239000941844749058530741264357775752263380650354978553193524613648239802421764001162854305545975176724691406475245585310160106437578380957223511159432663540311502514332195348397039284950966818528893957091198286878029579857438336770921284755529686718582506181138565577460858066058959873974268863990415684133747764879279855234578933343628622128945409701888559770647028475246560247999854810308412702043711171998244137599309742651014085948769356118290941736295700937093811749156253778464327073616986957315258488678106834023833453406838163026794294962220035698551222730357584184940436695264927284910057840881408421214923841433932182241115733221032646327831907368099284410046309926834898975009105456812047507205570214730439222025313661022841142758488287200335325537798422611714230423564596517062475098296509866873308026260077914510358597681371831090462190444712954482086602595233009753439006658572409871788344439177376045788899869390750062490174489658037741897475881796293913432380701839996550763129736332218303501681815627171822772988576578497467775437438296550686528471501619685998098135259728069776749727571475690958140971803081162748551065803294953383606824631381624000239287245755706403092096109546880875880394470706550517681653776345283766462980513299289597405462573230045529274314295263098780645853298999252817081606921598639987067568186376502946251373453790769579254560341339194831233100186710007169481992124534506377491044282633329652146282941648568969023969809342849129374422107913335964950004791623279865425057205374715098209980754769012147303890940593492615329003398413922783625270511201718320100713551756027539781048432028981049338699316679912133390049853125639777773627658236141140705341370842708552893922000389796786401780257449419957070598185097579212580482566687332932997214347770073903496962442042233372454219814261947884613231492372872808437834614885457024219506582066153748311743916736363844073951111519962465674986661987160122999996903686355554809610978663297390804075353123802426707380308773571055221797353762212008430472372836500016375398087943849746139373792289586243486551608012076373257786832424354835002068051431315050199358906642496591795048700629821787405137556919730887099144194455554841340883932879195928664859234941113110236090181417139234140635848220734553952204743209392137899298967332320478871385005283126080685435505165092020965930187010743452586012421465498418596563415966820933436382180513794364249968075983368071314533032938183075386051848427396693454316530954485326553220050594811105069046198362126341890594983169191966096506868358147452864452414211067767423166540329442658560354510224201259175334669063499231432308533821885582245019982484410882736358076100426659399933176018184560482499877201112185836526376977345031276967979973012149049669741986936513361403162837172335940379024030403358567386024332964380193382709189380935693505177446257688117936029894794467766932610143156767783182880943663827563927974156671591484776303446261809159410682539156599949250407630493821904646726624445151114327001901917510156940136615642183958755590493255365211646077240087336016943074015051317630600548121095150190273485840146170042458687570045514601590062654607369674042449127452638457233007044056726268471988864642432259384829851305740647258657576907453893950159253252497561188379763019983032883864961209510718456154736303371189923733783999890345072642454756447650776356148652703888722330882144319676350368259614041014754278844488258760469111315403657163353717441434490181325154218973989745285096715881567337253707638946415638633169409005612940180942320620428919131966567305753186894134623510840223038555664529569588629736302761512536177130376252290534958123631714426213402833235359475637474388265478286928163932662740604361559910291091938800141388341082884287551214429757286413816061174905217406793732943865455298515434376981581100089377204646947173922640009812440264033438711122506066629162386834809881955533379283747897787772388697321756859024766934121875323973730092900409390945663848280997053078668851031232396316476968665173918568544596591809276008399160086645711010277259342568380398301483648987097090328210053720412332181451058085559723592585021785786825828579582583176274473635946164221659255685675880948899071474200574845146300603258933327535717709453659377922591641380409410043770035299607135149101711117528089356318151880969720230650747895447775180974149966093577835936344720761131947441442037184812051098932861723919067427793915823351871932066901897138800698073769814707063661103543688737161840350463822558617203766216271721244211865512509822084659115475432651949735900631476761933102527175615815682120709933515740335312105001872255003334325071793663484791984835937290946066408727924930514559082694316863390656924451174536140703102627589887894753557641398154033650057480523196514838489728013187723799222766591780817755771401502489727181765397475664743711146720461196439810265986252760225374077616213344141001530059540303394306864019787693257442210283069225722279608922694727748255688330091601475740723736520784506690977015591959446554051324999535276126848226231849316786062481402123098074743474511167310505663706622844557326532036786821546769003672051430427638416227112859301055914503298388282931834124969200415447022592249100217842130576512744284502257877641308030007481787908241866600164754288306144654401407353440227750317268242174294097871955986695412590647939970648936197193441212902095361390563379873986416560064971903531785912521401111024354464036630501265873153900187618596436004220247743062663647300719077754681596643086870991632473338957189807083306265685215783207226160204010025724117534874722757308872286883003482493093627840443245963905456161263001980609423301802089356489869579364601345444328010470196466310531305186501106153623999298810537215442668699272145701847564741849817560983319147512374061790033077195008800148019715176618336939696677395341463628228706546939422259078702454652040612484467095359627152759528210003613258396838859352087331823306596639039753550490375781156021763758357342381638140633426286116626119118178957681451219596649814949743833254157790055213362544503791356589615564200121476619087798250530448435071906995385002663150014836099416950716821569320742268626205744360966947472653463330459366338644263275047780604142723174047468197839055512653036154794943209240180384248312528087439529241654674739037396784240676392088508566821972395757010761347060019415000054940612689936867577791592226874769892241222970878141310176213389040347923505030456561604674637534596880372214775578225146097195247368727568382343474618745441482803811802202836280894720026381426452998226050460210235097703277258519533625178761171651139196821874083866611640945682927241230191200139171041083109117891089253664818345170979720404389769655298334652858343769307941446918482816217019283770104131394983804481653894228353622900708482932174516217635775793012070611095017145868996331550670318698487128899849553745065331067958854029083992920270894114764841406802687731937667576415441661418769608579373814397003237989893879840760927309679358598521465998664756056659026411885059878870654419551228960157675181985161015716081144340582576935887832059018509906763659686177668814927064426572759653688238756948119551661753881447068872363809397737900335114122950091070525610324504014916204152217082680065502091995982907093089991242426618864201988079935473199922272160042197372926747729771890457546206010341479318519387058827171703244237369366252100121973216197878300400987045997608062177281326147733229874153490020627996526659019187694963586122602537769753162229839739313281597152471166613267613560326316048129896336823296070171934566966484227161706541723614450858376565523630654769514052717832102716514545201726841786025039921151209897846741980577198018948043775504393129685986658775473932888403258267058854772599110347585100994940515509396237817570360166778510726207940074904044317451277724744953835281770442887316126720371958184886395653255600983027195010917733073183881849769841418063829927127032916191024938525360580268158281001993013195252685839386149260312658832913742920489558249734249995942013814444393453946376773407012785095696825558019456340114477273762472692376062832903650917483726175412341368365599750100523842313683257121651208936772284740312057694952514204583732613429698091450180774811149189434081595037313112186974516014921429163070867753009581127938470062217814934125276371031242035256080309942804688958661545655716845288901754298105831840468956617676549458111850089937879214803031776053503248140553101151315881673984518026172019155346036614718495708386436635702580200508129537581540004409226543456791061130201588525393333626272172539410128301913953535816474390641678007919371967296513274616856388780069383057475130929953281109658259733682854366347484059992151993952280507799320655991101968154013240808741408564157340575730299000377247815305601760820588465310232370637353393352503998139909775298563413416808920641033439828699826696815562441333002549378827670934381931955805528076967013204423382701277828716948036059233512064647156631192099517849679562456695680311915608334551174705896880232869712714037513084390724535881617117937542836457286245890723082741861035231463933233549055306648726220026399982647202939891217600971433391308424604393032329127423215781837845115812836873308701206909374569526671395373958006124940325690685695116607357154822567094529946092727883807011464941273326762690927560565126929575784668382261717454415894891579849450923276432527031638259808725187250247093100991772422688440755909927646683419102910720123171270379672424209568638701979998761247066271917082061829758020072465723608322191076672188484499802367111712834980538354900411330863878445354655171546389999487122508325783263347410912599687470280487287295956446921757515025992970084367052032310449640165927269339868575177072789616628455609297061256653831209174034317506938628517681184626775419194248043268375107423948921365542685030420417616342236479446607727719682370467287506310805190530942916984589268376516444336796239907029225739693749402530152932624366343787621708164482161085907355682502775410862821684208268192636928378539371449326922455213269608219504096100295503426881445062629183384517186767790096883548298638094674246017976436761662774397517099879957824334179222953395728814937203201257484206069341803882099595520378366678299362009947794936681401468771356506104003258893056384807010824379719949861454949245639085486915834535445376265197532357372580602804988318038650220843909840507127624595702793067750386188434422630709651939525966860982803164216694430706799485038779679796194114769197713632864611742481713459093353463966004056263740850013763731844791988680848634918903622283234424821264603187909986019315721759700165913238388487813963059683656024815498425745860261570212421327196726954820714142861798543398313133474851822963219006633936988897570997581312994335638203103769638831975727475297680569602573909165395004458662062658390403156435698881339591619091714478600706198078675665639648687854283708447552038997846746598814425035115419341361946308337741642276970065616232026654848551701953700733498860979687309511484520998235151533194250059014646115988707450710714426660047848879229659280248445067228169178862807588553062358400392221049400483554693120925641900310668082154448205893293292440020871235691774834373573774276192506904826116406896965974250911539059771250211055397024047942685460490684163800405349792168231860249314002495598781905245844233160624147519237647612293689754013172299191866491130540456901970183737878013869341518332429902853237379908071323508434259598180185197267248725759301346031145055166580583848980821274677834814315328166963775657907592461092775142225097578075351865374642401449028205963029579068271660611431036676484808759416652729701254687890759776322689316270004284548346378324906401595077222477714894370482582331463266652152780235573166221626080001868604847399971814532281340491265761433327550799472512766217384970685685152140896054209795810403399692315287345633456464272512670513649351481177184811374591502807670577401478732463941584235718815560599752081215351748006797057855800953919795291386239233150659818237815006144466203145924043459195017865935213745839755094928633982758096323602844840584690372635383437741482730452997728069516884733839334987506572414797124659731614291846970914945772075184759460569423642184932286027039387012552268737653623709021346395909260237803209313506252079941560607935788732700471075709797540891165299418242276609452388278938368305527230491255524283250060180937318662894078688093101567536547974336099946724548291998255770788569735410851313426116270919308147339843065740498668570564418312179354839240321152949496820921034027995856426758459643049810879587130080249753366234140759143069423742721621633990077991120337987194852076955246942698195547536171201250774526403807258855399752699171622838312265821541387852024773212597218605887292492640257384192313306035202171059218588910877594607487157688180048973658137390688361773185577448850890241283551843105155080755561118238420821713774790923070595928158959965874972765632543958717669925534459468139999530375164943380735576002938064122677682153607962611449160962537775254534938137585890031919703869400313936729087640431595168647330527935142097851994253078532585730649118363661232358806208023299737859963212469983360283898094196664165054463633059576724128598328843517753481802164167831127724614699672507531487599695209515832091638224213573022989706881485768788612318279471469440587360171362854509136128835264210834098731582528494157270012903140563966067935128606448092762368074694097037251141084834229714958054947938667566300745308544571242617114861733338270880920725243971993203102058571019543294321877882993898530837484383535034331188059716518790985379902102955734984518094194026863492124148833050389281814598870581398898510329866855822129460544191972138535855318598327821667024342092943250432971119699069219330973824108103964506114348885871681289555243943164653432030320758367418196919681719832112922573446651271383387075290623201796438710387954749729478824373789533107859542162218751632493965482837267272197907167467162190880997538602253044072902986411121402555193736117093345843567982686198188132162399200480166341034179263209022361341414697285665275891930001920126912288486256243637603325101471199349439138953370194715727899824994994285408356164118232725400396407003650195175118656953806373834412859063414803422501668635375146922292542604333859006837394760971078870314292424605355441675204450010085761672208419656576215484038089499457695705143375174177314344291119354242558262692062143311256188121754827006863283327092772760549556163865942367595532881129132807083058036469824354860926017098572984865218897603311134027209633059595545094764331685577636693743976169372660872968525239945885910239491495565422942159217514785791023116254160534639121712669992526637405035045547475981183480595943069310611657015217497001566669254230975069333897595299110772177518024378405755448107682379997228822156875046450501069185900997101813990662577390491670114641201200872185611987995214847658774383789489460891321477315185313044066464202602794781002005349793295816359336274725020968351405685017256107480593777555271029430950041400748325533643232338724771579486705080849510931947756402287625131088413057795149633607530938094078589156983199679123161334408950328305215901026448289583231717905928977665318256749741800817699773600002649218326213454303194241424693068243971765734164525485648240326737889713788101223238685680579930282232577420955686273559035730964999432832751467047532156063335371602212989953930656502578554483175028956653030250983105618396217752737699783310721810800927352838234340534957082571230542146744535474505567152137714325781655013957232633856771570626311049505147001956356644927145914263967464637512472933828338567775068154653028780629005599862830099331937482821783701205575932645415855232748198862796658680732277078810715610280179736831920698943640127047924112932175771085959144762888758556473165747795274987451706421651902776476006207265018389280118293422005840533382177173594723793932499209527676291518355193720357516968868585800412682129661714185267568754541653988490640992901003093218726057266095197904501725636876660533061000588474672376596390936186274031955837929517291352296799855222211267309553695929915758412071132499975262981433903826712689962914873219134850903385853249170643078739131089640710869935235512638492733284494101446095606143816008391652476444159127646623858092783966463312420426706832006104524311867502965777498412614662108491873832643377226813305200802001754272741396064630232589329860536931375083725790062748061464337591963761723752620457666716329144482387931725331942834109556228955006390318200681895849934294383746451535559934407987543226642621238686506019629920502349463433544028151254551053761210168424764206834326945871049894765491072692580227362876878156806670640795916132618619492416104087328938892146746357955246185691990419663523052234652828103894935879705492523145965472895094749720234018240012675399419444361599857494512054134639819130385309582246826529666811422087437559559605662762998580600725723535504096864964133152094605953199775293090681212349511037901424654994798061657732621981765062542870136312250015861838235221989366824942374053555302104153670586186050208248801381199688418375640848155798239064167056307893130945646318610035277072848256053137947361032949593043969490752532943902714655226720967024065826397539114453656474349808228063792680811060642551962893573215735074836176777214281678269181603165165609097328667848243284839863490146380960827905162805525826137777347009280117330674171431885997586850110265833658532821677599673708456414796236055299437665452001102645487146265836551073482117893288819315104610371988231988345663516454267239023583799666054039284026600450723196375512127608124597771002600332594812088959974081236664658922118197248483736057375291415270966908686776908834783370781401364886298280166619169343605218305599511430136382369525097961594117710723644202465480090468397653477410457673044705765009360093693394943368029679018796191685142568428417382258000484333716488088139578857823867677435749261570254935568728479239524742383212018772481295481637150076373747894153942002281482119429463394442130672174307900808892986947040463169497652572926042456702355717700114317248450112759706977337331037687265056941401006726876716042088966459111339694272675736032657342571515558286424571680788999004609846750764026804609871775875663177483020434267675669186064812761831854621902474264921188341437746511853655069711579916757356091624585555519263802034083814547173706560434633782253838047053427868580388090650053066817005180904814859876617241322810069175802461473046962437137336141809192850365038968109401652224437320725218525987732646929208282796254140005500609321255725748226183745521120193321764267061454432711279621148909503781931032845034859228821184270893779505249449085221873299217032333833836203796970743087848329395174001491291379733834286542548215067160336751971418064170778143224735601075039817672872161532950696344821317455023620946379408028257944608489118982001475701562223043455767202079392252777979144438183841966890126489651576947733849597033111089676427495036366165675121278064036927844911379115121274115663341621011168926477306894240833625810822284710692776723255646535489546762386745782065235520682808198646941274305658787900895905763198442450185631306650203283749487819334803599713961669332701028708433548279853926447280960532425966594197623186748358745447236420392551527653516090508434534422097189127626483407586753458742404257724003937659238329076703768525962278020787162244807417178111322647251981927989565488783153425513145481583481733892398664459508194147383179596066495780973831391532623959137851767213747663913813205621873403504239213006749139470151006640709090832633987632769486733022204484817705283044754742903288394644423388630830331539670704093362780709740222701993269338213589352987233679234344268229160706967330399961050237631560595459816841200893455811088506300902423117885963501633333265625869513128572300374506570719338717071979586703095203444482929529979478751372482334638412334497793819766935161987506123889808912003929374045189522419269158351097273991908794751157783826763158888703187043478342964030241311957439252084707723355851520890822969033087349165224036580757564873560376541416863448464884586314379277688389235342094050558187970928095327968214529471283905104272298134116814077314506627060134895227291903442132449980455753316478374238508652054024660735971410891882541702080793003097312953671263335699650488565325163416150214213760022063789562547281493805124986586068339189876828643837547894030039249737146606630993825213421559780391098356889316539425357657954576067872298556727853450308916414817272708495533402559299279244201462446799192004307436906510923126172048792179723798388198780498783147776705602588641923001936869419100298508400559576915272588124779312165553171709955066941353729859346851977715637746441178987352869027967461401288543853913673922237584031226797917970484606015349952936743178302730236075781299931170663746199632169453450718139025781029372398863118915633592670610507179108790838113701781570447028043107863301289295898784036683109215989510304084223137078893313463986915662087643785017887893891782654887498888580450474102091877460992603386125168567544782641185827432910487531086545756030879429996718706732875441606824476902477847697919623167927367309360601420121206054729163200049081320295397028015030016290793167166480312321715476702373456032758620995016968418192035306205902478770405650462392405261071174989690698188270457359049835417831821138575891746491518766446912409932026458278134292545537892010028309154645327824959200910167298113196362383730215181084671497903126366443544065341185140472994222495246472671687713095230789604904660605562501398673371120865124324540753419486591416469968088114346351416780182693317192243773646359198092148376389390048904068546275599901337342604697646684691318890424890233280074938706009316770053627383616333248061940394944061743559820916465238689820261387237669496640440147400659959647224104424061579011465577307390731589973221889122316325473794031511706707384272828493612989290135307659494284952785222776201765211552293985432334366301962972953086785050244393117033617612100559309630972010920652143569865259028282414292624508420068613102109209335991325049632784442311397507621212439665778195666158090151291301654826142375292779961159104823756487951245401837511120675025509585459889984929780480044068158090003166693496607818684186502177855235941871080972235095821406232957926818525593057820867628269915579101189648710292373754493491271679118454314266198782558296930843585462713565685417520297200490940510678624131393395932931588165556692902546173000250782174231246736311886972514556258190826880402482166793950829176170982566815584196270507575822350820641427805049913685694790253078007420006775594301080044856165468696812700044312751428422163098347758901372580678085680860007798179297777671718933700173215695451619387948048339628641168765180187718707112236498088309363157332348512309001825687038654148488268410867211224240925948894255988967492983074799247231560627769749366598644687055963096376164331766138052436537846569565305370383360585658921745736106627661732703751759676177739335492225405305619171129283711369919339852788564141470695325909722741348468449304008055015063625761020887618803111901200092064165770137184057374272042184176267797667765970046605564103644843806882540500999720878190515430980415434920565009199319264021767835084242706403723990685130948172986862751339956667010394732411886143347008713271203111465469568053330382560705849492595289685283917925838769992522918403295230675237956643393419572663255762593553077759309478740253240386995648290090933352841219301518726626530931346530895836602567648148064582225118688135293236190551494813387868808833063055510475631746883476255622518792767795028562743049956587957766127846697206789529704229625617838289517824908010340085239729994703695345016186269253005070288206756482256527582882825141387812702114958184780727267959262505885249249405995399465374089323673733822332741262823883567875118109640306836793060229578717719816060755726508607315826281268845848779394267080221239793664508048760921607210958755619574259878851613857440867067286118644631649484646601408531267384175795250833512559242471580286466929877890342615052605280189725570777063889490363091641518687900126327591895731590374365597802559268996079780963086776900248922905804957103217096423971007438775194285494975057631248594553507538821959440717794915926654277605074080963781516861050180331440837411020326865413681460181893451202752115575000697970564118601144501967028723857965619202953792912195815781618783528164369661502928081089269087439037668781674574136498984602528480668735419102814564930476348787004180887998825591342708362894347946496871606600597616023347714902523908663633469708649303628538696395305560054443170529770373288644779151254627252757154383510921168866020856882809121207280540929750448964931496859423626934631440880122401771854593679403660660177008431280983433667155030793677494313994922742285964954337503057081829524874491062608815698515304067025350297916714026988744305009772348272026112063448705562392149051646633932954923350318546671499311352570397197732023685828911407914543042944508799956341799451096425043151854419835694638495271252930697839667846099338264407735035623110721568836158261035969190202245768034426625539900666437014568495751230833384106633647771847986744704689325394845889208486943826372159532922168304910621721817251108090409566909419601707685133084560985462490418612678567851481097627581146988580635965339205336189085634692664765398539844849034994955013764942117686795018176105558479699713177457571780335316237755796363586076338160413194394635016467787249414155152510974974320594926066092275411535958662184052690305770789824430379291476163275658360463473539183247080442927311622742049946459684496077911967997877209103292474358960081483593689661377854432494168037243107645126705356297820220040526289062414667802387277641951427946439783411010053967533665284650114668092758592998324023147135904723922843587113836755223039640522658922176353870800180162072692511317804074203703280017485829686682656084996978008584461524650768851370627326642475265929770130236530616197403476632106498374588939384163895335845297028964071082805010044361828389786198800070184541485857671051793684031729224815830717027375712622895856696428802293963426591785105706074109839379479758850878480987731080463070219457156569766179382091653450179380754624675047966987979091486198474140196805735521607744290133997155679595516316631554290215130202299974650180976961249825510697087939908561414507489259811671178581863782048166226756948791163250503376039946431894138986265855000197264912211553058337537800276572263429477873996935833164261629287705415569157043959228234802538726723085768022258541747473960358983629157590395118932563328483892915977730748086970868129146389665411627393235861346061958329129124042379058198035368222618737263177768874936373229619256636684112232698553942910894860744068161029123975078403490215098950785179018588595954148740572297505036595425832458246167489149684384345588526993570632863061276787995280524062838009699176641816471013338295823318366333757758498425743789667499432123887196994565682652047842331773576575443303201063842831352131951294491195771067813785524300666927433464659776414502390736124108410010858035896219694708248721505139280620063236769532462512043237336516525202713577544391685570570423310098379229319636153660509672870736100923210414893063954495864923232036047507253777336442808943377089061518090775077283073231603148997797110111346144980602899361448070598275657791046726505729361343417204956281594961596405128220610893830417671978453994812616341048237401922790158012937788935085020354049436801482242576747772541966107612487858959402896886721459936401932955449990194627964199311636637563152380040607499594627441102230682424486049094387795872005795857970205814818127131290774473579366071912178358206638906700086944507565268814389307335040294091011107610719389776453974479862428712175295508663965140368030616751667317134681016134220894569631482594681978298200838760887327010427511899747831134668758542499493466856418542384861195479160967431364041397996861472291431560461152764874200134332993200935228161034690726374693695956059998308038386655707580210226139788737125992809284285022851249111304460638088133859691488497307896507703600660434139569441523914682078755216350171603075229286062031948948406885461313798153852930418132201890950947764260244326117542483143638277726913430947183108983077344998217079288706660270917569323136560153371737335408665974799842480750784651706625965093488329299531909123091928297734695749765229491318193985308834075918580635378489650176038221520914480697585960333465416421204773171508930966801864837067607205714746087788593819118611023284033026985031866835537358687466672128563525783426340794999279243129707479059023664344497307704114255095699799465108194017400166759588153925492857093472795210267144389271626596022757513742450109460184122702086181447692300501459184476493062248780274739101542093656728442754588379930323171777117971471126717465385643438312022283558631638503633106107830203950765537488014358006779008597314346840043296968911597302538057579651228982421326028683403271587057958988190508598281764212909120135729690387515062644386974313876908011844591985346724379334029288300572070915885159296945566375042840769134986402011460752307086511138358729629537016390481405463113301818949119186318598019567107396196986333745322289463674951145124101845262596077675094565566959930134728708644631019114504845593312214749108913372755800160262825027512474626397639347900812908981058301952541768978059702292609983909436343857128648771376291361331778157452208792623611625535337383870761489465238656086643070408019027291506607101344106014662175548269413023089043521964977737088667676256383160584121605874847661344439175514590637577962582534076685147207941734712044598714499952111372413446591417693190757969432734818050869332367195527713395200872735671330084332041367927161600793007280232728367851744027925375743376245856223445573971392894337705766130669802145198453988279942652146776087189879844631173616408943225974655737329489286433011397779914390441985133574654522029762590779737521870784224649170126060171888547838085050509562918175006195728942503576024629587067755214755810221074549667387113838944084423319041047995295562623238780298830321620163826637538817881593199699048577815579967108322252159809096172279850516182285680450013998907210448857926319900646673033126271821047993729427016472360741437662183537803331687901829043781489081574743005156018505509640401182438390863521655830882498299674428999061774438515556722023471670192511754428163178612646874558445609511607901509594473584699193857728944716138694633867734767004287642062967311659358423149446087586686399903985673878778269316749388296247579201591437507446689850239154723149029805210378179233029503217741017304416815678096603261556605458731301324207760609491863792633903326936854857267665051493445284584964635893290292186012383308707439875923426444630294534672864192676012473295399836352576897472204483337814714580319337151452661276190913223255353312844357753179689603203385236406363143560572286136973696634468471449317186606957267649453708866997150770542790778203981104495236155201507560621752825512477993868363376456502814959632953609590508464831058735953529614926722942114716804506941858230160775871959300653747919398654033400987967835576250229797581245890998062523150521026100003481565984195072391134766157898364328883022745074238582254354496947521306022182835105455609678638696478940249873109916305197082034406216507867573318847435889198448645024943290363474211226767189265519939372545935177685902060881222965879032140628362304603224824168308994226140051658230497756490031009779055257600336342184042549895510263738189012652608664459891956040853592691258595601408357859164779184530502262295306874471017139766323480953341166929937620637718310454859244038108786044225137280189176255168521686393310313645487664930110429443474420651525723241242245505832118429949593150462318242312896145654734827810629274697288583887778445240040841993763634667249568870808606157075182986925456593313251769943936369964534698816515567299956953455820106962437448715045627251735595354491322998997548697168117280056404652639390997318174078136873172099877576919176032978412949067507093687343806584655912116319411646247409199813669295991819378318310860248954285993830384447352780836830549262155839844412751754374946364336912686065530341874527873299155019103657299739220389686694400527450369268208141617548214862497007298084262334193843501999985758631566323190851605691231146871248268229186032029669441468288861284849446917032402295978719010476056795679814566744300778596930232204985711848801930195473224105066990790805862641591233796961715721177843590391457550872736206476443308997934304151650341394251480416141584560263142588233694349530704422746911888991266668961657626699492545685597382576794256623298466469840451730805390467797624547796983912308147555089409704184410897083894362146168480980582603990256415102638250173180936664070151933754702303175665208554206549278752180922681661180168488648009495718822813103237954156764045665086273461729333846502680645844637642864104801736070137882606598533968557955396365127947441968186326208520106469488177491215270629788400206218047567830085068102431545840962184243462754366199487346540681546090732898934029784025222416838161945142805867982038537624705175638654737065529608480430090427478045855314954843746858379796657988766763197794480153837503414771501069872528971174628925740697495488602507822642743217300988828372251239645615814111089240107983218830549597240260655989674844979384682573500173225977561471324566813385327538857172419715168245968502271951961848970785065356941924671075144743205629660248011336436144366936748870327728753464873836941531758820975597445687512560706888071014727682637421777096700758445342301977837381143969425164777788819514005713524026633112747553927729416807197436700111730594195491156110276965259200310374130979427880398027999034014867634741934341832663439471219071843927081077703006253352718180869182093356716512179635320603535031858676977755875074078275462490283596775357017065822737944797603540990282502575331056764424689993468146095740828537262000055760330955138606178769888184719481875114448774738597839139451514548836089587516585383262229781643368187573841926888707962445362648252919913486896637319854840004916452534767069657630610385241492010110493653861789403610123543229767140337577533075675794884195318391961773482072589180423286812932939477826884374551741546455202590988201723827726773053418104978970581544183769799858314071240095062970719888017273705536762562942993756197573128199785896912020219634534170427529839152160782939091652201789825756260501717571084242364526177661941289776405433048391902260385446133364739730736130353343697983205244302173901477658377950223035585959993896473425637572229107715662515359980457415480575884868113570350374864012265378409182395901071281909292930002676194696425469012471042061870972281113427348216505615214381707019111459164116584717368018367008136412525692303696279051533187871388157612000908755336113521099455808966639631517685564099794564600718963210306229112590103613441650072221621389659961180933044561151391368369685168649454452161233437695743066662576127249483864976558127089629257532743729707538338314416765488122149589198961099846295715209918430866802877920864248099202743378936165880098846184122054996268455290058001320302666004730163434863790524943174939383816286666298518278360831389593605627927928510079392652715354145613862768044171713373803433479146617799206908014082374348281701726823859828416984343393658899318865947228877869362778649821707681309355007733558337165690232854003499972458906975201299114616525328003317232797838538575120359658974782098807176696680307523915999838816820104596093352792283779712229327141103388049187909494291693368470662398668548231888340670442445786836173877404425699904168608322962336177122688658954648153253677981177084309871936088076074521522611531560721156104441623894949734344918189885404003086064523284130562719705460319243397647525170252566157370892955430842265265746198241853888098758868307120768162434850712129480612154283677403672082537155089473257327130076188235330238294902968722573824280369701988124171707905582971868474315560994419075596634388023326866803393834117623648169616912723189084841743076424632578574262308637682474331349857508516330128892791381801263737109626758444626835665416948647845697538484575769578563484421432673925956743793889480660387657917207972808919442114314425424150495426728856732750842369890655521688826415675369832033752336190845452734796067190483379948839459964671780428470893520526593130432943644985082459218720263325249807562064541227444661306446401515357482878174568059679615617795318395975330721473381597731500074398889672262954289978983235612716130738655660586253086773635662068638505074544787125120109101268176830393548604164147350930595727401005125047855841882928178903855762124917666185545870621108031623052515573432265627642344678351815615407823900756960471783341085059326514082065733878325633905753463718999921135220626309738808671562300271454953828047363092875366445660085687940902004625812193140490256698081071164787615804328330456463237134113578434517648131856389406962846389516552432980548276930237495944583528721738136620074581404163572378594781856829561546414835319095064301927276905924044439120874783258623340503345003967487054221189787966999109179712127951245251408693134406639852800494928620797554593077491630683827586455924200110038802929900783404574177298000872081305094591303689377913396646677589607133202282819362804771464285943439523322235260369769710673083531756314019324806884723176590823452624222610981600057730482011908189386113165712486718005907917356035044897249222790451054440372558947003792833405383313455180381281543885779650975849960856718911907318207488072525668855154210143471634534311032080694338842334634336642815177526815770311796982925288247164501852670245397633739938685992464010980463079749536778537433088716762128401811058627078952942335541057366490878197318638251342271782478507867843968589513027801354271099811627383972228468913426637163552553340107299494414105080783584581090805132282785212733453061639797746514467059007741415858350459191575050919351265693690698694420383575860701298478965507678366622565910797034425756605465078381307138262649655334884378532005989855449568107593789781803964768169116989519648567057853477482639915277562922317929846887142144388750991909222560869678219635364305116512257931860787401205739883383786760329724091527771126751764467503846771067158801798668417733380345027289353897878831554290591899065867346995062495184867451726892480910496247795651282707184382677399380435418236869450060167983044290511356166702883513769412562553768795503049921823621363021531603991439140435707040498341238689418151669195254746333700865385453987226770502073387586987109520889828578505693969000270470830856667319542222534609599492300149380458092239854434678944225873903173496910646211734489007991564648003722521084167425166221509397506940376165249168847092876756815736777643471411927492060922135857398093536438316529179345986377418286052959474536770441392784573873825617868101320467095617433168457324713784687003825551054460533082928813095705508053413181716344861556804758346399988692155741971392059830485996221297840912962205699522854093646146428784706832624288171880309480807331871374250299268702988444645365136122791624209755848253727731988928820277896644755312724580228446521314880303751127644128834806671326783366321563257990649898698383190689624880176276948543535361347706421272533993800010896143317075411556244574274198401825909248704129363290229684608543679322640824907451929681497270920419882457157940294815128385448080910559355682614296543371121282693981318743961359037194730048652896046417830679497415491829757791959223656758999940706210373272761103428375826688215031916497448734188396980881992409055942851409469562941023272777775429988845996537298320046850283338115749718568246400862077652248804534788320658953826656608475320088439752108808224283387643928344004215623739724622102276315446508388396334681124119039899148237945872346125807569642676858067995805062550229050424289861575356386394409024372727192510867568587231917243354641910432779503904889952480260489933561518181477205396331936246237663497734247487189678988744829867815545342231927502632043762908587296364009526857084910897639742037685898155815054115895871005182826774229631652150995075563883035684373819614569257796935668978973185955103209470779778704908885694589022311241219262248430469894084730292485058080190791101450542153771159104165286077484008648882014136084936637961921898428403006761629558175495804468489925782648804885951040848267618897290126293235960836617719344926144004901315782670462850026914938336649476874239003978343800521518644242539112460848885877350338116534641709026744406218570843968829757470483531406383701716893423873008005750727687407528956255004694586424907604229829136311416557413689579742785041420418359341620262764417442353392959088567296946221945404490496410220046788830832185208709652165896756230598720230566873212192190610608835794336500197861369561441252569296579936118956358511514994358330575853425062343914808341414603008751663102218452514877063618405730113363589247540487242863750164828538961780017184864207502750637695411309956110819729143840371738064433193712937032937351208072448315889028640249144811971302543842907199524285733862131642536239272008193008613206836434182483434857785474591876589951603039204167988228231692198151461126440140636672888412118176609087416943823315985333751961916568459302949563901529937127790278127679186049746239336838896070785340360841936297117803621874082702974222412436576035340871766700388700722875200554981777704854029962454762877625587004274367059149325381145279240720135314460342958232898493685528344194160859495928035676378427485912264035000550627522287917840129746904958607525787117263687931736233185617463713879738991878004318302604152744275541624418536055730972555835500856870572900725833142972569038700204701146466740343727945989804445114022832717971488019361920329350700256495951586232249269711834528618367446736955245506533008264239051238546812920703100002794620170379520061899655091128649006535934003639487986093782051294618269516933285952123579458692765366712886119302014380392639885713182136498968929029081478416302055206094748959315367092965726400564827798499577758043414423416102297387750033829873386831506111220181701738093306442020582499082123051430062223151728049004193879756283264165175904346529777538237578072985143050877026136472638181856375835256981231326545979936952298970703985881099476762110651683986837952991633195762334302277117106430955425703393719241465857798592333707074457494447964401357015005857178150347363232140160918400027540064168616814580393856532256918692249268367578934948180726601151662039436663269097788352269788843752335885744299306882574810177053406314179876489038258760988852078633878577537452238745728537734661484517162700284140064259622487744800372321000046840760406202832989920807054198300438840010484648972029920544163506380844863718080436195949518507346863589600694152271782599040676477815927316529234779447977697754345568869470061641584662136022469514246578001118787926661473008325278009671990375980059460048431000316083214265152040539710078016489737204294402954743769456183159156877998010676030233705517291127862486921075925879703747646619199884238498243397562423197413540907716632894498263527233994229924348431068933141500078978081461764915892054587559129518279171839538889143535361410221302447765097242523963588337819931186848094781840879747502830140453163456749928108222182372091248347496094527328458823545648821707202502561471384972773647373598048764209100053604324560477914727251505897220083739991293202369277962671595849930550665960651432208416177717580558115858023346391033350757284354258475874335022890554760179109206584204143062400690107726417897582208773699154536155223052921830179339420769418585991788679027438992057013237536024784661281347934580772582660539293042538884063381841006217983791968362601302754353902962547852272133715707816020802485874357651462088912773222063596162332553554853319856165506234484682114717182325971875779145807974723310351308543794073963040250676861006570794150017998261367616002069226128249970895568162090542795965743957875455530565014101921312747754554107198959146343689422353621232809366245104343528448088371123416116587235780832616596084657336450066294634455219114360819152869484550249637526038540177089475980096863895398742891945650498298232134662714590159096945596783630670545493498156938293626551826167218397425689710850713505811863000091889625107089372059308245126815710701070505004230836983035219959423196525389540721783022943266664490466134644574332665127291754904493154922777019228510236749080626736152945876752775891730547461843732853221241531268230975029905339008563291405648125700456550179485594634777633897334036595039596469959900724711446720062228889296250332207033455092817328401299738859019317804105549982260703497458410781722032442924849341227760879565958556825541907416934520936477941439018739897381555316756855032575690554099965321321860451883118109342624046401540366618941258055997166757642131226309199121753843933308665747906860751133832492042167814411450397529003901251847120799806902401666991494001932839331284455590766464111915964941154779111924657755915439471012072228395074782393867255981042397576773231485980511568707290418039151161611382634221453022646551998389971575742513277062884741675161431026426432723801865319841004793104567686922351317683369463661178116870421677727756037987824720362088905942511060209924558424705381187320153348434570181668825564507293909639194951090801198653510373954419311659072805107183221764429125424391090411333981233437869650012990604709256612959088003965627913547585131459082303850400351931515399521582221303755848961554022165198669249509803846320414765098297578620513549666328212790986599112336960696086673966480113900137021908080671192245000344554015414401429375017403030195098554762606071814676356791036961537920568422074247451844444839461560055402893686092040895134440175438021136556071951094179456364987995683777385146497324221208014934353845540932078375241723460860591664576402958779033678379693383378525608020482161973293714822340958806134196941863374445937019946357447345586875625372700939148811210931946978546689120404786242917679830619277473591294159776499771172390547423371897859415100455565931384506721951774802409251725265772582158113329451301306663262080036949932843452143540597068853169448804695806559248050034105666111179443298165134191031447265655033557485345291984803318851808379978793745549885139551054846336098962787892656131958160696573907328998620923765713648209223298935337579225332278961354994050271870063517063739681907719613763938362303958755568913175298751407164923290262672137328599291940443166330241093436720789341353537205779068453913384572789138883915364673824402019974769723596080818025266554064782819156045248223003728336010704266329490673287411564542216290515598433046926087754965339509365458326568367498359425459495204811735659519143242494258157178519762734889154095821278486183151421350684977022292424436417403145120024157295395756559673164970821860392347133392579547602107726290153525030079412678389758017663481785634262756940621238201963147541987136107976146563563189861008953381374532424371026057390498810749701459126214461324183469611114689175658385630014119165768032983780679492655885091801451262654001789837970677946264656862480697528622700219359881626545470373810999116784917941964584402797035085820276291950977477866293773924913891654957521246204837425777937516829835220781305649249853864844398260672059834845839217986694098465422638351576539227076089815816525863360488643104714648056741368121032352961681568809914389768762882666865160874953563245561081427519228105519586914930002781902747222990148252691477246831440720705671653363462241139644835913265639415452297899483895716504992283138030664562333226721613850559604526855082816136750430237521875257494409086843572623951165212257466453506185978866451970099559964341651752426522219526390156178937131627611142831084447718842024856861672527472469469879827677626215505615662698220727518002705730855370640745369877634320202424634394504071180080625361452937160173764588253323406494888916307374271653334778675828549112193349469364659760795161633013488927526025613787747397694983284559843531498680453716260129553025974036273550274735711264676987463469868182876624621596316139600988696517151200400077752848466691543509694711365667197625470819310920329837218556272159559286244178389324083884790909556510391950019129821369969775424003824664377642278684554042905583051718194344852696559056155072917456469566794107655596133434691135648172567559904674659600942761025483252281869900916568101353901227953291800626913932933038266129456824596535301669400787671775375204964856509950796445150527142591715315328407082662223844632787000659699547000530386009105766028486136513115610410806560819862696630938881479775602266029435241697052801000605428936696701157396439417034618710759932425340278947540736460556295773997070588002574685530965653442653964640258909279638705015929021197669823909012984625510636825051138269987298193193096985682916554673842669741088215893554526765688607130553007890833918339870783760634758357376323722110643746734481473870466407701586135987977138572413035913853547520049001775013031966629539669579825882872989597449720746271550715261893248237730076529656714640012783966285330605031433675704287883683239066551476540415048179179427395037271095189431010914298647528360704257839478700184827875694234822381368607479412903850723574973205664289801904070738493042519241399621276787135996445537849743642286648629082291904413991618806464160082458487882531042097300305830803654413186335602513600389500304003302695140970559206534847701498785350648914973007274120466678901813561765900926676561721145216744409307578289092077962059091634033952671042646271513089871467888735794518498620893776432354680100687474799218028410383506968302551821822033508163684251255735397784660101065346048046038550835493554283176910144719128131702656977777839658273985497673839196024471525348731343861821249599239694637455449811238152072100346879099630441689815897545212328157572544962444959817901136244953986191132883512123335535119172741140311091324163579532027206029988700224704118782128380775997403208163037225432835009679096882116039643605319162508473616794083069711367551529530057458942476687159921475916260989536118577418728135691906579332663597615936422533987139008016400515778020520932555072280924737683612782396608851356743436678538257802392553984893348088009687919766186995729125486505244272567487073887157770002852343264446805938737465986699332235054041065323839404857443252509191909238830503385088640131665768261350605052345706197058006680516384105895971034452606667868892075609703531873208754481341748770975340660713466372800949561726534122071917319401887204165559265734333322113926124540880357636004426660699662823827030997680887979843292098479634503764399918843797733963497143023153021540824597877987619038569666143890622549655537187420882359572434314737371651346531502575210554505514679599891365676523598946881966293825999382188417021814517003110130343506504446002248420883521589200241969077649573213375331926964302806815667551243793405074956038524976510863377118751069552134179780850614218783500238292008287078557048499907297025087808346925114795124686517168686451507513785197431025335034365193254307736564336541430956332647894029981851682429317069449530839845490094069742220678978537928064170379299568939398772122047086723596747552613756244994402803862615191240095116919622820158121387424421443092776598068329126720725650065626765313877351213050440141571075224770487660139329389064760012718772308445384157603930307076829347863186575119592350882478971969616438488762221444296399080624496948243956418132883281797690881392487893883637732951165557437534166532073589661277548961890989691576022164336366906400593215625929065798144475938568331323815677412523859770257743224867164117270307130965738440125239905250402210821446456151293099696868257100407241557639270398128209388725454427323767707048859556130124524179172192822606169790740448639344079807673141180188844533196353104748988186535922718050821437906103158509104175946321974996909866008985945366092960316300399657620383125185416227266741448537628344866203091187833904142743006921461515724976451007201681303326621024096918523153720711761041565198855058850902760566982601167160833892963790025572268202329939223202992651173649949796965962342245794376744702476368818697970171362119955759498188807518368824565646505596446181232915388199688801620444856319064586949425984651578634933604458416875604419487912795888653328782970868376063661909968946609957576945270732650447412134439323203152738905893098550163663627305708555141489921148177559400196875435539575991696951365679215151783834792333114597262833668974150718041314623241271785456947322819510947674510289813193007512154080347831371846286541862175324905548977886461172848720805990111911328774761968073458890321305996862642845917550010921148389815723080540117854305361753187492862327046649058914462046121752904867077108561479187655532684617505943166280756810829191178500612775890303286880750460022629116432998410581912243074861839045761276537354628275574347642562497854636800742354111015525326295883671385762778163358676319137687136515325503876686509589498179005883123422751373027978805831263859524914045513282274794117064730910537388604378046350216097507519046803536799317718275766303804760754082859662133470791466288555278611071368718481852827579458573100393263966706431206445597229031746047249719935171265117624085143882120995041202684472860962128206613815750684625311701020362967393115390423763398215559579177904998036518920756571434152318824404525954856911750767032358560654055470514323753094933006365644828887588102437457890864811355033761915090554862500708106132267185812112837775466086191618332775147627772462808170019116653304976682414331755442541984385333613360606907612144371855142601142666142363890954719622913220462511615766481962819487616332238512528306454477137991500725244764637364574562402625252180722170783227684516457827802574568444988113671965111337622807218785778471274053317095651541018812956723410265441899177334739843416439492982725933271414938675185917256502422593454946214043858144293079376769728633989844889297435228990695149023117010883836909298191349903789095363815953658585575807545868403709274946759456775721297384314924659131078336904956979092033721576692226335940329911856412948531970566221515675724128428305180015603031599079023885812963147673435232773213513465058970578213127972395593481813571224348469715772569211051609998778144529326104507739189058629461602668426343471141384101075771960772791762494963328845011815285685774736126752702129470480612960362893670582298181774805970563047535931442452857873530478816579606568057321478839147795141186376935486764226089253072106751405529325061940803147241458059269455712619757497024854769693376189397743321124592266355497479871484922540753331428591437986226686911777803528517516421448506484504550640434048114200396209605853699842356526948088122414303241778453217989266560848120751911666694506275756766183522293085128529113642461372650305281878829992720738230262352737953002436011651820585803716751175316383947586048212334369112253068468190467263853111447866880757299672978734363598121691506670826236407418134686027237605742503418270729932753151248228379335998869803071853298388560309647450275657085027290096783521379578534073858931967151280880843924900044469746622589728146285154245486645557376466718724992779107457729461128651402625094014962527355440305640351656099031544088170123864087014891744421987838357995233046218402639661810954311221016093158817293231544071588716264442812020373167599069976158479773721420964113305915079010193532833434040870216386370531987518247707833751248350423343999182641370113956937466379246726150861427651026134250689455342494084354894786956104454250046565364681649712616016039125794423478735400626604688313167515741476281376952749665177017388669420085124441374347255246978931400078725820907098691162942430952817040871336594330627500197838505419248674939297355361258574400389164358571968606932650622318481383170911738207659981426272941671823397924987205167606095016369457772549544239372700203517108680068907129038515904179029545070099381934498019088813963251913984392823740875294053132069111308787375003963663963800575407043908032208824075414333365277619292082132735321805278422389289937225339529287614884829396494276052524907015615069216191324556626474759317348169652008789697437911942575721172374603398729168611909281060643521304816915964154399500096942475054961441297356850153067823459456638449691722390201478490377506893304083679776196248294738100254517513466571944894963741981944201586321935720399540027945200049376784539666484382196669047443039718380467469143743634240474278925168607104188444863723153682965104831498496781583728249531484953990821565002650195389986387823474969569337319144213110847711752356204925736027547353718349968261762058648703748674478527750143997172664672465387242358749822745144341360340080481619823987201816000710385677186596575174290990672340363779428355091969364612550278616807772461253687364217746193139651509906555782689776445059520120080218269925825145634145090610583483736325320528274592083015724945637592627712754573457313087316743311774183806470644857992166927864947098774198129999247520336620983124567640460459159130370664175194980718214524762498089536155054281235868255245435144303635657233919868756745397495540813320339191078638502691092770538278347449760194548340453394619804948404122188934047243149816769476777997813589144730378542581694592271517368668532087002341922970676110754291027809221348783311488486245666995544046457605645831201476159040636932380429446283893468115003726926087325049515063268192599157930587003956184975465545513506056766985779848846165911835883836555332915677868140074566506219125614065566146879458551581997756575328004964255445644327424322204067314675357159985369531293661888831070700015994743969265353321740549039386599400466169920221435269976338659667829930195500376929716912812809789318141772434095192941877755548892224478238993482394831849847998644299534384397524915457598939947781945921324981136783796505975142806767541107516139868863715691288318084187317399268994891055870380778869536180218154086292500831164100459851830023518959588927212199628065630786756291241169712270120298834885674952187375093596116053315268972639054591210612941746379070015716062901116174393441903877591660889945972025933530307687208248688170736075609648760976074430759934085148614703163993576578536076899986614905367369501817812443943374018984270451645964920267443950782150853008090781203378782586625511062839929802866790195283746591509306066706503197201530262256675812808533688148771449023338023239655010339425377487266703415633318466132180080468291788685356737327206867450817128136986954276541531072726131180298052477905396256212699419446254905710720764214224735461035898312652305343343833768522001305380004632214167320663740255205263639639289689318593314207586480783107692403185301938977555035897293200685785498597488629917499207618164651683570957428316769853722977209032306673050865210943053272509323486435361359171977127337352792019036796509444309683101474567060354362324193464752031868565160224924395861205368106104359799818622885810790996970538210021805755246984441184430880890439215194844953077890777796140208380674828354335775928299482890996562409075144339466230889396483404635817027516859123823427291950689566858459087978790406783723457474146295763667612821336842848128890811189281185136493611285663951920330619332790988658906438542816923360004618939956672003246362084705783389828118180010602038747613935071826341959040459061975259278021831057639938399108393865298374986552243414045670172132050246681287266200029588902463117384345727186505354209061195924027339108816101896803205248458359307456177818464733594833104082068035440997083950597856702553103633225716919604978959211933975669977776475941225604097976835671365259932085679631293774370006827591736128523814141938598300608393341559174447755106472765523702239350670569713556372860892293705871567521395150374098402347156980588441336202387363768329905386829818826711148510568740292030130513867631535129047804315341253533460707703530307046839617557169238649024731426607291712138593322606696404740311784254515609152640690982784386138202338477274384339044892597219177454276997292800360027682391046662674066714982665121573933292431750690549734913149772929857794226068230059446960966993575383104920575475365174213558801327676173289787252321978020173816560094905953177449311222009691819885464319034237716434835409881837253291039326911114459894899394827631579652055466015318960701281127894624106063526617872658837614128824946051552954161704150778658371761091823238301645187783707286649379847033920409099021450687190217213511216366300345425935257070010004818409207455470838603340418124521746734233409506975455211077048249627124460903783376408452587757562576369124689026532254259907503472126526552175816365227001732735644698301100490278600651710389904361545277108390043960483686221923754744003625947540534781476565245273665154841796271580342504756474655511005233577623035819628531790090743710219618100636938864746127304429180236577348348752824283979033988580125217053632546438556755546529663308460666008852117328516465689208479313629976088195160370964127034025152688877166612074171957470978476270383205842047990820635921513069920833323696844875642728945816125711331793534831537166920191661942742096485531624421298198997112111518021166325265453629837907809219523033652890128752544739738781007882742632349308014285581018242408755983522014914970203024733617091338011790691517229806106988928510775305742318764484539859075760961376829985165410678060090887850766268727117593922464844800173260883857655578163680905272001668271406570120650544328971855027051049025665878836792116682964423208108459396734360306797993218547392563791550688328050858728510734354075709851045096565109423715117809063764555185558024069032095912451720560116604158002908298927570450874486042225957160383146222915979184262527343747728877096994300864963066454921497456860856220378233565979008573038224833190389622266974658572468019256975595171016717151328728855702003440235983754399359420614892697383184283461059276939713094534122970162421838366204183414411907584370630926202944047134881924962623501060567764541629103106538271034391491014861355195975128504049007070997374735254129431990419254243264665707150821960563970752872061433223491979217361682962741793544191561565120020074150950652219733871823363367600852627847233284875055247254592203586848586430660021291591020462178075104317589869013367247259865458488192127838678251635956256851573153262437921981174438375089703037120118055130792844634087459100114332239930730950998241394066314847705662231330387861607516939119196460822058735994903260121036911850529255561800108662846866939651094787648609033956540052722899757139461999567490843213820609919818184045216474884708112530923113186161597238093013721984759503288431021739866935261606534184504386728282530058236875149256502575880243619196927908533721108534711537680201497379724682406267626635335012677822960768742062432737871617977741846522905923608339204720477980387706432128025187841201835845642389617470948254257003289135210062135845502137751556455302997227496450224089725722511363761872235558680990120250699970997423012034685076793175828708927943763483570816409399628003899121870435305358146854962365125965474591391950035228678511298500265334272054019537729510981693024404905200818796153714069492912023899237713893902662413512393164597381482729186019781261347038233696978758590937990604257923916717138064024410267142866225264482218643555602516082232143006905758052971170045377683457110204424083600401587273102398215951607566610342100336768385793700011362507225300256626557979294157313163276873285486098498159419655811778643965312849723454035143384048114403824758822522373797978694521354963584180618424732816667071423189216098766659400035998436517064322802600177406873496051377755329141478345129630463617126749464428355855191312071137032661943099580694034829863091548011775104602497658174623546133772280360754100346064336824572935822710680543675320477091904648447756174377222746313368701135279272783297002116978796663134907581409449929502273485113054686029929099614089045711145385755040984083460082907184158371943223821055153762504797559857886028781830717520114526444371061996468825832169064733215076553323593962786766501545993293959642486117317209786974200653665471006792863959899805675218197054652916260850068097400332652798632775737018338068233604952128558643199672368862054146234757932771102699932346028175613206104041564346319727099838049721437545883662764011371989950936897980657951163386486006900555236704243161970159555848797907498901646269808763208236240724303718578449426488667928376224885723389044890140189800826503985206131283686714042815705583633316202633508239256263272413442372809832983650797902863754112756793851316696374089532448470455153509458578102541272551515051168220998607852655793783642687986936974923679399057620609192082637241403318465561216908719888349997028553833547279979588740233749191298440312705350309553995604245550225765483041878757286889413044508289102949900166575165360289387642562890811669991660051095033858141213551627766587195985799760072038652777949741393909684360249314277526821926477778183947641655451137887905562309884224532861278970065186554954085437022603742254877229564532219065663134218093572221147908890421986522709452986843284453082148619391447580138030047665657782154678031018966236578720459924908155097511501296434149001720257856920167898006847452993376714133165482985508343590546245614867718388494756795991452619133182746774672274502299268251003017154783489232732804023156313674543560282578124580625085126414087246804207800789780672824776142949685128936547778903519596569839972885103054601563166991363318556069379623974392330838675819588548871427737750226952657452404208381241510859614335310527731899995751959406932494699435753345502210385072957065028577726565750644648100312310535843869746713237894411773728610791324999172098514995383610027964099426985537376028527728857095987668063037705229670269308662389196080453738158391351565580550269232079634026816205163682668365139464529981293586402337686726472583813776609545486698111671852725791251682547961818500156178373865579534738098034690773171070323568368231430473450118206666777544180842771000027998344946807492469481738157668005048346814299819825026027752280962713710858016847111077808233437274746403251108278152365124500652446206279700580925626121402936391193013050614484670251250557075308904333950421216636778395136151148494543748038330617773969907449728297399154230814582169332456793441671646946782407719312789745978159422678129447707227360175268401673643087411527085997446749118828857919996094829069498021705154941139167664448865891983505667470487236668670110929461027662273999986377061696321606301245790958104032441341834733868219325821626362728145090532518606591620187905491272989953928317305468015236996776485651987236453549521880347697040798674602172629855723522204494490137213872074083907934393966505417312698188822695622355601802335869197516721876639569189211911276318139661963928109874442869234170382533934879622634851654194495877772632905320334048664180169456306559666626673247436145653952323071734524424316845929163690549628018089039697814096015392854505168250674998462482012735314349072415441871302558462372803663198653866415217812955550622707988542129699424898200057218329100233855648981312080322879192670124647657228623033747891024926225338779434853847645820309372605962837917768311715378935875395141929529920654752939930969897093235751034286195246502605431439355501195010531287569884100701436706828654613153449476318679233913165809831163813410466125400050742992824198576245552783362349931403883586833468140213048622527447883712577879355497549632085345891705924612880025518379852034570838158006637085945439002230021358755535417015580497861522168152465360337259015831593163481621075564787919090752716553002122956448106587447394352025947215522930999888926546908438131790314475014908013893059676507760342062461670435321174661006770811674940626080952349067175933914304683674060302720711846255098569904879298501581050993568011045399342012054516481194608453490703871714905095496045764243512837723235803459527715320563565154309245888617659437138680694786941376320398604265039189208914971272266289747711380529594541664596788578654999574039617020927576628818797527231534058859364441670584944422484953300933357242015113374497783006702179251486390630066368124987713948520531013757106108083071792209810718352564972481265174513320487062733722662336309849836058548473739280522189971620827530516385644628947741884215452549199358878368723210278341863950424003428965623976449086367596161083679301008294016638402510864200329045725232879331778897199679342147261221123011224996384190862895673630512318375451915287530491465723802963826874908318198095362716768409382100146273538100960381830391138187038270859563257188450870135584876591541120928980194063552705453730052833286694826113544713885410878661810294887559304307257802311631081257094715607857433595908040818577892695493763819942062655897540220224981844447347798068293802532319210103344443512340914501231675619995412489079012510409160955906136924161021892024655103918654082327724607449039756777854849798704709681758109159810401389089145422883480061906870575988926394719834878788397734462718970933754779244347816024974260039555493827770765612893601114060735411242003249264777798807268699276910440255247398532778155936813065658124914599001207620260887423279663991891199885414200455234115017268378118916351578644468367630982877169132993001561698574355804771500759439737679234551182372387575755358018716504231612166532898870742232735832487386380363828215145112106021491772075117042548591375679648990056555527758688591023736018593629183281965552102896101013633910705578518871391429419653810643306906773702067120429387636935425235462373757434581418796491913010517030833079619864086445309466231041239175926724171224958549195113166535391584291089571853799019932876725193536987002629157090964713033000040510357103353743561768774142702387701318837970012436741628678162899616855745530340490493009793948052105211727495284187345575324914565742132153911256615752836743288770698186870765079625628599586946247216803190150359177012238494569523416410509411272072083572510025890492801260600775966173095064190272092122026356626241289743043838403341557382338018262291167492167755502561006714849638214543816091522024577177537689839499800053342356114335664329304971224011546686165360321989836809491532245908442316566278680872017509677596450260469093036062920807875373059001364529868318143157765466710111222123459780529373529759501546084133631378974125423263496831424977674026662099311187682241964971373230472744456495017924390170462458393776148534396387676097414084148351137541697596939081205081962740791405126836500042550017198158510822336880825211444956134696089204148457517526539532008755981345319498818485789347011588251477355563567491487974634589084070794841019747581853085163484864279947965787275608352461552055475132443938420599186379421441919556894752180764157136263496820350299527254572621112738617011161143966833701019632205168528086052108071564354393149681200392420247677019778743765539221861468746212993119741270746319052881861792294153951846230401124312179172236999364900740329939820096657691632677954142596629803953782242796881310417189766835991242710707890222777880818249982287742471092781753470333395936020438520267840229322759994795903021335082543957971970853720809074403420484815768527866776483573245017847703184068386018756124117614589667110386702046733439029152753695838692919720280299003966851645124998127666459188629759100517993982328148452654863204034115753468450002555119398375834139434519765725141317049128604789419781726486054595793161428406330300662592568267743180241148670740418712494271957611128363236569962782978554805868339490886683211284269877669955659315366437861514970159608003639895623008883929323662016772313640454125288865749619560941627365962982652244952390029897956265118774178760742679768349680368641516881513127637252106585423270605282822191387330430524206540453545639593782845915273714379499851400379207829389970625665603456597551407780477786318699425118750082275175784506098441302375452734244796932650654320284796296413759518075897576202903825686920113020273184736189493617229551402081060441153152304149353699925097444321827912705096601424627522530586723135341535196791273750688046104805709188651688178405738699914930956238890248635604624754289271481799790551786816043409889344463240059068768073773717065260452460745180454895465775732491239197547028274223991140465778605995934826986364359756814298217741071346147615487397423254854783592389000450246705342310793485578483246881897443523630932763507972323016065431686934514071616338898986581463634526109428741775200773370354743663170331586318888279362974678149837223103015108812012400101208197873313663672674089226494319265820853472616316674729161628083931681663288658117355001310447543979746573709933412492587261112509671906068812500877787495477001209719644877555350082691985094237971859801438384786754538615602130561031936007945438637394328728191403588926247030913873392279285810187899582170916997920446813843129113410334998209964239405718679608460382481091974451287627443143015350124662517737219107596449516092713382176976141365376125917478385180498425333240534872275437147299139663511299225589775718560369994311644622927444119328594400547655127175337882914887928105744308283012362058328961267280695725999330316350581674188865645626706685321096742915695094733849112352168821637062702219465762044029099108670698244310199049975046450903104945793834605010634307846013617161321221969068543441660634683670893147279001027327914286704156509172935654271287194913527708147967120262988727545910516834638149210917534515492387584939901924878107866113946378645237127355964343882802863711970626299399301257599694863680098995545579360992701077676423124224666292447502236966113985007312861460604510154904658215956580963269181984052129952743670937933258015799894207024496222298164223902175125518530935908500596799698381632504398681502131578053798584693385128332384107486154949156883491071763744476678811518588401730959802290109230045607659278581087741862137196202242299251188124714473227169561293679376362663451052750567800268112093353993201361646600505922596555672643882267324319404999591666748596369350800714213446763440887726296098039133054427526430510100534351232997738786006638470125739841093482391117929322712589618543007242253397380352729156098125774360306943854064129620209241714145689412780713043771032729250526751716833917489983778445495114764584286077588074403216578315889537097785867632822418622802206229166870263652277708438594346022267676418927606321158558947411435285833869315197400558120354575313828825510048760093274634573178354062554879172787278567181058296283596436451084590881256260054532104641985735563937972207496192999414478280594892514660277114542931212847444977690630876208175148775498482097616439802809275277357947014620027085340099024150937751669390501074705754512988266706394610329583174324749831814458795134928478530027727274725790553879391778313601182570227812748673207129909649192468687269256932876747968702615298538381250234786624355093613944963328387897517525630749188729128171578366392691008431466180343885695463947755266537005033931748272601936523817043248156093167097674058983939691237656545746483440721082311021000438419991446076178856768397984340523815572635447357738155528208877222883334678077099154772014214794914250643069950062106041526961375034989738670327440255956441909669849106085981581323788306311827769136874401830133457858341770412303442149618032977974324696748461260726507676586945044587978053026113113070043875703240543916398201776940958230993419411443553590963067176496177216549562603228314532361269353410452085545177592985415722314156031086362738100127994768416520049732940065914447831255850188389198314556069313366409436297789727337848078102453733927412848023312681315581574105014861451496773221192251106313514868510838017665732625759608273727093589321097706795583802536117946493278868174674293642615075901028202379051187409948493794449294187792654087412652006424894063152504781455721246484086989364988535092792547796641760893440432408592732022347939569362198621534149309176215841257943189403961398253931544083248917590833857533544895680108729828028309127726134013440475533638735024970484201434223364513477222172385227790821650993204512075037645092143070666397501020310160978191069635023301079087383796657977604226184596587780752995366698950918838837803172452476524961758193389867249738323115551514224710308249082404355564762349079598480743347077347758757693157348944002834342121410336765928381868529269026200935633014396879649688243741429291247576562974630747354783641575996655746856040398322656734889049219424606226791418055902432067437673528757972261788019794272807954598329394769748370507607609580422886294910295769106283020166527456271566835823311830677756617283099966155851271525682902963037265104499215145099485007480880888438589918878663607691431539982210107819382602102154624742243949644523895954419831662107925788820083074125319412842629461176211918822820640387280970780820962652779949838844281920705378483484223361121631966356381531224555063618563240823840620126855182216346691564972155022481556321409943116182870735302934302180239120760992146206505583559968424697473337356274136236833062367206250791426394109725770166521466176539587538082174770613480368796875246764703095404714131031648368627715312057648801480019594707595405157909798033898289984154309025523535888769707731432812060142552777511412787483791887138402893562733071511055124768587936324817145666003309134979234065216149314869610700856693432451365667620849193439360639710716509834830951949960051870800591809438285671054289321924489710335464820105725943553271544276327071867045818058489601466878761382379254199191827788264999131137535705274851476434574986376476284760778133642154518468691831817500473697116221594831590823834451138500276074410922926928937615996218383492713197680214859202389882696291436180348339745160110927073605704632354288496321490367039269768187911513634500628287311161619124540242043625987598547551328593491393558964411726122161658858792747642533874418067828866693322105132447802241679557327119515954081299678728849267267462724707813336052880611353114697373433030666409819596711172952544570626021448794181951939483470511913052949801127603854021373851802634327882828966162925505600789749407901538814022218784145098732884474282657855712952334011538387133497816672122781243692103787602932608811194338460719915336894727975680513092027627732094015098132200702583284821035328316070475746025550814106670940171358301737092062051421739482685701243247560412490629748883688156771459617304457217129233270137948092334903105668729909930530962746868051575825941135798799826558146560122310073447317393305583077105647572676629571051911750219173540330288543799527929706087180333693419148802837436454979297756208881830549798799573976956506725169254072931501763777284894894413711174246587195709944363385976102600528732948627847586490795360050056655630942507588524716897522159726101429217740427583625306181156517115568894779001432038609258439785464282245222104214029128460901607667417029855759716232385605836480285689685162496538578610762998995909062915636706577835742926119197617489294203116911142688102405752157196583548403121434712273507236439800412739354517474958253985169326821327721696097050186256850678378913550372295793150492141416051693159050152564571897500698950645577553538053005245396846572770710125213956617439187580478270191400568606237805573444526524261773799901341243440450643336834517717058178433111415639968906914833154875587512529856941520366280106536116194363676467932951040328806635780526998500142883404117247125015069604319451420669147117791812663355246603263521793518390753930784495092815776679757236078664590333074846274002696984813705154719531881829955735217723913363681433373028244357905497304160377479153741800251007085483975398582362476329650453315438083904683255118455178421010791547170459626306069448805343233188006067163357361522400316869246778931609938865328171750705643033231610975157649360341387715858001811021121096989039349122977472665486260144021276563334526189603775860031152097819302889666608904161878620719232940276965963759067778974224167483617073952735244005291437392873880822710071272930483025559568235704699294226953334538658919231653199593001829641202364968569009290320501623499155082899719975853456486605081684110832621879807582092059716642924852198930657718053910589062974981532908289659555739744510229287255871498679125974334387772333681906405294251028151392790553719101304167255944904649534172859482703690316322960392085059406559181303841061184420575657264124263179091186643707929347723875018414894477076634486104361727462513786646165586966437524318860473106766993280637174280486060968684336395629002218726347925775812189787792186097651235219236486727295617421005196466432445191066203183392614107916747318225295163363022703493655150490024181879874490599060954167112186913979146664234294170790877881423923974462592344047223415891113073344561126129097052253862224133071527564305256456596491580473880587785413190004066476787838527893093335678126814207432899864559917102196393020187123768909190737904312387760469041599667460374621224566644676862823314775737528239547046527667223572509599614648016263935518669181910107495669070379732185260418038437265834880684148993209208344510272159674150862089459646316552123210765788864825879978151132960908675611126749031228826221794526625377595530877900688547272083222595662931554064893282457660504031679471345991982596932579460308037803449352945212832453462183195983228259766105324869098219752090780072765983532424744821383533517218749400815370550115445629589791683986713729205419773931721107776014835170002361657389184701876538969115304181009292169797023806575518341122808316334299894043579075652383149869969887706764998125446541994210133577504727794014149670858421443296260727274331228953886351373273033091808936888709038381191384098972409928584644586425041896978772260300413059959764970425966232049939598351545042391996956793943482200563379846923629751076865745786557161076375146150056245780351865464580500262895893648445887392934062231954411372790303601653845619965032815289629202038204332876991050590811212949637257300818378216702445353782791065902995610183012575486052200721364658137076380232999758587538459880136216407019702656973254929180646404899191171888254149810313642018924743725566794798683999036159624568327068263690636605832912495934663504932472374653030291612276118900382648560265594479975145069552677563058560740948180974613477353289502017233022036775389730326827535786084683942984194521149545727289676741513967596817708217105263663504703162992136219789749842466256670333228211881260712835527821906428745057793507245926212680422235968759180910799149091525923851145955429759949749465563278601636182017016202442674065759638911050921963969143076963876555339736184200075269849043219230558711603973415798883243245721688468190407690698330690643332456626438279044020194654153592487753244927239682417476545997827464930817817481488625797275385058280564285707259083870519838956695546928214927769665903922055980310549096534552788102122851214942294840172589824843979496618458724010061559613472087736054358223432273912806147973491034076303537375633485804440127812874452437702963925176280860968558209722714493055877315779977291054801642386498845641515733162294610256343019742986114005705482155238899024850419435135639842369461333280130556876061613950152622876603355601283769229906426153949224523121847946818742208955606429435950237195298275075343059420478701881367501329501462119287961003723875999688155282180311793251468266964998601064652760282112540906368322169375835184687179966133074189789044337406176981448216935570914529840026132170756186452864925489237129607432203971003465224505510687462846003121959211385352179308795033565693060152255089549977185921920670522309901988919469379740298783708796036193074147067353188992438852014402203213263490439057242466377257855219301138335422771690550010782361581158508240412779764189436763854861519054233998832186205968810191145414757002375592565876966876467419665014501404733723302216094447647402815735843055384706072550522930934146845251716446380881033021684076985014468098254104291976468468006369072219479219343996313246780971516211179029002690899050907223436059470552956765743023023207423240981114600302042616279296296023875033352698992013355740284963960543127413509319588576706671288527146863061500522795979555653237293088869766815522911916501262448207072528168890908824413296187562827550738910729281452300512252866044345478178038409135888388096138075697952700892418477086939697312462575127285358544723011949239635341601490909255789966178592819322217319837977927995509434657644022701246879375110298205404894112285343797581222116654917251082163874720210646811999893895558953911698308345266978716816382962777052236035828056787019853573156092086133902641364709576505456177066697020750007394651353258620754230718214568216247483647921657181935065077621680878075552888738542883070051469400049919560532050938677365265144141513794161316657881724037415208655503143360965597462343271913735617657503940792696911545522173160106815978891927628541125979277480512873609180697946770144374744447476043850026215463230235796931170451362796791373606533264716334127000582620979252328794580912995511934023378806804386589982559508288322975917553205153188744581930893500596350054639255552949576449216491629769189111813235775674765864268640396432151836102856305242828421124404493961599462570445681390332132003681052249876788714227983926391270945128011230908852805062736075025069148772515277411975530193742862885693892943782846755511866930312499517881485280942290711509552749876939375460483711796467137272984191016685666252805996195810287352188591961907368483390935740039059145784056453570821607156366929240978584060449684784227684191209178412754152866838647204786335138839780120352663171142146009282813805660853027905287087454139791978822220154971991656562584066972573963156098954646375597168296844290069606543072933799702464712321770586836115521623218756912443977554396207544887725850577431676330207342564808081874946835101392668050917835854574065336066119469435646472968728357497203413781848074122876145853085435948603075185849196692922734865172303246279766799116892463499969398845376274934502804320534556315191203181220224810370654969482790137722633664698583176190376627322191885773480311242196926896649433790347226732085300362191604196917233945710003734377124738332454195101817147605634329638899193460719847106327254675010967471441388238005061952035005619020125882242588911456718908716331379974955135703488858136529786393127814660685736712262317006868329258745416519124059423274065438985863945919688847175292331545985341716479898789428056726585560136265328395924761019466664048118662468684769534701620535396177234406401040118284532585977100882298136791730800941678860918171082351313388879769494207692023447129522281192497653093501949725796082690232606824920388568859699375392267756190676386075908516322856579804598905318528748396680567191056261476705461599402944296029387931758506926257758490256436295058858438843807411632019144188027480032921519974027394137863515401670660062888816217557787665033606255865142442014351131944784277085098027343153255740207976893732935981106781009176385700031206780478498724563441798556753307662203605965929713730721806624272022382553342230545094528335123762687672674256335178798595283444606249651195111438678726225347585683779858327810543121441756267086359015242530129913818005143292920133862895508653777247662666501646813039510385591626431364699925571351894272039060573551235176568405760851386781089371627514192349374964906004876354441105415029895915926439251832757917212883534591012414907181253969040174643909905908432416151965775130544063940338045107664938208788549997012340028014789713551770178182240898785272447569359738322860084137662263243666028027461308313860940269159613399973606595025448682265925902674303240351844384265906204136567107436858689577537119622574606124097976416251354126738230641209535122916237731369728433528659203275013860104640726345423340809213592017274709416080121897988725135756006635277981209193549611867287993308028105815488092735906358918641875252762406327344308188334508995300101632168952052852374486451079251842013574532271695866930167156970220671547200587064730382705439186002826011808076329283418744524404616681990441277973124282270586272633218209594090814632253619393681687986385576474031537469354699165681025438588636533016810770704537935290174762604242644690218159350974834945579327249378881078493371324492419140525968193943572175965275058693001107320291047182552091368104824719340278489434161780775780832551466755477096650299579303119487024433540275032905585643987119357561167873637098006044209323720760294821202779628245729027817998677129517238639908143754420572537281284393736810627860605898891256908883447365492895976306563785856993427679022461168365384666117174358336472652989266886179014843776342775807762742449956192670697948819862587353437047881584197296556111487890113938056845965017382659474153690791463301586106635545246353665004135167851971422131728797104212521455528624062162339641647056707861394262297271740155961542001094827807096004700218304977674447616123146947867592551350475066676979466753248132602771501188992383778681470270732849007712115313832355911044284465318617309390563422655290126676826467466727683991542270653746636465152760853756443436390864378689330438748918784300750130212516976140586808167625342534096847909625903611717517849512511591860907518226613829395721172117911912138509102387072122211110867367922027575084461957713633466280923720222933507026273953546761769332048023034870237605508001042395402529551296057653409202846222648578513561808672343907527011735989167463429644258920564731666640705193693929537002661813698608841885995886013764704870389164290025570497485639518033675541674139910654589072008766140896496725561038623061166730468735749711376286280424772208115811080067526856718755599538302689642251195438094527920527467177068267861688924527699197040633006593183739282517795543168199749322709975934369841102413405506800195678762580633398873027186424913941110733131566040736354576265950431150739616229735342524355281053037074511500939666063456430694794317529480792107393977492629972576228806579605868153509249387675993560277341898414286634586822391717803790691174868395110485173222632038053645575285142294294039677960524489412022341285994851420823496879865732452529601759183380937888632807834021173339959750898173296205131260132188358473957552521381999143226958042079690239599068530958316918489742020355675787202917967735794489845021516806472743465855390549799052315762185803499508055049932148709444617374667751826708930039815595429503723548302161864737631542392630372011619331246800577353775400743487901949496872083766677550668728138633991674305473006398836478961124564048519009150695365126400843613258804360257434439028523663164075964480679597520829521357805632763226263268162800293758113090831310744852927855740249048219907358321710706556052120177125582339018113353874312001918812653399389260930614218260106868538196597948071419977742752779602877167267382650008179971747271180535098545927513515062569534635812012714523584109953251351933150062965630638634984317487219796171152180214866560427744519888754363208068522271228788576531762641452404214607215452600113425136239366751995698048208274498936213386785231978949572586555463380944187609166471782264829778869696746650843682679607804595932344329878910771206016610072356241791986116994731272386534391957169964276680106391395018240251692371300003076832367259876496541761807496819461456765161131843606030754232751168948227221724246422246902399137521896040284415861176807456554509891540815595607117257059729260338288960115385485550186641499103972881406684010651077917087493342929451030577870760288038471755432560628042680644418323438862323092346904223873650043936622787114788441748418350151631426963682071506547130244205062559939223857615881206625130710023347094038804463140903534580102550298327785662804205371849672588945433750393476462404020726167306754528237234924067312430233652114429963910736130671056196801413717257290782422631355353806477130936362265886782462980447416202847985736390139822676511152809917101605256983513268857688946209391628670564260097294281529620709493443420517372270696723598699237216331870900942103356158798211953794550504748286261575706705415836879736515184547957251829101090284985813753494229631048079288314184785805320082234368230513223561742754068400593997145133524763205870121139244439180754689139541227863052377562874512896231887324625284120249666988463011794547760502199382795009745452688291766873107390115705681345115739005586282746317574857825387867510720391243910631493968085117382095309002583380183877180569808380425214248587430918202970963396649309794870199927158165138786714544109137211043031803542879292048765192319993163735906387756142701918096925088235783052801292484646192732129445939283607871378146869973688537326990314497420338926205559492549300180724575944548534531635531799052112565007591699423886515174125001381009931066868971221424937432867270833470524163408535503199498571594344984558932358536454862536301205902814123892416674951889416224079241228786161255791370135543573455986573306314972439318544581316188654541958864150441851299452050752439971560008836129944452726158718183428588279816683851675237667830648154280167102603042199364228058320141860938423245447458935242102298121724493551228092452564391197494826819880524407125330277326023835877556798625314117143971924940227563896340222310345822265970013598639856175018445821986906625087848632261920510385170833227331053660886711824566857394495056792980845523546964814467851603958706207706523288818038475972018892872874584921708590043523897402211400989976009499748527173774973895013614038730398429027069476057371855837563174831504758741617288357908782639625570316012499347174946118409052566370075320059717716699809220592219800568735027770242006747974441464721183790107675633759820528537404671696455553113117487767545488441647111966047632121044281576845172737983101078263255879932936171697631218672729061018338243181495319405147629239738005703573785594144006810466273917079307517757234803645459738314023138799228529894415170158606026138380433047909742583503217841779075426826893493219057668090801249581062612177871345135250714392942448412847473748576220709064562817004402891387468399085944922906752475257693446996648685451316493571095230400222230330125893303852028365520422492327305451302792747859637963491732481163598713050494822324718204129415371110267835693205436035949524547174682697150357378330145311962727814842356990182522265076299193252086946046131706170159084557419885864045063267347031783459608197761097379400646470612510961323781429496180853755828311931397916627492611285841015183750280468981133555707820530251104808302648099720569915127359794094593782053732374921547797072813236248770930555366278584321503033630245657872492433683374612373064996026826431600997899550883159130710904909079553246927027122218986438029093123557541837914079602474961550176923472560289951664885087803533806624619089370559493710997643076272784782539718088226325398401364598578144509257066731770162293817327613787744451771224601665036160994711086304842926485578053731737218029890238159900692536883806586397323939974424248699215065862912387227850814331312348203600392332466522573614648244938480705293688818639890082901359575800081813973370704151348695219966330681046783184023918317893469933160148593486322579068861092874354933240345957958125811158050873258710645851634616227024518402140974039920390677709142937456251354776163462795189832306363494494891121690510385314532734055111157477715764692730940509832720691754799065254680431987316979348988881491529543788611384618203056130727247080441244387016950556735503141282099221572094174290371331367878504540844358882374786995690070956381213330738060811939737509328908476543755525648467173586470296613333438326902181838938729019023685547930217334488486397545842139183175071719277009704100412266311984610415578809142669305118416980425106393063396487082591378896907052335070458730997407129273041753287624208914184889371928989652898718306744742664988725424563770498029855020241587529297356735285484861452739332800164933926968500780853924667799095968608093837000041065385871964985717737558895565635910165960049755915666209978953968916783795249481365127180497027421119985235373196801157074931412898053594672274535140714162588815986984961203953563678866577348596777159371188766401072358673221318861311467443167834216720214947230376515288321522377744561022412468678878977148445989962199833280795970608965120425160371052432022936755239331100619117884774596839837527488676054045545581943843361553715594494316776563082756908300363124913222673509580918126590457165301330814012042888692367660257040440488720170612644108225935937220045105167231657700109633147552659208050653929224356269023523551832612125800292997043782944104897986356522842460484319721054905018945358502047137781100394390000789770476543672611267202132611193968891824881498102492754950952779972559430097443467024677848297335156336171526866999824747448127826319004113092194824899958113154041353205860125657462812328406761871901546386753250570699401904771252515737865430070567990587496143878014011953161144610276320609390750065576877134444038567415455299451177713867386182721635766936030041669713322331128196328074033402775364695842702384144533905863030878454883203011640458271812343757883218101285258041926623380356844461752538761096360296768270668793051190270275057862855407562133778901351271825099119978425694853587340131950904258587996773662910551457315654612429238559426067569630008688055898985613930885357833606140454027084274195044315308244261689771823156730072761454792566089873283716184645577091164114573514999162942762981174054820612970703949264932785248530906398010070590855249241382443024962362171299478788245399459385599650402913807031296496368253157353035839967340663119338165766690022087579147851264327910527735952869987585255551118598599158022391897101733725501520355220613121241818988447061685442496133438724777002176807246308358430388150075432972649173275457699433227512474181535959096392666385915026834316865614561979752316889482533373598600864313592862606407386378016511768595445314877537228140495867749922455771853390527527478100377415152397175296354093941401595262446523021275314500842636445262426156346593174842359627222093025625231924276302294268457985279420015900038083698061446004276279007868588412414928521981159620059160285417794512411145685482034919869073628271193853577106773963706570849690612680515567455889663358048603995409402044431832420150457598215615561226914539757903833936524833506678869503547812330806344103278366104092831535404577575819285704065033691091835183090346692746133574999775463311202473289105996794085788693028520923697150646289504335017026726630053886183329343422420274078648271853446126567786877621174660493402675419381582384305855267726144632671862042693282442879633221647764944788489967806466005579498945501518889942325558358998144014085601198990233320816973892410024364311370309463697511638560037781968183187701285149039196844411330746373810036510541941307295161913411482855868532212544628244905546059235963117797825697205397011835093601032510350628142416122657549746993586525599808512108420562326335996772942553602298186278619927360139368843196303483253780093341221255978103172044665124282077840949136873094996395718025799017229367613126717509561564250410741250265475444628298548860991290007471789396185670321168488126574341763046813903248561808620966253567812122209574529656911398159495700402966596543126380264347469512889823054341863431754145251276480735634687296746348053153124378984574073299452346744657137400698559234569376034623357559573207174317236054723443358690577262858939856194189408047162531367420231569344148796654294949053102789416621279288037082566465536487066444074466821586751941382266538050579099792925489703919622696841211053891768906977392449846677412309872696153428827087818130822981884831307698140578297703194526044561278356251152360126505819960784126914072656575483355709635193318737513074500007408468075397850701906204484767017918441630978609144813982366901450668711680107668578603815419624055753867579694959124856163537564869226338639969985885313856478146669438259469276218122173169901191086808329179447368005064159490235457230018063727295489601194740383496125991079963044020935253769000891313080998747959260617538712653009458789349347894486620047805697693934917583407519169945988144307753924539929610180206920553693434479819652624570955172798772628164299436987986046913622241064551084651051206068867749765468768687981701432074505662199126174758500737669908180958874541822019855814777520323929511881073703557904223653907937719323908725565771818026939400839369641427520743159893766989160079132908470975862898248292697770651383642327526295877254424146783991724934371243112738384479176315966091505101003833741860351934447103736736258427202101933390230472780321321409535314775127212795322676002790367939393754253918592116193054568490342450049670375947547433007896975074500698103803794026410367335247641490261421926002741794267086968557936122619236193915097931537327817332208039124035426652404876642125688517489138276074199218540421283238759715399153405765524371304313390990457548843492171944142486855846310917187076612480440033861131204526360962944444476724305293080407725913701100461705016280038817202993957840172047347671896545711605970291216307655609088577487914425770576439051929078092329012568697611040158457027263901110997202034897491663934972220257951034829352110526643459788188576524075364677088515885920305651716853588301569407550590065428808285764750041612387043014509427839539359968925637548830085266228595565118085087772616565233842586400244092058964893081543446991775963160037812914428023888635358309179593360917998085517395174243111999855929211452451020110333021070287891182741504212711282419688069538166857932508382348757244333249045910054934118837373361700216955191545329571128369033809831388484828325697405000735937077385134098730162040179629500128279032378618970611208985816862702902413525725269428357030541606587412425886721227683732639098078548953614665065258424088739021842798587583983412375053094856672367782426998186290667408427676280580867925085277047109437026554548923735586946298298761064192514437948228574336669361204793529633512189139122230579025981341175210678812732456959810668059123199300179133897868907426166762537567737898594542178008103820208878732210134824214590944221820937547122050023303249022695141001519221427459122363930903764133621421509748285472697794559777951561419018469492643204391748514791495299029016831119746242230664129687864075876757989548846555578385657356358274544211675398575555988810916582704155607507743861794927963230877499441633352102213389652638313049742159129944579879104929472251083867080501821782628697080605183416220441659746501124862634245976861336930785883471768638657874553374752248857193005239814636496023757158667563031663302328859052928974396776611728546483578392985139546522353493681634177907496545027246745570214561827859016018791830200818063931318650274991557596839673610159361308242218962735450654511363503041210110200755168632357894429439129434634289068381844212014890373609162093513202178334558275294237403275286432651329144909973017787008575904008749257682422783039035571137004717302099665059518366450253929447239113942812737333649205382471261217508952425206621113070319436878828354324962627357930060163836608541038058750729368996884491041595565853461411441001413858659873969157185411717694361257916230980390143733171208834725878357101282266268049603056537809713995644122199634947047351550977666768687416930400296183053388790852104436612558544123111142395547686431329387956600781592660529917272003164632388460566034178660932989438494458988114627054526238465380283859978951320648746168724680728791697341848640895380307182483598006903222497528442602792876695062142798958211111653377105066386795564588935003475004904229370787951262355894994648702428774467283054271114277970736454111361537323758517695367859650975474429281736461046700258409308454147662039675496579328999355550115671195918275888385746038354239535270512701671305785809227680372110795983313437143277338282846821254419893215730541704989392458022506553590963812768796364202214691908025824123707665476205232708241729035755574177741871770120110318394666604949824381002862666106793801134550580015400053795202532862872934837363901410475534644997142622757188809957722000490448145015506625375542269587347002236162206892042859622582277277785135284307215207062623403040636598965296955256123960178026039470630487109453245230756124798534454672226417966355273785140117922263040278121982268990270961836737826495429315311020165865337852397469198404539746115676716901478758099932495675536835986852949028820817214235375583641641000568650310776345329296262666430725883039886667324446225996586699579013341948069104307928221945086878134700085010308860712488996641063348634990143931020948858949282520779222460521919245328908803693728015493223935974552789435074587314765567347450641927778783361188094156005380607762685068691494908809379192985153742032884044461644814115288910971704949804866304240063285615549365732275047290655012083295910966393988425058546797227408640251411770905751891483124898323796420869592811034952888731629343989955048308868134361416040020935709813943602258317912943662742151981345101966687176889060233491408712396092356996519237406664894755176391345729861809094075108108017560465563539642268246211247068951913145096938892390635480371121132940943773987317031327320434939932930103352604360779725671579183844448715018677868686147303255581712477891936814957809890903907813625259328348876339368770595113022327578497410657844122670703408757453231245595182442640146942960288076092250575762406561932990760554276200334191553212015551625183351689343856849977037398406812353186358184739066670997541387018724435237847296858081116051768456095509073158083925447141592213582660033743123448885771016069409565428926427053599982741194591864049910166666200221943812499426254535937511655474753079705645451725711865644011100932059168963421389646535914190171755421367631260672325278621338263950534885350101182639029892599433997045021042139093631112468889488237045775671495481286740334768148170317631505703696883418675432466605885769534636252443530781353537965985765261573311081645094039235174634425857746114394399563100647537316100645906882252370248674554498598684173015829017488773633042192700451778021107946408685878509833044985448105253455520926960336956415600745554090751163537432486760263669197364046869782855333323563251911474758011417654562089856603216653726792044848723500161436051344651310032874502470162683759773273200861465502665220750220786500686005654953924347669036946973491226322715411863997195545868284348649002196155157045555738766282345349494552032034396864408012935484443574239064531083336217847574004359105007646212738522503291172990330362399032822516354872178641918556632047232047788313623160563358406914453711212510098556372978664575575213377995386680605036787712434437432484706829029564939385992734541086630041844494567344122771611291791025904504532473183823110468155644597990207225519412479852780245274189111263206135545597032516158562276940204198200479922733350129194454603995298811258813243511073165755850978001758783636339422393858010411601187543879142812631036197399567630580873335443462992002204461583356670396025451211341308474304496953374287904800644937623375373886946852413299961884234013164845101705850014944454009524433478894426638002846170785028873634998601745971132092657614759221530504622388936029875363986735050832321975619824236965320427089835246184328494736163928225773892666828358747504043228842282204072570203033035268702767728295097621336667704384408170392597787310971483069632742250062794447076588677963857932132360813587231699105188907228092072438368501845055264771212318323795199779600973863354153590112713256165617991824801273380534661422902705547921618198923650326002538729224255896435210905864141991839695678053865899177232137381061624610890524109567854730880763508097579322398727432120745620873255287167141204938533738483637059545984638096749874404299360756983766055879083555218944642906065280114563730087131212623858385140070890545015431343735621310012382561482356783600068134831653146530643797326089122324386519804125770366094439260803716024987388787443786693414627983591598228304518552965339326372849396175882314428233028341226088296281680362927247291997314517070392475142867423140788331468505371238924144937958685868255619070193810187671097814213706676877262437038590012254783711742838466251982559701726798805011650128959172989900317328857172295342144828386179449799218956480041939444318373374652340391745582746260968058897122198415775767262481091199667747848088636414995778160290214576083136632150986119517865099569911493570825727050348407300414282742092099985072489991624624095114778181655966020692633893891712583309734108213330892865456057874196233470410495909987630149350603007826846695697307138463242685547925053018512697659624716781428694101396654886731388799115703626909679846279095659473120647546368766917119990675706284944043797119637139611715481303497792510622294069118232497927010172491237020067627838878537900375639431463800209465833772294828977055602713395058915023085198278894568953374916859481002900829354989444392274026356990880247162212667684832808073481447713288771686887214550627386381308835750110579328410779172606227590763298882898783777646978717400924167809625571566756657268117628770729283248323771067149667290538231937317757081093973587608948413432951150595294686204602672330233862694225385619654414983196026073401042541931707211866012779499551342573942165989228229142517624046224941039872035179763558196540213709861745630364578263760566274054349178270905882578045474763187564130228833694536747152892214785603774059652308594247633173929920929672270845996239729638093069928721014865774563343205425971932714195656587127832810129878625442931186633429647994252056887107827147063162000345291205062283256438519864422149394242176472878222438399717319711469844278406945536297382442904820462873283296875076605076205284195303195518712953478665927615633021772431771184318364339627019275616260435342418675648205627109505493954223206753678491496289877466799706135753296955983093496126529757663969024712784053136115770179044283311195531021730328024608549473939821237943273948539556092957479403949681399102300243225404112149313340576163454333712249212207077730310809749083030451591863290181330411224959302428273677251613783187021288144524070509705011341734372995028663274963326571834789164425521691405683742986568322014236885751723734784031066811841529733722737566758471151386226912425995961774612816174178196428106063403910520083568328655808574828304343771135364511642375920561668768061289980134879515006660744999226333494007500557761890190527277553350801642648416461079680056627289995327547126907324744204550358677138024424692411977331476192806758141595921867606933552139391407513027224449753804053181798240139533547278282969263240611204292416265033368134476823890687127430049401003907156001160224997926013116755943887737859180185820106404471254305636284162375336727612349308628465491493957688286718935119704821180828722054337124999004223145581887553373187905901874519447697604366662274686704723615535188044383710036834172129511038375520306936130940169591494304886728472751190742041503632042517680820027581087308503344874934730727277857500290975739507098747104914037159500283712056135008824466986046277409330574831094716447316833172279495490814130371686978046133705444620258365647143018814119723809508997625688915582546259990111108815368748394831931912120652139141553751890827592657903810390368289993885604192854162250693394262981390854050615807429171357646447887556656057462072358458956827689921525597343184221410394136943746114448940362036739637091883378008830175229083882798434687248179973610587743782679004164891149804798490164909827292832743447508542311315749472972855999853338607464782398569654885586954093814984644639732802965045120051956053178822238182668424937058173168002586299959995287299765716932569447604760059508071449605449284930848832973596994542136396388043420229310352072838457554176184967777404942732663352402656422008405654643133749219014291772595227241595960272393620502798547438599336774339724840810392690240540055061783638654292691040458868420576861946088902932896549813651895454136967352322298567213900958723303634514531320246046528051382958457242272917568097673793238095129418041803543193748974421032027146795336115547316527503734858370235569255999383516227834177796368499424441520383163431216989231760258687633668197313993508416017989872353609510378511632755973494813377201828194281489107028924608933330705351212837347826267094488986458638292141243087870881868028833357369723204027469600596953304216923737090917557467486472128168575706520151837740882636711126853869322185336742741729624382729410862113542801490380846661012253442097961121338740115758334629533719238189035809792594645160652475852823744438417005077252019754152753933342357852769140433492952122135100649843182132240104361129131115293805004156170944668799949252483781412843422033986522081656318978387967518630363701137264560031459062430098929908097732135229275915042730658287458349675378713735782975118406466394547281912208233825681673651160527908743746850101115540002590919575015630983972150098495909897632488501836404802348269526301940289704218326864168738888325880519748160031164886688426877098575825440354536163397338171903412740174754282729084132293117347324996558299577829250728289118684351402681578073622865885083552882611915938328060044598639117753356265732426986822031149723325672247748267876654323710785663169555289443913013102231129083784226801892366016763430469234396098066967836767684866663495513476428534896860992042676251602090307946173745612337420923347180367620416724883537795226417505164384411519988553651607679815587948703796783865470492784108882930195164139099529351497274893434718885161467726963412324229717394792773423966081870704873322369159782564835561772999139492206696817340585133457051948275963056176136900466899510098959251263763418190452102774538294809330247619867809345469843558299189596653326172979971526282136200562620728938162518054465888325536534209058744806641059069708937915510162591086426052397691248064254663810268975789681573983259465354529623401341412502237942271298292860290420547727299100442183419638615877182026020197890777617534587151465602019459844056921917434787947935593092666779251534535999633155670751923129821566609502036840203050696977908970646723294884098575965470572010836933790697636196503434187965851167300315180164213651773096582370480668740751455916677280082826264991467323191385468399332741784489752135756961302634328438082709840528483682787502545971295684892136402076807811878628803374353708472282165452394881508796024848719923139829526475106460339590118162564632554410099195026523783945306798160406971147212627622090965354294719850598271227461842508604487030579928940221935364928958941120084476135459473836165002283706092687884864181611358594561016673519437810661960739249578353858341156845672556561127678587061490497621869106632049835600363774417312554508156856668285434836730575670408681194020567115349290451190858342258817467964251995261309738590501346756030461310702402458656381217388064718038044210882961827113804683350451370170455417421825645831665288840302859260232172649108313119526514145000709412323107975294181226620179752387719470367179048945052063050264207525928185364698716877835964831918857893794404679580896263713189175516325455648243166584406629666211148556479943320944068465453615413389003598357727320426634974621345828931990748658921876471504560042370689043965810594958790099509326395299248540940838385049413536834840606291905759957714360618164248730444176808887959412942510814697975902195206608432632146423775511045897059634164865359347675336783264769906163098410207045551599286921876680001364788304653903559689622709033885188012363340348989336256790123310111217085046137210136980045623484291489969809009670751372552841546900143460318796077567494782747686197899668148904311309458561339145517261830311584431293715458974006572660332180604984491454997963778746883805370838575114448893333387948172851623002983734753914390886990754601923052197841888833083176077663515705206888083270861950266311321796768300069117202520452943992670026989066318554558383706791751457491906504589637756128127044275595063586282990493739845612875129017688791741701741068834657871461519318795865180552236407010806066637671164686444607227054781874072233400561209274530858497711183619424719390761701439561713582055260576975716570577820641084301672980371851103319672013904647322512073069289747419025247914595599910803342210976777146325821604488640950214854459567673594622083214930216971185596567517970800218758603633302168519412095025846277131520806770869665021567635023482461159963791915832195203214741022501504412143822698767020696765527971261725398473786683821110035890251917949920059620902921308382903509379406013605954408315325783872602674783948354964016463634692184314711188975147351256059552161944111542616365949297028100699352166413367826571398012064772891385161854017366351412067852093133208646836164526617665393283275160292114508443001460158537964000343635262251627344644953253361107540091208694148189858610641624678036021578840882645838985682793424884902145062649047679479985302852801001913470171718211981862806616631880652039114999229629747687081177075901911921031030925265257304043194153497952783487684990326663777807441974853285782300156602746188247219004402922740400129100090601190328282493608930382769694562383359499909284596563838944357906489119964581945054915689829864131967498279946501120897660971616410857810444202686430909080655953007100922091482625176287495549153191950367985801782110844309414943858676498421568715177845353585522170201399560073686856682372991949153328391702669006903393276218188878186190082505176570543509998114674643024899569643863208439447840593553739840171198402280073576199766587779913242603069538718876260980316061877966163098423907048322962753071240170253338387491117343396471933762504593876668736456411429067077856937573988890161247020458329695580133657719892454926263577739902888051152051397076275389103528754225515755513136079037946942953502290985229099803751961927285164053145684797110888066686953169734635778511851215571240406030513643939615914898262155814048579583764185724993669758684240944521216300758465908648926682979002219043317704931282393393690311953550130187057592611508196371319022200022994665211722029862747431625688036448237397978061384079790362159179903938294725204362702239152521378652687496420100641540566345749264967770932313721040016442358097426264609071659444224827929855809186178177581331011172978890389310928177104888403958394722187311111861952514243671180380734766456412449571699124634755336404690449239366777782609214636079915724875407646419620902684666413798082656247006664295747975691387794231830398551326858440496121427175168667248527165427803543856281527514073203487404438833964666226915970854402580953507670708847560538197696124612057458809758930776938898371779173943920298140432792478430289090588676490461328299987840571863741676588812201530440140291905712957325317078224289473792702971667301229660962778683227382591383591796075728242747205615143165947741133497072764412262613901710444048597020600459053199755983431341162624991385210256984313909835277133457792001799191920004903391364047241595482072932046645740295043777499219944590040127021080503703631072670161786922376446061447716016949269662353548566894636535250940281700507979712861697716300790430703084459568450927953618397308545083785245337478935463951881308559161803202603407237491936939172344321509368749753448451912771339362649521281246044227974427062021191077674190164414168653594574444945116563268759838229387703093926224529273710899751931247866375043756166111851091673468543668939828388763472435772590033974362263075334951637630571181851766223767200642106697554619911467151737829968301329520090992388287680152424206382933560165190196402947126610857585288558027831852468541273389605919960387830868157390748296711759149132934621787013033053451308286585524023033205419206941245594744853272524563036540094416043422850989656184729763243110775010549682632357871553868337377350842250656186072686353257213421919564696382192018449279665455603016814217886008306081731462078738349248564460355003126217586384165159527788019435278160391070281637545773264793441807784271828133945949125753057061033976759740160444348400168029426038351022789079225534183262990275872230890943947646786784410337172477053712756979235904590403038950513071138151626854494366507341539898230685818688438843628300265839253820629616663860382328050935451673259952846962819765124615248603347281057213717642400908444200834754224407110318414838083171119604636539130719375711563400856152332528607039217678287252893705520382513488692636593086662162941706809228470321541342829648451451793783944357334081572120711955567401360151187421956769723363173705920417779979160538102779172579484138436300005242770807521138358493777879536583233779992596670810254918271192146630280593865911480385590105032657349352323498300480046854031091533996711482458546269653284533193578266328994866591530129547224492640386942777051486074914783234082759206828441969536316611518530690290976796689959968212311011335555855971293284684915293895991026566013626017648425805668938501150548149019888144078383770283571192802214418014974601016608541713363903519317740715557163637742050484993118035633634930437834597342496699211335192332383450028863536176917862887092652301190030407410048408449661734555393612015225939726620208258071709937920930154057737675669571387567601811999694439602704935878971683881851000846074626826157396270658605130467321799552257057334343751036674318736430261055109830353000600015614363178607956432691446780684969087774463006460219651757665692467140719013263436735782275787107571621587776553570318287825514861888311426294061813097165080681344272630786775567370294653127995410007814870423156104540128671530231563129968576685710767365817595004555210609562979581189477452757373576281638479661905832274562296280262381174900978742344900554680929629686839982605670728487669069445541692458042931698253995868432833627144285838492398938043220356464038251888929160306521709427122068802257135279578546041222432411509567192475766525251213885988866827647930285149766737740039014372385370678955568238225791404736905992748655897012268140662502577755978837742488077252069421805177767082639405893696572084550534015295327590961816797054804892572416444455181970547900919535517244150453233111541742474726374362293549084371467338888042345881441908126689629046916023645595454761271136373276881854910387577149429237107508035335787632924748784916809709615551278375480977723129665539945427220603617138147886454219001997476728165973091503441509808559198628763273037698987792071436152296384861178905472329237701435828519990537055676006785942450350897756389857305387544110445299033698744804399262261030210611026966007156019738260769615337198538495922603190184251910848871080603485221395073997422509419458242715591055060187549122461549477068702762274834233653432119753350788997144527876605409456917110461497260174677286761668993573291014096227279393249005098761095771148177351981977826967517401144342109972781050736052128108022991167794533350450865772667201383933124867288900606875735945618853972207918732236380107973482507500895473865004664520665058905984937519879129597383766525901918949855583344809816785458028349325596132444471133155582696504007040740504949730317297512010059338236240420042362110236217155298952240219177290689516509819356789195606983150621885857118750829101536801076267836599201022226138146155089116256824726306256747140120917383858407119051221721354513944273806820302074457634876027639319051218416113744954844853809544466227344221275764188720831859092944353236866359809051570854720639850814420987097203532894639913022710367769507757566291227332286074156729167727361933540337919745130070308387257369499337735136672433453526250774164856466413340562219063502991138482557097466441909960874877775946865012079502701289938497642168690362091727993990481294600779448299898720045693854478393212856490132592224995694809822676035401213368570131112353681538892038664415297579522195431918486959968657192947231629567633142664379007599608351013262966628641514155053191654309468829792955355389628601791019276341351064811526758284582129734341616961744000753843632866255219680327515778501576062185693788799573620783912381906581693398097265836588110799359089256186121680773229802992920738423610364922833547468176339000409558206557147005193511073586360181856189716831849004154298254356891522747889731704392720405761420862809768684928257461046514340383402345457299711848836034389279338361661372528623202589441722845625373673776885601345694271315429711169710289038682202856933551479162945000298859294543544243736426861007068573706149122889614472105495714337878026236905294497272417133256547957344818574523606026270892949075156781960918178842600984304113445043130619318319378070941891024396514931931646972469146203712768959317614966102574333024729408479828890587253163706776182298021683728861169975638654952594681650547032880071237830141446029843201009356462555134935905590499215934459465735000782575893200315128510372191138668411896071316010836629477346263292437801123982412945846182054404628220158017226241235915306470270114372098657931968060863156077111692920967401559149196199350258416512433284110423800838060819667104786231659611732577880289980271994998465990662615600663673725050318918326499817900615595743657489688458919339544507111733622208506738098640537804865824353014635360549004717407039094499948613438230601161405654532676543233516682379545280509489954730055590422666917763359805548647618153790034325454289590330233742415194071498928361323310515014791062248611839752482605544616710010425433937527531457297346473635181535515831342464501091753931408831415072805783709495974775514412786172500221480151587340360160397036629292518494609633134185478492292319042957812548063326371579112322335466785584292428194235376926830009209949380514699742649457261803845477639739311187763692468953656454904772188809965972542301930261324909536556027782289893999755114028831701177965731901428388974297202018039810898317883720735589257759328304500325073602937004129044218641065382900494181270224398652239490026774555253781605569214762396415127548528929119577559184435957171635736090842331672754588028079338901196575065696653965297027574244884553697064583235460857147445066837914128403350668714560645705329817426322234002589164162730182590149546418873694766343723646107329877863186590586814085122245935855996221069107465787380465899451936122389043783697733976845346304206799018169411799841064477730036361059917337542620199275746226903682809519722815918847718761847083041784880423166237698891216485629445497973759287003757450334593121560140499974158359778245807253652851125795746300655789634566795130501325286956411921460406600010432642272777457946209059647985340607970730983424663155957156446779596400401569163956438478515246132411882709169359210168255968634626746381088470430382540558341573790116528703143081430627352948536594984369292417122318450978820642406187007198058382872028311551151434357978506241880321406606828484580689687605036604155131841021000098360944017947763436128084004315811549044789876584834119201742845906505299512889763305461833229020644348959490470631215453903808349271348175479670735830911388630901616618633986277268097704444496901024857420543995815192855834559827301875099871959001871244558001903669272517029427721416076195227341717805854259948192967744367116167622122841337097893837917283663512189616313803024108325396065142522534691588105007377350846667997015052998203737773432322822667269091341401917264973256967925362059803587968619134077163503623321109287864839796234082149317368727744785391325197149140129066968723956675527469438691221987981112971317713325221137652061480286703131749626231024566834257345895423196130260397506360587054947612726458888371388807460390151198689746752616176498302129684133726887337065947246527768787925948091090696075745177766766921901334178854982713760606015933926157330087326518820338500539116912096632547530504741768543689188742767121373865718051341996769543954945137660956285310444650525797760094790052949901238396841077523838849280138854693952882871554086423263078422048042721120474257893391662222252777749721205916936390107539116349980567925985382131243183982319249407404315390845119516883503183420771505308039049121706521908019105854008174746780437517866176152062722766536228755254926224830243984780729274321521790636174919552900813252054988793735871992936718240138570998103430940495242621896948608308167081161444973481305635626286243588836163912402031793566475391307616419144508858343477749302823740154938476523970272236876041953956776797552888759771701042752652114346936491291532296299327418077616590777183552259844522539023152544168888209193958452805446807641008996003713950219513077666100509345146944451590334052082970825019222628266427684759543922768346641720529511178636178254272224887314061715888465043040968711896675547592546242993002261643858248818317340929312792240081574885764997609622769226450497631772690159454260699703983084581162224422017285010983180730802077493160132184916612763645629892612026126562505026691704331878986214896222736276795973020569290286938157675998398618742362491564093476727758275905098010137452992923415392409363469988780398130016634729170451749665511897867665375579167300762621769321231178141687964674996445856589813735604677440669759878810604061552321480450051766298216685323957191561045656704247747140206419569321483354970905427288719558673423478068249995814409302503162940341346409534256138515104248123828933592743565505179226586530347636550848984702769314525926145024305323173872266343165168333512972268446701862332705011494134441359663311758863922669317050700011237580748745995088743547341272114396727634429729894499543567655328178508579956070218634422649705245060459753165170148144463572087234612343744197205768055324417225400043783216533497924492801317180078172934197676882426476832748074818710773338606917866873186374046625970561259920557204808328921936844360087638126749760584409307411005675520884639352503567562702036943165257610074704610670737906398954555505097808361792605215618849042959074707262419591381871376040183369916584223277775461864212962332161805679763223750832904868733595067560207610661507966887065609849436664355997064089545416428942187493909252905828796690338669497839107670909538600295581101601723478151977425419733492410781511238874605724618759869464673053775476034407352513435237745003416297607239129114180551438715966131358231122637047602542960343916221955122547903601589956532536715969511368392475457377102285624933316227645082194980088926283772681640047958006538750596320979500748403229811135237184462807357872045378847512397482810461141307186563158781268216780389081112979115506056065887812666819632056199239427756835312546185750492815826819030806147973818551383776152187393644423295840212365732383019715916634298227798946924337658116777361760179435250509184472533163466737329521618950566813853235463147892330069808429259487591345821778158537830043589447834408597981599936430879822428030893694898113468253612454398205712698266690191011159406298186467404138126096576783155068366568835519901923032121572479554843836007146294319661666658228634496410515686700228879355567742544500320586316608283004533968803034394806670178926725560198099792335363740674467081525321622574422885017338923724587455510402749242683947659254697468894515862900713755461798012383383435469840946629153595013755955890316377199047368142222893616893444819670340425574492712134085582763105702471896415761548014151511348226366632168460600474101746169231276561313112074356250179884509180588078322605564612106281839058246373080634076281221533039426756712377318980404015804637736910600358224629096578938058510773446330391039926886780987520929756603433278363475370124257914011857455997619662640631619693038723647290982178111934405708157673600885621514012216589166852488129842338363187284414681566968244628847284380310128100819322681268472215556323562478854883655291045545453440456129648094716244438521103191953653246445779545341812478575737109865119428553005197167041058148526376206249943477145706251654197089002850036292262092818022925392397399657558303283703233604571998689466594785590171932131753777487040638198260138183499783182304022038949757872898559433066738533276907561388327455173045452054950477531517727923771928935665159990092182222546757883167340242342238869569400096749212556970758423589369108629299998028351888176205764880867127073306804464093098229352646847050309755902638478158078159945061836452911019826132004842810137263567209743470859744919926851016446741537155657791379432905532152082995057433064502827362320858534360984591339781821062027882258815027300996322219820686773068582381361003950844690532743753911141894508448572396335784764859291832289046030902792096268045413372752296276897082875815472080585891793071402628063747058536473986797755505800543269074425593991535057776600274480530051018480658645921642721426127556074428082875954013731173641796358097113943744027211305992938261522773945988168437615877024614843244310566379921751520793652628572677214372906726090169195374010065308532740935877580709135653397718364956785574600590036651742895768930590636933560774574321528272998951624547507268043509179694523314740928886924416855332357510444774599924941181868978200097633736499089312355332000741149318371327506395719629492745932985145863908486270084633635139311913753371483487824285897052095272854450864188164751204465488225606821398573870671364393053389559739825286223949851295595478935372915147554990006889581743818149501299245165107251503748185362261112303443946707849381421556950336418233433621455672808077058988278967804226435357009500652767330611984396171062551950049114008302705668662940105975141696623922952991132474544696762749224208010583877822436267897538710258003632625984757455345167866236955712861908153943815228960529505132709022007100150702424608065876513664039888047910731265956846498090307648418250303427847659757011318076635877823806598678314557679961485127291497968089366043013899666138248632002983964585282036425218045566813305896284984930676386464531684381456639629967406561126473898816240433237583624749029267579142380753624048982572136894228017711356714660526818798321774319857069001352830113831022650464928057305731513028372591094794941107791954180327387347650999563535801091685573630733600480372170370274290453794778715337557486276580179181350189782714883446320792378824289832725571864397159087935097174296396045555722466343186298607315001436917101497223384753850459304512892810829950637187259636763002117451883913213682676803772273230889008266657982392325671072722779833279722745053467897528266226767013460997499930871262205391584074674836130820687520001774113190590349038312660182180143751618828580988489628164814460108774959484373408121962970774756204459374640969333223326406484797327231502858137491127968645030858045998931914965274116619684964137713345165701341595301609079912340552921807280365273132699287049557487857281045411624654347628472302926999487689801925663415689513992647579024880453375523484976841555866241367324458114098745995763927169166690920569937517946427238174245486494956419504574742131199253112023359520565675464206991716412059028609741521439786911342129960262154549231824078162743321097351811365376540609756948557026718256392884163752963357722153372323147438571562075615680475504754810386762014781003925030633371861404282585554917782308089395666419635098648423484822747095078295914980714130156704721203959876954570390610140601589279961496322668306716293242351679076706173274605698804183734556871279239631499629562214824508438132630758256073229156376945611130972103487628795395869583185971021520819431871043851885896097092442297196152410413950089199468060209267536227268683312709151188355130680209999493289358672955424660699775038597486290428150670607335057356403273626295847524085526000921880324356600902098530258811356518189614611190771904278909958994404082470894235577673180323818183722597910549978772798227956557453236292654904731979840591822578025273141859568525749258964206705364090803040984392296444872692945071091577168247268512885999073489275774741187497857883480952496579062240863836756216822521458841842549543143733300921822020862711595916266211054740805474421985090243576680495717292808499999013639794935112479671803036654507749059146168357984576971647666408761566438222013421802482991933035123055601542385260517477023739816253674148330317072437744878423881840863927602266269665217246807144440044578158318757744367127084708284612073433236575486715969830403224605032738105561802116375079943654036176401291690108314264773089975681873672030272592765362795964358523254137735438802747311276290921027234659326598121277124005244940628576531079880700527953002735319795229276162782064792118498928396977078934859799056770597192679467835000812910840039283790385158892319033462384567213477874827078400305953613531466939139284166256729243641497974839383412035238289726976149337363765846567510208131151632143081713723817442815523257862184802833860922922953532220297840217360600227037831405376415776970238283262260699263714752479729719885784969457682200918419291051413338120863920046671588144864512350857773112114708042110315893501290950930693752376402189402105468068835226634713803563373762778581509683350038534328947430204641007993487909940008681828162325536705113278359867531135890741036121918001666983679452852284983461644675075816480257328535220515614778457979156073849010909373517274082823125025620525941280626858797075706335978731925518775529931988544669982648867885052345064130908679698532285050497404959522480365888987712528490280586828587598736525558408330517415492059367654622798385982403979886667134216525833520505081408803738296991804109570023016654595948475672594353648995850457413809622425297582910636069510962769017649588364358952096844472928224310633771753438177497082718572123531778895611966916676121008781251934997718871401691210969778180092135464029074750074341116492274635563837801303089891320160327893475637942170604147490981506960239904422552349715057342334803268369819970853604729536381594550412754178163147281811852160483917869679656612213622104753770525368293079655233049151469316246179991797114116223614857969157502438610419696042885247247148232415918125301658481630769875218707695602644586177574440509220552696334132473545476245101441929377428607060545600852845353412517672412474916676749729721501765816201719188209175779868158980749463136191993792855840972333512631795971838462726413175446216880521756850978015312031520953240749690347736328147839730545824455280329792501135387258054288659877112095000461408884765866896419836667002879005107067297187235718069645492164715182048820492027223495771495999362583109329304555850340539881749744788658589871208862793827400630375523968284203769386454123651485505889649238598671697090357392466934064842981283209201120360778214251473775094762661672889501595816118101480361341867686510221936496094674045787363161125852273567413388565999212108789186470739960570804416238775285779360082797094790688481936988960718850757486074608064175337902454991159068699406245685351566488168534093227200628352990646464551562773970850565448108642728694027887637745207361312813387301951718325726965437846838896706530092856399752337990193886456302679183445257323321904747268368045141647150186682698961611253115416103652999560521806235610896610274355391106997206369731705596066484754628508379516515004860461593544673191580382448172593079633327845977709197212334446306439159643967335478742228929611510734752439365886849724952040102617141553480476832751178823526228374946144612775595620635009731841059728220106521491686870871396921366428657602057956114715780843284942059338365503945410852872834986648385398447147251498119525785227189022413278624612669196410569897531046300968605138953693547492389418989555988733304219348891369773931807660188237112441440384109754178914674677317471147494438898918660472180890929087014224109738154301183748044265043299275914792947838309414031824926478311737254562577172376310709457104390225967081037479134060268466409905969282537779743599506392567405938820604236278695659771744008630951637969719472803412400439771898434123533478075802110935161898780719222375852448473725905835651508125315910262355571984059329764973487380380371867876866507130645987729741055456559523562951466011528140616198812417317740824239349420387056086589230292552532351856147802261489269431764012684057102028301822185235437929332610976080374716718035788741011962846038086679552264470722790635789517290816674897190187479543885901020905894998050946380656445139099082632982069961621343057898451411451924878940048007251278494485326802042235918246708914630350140683239630220889433639933428512450443144486648536629207086538953249979056400030096114817569527866003494059572854539163032674991392813613428379220425796324939334401598257016587560255074511455102183387723405408837706314059984172929399875288959166350608066666930440371714230947925455750815190330583029132250311906751134265515638844607817057866990953017971977307349095596128802453349499479576250866335232016711634260596618596443748409638415857122082417995171212782947028419490454436279603473286307084193986819644550981335380012260019013799918316271738184673683510299933079913227568190336813093650859121651653774946415975342387894702875412958456497338392699340220462628914923795746562851888448548870649107647492742286162456643282221047583909940266291021889049418343568219612262187234879134773095367900112480314177568820972182602032589008148532357992031563571968548322371892320333702334516554056368797867909202196675366279756332515376940774160605497164043369739396267601720657361806647991532880177585057596309171288063010791920345221472653266479069739451533451306460913302902163036080075091803689995102864732389710926230894393331873662980952524923201155649967389763708858719835281335567097090948795540791478602654567296446280413291562603959249007121845539646285159980030319812134701037078924201280267740735849689251887999552354616228693254835805654790370745664569039278292140860057454902550069342806488906562817414460219430956770789438216813594737242725086471440053139498081829430083327729622477463312609436293774844638917343520198451800276929836869237889265657029593533479770697526461771085607330208530101782043528071541582802602435176326392738733223243214929181777585053552155852422437610014474536251225667107877567699271088743641666514433561733074314239695876651493341862964071556007540679556602674474197197888159725671070675206200381871100694919579311323666079661341794318467212378274201779181169968164816747236839489454718341424491743373730891930936683240888162964223820856427440285082076442279583901894276187711128431815393596503800289589229574351025121859686777724230621091456291325583129067616312522904171646118923040456345597894582981845141661366596513604589081607346140510249429454568072827317359520729834149839844756430404029194560978835268219878552383549496324457557383303185328565769582739453222291603963073757205289146750440112416330040093314395853233879261245466089136172198919171551244973723106837229854712440050625804604018837591188051279759895851258098227922552186647636850275700546131156154848418301715454819326944470319835160650550064352340006686942487316748812369642315765931461351141484287183751320682828780727229930276688619602334662478130041290017332308796304383749207018372223554762772158450699343751569036109301301780724526373076361747731218796816492959677012325606902862005975558053879314402233161775297420629533235939150611168282616849114470823842254605131615166860459864605222921930135770365537442672622603452957026765592083548853998470631574305517895140644139378969834078527651127539740323023327826061075507230440001286222210779479465201117291651287985403130441415475664819302377655890467191525210301187880449028477765646774450458109390408331875890192950363747381796211236349420762902811230958333760990484534260283105720328482814877166743133882606234300746751825385871485357179014233785565093996204285062170340697477028149094845915833263247975650069709734915713187842102372243806858536105148291681916482381100113223328158604830661748420209228222171324106088781249125306720369963453776083157309678187298983458954510238378176217799405921493910972538703659669374357723669591945177398623434177439948767098768170218671331047836406291399966223276240609481927245560080931932701420854786448205945537421041266435515576428828854519445353720432777546732043938876860638524176064164051496472529050686496040584004248803930615753249147218968417026207041134391058159472006211864987495825885413351126855138155132510316938119175326437564375295798038477616750554811199447342080898419922778366400305902003607815268588835941674092932985028289526155690811756929645185049498447878305076570982853250924708699538186988777329633712631002997666158429806019855952810917107803652439587013719861581793309828898079051158057319310061405103517175501755056757978650647629983251651473733525934693552433572309642519469013782408413706587307721277308071435736140418055821654972167918841406990270329842726495718031672721751745108540045316690092359697313732033459093004925590527047874632184983742534686838507232128252395450395847958996058661643932134977016305634033426081834160885394915888094566799282887292810587067804214087191675739970539032358563871648705611443157459301575582319894693851932945837976239540255842339623255110340595189316942757728437701854705533931564692523069589893475211600647567324141882506976632091104953189281726466704020738705236236844203105987492715711993735460972518921885943583648983600400315087646610955687682653845127751966812379833664313145059630999861499301325442324843005100862632270575762866728364935356175559162736604146385010552126960764013144512316685831976029074212256889864052786034306685719551695928638925416489423275068942352711891502663206934385322728250605163015778451252243128121461021442225285300419787680424852076610123925906582635477616024225399298015093810424275989638660291774702065013448850026040215647438271160262269138530928131636385797983339355407082394824919210950315696901571316771965611557765479022734499562841443906658062371602978879695173740873609879457022293333379688889158931538186199875661673314466388589748521797716674949294952998608825808767099051503419636531254563352385846880732953881288257067666112614392634287096517880802787740507670495188718747047591068133000979710399821351206513809905711286426018055527541848797925045556347187646925405147633759394504294198248163931004816019309878335654829243652813379949321309353776235879894919166774562865751142910968558237733389517782143261786568092798259483959205576845535033000545168740364545527685128338577266992919707250088291717185954626525570967275504617145711691524550937789928870400625478842942834020215910212349443052875195036569872374598156563334704434605455833877104707827798825202810061296536600640764551262593382950912866080594938284229625595511504170723912084584707526084272856744735441692793468357735775202671806642392861405901591307491974410958579530559150606201915507059783540388895419928337788297818687493092311698480051433446637067266784861856407718957277673174730932865766996731305922116104808364111866547462211621970277913485800482434395156588382745767831941947659197917037612370089458448275860083964282441716049755053871846970415700978213269897180753581047908098079768526743385120152536388825842546532756429632310886233075290001393936927807817310535101105257031701293253031913816198046392620954481967146080118280226833707369656644398618118689338537271813996721625842760117283436618443387431395103803867553406852903831877798969423261893590357433148983071593757707159300195221922812688141711328621946874044361675855067485005041677202178560563634566804042308952182732755123525299616630760069469435132266738631762109469341283668413564924396833566552380384149152577618090557519334198105132656500288401937114422230007227341226511087147376235086078503528155075185058837975886223470437938164521967816542260904944773476886551990839528258286173081203311894772469745027294602572106207774437582228295744244375735456141030327880301756368838602595578360153912607020321244030199575798461545109152328668194298388853442272097464825708179609947772127604289364183596598491054765966667494517114099214169371602019274424689631794696965990022812816040078122715674328968422975442128444630102249767276182784427948840885959186068128800182693045339980448524441549721957093712777503047136678164593308025183555223514959207207529958417647482895422483498439805134163651430614634396869153319570932126474590632336770751489613546911713895620163584542014236918933617466044778419068901598767719739305537125960251173203528225158890509164761450857720213309462993819820302389195805026197765027185376137261379725657872936781442868418562122584589506263115959944354400917283994856361870902982088544850077274310624861556940865406426086585423378411463458505369702621236920300894794050210073451683505084098567457592759988566199665740441608395285959481865335505253606203985966416098238770265838108924523623378148683704334675177580038296491855126497585701227420270107328200938784048433383901661301493486156262606372361748590672351847156658509755018818146654019525015700000598675148189673928645980161215860117486010458236017114612972911602417614631735443008438797102454265036524214533354905638170933105126156605416174590164720768679253914376802254279173496492689825525655838898780990132280386944334887958561297381070432892883058514498196762046042080329927270125335357685200938882635017383817156065932961523827551870848032603509746132988374329692966543768929006813914474314954071961503247261482700381008938088722721451547440089901447083625637377108199436321019573750451261908652010771379160683307389500084542316139232487846209096037309687063773272745763157598349368054347514208199867275746372506898572054666966009191271833716885213038085625900195879991112360379055617262158792870554451493082424129900242647934018929722889784654636125142092797069647617747924726346318523297097126970006565848689122993919214473536951567451829286895180608183087786186878463394503492073225443709380007332539029155543605990077626654307152882041209731923306934938809432887292632528926092362383713861626154734202353058604548991565332311968023880707745407026895934821613138010359533558712983207968521112103233556856556021231489446740136279460809865133188336923737770688326126177135347726376224479280278179738232349696860588467691718582340568804849733430846695716659824810168467219960222965196121762084098966561371108590640193986448690573377722647071235186786733759937331006450440274076162068177690434141120033812326210018037052961451676498890757155983702521377116990273392347054336550797791128961740225564678590823015434188147229916703315239110271263795211068989920634979750619559385279812253124854651068523121477068364100405432476321303019387635121829353016668291073812534991937664641809705680639849503833168277870478275881080768637059738224749491925888581321048135179168061788675667438943934175319682435933695701520551439475266052368724535288752898691974761931831178450267825040486858446167976911394487801228238469614177570609023897312689707790338709212278706264001091519220435677595653904459980591458259364216986916649906781508902616017373784161369438533286847277690818835708747412461460592455038108181978892541053233436950272258288634447717318819453116393360697654443580196577707881543702270068563345513204257868140274432819848667030863664357700538731856026449282426044839725666468526430397380459879457997238015817181783324289412305879469626674787434512254373412601105169819099856742237742323638995194847772198517502260407871800273640243737151240860797413683913102114166901731733055412413410981529572074532843206295980634427961744391427457742627078664825179740298031420329035076996793730636894406695115557545827777198717811308200364211237172477198542657543745518042410739206706740771868933285053849456503911576965969332595270519358176323108559921454450533070672685485420981928608735616963323195810657703250021488433662689733598319686593838905755472436902604525271794762727791830680583214925814719819866084454176956438054194503438192166970758058964997120768345981482402239464110585398351644163113232642437211846917731171100421712018218320916844655946872149377686871296929073684966596272634190712047136894914504698752058917398539181086523628595005784968321325680480044062468830147590751987016849282599672864397200114462678948946332384695745186904048025166479298777983457782332758496871600407450664904859238982729972205167109871963831080882772158344547122818533235808023557840585853904771497390912609006251567329670675497824388784896900863782164244253229002132105735553541546061366905435765100597246061603639611957005041853081821144436463192394612490725010076213541380858224385368134825576307381447414606358532021089176036370146868224936062325842433074484224809499354502597942376572040498687273084102857840438051455835643625224265813055449092331493081076514030070512677369682709660671979422305714964045092705814326856206622016113802794504322596587479889804487412508801931950651412781947962368158166113119337736567264062168968617271810410867323967518306694576300598383398683905701972740699980579704267266884180359396300991320236957405758683128427854148221907308524401586286016353494949236679113722043579731139811452037401382901059276124294203164536166353776064715756289165929553434832959542520517509955979524631624552975693068718741657252674116170545019477963139096809946014010986672672995286742684375157897004630104730317614386952831315358397266723768956913348070068428684547202003165373737124652526937442709339051291313271074903460008796401556174245304331621946303342370887054532803352716402791111568786518368152114014568535109079352374249654050081702240020808487202870257082230314330046874896440642725069099260047456037117365355169984491333328668536705467859203739131670977976422134792794468131578166051529113385443874849824294914270441743167716771935301959360709685870255881998195147421160686664657469195876145423929692384100013514952758724426231695148430416895227502783046453799745858916532879519916870929957670881628462250199294995621270652286228325375433489351468869812620778049646873956877605614780287066080694591540281721905966915931177515502812017651424509092878339206391650435516024925582702764703292576921550581192741492012975023806831766581342217551669963232272676092338245366324937125904655414261517408995425538315926151369731954315868455123119584069137411018139658476051462624678509419699224558610259746779736626039607069011636693078890310916912700192993579612103165455685344565200220454778487371772397864767881653707381024601113233122054289635231991573478227698572257761873279542993036258309925014579155286947301540019819514782622789468121113648502270273265286530923072626738824698444517647379108873743833423440603662645914136994389960947110368774752982958766968806239550975760791946400438605995596489621656204899155095581275144829446067353252163657623520238012613410282174695581334067648657460132283017689420744991961314117526619304698317229674581569446345715035601560177578198821487686636413195848198208844106621509123886145465286792042933773896750422082844116307964663651593733204027611026669614850421294546937638156203987496898753884385126490942383703745288562760172717552710740581468672445335218419064899222372295152897702243554275561684193815116423656261116658331231083256527554371300837853549560461827046195921878424759017332810734572758193379602889202377822690225450276302199016092762849465090861926091428580488879462842012968493109519567984171768145188608217532506180103390247854847262832367913670019506221588081196932633077458835516347942912618924652587457226373974506422762166237018602341339801308735570205885887042305802408354020175813202950336402707622565390893857663331657681469471106488406253770356405638978297830204234256164041689414000237899890352325528793924225145736972491313562936438259538367609719259750771898542093627160858150101489957966287101934800527376745743656762692202180405890042243323105906005372216094974568411021574458908737729473941672200036794849413137248938028478135738337122736175755010498179867687532646616518962846376895317239569377728206465672106078493634153899210230720573411810285421230255740151625149364982164593746572014296175352232553533724738925422069520091061107817137064542821325755174194917397139341439485667252603608402635980091921111652362360655717744678294508529501677697643032484068967062521311191516530282016271361692704748231554728713648632357015262602302771808397214678755967399849866430328031279153331910485708376601194637391869917770541626430657006657226759180680079204346920783342227990814965532567444847783465305791626610613531936225042187963863404408485135431802173530125609806949361043678043826043580375733163666591991763964869702652738627975895800670771537966310478121169992742150281817362187655520454194497711855936385281553148592003105120949279681772081019171547805740910432528731328807869801510887246156649820216202124013092764161076514612471342356112808589283828694442137759210110387295455287152783845910510441680065332728673810313893765790572480995057646779400708017745478272423952308741439812864743786723191883081001049744391923918426901397634601977703071745987479690441251665399134010908529370826309003050892521394845991346178216713959461541822124459973943047554585102246355372426257089229563464319548351252820085679198372478391706213333911610254510737057984301657522190035343884318241812012836632472551807912675140327085562178896230560683724775352522801353105478125183002277322786451632915990428993627088871945258670915197401985978367109089452046969096265556166201929055482742425649319230441980413796460720388420966371153957503531768990180409637275493076830211247156369672393724015780464485821296287620238623727381637624018355715507724710548774879599463756285192096767788544097039900535543749601157946017902209013848770318228854844207085935748591734785594309529196255582016888045035206798707904881048638318401069165430177919777117936472978767865027903336905037600282666220480966488671635873662221091835932637395158480618446156175377728060632950160922880036778370729036467709673832277938209932518725241444635808752181043921547459302384117618584702100173492932466180828586692518495546648137093139362465053707178003015915678318729487638724981295480538324827674209709673635963809557629866192441799187979465046314617235762977749537696095012447197262083925624780839171147090869992300915841943106165287326114939957034443040922045091757756928549256234216212570807526150144878224897320147120317615596872583760114782686327193194166085988465213436160938852059885799616292416139574521044885114031761341064220676179214488474275376888889553188701456135383807365355824481224036393337698082483136606272091000950933119008229240663929128248677518173491273158125275160016506395369412783124040119105847382857291005979899793222833982767139964173744315165430793243054935594869457770772330841057096736529386131531345322937332417256896740822403743488569147862613878542170900745298735489954881382970548230234968756900337656710434056390665483816878747221320873029744399539146887293855038963880439392627821907742449726720082497982182825122922972455729688257723930573065399858543833192855493708514358969609918597721126541257166405287325696812080108951086971465932450181122275859988607908959656964148808028167396110206062588022488354887832406325888891982702518663389837624279824796234690784346231277138946887245449328836278826488664609002868864251362971982660994741694244796542392388390608532620716284860566802199430296444874565889780218121610952544582299593006221146332246491706985507985547105641007172093041265986008389818235574669724246979212910567405541280313552213943410823080631240685270794562443968232134193080640631933905244935286360089987226880183581560926274403659765439022049014174284109539995332152769181761512116144849878093557762858205385657721293433140186711132679140330509526921943275592070989136192644128185863843457322315827918711015150359585137049431159540680450525872799587304458967549360896105940907163890666792571827037243900874396673194054834142061868758064056746625847196126412554518829490645630450282515953535709103361703674823926657473969997464918985448742372655879403872796306346180829615667028934821867528328572124002765394289592885362988003498391185317611809635850184212153063675429692329567833333148101459538457966944499988714544556880941126947740608363439784434943145735831773297547211175470934380083645790671101060816177064262247182965045806762383286104853073473731415991719316988743468860322574988902021102720006608878083875745317019222152377396253104938978728798731006357285452786809065094536070056538964085711145959193093666602826085326232656083245825866314201057448171990248397471542472864658625515702849436075862049768407654562315627670160231666093790231840426295979179312888610519198091454554876246167846562012431038951257330859599538789479762187756168775586796501209573867129362946065869726444001608182983457404036806848905816032376061553024559396879622941745220883902112289270570930646901806358712887771897366334687002910135331786035772726122509099821745573446628585455283333679104790300340246828591047576151918564938465246718188568627371908082654395309217113578388801992927598088327712914655690565465045704961461675803463058850670098517600833015224861478599424848700857063770019392830815462861760302726022238654471166933325791266771030266451128988929040186456751788796198616421563500438586075824386990617548074759133807711649923007111337646878358768553469414265312647536700300610513167245645620804802456676137880948333159952007335573601865401757092999609096366436883772495497215554575811876709925818690021410955880839333881263594039623345846695839220483783036632533825172394548078479022534502925392434953289208175580695763085086736976890897628494040079012466019612544216718057956344213940643254568784485168452370885591121641849885091442470748272393285449686067477702124996741015918655442463160046347680847643148181708378549083405542491293609540571427190537264509690206595022262997962222654504027242581678256207051230435975124890951224397547968987674728264943087312796036386864260792914123848595825778233235360785837348538992463120861843546735758438717167787590386310495714724497435897006502898718492368828564758807321728206704501422648957788444382963063581951915777335763630002160392002331993124427329839064441042171991592195790178618996845350829166329543542176385771968943838486134247038550608913492350622928173197709459463803533437247278743731486634240783861770728426691858387389963835539820681792837969154593666153740535173566215040002835827033621409605495520338376672315948240213948688380201738770631973856055865771500632599997078147062498085728573092588688612638557042005029938614153358322738452015462473586104818999247271058316285570494606497945609170846872682539616458648414569845949438012513492319301590963739313746758837453478828480377797577047950622110529855098731275278619765785645275386377226017237716753936817484419484239492791707672331081318928892067254197761326890212841296588829726456820790356097967410054627263200997843392394257187698640911097006381077503110127942716500712148462316427679100047032887019287936351685461560787381786689573941445675202126952244073576379154684321160568578677776782107330681183998619242259360907230670539494668075230422252759702196071129253807571998818351613809438570970746534439861602241276761126681510506218947211447017184184707915983879432789534797890094202705641878022401615326689631263692525318456281087081991864979923525606544071130598508574876465367807011517213282396727996956308040615607699316578679836516177790140775472346425152178587034686241438249845760019248059235192239344368929559910459182284266835054732981473648757228385227056513595694967843295812902150353611692390978213565205907065137705427072109582858800539421836417615914591195835297396581569511841744491557846103150266086593075636679027149978011731099740579332857938470348365379131319723562719827914210105297792923092689056187845114516993235968456233619227251105223557469870978033512607839998116312091357756977992108070920627823436826597514233963273259045328360994873064001053654257144104772651137867995546608651847901850766470695876490642345529964717282609275030099074057355507027874276808072904872202324454476983411950171600883125713957475951769675852605257544977418323356891850843083488129431380396874580915826992087349715371126342408731888919521779349117208174134098749120639260591829254173828979736471424919418506674993190235978752383649864694947645887526785704498728028985723836083687914780633576109612183423074225508878895209992701682904019863380931692568598298723748125233152426867206726031863993727797039573843842365656741442415063438636578553840919938027516189556883149641386151133510128460994503586383834073506801498838361547145911650046407488799529201733288731590962982344075987190400930329026655287553455819416884084046700844701139002398700714657308023041582886553976195495346795512435879711835139104045542955534573615046714188945894976817408096522244881618237518713282658235908370063908098768235897597904424628416069374131088897610104746793148389415242257394111509350451563552705281419107917111298464330414571504539896733899069903728785193873610089506911381454776307883518979936900106387187449449707573051655572437823256636591615311946367389773775422731191981251664461625918795292126291760003573434651979483940595672311736894323523802249179161094507567324784770513419813804269117701066863017821189393857308416903754744797499232852106080184080657581968581792741919639049918594403912521441425110523455699873666809534145142710758402777382191558025129930668383527302698623101703012141927272796919316156257500180555916635544301643402878511073118815799330400631472245447227096863071190982231504483117359094498996663478215111957523364858521232291624741272589049864841267257042547188563876316037275597678103329090422441021817276982173900432028271393603426445143556132467545969589344330933872644144811556652395269065828507684317696891582225561605016798092040118147009782824440384984765725887419708908419932481625657733372027736506229645446305123753947484615370854669384873810970964940288417088555237420096505277245688329303331654729350178437911841313634954684405302658323364231884102761036935761704547835896684865385402967579392888001524459625778868954025512216397908967495213032373846515034271906450245029626953110633515235036302194829415394997821009133988280852477123886777972373766759388484319238454332341679806552750045949077507276063506632547982574242134697203968330133311219480731992628898974012018396311660538220736373768075881706093292841921076027622847062801978529240482223079749750996206675941702793336206087707887073295008038610442530249409394371854873507712948433780577161630340213462141212103512175076467230828641865132865499552524823047231729118808838912155074272132923925941899190241225561478247482256342627575741054073464528315800858210211946945907508018874718203155391784583002494815730413190057126251559377412002989581049601222602133340957109258453216471654025472119634631020673120283536428693898245889168577568338546746839725837002643351946643544104741357010656882415144067531734933486391373777641677649452387925015573940036875992466958777567263832665319133692260916615287453073130631116044247143123522092085790155268481630749775122291186846731684181912026200975868817319821412347358749826318390855654924591275006375938190524507153249915325350531800959192926637243450670348072130796865899121098295856129060287029978406518658401720679050450630510960051869467977110086167524365559530472664841861562509927660283532861912985200327745449995637982848508284411929365748185460554835941531628342473703548099823934296443515631562896261414926735860444031353729926575376646232677444244120359089212615240527755725591663696691969631790028813304486571395386477455257492345586722979367618407501991640674321103481163356742715348369116703628855688019515478519367743718182091108045540328523851336443674841072981448299862520545479118712395199912545104907173185842257670043035748224160301167354627885586365325016821820459835230130284522112174819400473988642662020759197305723185192950845318214033280190379005946995750679819772682968204520185204167516636388548407347665339588096691130429782713082047016054573635737234287308491815452716774329222727729301916558837272557359244369769702291417295516973609425471048146065298445860344518194287231773512234157401828150898230375375903864641585094006447475983119949279315892312728195166988763045388502460371482423812559097438815229972408717233655175553952159540082691298302092092738445423225527122386296880635229836144998803504983500501860750147984733986251636703006502059427033349873003128008747824032081438415793588553280312622044310906278264321706833856302792256738175564673992594267933314604432473255490480954857446565023668740906616250022057834452204802533217601498006357403043903750326466481895274269698834460974564847565192540187837174953502619479200998906159323000243298801349611159971176727711812297796339449315299128763580710570918470488084664155161550255478557973395579421012415070680400325375469761322224143591428843499052008079059447692408550360774717965258764301996254891214862384404288393075388423843312104095432149587019752738646921012478160503969204423749010152052978279708135732432106225515426808645667631736175569311333741133451295710132544068158275686914293950746787512028580254060231164524199547239108627136996744484538647756443610879852708993045127177866374419073318412633219202211607463553949649338830175446761679470531065018025046131319719845671838767379270253443663161707174073838204769961782749682812447158357187886199075122263141391661086866213901352119561506377237544904296829150123263197528496782154368389204057755141759442153816566677115022888732951590582330128791572282257954238177035863037230944884069157993962660494540237716660283456582157428205406135166439973027962253978169885397011712640841620451968600882930177992577268353926651708491460560019856863036314125112034892472140562978577898949704348228099993493085635863184494561122250707280694296671638505788709089248597325727260912918350035046942320347475254974159212819031881536885333895682090294558502721293193747373519907080757667594321573469673319843273419009369784018043652288116608648739251900190015427874075858361241259718465950366842991517194035026402399052008346579090810069838240972699014640582915419201343868081780762774957263276837288526944509908262114200010565837160731590026360105103264419342760234589223987618311275332707557208968672514003380052294798722916870101179010465179281739149990038416061920333021201131446083206630863184256247253323125192659012001287989789564997798844222524742766007981056576093937516786168476457617564931471970788022076156682709266291818854552187131068467395277613239395041094191488991112122472689657019904262289594338641463225896919902402135817539952849046944649982212657627113613116198900864153805884967664665795574596897013653825931446190076778988407210918194515027521147921831582037410994595217584226590457107508798183851376860991262946970948997650868407071434803768452875352917315416106660444798846252879258853975036251352604982263069160710921992576526320122437482019623744824475519692958697781532319501670463630496815961787385827205240848647682508971265993088361824222893086315729761828118386795616698657367591166345852421449348181409811258503984110609529393677505107506952673522423606388096566647367992862323335153249635858552230636229806963494215309047520794013778701395775475441827231236157526223172381331661267958730467132796402954649177544020036605202610569168266757787836849933993874093586392173254497742979627811041103288758964851638260590769069496121424947205935645901590918045380347916299976795154310115490415936181234991525184055473469760838119586757167628043800740989717444464583457897043540525785195882427150414420159898656131591997288128155052172947840963466599437592450963600444192863765407742349998292475967808165103511208160197322688106724828846113506720140559739882487077553952179442687967710895679291946769970920138737936415706310378280508021171208424649942619077415614268014224919921571231617954184792080625092076018306610753084334172398697375824609093646424821094135285742760994319670234716967019776369878380412859538005174600064053897488758090196864850959604104944144137620546447657252731446696489798984730065715943623715446877331132081634879105217307467589335394972025385188227380065174535607994930911251327736949737360750253609055651041172337565046971270377275154179704916102984135707795267671022292206106781805345027506152079533615504850901058905634683876081531434987795821501084148828482403798871716082973014090477691180927194267976589045875056446959443144009481968290655935275509432158210530786090982204262402543693745610576081148920725189859884770348815690601730231640077130853345559298192063232068942913234119867992267264480011321489434293388990721662185038453484934406015766612427136945145493890998726376443849547161475278495440538561333762929319489495073106759995496463293156474632103243991499925644234277387040265976248555568713947636910966257298580129310490703974774894720950455768467275625816773167000802983737040814980308740681485583533403353284172752811074771591557465837439910420597650832416982972264147300075974972977967801557728290746683895755353919357349494332026986938529258650380257741333182033791018111545638634257326722207664709450506557721307670620182074783038074165401694799425119474087072318178199774199376565378500421187343766135765406306190334894077844349122744700334232628323524157639103575003125283915220986808236108541590507807806572970946210742535797515977261059871198719793535056988083625025175009392416821202183058703294752712612793590047295494016901418879678025817713401395702511642122121838594723201682530317346216859739505837464194952333883604444093712107580057012987089310592571553704656311225462434015511039468629417783085801621472039258486480525085730332980131018164644328378083671021185639786459478853321677098820356038745129873552724401721459975743604714648044289263607684609314329161723182302312847836977977372272880544549920485646477445581972329717882547307590180516267440803329652721825138505294024399234202095762685443095014108360273750304355506833707882722060605221290305321651747548439345456412464264091207397510702753363371176099386772109732589245496555896109026072569197296756910614430403174170871555872012113884702903756025020781258002293401224034797141959924391302312993744898730837662034767035188771445554022190643575191243148138857220820097307810952218553678606344479548352955684149457370686783126261113628017964407572010831260876437252707906388535570797262072548854891487850798324376169613584546027705679511665230962973460056095339425589211376482939961081234606069273850887808365165416309731827522170262081601334290774193112900865567831948536375798924383428713857013048876259383303785701811104549540825998616583310642652251542913825410560407526598911487728202548125109633149475928480589054986437285752440333163231970168098928572410409723723459519977885424642336593893614299677311047231327371255082693830571519317790592573735621687777777372028421571561465729543255954521137603029755050233471588446893749061841886556608574474162359643226131381278664279111696767234130340143768393598804740979426055907784608699891628811962213743849745098373236268380720471793827210964290596989400453871402501329448869079411475939319234479142184001589853899804063148397118903528101232108860907105418175050932472749409081562211607014156365830686824323307657311023278909549794646795260546292321827079746963626911635696033595821706062613105633091175570836827163723896044486588109054937367425530921155978453678890759336032653457891364244136452466687712736154866138304670526209443529317229814165464389909867050893367608102608900033036031508773549436131305332634080327195287348825703388465662105934167085608570328093106783185385296438352207011381635506284744058689260968324624606656160643951573958821774119407787375885178628246777616248514326882668849748182179988389800624791025601464098033496006335057087848445925847654729809768215934068098620586462116475314794782303914779003636804721683476982018958150173822799310120221309999985783119046461471281192596060406820642315353651519875802832767443927247689053849385916295577820677328559645834995749536903881886993423642934238908185054332061745576664719616021364294745038271634764372050957283801131808423756358264471909365544612326638256789282233713916866240917493831265701578729469080860088237417077146716997767131378054758555445135826054651033911892682016686095233362729113853532487262185710559642659290016617135391554871178359352229907301781777747983411084832529787376313391401798002048457115459194966112819335916101862509818398341484043131123086863802709695815180986833575195126695648260087584368661629944673021800565253315028407310414405001540216072422113888933350970389238237112589087980132737680727395820507015144631777141392279526147635142803844180955575707188263165946491142618524078790396377105413884334809349961448167934878661645576561317098091965751316122246132088284989767611493809515567950235024843753377656199729518677300438737051050625276929777055766412676682983462977449765412066449304119389457233834375728556746234443856487057730149292976383834458467578732161706028326623550636283101583097951023433323949364631504455022263661632555846165898757250105016480609645396589970158998979238248752173578275435761040046183518467343920796770656830492439808258187868858641549957589424349044627525702656593784775656097685089147665348045666940932259353586502957326372821900769165670488421714776946564627200708467491084842200515273085334989381497894304389302282920935373020908889917186125536668474979241103885221971029584689396541282060477240609361965599191488232851365252595649353953488178140588929939653427931455721291074737808086465634687170841136484637663281588740645522422602339219381285044851386739170963623380529556805379566784875462685303087958701208604312707016060961311952859308279179760059731934353388275795208070759124549658173350832733256101726761667483637096341125512624361868290788470088491080080567473790133396451789011511250015646959704420687236864312427888700922667931901039486972202804609682214270910954519906941559714427558490882710877215724638862824646366223630470620853977555225921812709399604585773801126187372859455714697790419363910875640636394279484040891009592746211731940509110332893694372578482724575260640002831275072995867969989529405077852891399869089469070803691892381016805415399168410314675091108421027365558364766994901116758239426610989462729614937858481878790907277627062094202017316265150734979841582669456219932289526123364456457226100775404144804162379504880386040866706862268086724795173074039912212298802915159785097232149312819850287124482667176431085591745252070678077143285561658840590546070651573608904333974004764053777487831284288223638531597186536379962843470344359482466911751296888895950606079592905139278800697722260248657541123412608748263383131792839547352784846597753761931972279983949298857344441992839485302972986180564787572415023134079577470170824111686143800268945715342259287479555345874943706024970742850072065362652870326391473927002265351829891068179817577352133008411107646009390291278237521748001410329476327691310403452125566994324362093931584999157659327759255281398000069256880588759877107738562655133558380146809674943789608971589476482517850825815021314565965318251661777125655551312268334224935332583701788528062256193438059103099699499090910611529744747541324672050278751528337959999510576483261068044978867607358314530581789083855560325584867630867870191933284838382738927678967864140399535128969347908137145097995820360662786143582216464198098817009474008462023517118297002617818860016548753859034122187805510020342601415781419676530025127432266013185828382851901244401037444754717778913541143589549165271416622092491383543730312156950970453195919640661564944468565434909138834225387963803628445411344749680924547753239422442325721274513514717861896968479239675671137533882331507906814256193827931861345041602756598525372013216359975506993934198969268704179500710291840303793589534451495044850905231941993434851904504258616701333160955228255876137547118596724654542746070804377610143243851311478698916892181900491458127245856357160100915937136902446538853674976090113645088517065753501166804534472367179810929042428873140620387027198579153617208153263751053670678997470777150549995669530740025680296826672698220483154443116779166370478650878312467626233525726922166192722841922824368383826925589543193088187137554015375956869676445212904777921520378094136789791238863565030746829426783680691628014969516657250643235102466814438714011918409997050563417801475722670001731491810487141088193302481540034841045342083861978090489031992024056448410199319437606635686290153071271833314735507142176716289025563491037221799599032607198907636441407651884053764260465134073047953779691744205080125701762393298761452808960011103054256215482417015739975564643587923049061920086830481371222391378860155442747829927982002701871302218936382012122226513023997677649104271076315189479990816640036167024358154100065553003057468551128815365715875104875662600503063850074185904738361588807025428204146049494455625295839898630258565544016888554100400593233981722285581124226082534186487545572470436611302980311429664597022595997113641954298671725081071073925924921611294883170551350537496739340621396735849105090298010625458769348255830153379629316655210481825393808022766175978638243769973384723191455977519909304547373347021744052562482047802312383978428193253737104892963303235442406304317073485861522749082458748618169464851748719536984746707072521964496112472832289819446075170494981908546208649570830596339010127629702370091715224327016536042653947810788462111477303946184861396836359842954685715569712838995042797980466336348404572218696958798588679904496567558605909425575260417570934773251916488104799086000588474022449768121870486488292070153407912824411788860960799865983440502389041820857454880008599282202025285352805676496945561069127606059133624279846023047959325762913749181565084994450792023629772109718482062057758802443321552479223869061981229031162874362573034694190572010860149234149513313384619707263764099818497179837246351605266095407809765679669022957050201261830231566784410375621445025144783442476975918051675347912312907118269371682020640622128476331043651810069568480232742646503089382577245925042625887048308637574802931875249806804724122998112350431024163363100246393485361844342914965196795503799674903663942309264421883400467417993584223684640710631478084318805982875521400808352400596918590588461255240627636352405977280511927453573760420695508671173451709627529316270613884855708972230586622910001275583241781623950496827023441505812522502311613734252385255633288736792706767377504550320399167258322582108226415784265455573897107364998148426082092179017048346103660739263696656263335757775097258560660841887905662023487784809398096608775719817953726083283893944041848367597434958874866959023266696537150002701753508017707285933734485020217267981535841524908347788709959839817058871540850207646557208908789796133327933050771873522251173123317819636555232199969898973571771486044048985126961939632023468023715585043566363976784139334634604208308747942737019544052352238190713359441211995816786608031286131932229181581077906121241601694596146850693636613160884217202576710379718363784753724192833795790925813064856627197447759603563138786938446435264336408074513770993847860392601230079698038738322851340287615580880793240130034214884426786718375358059423218756045340589282323093516831537642279480013557194668810591971370139819385211892105943459016897072464982962538532891257561750487530767748576494718285063870005467893629797896701168626262132175286255403339149942147403758535475574616772545878443805727500010047396093860214142550335046706274023529812976722554287774823175041423608815413892572733130507208370637064887225241323213732107883298547095756423338953206280000735059126319746627559057336131639991180165869458781457878771655419982552064159426120435954455844336312589850195186948200592374354802210307599966011972637263944719866256104986529815040297975469829748687433537603134595329574503023318750933331984869927334751780048785264837819902724892602485594488508393635451451130564260833239974450648788990256180133143501136582862833025582043234385391007432632244599660333566626970286817186746249477892825495439058564982042696903266717345305709500891158384685077266547058986134263290671727798145627321430590998098032805305668370039692534751630926022759451194404522783920238436838244385297859952753780056610382210233936236493239537882514767425100047525197846755221291730958619716645279789269983162769334830896550428359893652775838252263720361640765738769122500230178415274555889195867290036081096498812173033106906302171783839840236773502171864401306239429208474458252307147158023453902187621716572953177900482811304019447299720961543281023616675734123333499532181195207038850563917696192765329061593640584973074049463348280213470996073673094476480842580999787064920982823132994463682205475235223056909938914030056930314825683105539280589406709762420381579381365959799906917873928665575852394707603693412394440317374874681256019953191772857398159669807989462947165034251010687684550737676788576346435429823828542184079857412769225121708044245618514417161168273404528050085396439067970203625808907154975704716410456561771984172660425296603799016910048398929888694846551027165245336419350514487784283785926154761367559959607218506434387655842559114845203301480398013238649192158210522946671770936060263258373741258740139696852192931179453204764066946361660158929719168210062220873978735052000051199597068964941677770567863866552365219258392369374744803764794588387787193614319207437653461558530832203333666368437823934105050565168573964581959892722454496638721857495275129224015768603933506789666107906873241069536435385530375225020666162043825317421084210170942321744822043246251981615102342526037899126144572430642160083470856048838895297331304291301209444880387063493254995886235211466291181644393488266465198577149587081553810091420630766161965824021850450017425847015773062450158888763684739986132855772439654315621073330954578674722534707546612645829139102427996131717754973449801343666892071158620973856841130181807282018373850532037191704748056038659640717718735276344992410208493731206147034445553275194413265354341097721435838834105259541877168306631844224601799065027009780854672952035380330974917021334740639750431671977682427657309715585130314764545500108263067435623460996765460629385786567803844344278601984851945752275824264094796328641756077610958891252364184963533515391846817644844412372618912002140496762809222914231912814627739914265293375699270692741232418011502029061320802971887199049846808253175205571755112327923994183607743902510690413435584276482901374461426042494167566783581279113026152425967683914076820485177862889888332993777674009427535299841927382914060556232972129770232266594521543637160205588960305008000445524458083830311396982808940791944063874471295217272170790611876687581436018028923686689319138894755333229539688363367194208538708275848741152128438693522824816749412619759089923264180598566819979910073909900027846728107522155915599472589266279662892389553793844197902288377600379460879347465697061137992117464180322718130033798087702601801908429992005258656713959945124950925396643757251393240119970824090363221967210828456149855460032295348283750914358374292182800030698099842640590408160004630577693952242174452969929891276820420882724593730639028394207707571337362788847402855558001251575624174857219052579862544448489060026599430961934107707445761608049337368458647768548160542340178773942458799076095035085561982653384243543870348007004260802383921780331914196693520933161037322682731236248646420867612145956197652814552262337806402301120450897218162703945815793308778922559377708976863308625726991524327532020105401197339050004644345878160485223518248861075886640132963123699763625639085649513500983542001079164575577139797127431588669809258414259059503701039592927799947636188614874190420664971725693811820104579544248163483698223759562112377956649768970050304222560805952044561233885801195745423864216345147277818105084671127788748519979751075644683109930749961612874771370677494320213361301322285439629130637481140465572666401890224972830967042615175540057045354775360091224913561353750821903870876659542126516427992661163160834148402143190081901261058917297630626933597656574571922527225593947347796768846075756911593245302514792171034585522623251569683328431434041612274649602955141151371875572539436021675935293051625428904850661201315722771582323241440353395957349011241858211871009936111308021652657450671579769316074235172501200714480875662346310845264635323852335622527787370547185141742550069510575749183343247981175399912321758120708487678654586362386543738333551863646619082446924919136958029260313535955529044135172486766573918688286034814349226749718065123341748312348902641445546571478786624515423885726477441950321046535716768977722777709305973861210497285571372719623555714643709322722446834208904691488754652217324109653814668821914969727759072987832622250437478472312839251700776256904393649152922683901006800746809744853351509713498193619345970556479502275909444179334393573010358187320121038414826631994029120426718777614193225584496278528966856400259075401839403096553847828300685183032366033890655535343976897589173131079870397101261310545037688658583774105163621663223264686847143294311906410603146488296558192967462298186348946754525980086800908622975335251866264178375565132473581936245046789147181824346286292932508798308252748385990296513940482023748601719727497808544745007938649575779598332795667407981413798275141708492909673829400347035878560515415023645417192251076748003119760858999001282095519789028617407765188312689397729063490398851934175743005648731702827636431988256741353706924487812683848015488050521853651287184082989647102115234392513392480628129839178235503374275526370763169174451429296699246946141955392678825868552687387287149081643139043631918204427973394407430045271254899933834774319094738577219823118904847556211265085749652348273401708633470167330440702448163923765267118854041693542431505158570989522087594538904730117375009952697165268970285642588411313662538370622576907859166460351154340062542115602582245746669390807996224688173477768060309213570716922762979096454505384068554383849235475686410580603174568100316179593806504958713899124589606253923545204556502800679397826826271974636528252002421253475391174692592368243261523889952073125715648577879471978458849293011800940329100456131438560183538801482467376220862226734725130567227761864526782153193845020783587373907260534830470043395651934863959800669317561745724549724602994126118626035568684193614722917035304984555636980605053784748545929868409941431011692319880975015127839818256287048529293734064612257165919467110494024637049767163400507152942638752690412702794057493013820151588796744520785578058436672281932630938389143859709884061830092777808610088057975273411076526197868621146196940834287518564646282585627741241753277505843582021884280255322023464148575668339751722432584851610123451725768108902230371332176344906406501229877976737860527846735031936445554300644640274396660104752002350396347707019792107806897088848672575620886121700666918474586371634825160182948252947531725699106616378717612738186780342402885048694401282347680534541837052025863280367406364316864072860462775296762774002591272109998625131217393231274725519619940771504623129172624731599245610858005284246069401646908035951044021112699810692711618549592886398930414047720128327065701888059584165130192089096729929192598545051218471480880509069836049819789149154489476849718955254184387181699461970169195896299587043853360761994207819335325093871422773116937362079539676873089264562523703940628734133826961445474566255988708686301729367936353321154755654529801972506098659531003328984610669608370445798562867447921547521409570021506609473141950162577964474216156710940678353357434226148964719649531067035302289283213240685797733922328190273332523122118822964509166722185012219471332451039896564524264738864213892775499976482648461546874482731966680022134737688307781481052849768256229346135429383747754547363522353345146515142882351082033879514851020657173425091792050436310641671808927536337428444293274634412990054439777178151884824524071148106367630296778402481500069950095278885402599350671415223139272446603501456952524456608741056057217977203610068531661758367617177959677386029499971939221771380815960372891084778698344681230966262321411320682118637781987592511991715250252263133225610628948055641995914532263694218310939093249773868655770103202342590445087981122285503770926906739522488151741318192749934198569874502591185488567605913515015236779184363957761440916341017104969706069031328676063907422938732608610190534633159821176200756488015343744317028850040924469495285957296130545388113530454396462541779240614708632039364454925091632026387286854467836778101949802788562746362016469280456192128401844926454148221306997936308588903520582847535414356255596795452573321818133502187508130845446342732635940609694666012577210596510861125857225822751686734045774962719945080392826750126305339976929622046053679151630466004721567226027230836146101183104478460865972339111577959729298824709935477708740846464360761484036225049856952000409883875820082485867284115384983005730855649410536071146386399755786702966454950913605816451704904966589859275025707594805507255818490523587779763454714102744787329822538116866745242317537447784411154036594268361251786817004513754125221186964248763422767517439345592127915147145795037247499667684963393215190600705007907360905940120322382276000775835672017793591561184308822226124730166124009890262482785196712420775863243980691422122203827311607533976563303023971271868835064418281687533008517271399280426506218031395801670153704982006734429330671961884391531284226959763772170031157061633382961568171826151688631352745893124199000957338384256156495954871541584060829547448028674072745908686593855376101326994529960823166435358028067847424992203305385346911145157843616568315922635108286344695826876478680392102918379284403342087204487057224101332307943830976221656928631126787662816518492889362629421527817719493280666747253129305954582448780545236714802758482932512118940481555688041005180322514881617722075800299930427504418070409223731415423265478663163147842504929799348184392097653424629160394664296542500173263148487792811697592356468754480857885370708525297424280150116062816753399088519824452544050329434945713178212787409341127449239104875635769533828357106629436714936672854429810031350430511648997974779811964503246859930638942262535602384494526300343563130788715763156497327215029826597770945021096266138413246182165027872781388915683037331191049206466536399762255444884036102617282196424071104161133108556898229983180482887502101546955266466157459933962301225945021378112536492866948201597475001624172948879038182092857225524246897458494473764279168883308830957970494597432093522295742423899803742474523160743666079575521652179686299365127112029220941535843631300157506874069369150676218463235664088610042289415550343019243480166408220699395048498500036324094847615896903892353763724331833102156124299227358680756882347783325312280143983634443849366801705583585480421955579207012809363133703334668506390089673940618585650757011986899500079924668610611264163555823556800911929492301503958920895231105601928938486010526424449506089654095291554255398456286096355358570512447719145713932930966228619810771121112363688270409487781100388226770071244332051993203863886004268784881818291277807012730711041782941413587593407677104303016194764809069433850642205995063552269095272967083128894580211309819071199063298218550962916112843434618436927215061774356111378034854520342033916487440284727552857548881519247269405470828622692200272417173505685786108348412959103220556076014951038496673374782220415306246789077442348293380841998709087340395702086456336191900236428877028813385230147250429040625181484221285578598555696595194915234108980138365081417124816193509871954118081221717343277051788997990866218953320086615813736423391010290423147661306752477513558182192836006337395326949873431021615775708523694298530401702710073460471309976791245404443032685891370163518209238099372394013039286093136918481240423442209596913683198990210907075276937957294179119314354522715012291025504777392202165424967176120200118838667415184837878995130503657408177678718898585774584836123355135768193420025108550532234388448903604562955385080082333693484692219521682674565385496475680799513952466886579066757452564214685632913018034795066555656660053955336988105678403126200793228380139821279843963885635887477851554723638917843253456282583509379366616091304691763515974700677737159211966734376476094024278414132937304337601377560926351581128197475449766655209819004856126609951907147488042241648191557049210664799297080068350151896118013182071592969351466901579507836162036824730550381848419631588972039467040716981957921889288390397185841279183444778281487548169580312976857958343087811966259170799318369001225905644944585869965362518573066113282449281037213692684116017487276281982250597566253150283663566241385461251207459972193429962451929607742564408209520674849187425838106798168693973602648978638508574686602829250471075263540676112552500984928926631705358787308842060647387193587984856063543121189522795125071661083257275581254400424844694479399622033013457282676536519736425280749623111865796961681043314264730288253339245536682586455929958561093617990627580697502503869479517465398897893841139908490997814874533887621824451956617606870937877932041537870927458303869310542348650010963325227734687903105957650271554725341429371681658190293858823842218262466803435669186013035938929044851481059238014462232004170408429439053160129018897632899559472900640254516789015161649066122303142493415933044343170352439518093165748379653596979301876904115902717743023291297490005681791357492432645469481004737774688242374361512016429326850938573365528263274977542379067942540581113992007747434936276016245685769055431445167002516904861924911569481311539597828806348181202555183968596223289805913065697458705410761229022085429897928153277658817297499063262389379473599767802457498590663052138877325019182549527054680221487915283527139577751720981691302815784469683686579912415827223620287734023209957077458146834781951783023404838905152472390797054769593067838112926744986540740932342883823640612618882470621874050790499543676901225987968328435026249022523099114082729989148453782191351472367469165576967403773696751083316560983505764903225706144975763675107430528012828594314794160825808132351428542362665454302758488608744219592289880804421058788794420704299542561002348363691207220217911710310843147984483161776262741778016128972463169732734829162336939797022575090923075087756146702274094667678067152355968909574201025582152426213986933097858063112692264520276253039074042844188596103379393149908336292098379475830841529039121681991636648053897729408762652825098490581003401161628297930597380969628696305011080473402776445313611532193463804627628373523871118650564642880162178750506190921555868135704717273311773820290469447796511736156011780295162416659121873838610414276057588405685645310001706765697734171632831772857290531328637296920986270230060670680756373771112365245773324849448040869791718751648885602581538200065971493839888246582298908153642798174257581932045197734101428949550183852471944491344242250375804470105642686790960454981320818829422164278345150076578356666036652202434010799668463443721219017203363886947115140826187296448403280720813485297197210920483355708996865672082394878697286696399028104050840343105058917220226029343070292389063262954585718653633959458522932544453508944613780362594662453931134097047691584524739550076850136202792118954352061138465029313021468113527111602700939452433512316649765063938392842032982794990632761385741319913595015222253772413518454334347257628144855829419119218512068535312240792007391556689637077352023173222933620631368754702144463495334500631439537611370945899889596741167624731966861095260151146830522072156394716967348571439737226819119238354598023348161537319069885446252183218725902483765616923350859671363501706953072511712906683225246341841485444428071795168683720682648977755024024732485969922743111340233788816294771025632199285275701178542480477606346499144187852986222799157896480408262232867748777334736237508366457259639076743471850651166843739721339003894392883418797249844728211126562298890293765344573599453486555160563911710171198788608365136665393024931195718159345228289016643085786539059238372401020181378706427381582276584143503071394229277446913722771781071717024347324935833533993055852657203413486147792281719076802395157523362473462554715415451254342100198612827962501276947724580658797691624841103446840480938496760995109529048891587478754473890694056634168358178028791974259601425584967281971530523631834771697963050064219367791959842473719338136094322911778083918538418793815346765038012267182517182263717436026792567419336045941666244532967403071302671468535398309034320870028034715286168743516280448389468258945987245274927890607641850168959235591813326082639272317175266772068643125945858359310520607216063648969601137345436379299503490909945344561984057485607739988592474245992639224451377808373244006739175760933852387681443142016622371355830845965228236425153124542853582868165366744069225604318006193194874479191879325138822038974216188927824560862113833724292220913322539053547352712873008978445325164777970683691923725456377723168352810690123073166384032847782046281417345935809141991769918176562577663554245472889240248427391157327262993736766505656034529124987863741184639489817376460191835722206876107042299605695999602399869946570678262125526295289162282184765792726601467500684068243882938828767863587259850425021916912773402575486261227686351311733719177428362648662026510189545456286731110364952006987607909159445835524252858006434469594789362343985828438484305494306357200976018931950116942318086203741729434902774985941029767742532379776373518929676772949969482251520439723064010573386358936344418183419651600343912828062942701331121107385768681609716669247825136611550261710466013610163267416563357476430709138060369970919309157263938345957733395642914269541165430591861538908893115041324232194567240524059215393388170387531802838534096362199831293223482315097386534975699368035119082736455969574427921424330092417665224111607349451194439409758202211253737216055955297530305771407839844945535954675770863240333837829762801289901460994150954310880341739630813351388963491999871262347904744708463643729860221888837919873027665010831033530521377070014324140917842201913777352766731842638383281188495388671346760548383850798122735902509503648558696779300650454616753186646037583106974695060591228250968126210657502837065513407510177707353969270343672601952172338113396017265262880886121914706113110614821442674969448543556999815521742368591667946112649487361584133753184396867133446369724363954251068133915929098130640117551731384567964024338991174058579346017784074308242254736971964199663475123820856727258469661036164797974678666558758034360907076949521469130840097130950100445139370682314724192945878847827420806739973760080403188597173960863099304635220495789814588458846677549835081458705432976283709829521602117711139346803008969193365331485554667493943165447966935780994489553212664082882388998985502374349484964528251581952041697545172713176986317310737549546568624630400146521006836610715616401251539646781482722054107576730461868740248078850402215600006828741264610559459062661073662224507106451756555040181706582529250117079264088814951423777058699714836548614513402415011263586844678459556744075580335357328693112619172252176797603578741681819529430024210809472530765056539183203399109505228901184410575541548144619257604258257471150163361582936825461841703521230472711357148975466788920432386065838909489129264193444995537421875810220815902936569983418618890274666622774398063895733312131754188385350753246932083427999366612282869014423837623314178945005748790728470943047353753471244928299253980435550171761829488563057548187017712283254505846998814285209805562941509955055112590594456576475199782442584782706899219081662061266791095429738663262656532403523808017481959933591493553086550475475782677609154304179127174249212254971308302273721146996044386336871317199939157858104626835693967420378629509259319844929455526452037808529557397553259409790531182358262104473676110120288676275705011291252091808120425375506440746043690802212858467078487402870700250935091108315560052386682582144914862766387608942546045896133141019288691219737550637788086244542479447636418422120335394619376323111097297771398175566624881901087581499851771749132114778736854659840589688228416362311402736371411048632522410047538133644478362215618247951620072794948307957218734843404499856416886511075024774575716705349360630173808351494241867395592903655136762126533478045727151159982060434195309704602771128928069816789265269878653617290037205212177022674947950617755115213616291168668134042538363605980105534518444317645844958928709193182198579907216563147606387848480918446977121657622344226446101578882950182909257120545829319709633271606677413176183466172087088353657408722547990960017924460202515595292412852260446336238981071687040462709103788423652947044761851569039463575096119875897690679124325875750663691791013542260027452549242454733028754397690599885564629356603322256970192531141397208359040776539438181388577264531136084648663742756665035842975094315445629065162372400709690056679950812464855235132562233622890420181847295730700314835102930275440567531036239270315128041667557692199759295455271642428009283312686314183059246626404529558187200564809156640719246005616421270095759370912805785076545895389175417946502854246647096381049421778227112682172890265544739903857967497847220145863195232989229531720626873620933914120874748228504052092931508869531360442139678370240014958176416150527290208193988400912283573270718582421923914327457114375709692640531168328070113087917027129707716476654631317754216566013098254111441327731612377555762650379405822801158507232669894230202624786999119711878642019536789621646394659015533109080167911316573690550889729340859864317436951682995085953507027728447917937548222155938009718204857188251171711632271957704433058490446383885796057719495050922678106279665035265435564707029776814142545556424788218224619183661132683766415831757698794273973315034944390180643796430790073571979174158447063368814211656295116637654324086450919118348997874722271060879005371670440572665795049100047559067718250607135905679838998104635568930170427461195613432005596443889107429535686164933656890417025020177540118739281848988592424112914546804862351749331313778631627459065724706175811797606688860023831816081601906251871965064460440386977824586636885381210085427862034892531716356815481483352089582020820056098742865619205187786306135942687603781820529353538141911517377552588059633614502724974073386413655713426014870100563970501775671264856823128063391315628977408634984444438732603960419922021916394567919286543610485245446401276783256617051398374570502506865545063600829966541477947276503779984320804479395105255569766472128974763788965719409962511836146104561087945256973574637659122618292969210859822759008747443068897014633725310509545741281143565065166085642697099633885060967517466485323819568840229999810610793789958234989665815937842055830624534510050852848193337357531862144594021203010350517464019277362312754351445618516052263228806264836970223357336872676825868585182944468361503391670919691961517518777121976194830656536590384938326970035946847772821358069917922819816790263502251641946659914309900663600561439024292532653495662998244057142938049306478407548332856286621301048321874084661353952741943536513161157842673497531382586898547483728811459249820422807310461050356836010000634753593930087791268725828709917786314324639212985496145939124155808669351510076007683223410117398605021446903820175863356933891948326976748240222841461127252368555927388600570593184589871658123150279971526353597951947690568639514997414299687812283240143737213227442543118621254646786651589869648810196268940056030297921326359975283874266509319148637522024281363952283240142431160185452624600224437904989689526463890795455538573321739519796842766639131987925135576907959778084063706235507334451068380182969544169525027360185069937920746326790050717081199311183996074285574939795113830098941430449416434931629190703242088782867535465305240461821739508665067803532632812864450970999985746602378466908015001943957784012171661161095522268950164034095956484279864637602277424908698734621711089183775934160803025061469458871345600730873904273745983002744181680723918561238154954428407382482246693261471065917848104746529408810292117084629946418703191237814987387373454645109088988294170713926489265415316037804408668938392430180884242752849697965278108937067586424541297931391730864017754582327538184486240703338304070158177607336281372551004826751680505720663675097088065678581390615428963193151526159558559515371400806742273555015966906949516722115859645600440420544168809918208441656420662598726744628034287554414468835727707472764191256464041808032346197453610970223332289518068617191535248272549016651997346827704762960581969023346656336782534058200812017133958527516562769763022539604949231507049247924870434055325096785841647228454811123658990847934259606263209271615656016857046062448372820242925958263258327855528089289070079693621579049868760812572415349778576383778438784647991193071581685524007478872332222208139407911942715751860019901016317680865068352788764002884133644034338921062571425089386779538129523016442971267040630082588276565726248803380386940061190219417831295664016663951620683554148004258539711475758117943454839763898755383426543920275240313371211557309316201104432997121680486163361331544257996844036935204426848163252819639178929436201152888335582441020880118415773777316312090696638922048011362250332054544965927654807219626005872822928779200055503392519306510686895674646602320963693449505425789183606841767300459855010562663596088641582040386876586957940923995288479105793638385926195243766146327815669988606685755427840471063565008839112372813227287712964251744356979738737849146926693536468093823287236812076163770258707565189236722759428156137581767953214606021941292908856574419122905032573573742432771180246004062299018027342055483076560424639405372163496585484743608664069021203742318463753735687331194343870237105634073342643975915317942955387273430151979659719494636764148440487346092680802443811222886204076511381737355303897253275785849534630127709744891494603897563512804839222848870996323387498854739041955853325866733151497919184045429662383892423056102997104712049122325791330168765166639669188239808334165993891820275761471544940736889342952898251731992653460547855214727427909044288080988399481081245031146021540893896430373674509380612017206119229628265968483854857327200875427087147503188155561936091849298663354736538860379945371511877010229913001631214872552811693482588409888289009006267136377027459334655304102839087792555486124281194336135517196446500662611215026678842954067887628690714869464134868211644645736983383100882674916158405209150614381825212370001327106982269490070272727210717197655414302032349745546729090190841023320021645956987789516759880593895015898640064436389169056246364501054211414513036196369153402579442528188703583398464516838951714998853575995986427537280414214385841848834740049420362993581104890422676790242486365851454588308156015468699296680813086950972375219484750983453594372875037765478486611196909240315673865684721187825729051828436183501614687238165347198517597316075928149007347477744536757172662317460991889814956000605006916714281338229848838795140503031254811913285782152505600945672691723854573997803143790984390474081956768191679058106702161254479589088738470353541164216349283164103880399801885090519026785342253408248509927781453247512914617979041494408129053174904490805004528948681844876654926340744180133659572189990598713061522819559399560090536268533293419848619273494049962299671035782094099194273062113185624640651986505149524107022405200121506281250498549817420060839951416565360716860247380055825459259296935173905724918504079044604745055502317163887788968232083541592469869294499716697489387527905539996594183668600389933052321240821518068742300822784172430319110605221357117023506082417542709199178242483943582736579013931160499532090800496592981283343137130119062997094883857957571992524198450734585610618402337523340297315548874210656955574045235027991830727969160713965053698837111158725974383933723022674471384940094076480024521404323864791361361785346559599259990253495024638862856361904980737510280291709221470547055317476058583849677126093029559134450333593791384480468138070174086811010234669818766214781587862986558047528130829781400469267538731254245111382968520857764069344011751561401084861207341680173267086495831570922150920558722252325549933589457792297623472063051658401436142032688627687957610856067966828423867702829958561383615768523364656768053201315406030072419011192322723657796659789780802832890852039379500799178364926099183584252921866630602381109804639669645093300604034220827597329489502782029597900767347412574671827543601537137343390865410052887542191050450961873506994889723001414422747091606042889226158267814417971726651195867733456643964086250596855794650864430735572678124673278392344643205800232450021576017666284443495375870667639740704458201560186414395007572071956536576430294061678204635419265564568774414704968231800650280114019040678273577654943919102202242066292929971805073570477856356855748346634898100156089074201558941957281087716552875295121119594765359132398266465758385210014860308555515736139395023112419239013959006185107192292217537055517905442127567234791991129769183789195270949769522605989527504171906059091388201898396897349184318771001081105487074013340248412935570043216595318053534760163612600211727588422911820684713366747553592546289488314301222885948414732252900442603332673703163621916631006150737717265399632484177399638600050592313396609368533717978005605649646680035532389240287078559946426771041980745301402762081296813890363774421270279483376438197427986621600630094938296685529589060217096143476849951649969527146238035542080213100348220774552892953787248247295132584203536115721723027295353657906343017080996326359425007469570912937576158470113965590702514442099737405944948589149700607238309356700852782596194039518177824290942912608347656361807115683892726242457294615167531484988526779300077117393741735789823695943424477245500364481479682494500732005561158534664112994608005266640373700185394815927534641173893433636278848539855891218863201803199705795555650922629725991347222272441357798844371326056853194778667063198391806454248710587582742090084289462735906048157310293869705238690138123884000852412326908082761015167631889734077623815750768686626664041247228121052024368624430430848182909679164338610390613475704544776354239230523277167483785818970313709715012807433374727975581451260276362751265679178855572310487548652748306330460548570834306996025363877482095337025959900573538825937166289773249363623008011484174484168965027159137798665762129601455118759150980139902578709776402886414254915476847255578867426698093345357988604679361341123979522165578177935751610281168106108911668753948347554941705881790697675217497890900765555344083258839768302218299723185541804720431537139438467540736230677721107989479105566472609230826708398214981897458861229895926042579846398998232237508625858451315933579157001147816890364273065887177448850937899466325592789386298357154932784896206682724278352208523213968034353618464955251046773548857621449422259510590901858393640941308872591758794106464883576650319177357666785007156060479099766656830786150897434673952882151511696451776324804909248117518390259004525520205021000034466634232770488107627837626087938809877529880149019450057868949110723970605265402442972296792315945501455524224005312253520824968007954978628451354553697193396311945084503752500420348905196505911818405315815943599927534050341626741206789467818900946548013637442885577504347849854855673021908727353611395706141467481888483144388789268417894378414809868861396600083198838630646739864000832861749198668561732409788397390155506735668284928559892400634915565241450846969453328272421752693890759326064698646684398526586281316186615625266075585661275519148700223793797875244466217874495356377958108196237073484139517540833456982307793986570100610944067822242524653002083591157536234583862904061209129393181160641996571035381110748596076442356422056251529948484550290465341074942104596650986351404970975855089423099575236562272596423097124675518145656935691269107538279254684758845929366812540694994636009734823482893636942416719407699100625204477194553021176682511364089581682221748428497104809437448880329296847292023307893955689912790589190703508876441824621187319898989534113391772678916183551263550239709845025384143612478551332137987823489768150178089623514143195819714388497636149077595914549386102743117630877048481582109045136265756837493388090326551359780924904550119334349012173044956436387490327674669945262055078565300644070750998367658112658615496101249788072863647634059486162671394588376102288653797722355698518971962114859919189688825118055862388759118366837692989158738247862912651218451821885951844195075937759237328484355525137517719154074233788559003572912153323563807780392303352391522938492413618668053012822423847625209267453138877470067931527492281791815246205219434057829806113507828775954849997278854179814129452627272002800492856896782896960320634973812237482201230195446147513169312178759335227020619110780902007916474624481824449939005960849107793422396756412451385984650024744382896877500459970829917959161584667423508785912864676717256715228192367929262740093556467253188091194135681010606128774557675358129655547552355648351144880056991343738243468759665996652540247636351946894479229271895182160420240173098332001533931449473458408776372462932250302667494658465970406912873493157774397592021854323672192502619072368769907219026401069573357601753185065584124479674190206804044597859394612794835564109554125020398119639021808351089190429486928576964583551205624618545857563120861421811809400588389821883750030896336269434267633168021985593928408985968148407089779924592468772720741520503173499157153433930888014459577922756064415100607550569617844249739981192757386070313928058315797047606593979302112649275598388316127324660475018423300337170364171796421014925919222670383261067012546510650884393060478875232323025916229895110141677148670911946291700964465997470627148589668039083039955019200544693191414637967070617314676535217157994140710869728500277151460781679175126975838346919426614690062842377427052277722973619300651281410829303972086926994687735548363233335105854423014955760673480912538750155061656161748143990948420261867881968761736878087781908614568529987449112169042581965972363172422216124900320700554962697087157919042319582402945686496708070487063875883928953777507765608168967454506462460523101800440936437038893631001620937704592286868354961542112303022624857083432051761677192697698166013263844918069442904588239115232116472210216626327143799621396605783923234881596714726695289015142226412509187821658447324722362198981517393178421870931820644164898689076851754336755029742807595312625646476079087986613370578504033517642103352309321074922359565167078831669957666236870947344214899919239073503845490845703518839062371583942896523275064897689710170419743527254405950465545918638979249878877852971926696035738992928663864730077131507989236570323163777731700668131985878285884180306086023167717952674122550706383913053888256001542647489117727440611739889272816527336314375893214852542759819748458210304703005405531164805028981494755615495660467840944385142349911410619870188148150126539781837443206830768662598315528211910594565467690837827500144905687411292549668400452185964246856340510060281497057749210984273386343223849909505409762129710288826896885018856078714190049349686380920100538914972316612397427423929585824258357924642080534998309813815538989788253010362428213690281520699275379626221481659163879812148721673221708896934859763995257459336368854458776372945065148565317168809839627655582745232355700838032667453862988208403454904786272174377415851286209728912296804121727404593228592150635262418479665971705140710178500203248343798477109971630680350476713389864176838394656607676892092037254957930023139182899109552921785675769571959743230193889202807818242053892518723010806272886535140992016183920394329273809856350360731883069050585474371612290365087596397594533113234441470382462832786935283468701050755036263419280139248352201994537471154594667048677355829558254432715939676053945141695446477060649003615186880527355695287834617427665545581328836248241402698682632190298863432275517720167705599787105833632579108501862148647883941537903783971054394463575944328300742492115717556615549639707925287620859093763858972633719748382571241487973603763508388217293104535990166985575424870558369806372750670777964756269052890503387607979146637426259461378002319997149434144288084099323131080888202416485493305919600526001770925788560747387032107167918674836848251635576161395405839527713750855987971914877260251017687127120466153712386420302127403074569641638681134150283524581621245419062751670880144790655965959468367852358495511922682817302395311495310882278871431256475323045612391414102426110450417147748639104463291913508539695100606674187947802669183944175382313918777574841705002408959518398131877372072878276019568516684018673504484253422784147020133754278952518171223145569577192962530765021735121824463103036214562097669245502389207127172890233763044984551422969408195437735775830981763555985266701826268718923223356824477365905691036012961022945468956774235380188561237112309983983841475658700109467727437861154292757982809844872157376225189277354817648923976659777276912522367453861488309481282816389740466440457193750988846684877120252158540067526060429914099564144670495642966939215041033143162791247727203443597917520955096383485308743429117130248304007394121697419185736749894616886025255378255266472765607203108804268426503771869255382948598869780796297065170396692879355986848881200387082897708819712236730851074929663422358063753339165717994509601508052568707279287921896284843933859078863513746112321116207071372784520576363618515250854662769653021376742193331115626106206280882251226232104990024620185646253493790187104151577262043526183900627761492231178454293979168591433138902870520768224869462919634661722454457200372642488009331967085539070047058606456893193467823276877412264804631644214826315128181021098285670822357923052003674814307387389017810352345901423150032026457184077001407907988622017042592608005552653394241961982447068796574494158053765506237694981789685161557992402132054193250602861463573996187331228281529068795513091493171338149535483110999356753209742561919767522249752652447542518472424356242408416700395840438523376489721625578280820173415279183806005191180985105132645317232108058931767662444319493965619989570010643256421457445618821451736351187808251909934007572746565960014534410899192750447248629030146472166980689778559329763891615915714267286296558664426303932377256998336547986044509252064340955918882758566665870149326145494021573815977501206122208062488606098458564270605685285164214240434896464797759344769250553686442702589079198196437492669923699946466992112213730577275702597940761335552408057127018214920604960670137250527797508582974204063263138111520489054739802605404707302190461484588501638695995519807906208874482782578178305622853164716292800541584720388744219274643274213290602179602464893402651786044288269099090360952212739515333656447308611755635611111556549549327778645229814604889556946129987576890188427186505319422522174740990055647400853238512727865065670503915481988871417587958306845254994530231458538644212561555929369297091310141994810684900686896859381194905721015925761781882889833768819790791542728788133173483157448127794394839488522829467548504232515323037937795362627741640414590557857583873996096819548461573448778063836621013720414813041372028528187625520762962893809116344178221698226766055791319529579771065053078940878904864788555256392562355581840125467943860821208940232622271804163972201928258993350361536485251351632088005824002313755063182099332205970819091098627433403680757379812265295675668159501190987278185209900575381879313429065945716366468807893829533266792229500186968930254493425207439723042063574266683502991681089184092937353231646075057233861018471061089109161754581702408382523901894683665341367987893211613347473696634641524315123645535632187979201458600418366868302437826720184496066277890721676393122607399105531705523966316566665078893323253345291263323937568898807622319054277549142131297958335809952128146610857064793096642314900623915738057700043480959280730215908336264984748037918369062223083104368314786050407546345302010167505784982309519746721878839389552559651781319573146554350433066266433498297981643872295488007157758519584691144904496975226795102262834815209940676243723202169729718827957660201604257737939994830422206729312515686340694237978801756359232709002751733092414949505456931362236830828399201460428473985353245406936001986342716612940702145693829323621494414966379849149533826981986290242740136649255454585428881583591119940638969984867480624156561446952243145223070361385315494107175563735001492140215155916224996356417389984413891693236428160409050186091326723600156933836966546222316637610826435357771897810932243709521419394570666083195592608279400882090543093622824631489605862522089891214171298576328369556044657912540999148535818808036813050784452670755535885699087865679993611073971940442235493499189051629382756496736469019675285135362571610450001328140733381299964524210181721494437417023898103711642672599730171773236663932305779652655439971055277101856670913680485173585634718106771434511350808921366059449974531049014723933405106852276266185875648254171776430949322432222832918149420153824671277075667382605745142904432125201566021971156278071848006145957303937561814385568997263319680472488075855334691261651156895538082270311866529990658623470437879787861502179843400471384458108375332213998601526337620403667271722186261813243568064641841683737157768546531859808126739701928908952996779054668542616236040826830888469259112936451180046642041995255655850436760062388688722167711206100520439321024036703941446721666658284959293044111999909276601510130449678028726618601376114210754006753374731443273646408579246653230089827827196436607017045817647764146710665879539907361616317581016659510061949993744456088380207423894569744187159621529283877377953047473557218798811298089259777835516865419144805609621542109557627319911269860909571460464955179968885727883640276807046149705689103123080069177657066254118589132014740064302303968366378921475889438796987064420688091851880070086449363651526613103428844554362502012313911770502946151067115148845941277096820097705089248819007742554415202222224212582954022797956329885031996065180375272739329043480514943649584921960976318343647400353732436850807158350660950378916429693083059740811233871726007064609307412678388908943468117743265458132376314447809570577751771853867658886083007448816834489875550342683869572112572670965248466343303050640486493661224329900329235467166607539322523143120910047546326408624448868938789185950287364923084018369919622181125091849290859545652652687881733105800879619654897070071400254774818884673747685551809725079088412358350392453024566351993210838366537397499473277242184210186409093031305999565844253964471766036397694370429366033110800234388496697550082800150638397598108268835890335341532469931685931457941408412153217488440257800297235428827103477284232954631563611737560793591599910510299575571851060853375011707102610105897845598304080848628089982917787182994803536642843249928665037605866010252413160685573207194217122376925320726078620424716638869039094323736259247913199087550361181852711774914901599348323364423756428559514421560137877931920684756836997496373710681913757732814189018366789004576861677071859637316266636341514829225903466321817300607490113347937591431364128229859390150863385387061575546612346656881315573819316751510880066329294389458092969908725135571919151763438017538356346897090621068138256424046209932690943406103874303750689599371798637187842913980794243355889994415804412809169904380421854224133519590275710644057263679124100394012863990885095061998809531304420631390498217702098325729735231255065624089049479562753091462477563414953801596938079117952276699655622974280747644061950471968805343313395425184436976206168374276224136538020241495926844833205111843437734572282586334570895467876948077661674650595714457318054584205356348003020752824536980696972222348020824190629900949455385283151408455336784944312581171872608620178828265252567494570477773643891633859365406649068193468117915264069819067743960896883495563919763091440552098714823110272599294952443096233129560105806968640017264004838673045689866354622371032660417194119203919333057490512013276071227325915871124870230211434887300678669804661115136572477446070396705281892202618637030280128676995806470552500590466403639759843542464645911087611933828360634021531939782915379759193672388340470862617989442354014074332305979880665965483757968985750919379378556429502123175303869561783642815712353848224250716802097303498953906565359885973890916355554431031611178424794588853842611727024709180614552986826576464687512921779607941781930659339528696658916098654122699273880172447745530163492303010402552789995644781936514369287889694421686674322562923462224069015683191662127331356446222322337457146726564154864871625074836790544131532303280285503268710127984334268845124100898173043485234727294245512586107288835956034374635455038122812877310957231489720477242733091307505853168691345662807499818142848649765283519286243041779309647577581254699654838582277316381443466268202372471237333475590821848443566172557293784927862530747230594784130349138463356205648822194549583056476088123125955689713722579899105908936715686984201065257779312040662774843181421887805546705276687092931377537792400669838700129993987274291888767431016457984150522491261668102115532347968450531756366507618193362712820621038312631265248113482507035006995335105862713433354319435795119776186339477600791506120873014763629074679476006640292586676157205794446222767141341056413665212775150046838192904056948958035786477087067829280116854935320316869091377010116723303665361353119991157239716286871419628874222847287022513269596022278760432544612914795123690805049545771802609868132156138349785373044904547861537587690734805125174406627445965333419611177855770400925699013518651816563990527064780005852259781557517938057680270803704731210579051722752503479747123930094947738296983085174659803908635403458026642206453023328953201368825845405321071792618379793699768758251934314934669475280925164603115181751416750284340148553667383494482371697502888551936562146593297502159117911870221617606693112000888636827353306953351041954989777128579334547294477887052915081265464428680084504406869618388417337945738270308131023968236082072660696949226785252323897361529118651547993605153268563829417592332472089539883324946651707426141167043664940502460242607058524093534316564408065757798710443119284404046179425303711973620513156881748942962558421077491144529083895756202015928297383449241652154756179252098979547005753944902732392240856590230201897413890545648040720484543399263084126977532757711741072993804212638079479959767857713295178208083005496926039710161967043114361704456782521248148184942386262467497687182298582057155376179797827596330419444969389974905443972193891884939888333806035134285753580746745418608721493093478618836724465601761955200510996718387032110178485168207343613457195130517993184327775523493369477126536613866258398940935903505326426609477726825877460605433971976516840205982321761396306193631804283431988905295972709696613107095126470951660778192590630955630717578687973609159408787490648140261887836512333547818468186424012969799422773359231219138025938704621889360576237369903036794126727919926846092509959021635246357874070207447471084319964046810871005522338515249452553034227209568990951867908421940724990010133712881729914705386665078983307099973681273941094965286527561616124081981221621990270118896427170382757897359966063207922329773403719448063731442487605963857651172166491232228912642738075114885211339355261587754089634740595689673565396775153564353647319289808445789592084887070800345708546291217169498830819683064326776882085586902601930571423012986771015848895234961755305008505886297802262314544165052932305155128797309274924923493315978598028926830057076825560937887600375719779855021430382860746550745995066924901215904407350342083239701127268700465977815038478886296620054525751930913532577751160963156527332131569952247181365797685634663851423512199211036815388863801954833137965793487776753157912004781962497486424519619757814478115940399359193893906729713757194876670166797062419709083010286300748484906025196304299537688619959117325745166370826858278926348274826567700413422063632516776633445765394142244540132672096219215856040582231156482626590947734886754352217771739489332415199874460914987628018341575272187102152230440553702920951297906639170877164425248128748586922042909132703273169271029577825801091717074525337474569024163255817403607222244935326423992622937833670236367901082661471802779119172851242493867031986420799758919783805345838705680072778504448664787734888829347500416673175725782948792115272659113368074661680361287407065828097172304773553754140625523315150465651946702333090727274567945269889743537698336091245620257066650873552885948854636025289111952092646982114821773892286043326438561366326148445203227961431113616637609597433023837856432647547566379660191912580404936722740608459287925020944651904222636385764635510812572250817495474829026111687423560511066842030826708020172129106579852817109522238583304032716210580077939620355135102555338844864021147257069096857691384201315471011416922069300274116474080197941053568210543641144073732660924132930809050216327570811438369428964391146423836682703191790716887580841552850068634152908099874369756818316071504228298210319595219413298420350536176716434337409178833013346634113675180671351372867862903477953265338120909890478566555233710359417591198778083178513820623664888418697495342419013064386885905084263857349717397233080511732562795156369163462576098065210645597630330379468591781102479588867501716375663873489820010757609561091202845336875196715014348644233513638296720138877029500109004274325449437937758668651798442574245183619552748341120444039088367917810013678384421751092120866167792343346849360323882150562686131654707371823132917209493483844659302396788216282411461136603555446943409475255431585976160319002724120243300760010540411023093905483900204195471615026589753920821209078411312941411636289981908178966371802021453395824688734364316418125859173249391252647905649677391713312815404929713133227017441178397069417303144336827221938491362924086136741646131097725963500781123352701706454100481830680035105210899436522074112977656841143541051401694605704373803467391278875829581822014268455044427678757752136956274169865465213491343594657458368709791525235430848188213770251007875397530866050521436882534647810656685828553389729696954768590751391222478564827110444963155799678487918807971801345567289240081720975826286947003074967539394937450835607097062002724405199804812701194290573394816724033143005605545540805780490860767308547016535329178694619166973042325216374307600570253452589147352287421904994640698505585820363621206909346944463312849446242159239393639814817806185421137946418636304337385930826335720026369779271039399911170928486814740576449209334408662821789261369980843853159128346687415886104468131131513796514057070166385546879839535160432864233429623417950658050963702881356546333350595435151141948117711326555247186009851531606654412389937259967706464949268572396078735373259977694542094462158236570974233441991753036545184199553087011604927314201232272018427479332975018194264287699714921849891817835367884271877073590703513323225756337224192847388168398365444007023229757092072122240968506962669357436316635123578990230361378506547370350839819576309501979786789102290991219205252047633748630052689302025780477178500739134196885124419003169231757575674276355441843383748125301473073360349892978946118618914074194179951549322726732404073827661580952583314075883374069937396298064462265176512905105274706347707655862142302157254972121069726611255461675797294355888392698507347836469169616236539735139065600370497887241863051187168687868884806452694821104741082361649902009934357356551482658029296796081703747285707324350440317735121951327897135512589659232754455762947359725476684776720881301861310689743097726914159659795945762694761956322189580303110891007098946597076238885722294608973176684184117724189021379761331736662432202090748619291410057238704598928969696814184759875359463713784661549084642246192650236525418919892602963812878899326126061433456063732930140843516142747370626193856740093809757999314574648199238084703548761911814100587927801023624563609125225846762162412017127086067680626566637576648395398142094354352546244659317918746703948925797641438930849081336117017863244499015097491748056735666142701748010574854689748180497654765238991674853021043793262913265408320208254741258795052656099667386703767540603906024088193260244022892579006325772244206523809549378619518242714867974891502224960759039331334160132273735631854244231513571191806628108127722703247136940848558298823033438775040509056524963109691165931166056396681166201856798124234437037987555645939413782441083808827753592167050409126051263138880826887455048182005215256522109194037086293591333206843355772153574960103884878973200010057023018399071944741829449625775281085598005508031882234622539731377515758378395068193230602944214585339145426677548078668186657853652092349073484697811092956980720091918613044416158091497437499726444427187786285175027342522844511450571646532466432634701178031425156395519436950982868411117526595256675717479720976699961777645926981280457452039803609432461526083599803404547326116872195788702884308703346225268809489950162626254862237382370397487716014515445646609768588656581221801458941248713489832387012924832856799309598607013360143352112345775114910619425328734115627966856208687338687970211256436479786971038221159627596326203483344266436922674675919564702720406828398091778985828020991701606711532267713749353996402360848651328690666743525706343273728308958483164123354985871589564322350860594701663350322765362809884757493845881075404254203404988191390415351175407411731749523548201820043088902791946153090271844009858553918195863515403769246341660025054038616513093954405932666621888668417732032746240107993385283873809013053301882937314669420815757507327157187082012495686706318687595409637494209046770719657865442161672219844611332489066732564296556844948402267304214876522115058597311976626533165316310628643484169569864488850335898453797918646054500695849832948373017606173911016554863494213898627423970453044313269772180096337421421122715842822939091892064326205764893201450623581934337033526792608125560886454751530706455779029778147605845671642556196383248210235342680281159555876099844820467012883939501918091430241885308085942040477956058248790984395614925891398315618986700650179259189944650201853418717720617017049398919148918357376465536259330033367215150207490913797394528661401808478149001411279147656335645345208416511799463381008833918291459984157417552485081369691883103066187549156765254000465468146664858713775332160305385618321682069558608711414015328037303730570580831894492185131041757740207517441457600223452323729423250242433528785614501335862949511326840213469820304563881140219916108257609821660495287907891387074675394427497247703770176768917060948431258390417708631875853238020838080643482011760304356487201297947847551257526333198166129287998529289079171268368920296953714981999568797711967448311222683663516246099085747090908182824998988527359737939371212040345338535622569266227520795834768525761111270761148492621454696228049811417395999837568793628840658674686870272780240972523214789790569414155549057365873762252159098687905843967646997943565302868252755868009439436618662875390338085190417944101307848215038735061132331670855645670948246099382398831032032429317446646870323421517732265686408157006886771903275717153775493405730848198894261365887858979068960333762316517094649397210359975725183562775608035269777282886406141825978177193666726561764717868517080152369280219533043849659409441382805670763307531936179464692057219086289095173785451143583551801298507451818823511631816956806336339180919525708576380156895725442862768137466511552822547617709810546961669957111377729059610758117906204218884075296187029508062454683998612993291365640012712899437101330623968748264846709104854194612719853505497408024022152178879387543267167077480293234887005849327942076648799289773474403928708645763886297040709418897766590955067066962202304452654839783453003618165255619491227068908131418132917515457831646313376650866969128917245632729997203944401431533168508604390749061269764990424337185815470742994710677740781352616450612247440167868221486033055594830691163380813226245511682067943105466082222794252909829816038145010611648317880546996854396247066894247415483740584052304002272598504248633025917451337136890021887451322960260308044146715678152731249805957608118254316980900220523261250620040110721273468403884817695397882053535538051708914510762562889894762915747720498027003594011781210905431539862633583602484322094354182008307149959828153112114274110759497398641132744832665544178398264823972855837206886535866214937489396650420265188989192786556553339497972900749401349532574379124537573598690086700800514707639691983645556068987238962024125947236331048893433726388343303538716219094800792710153589021424667281434413084092256979772058532613624091845503735588003589019739217124740441865040147499827982767035690517873968657464080217778791207170437116010188902128033042987720591054272980015543926866795242619377725182125285058676111043185813904873847019307538293329638746859210580342764078408775567007956270988732037895844073761800921624407411057487299991220171075483016478531229489766668798539185402296994334196633273577853735994320253051508284958832773859975297657070432799803355220861221241625773683032479615926385102409558283042777236725952968824914477575932650068706972547544715980705316573473165557740136267621519068791723279748942319542473670753136665193821452271086930654937870553249845207740389351301649406829936224337886819293854673616591205478892363102665759088205843333983522157928846223290683203663278033738789366292361735141123444800659741484748232441359383284436153064316041446030915632158639826302125997676160197171077672457897033771755545004803114387762343951135544873140751430518134835001862049612846333108141596329758312679568276874089746495948044732209542462468497856517523767979267999951071369220263713251588739212682971131632607785998485217546067477813989885540289840963660455270224732361634059840791179419603467808808460567765276931624049589409087325844418985038689428474840491812853455440502900429471806438646835116311630629988550957241998684842289058488622179228454872780624330541803173468303179875104060977953998929588798371399161487678368153505747591436211985385354341302524708177674815184952037293415831160654326158059893350771582297716666223308522723993954924691801330155685779137872125615425469535215016789639686051261357230767032594703909168089333478243858188998837059999875938805394187480403051662264223687762001515759185710094313422022694772664685951136406287609907425380599824631863543300039600853438645289184268541324919495556222464891312778026995180311777762366172811684557000484807454925316258773761213030966482744479219999584034437195840731232735201219542883925880299895493174380817866768093013987012746762948964962921103111049060178306716120170989204363194386138543259065008114722711623947993499703711551156830458636587056666257365140463264473319472471572370191742060174589502779624334430198886615394501365525520509372458668607791733340689057621710987243094948303954050410327755849094039195036324222786138022398687197764107595180815341042049380129077412203730479761163204687141342735205088599208723761199452115716517091244997309393679186039531219537440487538694491572242854681844128597592975265044272465237998341937387075128791783242312956237215462379297262167537024697506492767704710992179415594101499539113040923442093701915186575879914795640711913962215402182314432935090427377044917890905367793578839595640044615488312115738827006130293206682047244183499604253381991588058333856150362127592647671633697653356504853318702972432906044071759124648238722794875365761490595695197226034840677612545031411285612768135252243665453638021983108032736176234584299082480540798050867553176597769703254931423461291106816074535347251059326958837852557226304278483850838435667111832272920759456319364076409382172238739088740280715592673819015595089509603935401929008982160791288809504655460494973086824747573691579083736879542948695847333360912231979794250769425078932432294379060612183810504042310773557254969931305920695902601972662349956637554152837873063147659373081026472438500620929989207585006937349644486197009055151583211703085514352212436729195000236198868449407878189828936200910288155932592230723326893761992335591267474340772215637593569011639095230820815671165834079454701517697158289750832570789349447434864703421346672817958394650215072781167039504483523693256545484054741628484331480152734380258677598004846476808665023088419393588662582824437598684876381897099101491037943646139952740715221411443532234598089082005228460277223851909043940801070797861870046868373779736496950067430151306066771171686649061423455536805568446517632208536250966174549565641795072118953281664667688198410309120247835397946822419764934017595251646287795287443864260769475652460351131657578821006445778882279119511878260668428584040011723202317946172867599732724403273760679213183772700911656551554357955268830144330350744628680565376267776993866770352228503538216808736425014787047363018179356064008191044102456211322209744001579255999497623087065668327821407022566035935671293249309854611490333392579409003842166738474791562077531598589821121066284434004575303389450658794438042290355946888196498680386129513638280379091104444155219766131261567728483872803353689697644900836937139081831574433277931182970190423711708356357168663635875560710257671126899358653976828862331217945197097069701823911033991037108041076782821032527300923251152783460903466354561432006384771701820306971515257554114221116235071105885943851522392499774849478887155314440144499757838642992013652037588520333964026366222424403305575309365327019196709526770855712784355615124279169425443351829288979322560844611488620661544913524289942734377705612275797049779959229760621321142071372169320697344555568146130258444947236398496927413190401391932012157116210205928470994118009135058055836887889818102767346879388415771930233675826966798812622688641662139015502137764157943191266812184647621429769251511446540710887163127116757797426505680579726226674216112046618578772247666421134811446635917160263900208197801232434215985113003989985185601552410611803451618750947145121386303829859102313322802809983843477678576193933702007677339282285360596663201790752974775848300812039238768267330648794117121274937644761515277349163439620780167233389775240971624894603098239675816304455571351594264416979671101309532704461256461715432888211573292886303424977539853381550201296405206720845927796754587491530344615626781756405518281260478682263363693766982737230882790966639120973535993842605170110224149744414169993684617338808361909215531259169302790786305940823129665946459874574526440457106763958614727898419663424208029058024225491074070972551721229502072432363288330889006384546548613900063245052296212689454353975905178656452131193392862891636042528408755170804868516339198613499364292375122707504358970252994761613628430632160357679667286815021867788864300240867093562813544329557112863635979380690387296884162626200708084298456961868785248524423577349692426013838537557322482153493922142529736464632486360383224266836433435433585112875282486144465403824377403505563273355272824900485258612907091232570011454297678256286664785046276621901123433641738399091071162838877370229553635331894398478797103777454187708909786450942312535050307066423962980218080302433573978016409987279576648753189702395522179698170479650694686264049635553604068431766537030323780162811921331673982474897343915788548984677655689995397054456127789230338560954850695040631459952464585468408670953271854198858380346777137647706771411405811982654861869151453942207383312082779918362696892443366990626048296394533067451282639933627757473153419396213069424187878106220683133480457472594601893154263532451744112089665424610626619364803889196521815816674798927800294556841993789120363610791562328351013019097233148662789108145106868474533414672705251978454504107344411873579056628405841633860567433949087989555879736679972658398646312366441714354218077807799656528977342180442008043627773207659191065023199023128497834336310383755817083884865409983845801758472770680559580302497049990257141283152347337411171199033178024153506747503692432588650136121172726092079330634153467182555786492352465585888686902516650442866968237917420873394798271850115799404257731596430768191594667484794302834384385538117551935893139861681126254872731750504535349329434917583811339298423472145060519760326646248912830451166925482737808622601256994908220658761248281034151666704342593677796192967804462488411618136295169568057926912839620712193573300068335362431184358409041245337918327147083076069521248405252526991189327061565486119089903452245452886618668706817445227329002619425120071276037020116532929766973272500844456508294426113307533219742800928464463491262434513630197923196541956359905264653488819494264944213351627182821088329910845021643131922710442509657959859369353417193003270955603196155955094980016322896315468444484159923098360040991374834219449951670271555179080769281728722903614931984217168041036160417260586205392929198780096633670549431923093785851487530007811679890671719489470967739489725886628675554938800212021474403951538451991989473945647139470540156867383313947996355836359874789392636568991472080179800478101364089053357377725064686383710229194857988094594796333215709802986501051689899308322138356900269242238587435258498529629622937264724404285774772995230449998371454717179490681630111558734417067320877679955208616677113763526848887674957617196562665663371081132895948466283065567784715154539729785408481384459676125465111061012081175498848770908385780848408611781809386349177142866827406843346559324097942263335173974431052983839120746230045100488748015146099066167272516064484880048873134896740862043459213549381102311400696019148064405123667436031218751211551564430179940722893074184385041899873668625552968935189462450776869395249959731487443208918287346105542196079441758863733380057817348352236640763909011408402105864182131750543285005755629495283919187170436692317666058811933791048087535384491176254932311626903722360717817371330182181571981119113946413164972789167708245992914722619705107673065851813937566288471312184295432132678064512312553022413771143772855734769495057936209565731230181336725659673021803067759826529369665645733413726282245864252766493927251814580556507346832893038503346324827707621941716655881709608216532217904757292800661972768274200641806690005604443474647047350223478557175360998909448673270286815947062963898387321244605738317932882424374628093456679187323801894695757291273302493419740744943374045117089932371406334670428088032860724420519608269116563241000719791979757090074209220492015076418697714555829438615713947034987170177351756055701171857294675857761692619795495085144440655351063993016746278086495998914838652721579681041001136396940066820575661353304610859992362412837193288717446420981246643678526962457174751990381771814056294801615879297449953515892000222083308333656756924421856736896627858634918249497138581680232199168025355440390146300499209819611478841546871045339654034300349309865278930219601607809467436538250638327561329160273819924559577079489665243619896603258114462344158616451640109039009770048344616401255529500663198230471080191411934909479437163286525050689898695857902593971659193849875539342578808186731026642406178862261952234124776322699668225270796934981853308943643597809623513987128967563617778966722459892307048611795617346068719873102609749170702573541344106378770739267644679722460580365451540441389598220327154516610553045389278635819942959345945487036619286085529756350525747457534683595434819822191740872493006685602011007459788290672074408466669870016936665964287012427921949601512825091376955983704901157337700623501986893824613221279804750745301492935882414617827443001556175191687862252963148994122328197815477370341406527789907601787396850707011250029918518441513121306962652885984698567388246665147400389727256116663139827825493681338573898583570473828673082896761008110081807108206797305991585590698985921385543105702591798861679794381510936616688015599232567791848444613176371766548866970043783328654285991245389873403138029433139725153511807658951140984122802282815682440877652744946803272681027466577998920146409118077231400220334801003169038546979102971201494301732367006417459198362568503243860985095979843076672374386095921829274995889344488693369797158450080712842621796995150807353714918848434442947694292979071416728682458363786103697762564860683743857824837466619936689784835745427914533054388353211473077420104386409511162009575219329209742066980888581840460443324860370418535443150792767434369878040674275733100566179993166190440546455360627949383199748042215353809614399133570584248309504260903963368703769663426638345257183557713290939133309352299693305663117043199652072463659510261818472060250759576528999835071181056502251635366318983149120226180441147380517418285923582052248484764586063297413934035093099587620938233038126227467568049449574176911292538502519325118666229893654790584717964397089030925014357646269881438733548347178516908705260622229623120200546546702112622249893188310513220038330887629668211473366411451945177997992232014407230937021024270982680155635335127585993949030255993586766737107829096166665383097891185717441855079750593673474284596724239117249789072836457025534244456584059858879934620304313632406447365551557188342419893601049813723862880468664860064275312006632975152468152470640465889869307667759049852945578255119363783847437327378361848696224886931851834582254303814488212561512605037123336190827497511381553393734594951346676240099142457122434469571600472062254963942115651509001760392632527491015391676720302035237065438691347767614246484682752238261736529500526115595145765672166923079232975542789883959960813591971848622666294292743161619710560080000016662758305713122790511226233188409113198593166365839108105246832600480314145710964105033540275024155761797947211909904930049648102019459474726182055549953898086005767699773361971501632865099342629231828892338122188534928209499449917517511217338383579806987951832367552227714029086241504796870137350256298754169679078174539987065633105319923293522234508084901426334392792335364228897535099313286281862289637395179697145491241701691876719677992897431905226768224869258454279647236817971547513839676305012973574347073951796170930789056726926096685194163556308060444783404548728488372720120901911719477848283475451871851735933331200116522358822997058726113060924821106823923266490497626832847419910317800504430249587489190300962080064234703488051325202418719420865642233268951495413418699914647456670507175504643225809307679873712788785694465561682157087711319130528976180308628845327818108140941626231018897872336274689293187486818544207440040348205002001180659476536345421298550459476504031885799115002860248852658463734833676899508659706241679503024396722662954948928847108964922590512229623702203076422492742729836825451107503024968345475964045987606514858644587237523998149335147841032086104962730262844914922677263247661462814737617407366904683349271144333471382727009882146071241927995026221847492627928464334039162600659751176081146668580158838719891436362741486468474148552099910843899568106490036001559512813681390988211082327529765029583327019711472733828857954005997985247090028482087199496980139866325573146411580616945399629950805836932758957245548988666995688393777306873454000689523817206168196785896086599308217749682253729766913813885369858716050029674398275619870104354043170575460276926986196430698622691094749078062089548307766149867391027504243123849646234796722778416956331059169148643826749618611464154767547694119527849759226687552572312862388289331241744680090929734777119553790245896723367595722605832883488013259939891387688945769340918580389232260750921356979091787326601394728895049646336004446322720018659046843632419551459539816982957842460621988880031504335182581752223849196549860495214821593691801571092416122580653538945083592108338831040327486672199186208139093631340175318960996006258720363329378783576725122483031869067726257207637824036222520108849699148720073757660595409394359092505910757704754491811442701915563031897168706256215723699135202666791522345414533212031268860220718567099122716094576663341221812588820558438881868641631706661726314148879363980725958289041145593476596408947508570860752388585776074174957977333434038480431413678163008103150743244650578853046606147464036186534161253155852767075177917240246544288545168129989499467611860452064096335920125840619172383638150702692638492110399499500473766730514845509979014633124923655301337288938458455169196700466802604479053036089065804836473320120698871855427915176101334339609483433971479470727239653839530418943179385867030098709499865323301531375475343160367215595639430206606910305732881970073986808583452063051542343744445143775021673826901391264290964791431684923436226438863472408674228988646393752588769508295355105290275586421359049982333704091860347210483131447999333233324326039557710773096826522373166695536566308458886697162706367223846265151174499575670354213390952707359670182294253665990985273997026479045365612330684825560879384336289277759861883564826037616568832079223187758858315838580530695288681972649863432799805026753667460891983456046747204182563707799726888476790707135701708344668358311767104394919176974964324102404510317469848625663814564971346610387344192512218709784622685883374715687835922640570943190351109552133058154030563548607746202099247790392535029592537555825833501206478302057913727861448671633146887725493319808209425840988024415319404868678276155237363230660809455001088067171896702769786790996091395787526130242327960766088479041021176846327054496312102542568751082803128218452502694788889199081608835243840666104999298610190048111195263984940442218499919586192022284625465908326814589907033507391257295508217791692404448227093373271830502435604823427868663048063548084795009126721076988808054606384124024401361457020759470331996302390839697092386152782226528880672955078162176648190608715177476468262788421051114452629383461359763504269340748261048619266421862857579826957529152055261272770219623889981447638352840620488010948912900326081407743547602739672799657737958274921322237860512431180601114914394892142695385341581311343001814084151528274732719282646395500442270806064571245280506399962534865512185405650151209521372582998138492774033032679229378918926097658454213678649451159345534409821717993720355135982472153778815513321104901701034617440008562891257633918741239272707640058108566936697318364054873791273927276374383374748072837599364599866883188866161420701437363965205236869290541081832542137467299927446926185606378954757468986422547064333894437816894041056308014196434541387465557465195440939020059285332118877743737153768916410255438566431856848503540886855477517975724733813625139043015011051154308724671067901601702178076487995891775851711876771591478537188364233647962726886351233140563904438707786082393021333579449123134862567483310634441083257706303352323725893884055304748224513223371839067983514252608401304915485891836200497534638294480720465914906862581052348720391123290688632233853934654650461541828973734891436718745558411044300948211588912640058090071847942272336067537337953184965711169847574154957495286969539566702353741053319745145731072343093459397125183068110490327245587720277964805175224420576311114259709105408183885732749739493924050148301382640785326552142919311980403123368138382080401920175108356784872204648428906687811899566814680588586833116041579516468190135615853933519822292385364014643148806650717412139074864588603168904567629962740481511375458553995730939735862986704514205576820569057222121557839608078060185914721568571769905338041386850319239283872696582682192204474463349429521393415449645680311916129503504828774678724054754124564363457466161008536900754956767446271730641439045018062473444118886866561160028844716028356891924531245348208982647127227488682449007562041487424998166632702822325402377809191904529366825176076439908963729228167405022556158762084198711915142381454749953410332286515488143552386942098937402454561778787915610439691987885046158603369055120103250124287421856938748202799561020438572360071391432110706123555848363208566828822683971308979793521424951262007354923460824023950888554479066025939164480196608360746729199844464207459273934142827162391471648033221074202287897492771642341767145686961987977358081237547150457404388956379054852827360083351427756126588238722078715373622237963399435944058740953010413602579278486873886431079026639556687795848533017609403129266787275279060069112276344493372929313000574585168849373309922755515136708467997101740731963481655379708319034330949897877385710690807847234753816668962458924526612828226150454585338326685835118855070285280907754429277323930468310020178463654554941632395828150970699969358010305991048013475365612981731382890383749924338348161996225224221092303647403332247368844079681290171690874591452232318498726416095933168294054873606072080260116292815026333748174012189014240103088879597668510426646022651818236414312421455635114882136624567004743973314388573271091554144989225062662764370402698368375956132470726243697557716410563335296715767440323558043316259011442469900684752608758815756698151586557155270990504882080653277597406366405520460124083065847252694166061900104635773628455551134732025170027212648782140149880721250989181592367978830721276868621243972135346034560582082002567655792614342655156022631210938459722147969909552584524414690531974981498464240305896917080683407786789970362090178625286341340482525333287782900921408211415503640149039376100679671081759923310947526112799176729133178918595684474788028192266543274014589131237673749453541087397708561827621099428728658695597360276129194371715361934568830952522236340505582359356950959584548406006096518552838859026483094664914301868068850648806499042485413793718279629522174258412082720515937031438959227168607009609548068024152660655308173399638438313399897734868742710100403044882181695545883091687234391613433439475345578695315521005254301630098882865938288678421710168211596370655596186102133533376022336596393534658610401544768307181166533985363128459665760552779834273196125417034774506300929365356018763099596018755431992126152333612310174844730235212812166349293580469932522056325463877886723955122017722163726024739306324289593876467836906886449189031311679644829601799933223083270648172453827372387836562076753943986247156375243733784434628718414524335294376677685490456135224594372738813328176546121324838563506028078194537416225857504573971057527164816176329256766655078348872579133641403367385512384593977049470503014312987066463762418210690724090678455726039824053000681824559376531852141181397536059193996337931144307903637090240033018320414804855933198435334463125064273137432992010218860338512098362014025925029163560296301965145979746726902452126558996280443386921067129660720032892116857325117179366893682945572013713132699422461497283943727339815874485825771920417945761267025928508346727091205997417907953350761316640916550261084257413842347720762351205882222132531530734164392997103438953091221066123660189149298794043817389449287603567025597772931087685242296060194950145470456380602770933493023047670637026886693825307536007143964696584385393538460491300765904877172058458563782697869806832977951086050861473340648399793812205324309413089052593428515341777230398013005689536115277139534052789027902402333347832479271047436068367705422644742765736417732032290308505075283929292494885643489026298136356323924576648472492510870067043386341213107286443046783569951685323847751743784984953306240127639084219931355694505908004655335783990338757368586018531015905135479606089942518927102490743984250473362582685799018608339621910335600734646673296700965850634665043869539554633503608493567651525274504098203164602597120018709263057974395104051219803192493820665008080808639320299065632733273425037015228614799931473525119100983341544873828552842476365175943446248899830475299499617608074329397741444114674010473540391657693957288108484774166333552570023059915912622994598243437909220310304417122571605591521696513222343694078611882259217253242613169445099346915163419361532166385980006733237649373907293875500353807766024285004153371543533465150363740735011108509475380656752540239691051052246693833269500716492261687601883610183218835734182841074828275187928376139343289108875644589728308625208371050734429677145837947119582893199583343364668983695516416289899098716830011452693276393025084021806277208738647646379736102575455551156885581509709806192143187175122359135756379391207331737775528673118522502979612249070950747160890377785310900345648286347186352046440504299016825071635208205748513744535573502229169228563406716422867932208435511749650178310101421988810810032982301056254158897528691762846541092347015939461848095121051024238424435698246445577866766589334359060608759730321109259438833613386981036883747623187582081036616283347814705676201861646580478622944757943021859431917612241713632301626460633514299177916004559804715173266799237655731274245457048811219493729537065146085491886486585213030066638908483184194520552419649540568588170264288128417912710618906996402178397072402270510993424690881657112905064880092123494661844155857507626636746253925755937302451737667683727219196227328625386468891732486844779828984641757348703494382879298073951084747907471931454684160467922544380134495521195743490466603523686825856135320499419416050621595659787744300264224067772130814781236851536887382018064824846839618538516157982097617058813464295119084578090367972887997890099252949623192301738986800292392052488239224185409978057976667201519748060301133354043661042474722727737608739083675915787517082673987398747359243356488541322317212188616362322541559642192004851644548848646015710084979973669190386380625669525631558503766604361258582476739329959711492079719399712414781442155086347291349145573163521162809924018064875860495112136849275521583887749541885162355571259954240682862579572694808972084069197404481535280454401522673447710012229943465010296767125516105931349440611516993948492885582736928484967524285730507103327496805553981921796780533824480463343925233143855295243582220349403061611296415025021623109852396425243163316481509035673462441313563387639559163446417037462318932382890594592886740527624598016997196040526166954550491765005060519981937867569088763460926363306027446182270711051506548786611286622515305383463421585806244450683392943539894977943181302006044642312969556532678133851011781087446139525184588698180566509114940431887367099146667890333044073715240109161433697001651418241127475158734319995069959894796125348864019056019240837347597037875596106154721028832295107356223994714219538582433240359683109719861042272514851048860693115329553489192139389277759599578940613659643572041712134140337751317625131968908409492655255930760730076778340180967365208727725963757936569141497940008205187312988526619461394895186282458892597670849905970901513928093959614791221300787960955604444355907909712546863444161632516007732132833488848821012907220149484654064823996855203010594149332698394216665990649452941304662147836471710401073990239361152751560771319865333815832693819270477078545406381051764528833922090603951250088708277201180677291058202194253766520166127288393070860173055814285687618852493499203595257030308226311947699969641527373742375620318104940858348939652509851163283650309417686273309245063699208922891833059901383690682394484087313267635664278225899283922642235057035907454648149370293531903260311299204644595936463600447555117335243525839330861647411906984217310976369599187580594044473788987537386821759284725620896087458880850301070397029771729661048033114251574957771101627887809498741680910149828340699581623284992866542449476927876434324598498804854368799872737945231556184452161434600733909719985837801158683260477697683859454398421901480734491414072351811907513512442346078089624149537261878980209598816542336670709317560407094808164966661658695824136498547843265916215126389942877437554515570770333801206445107324032974949173855798025840873294551855139434308077770206052137141599841373068477873501662410860047591816069984242477953458604388478604534148378727574007692370067785175372877336400821164667455484417742147016504561187255440565721318199331830181448088538493130408683547842206220771272223990736537481498207008928083039646110612092137518315968443314977503773969795102216641028205579448927111320609674892129858134489818053960221212240419188305809101164792772846626509082538979460735553462980903364943333048418171973428495975907841067032881998397662011070431552499301101908621642669361341275244689966249765212293098672219234751327039595753687894133127529447935504929153919983987993514799877544968527233391264810674081116514175717852371472359799954742179231076167305178581571093110423055972926788321807161742574752348949050220900928034175739108971356239613743820311145618776196774000726023420427124538018260726470587327838399541408872985074003471946669933042041106525956033003549066282509552296888809699829933898575018787951271497546656690773747571124042463382944985492131732909949263343158456548241331096771420085719540006215164109204713154674289361495505476236028295204866699984517404488720187668933646059097122348288856285358308908647119151504967212999529847339383126451271193864955614904793805397407666018672304768924715391409101121879832922175824922256013439880520443062707064235172912625454482252765789419978941811331075884606326579489248464819532660435638805654585472021054791680594735848984831425297487375151027363856112276407109347814124007012702153402975309174027782105668770798582423594976803292447936605998775039289151384874759193784222022026097808041950757682742843852265229930626148681968507879825643430326757709523279568521145980296833382110145493935559739040532854852420346573069562137736767993723311347479212386895869581936730706290423313538163699395466791302148960827749461065759700239434192997494311488470602589449931264937931145694657548818072123041626081854982779587329215194052677860241967590693872608281066482444973805146084117381054660743181464615469911418438231385625802228418813589602022177755834022066703607307800481211260433168041000351346586203117902737306308860133325189188580311819954004401674764116320839272389799560148307608102875299785839067297804933876887362199925697279163035116676896478369805026409468267333034606914725019562798315607053737024268439884735572491805381824385921765961257966954120424652104327961340300617413612547785594736162354581073773233823773441235705431875190949111619320740809255929050054656366494958987967564851663678675682412977648702957491301225249396361626049903525681725239185420923688439749816496185738374682272627930502353219859773005399954893494057229963617276024074248578080030533603147956866483074559864479960820869021303082851221085839704656549170877405509476148598356976349423271440566876826906424881823050736439587157166639346037986203499026541192973925031673896841413156349715491178557334019732533501311327868458425463457992430052831649727968100311965836564590024936786369115534229502097348048783387443330884223496425683197755406923727288257640983190322799144012578674566354132727687441721935681879620538131728439196521807989324036317620913562907786130376975367513528052286365946187369898588367253416396675020580825394227027959519827258914715902993511671312102338219834532906240933316874198891555448810401319623694095573680806211532018763829468586179377826673076941318705265710535876536205030997277193376982689623999396574618028485814603355749448153038255944722974815482535788362995469778254134707888135579287168920804428870978287816829028932596036242710665712265109662004938183754849208792985273030677704163069877515151938597276092553202952812598114697567244377979181620959488918833193548393440994807178238185269196750139832178191104263384491815430059181267074841784082024422880569022676363919409308650645865439487498532430877571389010181879873136167687843150861539769514279553509912917474313033841020511021004498508075186815116552829098877081245315640932515518285970482457135096256988454500778223469907443882642449437896807460271034085496090411155420309429634933152599457720970239223538498829478432774867891130147700302577319891566723650465247531958111271302125611433915039466897095801442175870219951982216623931876585767193073021311422218586656033562333923738474185466243762845647784832516122230083795203206966022611789609413642467384302255139276702728755309401230910314798949891015945888800747364042316028843343850733424857437627063172851004179427303738991869556085288058099160165666871229192887249271956988559311981240145932059089887075692156608012962013122632073886718591407514066002573197292485552567973995970240915558296625649877688130380098932762516595269447625444708340942599224901313309791379970140409456972167495596899080510627263015568085373292212724920957511476294256765730700624271863980131285546506120719469156102320589582710991652287959007054433899496077184480713189293779442765924526555286035332222117457764566985168754796532776186486724575505159877979389767321125497468606802640747871894463898399363489765881809861155531292137276868216326184904662980939734897787204355068567123924249568737073976102148910207515917932705447556830075505720440714708045620555481954233624424818200625528145211241909347165133493273392288428461344192709723838822235126786825812207346759246296977372597977956964239117739883725539381276711613732323167966871489667468580326606669484966733795601225114062069444341300732966286035039844634306335298885311146781700782971753394992335157608399859210491542737789789377916929337851720769919522796946828793041778720927374513836275829107491850029335855395861888585874682120540975033916447957060843537834691382758441932578132272145388414763695531092829060817195414555359856562762703580876478375812993601628565150102051294538231781750860672489657778331685315728928006572623801751619869401340438162185068073668895303469543865502936789146238854568678126991967454809119541670421499887660346239008647093252048382123354687295013551731980954200023506146251897065919065893179247216477252003720147752101380296188308674239930246904424857465790805665897943721039206714295272899242014482650100066556176230572343810762314663429971372366959964783602774256396554260775824208095424634086339405900602671094991435067496076831577464908205808601697170996936857707323086800873458719898552052007534906495694695917748913471137485410793190787338013791433553796215655514571322774286182333428007291763667036319636060083380953509673989079529672061003686925618777198326069345640497989042400615833063406278665936262650864292783969527332472321427886141132696565520705226758338361953485461477706251024224008689539971284792053149387749426782595291362398732127910914190882072595517629559728880572549249304897089254342402777615639827526661153834511096249204632243585707023359216021150862002933686134956367801919367207016529515174115266884553093029589436006886748463889509718761522263542829276044847662260844111141858490371050831698131805008731330405365253810225455154392216661473701000251028392831170782650821649603560640278725449946398869163396046959665249233343474644255757106895083843412948414134768295870564626491514129985451793262186182719866827315672785512466021664724280093346264059836192134102161634941568954694192776060591886540535927450683691339282042992605266770047997368495871955602670709551388001705076951206990959454292329590770336253660773041444735546586779840093137268942759572945734320897301810580260882276565818233253216652585236366152142026046077285664914496369975008857778881196439649866139712640277374036765393865708043135304823601747527927981969670679048831225222573204141815636944536533151000456603677362356503328442456751268142358220666162500024985183439975084197759557282846793241278624370355958359187520751877135129349770210527644120760998813429194392001627596553197514324004064924566244135908450317145433551109064097073530187518489500028246115526340579556364581030370513320563442292061158849939700036327460493167615257263360825929632317648774565198495917928637936691564275418055468989219475774112760150521499568192075759521248381873177642890639948501775046206978734999255996824464390242256675529934836554002350747845894548015239713780301984687528169749091622673184927225723613970994664001058319045934221872724847001453719720518289186295018002613434779453309422918307987267219353505737236715438724718510889505117012410511399193938743221965451118701821532750901211484509375251429498016498551655573949629520149030216899779860220896749174102999222300224947451486205426286240881081553553770933391790175258092905119092327988449130937807113343766998800097182394315936117671165398241374519716654758301469909245558939759438971546660578043724591268473384527537920091739607870230840463874505909220419966712509991245723040949079101654042667176836106698310541458744129313317576109311333483140622972481540398778069061727795767189155584774802040084916679944551498560008887653054886871429000932577834488260178217103008477173630941976918777447484058761682409739478605065083087666358405837556093979354719437523231256665646749296688418751911023920512293179693282158058180692874075630761488189135831063506610233359384837142899099149367322484364509294583216213890891370227878556893418689749728687264667147786221488903405558035819169882869086278476821177712488282663914088688526263669809695355926580853965075385534362617892977502736474633838461998072399795509062121244437646467928394185379672636666705476470054251124194884010194426908135700726346256231276531885578450173994237881446901917504898747528847311907261928168487268589515464174176499311346327631429733788400911134797561786820486661412656523933099547252489859557864386400971792501639558140213693523873206074494566737419947114094105774993231173559626376833448109050831335131337222644429397782117106971471274226962659430722059496801871054952520611417389343425106849636458351349290483285314662133347722130890418791989669035129669143510991433033904697258101995243094734963119132692986409469273583500859659090220571367861876587804438706392893928995354626027829990640583213016508966757214466195525933716258202161582412564993102568568370788815469202428843669735273420993831166759207136661040935835739814192339888980552856718197410646261226947306202715876121871167554155284979156986815787552991614559610270250494418017616718886407453836916012632388076532472008301166998615481621478570484313529711061224873097515329826977831489898404236116239763319494644341828148337472373417937155526926375706429528922238525050669478758438924507276564728465121030819429582362626111780466835941277035152803422915157001169033628235053406197272590639657223219673418758014183337322431128992383765228611922464602075957685935679441547476677028635839425863657108984648233880882720634343639021671906431819529555540792526694407357739510990229465926223754491575816867299649850198866431277487894608609582074942924242365055066497439015473939308632406122166901462995095376771067506713980010226748503368658240291823469244024715283053510481517899078523718152563477995840748467769922485054287312973084968600715149585007805484991270742429888546541105228955602761514830401591383440246319539014269430039591393514515035098303965430652824791090230637232555845797110598751005987095192936926527170784539082534713591097870568692339374236615583417116515823613295287259032983376261168760771203538651284433163827371881205498608509194248768821712433446961292005779114729706668075168878134169386522668847539979715138054127463685257474820050765629299225120011680272997979784866373674059994889225625120550659413705206057434051255111328631869938272850602317597322197462592046165455349747571847424353797333477101790026505525591114293258871593898741606419261046295145447984549691209345092080391030574947157040290965516247859476778408444859513243996509801994164532338455383676153488899264156126294881006711740820281276046222959469401925425473920332080780536941610408751271409117020846518211763125157797245167991952395175171738993896686475033462123771039318635382727759290670305630144513733547863442543227894726096791833173532858797595135678589198613020126921554004917283703528279406542037369438755906772044091447520461701171256239507452125543864440081660304982441637047215892165412114699746012138705301638797939835931137280261153773916217349019236531207257033193052972847366443195637600609233064923681670418614531857885151799863282607675103679208505532546677439611939658727411672196847946538065347627320177644655276493368782253095622510495338470646617892751124635779874951755887047544098151674922034307995926561240431944495203547833473836685270422059133049478833880089077149952304963025152459642326454226787415239926970997131703319677047356588868824632864778306886920115317141619986318432712681771387145172323324564167899120440600303636315330827667806282601206165754622015940337409932392865777282577511334256826162354412828677223876353318491967584929700976180207491378522548365364148760771041392154972618878741424259800568992234597793133551599622628042950980435986285641746980254961683439715989569946165733907928281686240739123954209063652367835520589500756044822661775958901486443916682306502440983526955889245069417624090714019518212526267184795072164641432396362178517263345402614421300052750691120422826905223587130311419655572517058459240553339999574026285879945555123387148269853330085875951057589190512813019778229313141085038219935946913432173171029128298475781810425887537502124140063355383365775550208104552044142477062975342250425948081941454535691808904487626180286592149748214320567132178353105868312289554917571701183094550388970497173600574305389856737159988723219768328871812912333647199213652213210056825525918799714514185974068941684811116565521729926866169128268868376907616455695387485582654301235741219445400554008339969542624766315089413485848020110357522636495622864906462295670526995601026235343808378047384285115158249654968026153154657448134818957230098482350874905495532463234829551827762289751406283249235139941666444128742491827359570628752832528230936350074000695282790155222494508167241399100472814945437864095586251919533826142920874209755545467829205320115596716011980359017247455814723627468329083939273122382588070610563795256029616802177185875703663455056148029053333177761887331254062271758783668879032999812276177835633830228593861906908447170502921121463746236193024446433123460624183292653626548418596976932551291939447928690321426006613300603397387340528132901432899525592436796522535172999577405804861232952573481515215821890268684071926584325860688248004402878771134215248672097750513358185528925990237573604409807738552656929344227216328019173852215357369242276913867264073155421227178134256473176466552613355610691994866997166163073532142011474855272028899185207218579282651193124886433140739868558119722632095124339129943223869952180795005419977137252610847314446988201252665644159849785091422221066632243686005704390237560405719547112271266629450107584584463342879528825421375473308777088290723626518214990954366414833024244267346888892622429674756266065868496286492339299078519808445377687464636424477476491973987818613425661371872922630130496241526642229231608116508297887456731828992595459449503635957818087495728208326215573071547611550527666653753300447889076596465247853741289954187269157269036994434506381886526271652723115451459622354104666876153609845481851788036228196871728852744486678172179005230007893480499673418904765803449116155434774777577869055896613834663625394828411412773910647033376190987373730385506400559606966727790663812340077146787018394357924989416134884865129152715755636782939919156440497704641816709206523495581826685625377002674231583301547499784162136755667108446571151137208758296313458137903871762838715213377679177788277209584954125167360292388345833501610389921364741536543163442416659824917424563980509017213986740140449364167205135172695994181051103177643535265567248839136592718470271377907382092983096922542054410151416086326649169071936374827047810648071854590127192207354182176983863809406566903929767941767657885209333126581813437300556669867445513827309308316245363752352343894078645860072587742720370123561544167953040841833151748085223182939015886125938945867654612671884898051084341906851213212487188883850521011910596197259083132666408485195529402573979115925320901748021870459933203303536168561545898152410370739427558809575559503695036783159221839482719680762725747332104676163544181162989672866791668671246287983514839414738327395254888972596113545035176313999102678457514571006227180997317677842966846991997539419651485359979478235939272401282139605867254677365852476316023058698215324056179033718460506300323195935179692334346549298951366778907350764012764643178471101333207847269588967623952372512314464032820043791316911719734921635295626180923631947568746408330565416349591053878124172165583956109733407998903176459160492142738160584714565286395932431253463506316627491510955234010212278834677183626083126206676764825944711442989064128001660156860403959882027916361781833157429116046967767383756429633822031774644644052370247171630743919592737611361391233278110004689595267046969318962586077494026660041429623659877344879440223683952144098432544772288616972407946411296992108909217133188279114231952979533418710810570594344957506465442843695212466833905451779414327297650769657115114090188813283209504641241084617012013137954897080252884556450533814746170707555302103736447121432283721367495172589410085859767577188804942721098975606054049060913025675280449186068122970785653288803052280357932764825619762300667989394632985187601047541824276489771137859642942755870910628272869016653214525824878807743696525508902402869438148246141083532911384836018538209891058920923503392873285977038588575333972673144142846846724764080442662616060526615134826632039308652716387129344727876265466393776684366073609391346813359698827230161606704391175270228227852779828288040082760721103342049259642998676944209216586333620422825127746153040067440970520784491072627444160098348686935727137924451129813632242037831087049304814381420349803496431499501815968175342567195885507869102464577697206196548577767246151968873537936263355195031308333490810877099990621515854714432617189031571478388451223823493338242370862100502075931743909935313620867075528683852497991418526384092178185698264618132922586840766648866991771642779724606685745066287011954758216326808598071960593152737927567818677731431412430952680487690155660493593616660615710057492201589927842091398695682043202336849665320840836008193320259896707396650212126046884097538741958371263234290783569868997168531958826906566263877543087534517437789802330292503401828223562962897752206526478679274067728419258112114345314657972942565037358756456111951481396405150172868723272239941478878011110765482388373139914060386861863623649826985740341156883792001933307788199734089316659873379104899875206549924658586105550149082295568779766287609371416780805283195907855101538694348337079721697826391491072032793930806564555641188231459325349579417725570865514232810671330542250475696469305273616228702285096737099677629666565604778348385791656477296590363278137410080970729717860416568069770767320258361801403408636288396911949840203474754580295651630662538711430383603630835587517908612910378582884733416604179479448326583999433657898545206887451798171634010517220649631516746072674820417980458775902774231714770829486071673945852344581321141289759816321488982472873844376191162092836950683997251648246358022530700917930029467991550544083863273598281405310824034121713842040103741737330151170140854253366547575540333126606366533750956904362560592589436349313657734071589270130467885784700261198149307093894219963820121400115194172078915770361177136286033999386293787695002475283948398939206065155966566730318027986456511123452340386880297330424507290746535024536400320669120354204414015712359220634270912593730988566619544013166961314059610951183528870733368813617460323005761967048158851870073329624768919917611313429877512700950212479273547090659051123545976467071207625902096563499451977851156147655687239940230308266265660595582047368464852131784803508335680180670146410390699860586338019641182994302233143357241960987114760897463437417781694449430494615554779729080347997937337167467128573568272153848523383835629958539980960136158215295206687390513778356129466500595436268863570353679980673751046392848841963039837983861877808970115811490549749179061379488140095440807527377802385671037489941965521229525505376010550362917655445697556723413958248827416407916111241273737220513740059891994882152930465547633846447530380380447675812914860828519903523525936722138466156463207402936901284135214461179662529352209773217096017844246836074240202372472761045150403528335422066567656896235448490510528618080079088080970997308783204494216332558689258546409798524267330471936905025778163533274200953426550089832633417874220254382008969448550834157782147033736591688658393707292373153907439369070951988327668374577298903770713552065695881754162781718416583243660078558631598812799316685997607557130799367735288306316343947015389771184316917627287702213240857913527194986509925417739962218483758377798385243861479491594084695010148157696838366120867512983432569113709315974550650633848922303209116752664075742775918603968184835533164180508728972252762801948008987748030706078259029869156660612391244223811285813592532210538111457063327734412637194284977290102860077395905183718106979101646778895750672635419956776259409706756572803780968609487191905627574547662302985241734538437243573187927103741201587930693016469359692592212901540058191754766253111222609183665349446952204748720446503647973388575598949374172755100106836025650793750166550279385938091642186121629581806616813342374126537859496619711003662124169755331531257231788894676941504967113625150380174937709059938162015518289023098127009172105426632563535634661356393903781653827312857720636503232227456844094619959922223117255325602306127109448559066863368089272000987136684987109196221127524741979198681884754599454680597178776912458930336237114677032117506439246682088489873950355170524745829585075964409878750029744403933335462764861051442508391816921436341591044066486457873904131423265660603081598490432016988346979870095967849833811357476914345829431668555130821239621853444853231147375115234377613707476289140862414196968701918419149632519954844909511034442624831617101485394751676844040073327260436741327808063115471405279214099832559325868362548414287815879924350707360666473476054591120184198653302502929554104119169226086224691468950123347614340703237211522957789269287441297841392058673817885278196007773129032169034773171195658854199649875042546574951337918806543319691130672381425018714656281686973062548293132960985116115315781014663895044566226850819111892632419501473068281488476963515560973009979439382084508139993644032367445620502964061552486538223864100069366571316463137802554232470095853295165144185046204103637937165555786169859021705378624925544484613383449045192910356918300337593860300639684680263938456448759406718924283211998873179914983418677597958411465979257052353586616439057191987785874787797685777892861905742078219948093023844803324131645496643411781945491296293184572764465570330293774814168194302390524809788007959846790489810543504688154348546888376920464162156191723468808649341289678186747364703742291909917374726031256254969351118203189838017119133743168135155823209129318974293856933724609586053264462022366578917541336820554479450642972612095730629708216733627831132060915105777319097564441197295814116908933618019914843081558622084849475296585476218233105132444687695152612694846989751021385682956079092577475075183297669969744079443609168616793817858869877621821695630813255305136324397384610443959848283307528343242181907808793959959078272196484819871405562391431714343664476491943467513713884595601277971834206687631983852114843288436372045882835276882001614722754290482191008227716562551433985111383566602226510953271712698011595604177793190890709256742152025171444933788675817022605371596244787005434996257626424103075252710675524566294188306449448189398146784698794528889810396233277835655008782474239924944796345023653967115637452930104353911679370466294705827228976193426680068784908302098138759299528714871016770625507292447577959107464467045245813140805657238831948512075707096756457629944815380256617876455935824108901280840091526414985621605725828266892480433295611666977978559147003005056704356480787150545604092427369738705209501039063572111837698255570344451558278364354218526679574309401593834133245787207219033803855665018611934963815328140040668133512252637217041460960548058375687712712675485184936424747275462444224987308040057625108477217247993154276657688734586329103954072925224709394697367382771166306368420095308523920860550373094737069825095260903683237490283712553632102076455072542737814101016896992444305070191636990638608149978731519880040013325951955158775813094298904264086523151420889723263985174647941852094481439176007762380542632418106592070969100925979899866358705359010924730731646645077913761968010788314034740882033732783993899273655582568249862135789835680027254157341323632170544800486331073350493788425810226594789704471324583074989241297651575847426314517912752179279337824516255607340630305129881548106483145503208587190978410960015510557831816629886539912103047243574629351155657437308755558837608763145650681810826046014942531303930237055919958731096683752560899026581589892700119277358711076219143850062048015802556894474694846906771865290544660262299010972909600918075404571495211528341418168044269041361682840928831177769993493188335378809190185198966616014288862623943447355544736867397500799167604203442116672807616380386201465115949957794168849855207123734391797304509327069175694751517222904204627662698326434692534375369422784422798817119564105283642166298310767272595281793160473185800797586092411226128718792540939871575113334548597006867371181650920432128796116086554588449773724686353097939387054579786706487409729149255935142720005376941032682789096039016569336221880250365544003881401689438395946075572255907500227763902400495773815329858230656645639966296959038950601847961209288764248015004173967501690143859536556065843493259709678667859260261460882776853502060072700733351095449647197818915599300047530284740894487918892984866221377348751719591316059387603529819437944507679803119415278345242754285947224729752393519646767175621209220782248987485499911519754363346891553813507782981482879388639629261209158652087564263658474632628527603339275494669919636854184508536319184156475194758564539208928785541600634767893355770566572206398664925522594258874402732181251113012212169184414254456488393033409729639334423933368079553993767588269891647778357158483079074367274385522898332905295130988708890463400963934701066273017984171006375824974783676648290209063497972987913022908937106117817102056532130795900907087330413758162250133706591005118434376344208624980846856293838553224486055349036369905750952893202188882808256952514827598166758470512355426014548198689344813605651579160277461637389507378347898491858603492117089485546524858520931203349539790890729836299876636644625317396258393848763338370367111889980091418265046455464779575065184354884089910031449059989782732796243458927279098417601537817671802148061760746540493406252727154675834941259249201603633931639829813523356689244020225382512611588446923792165584220703824298897695202811588860297706369045319803817160290604340595082549609548712861937452415286099193730174651795570312550588490073518680940937025277721446271463039999071190832145185234775201577895586087606308721227489246230691892382435793497185240779889977561103012389982625606973651289420819582616056300612496066076317702466135101185235886553932630637752325684165994597505046101668796150907741776369164686458522720155034137662422129572944557734852233120112057754297456254482049938631860939455201972397403259658306896518043819968097786151182972136557013699773439159382381746865180233216955252368905707621210546077327866281300497097435646288613681671682368176577143489610452727033506617543139736550569617329323546755657380423539430755624895889559244733719852693283608156631127373108683373017319821628711836062869274015712811018023662908305671264089045310508770212962922844205686295453143353112022884364915404679722195748654862087843035083597377558074997233383763508230597491105704049149109415617479180737715051060552041470835859604199380402147259800649319851439020296859779956303960209459390504203437794156775599150028875665429467818320513476255076189649760628378403565534667893179038057951211407461077509086932786968343441031140294313465763429658452275090836661272052486093740081325645320916582509611603487285747796774380598659973412102976246972987798793622132477384865653890128217026743077320818369712450738175639200477265946462490323045638268318685558143425974505992620701106389716592399122676398805415003035431087541915345220509593150279513329396568533491654519799053238093595985948487493599556392257079644600168106899466481050064892077026733493319215303345186856285244144492861869813973919050321466479935335123577095921689866476007850288791523028661880864515961765995994944665797282386550896005805436587910100689484607434110089646439816631528919576211369394246533869713964521699944768059904910142554762458774325357309200150290795865620729172268831664054364829117827233034854739802889771878610163209669514522085742625962200224998880390246420884947574770121451917561373443069702340472627434354159315768718027879326185029340004617235721834472575410530755109350221235073811384823017011864361546001957112564593667058883872635344439679049482941056003401555191666144657458931762578218374225677717826818117879065174234813557275114445429156867068129942587305174632390082258240342814788653904311782099046108740976313293608423835766869765055734345791571000230575109260130613331176497956796203624965301637229699414834644115128617978278638373140353849793161336934685675893404406287390655804652073002990177660562724752576167837917365358638335305929085006393556126375333792035260280193660327854031758571845466966733978639784061672706131097124835576041804594362293500975511973924097870809909877208904375391654111420634395914919947520561164631378659576966177587873756792854311498153612526054238192729319103585626193335906668243583216084704055736176235125520716164454641851651247824304930623116555696534657598712538369863784597941200959985335440970381184971413509312450940723611808548541004151734571577558330160630253371338799858073133212903367682718110149778423777894123206920905945194852900479723279262810466651615928262745283573375904729951851599282095435278271815042618352908371297750530939625004405129185854138614999123735667636576166835724833938823585967975699988186887723215397260245318907035399989275393652858088912321996126212351572896191086757902191870872312945544361340427004260846875221420151233960702516932967668591264957514533836558307701858392313749476018265980643395674924284721882700235461903093979807552148607309408445632623400596911222612025248642644476257569191744494755762197497148164445402833953510690197480078384147648564686012805337962310069776482128365546690333953119031358738527315850860853724514485557188569210404470522355526834802257735810245031413312217027368818896094821496406349978309581126458186647745285988844652960700113686539638899578642348012725580782289888295602563828533096134817096227256195979741907821490021785662811374683626013680197270109059949199662859426060984231303833637357032427316924826000902470164812954352818070991983826128996139976338229969592486701675249034168513549452766890048912584259508571639421263165932681299447167216704499083594340571227265794461394116675907953560179202852158177428330454230587278217960541235157697248367676978720676979781174551828104595948608038648576650139970059654786761032383428384902586907434395216159802355913335593016728447896619165493270509898896585770505023298254458537876143250169854721789079857999319870002554940765128966364926292304174567335819965569569795192438072662054840818513270286583931277959207574182747405976793273572752052090968228047736884600937420539491094808887343106493730042287739285857360560979063576828202286075313267540865325174857002924456379493560008694215973631552286451283435759861333606722742682691825859150626751542406822750254541559244489831308199743553456345525063406505122593949978761090455460653018423272550032406878778103187106177704787353105222669365670654392501501542230707934703841542582412318418424571540395647251049354217742919858063589797840451568670219935078352784631800996319659961825353283301627229985489034926131895351820776797783931455992191186366983000805540946782885153214366991845308258362631816151436930485807154090095921286025856421862017961469595247756097872701996907056433544643409482175876186148913091171418107039733145905277623200526297535662772465046164229995664362083757980577962311239653419173526265124171840735393241239672872030635165205486281713933274497185717840656373549474050245926712151908958107502941622445302975757342005295456991701772062823485923443290929693922071818723036527206063287092257424425461274028695623836141730731242183720208582172746342207369752041470970938123738830095926109476014520730127362506192272609752798985936435632045895669237812945639013447141355526396852420570150477932170056107585787669918250285296960178120905483653787929142942671091727510414542033415605606326088658934184189627657245461507448475462451349913777968758112404873739111885988472174967228038046455905893936450095052119875561775816199874190047255298957986780127099188296383932895714578897607525009083285465392383581057537144718449299077440326393263476196122350119990487729534616834734908828404166218930252416230720583133859038074125048738420534899652914167307453304108662599329547039961915824674323310030308522989155263324901657551197351792986401587424707502440620770290058038785181147511042544745508595533621233906796928299626381893327284091707808804493634728798582906641879220721220565374670394189200334268704961112336684630807254568910365351552374104264117278325156229050594670165034904440994045644992614689509270634295618907930780922346125410231843356151142132411052453635039279741284347965658537574139117172631416763607333174278217950972006176946964319223337934925128003340648251822199894868463999465779775079822985184280982594937095568087634201195740755817242171133570647049828616730580221743659869154560581413718530993433929174605831366520720088017361071404121062894387297140011417694101413204948307050232487669629687089758101270179576542812305649257893525763534498121060959575572964626674768776861072351504148128783002461271298945831149634672602112374060460776596355836992543993915857752840464451721987758120934991466150823491241753838114821090153652511132281909609621603530830927307060601491946378022706835809636898136954176303397558476709798346700689429129914466929890953995605350854931475912307160397126686588765204938848171626307791185152891592168063912776579467565677835198764512199973833942669299517676693196266841620488226698162879928271832038788736925518376108118776944771144537871535938734601105954017570568798803831099711094119995808699952248780143959522019093458892305398086602310041901513517781894557853991211881365295457537337398560938410963285682979725443606087026816852353097725651305392404270185681590882714606677289572505807101483446611736268886277089158155806809212166474768699479502796631157309844376892397548579564107965825931392703732484175414473682889442179439429440585237640065263237265307790919644344547545346853567905549424566386001543630792348710236753435547507629320578318746016004457087561543479075565879012050048671228634848007849873963041341287564210466972205310116650525323889522867791802340434227316650629517993418057941106434587074689676942018660554135656887048201121801496195417531506980550506152551607593583315048508339067612866937357889838113155802960895024702463794958507925809605493712816370452259159567009217834959285271356237953558404439311091266587010183965981450761366897753103971186091473213978985009424335180912266920464615491952200143103763029767811566821061470592887957408873984601353900564923100354489307427447015430073984641973808178385411677025628018945342746554834042722886162296163591100236183556057039029310231406177673196880515117821607130833165555994527582601689167187858536796214039351756055880400345209972115088166300070921082402210460258184891751978828706083393398069535648362209950885071014630445947129491868032601202620430505126454144969023426651387431304222009287257801772988352308456365083008944905504448132660690371166803947005289604426377256645223617388858287814730585886486380098362186517894068817378221790417009813007690244763066058440368390199385642284839231441539550735741039103761248001801597590471376591670373490197200248591790671697016214595081706106322504194920486189391842980610837935539304712843652150520590505293335448123880756499982827333372906851416180682495287665200162570732951523807440013703155863029730042229063932945062063758842328903229826473168846775243111446359990225172266597396063594178356309423493352662448199473545397480237169020480779406103564612385638106994539463742659135402384321771736588264577051230727115357425018044555751615616120612034463520666525125672274948638774574321420032318685415918107642508347683720803829110220612787407281926831913141444026919162636921146511051542309209180189125853090652243601941404818087527445369029944102967092687091755820476380960033946033509892070091776004803486591964206318582394586684832260190006858265601983707891316993987260113699915391452490562102292901656574393362691203202952605424580241003528249222759761878022279469851635953564299854763415894801369052990577147856445296468835282019899089804798373151322305523625200815506171983846280997759810328978072553141096882121605215613171386939372632174907932803940685313051391595287903780811460713379987483684973093350798571239443603507041278623963414145129388514110384297087357351726185999179027204651007767721283761268478358497942429003055205865372858112679802417278846988646857571272021888292503424746230909241319143440430388496435104339982422540181980948412977557676956849257577917813650267194128638961716324244906170891923989038659380292709491352408603908239319811299798215068197298894614343024583204270710247954805081288164911976505119591020989762393608464953776449920000748956025516126850508817555950344406628747477965107032904084726703676244416022516669537290126453565908283995437183038924720695800735861682163795957270035529721503450205410750369242934945527999680133182820103937455746572945724794490226428862003441823329891597595175416899781079201673874200639313116135773708843936753609306531136562739913947156590348370995570403395259068248291256403036026298878710880006220681789957200428783649288668751151576310975822861282857373855903849579905750967463916081385666083301065270302520215043474679193191206019832790619737750633402306477082414517272155926858541359332990307112464470444559626000065132682819093015891540650550931735037040721191229966907715662845309510805408499997674399622246921232002598443764341076170667389032736321865520177899207075728646469996801515865372891484768103856634646827062622961678529913675541982167305822229509886137402436451342038250769762057340943174289340902194493785956229314270955763190786177586433378897064648395375620196373133622701116479870105072711013852240171975715992548168884250220586621336453001533960672349600324934488082471046330344412730148941321787898470468423317622649073744548984590607292084556548827848522962973933658405151439359431891798502355204983227698205210273645616575992031405149234708582359061378318050382474200329162806866603384172461457898916472858801288779056760441102236707171668623107712967693871322039608172128999484435697351244263956643378972652173150621786547996204712980079288119348451721144519602276395804215544891341698857914412671458735838687774675254215063857238609369456705014114070513261222400435852964665379544500495637416752306043313949497263795036914092726299220179898358434447709412895236706709745531600759686699921311725989001543652994985017855329241780284924466824475478940901186716237915336179011709091123318014881021881301130216392984369270993401476397533533252614157528278097997192036981588158846090169314771481285899688976407727505861685851135452648739949039374933890260964411496146533563197582073956716805457772546767979645080179990605781972548837156316551876449248191465942047188009620515798090847312283069318874161546407000906518752700064662143348250555407107693402835967743355910708759558776461970181611989626416201171103812906029411040712569507570544639041032988971622333410368380800515249357849707040268185360724747862165347347195812882849621688628875081768823178499990224180312138411796439668621205328899890584134840323570533794314564477639020547786111162590617221249153349790831535258392970157803361617627425705169223385584003048387680561738460081127455222062918926354297860534789192034055667287288353645810447039213905661599904351584305161256207451153254430603750648353048277727768486351908381312674671025485939848655968878110760293072023335647343433015180733191653826759397767401127988913166473740762885943669646493807422936279392632889611556141513355890034041917276162964119002893090445378219371269066043165888831559285812214892959258170726066306414246983357549152083956881438999385503626520295130582405538785844863509413859768411943295670206216353495303502001916993132126874260280794456321113790114514861196471816294581653761977677106178140014095520464245597674869718025690987606329361986615678627776524691220457726712466362755852894059052075027517230824399669437337206854538445261285968379525065568948839566700411898105052866390770851975785179448245525766668036146854163641421590700709092946184693180320673777818842986533840839453515288252109990029235300909577424996579556236154218661613066607233906475255863951031629637599691655617488516722309475899636552394128691340658377601304208765757689782875668367257003236136795465763687480794163626916806851367489716390357437310004121091340237446056033797319774287767392051476267325959658307393632722144481040875781311360221324293470527970498243592924973412354231813709246118607446245201884609051099035641453124108729572116670688975721350350567086083942441968120580011618380259068827839991033526431837149404655815441882724536572422080684388686183460177864514577534192204537036267405911445218825151739954799195756242244806045619832812278238295917261291183641474797184271441277562732995160305008071054810635735844121994165009880510421243900552506677811931379568484894102223354676773994332429897078815857565707763701140265245362177118998959963135528809557156977654546525502932177364639220005325544435579680221336792897264308346001469777331027687470400008691835671022132009618327504789838105500132286970979997796145970304917036490724524337347415128715534395383560171922717056609330791879954820584323080410462987036724243162132131481522739259499000181874167071292304001370661326719486140521275673057600683142633370058887421627856664915574491307826582602616505223472964858110072609687689208200243929684802536441180624626748271553405896415293203847726604857480318815204854038463051275701403726415363371976358422322625958552656650023512949037073320918384415527782997369557310604526909445928977774959970265950213335614577272008360777998891143563592399091082994020587869756055222388088847998998721338639542341634469387148120255054230806688128598721648062511696975258065053878680356974164063784976586899725267851046877318495429908268767332672874239017624364749007741777366707086519149128049099242197309762632059196456930951329617178053623314707690109320019829517033742675104978171947685285592318514953285010745409686950571602890790470729155764646274747273454885881895184127551352207749639644405517146547934759856706278273909006756594012917597330838221709468101215370137684295777462383823088072477095500056540416367008953548901217743827887879813698796891427637344693753713789281404929186834871629623579904245736314680034645028541151635267902072538673399668348375839866592234980591050508194805251299508197676094631976744124637553109578257428837727629182951404030031817498315179507824153816511091448009565004355498293946537768890274099688820400372222729879038313172614967637168743407251549412539745413370933778057112715370519148693635552457853608060748964955329852771703928317987806996853948639587156813574742512449192914768922695874728893894909524385652081095849706592592797680112051520156267066705483135172080772081352522144518225919731576167179176006381161907767112391904879401997845558145764518146993719873581901306586785776027202610348438520292029224166934310174303363042367323469561058782197102605743273213895998847797745858460350503385777717533838944999912010081168052935047497735882968827325116025330810439420192571868159193043692935152734632073509586959220288338077864150835085295134237731283047426612801139391854534770255726853062748744830428501334678654196096995552125157037984948329137117315650584901816625657775353921444178235011856339075489234786852995084055039433497602471818137191317238373504948064616843584529138785370538483007675424790715513606045690534028705705942273317250283227210400833323252126990931713334205132423169106130625414052459184589705335715600758820039504779795230370802531105528673362744913763865377709848488268707210610933735160391333941734896062299688311578189192430123693487091836214108462377912435580512844433886918192198880549230386520325596706290503130764350022020827762769586161779248723904382847244888133490095508347701679095129533563653014709320587030653387505830332984999046661321994808904900674660533160427871923318850943094581272490467539417767410887970189406146700426861112162976274859404901090164198229883127583381876548742756261990398628715120981370896103129485294914656140614977815218546571844857844418707772410055662571463367073104380979244750664560898479195493150381615088282838082238321566010173773955554264960952023015190728616644476355739387414578107467504978593758493974260024717492164387606354251229010291149230122562289640834077597251545704535965069447082150192653277733154955589452877959365502101803112277619333109470523193410057183918001804028680136650024927113337199463719784425259296075957935760865873072995630312347823440763967379545229142048153319244095804534282579206894143734475952106861371355786381022295374715594162945165384840070493538890166692279171801368984132532983112578802779952914629317944060034170730308424136856179528134956718584915659147621275099400105062797944263058433235151058181482020193539544991517815498450478977439606560723779758885145299743258389864023313111187212759742816591422780768064987578179225383600287995771725565388233967284802533049128270367493327790385868427752518367408398587549564248701824606116933438784002853656269053071021841414177014106371771351599079869476791820815464787386386879053602640762528628197752006324151973601381766970976506514463265830693741489249697376805574773791756031066746539354888105435357463180180751254332367950350987321975659668242801388158074472560790344282917269844953818197855843689278085371123441735353593265249965182447377477477182186012523597498069072579427606551891017829044819491135355040781662692052361288621538740566467194764592863935799234302782697931187956292961736315399337521665177494491278730136245703095331565685234717930520506077835678964258327150427315990957623715677387952584987328542399988337046481361567666384234469937214533240650487983486190191086574746412645023275651314573458079427013711963581490021736671187177152994777367219752333066871825096889702039722792245365318420923741832072324894474578862931213200627653201825734167606168171727848824604036541317179304434906499120167243948699083369463053845293273959727012559435929441211932102707339819412366911394262700881843688688290036069325280776218992309583927940418532571712119694191703248664408707021055424966051188829121830462099881344214068484830686819712775823466211321782177508941915914233521105937095980084141608616640980821115965668915139444373533802053976973422040718232245540347983714295632041704404957298787815075859445754048391402958575912543728942085766522795939563893299525781476636489340645615015761919397910324476741483484036049282600290071410781474819901231740792143785932945927769936952155839381261812830898039858403736551546307298413899272735445590286386356766312417149405655388496015497446291692470199004051769357435625988115850896079710352130306708435800336397948694790863789904409190905950052874144579307231204093144812120513133789963074917981512801876848772541948583877448982551549731493764320104418922634954434870247421367904153082526732306664032918377903223238908131740397355797892240136667555626142665860191263429882674255327314874709520780630476385771172145303580491085877142981083586186154109672602929817051547466538141757586512837647159627034146535577383045743107494901627035615598403911334122877342821573058036529555066360559453056538199326986418251099680142170987367846384858589049712367814084230794728228873450047172201997431046203413532386975997102095735650127813995673805924254023753889820526199290278979971879179405796103343216147503207005775179501825590296767613853051871570676757791948274233763427222801167773320472442771248000298178070140581479171492939973624909117276772581528384853037904954508198198813316320904397385820876406264162266686723646621521615664685890283072580243102680416005750197967256858695828221720499297764077268061360164518734791703098755259114209832397369754027716764550945057833475177925344201660884209869380638797818319218702363636287262342165663584502198959143415254879394769708349543997145113110268243633696412281671575058478607757674498590957261663649290253373064342268861053465163320878248012281661159201301672127448427096961822857140594281671802235234845003053160274691212332958359862710168650705609315616546784421277469765027351954946991550226741009241569153131960541358719495765066400602174407056748897543659784321008819344324824788090016566181993585665464323917055398166313661292130365093791976817739393874172124817857799277699126807755798808114465844384097562630393562002797324542782030721852377129457772886324095605867294934944932179671398236659696708829113727030079407440294004369008667397594304696446291931444624979176625620838446178637271096055874257842734213646616780491688391478717245385497117902510253106141410396457790479200244392331825388443979271271671859824334397235430383034066294060632952287224558294777281980765679216346594293727948607639548884779274118208385414789626581232419275955208107337730935948436402220310531350430114538791868780361464471612724439263515728007306685265557960897478950348453442052720509944807114551408141349807914121176702315754014107530069766069122070971170093724198925966807896717502495291214840307255276692523684650809424406546278743849797374456364886833177973018157242452218046997200907390654638899512886884277647742253920495302955597432129603702731492321865617441426516127714590447600784214897081467798696324537993392317332199329833537652575024648352017385037761526173331486182698661663835541517767539014790072553524220723227599979073950606170679972597271618277183768832172548146988368099372721654487306892589975506719776976528951764079228789644248832523573103113058926113460217325174933915460635201825756537221268480739455685926582847119094706597692907207206815740246479245355771469846509008831218200405449545041138476107423246064148825154941766222865277244375682056534948483754657166897484585689651640937117562270769397679194243679212541172189159734691421059270352190907798134305330414543516752024088340371952706540034010897088212171337168195002428591119572585994127623214825984785885593902166394406385299087381750476405243637806815202013886240700162999743277458986950491830206845121494666995688640219471203714680393004961693081897181567940853123599361043324010915135559744272584919680835821886063903954052352713027226000361069036027214357013539906423399079915283999222553799321122666138060012290154375754431925063208834401418119814055935447632760939068519280875545033241251404450810772964954064247266670300823946421294169459879051190190956066452937645031566870158615503269740165454719043429384311582034046888164373460749337667888154672566659409218389432209427635764592797528163124998834669506997623379452605443865220086879375639124099379955664839645369019451252306814157685468811769399711683159189837260145004853385763110803356155112686607247882168400443418212196017590794145556393073251410262688533995063723991302542804355124156283092820705883294438087566106603425097616512939809582887276491490691944805059535765265243271490245524842058442481384155986333281274478754327337878875237948068493367462551379907430839181768781295447295540189444514710298195646924064433879939823262081692483950122736554167786959622474762777471854003766042871071189273905725847552522023502731577913646682500928589138356558338236827440649837423330412883518773488358500845316147223743282095169471603574727791683389904581278589480962378205546463891253328533309437964941370846874500988445146845707861310348769468365342666110700237715453275802399120620823046773719875999355748974548922206773787371726164167088317400416317617694767379912282448139464989657189513857330743837485275821349329583067300399784934264886089993493362118269923899169811745176020464971115368701513758300860863962040588570205056812495145070651729235402059079491383893313399633385881394122461714932143251281674114860165965527036260164248474291820422187865644653370371246884548563264542903476390178955386526386017101906950854420213470450554425544197477439424083072045704388371191187523877793796471072253389335200175813490108485019883593775238221452980659649296870026425276536052316283354847515531603418799603200056374598184210014150189402816594216473362058071550785416273717938089273542231424428770618346991783724806539668753809370674883905782566540602664543030755403323175035293799850914077614425967685591322802469343444813090491816050459884734513588602836974798283344777417479080386512134744246015412461965632976100104971308464386372681727502151826062406727680684267921059575101895234408756565937666750565616176714629889497758065037977262708112472551480794768645893085215732625702035760697715770141531286080681318910494369643329663782509041614705195593653408517761866617357466733148678443999968838924694776998696708286817736371600544619599476855802309816026062371642429664128978932168820819725848548461630482439669923902333968537636778694875490816322080049668494292346310377349454319229981672105839934007173265658266791059771076846626262441617432569044095604289924376892878183185344693619905288165096206254897712806016173557595271184118279597923169929577783244114647793234023982669168248823799453613851884655567784977996237721407610499927797161006087935354571657183815394904044729885549620627904341893789506783447841424131717835947058908324651353066268094244791843104837103819075292161471628629582053223729482829679517906889542263739385936537847352969687682644280306546165786486518227557065874083880402536502419923490261611123813077738191876049699289117962667020391441715968986692936055469745374098188966972596174758306832627108386327201848548066735732444873629251344419637203300459239475210923844847394510123113787833248479024563014641856084778108499634552923496811427648903427005025756241178588910930689486193606868620068127473697137747142746052877381467171355713285252945119101077992486590765205435137652130445360226219491555800290500634879758474046357312803300536703724128265470117341509099431754066892568100071920154395546955945257738063615532867203649515005598737439370218874515732446239772058963471585361292970791334760355232596162917414892359375215837907899662813431616234079265539454728478948546761936583167373208015509041852607010253123035173708376074555972778118819528258230311752012914628548300991964350374653451035368170287031563836062421205366932190147589001891037765276052022240773060017744400257673887513697574137254154401933189238875861585084134201200498110664220440962405523564038337272567031925629106885175869947863026803376864768898727745189233973296919566154108226353815172955349840317029137888533476640807456568503877656994853835979787021962766164320851173613973624461389802039276247797237671320090898399692492252331073510364063191985469310608501784867801917746099259661678694022774302918488730327797675241449324580973273535796828802001557076784508843930763368387794560521358719604682791565491189910940373569308719533717197468231167259407798823883079622629924017465600300320070360940866486019267370965202717526832384021578426259917172126332896466351098372444109778587935856538196349406103520057727623307472120821296144766580684531164378895615043888420899789918244887394102810661340660739133708687475401806358178951544582628642543444973968851234286824840539994385476562564258369953094376522004104102914930834178542052182766398045188910252701697279572925821713007593761435391086220114578236844962851450221302713898983057955335942758125134809560346873537207490313469525923668921190309257547124483787300965169130825113825522913678009571363375528902466540976911662285516170962128912155719526433756032659912672405945963486532172288265500543259531132685316475864757083240114120417644286491275287814411600927122809563790545606144566763761544767666064698138526196512323755949588366452956248986150956876424748074648075888533018059095887957395325594776251105022876691397956975487582595011681232672471116872576496744684553420532919363225278987543800414166493853122437748631297767711048803752554379612383568703333110036772351684840496269344660343242026911650801498557131089188695721351503224788436797608326016797675649335591994441605149928810424686122743328682369427101101265709439892183909865182325324791131417498178921614504201008069962497728639171823548069386009746031398008501909466495510288335235684396355255418623335310391525976923842566906543617095615495787160314426911459821742919388091348155963490107640078514594333762733075384374124942216053537686322510682519545097795775911259790582108676950919621152710864584741005349037314729406822782324178643920817815779254618200731291294732342417276968003823854403203755220305380567029785398766881842219026662091972091857819341976731586577498234852505663941250151800123305716265404793738103333668559238900806330868657507298824120307918322031952644494504107077493600747371655302020711663104798844944935679392448147609614878271559907095173406277286864388489337240731624430255416469678264957212055154684334887445351322463975948784668972904192452059009486838577366072081492312087867144888514009105572502734433133631426976969702184733816591720166343122996466473967322987093406238581041894105672127365109031030028727505535995534318094280176416842268818780009030518961950205916542740763520326309829451715391642752420153641936520504013031022956215765648685011144642936567309921098004645952055532780035331577539182271316646874502956715123927817881110761147401291017474985129282247142110965552237205779569003232642818935553034130140926263591102367943855827963228060061696583650719045524434493980789737719325009317119696321450409371350006101956402455140040224619634183288107391192287940246666118950245229771481034607013107419689347249290025664252907328296145490143839828025601840288906803280591457849040876213371286861203337990717821679063621463816906670281473518738324934746882828767451258644496887475189881243911387288505822688554370536494601165367011579757545653129877939978539982067579177531778000399503810791476623940398278622214928206940513925522973610038176355577154903237550640973209271726091291514132193720098010388511757827863823681636179990735620949683874581953140497673482541671224353774360596149625826885072218852292596457967671150931277105940294421501089469711733278752966166182438884930102110817138521044034001567391690650303456696591289779991130713371066312920364724047430213075405347793282920362096813130712723779841316599704001376715443104020485891336209276622708296567779205858390698065969406009288162067371808504850046072903724984610847752652382213056511421132458164062577614584105164384740504262057992741142525361172779876331002303308394117459144045823597320539731582555504288291988808429320490549743928222720599212815169554542127964692298658519032588586514791657214120104595797038313534022055725780809282826600560329428110840345807274262960801314321075680859382064635412421697667885787673126195542922387754861643735602776589567926099587318617849885228826209486055188842861850699081919219008651987545015297283522009107128845486797439585184084482631474525786386915415778244309312596600202607762242389679275507229589962500260440224853518743610553688287332336263234457539099822417906437767841262906378089089181549044936781687225931398887921136229651921242870854972033189766855683878497361406490107132327104784361186565201666636079481855369021538030743342212510373453031343478181128305834001057529020552571073559308964850926796045737359310166999890550531979247119858839821975337770229837898179113118786340486070412918912822963529078760575599005397689757586086499729627930598310350928800899580671899007360679424807599576810058277457453277901725869500923425505010083949927614974052434686174351273263389661199571392130801605884597472344434516826036725552338076227104944780589409123838917039145959348234078272367211016499175819254728849049695551402686282800619994172875034139470984954011739132569825553840474494198341611843917211911367284259414787102601299648842919804368064326496941822351992628404836156758054555746426921905143459340726987078338337369603945730033949792553388997918140485296452574711805231681104141818400803851521391696802608290936960429837599442647997672008870738170968587170907647304798807283141297903973343248945713319266805060236874336571124291828868068071766858432458748363912824120495735252886344566790671888124563608699523926942836051032974305076447938538853654868862442213034777796364431354313344443923434194845046432411170591984512644930301698441304834892730363724403129006523268000891625322943292682245140766828929522518316700390357555648653576222170756442294524663997853078108572386489592481344704732071500252004297285614303184196112538644032293304590288856806755241463019452162213216237868418375786055792998601800197592425728957328728338248384670900536200687201505503057082030271520607205567480880816907605043086909965738282203979650300411566714315244425987475613849724178727299814530899347504848146729715587971812659318037714433398573248947460779988363450353730884253144581979126292854041341514867593963926154040598405704950695088643413660280606711124958935014613164654861818136609420419920993762591868558235364023392450873104181471469588170457236958567543346690680327285458185563742747262266065936787793594635372805468169292718792599235268767092122754813642207304999046900963861946829009679256742960455207706091284068525405283400687758458309671452275147389279966424633393912610105259475405371923543061961738661454205293185416444549562328268847013171890496727902463317797613179108434941180613950251418011392360813936579389361994978891748606477236853933890578542384333371483888005337599503523506172593771881416940010283012999813986805166164077388223329400245269046469869584411430389488033235324907594622836507638112514469050317922833898956310370087366630640042792828400763927967961155738417395558680650262318771220046896041501772920659055972943553156839182191582697390153508825390465137273378198094581225151769888281519428528537272490308034710780312077404648883158012264002637982002830180649741644516728586915943249493925993070420319679571348704345487865607074597646786136790108924285429893492722392189213086448932403778418794851983601256622301794047677595583388497251272218814631942855629581417529572692880871400544430335667771155311165641430321948835345837339402179948217917096103265861583951749189517051946665536713861494109134519494797875759554799020788805234156633505964959322583970969368608179326164532301198459284980410319878250072285734045809682193729791026644958547866616585292657159741959296881653081730058899181018106835553669563467800706640104819654851449837785666193910170780350442045903291007024390040784188056843529220693671237981169130308751791731980752176479242466986002011453097803389121794682547359455919309864767667148299242385386002807195910079112267231056639888814592606822564252526196047389815873508504998585537424147978612992677854497008454229272474946089278523251759136865315757775940850058224074489190652602270359424954816331303696723960622769295446728162804162401148530162425317361809003911712079112863346949654099139224186668692802792464496644932920857087405177782589988601183249328844161194456691454937952680851678676655626969036985669663678029528418039316979828187706376595939928950879466350177424377819493096233159479399157023139616577441123674215098076676658763449349992485142536978103288226978097220981966677025453073746013627184393880846989329116506148362535401182585437678479196795915345313474358382939624079808453040266331694219614758947199114788852362835848043780035452259127055772444113724436612402646442235653982436011500676356451357814494681115645636739993485692429752216516055918289151922376741048857636321706541684648752233085628270689428461113461306898710223535244270969176439426275356235440492202455419090552767874494230245988093906268369051336617701659876309331422657997616020413567127201195992771927697865320452204657069993174879617429139212213749679907166893517081532959876242359080054520302062917950613386465860411233833281110980508823180457187137776335378440668777449957130344887037436520117794817154180729269559941249344166030203293816813994213205679813793218430303631834960924103925887390659933512563980998177016762374877492061183022795756621295852703167324977459433522640855093588804497514492067497400836045288543985297435981220590893480134411350874078711142659194861672165865327485432693810525316925198745401765020747151706427358812408217074777393910659874009392621397719651934889609511418690090705013789638900000491819309025506163234609430380112981718110336608538604842674220626652516851117383071542525566588182642405766272603360534593958349876071281593829500146684977924322963903126705432453689471410447283145692783425100825754624257699695904466598761220476743328430993929605128564274954652684938959498445903668406835580195351133634373402686049927527669876594091091595858017793100416234642946170897960822643737688114035460589284215447683015138387363385480128063624112879575894541198407386975727356382775134601948460271096731705592962384259201423459121387685538250245363541664771145441768127453467385355197123700222793978884430204234930052149079051655196822342707355032214664276069258102740200832932744306981974810743334986135847993138291701337332872915887844083225260174415509286419715203599807871670827166612882634635795894193076037319121982963804422229335967733176482871302966137079264597630338438093731975281055533750773165491924144880894540838280353971019611006130483814944879713966626017022008341513460026592769590703019986641814345382245386405152506577825542088677378224832441761668074080157888937612119988732219878130217864686222573609434353974365727400734930608782198492197689562351195672837658916426659609217898307188574563057708888155194179974678190660490744579335852313475652290013877178775818727242837937290795483324231495634420037770468291765473334693161857623822217214077847128671379115186008952090217379535124414417682486490484319042424597598133469191640345832901313047033283880800094162826358777978370860147268707433090861240246598647755408005722093154600042384056733973082734680503673117562201662911983182905032833967681545233019468183638796934162278979197724306000924183699540961901398477151246275206442584717681609983486676727942788511259281002943070305802023618781132259196505696458025754009462828670105324177584805298500457224548722765834435357552177160556621321990638345126307880982791434324132729145112485131482198585802519530316320727537086130471632761113400797145121011888851754759303915303164908159060703244915894072581303037533628940272233759194830032776301133829932962485747591482024613552469988918913221898838300214193544445060048636059772654922847981564873804877672936941641177446900060840408808796410536502641970895203486681582667205770159226550044683098758932773938648412273968522484090751622749633759753432679208525013293717897573007820858260976224303093050787347987802991099420747407584690649828811951172187245449629348871301934739486792558713415321988579136973172644563673944070550637571341820142477015946825725175539752648626672787668277247307428804494187539593969609152108722301297615523825686883509189008275773031041852414015134082101364198350589202951611288363887665191117500598354868278370743655968731436864016283053800066181114733967759343447801693336716172735906234946478641016815408156867689577635752341150066082058213038707681063819175908424885207647046082100724996411124665699275679365124662143761815449709867323559733822289682206183858480203834669025102557173369907033705269416464140211544272001705532014998866153691417868262084250838356706859643016653910991496390246828088604616029682173113413568454514308324536548786265980399922915319873358070100882609735438705789796507858010829800052766980848510700876097250756117033328109199654034466140728242709636820751235849691558259165375896269469184303762443046250786855081556587116996050868686036824018264755545103791017995495949435920869940217187295624941712043887209000386069541318933538345154182547868156601326905658821502865070834073379749089416098184441052828982584066500903112968987829108820722951721494365276267797524931234824382956458928702568156269699653993965761149915406532218218305845561742856727460569061410265689780880696567430275891713497369446434688055166849025217063225271003460371384853874273946083173918524269030634456827696909491511742555552802454170689874452809438692467746560678358944785069236519224060573819941391147499933349915932460185565603535267578465044658245575288635293419943321515679796334203280338752791633493114346987938057905082381948723518137317464609040292850871861987406000080098465204768347138220242016925500083221893207240837555603368154411357407833079144171279385108895885665817092630455816682980020364825034399501767756018088390341525682277293557536561087257591193023348022772675312742111396032075464450706019433828907137309493484597689558234551476580007719307077857758940698717314382616164113002083381412556931197663411337272352375929403555133557500440851795819318010965021027912001035229463839396248451999177440924417984590344049129228963146768648789696548822725997945524567233132184225847691097295774398827991448052121793010289707646678907660081780978508620927257713802512213991158124701121012488690558163383415554870492672002399164751049933541288000311992597827741295926314581768375409892735971989255107197005377529915814376629670888308644831253098069055467086446714674660619492477367766401079427624089674210213799450083904231739641917793789646737073422533280761523690608633796668902082851156688076383499678254056621650477840105784468972947344124950128214932425242002334842256421420647082176261550043822642627756959134762120206641352119545946499319635758264898500149063543525270814442590777661819504458112636251339795994629670199044111119938553301185955375777230293123258181822013714123326294258627062718154666234840990828247599636853979332974051651633106261529123055034197611125973255441115625805870693637262878491257111520071986263684408839354918808327679338351963690578775601224615079458478009958439049723346450682155987732613593878545766240635575833807050579946136475024890326971318081226752467818428369945972894080691797972807214675119619886444462734698981480823008204197515266983165670021437728223106840986504499452080567905766745455930184956136147547764287778830455008556725055847274963264366339350178629564129480364424347212575041266099230043791548401057395536217402579646006183623003691905198609312033524930207321315823196120425755650297882681251542247145007315060153355918168247710139202270008540586936182772976875146244651311222175835183217728880990686768337811472362503230949484306430533429160768789197654764918450109779152296536374018999300395599565208756866775965861466747070066046833054084943204292453588647553278334212162899506286282690530125258089616329679713647509332228538245531787531106140180938172997986601011208447006324110862585139083989535590211117763146569069526266862730665315026743772703190916583175246362268883587540304705331087021584403617284244485430746230666555749916705605770151185318217529977278883357566281395680537278442417580769765136379807727117331438928061652428181276246779854683887803950926335952205574097016800804250378460837920167037603434940469256307177527898727637376284935020688592333209174828247264471503202205681966320732985852775821418098552255955395674634091079031414279633589265145165585347975352966888374236222142859661621533598417837754740533438445949636835349291723450231282940399765810340467572593116230973130470519948845110754755521309558493296006809627210704082253839639527621291964733802042084835271759931491450464024807179122366315501651015486973497215126837908873326892115804357459358230790743812108393235863894652988672651813000932475587320608798011053201269857713540710890599123183653074170315387574552922733375536974629888777095412761513340324950611280384615631857949004363057516142712447258304485640392281308850267422977370430967218842741505504876472739132016996901633226302852898885535128823013296841260460237733636223181014558274225699065556957127977356615431392253193398811554820230728381700576184318705935387324414328157466881503664238051907253787215903690676509182485512876163609480146755000744245094642532729550792833696902177330628858414661227849506760994168571033127796334302453187144053157967969519625478389456576771149201552402151120039278981352552115129526165200014687006274344925798587036346998863835319360061230583361950002718207720026376935792723825344624360374998574618936291325615345655507548835146579464257060753972555771812197108689785602776236633457088165889568472219938007372608100896988283430114204523982945064644706115303666803060649516444184943070658002518138870484770635052736095783059601050807866057491007874521594511318503355915559900664059882256572929734572250262776601479965901434356197018799713494936629041568576801166401856874989263897374013698871042795806488832890789736731194825287442154582805274031230983819943334136775886857045986759511115817639398565754517005016855890446598586531085717932225231878436466939875534287123328016447263208187059817332716062135892141940939678491106253429752127053673157560963653177908461145224942855423765797481020686096676065582453367597160390250993368565678367774905596168320322803449704567995314444034294093148608579930963273634371089729422710043624505971438349285544338064606184177047777830340113945087663295055979913675314147007209816477671505973914825196233434575596123589664220644843029666430023878335320147554301664711467468134890396945344353914380084647351395441639907226432621126489877872537663175899853087961656263201218580998846876140186902197988153258005138999074529799027689534699057114792960694202752223018276409394767745268116193737744677187410362379764699137351011636121591384570027221320239047498134173086239638021285802971696019416745479193164283951127211687625350475249242519994212232799494015955698316158813078587939830292437479454416682188802076854319676054143690520359751665252427236457201994005523877530009417289241338662880308215901193164114959523358243425710289220306951278504548425740987277585993237051701401445743215184093674963038712594869390642593334072018414207828481527371968783568307276347864019856054020184007282871489987423315912837842023751887236256206040320463687810012518686395874926949073772621124680228275810580337896388837161905455177883636088722956396678807186022094744757243104421787706841275168749085781657211338096427611720037933429836228591078866673731796861894668984297276540370100720471042035941938734168964055095777180475075851474735392849797348015804772642761998842164480216235983516890371393790305201351194975279590007989517274161684758419551799122268684270523277969699488632011191523633350315102680392823114056847628881960919467535004126811093379608935003956572314260920733899670723257571448076511253732708664323414061788035030501485797632598814381622485882358600120776537473787923603966876489013850822972107204975506501726921032156774595697806926044185716193124605680767365793903957666655392062032204443264123115566856476310756481122771766234216035621320227641826219820862900219960291480986477552209111245314288400694221763404636748455130351964746963194859651410479346250818591704796157965814278574995263793973281654311496225733577670018316834512135260412869296949453616306568216232623355791733977059058534753711946812192904425301314822302574525103467304876830823510670388939555995538543669053888804879533218153156236268792287355172636290757868805635870774482510423491320883728474587830200803668476443349506194931514593956173436562134347007807102130569761836005223294276473075672373115712267684857304141732216533422644050088459977826823846178717739592294710331520082677984812134434569076753522612325957296961858797763625360133742074109739089954845751516230813076375980404187018347880336990683510058420987271990066192952803811562874204983204084144928715394485258849591360246338329518304949683930504949776896720300459840869903648134273682943973408600418391376688272479754993854314464525055417858462759959686683724210433411851121183793503973669726812810766011872985360602722869187692046881824811485077299418324142607362407337303930678053709032858652111906702117928093212394772272127999138011520112980440386132145023706737518781065614098410426279475142971486083375537470976982839817584915116598561098711937666785227351360811939031393299933534679199833898734533719476986351480215111145594655772160897607668933959267676231667918453365731049550815685931931790650153836343137777320232904889472480512494191385633527818335666743672871144457516213754725073366542006608616771959434484780171898744230786394199554332217496805594113718716041842976330852965427089181116324068070125523056899059916544551296818475216573728271340312550533114765693561199047230864079827802891740636145854206481566015249901825376673321243949892113602217287071962601478191410287483775914940674516159734272953315844832720384815903136571466008005404145342921014888270534282788967117906621462724543739962290613919638952030367885095485603485802130430922042859710405967253085529818107247259515843529925943973973700707017951040134904652170885827674160821115454515619326491830620848043294072398793403846269546124841427450008383521294712327747293605318975120630338223153788352070794851956569913740558029663587702699850824426486578502779105002412958367687586920142110898033657407234936073690077326121710973594385664537173809755201132510376019750136379222684544256845768887734959186752487589866793310153177408258458447211709361506082669471369844478747459280525164214537865706715354786717359769584320789509717416427399013992338539950228669579567637292600903448602007191236997557749230532652819334846646926271747326706938820677543068650744986306608922337771290356156646015971726952792907283954997489825917767959812079475315028494841604321993395766322423028054827186655533415516331466340414993954549992134299003652643311481781604506117787393799566384976353599811926280925790547017913228086272591749979278070949270034534771973258153643918638334566316977943197985410707410922218262106879091244830629708456434729474063918333200814191317654838932006157707763387732605170611678575969035586614546148692532947444535973824862599812297671587211884683618890704462434458854738326473260974222063848997723763164107584882638453347032792088899685572037783114919907424119550132042618412373499061077070035864870431847068667339554085254472843839908894457017761110881572231361067540956279349322863943621818353868167408638116217788327692220529460353171005256907371964758108094199449830563294793676713571697680877381159115904225647528432098235929850049543969813799673693376124164434188078030563673205973830573436097022317272615289149357848241768282582034779447615972593612511662065091381460301450641196714725857562612158628333600053734400471221055317238630357829684218320833556781770009650652621170526092068342643468048390308953146399742853338171758617815109997613587650076815377651035039320507039754193306616751895239277660685228786671276076104354010375102714484015826829796627643610673068219764438886671201020420430878448474265059255425551551771201732983092418026087009094321716593669358007703343587551517036416059078569816804513218537880257491149406159338073696609124239836910490229786999871188508828824825137857986361687121145185718320325084394951593539856957267746352113254053650716638440678516255823315208242675043449102721541083534502714446585199472772151947845132894874125299251327349397781967392192742101662489731495159234998197507006943603012277572745231705056086805962819246861312925918525881862630534371026537003803872670673269121204686397088442786107446119883972264971829666010060972511967954821987825191059182420915059984853467760841907119179654774571579862406766481118035851565198110050094254822629606547229456591038492882310719235149444701367864372268634481941941233677148929794801520494967893118677185467459314011731820349354951162984904679900156613100105895308629175667079315795144904023249986583106665856978668190376044814499283253571854588247249956559113171560229207948037198494270198496704588218510836778889045669107549758540770589526561935869780194225042375999467842097259876921591062982756676392017210130102458189600901757122164401887244086390256320268694566357771658934623717308384624406201407032592922947582605096164723177624481561482050667440624418579236220372976949453664633709599869470199601330780222820506077134331283501187598693403270583773115905065564211249220477078729227751384467949739813324006143244368088144121455213662848370927511084017019680729372970293900537645956004772009024984256608459771965806622409118694955200304007206823797889754353594472085205825956593660940752857830348062071471547448663919117735201213803923999756121645100023368605646775144429184484714818819894847308227542531234679904479158573829586131919892018852927032786552929012032615935001888812499305122549970921116404136651986503162824829854259818351967073971676491118664091906322977561308648849588810184624888397775685360644763423654375714000747999956907918843543493339585487884749705378893360299349605931865749016528110630161970603044924274629532483745756976941144595385155847166073958158617446289036103354274056462519249310454784009713558904702574313150705109044689731210029127242674114463518753147962006336973686306486427481677672957219765073954195144376230277575889193325525231990691462685695064203684987158234915946874840347862104343321752302482505694186844101802774231514951309692658039693763752529858729738230961983646566295178896067096406896571740469391215650329929906230118248717526001030589926331728625000658487182752431429164861394939203846357764936927879948473870351686560199466769729776882468473255389384183348042425978872181605180301177115888784818388184522116555631667622208103450847626673370310310923867708659409740484184703597363897490214993875709094022435701079971198046453228855800586544597596789776032716907373280223346041838981815347853997605545742774249103615960486991389935911639496489955131872970035886404189568308146627607616917382896762636764048376987446555283139641291880760678830730481090404966003672577432749741225408135351392218754808537199474329397997813589221903344153251180342428538426117236673603660392666565669694730057513782918189106090830683320933293501417305683788751569084913714061360767655603709990345694084999319107294976835417536031058041746182227999272217964309101198970856342702887049367944383641071456904616710737271911210374764376598005048320700273525922681397787529028937524758889987036808216921262388003403197904947418078183939926260451357232307679163217755164856761369482598462068890607647138600591865482413407826252505263929024189686695128425389184152735764708754513809566277670845114244596779763165509504402046752991470747379925303314691460420953399476813938435025047969456955782416446906838092887557699819552745045237077496073439251764038368087305832667926464287757866511027747175855991570993995313875602352433727487074481609186441003934123632946517177918993812302647804097910502265265213346581367054159337358127235808278225184235958564358188777167992226153397770530428838472032318468876288592312029846682918239979916271158130139448817619997451393228067467851281043316742261265913039875228436630084322330007280697858146958215482609192346767011997448723635044178455788891742035284379932643412786923899090333521662546421875205457046422277442017580815093716926829782438738912404575905996626779577056644114137397115206011041047871866880826696025425554462878306993169281655529536099827190328433877174785489789859549458077761492332870077887553235176603360757653021645641015924809975562605668792953549252905699157984259927190564510189922329290984248142230403406332731082575096261818887572267886478937957010848426606991338851963092594136671816067658205720968357047642868514159007711505217302860987376489400305608659366466177554745364889759305685754373008180374122226851146069372202605856071497239781295992015514108945656562113262915591257924194508750584756015344416807387668305793306895836932630713773803119435742049387613005830067511266840255805556019169142074788145454099594364822851938367232234522647362875832316424344299605239956022335373298622938295820736144262076078202357946617133132145255707376323930759951016951716221955718193161851457185037005227178357592614318025535861939091521032147691294301296808040888392416110564374318735775318238175056891955595316304222916848307618053624888545505487855853975108910340870277149264110908674478073220471114530927651470722258834045037367089159113003950483991170272499330046922141482374921013623710546739084624630381862308330508106259980292776702833070007923511877414895988907242319088737019809681677851085282686437690424457599571836861304251950774154178483664511911875226568199374060897435541926007099677600577164040534476970903754527580630391179534507913333377714220063368248863274016715980564267902426558103958737453768214037313053042791968249884664093062868349063674156332920517070421004872192140697617109578720309528008426938650064863326218236107033183328308373788390416121711449786773137558169582408399648570700529664947505688041316246946777528387719556815339565570463715104644696951363083249843095800646268286711913134135126294104948911941699590402101714634956674685647255732025392406638912699978475556986614872939358626444523126312223629078755699677860064274458074662211992538002903556994949961075517734251980297146824122600954675781117142538818707701532698923152536805279894385835490892201134377885652315501581159826197274520697792505165977253527275714224262878619504899188095117128279828812084166759849512790556652651511493747922911364207398741473741841404071829159275042260855828967859509040931620642499831370223105139541259167661487129210264866264048217717659614881315539770210320455386552418935537695927944429813680417735559898897640753464673355712756761912283006346237809805628188304421296441144756087348775109280774669425315291125292813755621169373982617348864686138081132367285143852884958268926811192079775974845000531647272843292558727191442020474701813384386989037913529549084957208159706610823251183505094689371256401461497374086136397157286474891468849352956885721073583912897651465780574575786143107878284038320780271305903235758012344471088735394660031200869398369804154181649204845054167454973725656957363091084490897957039072356704237902790069729607499503144148013521698172010013528390528066835180223132385380741240786035749308423034197214148380869612044517785304124175497071569053203419471023182128352871750725679497596807275771266384799535702632305805834741352204017593497547496406456020606884187616407999425635266867826966164541344226132346842989116665508150543075654283492852885583637780571814886502286719934444571749572509250680025658505003964707005327185363398137482964663393346319157155315128950906598230829505005985885027769916052644597988856522034668593889632815539242604877716243230539390938373852152009330547161748857700568028224763616717038000923496861436699844717349955366469490391657498183578244397502637548086516876166648130724189214871049743491516557385747235883551628675805405806558840794270664441878618719145082985538995486964497335096855299178335279913523635190916496777422264764801771771222220960517641023639176127247293087417933052425595478363985204181597777073502063788435501158844085004952629602240611614532871549442612204812809410684519723337748549203515625674446420726176479898423840567178047081833481208484758351750544091489973513366360898896481005362820153925656637899393147944008382552256407051075497615349216535825089068305953605153147302189037211468584588165041460890391688312132523277733250305405306721316337556552127181913828215803907389669676395932172344303355704247325273820104661838724495637432667773985032368384777879914116023367251311943277678062660114895662221951384298769594418882115499011119836784918579131608505814774574106307784631130098159271544436305742362877784187168545170622941550534216971494550032922611967049731684344974452515891347711521446389624862549045895248164834339913676075645953351258950167471084461138450709005923884598311270687861692067026134815978641070373973329029807707991035061879733673623918218083197610719222594362991984722420335718956085767849787631650155447683612622031310961529486720892121487673449598236698768585320521234888437815620980312678691910986311439533547684478987036281862545691060425859546130919969738047282185340428224280009303152857891236955899219428729259778985381550226345235691941611906687765450782493268513819699405255515141774731777689491390757845439856211030307025116389294707393086818430204916284424101557151556919496607378414811220332059489553415082213300212406068484577053366355761215320091614463763674249777323723693965902058250375671859254691781177692543876211187234551258939775470345581958768717948052174551440565237068512485695545407114166676034901427105765227017358237606164798238030038892531571902130768996336656520862551725570224558006669421074945337563890931498292131741954013714196011686803037397813502175680937495071731518967655761209533087897333955649077031914451544318134548120198224855271595811467433776427565307988536636585203260911056507409732236293203519503183829319036539320217795645969423702697247675561104313197839073783619275513407255844132319876461989744914920549833927280536712487524675746638885868699745274935516110443483135564717016764902417598939634528564352070738631117462023128696794592130602293923144589587643072712287473567538229015473318602214761689085821033551868219003056991919164038567174932872244776436504067306492062867482480488712495745451539999131750023072851012212656171975354456421862498303898558785612577376844350890130580969606979141340145953435076434681631318538612804509971867996024894265529424740129196988621351575291250944405154207907669147414343034686168842019251547570841115542025508395984866134438328680966816287363797101029356008098492469100199067442818180156398290789263898823374647578080169302520074087415910928662165659218913979808525597436389351669305847034352971028431401835184950714199536894348021418576562306683314007277520453058626968542653115888134723970926039175050265730443031375889946999132023997175035636102117383843407664207877360343340758502086537616586992054818136489573481397874037456915875338630117707683283358907055392726165306446476144488975278459137131625666080935446568736696328472464851965587816392524795686879468576597640014166498488102650457071740012315736777210202110931196616863914782717912622615574419639320649960957582058832938727926692680617123149476720564354448023645273697202936975828412956570280548849411505620207728769647031875048857692854643491574742650055096288802111918132820096848230035347432811564435078712225289834826565873333250873227330101892657725085271956622403200966050669248428324862879659986255356750753175215617514282110321815986432112752336061905904269507491908400087862418460990685999639578108596825187096257882477969095534545460349265337240772909713460137586841531007564822072743502356003582223339039508304602586335939570396462370466668184619035334342961367541690807506073391360048970376240708275147315602142184019665819076287708372557869300348937980807799985253073925385047698382209505814821382177055669100515259889752790802649200636664874545461689128386163383368061876191495966038321530015458530915798906594813591989282152023721153604786463124747161506236379852056299311748738171118982868767183809448985904405538684812718040239933486225991499374402244093291527426293661657214829249116333238236751318930665615064093875130696748309186330954742082534147885623773757203764931925432617968297459785026127392112186462876953785414724022523517496597425787896788984663709692494150943962318916473195020743581168828132392248046621839939740755918539815947987637837504614557531475742796416032555335188667469045013178429403654033587455965705708219932543670925099056115224660840310809239089635754152591857085953420838197671755752280858749339540532561134682344072723494026573310321376542527938262850118784636837281251451538346590776801140440327876598919295124884280243493822070323229068611170324995313619350016815177557496132279359543764121857541165603463053223793143266084870495253197139101007452834540166956384429693610643672298634508763023030148917246085746263830810385235144431570086802889398084038137871106586568504115072664962765410812667441094164071307251824516063760531086050687771276656242490307557108611965984660754619541845021037901561953214310988838271644228115438877693805888735391388555333306343147620144371335154086669187315584624108262546206670586534265455921396703278289047130207234334680320588962556491005017562354633496318605253386663969352757179672729816172023643839220419188003274634647318501988689128589317504394428974211578444720237946318658807013140535791089926075935326028921416395986295326277805482403282355656497363969559114913432214488939206730043317170538307684357803700127937798637120672150723996676640222964799183611630299106568694048115854767086748914141675212583602659363544748143311314565839421745603563107595385686314059498049333164803107599841200946275612950243455343675413367204965106432512903625747602172019357911731345640731528955899362715441162320726553777159110221743357692383048107191479810905172537877647694874507228352733720150547534681512586096379648545390483863262966604845922079518259834628778706707132355247356668725126527481829392291580437677904292319725752538774651832941402038590568498830569324847341038197528864004462781048725474454373807716038488344324446607161991920691443512673129378821183543602972926790048293904092884752258989825672019578755640422450915012560232787434489415679372564222445243795869940925652467183359379711832951552137760857630226583343188218338214970038697095183539381768531358949031298801942432120940676388657313433321021902943834774069367243315601163539733076599317522683585118402936863611410242520238043534451028596468219141182157001515439642796723958302598739779515399260788006190359618106927142240717698005902934586438085335442435258522969643305717471669714574141142228420524127834956241268227348368429829855341629077451374261839077859146027166897850659834621107259739985442460519989684440785200647391214212636735884913628516169656936617738424061585222557252535836705234481624436073980258764918230897938829791363081416807184165511251035825489132151100662446637604666295673518759445426785398102348905101360513809826299685162672194827595704192501079225650040785685775644881995087316993519301915379869568048999421841821491460709429813183795318236366572465324113836393917874969333969481805800148039123826809378838426654321019706692098702109459933111883196826727421191844519127245703250285686491210814100633296087079107683803112769648132355889668880753012913291261742913938707448958778444918977794270232881223367239208981829153451522455449375116304685551400425483539601523074970041102837643526650819303391921529829491644448844598385862614486301705364755259014254779477695497222902460291575561293642469606323684613249237716701052373251475430574909804338466429957938537499633885757873043228068465002905665111459886141813596281242126890890621138763698208892817815876408742371524507036878784914434453925923094206720075330539747059356611003411640770874951314001496999935787079005190632237151864748287182106204978440501735350324146921288386774416425868154897576968932074755589498264888193427770980463930027552983140334144960033082197281438630831854301062468210041864891564235526382876884028293662609727993032517762052567134333660949284756044822845328169493131084102966309798642000220316011789660056490426045614410510415664658975348232181501691093930657781331394834219690009553987729945660710149317428224920103873339096246787756732173708747496804334223142493321559920498575915547961638095046066934925867984449385125018461323774606438168098570237313147965525842522510438247017170946479537647339810954257809890842258204857258603271308931417150157937602954783424935430770575541995298010972680454912378840542780493211710515870028619857797069919028124367352268386049203696449515459921545980316093904967689560082335928510716189686347027373002741879521005512652486108780939786039417676366168347293623987106263957478081257857555530246301222058140729393861929350481876811428503243534269155663927655892381627110958596803174687377124595213618869167164698415430055623080585060317062170160779052425472743773199508469242296520704943570193539402123890683559988140061983288811022846021464793963634165334695567081551796007956048019818700371666568539137015728509894047595942002196966391438042142600366719889997374899750999673339505000562114192619979367954420432391449434525269917502959354946869373300731891929262677769201409179183052435542775521401384660770897748462595816838528305041939027091162034633778589669843281344666815264295559039131310458606356947557649413133971206208711325723280592016609372584987150896006675009537791779296239806904556649387477095631434644599801025203441841393288340005786259405492610728016920154493847002552683880122032492931556800637402759840905927031327368237727411700144937008225659122993406308074508868160457620313014212400715974910096411647694891331922488531991785056295139150098598537893200513682073580676901932971547803672714589823085809904967014014682488850824913352395309719657181425573330488651002297123313083874317770653536374190522073948730267911465430269953830112357159916471801581979163461801185691882046908607505139340600536915103682377267710865217088298803692586484030650897493359321147616013044337770216176045852362292063261722933216831065341914144075643974883171219050940153016276145863142533735155091727841223055061048580351962158075718426517960810803764955891162981429670873229236790409078841535326588491660886195428991924666092083391591271470485419374579289953714739224563310416527511717834778757894357246326951090062395119638362112364967287662168831853078330390820185666548587727213787471001121677276322069916359397540679932007097266448923790370688027932713586055322142192894370684294452991936800735976231758000873888867904781036808152176992255069679733570004434842597552595057121259604621014329805931618261857022413981513496752650672882275763844826423218555168697660349894613765568550549263550056162577910036868836219893860118646413017605957117684225094726422068567550699086867123014309436380161455658860445660691221749029671594998875532876902539568140976765459554372126821666924382201415507847379101474215501830619986535200680688504436035622782462525340021267148849662949421222742697081099417993111314155183708084877152317473876390580421735328754813346470547881173808326511321781926030024673131012497258815937601936100013552359562967382871865364170711833174645474940450852062832338061639500903036219384886375197052724657676123173069920320990248834661167959872125140457529010661519556049260352560731058903098748654988691936824249867507275265797514669215871744056632968749602213929513694020081806770417726762308991096243639014513592365919030318949079684127078486926050140596133527260112065112745405088082160335617947148681408194121743794414243722398640706191528815699374231703772061107543120358800958323620541909466983021577539741165842844834471258260547752136154022397223560539036571974428036778130973180602910144132732892950519722885019473870503461778374557567500526596969982732907282971299208312481462380490754910457487645076447595336450060779640341713428324080420445977403023671226351411299532391246954270886618343534031397802886687089879765021107859292229806042739794838927090869273221756725107246220522917294848752404830887744387772899277901030213887584936350470069579236959968210672347777593010612697613641545840151136246070677819538932915372390953156574964871162146861650384827005523212817022129949995795685751622575860182029605543544110378013060999226940469771312872081769647952201862375387611006796766400712739655371141926393788872583854129367997389922624171195807197998804046261556295870905911399216170429823590043438104663427778751047657567763081387152368151369163236559991462188842427026562464269056103881905385689996331468954684462993112297451589304057880858050873662098640070731019439513688531587559499213403855863241042659111787154614791994306849582938673979057432008614469509980701616847763206284417501315469782792711760005324994298667012964212523830303429585612139180338452316040801299802858470068379034298757776384514631566945597167370253173784776987289941567220949926354624531624345346646106084091268866206399407712135717748679953115050344582796842715675949071864946167639654651219307416754795643615036882524188894291002041530023419825915280318229035689140425186447260984440423965425265425490170421266185679009344295520135175685786059361983137032009483354672211789542564453505087437106028781369226564495993631232176288491909355778088079989832552262133800524892288633949972200560190270677447568918695498909536819975211125405407754481665371443510280338589415492761380212955649179345952332443214486280755122448361055279360815046570551125490525110432023832312312690419644397593693957132504458369440342763797331331598489375874840938887729461680085843698712413758900658946339500438914294292349441813688105032008625303757366229455478722128742363849321367828874290372956017056858844164554250404455161384378135132630270103706818978761067651972081214874809965188339080737806604748059787430736411280154818080515976360999617534264871132483721186713509644843537651411970107750154724563340816149813640438093908928349995742812559660056089165420337832761055586173017511278202842614479492356957160490942319584313035237925472248680481906185039918350965331513188584463486246935845755124700879322466840747013862177040663952342988946711247986815012657243927093440564647780160708197531694028772002973442342696202739973577296021186747237691920753673646999882087712587638360485970935096076886474495720104257899837020740520389092134228602686177375191489390342342844322475195873143496169592926307548807347863480586891434588763662875457161114327647897960045177654303426089971126015478631176966216714018840094557268759307219585314439735262543543149826996941339656867759101889291178002061203166722884269206815373153844917911532333659770169380122391569906678956835608312784839133643802292202967619596471500598624208730761857930478723673763533310866573232381168251362377115413742086519548234675075770087673334196432344121917849648574305365629190457194135681248185218790989384005610475366685041967741284400153474034170974862032086483942760657741167144204299793273980397747305342226335337848695178313321318240867736222882439556799708631242987454481603768257473775765914415666506655749811118270446792454462082060639620302185705166616104179426050105694634932519393112236260595478125854828501217465059103535920653921641115020427406155352771917908117922540368545531508692646553861016649555358408514296863650873111214926366421704172042497812121790709384406620090667207920179435197486038927345039622442303656586499746461804725241911746109876887904735897292092929539919014850358900784672446363140448472304181522746615794343297165492682401211308371792885778621848726209449928034386189067482147748276021808967894937028253881555668197606252562327671207601348757209405674910416876423291306395379304824951512616202307258641940834053831663567600267186349967605477478841010910736597079498257276017683099851439818002206401424510496456170271495044384736853635857691429877870933397558768378491110384230129911242928152029899744861587364006760931574429720622197992278105057141653121109262898991891492444848009387776399853994745745880678567094896750171840472387329413346134478256719988132022299743225360865279567664838853629450687312058835925169220752086352534528421542144973839161983771619605191227692603106600460290055019881246508200265283444004486204106853444587967016951488712476649906621166314560538085303760124265053281804384429417691893837745144481850317427426724491131335522289442373659913246636097020967911164923023731011411003037397824054872295304648140447478343141766864066538644692041143455761754860333486216250854759703338970125925291524041428037000541935667575067719713794994714235023898949797179870145638854587224803795624426464768226872794426763691849097119469708217755646458219669544225246690891993664959364585466692729689058733790808427106898386933743055277413139617130050981318321361561172995141704773867933481407609680413900017345133134210489798465406059196897708036260419672800617120924924222697257049551910140732274143437453305162839040420852962686860728290675888017411854579573245652933097025257133227575893565174052179473627668895908846010905897577837561362986522494224416185735238612785542112110019219600055822216435933653754915107574990675416942178228041257907824789442036581572114544006667782359449346039179556223224577566497027927736496995807774012761740140999430351666201103579232979625049006672458495823270461503529278307694459427942853471967822730752018480937238076502392250633909964150967188197212318902220035749857291193492983850306737497787626413283481011934071522565753633482779637442741439505399276232007047787947652920808958908690422552964005306443535002050147716646002901047949346723162466819520559506104592561613679139914919561681401862571181095090823537803806498708820581938781341470693481680107860294425054190542960697822030682844918757765104038638175026806061791316459926145306012821625038449881734833850041875548634895443888360963954946136335010003108914336159506898023472936417258867501810251798611584502160487897920012318299377862771789164344932728111544103635698931277127873707906454207851080050831463314003964690071976817031347344336282044673933242962771084864053257131221471094136749756969904310984053005455686124181915163633587109202560430519733900419227447965769608811995808198600873777835100088377411405856326313591670895466264137080663865188841678999192769384750591199388803365532458878537360566677840410402937436234090709663795721090106782799571297084136173615897661621616364389951873065065136481647664162712426896688648842407701971713021289488984073302289090911580032129400867667878572589463792580722742602066759454682937564084225318749173245133595151396157268330753460225976590351713456128367596928674139111723084373844302272168184939113660039954198577009430247757760608660766451240229173307946720487143604618977435828974685137258570220892399865418640905540657906164729893882284208924905660081499156430713242893141241610813494584724129042024736054405264696947792954925371110344378039594966873449349574511627272571163952958901148856409037691769923004105162956388009802609575921054291597032135704621257807439063977606422254872264739596771307058059666991987921438523215392808778728327735048674653100328638510698613080352441051145507236448086867205985069356601492929683211221923138416047850170684690510798544417038525196315012317663002728919093352415176607848644412441761625220810483870264622650236447265646202772159395133832026645721097091006979521421826823239731054172772418292223614960381168974348010819616827472195292241069501658759919658963642355020633147727522014779333377341362820743028626708239754300150006451760525937138968315806514085315240540514986039861335788935011586245925731768379994677449127712299705423074322671032291967780067299964819121204757988007801037690958090841069836299916519630433300067908077050734907030882787431828722161744089089231896176528563415397920913939533803166809037531627563562193689999516291333479870618263496304291843250910175051770146746427239563535496618533579314579918942784744319054200785809653149230290513859436420916611980443150856083530523395413421297061681896371719667303842031185538771206964402202109188424813439409270295678449444761544865248304002951051690207506723723061291240604085835949909916430057483185771768076620425181044958824307665152694239268227677572712420822978852089037645521126418161224564056343729168332196087001263320700882691271058433427667448534751253569767562016361492420926508860704592501536637725912388201588341329685133291653250040073894039328276080978853407796703786356254817221899383916806658182537887650955884708882793152348174863096854560647809589638170771157937961439322540557642963062291627048549018489079242223448384640843938463095419262059623894386716466155195259252937604938232653779691390832248759766407750659903287253451035146387383678072788753164057425819911216572759992908794904917425905109921200608461705704738489008224881646264617175698652323898386471290763688044895708963634571514547558779637172044144089998196856730062859909566340812007438417072385868222860789282530864051974277255132503784891463480950805583557011371322072067623512377169903384581617153944575665889810241436531292966998167115884353080329843277021413584753981782526566630089367066088550974367377517595583301701743203207109150654790571828835554500764220653947346015558491115123034338008552063935337663408479169564112164198526172711454470662324323489958631626407716442201996206395888235843613669157547350246122494379678753281592667197949120271606841270610424869602928196212989283513570766823576160580195371894878217066778429062050809321773512107660402796299435049538247947316243389641602080609783977304991354509115145704747977159995057793124416823820563373769133693438494334103106438951300704579877824466050100245877822984068233301732427922950573669492162020910747300390680023018943392194708970591370785614216041480206151106721082580378886513611516027744278260175688228306750644522173664161394781709255128950476375236037072550894878349486140986498477671650752664411850298631625232337620652709242990293710458034835310098753807649577912508663400834647983788464300354845761146789779518514225710656028610343574917558175595106802188579449170751594464957073689205355710176833262561877460889357827246715706950468558096045114995236634409683828320997043569767984259724372133360457161592252066254366862737924092548482552187454718850362849462191242219792310644784247720906155772138155166510353147457010447396831963113209093570473340148182876302670260702703498709116748967256337071202061933961519268252726530359319398115049110334955476069561171249956821769530189379651208238904824740494624597226850608940986594443137827323254746269467568230041668864781766287968377232324719273881115107446194417521358051009606954857686184822668548101040356198366627564809784552554405462250129271048379114844970529341255838468082443276979130782023951011696523302832151667370033382784191328434072487068302114918621301751915848415805219973637237492761900384585303870023510022778024321537443020059076349189348323259934793717083711375357049317405771610698972173440717687815770179539718543057216974054530002723057890117884437829713280465827712088536731517601932733905374288254192196313365219164981282887051176899435181670393249023297965160158728792599599881094015572251571133201882037507868383381850064537442270585073828841082344057459139724320618050153435798969466755312672198379816137062035900427013695953952234005730133505446108921674549871424246383088761342815248249775470930219365146556693626608559303617785286920179372928596292433796792885933599617908870397909416867723651834146236603502936599981730521052602846177896543834047957183532573233185424403024250222835540473491929284694864361098544598861236661519791838136036771589847215718935377047043004722491325510636730387849435196616379896436240667589360662820101798964315335267909515827128334770305985856862947098769764340235030049544093304508289717213468649283599188437890239664511205397743763052055866961002223347195524322630006210913285272283891984619485749464728366085512309525639303707618912558225317688384319886984536530013800589117544272770699535086521469506193353662504889885842163010209459463280337030675290241457013535748654570042278000977036495079216320367028000508389280865080574009719019285146761918230073625846082798768008365905734489307656110916950054622867307748342703791276989493890710254582992393615774737503281886895685739320086211481096187359579048043498428920623354461709095731859823568325007128847553697177211374820311638426531176585277269572719459773350294459068126319970295111946614491915644356513209848824058730572097676642796680689486058828097194846980168353961854192085624220145194335045100903921664444535137926334863538943399730638358654710293485601505672593664449799192154457394420260817791741316433837079217831908224563719034688284852838960277067063097381970528247225334421805123507705199916380995613109742584360385356510534905932120088891905006558686859957236754041625794659354857768226716010693055211013207695676960593040170086755312793017735843108042101604042124676561675131755937570692634842892494332875077469681904573310519896082547208675002252744452587000078189722912613451587914655441506968553603765235221394060599602472162923688797349838473924124284516705003485156425305300201487482837506773757817254810207117714336175845199429492954464882151389135983242584191756550848132864500826625468268867405150072669419528864728235192089043113537026220496842287966745963712326770564328453608371968979010622126771994653484490809144494746683218309962627131137773415439731812576842614017601406048218450298919785721347262253024300789517082337079274658552676300727885552454723831408163282022277985445378992911397422000283390470758383732515807673604389175103318117604583732491410994926018379410656112060123601410561035091341119666232044149031699494617572292697248161813815975983237250644899637271973169748572963347325547853691485346166479155112740297306547256446127922083051695283054650877887111930974681258541555644862370473206387264496767711429723908098715552613395434757860091863825578626693154477850625870783825988721156779193491097306633173575170289620322740020834952691224599086230537436543698222519565392723519708724561105175407958376208948452017348839636319327324993106317898794095920177118883414320381218819967381064166691521118167911097076549336071332305235164347777225681221467468640141693756034416649530428159973924771740301585821935093691550259622843000364883994301352306511626907815380316217045363462041679170628338381911551812924852440184106210560505010874443744572310436910187042976098819003702079177239633023074177245146015753533388406110155024432347195634662993599914635669104715412270371371177559700860628472169663173551157628229742641422253460200937706414399037303140034167615204850320097095222295826770080266389554824036418235414836933723844502319464215260219080072520397600450246896971266343682137780654253288357771422232200249430726783230277849240233312355096377013718569487267491387612556239861666466759311569560686043536667575751140228791169155191281678773686622958139168425579360695836558403798107297248893133675883661907272524623857001112811394337209410518371382171143827378084318979926315033048625128643143442021147170348894895652825374082557383421068001151178370346549073701716826979613862986344897006747034291482386009939220890145473518487888645489473774130582687445051693837185887877278231949931339955996827648219608286292654420913052900708058927209464810948826817867909489215852378201152782184097141392330768859044681973910353921697333640387259081636224729800678219003111188609080085717862274646741087833565029542452727176999415867068261454006529231897233887129122959784705374421623334089086703179040725218311235568358867859790601291865230902011522880232916985972150417868842332991876427589155485865220123278257151743860623831374535132314840537259016569830033092245442239108866460473404130089861824608803401370617570058375900722238006966820179939333011011952717111574448030806619310525314506992041233333743953003610635770447153974920530354425922426094816459749459612248653500765997279713364626015499797811730839724702763898678169274854841829648555045465598116567808303664763664363232671622973486671866462014661512062515503633753406437192261803201361181866142367698486423725166378285864224967617013525831334737323118228556123768723749708160420212783653567608140431475084809835404333743342814794355137094249332724626157933103928412041918302538946265000983816256340503949913220855359144510986050989445312001125618805265880665490715077387082783444604759260417141371518468359271196749669573395638124942591483632503976868363740096210640582216820039585690057147634399060104822145129895624137823814108045767076643324539265847847935817398446569814276818897072596308904930972504732878061926300371076995759486468728834348873532843520351776278378846116794092885603347537839868895643795950386957632253788935263793104635542704933648650055533491683621134714540337477709001864224022712619454423032746129079678546265083431717182909116548931717185845515525836573478699632670011967303006986927397790190382299455655862604385098170489245480783502322545905527122958727972785366441682656319621123246361567710347690617331690639633198325139085306790671902417646523066860083484469775984746218097106748303087810187612349709437809323505470989961617242668708955650218546123205166850636690008761007657392076557387396377121240929108000860161841127083466175152114181925742449333760919515091369772750673135891175001636261450263787744339251245887688049201459368305478049606256149755370813883096593655395467489132339109840558458042531497451012661046376781072495325523039216981442644815241056350464662648209917480681089787313851265670261911403911592984150359693303676706012371624462205970626979980465749229007834737857332859800478889803262908632115814231541619390148515312336023795741193159763719654551101707783081892045893890669210887898804319863283563063517800839584404785379582141176349499182715219007268199507264847004477702111675242180552028209594930116416842167671136273600899890503018066566088374352638841465150222351520586081596716108892909482048170100941818920739158813525735966661559190416813767308456130067339561438451562220621969200562540506222411955379976041364088105881158918036120663607097303002170122344217480565776478590206708650921275133478404714302564750415832842174869826245095407959205235350836940753819897390784306963767085968171435360890198600653032701981241899988062111183155811239332374565653106092696613242280173777764379986033427709575058586323866316038689736910179231517924327783956256094883829794721625475742256997286708641767287089381068486393380476761203498020715270374214473909485949374085657272488308283418801643225070325645773467026327592896543466041760661493499289991630612684333442816110407049809344130548248495541659538282487997983712578234146338731797729613992090771948354362853532635892570524593510530247814880167877614348997484242351210256602630577852517773015478213517879402642824278085664939362895927428798091932668850686561838074284216248561313502277194522139276327622006281206911558057879162429081875326119723044175735730015091907139539265901510409326607623197858147322746113736496487681520469607647688644780495489558178629822989861070258242004593110177573431271844665173216039654795958980671955602941980383781449358004572280654595994220240973448549929522894461410042237802300665681230276776683283408202606764279493138873280954146232584959345247442273177342059776941608233817130668431362840737532702670305381727708818120274028970646151449789868539774959774425635094560301063541994641865423577307995828598314314591734644540337978747898477403493649520604539873108778650581456749265339178751500508612638259926152351375574234414205243708033506070860152213266016385788761757095577658602118843913209692453716733640266021034080772831082404561725545190184926064592783283685774568958182962987137004610149594448451733382776338561330065205856898220676738560746528077849780034500121227432794677779490580762262683834905707740876540800012802983942671185649207371636827766273510147815838504589782769808206033504308127103769758041031692859761094068187015562966118728616139410628969927051329147038295637946723822077795548851127558068703778474668373850601500017202112489006080031246072428467935889399241570019989662370053428923018215653087297169803546330439520234060442996289029551177109908321143562249291270289665512880963377763988638292099328913672669863968151765436029693713749788940139698500695297521828303761987776417406382105497623298963527064584084592356677574457318311851069861192181724010286534747960848851479762588099282031431414090138855730801520326101454970087284450844046344391725344272116470033524992890925001392248924715459358326106109820855046710219908659422031220111467340747541740683125947584784300435909187271480124121441745265165847733138680040953191951327414194651195590524472834079231003297529401407774046414217129378562869771062656692991890350744865111447929625988875583356362225529104534124034582405564729384920313413929500424824115428318534550738403972629035335737557727434585725644448795843768679035138890845547361167217798510468646391255871914025145331060015512122451597469486517661463365348365414481928304049856572724861595956372606120484549937739008047783614161411295301897163204503696513255254866183015698287303643286759545939795418639083402742337098109554049938443893818314251636823292092981319993053549506010085577348525841857486340838889135790715060965726600561768983124067699762798926855447627039168861454291947884996381448813790975335647168213992151264320027624990746466340244400786657106250123566703195191121235847813422031377644788298428274931209165290888916889835089373108663579212204040276712285558736167125967716576415607983943565717346581351104227092976038738986719103983631663023614359379998032938622724381345853279242064639545950308576863709317340679820999684372471462857192255546091858960920992450307405294337797296433141185366293174148340196798116933078201709279465001356055587932348973337807911670223847947803681092394415385155077275648586636491513066682070423885486834911766008579882861876751641848724453277318949792840320667443564269154572962227600301510399993728842708579203182466178325559512014877702503526830004973933934810331707808435742187971837764919429439618339359666949298106671159662486007279223465805433905776899202092714609444603787516942694770782531113205581628204635487644855761431800103771597894033827996981257594020538132596794970205624440997504016993730273435477870773912434880685713991679249075301939047211495397822901858765682745268444008561305456892620208766644477076501001934333978742013909909973238489465086934588701770016330014172400403585347939643558673947015539420094500456396528576388775947974552624817959989545626090360578883859907012537182765435630636253240692692940520773536840315423325359347239862070696249828583469274447920071268496509211767906500579826474738099508324090063918239113648451282164797307779238284118475321009945736859329923196846610910660528249119694057513500315232354773354738321178293165311852385832092321535147198645195016336612502422208979073701473184808099503283826810621088474011763806010330153452659855754840188529597917074470526873955784061037522270264564083731745333449187254516681230650553726565235564886860358990036658794972043216894528418453438860346049876561609363020659747411722026579109198222357711950437557807000245115096487209118781417993828566364928735427534358140249429082845894554557802674142861386740605811471253139098251489866820098524326227537178109306910372943976016024009633859956916010467711298058048194465923193799063039531535282135309719009427747217858932149392158087009770480870354931468257283521112523942990099822542611188003275780966145046437898617245055076868266024484180584550740742401602903543349769225964150153423478457097380612705411653403612125151549855369374730263368789930636209519876678587620577216188222512576332606720076829726759514083253398268777280616452907196508145954410367793313803527563906648009930477589176083711799896985160288094556321335269283106705131497772918055411533353648494753814203331080688135054291002777206723169924958568154228488098797682592095590032312924999007884410482847255992551157602657125717609967042127050486360540522981693410067384880001055055053298963956900224061254857463682332484639106667674535383775890250864622707998891466048247997204371742612549778056148987426963718895173034284444805569399058400300112168919053460858126410796625942001877749256782274700491903449608498657393232250647634541791197508110955991305853423926996660352388338571749200335244219474726881147441067603476268883638400709557822228235749560716753291152901282241450171837283539755310082731479318620875678100812619326306715101636216163579923281224783112035097908537040095836495407476748076148552284439705382246144316269515436651797556339962557622778177401513018955332970559467539686821869673836127241333043030973212161604686997050327582218933213544121449429349251138878613863709806854536556703688821366244795695371461854784565985983321600337459077370838891824531277579938634419197080798742616178079666649898990242700099177887466381875319270702448186161089786894753643762339378280035753470879269989267881891743306174397343951602870649306772336644750077542216150570889458080097397095327559248463842240551820703963049926539996849742796376834483681306179125369204427095661349071847965142761815781148876869589043232065040312232145661559014225403202716124145432524913007931576211491687405917345882097053887251092860212433037831154181756068274356415917159112220661860526679192280056918821350549159560076423919918509851787201510626384342225525279322087319084377116565863342319070251588378854386883058461915489316308856042556460107250245645408562660922167760898362827601059514330314392217937643272300229995138807685038538754673139188839524338714262112849447775242989623752987687841345209760864298012146108234773439023044151789339253052101000083993777294165585587303427842929866098195509481980116014989703875162442007775380947094819900995425256777289527903132937078715659196698495402839192449890734542945914844977432702866100201971550503970640193503996327582884837465107636277805929633019864712205113536580109388442217322118705223683793742425200836914008303013031783810277096191275116245361733579250235680362162782721460700823623787288375470605220204996689245850616541574070589914187169508155518080000761936864054203351235688034465838336434583346974191285704148249419772927589616499673938105938703274747916828656367340577630510782402513651986870866003670253705968019434110662504239568974105604260185131485833994733242819758044250278654398105396689738758594012224904241416409317225768166983373645942535707675115846463829917344417507798132092506535873368384329406934217925789513146765840794150712782094217951724351749579618087874424597694519416040305904279693134550912239380828252101354752927293150581996677403379511903871223307760720671254651045623705130745742307749841733523621013225947514053628251513440629765580726757062121070087354886437769023932143009571685372140872934339330361450677362487672106897800879453437567521102894273187819211323495987616616666848463347146194034169746075906994971521202133988645595333670945526093176293488721896992530296536428905647249264974245277064406976473957527983989718090817083117854433293272840345524844860679882356886844572057237391864770988997174265874783224707210863224762101424503280667475575982159663234685845816737184134005218091094962797876017385621666979318772822467319366162571657862785305082936772320904123978540811331088808543923884113661118300511700590691720815205475097618675511678607753158013786262804290455571773239485535233215678308029524197060810405803590230289912865619207928417340754238232496765179437889616493841982991919105363755398574447521739804035938463217617566313627183905220306488511029885587071451862008796064282969559279635285924471388432882037737405239282212050286847324868879571142284590119252596435431066373334844883566066116099520530358883924274949355546214626638697564796616086145558977416237380697879216057827819334859692454937912224171518198460765437954853004845870734033095934464515978471875864809624323056047134933850719258816363520761881221818571159775808909789047685964535514234558121145011977556838523214745355080731195277248570503049746189371655188248135775907755476783531020027053565964942653970397988575269300143566568986417272124310398497597655887824167667805801331765188654642275028631133784822833277020531151674676937197675082723824290539569174537329265816532483425529626257668455470826546245170048682643970726469792740124201372455133470540008408875761349979251691373202132576419092099217535246029925294181218362623446762685159145962429258614205301527015004704441705381887412386873314931200232448821612727399954056300993142950101014316726217079561873487734102503666898056280400753087055444349428078726875137710665613828988888445543925682047876635067477584782525685670717415358097385244765632372297491741404511635708507470274555860801603363001255366928316032409662767194588628230438717625207530190748815135424098066189100049201310276410619800811991424524184322034014040652398462377319502140188855541849074330044203664269751283876640315155726315389119046791231968609817320149186421706826233475263765044804764115326243766054313457672765659888321330944692333868716946725598705351440227225315180978269824550992397383907520955061404654737675027532354585649653949742761673903254534475234869264561824908577929814236964538126244209398584127815802674374805777968951128007182441531841444477015164104205633562502406044025124027837452250531725037660571897174823879809418005620523573437638629375578250654652946625288797938227773267561936092367934191967299429781708760877466014619638203553039244228659587071965434181687371000603803356055776596346438455592514962210754910897547805698178298387101414512876934850958300455194522286713925202543431209541515313993456157178758083437204828340572257221673341331272450984848496993945814779140807140800375445242878163747382152136394303984263105132805455754505165173596940392997839092397309489946927576388532360038089880663682169309827207173489082963046639865773976160743385374962297487066620950021330993352997164316256100503736429397584900338662800332423497158339655938786543309531072739747167514105076545448829193207992677595478201232311947644029162989454207528912872915451465853404844881650714666318933028139139481788923944787649081748001271868379392411869328823310191365441308702497264772544959734589645951900710073118267893063490208585607054700635064537830920380276043640462390086220929999125062736530275490772039287067182216859527539927384434097983537167047869979593530980470327324011554475847534019667976765203423448046558576796684867738528754252004587566450539896772076693816948439829534008639289854275344106944183158510755820798618372273039801648816811549597883199781232065469286747157076710082642204450652285248444760567467466199332118474586369852462386838639631567627014667730303030440750319647448004478746233999543659714929276380602080423845377017717815842048357496756174051302282546187324713697862807538087891124699374305163947212985614022002209620667906893372666055073793153194531441284941543010030937633849861442366160271345349391040346364127533436016203431994437089155174574299736392986758189078634170069036436814053628209999700042380352490238498847670582010165801337973171682915129501959706416486298506637133705109057072758842114385825172861265614614540836410370594690368850377933107712304709998672914844109844415280429978027165691473864003821836485624532794462190504281087339026214756133030090622112502277733823026610108371686803855536637983455193382289728540235173391875590879715296677562916457202650480653083315795015458279263935021367617812938202244209242767771171977021540367677229939206132003318045052691802167149004533173536719007622028047833060906891275328595278297624938861084866140923365646785197016918104951564407618818380758838353574400452741072299561862129100974041554640084987139613133382060302544083698049670701160719053272621628197373093111646225790161919926238098296764721552124219321575336458814581390384171304610042453871814334043648458365450678949287060025900640265430573695293265283121074524674266987375302755652038612007092937666473250948373943726242302825324484124768748808811561431699910650644911755212204220894447423181621721205631521948900319202450866123528721940841003120716869968313845188644389759989584553257895617948167463747779818129551089640712643164102584214519011022588738006695791193944074818003724781497723536210017937305290510800467910051434185219136398057635191286108578507958646047577153239772408693061967706301721871909479138759950906731610242451563009313313730584179362137226881863820802932165198095980855451711341277178968514523898893432756781745041979860385875228123526091364037914871486824704012923959405276599574742388901194298367058385685878730827390329138909275071627420584875216776659386833937903330574620788401791773952086927273441636591060067332248691066079660833516100796884195174714747923469123591771930653848010056056523180786769862602932607105317249768029735326778692652584740028845375516812558899877614256558191297423616504068172869248414027292004397961544333917223285833857868298567390899951811261467146181222446438154744666640463395500783769702972842657997067290110417872762806847580399036735409061162957086893404974982848816495128216383529651161605982303298932858069728212151725574481624107679128421268731876251959352564574708046449387758850838739839998360770459419207517333911861032446975996748753602345002553838585956880743363063539574735994355811968507482799044320415887054617380803911128832726711033279753891373624001965457716523484637360247714499500890498827817674610226766736158553319926693947279926090573828491337189239144999792878169680682883043443262659230095568716747829415097025135909326159534846114303483076857261332333169753327649159146682342444944732079858860400417015726372783063222322670187748290393503173865710406820201766567815472369299949425627014665654876771548815853916301084778974546457731550022485682741778341637025528098411857658138224197154811610123188036165238472655198800874447979947768130850254636507119956297078557510781138423563400782437169988443965551829922111303591081435383012624189180212363995831227857198082170969932210690175310538755150138976767044976012779847099817703598547353205966776706652392231575238799073921286152780569393372321979171870118662822452215002709561605667590544263112027491808620710756468266665323084587856552941455502575948992370854954244224617268555867919269062670268214928872158698398889382631491558211713045112266134317600014737437127890587146251822460797498557473232472954076380013837978756331067511100150275673141294348824031729190750082817081990365699769328705594121355924986513173813008983716669922611843745317949102286952275257262335196378533567209065999528989906818778901601744717654778120222496295072201468175665560799391070950471589390911008731704380285087705709749011776774140994281781639267997905473467318902987181184128213508916032750061533193455290554175152260136243092936703927699520709806329758952813728985434780758473734044236992883361986283090862742873135081749472813441222284501255360681105608732687930682643775707383891529209512624563716544518580433067894999135027702867514552723921805798231199663149085132748257369343480157801636031313265051323968473817874677266024963196164294075628649339832377110141155170782916565057494008103007352947341365861735290142774294713203593308268324354338250991966801070020192690199095184671552338051719617717313419176061500899895132576998058678969810555316269476327471956777437573192688422517632217080815075275520269181695819851113229473973241059422901792898083006966259943364425321796144552464768910619672588386473390049402228117776717674735554731499346875998174719088283105322568456008416605352136608790958357397973576757492739610486096500416873163509307267194578786584365076710380550131491976976152959828216863326516950965146764336436707454683954352164517252342879415580927065043381585105699511151198957939108618417671412598794699546643320253039303867500986230007516509858505551120814804190334856070008865325605903426480627940965451255829160815498494770087411593108324035035712468594180883334234881188946613451368683912315262228661562704295886247632453534238201515458844098619064292067724732626191459444195194178123979234547409937557341578702843146905827944911236016094837981626065096127258520534636490039310648737989868210434041409690886692567711687427265613157905665967045626050783877066228622827958875768000461431071471973565641792491851595424213600301960347413693147408135008307979020339064714195534099909001182667308750116137042787398194804524558922401844627033597570783500284580257422572171888020134491956144691861354592505389112751711223934286600654960015748929834104701335246660905714679599270025170258727375763276215019256167002520763153771453400173114140468009041647117744126357039773566619690818460349854748741658899891071806918095784310208861199866343371393528632787056650040810200446977122170614152172470406685146573940171165452148276695597731431545288004477486964936166301029231735540298751560113980509962850073075621891938418675045497736404984093998348895462442894519045574467856750729022989069072238117897701057431975037847962683422383050330012296616393254924831655488804663623883335334413042530063490129177640217719664081897893264838533163237756163677930037854526194525514507488005639820489481155970772285979098570622065574309044173807982531678247713599920260853645220159716553370156274187773192937174220983634133663643793887813785374469562906519805243280511732289674119167258364033745458168787333492634430274691818857284782669222582440413055905827243419343927775569369369244026054511457272665822341349136061892219230127147916598252925291495326532015145105869869202538726999749163706802685651432431937644987708842980371465595865695353098017749828925544332072601646670418412191853708174121350454138030244393928658714115922425241085811515659399716584128875735980200754222474602528029733435273439345808301700195015892490432346457339542839567699419205580543214389030404485578726501222237224128326882035976474172276655866716716466039860628576223965250841189707871065810382967086643046485715891437344906909921154827088134966988955789370254234488922130640325813711891285709238437262642164640056073341872082131594824132195304263447508619567354641808755203559902389843261891244053592349831813739106425616179776422392316144179047667956764381883456828362717467230740808180293675571057437412864267692114849275528933272078494231081868223452744607302659569441352103700841334193417345400675573779910784358821132710817048192324360004669294883084552880445461445208666198373326895030069325718144730131024500784630547321098911079046537219484256996013448944926288287049289071492181889547033285384164397739602524279276011439918181129746833173941452507409572448515937922392225669570002571301572943435108672551953556086788685200777972643057895900724768101158922013903768481360893183852692943542764407261675764501335486060022093693718109033159658949211450840657203875214216422874999017797882631631380255765618859939308249828019367813618826058277511697538858739548782981211685327135414675837059367237398351582889883434308846022567068539878675202985228798735353027600738091006197544788424999109130403532710014431762189670234695120716793855068917291730824634328307872866409090212446424465672567098899317855722767829483219119559354750806767705222754761824259803232609658578413144432740996280401996564111317291419757823105201183285696259993022174000164975890111688550848591120103515702208170491715599087896729022058532326137606565796916678432377120326734935520853295554004620390345447224067827646451665920105365194743584575940341862307852674009512587758095336384923978268032043253721373513860273129562592324979690019580643562605863626256358875775580684007668903412684865366899305440049814350071335891380100581349640095700950422609489544460588087878896490728205290204213983544678709556305803246869374171605230805075773924211922580854330808717651298193301761883764233905153658254399514513121104768674123841017143108561814546364913674964187836339542404605316691508495727112438428167488012902558191457345935960711239732808860092848602607046950818892503343166933177405342039918225976958470674977760856902083718068985498161776976139160231277828206596200715149433741740350129932675287656412813713520427827626459902767666921287300494458425029001198778021326127634709942978325216665136857528669609660163504135798556528395439622485487971409499619620800656417257646754969957646704762517949521097733907384550141393652738538476969085165865583438560311626621410980413229497871712438700660923032602354733466665191343979609477557803306769320081038548476276110113409411700568103091745399112969061085993888123879879672703102105627760353642947702860465671044373934745505689723926685612240686436544975531977524949331482341739221282526653427156792588968932718355139130022448070475262698999068822167499369853435343870677446527634310785541120321619351772484956693308014228934501370965234181761152210135701505362651272311648290409742667650429365086853434027547607083581024883526751181499795981702068888955946361071042668239985630692413018565454591679753428631614108949975219626491112557491208312207139792140797441877726536026502505500116251944248367496228709901310477255719734176017771073143857456010285739247805598795111626878864777943658779618095331636413633305434629221342739191545064306647143083121752042241194005442842453126343622888514487450881595370534276803048509143367123724357617547762719332439858954697442169749942020649581439590197073847232840390632962670258503957312527545981362983488476935992715491765306079277066838728006090826933520952169666565612952080916155966594956374661932302732695036909746849324026543513760523130886112831257440815677329278485210766402146609016565821437604286258205761785993822255459181806869898599864658148290917583605516990342065293670963424933957708471466488613163122445363181640277583701029333541177713585125542260318130486149023449015001280849842429346797000950008437874559537437355892604400755574589825883220310414189991997571449444021137032235939617769618511145563350926062702039423234189251295054314962723751928198515203463982921788093434645468007213164747250722607504118421735340339530005995397178540769008607271742487248667473640047563040240549922757300564011833472351466666608925740577400501281661490758961018063480389321740958857268625798284319672357072249049051546762667664286031293923008865952024877789128779310422454837468295691372071950594641371847809085785381027388340246665572220398466825961701000032761108969375842380155448299576759550431022736413067816641927630878912925781697070182007814929356293457165282604281672572898622277102906275850159255953073487139733857129396022613826662242731179477282621563361920498187962225890771060947003590853134189404007995888706442729830466623975293363220014060353859731784408462161641247012445491631117118535253526807128849492840365521201498629608418980981009026618718621545479558929932371247002572887712598446433576295539850567655298669867231082995658280530401629163170050071609750877328950236924926611575369681755690889865150850402618860021855300374044059123900413903296274023532975263109231370206075286471219279154981066070449040821002670382787279069299078243080426003807695446319226098424065828483711646192987413985339757349736587954505302946530294782814966868364827922853312047294454829668432419965726452386659371245322988036389880878645794541070003819517927133420253373234923104648434132599264841662583519757039363694864490288017547395583440275544725652112123982846667127110562550796617347067561619061314563722236767633985197727706419390953989220703455453675793766452243170064386562924939043219107378264099830605251275451354496671965225567977540222581778132120051284297383827699047472642283596990572471929320373216828389640574620755083124175834837004892589457472799872173380418444820573186136153515613122300280053788962127511542164728728782600928814027011222009448279571545338952610125610512434316555149906673285089599562080565400398837494448077164279367712899871591781450393605618272060067483509224918222316582950965202336562811791932168142583185259958167880113007960139320441603486676156297503653813734742262714179316891725122498972813751814864081516473920712819056864053063487555804836724544732164385276066049354961582952500695360766647378255225990744277258583164103015859164129032336459746325683158741806275776698822135382303407835436915441518262680772665277012585218294107378908765437614601128572716549636310445207898505659270578730861229851193731787749939810140916237573796804541589360715853091679385026952628486260061224612378159166026637856770479616850587188552920747028779512296191772386772811017850656892662520926220128239030686154330864863486294413314109657568966076242234529357470116567610745524075227322269060209183842163599769166609796245063666105610898276044591522792585653530747631323124364461568104155650308719506227937314470642571513949752025076180753708043537944156100195512379274075661234030632913423525466608652742190973944217687025333013700528928268989836001986892029205500957486334601998838244611823466074743848666396717700130171378144791934304280567831259226728222912220104552053403007473732633763523336544719014785079353053939640991973732328224717673858448372189063841983047785042320016482600450867254195198576415228360773765214724884266280137429020568431869910688759820161967345133466309001118478580803791596628259589078593610365471769130244739731195230541027537509955824020763458102449469455257082371747283661805095938618679970947972047084839754172116198718421355795945668631693014023974844070235824348760548667741296826557719119790111819140033790975566418590747190121313008784847361125531349151331898578869015215722485065540741467743787970101284796005840607120778445532226851429210479289230255810661172950213066914760115252497136701079104586063677479915152551575158143051308013323413120868653345856359584858078786762728261089551766702505366560315901734030200886885483092118985873324304601755047313132398851883732568963431509906717623074436866953868000402205072109999330624429575528204458918724240978116806923202373027158380163205428233885214278363611907787252034998148997923508999776139100329553975774694668203663746117665708891363322398456803865455347657520015991911897070046389310399868022673123140144424880585866769494896872611946160475536563810885353220759159349349974015641029822578442267684764072477009493839119546499005968001975828098616111550999924972805827588690445867251951997340351186610138194662520667988644002469969853412177798996481671184778598107512177364051985190975632078132723198573802090303105988090389230524846145814644851953938541951690736328367105818301622786108251004513275625216143900537146503388079822676219108518145782704492671545455377742359818863892251087949937720762208879162062526543814878973431598800505271940371734786663646996095998078544123509173098506218601820857647903155796184066622030400591324665437899411497499953277828119584849736393151122254653124450674924759791586375219779749384551799453551915462694529957135690646805327472556391577878618581436189436713410487774281525634149048380354379258390381016354126973338898810883769941626621069847832353155830513238898216405140065237001193024648577549053566401719386011045033924251798017669945752649853997925700263110599172384594118896112840421121714743873021657254318033373651835636879205501438232252940007756884824072101432939308754280007839210874798800825187501713292398159210067408092003434786378545558679068745522425983964932576475886698054484457265805058394583809793857250312057200789672262478111685939078488840460582222493055619529739159252560482137314495460114500400463323622774326086105632872432408293694791197156894992633312419419285704107427713194731216927839644847393736565882780044662197555411933046755879107139197359914669170437214060438221955590021903436994885168381386437215329871401031303856118608935273085176966625559203735710427726947683968959271172294550413403334576559396368020151807054982400391136752257742223877361321483069050861136194477673177207488193095515424980101121444711388531049908336290071020724527720784978091664334085991594181044778486056301428549540834558713436358537920529872299250593949923716695017567812279569884698871224944085769311977189735050067013002354035248173821522982482085770413400045429636738363322747874918236942657674189996378924580626834132752650679428977151440205508969311686883953682124480735226471571808384508392687355160620437829521128243721729187148691453943918876568655889146681592310707363551696754493324859313578678816127974191937197746651813890852699937282844568396440130016231912605844847694933684474635067425691370706320391190580010035960300489414406327498942911368057679539581524918373281272824632982979746077468084113086359599825568864121097653154041237922089733175733119665418037113329500681434148273998214583516332265232967230934956730640797413936042663332113178579338382431102126389175951542779917568857103729246459083456650142334391019562352830170330596141152869619237408125837470130157475292366118309057686418362410201470614635592072064682567672395938631271445174419401213792660269818418114332803617285535947265661060468579123339632110474345291745747185450804382896302569065786339133141478650506633240477951879659201028038398275521515332389666319302582544693504454385749770370278722677989076372144379616650066634391545478501203035846189106369913510663436432185850940223237095083936453383507887140817346158990987469810120963248752751497653182803150337769353580861069712882270149684002634718790630086307055692729374675107473111847178021782195085585789426215313463959990606348115949623128597002452132923283783418691120612760424341356681198652965701893194103605170777541852732722961123636353070714345397992341236852640164287050894777636194124596932388078266353076560840793720266081563932201042844479264308027927369019654322233901588542605345119726850915023797436028161015889715715532816883460270434400325743886101524844038899970526327318865452926103052982177527630476355649423979315803465938835682955464637811206439747175664623055822559170558958224692104047853828790796038994600267855384816149638165476438156825130808951482100688781245209530553566441524180272118055556159981310499030154461851081875075480256880732981528535124324554909464316829597660510033361367019745502096500278376773863932691177354172171451009334873478049260111221276147785364102284813348740473937338813791602613585411933386134417538503315694229849664744338006667047256390198303274984736035978474235621760678428057850078811375062747987354553578406764883667240336701600710371585993681994741235624580155151817456793937531372221408475793120249301376391956084626850995762677871729620874542033457702488326936184139037852702919604110879055905168834390421889781387709620841349439772094996244441182827409264332083625489071091497960776914133771316687837889491146293211895145910615673618199511721669960556564923831868181320658519691037233931976764716618788239763327744894360957132269071930943342661109113323573343862626973039425241726050904703776517041263704344465707019896750813183568444948272284069200036082257951912966586817097728324568007280556896783357121057165588049280264562631855472108688006501011037966521462096919700356168463755799364787863052619816814432693818125189106717632649300071955441996585634461077077844698014945474899204808263700614663644969439661283118958219558914979212566091379359915220799738588686436219311608451259355684375893636530355665893846148616404013391785737192783268543736952973644068181361121420097114231203203154796294702593976654297394116045922889462491837593990937049687864097239923103208011840450906800158270658193199867730303684450866331434920027494652333488008295810124538478179559703879162657412784177206311407235142498818438464221204698568663095937529027074712191806480823119473983231964167839191759488082910701864067929868256193260621145910277585822309541069107676309830206501460949857604889425287958920548070245051501583496612439046467719236796050425911295694468529611759094158032470631352233313982584961959902415667472543723590847305245885358655188280128915526765292492012948803337617293833214195188531307917972408561752009929298633245405748947008116348033668021268749588022950521475222304358978922925623678739159545812526619864488236925867614937100212081900140561196620014859497846683712403442688015133325955201821634598098953299718663519574351839227206129471995506918658862869844903147523081518949623930256861704217635272293605395270670374972624505854806515648509422823641068128872439045564064577240223297802693153588238711905881011896938885960291266350954429306221925045519201982371827143227995458863621685226240985449685804400367604697108149825499309140133969545340488941667442926287341097318912947402874654308041668798690266427920287425812802875382966613734362157617105346840569183281561260959702809567272326054274695394603146705851806281453411476928181146597586372014721158395557109796574647403632163873219197428877785096761609905940229111712373679219466824031555178177168383386163255681030426927208714050193497326657802115810215375993929666886023326892838335345882028561083949785917769482289635872149259020438088631787948122825596213815262683396202144280417373007157919749971768945771936441312296763529543462015348740766920943195643210290367207325926092833106093598088924825542632420201183437679134616019837228866593087906959837781171521118649563957195539849028646800593131676940678511863950990306128493345379776067110049727396438751138585804571116424013828968960571648085024480453441637498046296749413429857097180695477129518247567878813425614139957674083542397661612151711364870581637866854653886907953104662165353590331974378534744644169889724565665578980851478458494147028456772056905927664014516257349622817178519405310270737224779182656005213020924390710735718885323079033563691671136409578491395895858016202461363068925537018657468468507806017907189982080202362520216249521315353467676705692981615773956787154566874840581824375894216096062661937173831093995246786578689925525298106609757345464047504671550975635390380826909911160060182215284288966932819410104155341346160218770334782852796727930890665237584074899698818539817827308824543327958860138088791776010022255806650858673466472310013863359801264782442901248825820515530614381663214511517343026585535286025290975196728244722773009799619432091792851587188176241728543753308235780984064235163976305025272710155750121177220067389450580907437589253570246053896001065050022173304718894853283798747174243662378914118285166779783904367259335726925011253706147016461117447544936675578744523415751211043100004311943185943679435097438606999866902133659371593941503807002334058347233018848657918496090637884886285898302139997316498191706247712641469026126205800285783190255500924100192985425459718595849542898674577697889730787556163769847828078043706724922681555426627226246282250328617093216163717494480759378891008199738631342116815597507177304567216959893821320127924417432981800034954395374959612388841066430804208288492851378970281824363610560053760941798648599061218385684710379964920348390557942655373111606005310490811955309707528082721197266031461208176454959491529423691238759685781556218672350446546921021680344107432466123206205242587597309607694812758323735819280764710427976667005512491423547427642950551916687979138490217442215159166788166778937996211746511499333317337092064422956675411216871436905498716109677029814998223788770836791864965779991713960440198837159199160207777772818702132950598677171342229769192184863983314523217595784972768575254359906699092856700509526495292016378233852442450492172639973626663675613213338867226602975749694658187788418095350195605150335102240487061383541086606697819333927241193117282225726117605276145626253076661806953390152972832123373698438275218984225320335361818838171911759373947429856987461050659657409383212984119351000515999385243905702349130936170720950252346124564162809874327425276816389659031338113936218173130636933113942408929403193413149679959648515342916845654834290917219162101438593881964343922256101892082350469904669405676115991235084255136492852512982848469856629047721661067046677352352523508530989323673839374342616630819397952802012244499884027819715890329867131204746410833218900292982877735367963490883861617965133469837679365073132308644227198509090171571263638262187113094619786241474575294099778738509768010697599196925788210613628556619996919754793956696805206097348005518752671795983063132675342691144286278449708358620706466222856475143108385064810988114354590947824454383879195543401166957442610093543644100686807066425579075721785984899442597453435735093489664273796322096370374188649653631665308860562790601171495742058152338969032444802574931583614563430298081687598570383667656488704175816449947587719343661552473835799150942128292236484096570051715532014535610586530529685088387822771289404040967952569835543256009931540687203921750741220333936447361699975402773153909606833490496985121145322826594192023199806115287539321703359568956439943164174754825462123623685034381005130066936566507541923133455827457476594924127804121207263885222640433052614255291111992698223088538444710990464093433447005133908535229119831431815784866233414431561637348882807130759224575919178927236661086803860601995627814989786996881561652520966446155316771751447442307878669867519650767019981886466349076675089652256097739023463959938670892739523309119163000372805767524684918922490668843720923894088310668207247900370989602400479350449553549135308190133046612114491769498481299640629596375150587824847958543605513829278096385055245506928085076161889689300040604021259742327131089344226126818109842233297951755908084594977209821629629218077681939247591544777443302762418639406024052290947964247708375099815431104918438047221861121768888036309799753595443703527229050716022495447560872561198626978623211477362118214932702017810117221935685600060289570411321559105348983377959790400906785615133639820721906655053850905911162261182151779447832368456586052778371374431802432482816876400044374300685976045488277094873095458392703214869981772959595967570524532168389306934165316633576097052388547319960799691916038372885209994274348188188236960641599565482623461795949851004011818406775961400697375077935399839925421420329904530338680938922493528216783657727377539867204258417258439768603694991143896916462475200834124782240344268439843652342579888991217405183762744932564636588460593831312141166102930502558559283039229901811756515049677408217718434015831114482617278562759383875020397011101356758298942260004774838764770196041243645759264597259046823149991632875391133035286116658143899600774149953809476787537492598499190268590416825737318375312280471305234716105471028349951969245471456585465450010027076154593592599700434862002795894602970203725781061455880479510347559913764907390076280300247325315167600489017534537936928312651306014505030765679949758662279311751690508517142331934617775432307305089399047878142904642299887374163224412206433252737897651589155310416567301074848990506997754074924853648593424544412253917217063730701833197071281325460838494370038026090578129134408230660633448120369005831382708447824456735420410842084624972109768257929866363499681843336586631785598209682333950617069926220201742276591712143318567524775481620916538120309802985344954442724246648230875023073033162453512195547929136634534807756051055011242112052112590740511436875714860772134534606766146491206437332565967209431210605278712039648101756267790335962137093712557303931934773586586618103946912180173768436078784892031379741897685300510470285513225523738604577739708727663096245653596818991591400941338055989371453158068173883019063966202055864852972684604517772066862022398785436746844620920445701403187460949376743138324855393213482450403257476344777553241030457510487591493765750489723437776530196162196212323671160366450436852171096086724522620100649992819617430686972223362890995433543940372199096974235400351819800870877802655785398819312704595055589796336649600202986828810131880772360473225260068828108716666959570500357348004352754033036744109217700438193962539631956378277270793021170679486905977301705045032147746491827270019216909879824506335880541566401995260269558337377564534264665386268035201269791669249258678392009030627766581492132025062259726516137722813886682818240623989113499970230734109372833575989973190240226757568875316570003481927455231241429616014023044979165001533121971575626684361724344645765018651240937843204281784191651087333390373950911581434525758129797372509396595152209139819520364360044671485061310544767583604356641103087086970427845444390195758825807427835252688582129608503228103232453320065633147479043285357627874357038694184893098507981285712654776760702120976833114073249025406169521828941175138858047920987430203348617790229119439431995718855915688215334454257083472012076069839799972730162551097207010195755889386935423621997558007112719658908256142370400210651560303638469838749401965076277841786639244265638984614493722731326765638997407031012895401006677014755573199524135794784874780404535009040035668628666286483555217969419947443453173173600960017277805698809136710670727193668006476179673966493926351282810140705874544994936288125988570371412324810288031961811393020718911128152802287316112496028306271471440919139526194014706393916766838849777185127792116979705796142530206020619497406328526689981231281747291644631231336747581890554487890477081978925005477329819124646346590451644315415183061898516368208095154229126649860906397100335577184343085362960022013460489025088234560774288405313514816606036403983604712705343417751109663242592836934195633867834932759478662046260920090509747998942470108288916517842126709769340170366413256540874113491718520026626866196385488276986214803250992475511874052887340465595629885962088712906047298801161953778697436540706673692196398566487420470956492184915889652526838445564628287424803478421037076264497182066875127925942395008784312675440431510769665106519656721292164127723838356773561470518305922313837034584019585990210410001853593523681147070767746656108775021365748117509307124791698045009204434914869785694423814754093975257284028877572964729818409938389820111607199365827037586338638231546623138710715921726659310677415735822088849557927785507271260078592412419714434251951455170690614710969230424660169156483719097698170156234262411301855848338446141295899916133243184491637972125806283884647425671024932013413245086145332568292141520796945088256680679628178388356988029212786932465584188765147939404524065323519708534840061723401424401522574293413132574169250551694411137837552533123306832780259994045391999477659574573304091846465019286006168295593948677968169689672945068272701465301417134025188000998916155948741041306127000209702715126609996240815365637370905488253244139790112034308641547574091197934669226271562835016496110943707156566123054681057749016150432730895941355411647689682733302307312069878127926137946955177993719736645383512539661629699488308761783812285988473009597687556612957107120717330307351768452678264614616647719837116740836825784382201401703207653326270424115732051072096800690637607242924608730405402817339505913445667950351507270752475604136892463371695672379527632577538957295357016122617599416441948401016104928688464226931847489194668372963441766724659490262733968023082146297351985640374397071708935917707049224348371133035946555952905140240257358167150575653848195344062445361512720095770951048574042754702275280362851441201354861001550119164148247202936002250803382881169064000210495086298594854046141620277499019416036513173802804381399792799203481250054997306269600369118225597524133903085943049383997784484640786597270289598585317075448321518779212917811199463701440557419034839645695220009024033552579566944992323397879967148958406526983515450330996313638797562795802956956170535319868664012457490657476791033778578179493611293888629445529655688147897733461173898061411740267194036073877250257919506689506733157760964390754641786739124901349579574198436317018659658175684516352742051213517101886205342066947288398027622200549076219262242915146144187064497838450253994082458967216955590753864726829121200748343463563235245963416071938014675059579176361813407568160168320576525533024835855388816764772667033541379082208702315859664859013549899554800875939429850127381730587986837121436944654365658140822209531974129075282248956045682014905585483418083265880739941568576897842501930902127224558752302877935448173085366793281646174831691265258592339156757224246989232782546613072976352695437044447949282222673938329485564655799213869267340667773598958057777214101310334415639781074240802069906878852858090057748466251269646235762933674262197203365994533710805948442949697711584640475104013606845973020654264033731760062549858610542980303801086218949684708908711487371738857278920160848173857139759816047316476854336327931060882626975067081255265517784800782458467650593695813410960538538389215918112052382589977346678006918140949560835365021226745814373077845995893038386377356979572672964470099967743036034634096781970222606939640334858138045458704690984295838435712937318885818543965944867307173023793547292888441877362929990215984926023351060138541281652489320279050084622408333022686482627153866608195236200485095240782737207162366990297526390880545040188931860188744857666296751958624767634787999526117529166287395928102522072939087392267833689584532584910543025565427783211160905601944163053901661116843176997344499463338790785516686789301269072619499740204383546808621264708258389520444940723385912427566430788821486403890811776024217548113311984956633806184655690589051022039974447441298045467742114268363712130803053226216593990040891037368362747138292942980201280517597329111682514199683807437694681739729518448761570099407430445237176458349717157579321232762638994155349810334342258274540172266976142483797963551748882743827062578733996573059962547900819367437520510158532788581487681760022478116519588652577780475206100752821662298675020816282018610764984407308073144905246480456536252934354927620867461485910583847413895323566912899101525939194321137591675411669495751587985262690072111605760360980671140259975789621298536114323849400372376936662322277010263600386509487859049681483493349570528405535700666318145298585045341628866430149026400860142608353385343268909713008024917357167374408402712512031081681919649432891015140571133924176644248439766017026658087926432657721470542404154925198923683515758201661003955253924868367580957655321993978760751799529267438283837760347278298500500537221896842048967034912577871361442299586959503351914588208336206009449759026739102578919834843771815361865289146039339125529711599876391607383563276980988957121183928707893568558611744040181707677872653611802058352913846374829765877023042639063470376732198337301885572515518845125723426178970439617868017408318198891102542256110201336129666686458484439181798159609982254738407847635857905737841481671958748984436468761976985668053043082525956364677049765770758466922668472673922593804019398158034466195060650811519324499510500169372939758024032820025530439575929243334188426314407343168514463898364187497204362940953646609223849987046840157238964623913712821811610872843729585645667360563641753420449928536278413409829974345741230055040916749042423204698292932241931436894583027987894323907111599648674279039298188499070757030070296168829926405842802741994748497366028930023981024114992742630526247905294479636976493592326645708198470546876317482587049086782130210516558550396260519387347856083362378036616031961501456797425980967444336884238664998278825723949605605779058083138776941982627846358861802821485234470462433599104281290554075384053920536126881913834396886518700311791822152762368010822354178701894837601957092168402004198153455417429656049843924558369553548956267791458507204445179734225513441791943602111808663171274730892477883791457308858040893867598013087345477641326440844246501925980994907709401322849179427905176031593534798888477838480234517664615552551068710435247246247285393850977089494061838896770552947824803188133573407497392817409445622336571710337904407104297897341603439809237779014189828252691407459790852366475682129595756569956060010107104916443031620275109105349662240102041291498797875564287342518259540192672200538936900581260532450470964949362728592735339876329247065663976695966192393735886482923935883211362617394072552330455863219245863117823813434612032197012001252339725649885904555989939491457922307364286876170451266209966581451143813634056964725174629047764618487708817288716126391300908003800682797605564622212377910441102886680300058832109038361198461066531029829961785911973107072562932809421944031906009018818745254127794512299754920377729788211209645060311976087806077043216749477637327662851331871881762387030162868521663233769679477146271142462841274376414596632688670647299069903970474601480405492717540244862602593808686023222086156819228567341783431117647525236552809556084542213831035994057475184912589877436192368868320917042762906166016442906904831124947982962930443871715522290261128123912481807821078024454549171658246038762132863222246759873309328542101596826523829588619122052621279970621692105424189104235592312370529402112493196562148188587612129888440350048014087670833560275286453525499265673244010190474514664811064515280005601953621895852409627355381015813410946980467482219154232599928242338441954778849066817641009072963031383709628470983953468491362584686888454927907241305575062944757625825096372274211800412414860907742465742138150642460740604732489118123859584790933493899341859716318667684122067975802473878781647442569133626130021977091440842440018301415846330116664907057638304919948004326138764594470777871509906699532633610798013090939445929345432429309269565840904982271523608390182315539375172888750219209555368806409016986645063419164473938985002594270302771300636290630571489171429075239637143104355275943963295629776263199993878138004523105115017267892216263647189687592696085925463267706874067478789944326976458620441870397906414215529888290412713971452152376003027198961203861940878892150783305359203078855680591783765168767485531396302663531098534519493982123004191815881384417351554396712101721153391721047112332388541575618708724203254236590658350554898633135132791730166470496636425232800117520179787575301882057561550186440779109641702317836356491725365823815170686006347258098355561487877478162475338752244075636649505217298025673010541261445317442614089183868809597582943623676029633733052037804647862506849791393875446409182930322372030372455663635482873351492446217291043978274853347335464416507190091312192327318964479721933361252903599705539040945113698361826596842403397839209405117023099092325117109366380215955214969615195538257827785137565210532190478101170164399968951780020479333325418731042502240171596750262287856363814038658415994435878769123384293364472944124501814962586820152286911132435776763005630737254481597039037509749233661522288614897103468381180541453980805812564777014423278020562189701737841094546716489118439606980035442081151789127787714140659790642432718593884323716136491826814080868769515209940862929155635377083257673412978630082036128330896182636311354124041478901273085991229242021424450930537451252262326143687171090779035864380892388618483595289734418773941760156495415695361400451295857154093963754355958639593688990660183861017597214048953943394523029907627788599570872478706085357443278865588901028861185439056808602487563564985921334563234872293341201669255698638028402982175059361879375263356816515360014603153989247049243052418202746299683376942033650027878898092407621737681535736187763507941317138777851031859088890837058093927740153473006143135848348834778482539523533968344181631176647258290405317861529632355672557709499258082234004152467294066424611541300369747815613906892944974963889230454772531989642886712035684816304667589823273793997455400536796919870590271555710917922454405269722157546097853946002074654957329606279618072447294554426385771271752854065205466458547096114814911784582609006206568884479101173093279058506663047877642106914229358825893880037234861188181933597941663426978771100321860045404397197297322452808033694814849545192022489058208341209132197954680773305641884022106613254394723461389316814231703898459768849216501368607175404745628259840504301159651999565028851600160098628329053559411891311180388522480071030933792763943672109470045814826935994367480613651130129943353427157690357719005910775883233148216604027328641202174500695553701348162124289552810094052210062164796330570090530481204531541085719883549354086481323299618623913873166331536290206304433393054171712932987650084726508006925047035228116471922239519650061429854844891131896180703870873863025093175742738269382587463344884222449074899502712293569158275978848286782128512287736803629792176345879016024397854936861690971347038775887227644021208910420831423117662400781750212044767081174380033103927554573616441653145753007844269123085604354735998332959417477457622806651101772763345703256161783793001300942261370578474287344181594223117617556617712704604194546620279312328302712586417428957259107792054179222842617431760510492230596903299166219372683698482116695263139358560398225418583334233244418034741001905629002041785415321748960603974080459889558164339453221401023946068593411873877938116851342095857954657390550641282091183923498185212921225887601909617165224458891469697140250747638034119146646719615574579802910124496685708706626185937384244144902069546092373524004808226149134890587015130181222678178458345439602817259630176855019201894570396671909668886951222653101402799528499433524350886568073108084804737985889980299762386504600501023098196467383800902511958670063840197125129611167918995967190342559230945205092117752686088999806415578812043762838374939414796011577082748025380148241245061793343530175040048261826349009702453709263789851175322681999287585908383945778154125485642496550685391334148789726557977731414884562835516023079526409944874285558838304677615684434776702009250889705268440945344167123443442930623499805097729621527612037936681047557246718300555863849525936298142081939527456561549866974508108530752348724918305741068073824158333453619537094585217729466420729992183038459209108439420496012792511086784106905598020514489713721592424298309473004878101268846835580034084251115411514746313355138292572694856436083486344058172632655079563857242584378254992011710919864840615572667030244706801500063964547486742404112246761385974507376136218215846607675810272689764680355082941098366939207831276620325748300344622038001541956049085287537301273186242634827433578205356748346618732315866237576593278046176963856492648603410809463529448375806407077399298945568065919323281308404828213525483832577273534011314841731042453759451064444697290393665862592772182558264568120813006193766865353265093806792906321968865807363331566503561199463113748492187371096840179821466294541598310691576009052382677069148143366513744850043000397096178234354409293089760111692008608372646948663187025756205524347608972928413350918633088874624036374533643944350842617061299839429615683386871775790660464156488728861206988850611624459272438728673196199109710471320200157079262731346554406542524052904442311003699126836581535485658081320970740559993617508181878334655796479289832574893294820840224728681342680220619449001783772178525797675617425995868001925435833994683196569503810928330705380409569748875669814513147013380204266181338633713889240492187665798701742959688978419628794215980765349985030320108881332639251654063645568593477643963058081588433081435300943569929216767133864757243520140284168073899196008071864027132596105127846262905859615021118104902718865179393718073003326862664578589608743007024952873956089944848178549697972832306568256520807051676019579079898701848285887263459932550360200409446806434556491384754454964882160904030032996530126801742432571811554194248305011706543793354149680582027153653703595789726742085112705582395421493228607211739490869934105150551060141210157101517059388528897993387428842413704551791723604037767941879149860991744993763088328627306344294830740025423180634999469670974307666461337307247142563457319507011154966587946098502566146153791451438870100905705049467174282456278254331837851764246895332952449910295268414510232790378648598305474282433477023028859432083857923013823943283863169004581079729955613150928745968613674689345065752100423506315616464600531931204935110471067185513729876192171573308618659414857916095739737426018586796835976216853887567463880650565495683087885510664939258267906044284449610424595722819926630911481027716135942713111177016642856803753575047387697921690524357462141036807988619907237733144143747014922651925002237390940746530389567726005346793269868807236799013052880922836284271084446046349431653162297711775979427102724390322528318305765734293039651142166063172977082998443042486101115202489661117276117370789149504149026640595960628527932314631695248563828780269151382414167807895556500404654718269373420149375701924500416093339051291562123797084736873344146248112865510933371665247086215915269652976781692529019650335247981642677187982414772463640768836550401095790015952964255714795896691787693891358533898208879207567464868754009776951142478609149051704385742433768616936566972402871799674638142680664226193240287262835136842657759616852938453747459488863964061758841067287893163685326282127835877333889868483219580573701550844720257040765486064476115866806142885456199207290555167089739055778823039132229835612928415954850353295802555511865972398568503415130969138391635896729605564072615737329651755490142557989782907515350722254033705603875197496210669863327514381409916335540706343328233922993580086855635939734076476357543596515835318497205109484450034999851742618184324271398714713790667294369334948603981298819270579748352087858835581426683631231100809305476605688034056777290174462599868102368185941941023357818705009380200380149840151866869927784620485122329050534806115058523665527210870423134023880763195089940465058915492558896970739730763448091900574420158471998051052791068620695732496823681803988578465990081441627826839048133013357285608385676765897144198048788045149769176993168778540118042470668511595266281316747087109879552805134144617512600897879618933960818174791384315431012873287262272497729440719815277471460396461502896018750197276449621500944243268037177751586497564065786097318883459822172119681532961467178561887156486138439426808299445238397147397667016290925967481963206831103748302529928645124213853211091582062345888192223240335197915322128898653666642942742263792937774773344359487475608754951419728806900934417922300290006361021402688204431902133964122238236704473409348637778056263183616705659961011955057158452150738383061087015720966659671325733816659427377155972815957532150186408876913303657187026256625816394166083412770251968120904788963190475877779096700863420178328391481811854150923144228850731891581858219750820962746690978580384951565459860790498959465815398449286750711630714501372803447462035355467992334515180179269816254965897828604171102240653399819282445570226821093498626123523683526337305895355401258276067775708453917131785422933763689551306692767649247690137170809254742346591917468996933619208288167677816259674813840132253923066046094986942643778517484273158681386461077335992056348580118340062972852075938078582929546769090644559203161740275976063856332995784757631935692766778260153757809950296356548208060144063202666306983620983393696771566625849494889885036232745796109069053674387325725269150289533039487109927586963252223812973071013189705960284827826669041260361681157261643453005329702508701847686234894978489651357483422979283221040075394883499649044573996584162297218104316329989724618152522489130539432112097765703215741694569519194971188319884554461245095066733532436501127167281680470390559999235936373899823319896093584951484780335646467074825528203892820768405262685590366146114075093039036064659811193787356361449008836053280378593911099010262201874406153894016418427886271460765968634677132514380296698937909322410855797300349553923585596647997574638343665594531849483873440106504424162916663842740304443834110176419840481555629955241052522992332414010186444797316603544414849170296050999131375390337473560334479642709957752336474373933655219321681157516223887589698303736950737793401389912226361299521548525226132355795947579969618147505319151091148501888375558516389653542174956429458480497770722324241952074524458782317838871635375235700077958931746360887702390663616397095041649138197613138327991265724868944694875027097215106289253476891491850657243821635779353698513549550024546248189219847054134968272787719555232197213801794246742356638252816175093636244446559972042836512586495304226540897694314865423550367524236637996448236142353397853810232381825171611164296056461989651976175308577484977126680460622035894061275669173843254080373886809996273667793268873379601196109208807781481827156126717579696208255529252122105428898174538070104925929611066869086001542149707450841734156513371395625102229580379549329197996380576988151544536114601679350593289254993965119919461499243184831163258544240048914072054527948210967356950692153941513597827622639308151329089901174234519578880694271441050866980849499300837280242808539252097341986881426773096391668508312768905963963109113770217945034968022347154034240888208160221211273304644698328714963334524380142968308935124686275714631901297192901225056521369150388813200120279917250468829529908010384794290161962141534433847671413083379834267895237013090464178500861905212636235268211386869261924184999962062176191838996021599368630866704663984579072221259239860737035535918025837119005169248184648699616341264435702205061630744822355775514961968604563506609545696131478006302137329138086352394073516647573221802045271260116333906052477589001982135617654867771945616402907963568347010952830378142853096961374759695566781062564259900715843582780283252270550160684522419724358671242558259714693545690698133587565075688247873756045873473864969156119599213919413288410476615835987365111013533312927910406276086828018130944043567522113867084189232054864517088726731742121598476412596475076298704949615076665734408621438058678740787871768988333728901305295857966890067207685978441901357984956054442182917920104490166874274259844866441680739560412281504213345814482366201842278268390623424983378851327015289405212607478980008661247003635871012293821975435236414617403720117462507929503537977359496368491024429279245447409704536794912960044992283483694029573365287757288952198067214447125170945327336236529569874659801008855336864684384152393665395586748918159850850841588459581267439774346136172812263990523514075235264458693797854523770095611822589665120240478627137904893039614152588543138213507384338325339686787099838199910030801141412187331277150321782953345442118652380472349339829624658978500864138897891782790101657049224844414716925426920622345907578210211825994255026888429953516943156505487337860141588967948886195554256785854872959278267378245980141072016325300239954084183969458915806477878819934770637343485792152836256795064175141461364406438779756235067557095549112155456956700270185336759840721212695483328526261256441870247279246894964543922462927954124592188272333448735614767989974682090421003424398626890666464072436780762545588455287121366522032252011883221948969805237169790073872481195386162016807564193845985407629747930939310735701806383772586515560226017924000677799213893049543615010489818779108335949124095536795885929162116782805191479399519557591853383649367726364412619388113499738226075656531774100022983260742399681881779200893866804516913235937193928179719744361987224522962037698887562898284007050284820218138392370497840336221670375874882804822466587441018324889789330507733961726127703147975004463747194765919947262110598795939396415866665905505718516101151401251391776997045361392636320402435500075275030671376541807952448278689806752150020628452866687355377223159710402831667447496297862541302944656572554336993849686245568512454338217089849010830949698839766899475102439891946177500438710684720079405569407254214286416514355328925380485668405300996724695522111107683253288556196264495336069445032117713790683333049915420692667748511316449467634522505223859405162528616268985633548333803318020221924319759426554949325203263630702904833529506834323057920379067554248054747830954733777363602879089920896208162450860567835970971409504142931466915780448925586925619230479512519255174656729400773835600634109377851397766279878796799054653086668797432528873851953190046965235280325865614669378278840778797345473336164779431528968564045021302456790651526869375154644113032305253802467855969131041443692246339927046126597667195632904234945699764374863015556192687434014526519515085845056929368382252839928555517643022177459357626835357214360643681068214787966537724945830907261163408954880899991633098724613884958625304756367548048285563916799592177126173886069683517315505751851037047373619135198333880820302222900830162692579246560263947204602045180212579842544280787381696924575803255368362282284782381457513291609744521681702370026376937341858504173368415471735995632477253002109220647103274987579942580436387749907233852049429719705899552120568560915951522211657321854895220464950701526086877865916866468764804738287522453882939735859944584362660756922953703999172952897417610183075496624705156994160950427727451615442938493167950571695431487883173884362540332243637675624567902290139524928143571330401427128516131313450882949273392850222409866787175225008358785777641131026314883096694462204891094941952524011050158960167172163474047119345966243312599440179586839636930980491966612149660714199110086402191380690160867342864790473408674950601868491221147144207657216890423085511233038836287284930764554030702484194634067552412022501880292288502384053313202547563842643183651902609380885088217268412413193027983186125090781832999006486613543092042901359542706996151292672275233603679928943415674096319364801097078855350957997163906221572366635754238803970108141995593125618547353622330246870175139744099940144540915003128840912907357346742333668127662933226170932311843940472605868294018282129802117686763743510423582076897889202190769287677863048092712434332230673405645492022044532189243644044122995330116254789718487903780831942362159302115494341803491327251831725034339520330017596152855052062928357408440434507364148373481867820848658846429670581509106401962720631781841231600781889276083971115788789087708653864571726302585966039309506340309125780187928902329700225582263215662486091984842557624488561151584738524608320986053811891852065260346359809743578654925540790100762336588440473616223849675110021570138060990578528750101293399730229856015741834828217675082728169595809307791320455736202921720399068275922155582515413597813235942204062961398628122836967894676450155601396194150049258784981402317362963793707512820029238828035671162904378356987786995103828216949742787305968515447119126915349650520434356937564637433947444731128868995300638863282975924475982939750268956871649699576448739512034359048622487016701851837640556097097185416873805832926624599104397588140675126047053984487415295819274902915393150573232820838084749641268880331914984748119329502146253641240234123009456127321727892205691516717412569320760845023024300314415425347695232525636442114746322681844608520591268174816113125954817219739221798652965014405027285167727977175270206272230052044669983901657585139077576133305140287281979474712555191971738906321257787251954467928836093816753531953634904660892888455195156238352888738148845311809890933368351068922653227485105823220979513470925473245301008057979213757182627985763432235491337588414652779083911439868894941714606794596012954522699153165278066231774940090463307662285451912121690459195505028853740380011232773365726900672740528809982280697572190996775827940953358949570604050094445167212664744023885880908013879240534613754328404913265115489777643288039499697691604985807179617044587273461830070544171087019856798671317212965977008200193085107580513662256817729767307285998907265416468325830558610817695169915859012638530915351797654875061884987103817930837389164661565130273641324205638632063143653851627654872976425147946014218459065130614477588301620104607161069920276308978933230791228071081166256766842455172349499760497742230153181169039023193035643588510793737025586034568774682408277913913013137732021979743956882011967762858925237698360467132031767878503522073066112745656984823116578386849029559522412338413313511825060396155275465528757795403388112300212337584366441730771776493614828266705512736799052582940995994048426887586493245469590629175027222788572104746007287071441275027841243185236782804384702815193200145304503251623839702361239215107348591806461836160393049504475658162488439247505317026835019385218309043193267426976759538249108171581667715468543188774781364027741358700714207498547273874220417025448936095647902015026640862747404882240171167593714579043312535611843588480109706031400454708717425074206266267067547889025111304861846260037933628665707125249207465570794847689849971096172267551809041506035077011738099450199424219717977534046978442230454670856700054280376623863435470048264080443506792622301373891706294550328858748305632672632535064240203924012564843667629382403871661167075500204490203282560635923365809736483415441315255639045519124322396420861555046779369462399525518061435029298722256162765159390331646882826837488184713398774609211451830539968303619307427233410087667932495390936489705503251047783241480015455600760116039497968074871631867572247224776297071631346597966963180654281071971204333831643384623824574169125250226870409137003427303091708479049387759113687794202530092769841104354043515558162580581381657145102789664440646908768970683800910751519259220489667430888823409722424314483110527460826022000801929661860256964248942689202473638892936242319432195116510966624641899741857141340250897135059193132401213719999935029774436569954873039261672205583817080688443805042426432067886846822478331920319345880023476404526115876085609001505375262937155729785369918085383781302099889941812055895532470930451521375418864712700609910313303936821640465254292033100046944925611509354802713225938524755657205594142408582753198528033402393768919485158275939989491723259343949796647628310160070055882892173467551393295834083308932738351990828575427137020719261213968475406216239829472819993847000965966005458041695117254074297359160000892541057332994673803585664937343267440728112079421136882943349677167324760548150350798249221933885502104339527402664302118825431748275422091946132961572318393879505896005730317017123365485777091511819313681405034005980299713003393763199626346929674829290339209383769479157389927824551333115977827492827249673984079386519702895617882193144260173669426641142521171776710583767928864111762347148245474576624440490506481839751579052803123457908812297797875510287221733288427581737887534418027121250934107817460574436765773320393610278608563768680442446593533706270024179966261550504764202579505282073096310794002894099214443852392663000577280882557568963310616085842187220617173290402137587325998378545984523143516848465314712814389789772246321722463670799430741275864214154396431616860960542290183365772410139222848119290812564085651360852477542002543726642382236495735798085526491762177535134249214423159336603876866145519842036668988055182380546723985054986516651912396082437564764597494050276430816001678769282624670379132482829032055288439591167623615448573980132996861488858078006920962247160542345179393095741100137203792590552204722563110249312430884817210051647435223410256121508468168032302543787669367293923054511432381950162289277145612013093630958164185673797005469615487630944894131976370736641494842565702626931491226948443338521317132150080550876294659252872583929796658113411756749018427551995188429581482891680552950131406197735522025365603154405587320572187864546828061771485629922627812300879121760754592057946437058566435017939914881340859669041171036860986942365334449338407932687168862938925963236199827695367482070865909010444262798601475373672411397297179000811130611255862781054381832088696402332659502160854134216088428567846584323957039880619535465601413901005041080254056973432190091445377945380265496806315372220633369013520180054995341649843979358406927191204835398435655588399501394129236807741156576027928760431477719035738701209700167724162703608808019477634510792114290600052261256080120451854436992256616828375452934639767193329069950060356330534007704739783960679888832996193953822262304816989647553052859909242116514396506999021190947766218392773498508142898430907061632633018522585661157540681251354251891905924642535143770254274250039731345525221883501749237485281542844637132301723644065303750792461310926295481825487592570399699046647105811364672921375907254004547334007567134587647364774945465666211774686790260897883753766951757158823730825303768397803759960277424524942697038637380419211389983361014549833462206751811868243982989147288925502041982831517564821614942246407973764397421649268222212970309571930494806436212867693869639042684519087987893227751059891157572970946494361334182133530223699300911245957826649042477831388793882598789892969266431367189060505241308549202957767926506832921987128976244812433475809144841640978067847166537644276044367848580211641681618374388350635443549207193776393344851527639540031313104091426194535454141772928250312549448498527564749232478208763321025087763284112685727962122258848557641337493471055861556709076684630165655191272922566777698233390135362930307263626565506034013151024180284925322042252155197099087625690251508551706670729064467556157345109369301951040686857033573340197267735450283104423099779445300743095652193486740265736990655645099895056174519268409343668562215887402471758479954332432636787533775256019050461157520489419063135853235677921411953420787428211031144018418855101753364068834520388707162123300716951809975157791938187468224362322303798095887718201402217612550994114214706334699129563980465988791004331558029575546716634090619365323799220398362813015632599553661611912700570488881269465183510989778905760453859423353938586286370282736130393307775334792045796320641972432770105642068784707933615721982584426084145268314245210169794397199339391583410843690141061672142009760994086678005973271388319463608423362253557071974895603076587031719947861623974597760220195366094178904945132422852575894779594489149339077554262339695659527781946417928733127840484205375401284748918058708317247960610663113920150379919586452163759465648433218898006836043032124425097808270767235534822085582000702908428322501160208732465508174601015816106309376257093215973729043575683896348173066986553438890203434654740309250112340920760809678202998005380599718882674365231258087371102705636283710477774702369144060692042480719355688798393138607211150044502054624275180592282591101504078941926374260001923240870262994601018932929565378597303165526473969603958757810353790840647787699526654985979197381152218140477349282602416512088803075830257226391751160650137364974231966648143003765120942162996246385981124818848037059079319346127076273272496424799733506570097407787075576488841358707209021988951049681945968610908502697715921321944791038302499072708215939351546598549878387210158260178204325480985664635526090113431034770678171855735185700839781264457516088576809112960057628030697119778311933521326803462999793865890432042742009568276987790799058615547069220787754416725878254190943891008265553136530123649212570239420523884219985037403701789762901066821091838579061488413476134235567501708147414060259186269080327596961709243116332966093607221008069472785540968910660869201147357591964618266796924980819732691189257524654156940609979100301403923637818094252121308940581468750339320030556584800061027369162534505251099110965853476708621926494678694454247566557740869356581928643653330307596765263592390461819038750658716001596275585365812320504166267435120829307348686494335545628767221944214253656570874968729003598727018599024410732786353584334214838235640627495204682401906077699185803056261334564194132129790961013474899373460612422952429856534919880171214635257045563720305964171324587163899824977244366022340903179236302200929112589986875950267439989515452819965657566990007309701383029882999912067510209468557952872209774076297778162970768978835665502589022717409003053347081553216329075803855988529348834741456747720071771650157122036883457065921874913072153115501084591785785092200236410209424102229211632992367894338772946060586527373231716168610351673268538077784400951425520973954307178107133856231252178679400911919681468230178067341451673471129173899758713846863849718534127259470737419856358580507577658107632840518364306679639459844365339685918755437454901687444525084865470240645255188907412745281716963980575382124044279671935535058330281732614024363435468500681712348430868547833331461973843093067809531904169094508815672212691111923084750171685334800733639786627855416269033199291519660872637342815235463737743400380453221001653886187700488560503755568530400107760460503736524055129760379131774857207936008331031528100501710333411158716452427947106025354171123873681052219952890950244241075278717477783062916875453639742580600737937870755931867635541686962866495754148077729400255313788209235573879379136155992187718971969601538844960461914103140387798940193333608212317905018540896858294163587335949544479214148999887158494049031538230280134670480048580315750806354524256196005009764125523993686258052936608970906597559622812907050094019107554629197666801440795214979424851603902758249380011270065965682959379907851150349140159604273179750281521979884344465536865142084128749908635774088940429684079082835426025172860794406591579679554345046607340688504900158069329285613489770394205603637420341222509124184720775102455446959255824906441832331843096409479324661957115025149112716925859275760139158698550301001394975636930326328125560748272634377973189612777191661783247278336450203201802156714664365867534596781711957942015878863794382464109063006867603207045382566578640172828653765789526831430010938526474833391037264495947349165113098731988022508925117573772368321332471856180946409966020554069367459595201636155440542459606594830223209644833768253043914106081918324601415448479836734179835798577063883399157010474543299127089583287893404081453991217017400253355167588096620758676164875632495116760353865866212358485064940498782012592042405455422820512396890972212201271061786202021407273745840932250991626958416263060484266322605741418476539671933108813049832875681609925707708171575365729773039987845103600470930280704673233686557028202742024272144408169673539420553202154962064853332337599556000291261509910732210563507885960932893451709793890844848073632199132619450535186139659902166699645713256646145506420681189849709109458477373971511913431119945479597473684966718504625758257423109156653665927972690308896699330525052185137887352716182647801031571665771374455531534159385276374732328931738024115096298313498740627395881064826197975510392623281736846559247873602815441718334446177507204147155081167609884433278056850353529735116077791686119920077006959650553446122828751712634937479896687683696440016950069613705161487983064200794568017564487908567045258359704512431218077941703413540603349547534969330941492410847542166032081008065973994762914760955265977588006039372943604647206488680265424647333077368233181184026066558983419920135224486603155414631721879782689399004604402979656423069750202048771203938842513059075322138291367873844265258822325463684164396601955826382471221446300733550999606544361454835161184415888204830902925275058238586982806101529047923296145243369449436843573671358681907525121941398562877922145498473022526362349586717747559423957862593844458753878277375802194252099168811033798686683425867582522020825551995643085132327370413820926142040442434822570775821770803675341959224714012056284937357873569939222425635000498271927327369421142468124163069956699723969652985962294074233606988172379821067328700525111661653305391087875713446577383188908368332987994734537087353252569731333691855406702251853852434942511887268107570191723966060236980758909563510112641412989342271951961562138372145270282948902731109419652473262939451426402328982335218705004081241792015940885571017777503358635836916977383808790293304393899732720947339893939728024640241564081546397416774828251768387078024363021807791904523064604595601445084071059898866243628211112040871104678684583896482281322250578314062305520035605547998498625949555505651847687713138055272200815586575572800803474903077456297311203470270177544854062587843666044800019404198922358558793235764725398454855231802220511429033361060986194443689044171569000812484807961874144947231911857854597791893686308990592768013316252325170268057555685372520907035044190346024529060798889654238107814349301421843171914346961622624180132240920681631317354892471622195819672262736424410303871049956592154638566873059493349540029129394501319725003303003525455812991299371630813656759646581418520190103679377048587746901020488662052948602328027218389153089597238587859726954104622753723593707426617070305299749671739280587904360315888787892738051407144440872800621657672722325186518716795438629092547856067180263157409247567476297569102779543684936690133412533457810631741447037214856002328077102229773511064869744131381125981413788984033425813428665481631899169940584852918032377776327995680820131545965047394931740493504461285160434716194061447095576040693633431795246480322190384632160597652572643813389015067018236488949890989018233078048204095247512241695171235153376183993713790872841077540627390300568468349524482829485250903528069425582260592694885806107007506690050295004544037004574753887651743371266035179785526875650199120041991655704923637245201320457609927147515127836360387938264916996104987623334922993506372373815704339344341273788486302890456656133406933532701553372886107096329461891784092101689961685866479012789212320636589257609142847438678379614889600949611047143245977491226330709566531565221152828215704919414650713459563998807683368227528469382986908917256151701549177089054168896307103544974069594323168178102864930384422646794585279849151580076764125039417802935642855955208743462204736105021699804795599862505710056030362091999774025487841547883597673422831608289584519479304552058568465496194322215653646041698028033217669365060072420277949148071271905611981331345433137415354692382217116140425333445616694144947550932166242593348136904329582242642648463851059104247403508211079460719223113640287045957885648186950799778361339165561205142559619741017394184087798013281216404774573434772514914456623752510841593608370206002257995900128215328774277864063947986831539040413065871418190872580723835744848641376149530818689240108842953790706875651212661770495761688702045510592943529178574728634882574299997866924540956608226821451117364380546832533060765055159578716553806354753869974995385802639158664083239779930608701027259485531849748640257084686426381251147518876471728609652381700030003036203849349895293950353898553033612402604183380584977090597485394482718375481362253249893668236958973128980654408519462901252600145274930930921899658578562504966468997726530810218100802286593907468717934345478428406266095121906449198546531083365295693632810651495762860811020771520768163215984102674494950355806347016924045478674283065281674149705789657038394495396539408484263480268430616742726919130117661669929097298726919539262549360622013613960740109253058526612070162617580784450819854991475996539936592143683895210286826753184365116926007328701801491846219663940975131916972681259325923722725262888287702114660027701728574196550453154619942802018717520475939881401911102156013151187162029209540297519257147348564006090349821721036226087425674067091806253014390346766706799799443305520235816311263790832282281182035481942233063517649854289807271478199250126553240945980971495810489648127868725360138091000612422445402897525693596729890540213112149913239970082588595536869950502925730884018076855657368288838407449399638879069424721142027409865708201756099394231163032461639077677084807549267023272356911473828168157841439146944757460337983634987071855591521714244580200965374668477839086826184870534230494677331108688866831305301844195231349563396628896910830213246679135661570972957356266968193474993124144384648230052959732140838576561200881835476198771332516349092793231510659718190575297355009144014841496739804974723139709206055285395959982108510587021939502168571640073562314697976410081645008975834835128546179998879696515890642405487237866535294112902936320588879573652557669044017572254955964457267860140731919278821651909982548779356770123855856291183730749998125546473869527933416960033449032794611374923797238720523814907878770475143729232874542979122294118984747014576857648205002867393855451887065883246481733515797724369368915203597701988571745328020670975968852853052331646057982952539338890876476487189923204463907236175764587806060186886196252275589886693276298362314779992455759645741942574199043870140471400171182140683757956670209693615190529248574598437041764952324971384524614994837997336904828042916902849373185094507257184378133188300348851386600175172123242079721043858527199557773686197688474388085443525124917444423599996853979213065621184515879848796012530833014073203216200745945570144221080367123729593948157371130891566125609563953824067164411068018250596644775107770971377817028908556647674755456869648553008202184398602691699925383194841465823921081077833300977522636289514906547447522641198860058836749482291960808229620908622304085138427261686020561430657772084177514506220824524371918390550881919338261691623570816874360056077651112154127056191363280643431062603034789080936643441083945605960145043505080110742480993126921780328783459870684096729123001264373125857525045928492440043835819409640526135189090280586870819044027163868486169073005462331441098122312447320755359031575321515491311844224095932479124225663887054383509280254354733492414616412870339242088849706509572441191040920263621867504353152741841363349800332738545692798601550661533917876546590555310645480537365795595990988677974256610726666395685963122023963198354396016430543044785540561535583970508875328441937064031433108083284379587690993989449662438444394058628770376428111252224493816028852533672501611767732539489633563212624625415372376629471085862693859277484911962236639297163326959714448438161351463634504528457694840683152402691303334022265258845250402282538211426267651869013983959347931373946927667392196791078269724895733718018185547894982963975658303952974652554821779634650468737395640734077939437441615298571770007274163604166100540108622505443540173390604483171003522812645815803179713956291002227077865118158889391994459967429823872570029724270435291980382680087078569528895101535976625010304680247225476781659760695341971043445760923216501040975562036756619267029505615107691778324988762724799530027620986521284517051678337744645190444513503595816663450221656301307775709820561321504411738408571890184441829759012063397533232100906010427874604022768890013170764698167243788507700253399967543650953732489129380312940121996867791316875980267238569325635496160051704267786167073436912241030991661668549849086765972191332993377985746989756104253422504522472601899722606694396456408941039481878990272564200587923100003271195924634394396952855880792225042119195926940764727516278749485689732476002416272957684778203982274653347038196250227592200868407659729963428343640007762702308797474118114439688819947870854811984025905464631916368745949321046944055573261614580895440410008924481149027352073144356175025075138009075492382559394878452759244663050149294439783645804008479347251500670416942114675480494911219816991807904518619058520529923969571959632047334919841312052849843170293771688834055449601461264270083424130834733920951778484540129121007033942903323151476932800838343939489770983362490677982974350553891834470594425884728845921058646666007998569727253516431951934144204849227276098598627822306863941270807607035715769913015701474996029065597664291122723185218245924090418729746376038751713266398032186660211100116101245296844882532453465596156350219785701886759158203663415163947675693075004592501988430681597402683974978502643222119464786680870145039015782564374554957466355312709497071349896560543757408073516701672171084419454012595222342530564780257202884425640398364013953282947137117381310458333549099437709577368694955424916084833057676382719264501926960638963497145164498146533730913455602878155770082531175360906227310596153808866176437179344917820443779918531769106647230052121090944791557427943461956826851561172637626558925176438602474034520721808077894584366817718734625305068474065884618503011990913785025737367560001162617136252140587361873726410758485068071349842765800964514358085160418178184934514503282790469891241849393908087974103914240543081842575254569059153296146918666499853028673180552482376534581239209703042176478722943714166309783632873479845308521820511284484732039351190898420751347295981453063597304901395795343230533697871886836398284381661638919196437951868272023605209252731695180558932861759658617221121208973383020158587918885563202437264344533458622898974058884581174588200460692524952727695389289989602919811559862042562027734142478368922597624561762497023346606363087336726296580263240192238351994415025465892176387250339244226753471483599310957672785406523679457070707000167984077308687181043052810478665118135315638802639531756221399492285004983911508818697585805465573190430308286881537740494740137489284755962659042495874628544332029317476004611982934059304586844297692284619385808687281134908873802358549845571677792361230811830587035272988444963231842017670370700969773615855561021176684247152567460638105132269769112617248496036605206566867353161025900458081807325174380569402172924586511265022724475782535950387147568636646314534874284420841760262049405513798906814376136975432660975845036675843029196196078893475467486547581550441818000595687708893960062015256068140793027718880677781836289756275921520798983190223064230378976225285899267291467252016585032067213419293394919312820074671403590571173438699645702806481977365554802314722006874033074125099017020402284673584998840017070068835873402079429121914718149817366406036232180084135547477285804144359274815909432857648824748130583915388649294928052029254634645069706654277267707135333014753763239465964826759210986774927852370717828082564068320465518304364314139870533914621217052825726557227563801990833916027994959326013998209916021131987758606772943172114731529432062902270521809603506419239303273542387979868270841116016204118255748581989936939570762195667436024564008411602560208361564238919804298199902965213491919849041519273833003773516567451729439999274777715860850141798572762006585933287032761190065595299971276623851543930484774847236992888001122267961103816689520848503204984110521283951719309063942432713608040522241550476901116291198453580635571316209351323964414349055472953126976148539429650385568805156404363127583016915681785673230391780772179854203439168452560535044378831547639698158237043192647419068816664545193401982099392537450531764278891375452850133602957681417306179396513536188323583518436700215894050367104827104309278283073728418996178211774815633009314182426440493330773877614563814687338504424159434247740745218149411708078794822596046285856916249315397912592652615790208806582243692036041162054531476664112327332806370944641614385323744455804285761971129087622399068590152541461216863970626005931604271309399961355776037986154187578105883245534844778048903976674043315943375160843109854823388612568183358366199662352426912271255180443978856755683613670549243965551077004533552424463711526217953712779618240857477148273924747373028114530665533042906026990071995575505012661385215593174013511658275080352211748055837369268965563546683189041030424227255059394455978215401593227541505475236722808202220872157671148678509892952428110272010572035797978940340891963171172856309865173731281673978125364852118749747483685578587825188850663932656219780765567762328087856451232228829753306055237280870793683168458332324481855052332021647592302044828971071446676341063851167506786026686001582825279423440568418323758784526201659005780797010642779528662302060209999688316239448113697347907566716996689404009155857358185718798824862245869853472818218214353104549625787236199915946876806743545910545718399914686102576674143461871366146224776577980719941758871701962181115676154198749630645273706288013931237127203406376997241591732110595920395352350052891112156102728596593924145091005475005166744016019071576005153495149858748929853106970873061899262493337728692331456939918587358671826234256103828443377597511185862825225907758717575781136261311387021030108678912238014575212214669653197323170437965831789251006265504476144847745219082700100304236135066131191509717930746307191085067171536293679932433848996113294118732111496377989028796352226105869184608213422263649176506191155406364117531590695947846387205121259219934221731250686166598645908995516631165749360860708065920554554697878530107402874242587883430646861806402522551652421865659542220347271339034522974043631964665170950355382135365928075532966174429605706453509582298389791779588820258931140162048178313776375378899402645938219630671997719190318063514715721052258080222386496105609897412576951755661044610853612370393054348621852503502230076664444569648642800113226179514752757619037962859917960753716081485201008979161486813537685581011454483884341477863614908714342400248143380640461845990891655669479774831778650624015770224013242892261159636113290961440419874062648798338483931064143812328624512833099112882948698808365116760758580282065352294169967712152311881244272982991631019207785937366705992809016370958939151414589123977341088973024867866571388901037575420142315558519447373178495591779602712623126031384440684877868270080926369878598770809728589411390986107676737447771427313503098569645727574611221522027861199648604467226403713961825411049129611786137091200977467519041485554621180663506409329385150295617466489215348405040232195183867229552791510631643726377647204713906876177301892422853305263829512845321585637996618110171228797030070227257633985004256977092067829077572761093781944217767943816724648707325334798831818405478698413129179407043121969889820576122549647895553584894540520287511573489725601473553892781308672353865184085577932852321586374966406575941920636761422767414333581564528589188771388539973823512839271758206983865333518149081330612193883935434904214905852526095309419910313322057876972103072658873268393932289525815947779616935567750417374677566603806258525232804162318430696851183184943561162481233332618705402520327932924905169553389224323295690226087727787130011928301725659773694480047497759446872138467121722763888191687376309206907579641622193035137673350356858590130936354560444755052910091222940827971648679635678385372038985132098129428069011241208523469338083082901241245026412661669096814063710752278266155976274376099803095141852267927092588101927646489548469637265482141820421569548692147860921129363873096207012646609463779198315883654397327128650499673118563422406729330355681548995456308513653167813647821108548238844722000595462237009554130273116115250772748490646522444820659266838628902079241865998739007770711159707998711389325814582761846592230782102287395678928543979745652292711351523527480639159287794424567282001186732402096307297687710955567441816193842147371152273473692706056981608880706256658978837343873863854769714516735858087189650167895300004044754859433070818465878110713253710650284749790793463180505997391986107392656665171249657668705076480228872370501538811044752521322802582117974937617942251866483236092369967809230350942931494220637164439373755777236348863430309662491390338411621627743877846985176812559536258915486928789603610848799108307741977721209777084224577850695590030954097987049566567022650745504462431600976140465862975585384719253018846576409282455772476290520847017841932743077692485970574517181882825201007693943548461008840428043403184732698470364914314199360283762118500649276421196886058434165971968209006373855770546081660004720449495869639450248441095074722989476774305576920771650621499630880732268775659236755805970324205809240825317544573021274777552046165897997049036063961736108060036071851296976998361250944897845736427311157785161781356495307332689017274981084070847513400259686915852995670272812579523286625436375441468181471624510991195647989722960055926220474122699172981075433417748277304663597871605668718853969869453367304573320217823474242783716930790127693805897140228676569391645386464884619736246117616467654606534782704388334682541054976180355222720945131306287784154996232287777794364143349933528950715357225823815590160371714175046657261448657375485206342195630166423626398867742438127963835367816525136810641541408463156718736700777455738621769820367779440225593219099192227570676903015363862992336695387429743119265067160146162826029567192469471690048653240638557143700920759381403634045349126747242325476559792977211595292924992240009912245330677472242316815329373608912761112656345557919723838020898612440850295282216599362758434641827542976805283489874931172097677732274096364659595890285230587475698513829980159592087725014947849415607607927831141736432635721432715024854052932408806951582406578849218358583009379165088288558590830705780450935617382877152336087561944093107146515001198567703415677404785670343847359231720723056481143771045151475562289868588992290165422406022988128792786828703637697946441685620683263259994128955232870411008455441204003431812614352860334241451317432031594858284431743554933320926741831228054180583690009980109214934312836094742134691188608111431729970034324044578297066636214744346185774944108136998777651328599872571728279821264372671840637034055047888859848609515594815917525617478592716357475936868098254255687872084264914174088298539276287643948211615506209422327412215050934178086036472563172951103541520677917591816608395145474231221864710476968351155716707879645144695202858017466653166709994716301698017927539933877524492853067222973981122950602440717181667028337145575594619583283386954128694270920133107993599797865951748609009690537192380449375879578389361405020786940361709788512724757191054278771052571700662011700284118927145827128013831109115133315977517357100390654283434479298445685872424222014057516688150161482740583506368008303172208180147022830227668485915828037650141536393334347414994658005657869172717061057146992800637025075750250046217444974713031711833398250984830604081887038772738439930441775355741850374403058817273139951429213090212693559063107485351148012169540167981428223470614994317935432288524558863584828842336241351351545755074477938256953495597338101244764549084828594724292914959557517713473650806583756900803791828085757338731252689094319762977947552371925188629517229253261700694582044205699601674994683836075989930199842830727190556807463610098535427856502584884365250008120050395229879149004291053105332052439193819071792927869457219604204655951384237678327282504552331856999300455996179965512894243464549427460800091121030954645375475512213083410800290334666004545340279304830288585140366082670980287140274546657731941973130521378201131588359344816779935958148453524996173787219490632808423227754741917628171818642437021369518157321433300090695695733953953585812433140458993545949020631110532636308186314417064999932692981165027468448021699871209541307762351312328720683535689434449143429519785145031914185736887978383598415740392548607414585770304455570487946168369560579845324452362875584866832331601516094824743156990030464391358966963833497400254701052148034939402326622597163772749774563401120218323098040702696273107165593204997906290997197602905012764165337404624496548357483860967836366230204244932509739518126818539101126491242620312094752375731321177907083276218195728278219436582238221450057553609980616259493674182949717008235992060223259504430469441123048935270250673566904986117941084276290964599969643089608366576432440964552628603644967691020589244924956110670339496276116716559306164313140631419907319645518290572257950349437251560895370536925670147782324737153551595592671876478575429912200303176899627549187594713978301274006855960360198280552570856334510303459455508176369364272605440612354170059422549861761736689606584564420188347331895065875560401003016927333071124756809545817604984695109993845348695547513211808826160785178982532915738298235637635874729897293840836714805497807702182511926804092809109328651632798641380986779337796275042169631458864835885817026898213313429833138512699520722530114420537355108249850956008438945319682475499458554060328469908845277671539756330967552549557638855686905818070605305386133325304754065360273894963076520805164359195529494566932518516467217841423172123345991916477040337989771976026549466593037525161777512941431564376025494137564440553132073542017203052030973762600906342043460914398169038695363096009936059041442802366873328616760811165950440755375008971255645221429732146296260627961636028972012704410201243336769371964673561170461814035788392875471948676998270678845986625511439464700027802659132392280962126378289868415752141362027413816363663415078342854599227234644453918942683075320951059025740788803145120778675490129675905624139322929970929130132525253617261445284665138656297114184383725894883493591993016245702924560865587096431738839028909236421634583419949027989403922509937967274737112386556781162086106078210556064710737049941541670075777668469095558198465118758126719515262354784719374672375281663898962194179747518666231486322959471861310268485841381988414054207686508112523189092041845772816311738653853435885148556446165644535929361962879698548744006130204474306765945520989888661180482618374713634366303025462288334598011102315743091994738956710634744412940573851592721744727853361718273686721279939496189528681731496621010917165783024968552109446314775156434188364628246805447219132144262086447246536966766195891487117423668290135332927197731204985511239451020174758090221269974253447490733727206583085286161503651716700682904715911453466228367866800691003577084739720878710237199584433712072951426730862515894550106594283121735660296579210821674027149199935677423092826238282305453005059435379569153426893978777217896471090670915517418009669442286882386257460841324488325243039653117929457332742997997056227722506069471156530949575369961261119800741147452442047222404277624210474675517574664708428825386805322239042247118956510960097779103970033145794243730531225078818621438018719859525750931842640961221087866420052411720387716872130680630286814312461144469872646888318780057631734114527844118421241403345744457724808921794561993114457891926396175602856117538866219568451223904257941875676810539896073934795722643263676947207909560385244440281256212272390849617028430436840911767945756013685153902127311102477621230174103135933453820135950616386736297672621360282461167877460956373600260066593731873620735902412011994857183669372159970525726377888472491932482751911576136249763764042674444113271140639657384857406436272210004241433485101184242491998932146751887044519462038017812685278207154478821726623437198269872259784081894132403821630814345353969913631542418448812349849506002166324744256285466992620483708016394607688746073844825796710954768521889043674064868621894937629140839393504783526123354649526176284556558969367921376486331526606546235091785899797967781788434489777112443733588204918841684167681141711068454867938091004811579527757984258887679050298724962547522486168246207977558384897405855573553924527394308393164843037800098597170370708023381651724978160589551667408725614773020251456803128897855205626384776157335628618558842879491295034844991503165897944795438310571043370309279635951253548283797522561947763694786542153930685224143970772209269357653864379818400275538340394620071265443417173954672194215895779596105967755031343690401698172870601687174134855197485483890829511799728431084561590567073352816703824237831596707654811063757171549704871811480200750398149253910949107009100448880054929433744884065002242560327647404624685990036269719480007170239537743754321332978058232524393539902231643979166269843832910933473146450009376611694161152353200277316654184477257056118872651123146086009642026921265086280047235026334985969241248323362442195225490390304741816186639395010336260388153244434953209284964807118932061194567604579373826282607524307142546635933019860842583794024312186009972154849701772097530923091379786975787124698974889988601516488919462680202274317469961984828243785457767593094417578799590885208149549711599402945260570881875078059265703270285186568818110238224132935137360347256712983333094409201647995903594370847805780292755591806486368060696927289661180453542476391065194634842100160355783773848393888734956104430640012393280794227136552619040762382890585259256112874280849400325068326398508243059823323827125943423156506602008198952372385615151728464286063929648224367363538846095926684491458954024503502501683425149324114367139752700691595496849777205962763693692620943624199498151276861656603619304137907956856402120727654718379783271861119413690765553410679052830128596967537684464851400734121300321662470793231688247449327524301304774442537788058657985748203023775688462628890185871036690303031490330564325461487846019629968053210687935226317372670521034520831353259219966006585621258826962295333581161143922429083842105832605421292970922197570716952493758305506967186070612643156723178155413147505913957565596229440310891510187336076573633481870495497060625435401682114521779498041791930984499325919676923039106927902299852958543944842224663376461293960562632911772351112428857113391557996487089255648995700103830710975217745768997109308724404383910440646222502279737959802398680389204985998715227758071235796062544171553315846534523296951029687358815935393531189433646446851993209664225169677887085619064197519468893970894562370930404222024608163913647473860281450664964003647737985333948803749260899574965466085862089363542043992035672082575616102505321022916338096959511549887075379529662661736663474593639895627822101054598023562466518539921531936861137493643381176559583795353595098986809130552928076331648268991039254855085399378006720414609221369887543638866738979742763952111233233402958097706068173724728879335518961882099429782377935422386545690506403674294971765302198696881260542490959813481674071970826777025097295947807813446098055527562395116033034758238520717373244502835807011245944526321013171323233039396751093159518432536088186118111857308426676592774779043273295459651585694832426191224408200146875118773741166740152964268114284860910481189729486237307731369792214357511036364919790776474112920142441454216349780430006748617915847916221919076765621834886731309418762666893383571427544535699758582188354665827867120461940234926600916666775589438699573237378486682154297473964594064503903451524794281333165057005545825404878732763693722175053003176367403154162294372413542961791533731651722955442764725733173866075353013745398504482734170057174090607837874709536638897437531148668264410665090053482993522553315424919946848787486436343713281985303923118581039777195602654619548554432635198749841950196262365258283830462674154299380531365412413642538456123823718260116516338097773212557206769432148909271504164978020722949458399822316613520382137198209369986188941940690010174394524816601853635466887051603369307479161087968046992713884700276990205724435979016731076326322307508209337555356467166925541698020089704471263165832219604793853416835803907149168066740018332738110017329431395557037881948659673144638099530686696900179100341942762746935509162500174296000377260344023343639782629127865130932938148688373236080251389347612432036027705404074481127322852081828903371780072341252486483000563551125221896159248762256528280586689693237981554599159899659506619621544496947620268863784979829611817965655400680457111045837495648082315461162518617903946749346237524757589976815868190875580798146049971779924595301765823025722111410421992371768935400759792342237821124500358357625921140693019597387475659530338098797912377860732523283513523493846176379489475868086951621523844798028649342626147143936494598512095205076190512761370131338231612081250687898416809575589816940033755409081955486697090671155649342855741990236083876088059118261888363219572909367491170370388061004276149312664371330286738447782400540866925288367822151812825145747908312867542141873674595635170907074892110563918613142249580619016785487327301611944556322321999426986736148055078958063763321388404811975330275586660775737412432359276717329159144231206462291605670692016050482457115043215358070226546328708629289039250237762796123432605320716534448352530751457321579385667515842837118391954074751515304022647740833640199086619552359425851841596808625169057265457693881467878202295402557805805180293520200129216746384698438339158293084228582761427193924152413284144240618052595602634847830266171162683980051607665827589305808410755559147015483126971031762312670542934242609191927229221852558636755797477710950095862506095432106207574326332753276555521028303241693665764669967546770231987484141849314600086038716569156491933690918059996871708765867965051755536653111611743530497037999939178145483713325533080694377567150453498407798052899804455270982819493694570180443825165549004607773000326274379975462527527279747075532581812504455490797915521253645626824682192665297831454553803747351989603932786092757340175010405197285025353142506693349740903510675383658843225352187955262815227457858777908649651529925561985655249455429988595113688288393022123739353229588122203898540554363442848848996828121815364211070731671181379661590194067391614475288184612226944699049216619311377843043220250846267635304504860841305623181356995901940914789349578396389437062466594405611213790109700427146126606568255138245074707364787183177234192061959661391987917367019082679934660724864160735488490177184532159751232459211098706147467747368684438360142094665863025802896483815916607186575846791872268897875019387464221817415637796377456971859790570446783264791755759763382269963353677091770270923578422722486527001108915151893651906502113698225973831770856555924320969803819966921643115511102893026810606561695410516589086594640139676459328073837770920872863515946293920281228706779346488457644487023210472845055904499871830270198953379439549402235373651570796939608227451579369997758243478279938794425000185000480938949244696059210153358286541537654873388774073331191410629440721087222460200035251807330740161659537434174789521888876516433985310701471330574053412914846604182237583309131203063373930226790445303819245542948508866516823539286951793388490445244099716056719077362777292549589886197406537303328986224600072458049682798642088482233709779558244802383232321338754250688276563671098245619495854184355206369594760559492377752133592001643878258797232604041794890020658250415397851032543943981069313561472052730974708821079276750614261859692001684466874891267620185193576998651134643754756011490014942566758825649350817369920913559182706040045597624930784982324940460924388637681781728549776959498055914788404647033423607552884736288765883464601430713953076422033146867275544438390726657534154706535061486339851736248744064989671427132531257172649545355686146519988654708788822398169407114317338883748788338103716737948531074205527314510961266682911836888825240184424039269926755315581300712645563244800036890309632830142999275012729235137201909495436444024690859043212956061562851849282425987358856398285374722099295405829156055959982390069760570242186698904159166465397303816729451170951099107253021815914885377216395166011077951202586958070972060566154823889424701581433621646534853681271891815107105650662981001535287419191158500524446070785002640142490805726508067970777009113237722592246489051443413816306678931009662998143589883335464330328726154743482489705401118163870945043805382843189077183863350167142536646873124493216109806658952771757444153484149326804739652914276558404407806727106030149913308566461565644857582220864459558163535703130969129963099596243626830078766643611329615824929230745342378553155105830795006454540841453279385021451660271194023851015300334932898192369339464091881067931391327337271732716143418525333150589379546727144045096895645877829772872065086401344993284057945813983557491979270277874312990028831932483578361195347181167452040348170938273893551853193718484620534896494965784655890807128707126767449316127191402757954679782805943442929579722348991080443278741459986580851215149067239840485762208773602255378095895292632545679333555862385895653347992535976571443064057716179786579715003056861159278982007673135442835808417713322368440683744941696401022285913428945253741779761962573498676965266001989685117067801727400165583912502120466860953108828567564057806055335308992796833246030601554584396111262490097052047714214830132034857076141668707275376026991769226151843289680856838881712926533966398392638447575949327559123392186618672924535186303102171062852210890576867592762723785600753848159192906926722775007282495185730056595381176449770283378308778909962101693422631864740808445697928022430859985668625058814341305028872168972578423056976899556330089611805136778855951487773739621273694147508805834016427233756731989112972522239993144958417619540205739080665446455502410145010448968578127865091437041822868745401035092318478448185225318032976616350410084829828309080586807729374313782792162992791631410054581613280204832659779745662196432108117919650903265339571208832960491989990942246692460784021456555635154976230386876254159526596987578155534248733905599015683156084499630820116866172280540479711892465191993810539732416056458368781129680750286018462242330760810576800347176756437472623980030930448302848568978730982374085616065360752430643475551823344189174026757908917397359329599653925868405008084103468023432317271870335326158977046788222280247212938431230172344069230148794645494326372204861736928206686144762404338018870223927182860816737699198121386913675841322391126153745946750732834281899976170931228879298703738731691740521954512492085331900767109635570173837769197067775116886685138006259326117943545541738501092529532443832686508588177086476138363932562160447676862004497733277382394541570983561094100341080723689727508117521460854305250503993396264494710088877332328224176771078497491599783859065525733387586023747613310591429079718972910567817739185788694209906355973550608220922348248580822483525824248492604392980204817426066879934094120587250141504482465819690643033143286217661718757057807682501269742658523313402749843180287613491023856037131886270398105681993919658294627854879597097525312692666807338038872373305114024953564143069568334199309694802958563844018012696322851820478925505817696965447929537054385190733201778208672112784271679088613552350591156109913294280339138579197953051123704971204275276608989238997267163899441383110899457204253203842631082386460269550693110628515691509385676400987007922833239652597600159593983552588996954621818249766105823216448419118750438482785888591530614891020743034605221597036702939913737338966215718530935501171099399495496028091583258711952825089207314946451335363657515686018277488806921171007006884639817783097188344420901433106195047735393549157876844929953291666438854777449398636974079468390618383922969008556106749896946243758726162130461631710354869190821912755292555249033229692942119441922099506452698181127668170892699176000933812268501774520133260517497591900062247988541368754398253804582507377267407549491630465115198876127177762254034358904885785242100911679037634288323870742728748422008128827346638596984694118188858626472178497693788587275965478011359528761963565312482631155215036182032956382905122404745280566275402986733755911244411299404324310815006926490416516338268026423235395018208683598934523295723714733602817045725144250619075682304787563726710302134397077400068220904340704268674628961723626372209222245945510914829987856228303414750656120506708480263173939660574043160312910901036863692585903375859399021470873448644425590300335444207359609231949111489605110541756995741001449748457267255157511917926953308110643489398110347843707714473820895332507611194622109683116346852303084958054191313090027812037732948813694270127343767779482597564933090984503648725833326611940396984532429809185842483863915171956955941135316314858880342122415259297107396251491103305602896699422439762769299806018927646628656609467619421623641764653954214185215629173978342414449868566339699964555435895301690382627638300570967157056119633177310317035385903752804055203022651983324110505167084792671081344003551075628172914501473976430825155223930002822467471099924718899160893305286842018186923147802861504955604478311126440614023154529514680562290732031224577444550219259142268643972782729453578054599762632380201793183482515244631643400485776004954390834344508067361726825825552755837862357380192412772135945834749594219138507978043118538482622841359935414457004915670266477248768641223347627697321541780330518559618574550730289958211542689478619096102100717223980581866431792362917332021495950520843017641956004381556994800277202711253299890410286736211466071840812554122411539876239001942510625776206725780301753111822632270692017025548114807668630533581162998783498485547096138783674453848368969134035726414410712982403907445279638958322075695571317493955576610693074226527083170146703339965954107787239200483715227046431519654684528266740777080196574320580281501797591236464423143427233848511622781901583618296950531375069609188337626163415511565432404614491536234973084856743878447769174824900000057320427149080996693556109866432929475608667600405163275678723513652778815339155792979858592390806396738467633310208166149358932321645119953247106693408861943686959028500641235012519372027542672533690467459260566380994826095831891669061376478038505293470945952257126128618811150478213539519318635199785457149058382744228968764142944513735094970801306027999954634622278686881454465858389349729833841252711855228358584303226095045007887336631535843059184905816018087249990120288521900832338346307605450259126514008853787632779969590487520468150279183925604885333845577705349466766161370537323077802694598586451115851432729070606620236971282519628305305902325573661277063504560012071367371861336110668191457512136329789994828175046374266932423620647191902373574776530377115143792540372397627151605230604899137059610473974942501362361710948797555422316212448049833757907515246557897044656677589905713601324978832683051978469380147960626795067016016406764321427177488548478960468605905292210468828511210023838708449000847590030285776641846309426323992709868441561183407617825613483766697491099187071057999196151074396731861300632553543247457048597207429662370198040362197619049222181673483287368391145160109239157559521938670206707739310758955795864755656422838715455591348950816489299208306097145279571320464236628185280494031970764573577432159941524585537190732024961004108024334446450967408254828721701398482485634667761240223052225241668791367371358792411293520445507078680606681495346210313318829305739658527063741997979466378668429210256662058744616115287915422339039866408092130822988948231347343711156956176242501473383544382712359413938326238468199619529642042147465612729627122216045133069078428569192177705352060151554131312486337290331835917536979985546271294724698144725193328920683184121453765786259582610870951056627887863211641345212282640889350854542135794488286098750698982941934686821030674751293462061727886250184965262032914223792654533978427033422596173850874957768606851074809576506507552265508311188969544607703190742789591663976045141928152030821065441267633854681775096124315745464309378902970393752120974738561256092709313170986691831888873884147715049127354293288721395658699436397172682038192390367111715129286505124334376983032981111851215541170449871947172616291130464500425020771802453993751267473641465734058983111876718275697996602388205435541267197084419514582317217652265994964663151698376809508013486820340429836148887032264674862821803422081649466548231519726850985891410575951124565395386243959276491935997728516658799752821518568793884966576913515830189484814062275521662341788624904384701092527917112815413253635714209263261933788032156371236960542736083330821486253844875352691241659706564501589474851975735491923138793652177783926451612091350409840012676189125098171636084322138883393588917099668680475897369104115605338926649010230410591277809002237990524106131938927745821912906651964949148252285175274780793573197940899035084567000064901177635509458989956232924937127326545351816737217353857661582783476216929524459352842308513489194325886359868185935009116759585116039118007474416760338456173816804993967810967979825679027439854100945050131578759078397237156453367108243042236001326282552793329934342531314393832201734570743402744305853034662703649308280684640276925673898948588608057143436556409423656760405460758042908469363198047550514413857177643877968252423349678666157423448962678211356559146522831968148285344607316866832418209091517697565208671651170317047975066021189409955257238642814465256798415367384048236621991372420599617475210373467525381678991501937529391662814981303071229688984245038382131459917531823569525072338719817349926507238417861446978842302805657866389380287581300316826185894151635641893259952987929248497627994515893293309659160567101515240883856873092736097542851303743664801434237424197021527204862098143998521506977887876627131373497116307050281957248613820507449457004390581297834052561912510104290573912073936579072461530956357655709865833506835012350771635550133149839970283450736163841094647975258637940004557566919749370676859578405243767578033213475603412778553535993372405002476723558521478210320363863555064735727828183183496047104455347316280725318382519200547767443473947994200798562125848147063482766911805261737872435678029888310717940440489229876735100476900884573691902964782536519880567944268691855708115858753128792459060633616809588066019059014284072661595311241823617719637685339936464061683210378369504314363188067862012574815032381721497440701312587031773419039193571650261739100447384470232629050185878062096825573837985460604271875153266056644260202464912603683524310043881002392119619576728038219797087642671111432488064770252725832104828277920450112552166650886998314063498720886607695148288801897129057368474298107483028643711299731377427338772850584999058085151698715867427909566123820501052283588876145580223834174848787670681784784869580526508149944444915650556068916896568268575886604019785218460229679152575671278153354737678975421402584059696422882569934843708155360545802764222715211709597456586885645717581155536083045141435433145394309336189624431630761050461598496695873760121220965111219698677086391578564830214032674172996704264458909241422130585304854821217786832223150249564867826691386777972707029755016885724051286859218140390323051630100668024931432671192097188222763430896712728295235997602285188609666300253470344026948266447855144299964920572188960861127388010913111043538356759073905037717335326702281253282343105995895762742947139330892552551728297547286928145701206449442906604659101131135985468265123709497949857906370291439223822519776872332084802282579205432540363983456719571171636174554252011396079629265213401205681729921161175369527075799435808074265257587869987712561001890861424067579822285416516635032800523514798402214096329740314784522691277711281934476786479412956684933059669004132004327209978606359567019077801839647055194848027620382914137757220533475210791494060012572235299565722223331777902468654634716905854057990812495538788172355793720169829462183743867247203273295321379142398771944159393242889846366795439294884397250920361839471982428233996676982691622304264414642319779577555018079312576540592627450540818185435332768859006988745580497829049188564422794356387298720946067638666895115207617083916244941060667570253260477446522007365841324782708341098724166561226774846791375083557761250599512839804814549995042305147318084978438522486265827712203843534902419602994244328323853102241329180631422863046575991611306412860753387339190356369932591125198596416519166538812675433809201547429556086184498332493669368645462182259268725534063684438446982490088465668810711670007320415433009950255071611212187023674119998110178732802406019436128803243796431813271596989806631234315403949181989640646176385986646724264151611428452177833175795788071825076197670119250045148482135041468337177078494406385868368699087111019995825038277041421074540700224304734560041986298942035875827075767514530652196062874648258983723326707112891048138701624086381292845124170827345342440294245404904143146233253516046453486185255370372024353102157215670837121835200200909442089277631695334860912451567049565093093422992313598926484205219443479804282147491026112754527677030734742851105327619201624383193459506666029337613165848899026628071384391656653092783623589629403323172560035665963579897449256867235962230702589474874965007129454279619526270288705171849162248992240630046607645648464197617312870785297398402142554503102203023557930614743817565797832248465993474628538620814716921807309487984580284142571935267543761725192716730635177612066406797852707392958599557053952667220870975624350243049001149918731353609360567530317577724151282801423134270791883298682402463824932946508376568974789880857100673665454498368472900139926677630346107413369206568024072118297723645315374991395343332937488455545922686572085848870308497053474035797396346328042670543417612414367676110895694068544068711749603331336259154854609010710789664046349799200427032054286422404811703864106799711958504125506608592907363758490061130098218089538227218317240755819760435737219674094760215245349925773151850370134371993437598390390525677226606258037228049900244369432998770563746052301322856757263607413515479179996301243084109620745402811804546636547433196093738433980950115124825098234782987815161415825541723886503646892376634225478653715690760082833362868062445715844135006947962271481423662674656772282478226347782769933235362378895608271844087426441781928289412398454359496977691149324555023353688365454027629674298090647250047559467443571170321262427933910332129783519017071212020232351542797018386202503003397770610475051896107586315382873944979726292339669599276658367093261030154581674559798068452847618354227666432985437680087708516405757111921931375891000969659184648293328155251211374750256959484571604124182146486513282312108593477282192753868104764271047156384432876126012717021518538064271818219731400160036651152570097582845672298709309522020982553386353049860859523305070521397779245551904003514421593612667367365038331714353998143391166326120613038172639791484982311578339478169850390587656113365141262359689827145075451746555270873633122516337838140268348731025530963428038105531469761325634165945979726665500050656743616425850681941152624560331148704472244962474396991365995875153355285430665274610360835465770588748245699404130127976448167819304242064686271077033510345024954305295395003466892342790160879961328582827078351460722276061937246343331462659291073622687970891816699639171982119927646021371810161448851700234353386064159328808988769110270786719656573751518611066604512016151169641427935140802090511682896015865139718663537396377375906752105328286977937730402817118987531762455190985556156956057949229760907833057002248294301658261417404973740559144727224295362865907297701867899001077923858286847449119341305355334766380893137822002781434648632989153086823792772417577844707409695290056062286125640182363789565394165494674210341580269861970824777072045777946098184477191138457854827001688467386967906808402414130663019797302485180890828533366293188380138446140206201968386524930121841413294806112485802052208104037177393977103323978960409902475734111428783201097274637584617890170687224236128252932482883643551275612571373439717273573681518190567904863722012385770719104658741516523601010331521714575697504248232217314996102096471054887672760956835488390498493855418280206635971664264209093817331210611069286747549611354898245807760136922803194390487994730737423453064894969664746491224057846468339372323899519560009979227336541218088846009784559626280779146269440795392105616364474024239137789012921924440394728429929475341691839658043843911589245292912786545880733282344586413640307627266957745568272808528548668680101283429751535471487639997673774469174438355258413763201164251279379942839163574882715374335514101137518874809285488055885500438033070389883344149735860402152425094632192030599737311622854211093122364260666864162639951331977223241130560103146803745863367414190327742043392968868976535135131217679631832275083674449152467317329768925703573396248738257926115722901548610462504100283564742102147329809861299793315732062752761151550336877325844815369407632467256862049042621916830776019697326929093607302807920038628456596077823895422884330803769496730808628084316124861083617238850187822504934015035466601694121655035779249327977071093651970834825867822497669717822391278532254985866131466419361413945882399205525560132716697651129634238929163315161092274068762217794326330955414579185499646620419920990106693915908810685152802508320593130519164100864684786305101674399569789879976969103562174749021180841094402423777044804819604108973079026634806903098461905203726486982034560491362179175541956002308749049431573894020580289701584256058811048909828250404918682981217668658211793705036379110796797925301427214657849158513907683799492938927641134675293612912298364343887639707708110248374327410031953563182320884987365057087730955211022782338066247107892060465096701794211993555609071912950355881008405949951909962564908015952979413393657107573436059732652387500583129526447635503850738121939283177065032751439149569208289991285196041827878000921544943267668339672846829493584686799981357473129262403192285543839398280161839875557947239392017952521959344927758748744786337661765368835756374413991737253019790234315459238536243232053848380196062536964197473037400891393437379877668874287772003136885385779056786612878747939267312195733944389355157944875232301488030175222206233726966864078901330936933862875215805709990971300424087410097792300955709277700683567427085319528493745940313553717367445915114222084364166426630990905588724553812301223506025405757103910511769428359547158362215010073054455349597213355737288319201876735419012719394760480111052924495547873647084647271200274740387740045532931157895830240199069711431430508102881023482095632551941235552101043004376181452221376835864815616861722889453122082467722066131200052516156236478694795176728249472970934423402456773807777397798381851878289172320766359110684816704021238844240271919859807360395570526846792808003228830965904025585092312841543827894108808620189605713372867109416358731523249447110932859042021583976905648235860899957082476107597823812438929652931901820653270479487709273766087381587578965417426184812665042061655307705506221395415938696379081417915915832193110921317529008877043504942293207337092108039680355800388892102989628424904475928778042175944345673849095157917084556614054904248829354818174310585398314765848182308773601590577375026944195152018398689805409577859159667965503843443304693539117613913042961066907687228656655483251476139974323874906583161284070443277113537483095416178932049446462525160845851943383120362498646685161429369289622296868869749837082117171719200233639169834768762467747181362628060185347630024174048967531037169575413830637626976453524580328514372955443742500011092927568727199579287664586662036562254934217924556303688314104103369342933654462667551256112117689838279260370990342344751843077114756467920425357823429368014617514871234347048797129656016584109450386853200072601927216462188625051570608340983029615714229335409979363339879137134560098954359508843365069579437158662537503398056853929069763711539526065845094773145086607154407752573500147989185614856542604751456456115211098878625743667702731585834881949076748145085883142667736064105144835451973661798395199734504809098293325009188270953941669297671469232963067742555347806949689417618656117294370935018493447670086920733640363987275104175640313647105254816987888071518666182540150036103054744454932191592410024219587833946158406049141383062462545023238484463612544730170919607273025620642670058407217400385999545248609370838704223645346730763045311577460973401542873890681915693701901788097795251277983197940181187574139567467431367604598898788751076753453844910825747748004933620551021279884817573253649420702841981403830420012328316720233695965822381598262159222357006852911428772715818644682699741031916852216058206648832498397969474241387927449172404949630095794364167162021311477513799185655093899281172088986307655422426618373534365863966338308114881074460203386544192434011573809561139260021131466090238213192663660763576437786572460507222895674848914516896363424694767645328268823207181165350068922190267159886932676784242216501486428238654438512118588432816554708630070802684100144063734787736425179199288844271328949305618107841985863328711751375169113503717979688855281015199843713876567964056942607243929624567394753931769885896489435804137754627768745076809606471198328867737611915070620937508709394125583857469729540079872981720025728160913508257734016075322399893835933601779488258219268517379784574519741542864086365848609033626137543575068901223474750851757830123414488321622935530966564297357972229740166361787871800154808475972824958031282660229235622268899131599442529979867186525989488648356781628540993900668823882381760945203193840476533531331824029804268559097257639541517447170448745209711997385766016971600322842149874605370332997866137538121350725093553883097771531387717428889773345721786342957002358786443188206945803152834817973894576931676952352424237367849450941301868261141169964300841574432782310983498211549029737150657281465456844277024748838466684509913241288312834402429869416492143771390717100259201325681483487351033296278075514162621795759892863183037903723813577201108644005687120712496478485941712112488056746701163982340514175678321370595191924533408893575455996231319726977586317518120198662667827123386152287031820018777383867790109462203316441475859337595763844189806408630654967845311785909818932072469290648492754147823447668280450371846353116248591714285192511171078683634971111962318755434832462969137814797578812390593875307913430542128130997437774929701728244114415479170784052711679996919240657106076222453542207128884856593943911362899111506037855602411838667000960132003861456308802051486571355577524552825615698780558158897994195015393178077833392816380542764175717952932418938129274790613808905747036482427673332324342403531156103482105729670519191277756110754030826149001823808140512545997196364808975395477181372572509040591448701764689819992384377984666633928300259123116830594443110221292415867262176356332305752968981430122986535197883988854505727736705824239645760217414544899415325777315533215800144474184965753769306241452118425379959101393334584075378682695661554023158692859986182171518594586150759578278158601221886969989965829090639478640600919089636205068541984938022418468986819942616327773557868508261686593588459894198454149905846029299781094236469470435698196019629908232375086228204018022829073378425947810191075334294090825169357980519592688640977917464538977080809772526144324724341710028083922379103715582563528542286339392026308668870461896373346548481287848335806758971454766622269738640742694851593976678934794988972867958843037268145367462341002647334463040007909728760125210364146390410868282568957830813061075709957360761911888230536071014608470287605196810346397266046176030231154516470792778256878181348670080367805735559517916580843353132955056729382579808633485998377838978132868183103348140162683828162344724098423969280897272029030853699062776587266340611926363280405241488181946262991977590870298299420633377129809937051790370920483966792068957677029336593530430351962288332369004704667489375138149091880144246796467120732399631033947084966168041825491807446655677341876084044197525894833894312564069175238808469169703076136201049068338937475308322429120183221129102898137008131463437247304660255651847650052258652336924704767458794285658073265141474092594515332358101075583834885872137486317223294370380458188370482123116731314898114415942873985306182014176490397388053932037258149782592384507553287373025522605298599284861375834503180075524436442124849744689123894036528594512307924802202108392463218541884481319978773513894043416256031440118653097404094199224439756350191536696582365153420814998358980355911529386785108057174409231127567359724173218833251865211092476589001141205692037250551623207867805103469655020018716150076182723706063347368324528328637297310726963399333842780688546992777329322161671302313720810172132783829771721151010238099571741682070943660932746523726951868826694609496638624400924853646514329449381303350219031082368006036463579438655047329431292388621342252410490628213701889785762867798691671351652777658760157470711158283839906696245732442572988713626166820624823908771686211371568058205385911198808071133699679880761353535714644451772104546299392666312190156919036498168614119124947093001889268132290414486330262564129724660472063736080839177024321738180678909918883659973668611084506336987467794991113281766675867183060962786239836982191191916857681952090986387967489223697668312508329585352709451728535746869171338932862786551935139894630467761018512490034910903568543178952067229443383988796969746839999355510170831884974704946815538677830464964331329474692318406971407379362318195962149384419141125979213306542757382061786761674663570033679524498417753233454531252725540074502958617347519702908509567286803462912634911467850943353318184197889229693863125645485320408487453602434815185164235015504735710641416294043210727375268499127881969693488892738851704055262904334148260508064283120980236034105631299192912429183458229502572579087569214123314518569050013235751304651810076483336936851004814314419504079237830752741944220716874951675627537355137850966766334588104943354728411402033904670687768821742913252336243092276164453080996651326423793737597675734397143321640295462508237714310057357364946455536911039947191580711878567623690587617622136189267543192816634735028544751025092884593950033233750308041248625886268302137746326343622998496712904830521032513265998856766081516072146158874129527241600593075049792614345882295452882527376764773460649252920321030707795399371977098138990168570997080098357967712353375860102638236646032079848290472658487579989731996844933394260375588621997179231786029410421248911234492489836729978733007291318239424419057538836372889709672303025006931585211295642735524602378864049896673682310787372469700343287781677341967877414547626232543267004808215958295322480386930868682874463384548417332424499744342548716844708594626287765107072631969458745223527116739779719374864216636498671894962117675922844583543933904772546721753791739852887269052001262229170629814546059789987074711103099788990015081717631338173259521529026533880111778037369687635321539104162742611123718042519061639464778784484085521356606354455068618788631790211997485726868304402823580362109004844675440978040618409771105033293502871803410409847604787688189031301499094708128763368774565235060137555119037732793615958984483847049654116798251546903453604141635693831702064626500466985321388961420593964016979299416609213459779048950645210155941140902650669572357879511374476044834975820334395302255958973270619587963494667415446517840486831619121365659517907330565604571633078237879926744649409945777227700681800020540653680381102415988656990792683898838905029737449345581947979156468582226339389506994347360870501300721868604302059208416261184541972731877664879530649730604421275838806312400995267743660379774237518646755100478448262262507569732077947206530096813901533623825303554307643975878660315982177389260664755632965793263177064249302328777880297652045460850264672163996303445314078858712814953683162333320306695477571010898284681136171330704726871582520178482723309513911551905723813639678203123886391340279767797975306863742056047104315516671897180233015557792580837727472733003839910650104689506766592564533809906313919247508018414025491069738750838376718031174150157239325621578158710679924352743677532159164778330844352302451588207214578649201217593914190466484064684992722254336261103096557234667117793536980457751419102624211895575438717572492528850252122567316608104437780871898506686435721925109858605184937920477390969233823316731549008671792798057324777602483383862174370267934024002663714354038792058767719040040878687919943611094411781745937424138859704476876786017583816752525449082320697709542443484052226860973200975691555627176649230584182690584184436884305974451734065970578290343529479741845707269692973985775891286457073801689879333070218356109507557519579079933816973964950565541525497113476893295216987874589684795919576146660031940224381206305252368772448455891081558141468954060936616796841358969943887841267619662384772254953027474412624329371730923487293950497089935236470160429180066556420072950239841269739874071060289488085974160988799660653927779840757233499144254691729966191066546379107176748437761768152851394258238291093891414860236708886074748884811086594588398937893004859813199227180062681673558903039784314525156072963798454856636824023787397302554898319654475879701573329306378913822698581601357894196953254235391399712024024974104048383210290653033290163677605686697796453166005090397936138722811510193073304958644600057947702523450946598385527325996375269946891964990048808920682193736003922708379387752069895740814203513458040581665477894915363719247294721647778796833317673967846419672064065581773054897904850417336290373443238387642907100907713574905966373793674031943883950254585997707520123806166555028650615751419424539711769973259274825770787263696068788362468088073235462581674116422372073987509961468933382217530138848515789476021448282085801357121811436956907392913004638252175650415007407876612972479068175118870719724169929136368386324468862223014163543037710161445960024357096254862741258234725300256887050543288415261417417364063093597759322513636283906809298722410819395711114678097276766970334293758389897733778830436518760660031764021747979087767208266698604711862337522695704526640916905847142113560771366252107299977913890056397771226564170134817054503949612943721637748564656105302943998891671096494619800483756031692305714021011201626433651997036282911136001099259050375661731593908511204301388089461475501816100025841824174368151738088265575774345597913959426650496510363506493010903646963433309529910493424719559998271606492430308820299141016765132338057144941501679830951957216861157096082317685781409950550548434256660064429954130616419720339172833063757489682139444802803164851629452822514650666018261009442342400688377938039908959529645139733201735605372827765427069080468809176116130233427416841973328466920847380955138539600794652401013376859418161353923965328682883327951763326124838296706206755347341077074004063015878655664863922825377999577331394992780168133188734664767029413481899290585218110609748104661335250173732857497687449453121020309063728925912170579801103594663522887629078324933391463001630929729308194996739996006701705379828702035295473484690209582816091970142181059585112135073018987683333446087911265721324018524732577893567784338727436168794166017078135741762752538240440581805558954879947631710347414558860841430911018377414065083091710804899390678805952603765296751968706478743721849822069451609254226793518644334757146236619161056835876572804377096254900508242837493429170708378041751044478785195516465665332684087303921452087146690946348195133638095772430283756156266958531768580107641274597822642808107899975357969375733647423105138305457274623770075339877847167854729575925848408594680069750056078808674462733711944539013560201868004726479664132547575050949365198178922428133342597848907919731783787915478596156020262604217949749145406019283553622066143611951860829647330361070876131011686247907845114640146569271323904133894160979540839934083546734633971947234072759689961343771374222275537131921865147299849745408240116528253401421898970378126563271910063021369120833137029615948203074102032883493406384925402809450518540608341395393825224787866310834310629547969743506984409118114423496924567428464824673723880158559577043995705416951901033623280412299389626798005692370439557507191613553603723197230938986061380978060219892381793649178610745783967416396492959140709343584144891861319593939938145304877399479227557074144719544631367958749383311486825829351344593371163792560173390644080445555395175856267819515179014126651904974572857024198516276159633675413027433399147447224264427807798325715092705218910708744065871269113866041527383654459152169691212308542397337760064647809230085626209897622054859542128357118442030154840669013303676509676102823600194613474650893037286290414800433846522107410569615618726478208305858642378134222289197972935540374476720952471815369978136747383867074691714345695604120328550788470635946198495617519573952209418902213244555721171005950662022779089089807848764827112048209499155664253645379016124368201403241387830140775665642719612937535133344720970038885924711564718897498158608483662867973824074887740120053365536142366322014435731197151332426715401024202696968997369733565944487171181261660196774256394215497362791809479740718006719290026100080594690470173361012628246579549502585056961076030849912546339256232935672343042620193253661135953862659690862192119335527074063965826973730537027566896427989614912241518104782038757544601038658939842817318213717818565176054260117413988315311148062057886770571350573850318486303327295757900187824414620155918113853550478049072249024555648334817584044125204910655843202975498993172374489882805400403845356238804447372176989362813599225340819106192828025299346448066987556007986996161219017925352700090203293695996578372091484943198810195442908544981615521804769045798657359635820320841549827072067466781322780524346712461930033559021228112715914051978692531656209061691868151672249755043238749069953164451620219148253920265497871186642185797154321808868188027426648138890460414042300141032144001636736622337012229545866764006747769042658054286791956289965421191628247651904836449178048102243746769239513893649463601248006643777247439883053033119652756996707825944470439023779171588222702675590356901063549196045523376284139963877600603324424554170359719373084330247410186342795467240563142844183540518013220416205147187361985893226402892236445087261228717014892481636535058863036051893731658062026105164105380636670004392957430417873707118725058540234229104444329123660826723360640506130082470002104253056849703851444590426032694787980343823154035963459683995914149641743276395941172035101335499942363105900312396779372813974568867857779031485527876301208428235317432795291136493442067604327460621337637469590287377937241985201075042984602577199982255842861318586879515162082959135072213673856904124404777102981387811181246627247024723798646291008634482757466101554759833908176585685598258904893293865639083165833900817790274091442460574078059689392040824311670323087116040712108878284551792084898685299282254010533094630109876081688967796245872554478407135854275406503947567636790008608041203489263152459213593295997674008647855929713309150635986356102915650471139059982910114145572578498013767070771519766179232747075400558433031615019033778439977274018902981005225719434307319479536023318958963727919294503440489344149306798707137436536729816963963349495208564991357725136621084021792237527129021676015292283343721864437310237909622193268411571673272046888748642944409066403383372970550901782091348904294122493038765286545225227238856016759573280069513855958745996422933067588311314050206109147993985940009165562923133250429142980907317233062695088808876012740245259277052595420916121979355216439075278888627284619042177839765747847557829433499984219842949850683989557644532164018236311141965681935846664456034256532229247472849263595184841121783334138759658896288195522925739449344333324055014463692739421283802936990469061321594359976981288398869594602269928444090301801139498475303987577712428627500527124932826500188198006519997256254828279178365794089610269172872668108785092940735189180147021355880537170326787559781409178764058672565653094608109455254254436548559019456133665042837181932496951858917454174949764357367721762429297898816831479499042510245698126712012742157889256912606005523631503446956317663288014863576544432329651272323228782615070328918964970299023009585976681031906335626486323191930122617372351874007256533902732013062116749308887443218389109666088298242233079318809491607845541486779821916532917935724907389172661125466482560289960386422674362431619692894457366794049246380811456689693037910461588405221534926558261203211034791033090278009663230227986897226471368784184955064394117728782722017573378145569916589756715494263947974295908479537856954932150813942396240718649674461990529691633201469362496720824865548780712515668948562682948619162388584785052567283076937751301596160041277391484723921817996912519962167173334277454769962520924812180287659958169235102568473716536103301485343036670572207668858035951302242494252424341532757278407041954649678998133878152038278983061494493289914443923461706439849835049454917550597027629714679331350209187981157425682501241872675826564317853292098576153010209336979984474372578355209008065425552678361767687648493498320610863530083224489934798569911255198011244450883854552870377863573966490742019544656455547172395496920006461342154682278361259923798459885967065268912996693573856863690049395310687048940072625557552352510090580288153224085445666035077045610375765080361222254991064782174416034713555292561667056628322854881119895796470136544741584285515652227914337178620018289858441256903500944327072599426501106842664304512524277661799445553584850662955293850523925806523304158646329188393441094899227050028755120564600436434331544794128083919038613892162728929234694172992142683121906362381284121059774261655624307513160447942700997034650787741588747380496297269783194279494930728905595423946411282455209264966015703409299746284537054736074441882164725143600738104156710925121894537421215090879298652798972765505707207489332491636176046958914259678296730375522538985673136882235259865090437521652108416619993893219874758717305070587791903966556043951572714687322064563458093432697995402378411165005088096882335544247918897768641997670558951346789138154358494471687862341303374981644380148575995627368191122272951797025848925775353635615241795942075321223891102928423866267703773176681228989815333184998544656987988480259745124339781315292392003092526682654667772495878427314271637180998613982996576641418763886274079430599270969803075548736186989812623004630715870617337568431429896295606223487027203600805656559288124350354014454888500477667385318814338243273362063144934973439417124187013985606931668449864679409945452280989495515619796748546047506924059406598907597753913286892227616701760216318974640950965647866270337541773425294622755114890082550880629743338426280750987306967458674076232089392487079222386042100463370059907602895670286946742930752692438058411396190831438529193328902528492380313614474908535568182766480419725502217566933192375173879174060177400360455042638278642255452086131307334871444361445845978119522022074753138943492387284322914751284833838254935998421512857303017480423701765956212653957764017476909240136454864502900835996506007966125947455873137181711993690885824458214853395466363694386568053326159798002287213189798710238791283740923219557087860899589651644886984251708285747012822900363581391779812995323695357027146770868608763715998951683916298251326236477699666475284984751845682586954864595135157736232030476569278484619229771667495202278808741852637450936179417702871172278795135579616094705064735606388210001580976144790510323639416708769298142775465344011741400310053396324199009477043088428086052460456841900021504917744675496296687889802574085360928441382365836805269170559314709450023166738734570242810241846567493609468241111665847708872031855887818265439543945960207289131720792718146215926234857644246312743178145059401219972796841220142641904695523322632682238337586122458805122079588033258613981453295297940401531514777502284219143530199869103253656267871611978160000904849186222491246261185095825806210472406876502847728912059907915629690140445909424812320975212210094804906034446279442409070625227299908921281321518405510530624793972545137297457030681853021930996939230617862029109654369665162195532807857878727974553629659547104027615056848968652008481961457684724640504191728072370014552096638708050751737889680536127808665315503524308251249145171117341628517514306621683161788830864187222080051738779250053030688232927135963033545924614036619660997129449687283967177605571670238940094486247640367862245786768568523740218585838059036201397115057523239421651492924110709974434738259977328155664568410254782989866436103363024355795418953017083823539521008441054685385280960198810392330250693282025713083919956598758148417518723958708675974482781055151289960371076150721277412473784777986499987678346764767595997811012162796035420981160623604694509819815184320736132961772652692042396381274871879651569449183135195828871176349993029792257874053241832934013531052486979665630088573493388193659080813611983257220972589117125898958591648790193543835771092194340434137717986026659100217544079416584718353234558115868527143829814154173911204261301380845827820346630563724792742907415223523238833516498858815578687527098681301317546729524181708604371130553831136316854097402877038221184901802530615766100846542290204195130117450958230627313523659764984616986055102480053636125653777094244131293465485439919855189863593263692042523922517471965865003318872533004898636470618975866017770652937044913704503176440716172465479009906585368945154052464667012761014258737703030444113137388898774164676949190325889431096041333126508280252284208447661063903896269239575624022148857053989540142952846117914654070150654553632324094052474067904055729056718814352632525261590501657581054488938224686985068834589882905709735436773598147656173128768487869707382317250046059288890527378988860398157535094846040564255098981945246744536692107140020371557737137847809639975043461025397595425660004498362047133920382820645908204220454859205653521008582593109476798507813276799634581832589881531515050201688666083870686205919096823302094982372938124056041496397549875582027841855477548035367927216949153873677342264712131878687307109530137860656205601027846689620193439246417968005525572549754069399955625950490381240179362936569727213719149872194712808657645963375962632026816711370519330322153282103448007622830108240617785873355939844284736397194315177052566710218212642062599210172594208919757257597068124011989929464551396380373569110235697319459497664812970923234930457119301392206796019744544380599011415434073113885711039973103134470198931941492827330928143200675223867067214684899078132392097106434051196516923895160088180945323754278388698977514557819301500026811277309565198067992507220300875078455292857103622923832084296216623423952855276729981167328416044145505443377424165122252836615922655025975339571758300626186838736501470227221662508964876449879233927980458406059622156002734484906379841387362883536683639635961970024764826070848393558967988667069567789471831146011837572436404098464686709669894245808017191431799840102853883805809067486667330381466805252188492621637401587248796086017483284056347379058588598189813130062837528194809792691325159880477764533744480231986660792487252311365081015150467470388152561893776382944737102180441292623561032647423608695953292249824205778459788210185366034820649447457013141917818743398491539936081259889270870989833546281916486551122033296938914468990920506734764710603766864494260133246464326226127178020214947963600858710809075111619882352084299835961023071874397220929039964672830167942001536831657255785063216407922898492882524170688254587809331210861024525133661226074688626424187594727254275289005863534293532394379346958834991424881182815439558133232764912139858657179868318489223068211642062024956104864955424660409126669876590451015879083942202149083123039380693257076547182325172989927947016275034376715441862337090986988261980525998548775151039926427058990617903821083080151614171588825344217176898787537220528887229059982712905158777512439710249923756347340576801355552133133252247057680949586786054665846217063250109736000777957149362404880150488862365790218249218530510769299315967141946618506988073680776946173924142417091432225105332681828008545168930415726217871173347833150892725236463482523396780875166782815337400899331686954706692408993012598945481611184786066938527557141003917160503813702183816109120621133277460962431280689925447964717905358409550042033154937937910742629493316264301857527396800938896185590686083817282254650521649745291026647756535065990138113528860390683944536351868479254813044005260511190489224270835260561217146466058757566013802563065287636986650881303201278773962721058251271145477959361130019519281833563202329075971882993102146352506484564738442812627433127717642278955108211399742203674248163780301059184009340908786602262350819542072460309741403947388030925026219464482288688838534259132596034459399661126691238792842757441603160417525597765028145780953477835637177058944343105389486792379793676186313438135595364495286671118746318975266228865205316940731462219280437746089450582093465772269811625179052140783685582253859164726350875982859493233306029005337585663519076456588889439780177277967307351730777067174931240673885818505028875346232014254867480737061598887996383761363519293768835306879444885000369574175293645714431784430009985847082975239531566094414341608606625429839843608459513188576300333113207036075514030681902596854452378728992627451859337981815059489941257988994237388046083669709742603537713551449906167447454733457147798042127699770306235534799701220080874264898677788076071010919002126466901453683538682699281808612089957405986761904488196957602091495164126655060114138616120326241606595346939101332053676952204817126476931486296751117852959172599549750033210826783208546024514118522842510373992724488556158093290025274627424216519652714616167873680777383991246534259013343962148386810871241227677615927746511999087653036205882215755213701441872953461727775019815398968821323609684874092025974012284988117581678481804961418274737427424447351135979921519446469788236019464288712489400706310228136218670778148588246570923714379638454646044980873638828099588248660834462148118926210859694025550958432002793331034834007190568581233931533850063951194895891703296913861664491633198526948020124171034608146685250990643364442670136344668621782161532984249654882771516675873995430320240959115719255687476546270030300082492825003270839842983891970331086562438733611405424772816344353583040072670927816936610272155474663003159882777051785267575581962417392839914736708478295535090565498941927885907727214372167148352153875556376503230919638633804998936318552794022374892736322170057466372559731415434508088898550003236938268495627807335986980559173244617135137394449044990969714669108929256583300550131717720709767913491396322383100518116360979620629068595188695651148951397117335833450330122888729126177507391638548064107805880971369436487040836159901222694441341770417656053168547633655054579020781723970584384417536804753442862326101436851827195431764595364983062224138031580779467828976873119744696336760519623531218806660725864962094615097881541247911788341720595317795963599000389207676196171739871058050463523290581731487198863769951889184772406159384873636773293337452037476826071368764353437144620471454522074141734724051893653777458465438533913784293341940307928632677320514408083684783282874264251697600317371285821676471686044876356028211711625162251217757980079331102794207787456188209561601724013535417563377036737977957811380767007735239294210150681788529578433514882711285337790336997321299298361821919799919844524624000403112106684394736854859693066072688693108570444434956565625977325464189869510266994789534459716294603337765420895496561445307895974867241068878175509135681085865443868079244429258702617746028536793505466353411341128145700106872711775305975272135354431739558782674221721898267894277277033329162450269883608948928536271286671619124097546027803354819561941895613097512500902724170517607607727123503947768481948327632143867243341854576758232141980244234691269832870166510585719083441444767558261372531757116871364470421882530833454512516621836536153877501483716950524611696434311697126333326942695812343071227010342238223195279979426340444837559623749900736502246505266836355330959966207547283766472488544079797836710186047378833032527951868493117344285010670080374207994222591208750020169238443823316935427902300699186338178159835454752637572867229064291415855986309165406151246156176257408397783563808774355651397983140313438104404461998015989998531120995968101379065686064280442239979501328107720885954421811345502159697448644175409946680062896692645565652584817859381943316309284078897850580665009153336188481951100012374877329360609836115811222670262069008729439203371507574472930023782574481982607634622958107494252652176849545074244529996408528522031411529377241049358480617173357672079368195003411134281878964651030527448758784911196265617768104332480766158234367445372931125384942956642883264448991662370746998790662012223307605925477285698356687177285418690995385462012290400387973240461030147076826370853401870401353599289653180343794991047191656775888188688422230721686873157913117071862278148708718682667574839135977528330084895586785200367496840329886850467262107202310335696350123478390730805259360434289845842606710379525797524248515537381626711484894612045928524507811960805226182315401456312219084308141887885320268350262363864494296991614507591066861672670452530089063176590240127905458753848522200945463502989701197230689008178287697953736445905102669517242818542545008900396043266635503383391487436226717377485430065306875657221948312278145286276108872409157804623722865697286120570988944901415466542691749233625620677104074656384781991313722167386885491406720718786028196127004188233296018048203207557728529808863308825216669068197223810490229879175299686213200382082289486364487589905666558017533049622317959418608968301400913589474006541475635872560304696734876329704432164315989779948907688696219742649685535178587277087941887046417042124154054082068417805191710434435999908841599812516016191375148892693147463119197357712254319332134536537127219356500979005164826099815287148587433010648408339087772515407894923657107868324231796612515179462754464217294132960564631514257274861052281359334600426567579529560305073028358568189744488522016659350111433301424065382853356058097516103622714822687423457981509343681092484455686795528540635607418980343404859405929114688747906000160463543698269713565818104298321454868542998849390550593204629566323168707983455802193099582254747293523541007155799506280278220075671096991616956181603706201617468756950310207160669086209557779203861182128136098502352455667181287098800196139028746471676560996739025482093500160867625461290113001698782553184905682613095488643383278040279682248365919848893158975474677269494204975886556415249771279297385465985065427528396408176662484861146761792523187611064711559178573292494919667599405994189272603749237517953939895490310550749833397532411392145460314068554605771675926985583801968539974307688836156862696962456732593965092710526191279645654860645967398884665346832171335264932923603590295003456909372412889892506072220307732062760780799130099625632207947204580312972490081491425116225174653669344374821869563234037520645670880373677342545314236748426576331469255723612997105260292837415668217265760017580625627487919332304277683656726971499353397083580265860434115283695475245387758128127646366144232598410655774025313559412051885092431552565332434639349017163838593702881290584479120853464466935438813621764089516792916114019967306460400423610489628656420889585106066211302576782989122482696544801220214702950036250125156536051348675940874343804176939166054564358908086288536446389224615283359920287310505669778491454200113147931255852544241634314281755044420774901076731000279816455002689366854975021916991453335346999105400836886715315158363906233182607359991140495019519258652725525674270380309045525765971728682553548561601459248783024622570421181307978049578726654495416869791327608334971842589683374794004089089462997995083980423482491348059487123146292410775262366444377999889402554654973314171303402535585714521506269221787326689034302564649207004026497072681480140332003007113911947046835120423006366787995211045397853143499941191083967181895465399667171277991669240155281285247545930922878715692359721713362694701317620186154100068696625067999939590525213281257081923771081312353297510600623146572318839636658661250989243946644952351054412413086277711731447723488526330335847320028756808892396997687140268632681590537122059590654263095429683250447679625607004509401971563839022987136731457369445384394185773147972770956305553874305356261978260560522512467196510845317926737324116010739362545695685135984373543208354593098218412801787573488709105146899199309131894328538029295785556640911676252300397725826325089330959652253786790713131827297697649760005161082736062845366878157954853870735180885785611991474366562377975558479821041963305316155175531111871715357650580996198260214992364624286018549605381868899339720593265911646773039926414391732160114690259669199737094199736433961930549099990935981696613923910280985964066414503241261826910603529137582165434878010080295603426090889191511140578183923614252735165096477271806763313606099957495816429350376028476754256378678522602692709781325371302990150500153689165827613238038523622757159931942814493231659700615128469862161420460685418114956456211948577897849315871578243990357635905992012817156196741275408289760054028886014497546573544725684806940421158585881766905876302604066425351927871158106778187092971788256834656574108547286364868218362711326800262180228743983140877929188585360352024622244376022047582048157329641410196575476058672012664013637982848234921103230300500485456606598627604448913205465190900451627122195860965236336046507278634471799864422278364267335716103996562887006938732466833889638748999596778718174086683218423814462228668375985676951710206173388319666830736541263386075865822057316917941338411721973272977922986208895609668107720427617219250647556539220758776144463584833084889974996097424529777412322032600024572304645292192245392827766315233713087728895339669592828804864496372907015012698537584702712998451155731724314839438413366018711877312046199994889675985961931746350316398021180304119104267580276254432057027908438322348048067451540414530678795474622527940952839712153198469935041358976222526162234064820040847857087996214522806824418518674056149749362312587673111218133942792750781061956117532826709187039106508170816613616748502790716792329420574995542973090375907700070793777112096152346980860748570264181035896354727284478788477709826063512146573086919090822901103380728915759229190285772119909458415757843547620249140597705283432619603629778356575567187365539710606104949174950502021672381506270874210127813789624992411428086298293224534158368482764014349305076348161541583201700881832460366276029276196730329784625330736513239464424706642109751019470396567947814266045279282007818707205031291579177003082700086312712332896677983000079671619182586975961737225885569176625980217933552313605005795050055645179082199607759333036703732158028307131191240645093354303760256998426179718495893750622094121327273781383721976714584281123203842212991127775595532192924099763340583450422494312652631148572700622381973649839698421654668719706302458068705152624278720847995719492779850092069908743230061040161599154383369853154872475854029168341029075010267997095020094454206074739979490650381299850445646245948571423809561457882122630857604030819682886082285595247231248784710851176059676488919099913362577609578667298939067910069994651045662408077920353326788741014600103519039081170588351072485081349904613705214139508849885090026604900318790403982967022378631879713130439895753687478903832099609617772890868100897887564740495127171987280344806974132160864277364541294000329507999922145509890320306473198416560200724668366636295064504490071970610578036803330926814015717921876279813020976567349097174832913977565124056836447352127235129503303426447324818198559990272685765270815230100368233321387593651883645712203500143510872282160398733107210944012342569677688184061870461208331537736831255144163450741046483444041899789292366881508531103814630180140564299385717978003078870111799878165170935275687293440958518739608370380593518850294270272488011458301941620114180954172142885371142785385561705973363027681399269147861027174701282848446995029223516784126946236814704224178358657401268618010175687469175837260762590871477529069848703076009409050467785391059671058112215190778650235149349612979799415156336155628442530430340611043026052385771492154811852726416716147440957311120169223981318031084393152501435078641689538331908357150172326232482610954760927075337093083311598228673622975646490847044981501151479937623437138632038771556079377345677683011708475591648974094626344806122194953180586281172938705820237864414661036420102986081364392497780284517388842142336674977936072860326710142112606821485895243455910063845480493846907629002400070361823605948080947770993574137165987152036095563063988014410708180381884119591044227103226306042682318856917433532960430126583820306863231856578889919002529186080893759844407726630236657943287881199571313194358701276369313009190521224748276509648518374108163643504183440086260470265387427038792100435327267392201322178163708242517479446691120259869526017429765716175196075222733777588108200537676613696626978111028073880066277726854892103489215603761301437292329104220324812477443601480064075527950954760849303736476470542303306157140469889926009356756837404465619045215386801970173840249477222127459903852444003909916828288311138526114647698396138419218707323780648047653592762125616487133197057605791299950978716816279484369667259244667181279145302108801650586847822544545662245270758128832895337772350338630779359092202589661302576489115900903600909584480089314215278603131064916896364383196530566598947702661916631239534089630177703292659243301926676055584461635675071185802672833725472409080788184792106568965302311167274906209119473272537758476734496841137988364204205241174389214509471529982762214957496039907236284193410113963199453382653783498658337510999953561223849522162389516420578305552202123463861487672031410296195104223157102673992886213737220615151895813412901649152254749767447453245412003242055732386757000865268634084289817415751036173460807243717833784806033190106187435453398572851702838143461138894151512760742961057230643965483802719097540384003854667750198520585879120783131520852865271127869480547791693116984744463791689723598048407639953112255362566996535857136754302460202005239303599896655951621748065944483918350063948490095752249247153642326255151869466359055033383804290133493240425852503996457075169918370214321228103836623860564636953687863952040598932437973810035648312006904291997751643900911461509965177374018020161488356638807500643541047707889514438773589927285639529341246287567025692539282807903090086433276932081929265933840901362290030972168426353129298159892529284483956967821135143485366980965664821062616503940942864875693970350536358005669371204627277615669754139078303895563370928043308137473602863378557994698850126350864657767982925119834035289457283819747462151053710779569151941304844943544983054720564037626186829254702729983492487692026907697373754505077905989301076388736412542906143381250280249417777656439898580420657041034863330192949838027992023512992075416934873217052898370516878993008977698970892155051210415560771809257014472336043100125373220106248469637763740697287639764725059743203522036192011382641702500179138171462626281674646251813014895664044323509128190479686522575183061695534706061641458508094109224022841734434736118353382260936540958564458251114651893704996586118564267158700395384732515083805482575990497972446518036297605078577507191566612656911790843067162611741440442130404255462431578592726967178618333834435058325803535140038389080550600279037313330904506083553642009646339509029089307691968968408306750841734832788336259273081314868417472629119096815679570359992685023647822042265247763333004030163096079991185132657503332572485670809064619861173306840683803432311421735221116017369812121566246048970094988024413217933376386401267095914985811517776527277048923084231601433218636027342645939895272453665727436341180899743502788725467092335736880360712158342005515031387319275502688629350899864891717319869854264570858380115763248031029469579688514991255501866507337409528458934721418868021408381249385835993572022395182138281892820766035448736373423433542850543433726445879512136464912071536014169979680283639168191640221114800580549842186222853251585144281067423644421280989569971825689823411829269345477901475143367219330313310005787772477853194989447525183476595083336816858554756596659087837717710556677773101188857704537496524986981115612789282453815752314888618077941195364744327556313518637544138145519383976534222062907796756136778416745153033256327718390027825853229081453810811541447596563272442524846080816627312315100152506152423318464785143201668431848681401355965951654062622479547151974784940109327312358057337399198929039950590882484012471101554910077105576153314473844370657097569254960245325701720109181083759330967137215310156576110890901696097699236194332152769825076998570929426952402306310618752693349861842971218526198715408592027053298353178867609333062839688746733318530291123391033606858176349461142625517054582853845592532297385751111367636028414719026021512043145384787836076265450042470327681480376027104814829882583828812315159948289688147067906204375289138658341487689845896239071796418493890120749704036510819036054540358532686965704497005294841046332935814873772817556023939541781164170779652844098678616579587824329606401739809481878295094912698890460957278894006101115018337579261980092946137330062682741748065561564437467292472751617365431671613876778313041692797270914156794896430901018545809804519116835320315225350740421089858765037225869634772262110562712325478429623309234160537176409376297259799028299178970846412703857083062389444244761533727242392569068226089204856529988844562191549568309889511942787953986899274188094241593792085626974345407244245526613706216617101376355822968701368566373722354953008446155913629258795609010752101854136645692169961542005656086839430436671585891277220814200106669364921064363023849770675288549854530968487156966233588142270691835760035432667517038597479049739678054418364374308914712092969977077653482016846929108129201305581726829363667413123378588429440984981728712927211518540392298459868863043122227763265046675079139816440408304793537450279634951675989444517172989568211857419188103238093979690846944357774996271251248324521905534380667878513203963877092485842886645525561147613033260433269288699191884021444401614678331168791680942860984551826116936232935521873838500908441584575918855522651589283209503200499933152649359878786594363980330736343137466070618310930880168606660575103943637573033880985878445317563949655913466738484755381675929401063891256758307891090076429995078022534676368622947391107100957642954234019528848438327047463666963999085447634513534809568826491261737388744339863742673855387189190528909510468364302504251640333259012279658451401299597375365722071528957674414720779998201785472690150624596356796243731786473562075129198450305130689118667857372096130337904655430398602926005858594771984768981327229562240112669384286069022920169858946057592287076367342417596248649561259982748725801239272410621010494969555395760533270983895229713145891150572305000758439460033373044700949681626593681069965958226500865781814647574706271807245078438048632771127869869700447424499046227366317337215511237386127843369504793498873839243881392186802400390102409555655542767941239097465261414718151771983406571034830761240708819070709659662973519259294822181815307454135278580165963683657447375150331217535976531204991149401747014607327333206489344360975795696147114193242364715321353395334649686473318419712359044552453240064418237583264130339811949466279848824506473086574681713519669813387325593797994724972914223217272918589482165771115733450218442749286033248532410919174786186381115896549127171954024781335062659871190532622741996894385999273307266055245323522829976781795467444578141937286502000417118390207512538585068829635669566913509634609521509934491820024777671150966494824688943353409966338435262302643920404358969051801728339472709793534336796328097569623871536794764918624866719450253710352130220276411854021809978028611537674985957149550358427753144287517570160514546891364870634235395068997096850218785507446761335944435916089780185171595815406864934229948384284055163051307455764792299940419654856604074533762164738782624129285872680306448901010067327694163701595207815164266257933358526270027932281762297462085416124246191971619414626229441862061806074851645047636688558266649255998159795433477214080338677114489078037259500697500389965581101056754820931992576906071385366041767590570118377123114493014605179875640375072975716516734726819531409014345597223808639707421338179835908777404398145308165392167728416116862777202307481863897350976090910364628223313782368383101002741973114795372338685344956666610887048335668055773324445343604963782435234808398959325492405493709677637022857655902129013174673076328490108637942863858664004795784576744175886769117998671878140918383089959187250666627133716739372333957726364360593846309839516789393891468992757360394082245314426233850869343210696602609709042612273951597205232254469482900985720143037473828801890030945024863339254455220625156070859650622062962257352749745421222424956465172253540275934997067053937117792991798091220956263212290922985340570712957146019984460175499518883656616522389360597623293696326336860463361629538987607484368906780703471791620938264730853947805665500128383257076596972387559840708843196517445083727067182285521151925922731271009633140942706126179900006802605436844991954398083712869945704214562061510926079628519568456033642744914082039244540708290213152937646818485880882504057163323460265421265142405226909856329156372632072447278353008509651556526470482826951826511219278600824981303430864072848997455156093748915947107183709589834989515311016987571111730703700047763661336146565358655585378838844938166898311260472365798381356290704671803457711075280607624029084436427714627622554288153730304112698514015858625722694559288140755283737866380558804391968161574597850905377048860973539001165676909704384959059066680431832637861544663986229069337046050751135325527763121080126819074315978546512299774893082012125780553335840214424876248835412034799824183723525186112348583656699302786744968363863316645438462498610363052126531103598163385367919105983421033866263385987928684746206841936996776887220000797054311835896223880276763359279651645502509771795018378827058788722111990536391871971874585680341417496442404749037307936265840036494243137076222207845825882956560074248382362745560632458692304448086188077280243254044784766778411846885085608428891724929384487031827421608374649867042337988465949560669707242637182485372242157042125759892527244561846563586861197957298028105738849532874639986958252257906332108458057784431115760400872330243732018700418912735596481683623112792147135241046602086551852673598566994940780672389089351560008401935409595853080281107813255724264335266000280267407866748085590357749016849645134086113996819450053797553046457958291286430718886078399083814904143102461781506038767776974060639094785208663294437431113434898314900518442776232957206979781332739695648500387275455320712278521426471486269722009853490358975631659388415286770050784578533344444411343493289383590403931297415032269151692104385191121773997144038931958925720581657802940170137147102731528848511622382044945910209236046305956423889043949131537681904267743512041748608441594157126551137228234578690549564928530821013147432430088903061281709402600218265091965757420561837658551579505630544084024394038456058803058148390267586433812603005464038787844798432093017928180844666347423157294435200646174622885701290770131376265264195224577244748842617947026186111602430243265403509195775338541873817096992667728765868506390849886852339175582481616557296865754812943194217843121823198662786193970684999887897480982724158219122831328841533627551552998159413908466370402380053769708408545638235452008692623400243576485460237299378321945456887051901349002224376504240195610589450531586349649323995944217030627178818145303840586706526723510068357177977123358824382508712556006481391661538251920033091810014799118547114580732739716006175401956262286304685309041267849994637474668950091100405932831511895760835093422983059035115230699181899463734611211606983796248101931412589328296281522587422532845716119870459990716093012929863760293146294526219801310087790028230647775941308478030431228051970987953800055572715118188351983956112938545133474197835660552200604147374816601588521415048936104051385883762027086591529052929911522939091873388661115659949407795276078877466621177393726776786188140561517857210239770038183896694701285215140832878311468699389195172307249182232968504220621632534463816342580255591545229587940754478891322058105172397130396159181268451604153387578547663952369088011890949932626858509276657361239236261217356251972816049419853935173972130081258537658892123328340244486793125774952870458315565853472958060128741111884389402964474693331917440014529992885205304257948791890796173103609729514792979154629916649722418887561369414818945499152527667641668079170596716468067371544781913129229446244970394059682972806133688049606335071476239661633504977488778412458421666395222419396483181060388519515446919337226356771240525858191029202914728595568638301150419735979245545265650917696312824159287697099025399143803818774093026074850617363400880753402317157778210268493430018186929676383993076078996075963871160003266043405223598996739563372995497145619416284935010844025681991324565700883647120005405928086743130949731777638388666919424090203379284483534441779514828102834905923804783503554008613618883953100663636227080667792696142570739824304340373746632686039007411608387654185891749142493959622581150159375194717504862623276151044347285352991543594362871956779398843557490126226879939847564545763393041350321220164181334334883322651296525031917829063066020211410550203988916484211754069792830262357378629066437581069962472723840848974509677356370906753945178200210782579870403085887023532500429018646734215598872786304731512605886036060078701229869454969924076465128362095302091554547546288446531497689400269200721549967735487454039497909523435914288989325325159783768946202081739783338601278671529689808562616765228213055821333947217193798053718948364045526318592148959979479034437593436745188197844774551713383436261118068874587576117107562766403022118190245884562579377580229337543629005768284364724017799648456248420955809155751202329322466674558025457686726689928294691547866354957040953597679508270655895257092801425567094690736717135340414889792036644017278732900781025349785652836712750103585478697140068552991432565973958107144269185037643335660013912578519304105010119830449251591422591994403461556105757423421817521492862176722038268487235885909632401002537872855037960304121656675391046884035628004542602848684348063508830532681609994559557989919223788908506030637348531386622287709465426951925859743866235503867582098657133874986528752704861702951210148338695583402633471165600953998191859701523679099144792121672893212592038385456331445305044775891489043341307900664803565064065479366275601658817717176856641228693096368400195744139840995479249541898952173605435477978611380460516469809703961206858571442584341219204575464005910698693055972816448934471591701169567794917598751889647462141804592828396063028857577583373340582235053843833608819821050730080681922791657764535422298363343309164130319474129117338957359267789799077753667556234038417882745530408290595229307123456018004804150459391646448495880223840616197601397784467929529683215616558048235996323119658557452323222996353120127967924352619580986773389736734956788245506071461487478146020484680157283816591042507341005020226679104345687328792137477017802760085001773298593368435206216635851585400436941373474787307143777324656499957474066736319049812672518413565740777052179693963608659080030867448710809456512851181012851717110861752425013858682614911799523997298241078837063001858863072358088145608845316938455533437206333411472837750611043524190700032199657376393431208266036066969180520474490204817532552062798743786057292172239343523396735121338923625936347286012929851217164090046006353516793665216470182745858700411588402548356299621888521294538830555399913545308478150238798524246492403395386213604676670216688556649421372456079320713674025082187029357348604916365971438783681534366126691326802910962969433920154465040040933454153289878844528449286208986045195399183769935175118377491907639967915882323267040549688231930721474409243828431980258161126593831324939067041296999976727479882102255303365411659348360020166642332804140174956944119584714997870655902128927776865193041713381813966143467145990682840384973738046923573616040934366149556489794488035109710472097224882075091282344338263538788357555068683197573872741595023327844299754409583375022344970274672679563776384580732747351685183104619391831841264995923163102944138053418867194575550438430828614145147466902042621684698731196832011730347576767749290709433393720724553490019590002702274297438260928310915167635080343105259490420813311181515944806433947441218073047255133797197158064410088916120525833915312318444113043835603728306689248933918881627220003120928894744593438561488504569837940983281279616427307289476789055084913572771730089093621395233769946038817660388037377006246628856840708731411819384314345400803583378530550451602241029993505503330855125589475084003002432088623557862209367909496583896412546696181528201028975876673685832135261067258477685965981459334553867844953329396978771913863781997063325589896822492706214285008208055319629111201878481982528905584922224976318594961849719721396380915685418897500825020386840756912355725931172728993345509231852881070754982378917217548904845837711789348032418677108271342254658802630341538896572663795727163370434980251821578964904295796414856652589355652294873823792972969392208038002738493513618262042566856336145851303126584000058110663378786408499853559240854764522981010130021626459826908657375647310465727322061589521489502568636765632895728010261875271608400982435144404467122200860758719647669747234192329285494799642867864270815217672786470242527889462309732757622796288118148821786353067627385622594043670115114383866416525011244992561834683416143468892654401739436805216209615689580446391784038155997560961343897475321439755568370693390517370358320627918546268480379602529318327822305568810628576042222289738451159235325712232317834881437301398448483900984964171029274236474325814145491469811262311057802711247110453364144135080232993863279216295484053200682254996784722965683013944168130727746259217850761656530144687168843456179878655059148372469343005359144812010522559848555355310734108771567478833827874025527736919382427449758683044209025372434266134009331294674927637732338852212332121402448252258739465506553762378417931108136665437699983223664640247193350463963475422399821428701271854409404572104917958503814066809187033697535050892324651727995726728745788216982576209331952768198043365868271469440164585557573778426642939658018641493762501776874217879207908643145630080884159190927783884077661127977556861656372998291255087753854150898860154336394660208711731234084203111030476173002698638835132102298206285167263338242269747832572586105742491606943847338169806582174454153438355597373816012178524747863568195345620724325553956152186462967268268133962263526052338885083675009497075707078023403646964052528931461760770290709967899896012564680708319383694591713736353490822639331737706175147953859460634672322869212572442927968511792332616884862766229518181064969593255603485744898253610117743497677988836315995204560884538569406921932851215407911306829952038441609024485581312186108180230302551708824714006342293231669024584020133786656851824580578416157660284941122414040844530459811164263858127707253455624986302296174284126042082149381116418026439694276622582915418848608632529427039862082918519456622240075737854621548066644927389686405871078984424575792219311990742837009234912279296212169616346094191607700997043792054202022655000066182232924834211699187534351082737599968011532207055922726018656831984884825702788563244727420852040685071076260658033111326588569660071625980213864413920394590482325965692331020275860521334270411129673448982375084246136547222966782248355591287181659788274930868393034226175194049985615155179003946633419739318326846242083992263335183689315307728209037560622700398788618054104290261436676315959296546093727800730216146663340575827149001985639800800770612399610534854634977681076483375683816726114133312179058982510752416170406053472782769785165399324210505142399211666959615381848559556952824244376023086323651380861386083784766421182902658088728808237171169463378364031445340341239973556697609972312803266047164229576599242936886650296807740071849885800640890667323381108228220467819861565709600174663648077186145955619136051071492874165748069932537478403730564991499450542171639531877951477739847408009346870595116006665684645819615856367501729217457073219973469074205212646569284564862036700788269205576816395378795889321983189069936922412013062654185132759587699474818543944545241331594216256073733305888022816669364264416430786682149400960134598865565457135195225038112339317296659544195023896077552459984422032715410804426100158464389412649331019827396155510218959173561310835320102855463028940960693628905891115540634721515259891088039788202842990263476202033054764494174984311764727874271979024266803711785365422798878323619873942276754400484262117127753797595666499221476720876089200229054780264942192814167620312415678196132356546556674574625903361010683330113068966908116141493143929695941894412926466664776065698551531033856667512490621796599767320750468376767364218657327082967372254557386135282379169661923728074724197517311522497126165420399489076557283359892241919345916494525493562633172808679659004097926837826668398328056080668565706380221732084185156934957244966686383848012080208322131207421167086466485459274664243889871257495715678819016452903007685880499702541402637779360894061089868546905996856541464429825143018361813459719071720409981699314375204082742567781275182139676669171343285538684297956755632801737070444170639028237687239054425404017999188345725853536617076796781517529800031355050440859084757861114714743995102169820549807945607968768322484467525172798396900331914589026642734785880710121047707814236366049332241214261169344608843831317199523874365341746600524299486178115133473394107503540879447356338965850794467492611973161317803769974999179485097076880818298423228973511091958166699208429730016607194858426701970647071786462564707128167312831340102555712848807480590464522832828896185166451856772643276276797147852166905571592341316503548757361750170987529948199702073084946972667983264652674046970388985771817938941390981367763125928340395903918775914900118797482510632237545910817957470936958388787701893815095401776881403788805938462517421287351496685501690747274854857852234051116316164417760873582839776787865389863892003619716295384535620039489612565577726757578479622366605076141874170153400929535629112928531467452438915649552407346926923176662411892760814731316642782399060407207059111637209160394661282719376648039845774157275126660749600067234588756080395544752003867528354422482365975514541754609293165188525146138911392557382919306541746152143609850211316240888568301147952997838977331451675346301896016058915778119508189883797751716916552912782264711351266756908395719250697636168064190620951300455078457404941139949438770489107240952185420206510627489918739056440585340169455201610240637955311376355868198910669601365399203736899605861650098107070706059585091246572750590099198092369042927327734984328411525657677723088911467460676382603258735117617864823100439843927237947280648366359752672777162386444453838511668640695413537352686091860468129413656760385573613892070667102625610587473547134176524713787430096323355687734823915187836167950225609951460061210522870840551768215190526755771874702642266654958070706623075739835857307554935523029268895172495401887417471846594450189116951276004859079414559175346386613304473772402094410599791885966211342791445886594787338020262103085290397199762560739498731575659432085567573413723352591029896080721673719940432921247784512974187048641641655559460589712894528385005898465515266994282488433880655728006059821696165806883285630620045080628019626436522544393165238080242147121718991336916849021592255969787142741602565959911753311710522048668951474602955508982025675957536777294091066061512488313387263259853958590741820002682290598589086836544449567230259466244623445665017663135530544714590729606789961099287585042509359302145574028548136966450164100662534371254446811370875714438696085336748796647127718736137147261250626466872192656915109763057912905474792621940010919978340553960622481987634853596277645653922975766232041808567167208332153430438105491329117118801815991076466491873015132399552873797943385573889884434340598959510483207716428735360019732592429237680067195568244883833288549577814200406786109078445517238992544158592115436594016822709553548812695887806541235251599509122412266790280609684535693536413703406943952182995777745344661927618092120164969140911439454437728990091902751646542540140060495461311147955451353427552311029132012736578690504814109045154179228913798407209774128242450196940607769277463292434182362483950471731020567105981519499810823367407616173403503869009307329926199010673584369030018834086700749857287469465045541973432820962384571861282161970724696321256734555893537003174580380004443170920811404024658666078086879898876718412732208284613082223385166377486675353830009193614609429001872897460919629812299615221828499273067740380651791439039762832609074992444895973475728082186163059656020832971794110700315334503805865289478247292400809167099932799811680481031951908332731635542722131168118959471326928356676130606961801306503001899004201456579700308281878619663512371697818427066718578299568472007815097117544147461753958295546055373980421087889426599036825170913428197717937040925527313321933774781864638029506027410913349734698029301854765585205711421825136446508979098805519738940453730031358375906292728168616899878658859209308661972693479911501255345179668433913931014388464694247001840177956273153648155251449444824491600500009943278181019508488215771841469451372437138091105258543728317745677248912959507365358545858697656859454530152998447546787598641497984169727666660043047749932867265069705297989525766123629224740320907224691988635458318529631968039071308834411689058847313831035066823934092570196317175664820183577844660017857775396242189374792068782597918383360692780585953454627479942706144964525204845812892482566380349284413558587855469683219585169782948346772347712276870542984548025819277230134662020007158827502025640023905023891762325997937924830219669172573459822294925858357151480344868858713579797652855847582232674599283956680305926787156164701328566080356865552183064223207832219065493157778506367264756233270598594308307730062736651363068608334485017922381209949593166031096269072050091967501468336834239650179268858347133426391107449679372731386365209116548983751685651992777476385141564001855092800444980956956887279745599830471965247751338931180957605220074015170720245752300031822659036873250148656967870173618453719941849518733076127525056491385584952622954877661706153659746845330016304047874550486988712776463384443079664532230422301229379829824850909371247834524990307356083700090493708666331709086934470129972687133259608416765393158642700689714698353713146502420910508141308806044624607481556023849912500241118428876695925512822045002114110596637777873568715185246154732402667398971480857948396353563770526206316694641855480163930726221659506266445048573531889341575366998267943093070126434901902288681811106785531061163972803729806112386418048992349372637112233235908381939350584580787020755266976611466288242598155926902236982992605695663492366848786849545008264271764412133346365834025836372719407050521944664880057084664587033533947511008897572339438075308112439416606074990719691637749204729937475022307317377084558079198290481566412926511709690366832863227361967071440587608327128555857680955219825235919800630404183960204993842622954054140776542447564572832678133320437672057407224666605441876144930442880767969313912647258709614886196748494009345053374917276855627474499139027949891534201906075953479519248389072934686075015671015593959576020830220569331887839763666042782996314762152568794183308659290424032126959133987069772582904169100461832186702000428824400414201083597445285166791791617688440522792099728833306880026710786225199554427046783918542906544808173945727562042415545397068309145413732230237577877028249162917915713853584176563312513527782304938652811118536389147723133872361800489989281859094478519304686588697646484021834851086201411702827663496430862709682168454373758969933320270810934761046110645812217956365568650857037499988652463124080708271459809564297349337198848397769897451267625562331564159000627311332314050410046991714949903115921773199871061705244960294108011328909415609274155587867646792857288614149456509614841897261685870563849240979416797253003190168255183120648473510723914754408504869485034515377035010948214929477004773713621097717544465513798620345360260134978939469161088351891382185437941521749963136641193217233802938428143676965472291210672189692153058108799373161089929779305274920306664630822044042715898175163687679330404821047505586535229452826403010663750944882179634546137128801370804854525584915580464804778587656389716818346587918810640674996948390439186846329042990852817573764661212142844180327978110105913819605288958608622388898745062622571191436353111086267101325504154697319427874214177837009499558886037537475200213958831943821411325769789105882877321750796865884259154972718827790602249932661619551722360218745728521992399556938822844371036793534095453214528556515600395124993287744091984883972919623213064316987808864314576963854587738222136053298850294493630069230358050010656310976409656781169852019477472291555106375899749789117148372602049701113705883812377377054657501082648922286322851441278945962867280517971786271200462939707895111582390548711613754404684139609538825363460322679268240209062112433699357465748843786510193637446269249088607357321997340068815270759569426562493160239560135626994676415501130530652496088269982155202792559694920390674869297671599401419525088576596645014443179262944021176812368970523484907651466776277690144118303728705855902682959180738229720040105215284066143785145350001177065067989807456081464485867103554376026085132252538500683366975777108757701360914110621233389469428320658107112577965551386343258540980664877828477120166417879453186354432735425044526475893875989537094137240420994509527042160733309263906671182584889943199507465905149184969872865481314225792382402078579384073589335023194840448454239093827909847745343691119969533206978346648069464147575499457151769819949378979414012176701741752064061082462538787706449104539865104128692906851340784977591331211765372553989174473484609071292368325768808383822457818528608850175935679563698559528719169856039221846941470403790904424334866255825567094044752460552166259969799697525509339806912492528016859478841885135715615555207913512514151634205466818863978102352307083977704351589063932396817149989921963504242826320326167060969385516585327617439806653763632088853794826918808543501890172509380804119401433791210413728835583863284383046658887899567798773707987972042747255089995954762811475457116242726995436368228233572378834771771551402885821539969944638280854740187967446054129124098138625007647936089056137244201137413059497243947371576066454415283823966568662808091087665480066846090210639145698244223077046588933024091010845706138960486189228518452269816992931753929751745452282418747192169208340281521697419334255636657432195231343848569460367357827601623165460941247616902168643229070588300516441329602744163817637677283004065220873035764312032309766191449295130860604260612321597839941679527384839641948797202972726717388208687445637737835128254235133581717345006318470305798055112033113867338757389621433737242627494155520586706762156842141313162166395197023191289427001438983752111651060965117162412067214038780265755112465078116975990847211310133113604310263354406014593256949228690515967525131069867706581257530105821935542712070889128266478114997521145125297169337267557413407759573538342104225893456860181400569957433009460844952609264927401153877949704353027400809162848945096241174828897823344257483474114377568094675377340921985389927099799693067225416182300426240479671049746274307813056712888043136730398023091149415745909209305186460053901715266811347977959796648805453524087514871731590075948188109215464908925889442945226717947506806655908966142108352094614987072439255275648179691425762255483986011888920980154783045666474204910595407515149000772132740114115602594009339438406409674031615948363444700089526569051033230282290179215279795543442983553695690169035485912766567430663251173793088702696089551803464077150465375732781564511851890697176932619582424506160699663159680651717196119284675339143643960934279992586761143784646393382309110773108351530242060458246870985569037192200905417949994830910700044326788897697383173777680676386552499715102414170217327873553129744607849188243335948926325270976756301644405227158636176275659055891440071407881044738082734434668444888646106527887941702332429766766412256399698646068812918702292015433385954083962049526920398966538980390211031820306000455062370543111846608671298844092583166810165883468421912726097203129084632228362642766513946062300802395956492573727903820912160550500895416430638329592123000301581170639788233575448521720673182003147758377541921978090015929818719728088465119493927849598764693794189023005775192886737979588641737194569864786706862813054484224360508210354173564577376252409783135013513308168188826211996769867060301054886956753886108744542450530997515716815916383578313637166260518797291589436029971988094405138034866416404627492548409930319271503329594107851090868296450786836785455178646752916329324770073965200574997158699892246292665139565111821947862052701223628964286505406399683230706967108996325487220583204320053890679766001427833211022110675452054000667462749892497228825074485836977849538976900799195765683233754592815836171765031749321975714459221236104412046833973957917179702146664442548288974529242205810842662927505000958007404526672733223041634206778796593220360548220642975757221542154762404636276457141954238073279191778052922866738440749711744731567922588738500864026167003600127468835655840792038751494930127454783765217187373153672139548042117983313929847655116506478659608713226974722546036917426544049519893863344655523196564636037360737438545159913531691978704379092761959382459590396715186267019140174497660725639127300965957938575364889668586292696756311141536802485483670741551013569461924035981876848919208129003356804286615914446672894541001287661481802631256445245717118901526995110452170136346901505779223763655601811272366833429410149655250125526520506553214630668686747613023423379026022579062332147452876500365213564939836058535031694976938713667399168941263003886097155117415588941305277620935884795281973758690791065558747751297022373392700348181973206109968952258851619303846608672952151748729100643812250778695512281263402148958939229475265052126324452212325922825048624008718643281258567283758250428579364525222670268026225776484532764551072800071681005427230107739687182586490748766626340426816818713312941348341719569990639638355916442126396581087370650659633497182517420667037214892415006455887122397609304935395383490158119474741825035590649874161072727597527358726652912582808004334707650672360697062917390280831340397388914304555365600675853564877265657579701023489328691608670000124452621153806043143987610671310324575030625655396215453781541753633393143415481707695634566738860112294686996694184474323610160548953216266792313229444864270864952358186790837310604074863485572614638567832994776220814976359333816535568208468733088804400548645567213660758714716834265016450233738599604835972358540622887127494084958247433943068075789023510806036909295508582182203310404099991267643259946169083341570999600949750935733949438138899911774226856065776909215068724098271585430551185404151647108029805671024674688105070761575353502594750779029469533942855637847999049835119164061402783946884815226415560624585063609930684821460792926799944161905619107314972618406716103185878562297749564109875973670611154204851213295932502984150306422920214284205209344920366367101875955821344259219931718496802486164532297131257160452581536666523121499132960686228832758508723346255181635118167443362413165132484329764352475075906748386059574321832199211304448486200648376670527625453464859213025176293849102640263523285880367277743104364384326170481195422986256524270614847266571704698940805413526929094358776288270792585816174333260274608278913953399352985481782391319402248807058632479292671875980993913794092933933368893776775991358204202423724566046301236871835512945940383379794285101838342916352647340807582943015835466292273716975596886712376521139289158839161962287337668938663922786628879641698168799090752759975269394272190834418127505676180958201859812636363104095267004358348752289334010643006335673906086466148111482936506519987077342698274329715654752025261166566773274093837127815563793854003451011181461608975230437142374067256806252581834118119251259450481140671475273913603028906326720887783044123991941020585708036811068584937310127105184455088592143692012556227032886140861639737309723879342984880115683985172879071993846465467173182408174927328806406942046040259247909848968948762336689569946269323239810113668253089555952707557014906621971246485335635322982600498396824571604068893014699850773922585402695839105681424732910867413366415493345244292271713430322727747157815974416770865836139611277555802738551634227608286067148630351991114070389120072133650917479992690061112109249537344451845686949779229864574668286394241012976716840000659915307105763646886464882496500242087587915614561301513925004988176200316759931588455822459395124516039621312787941003062314228499132183530471017647072682487373783840422298762893789255883228965775991363023473963136586054906050730084210009078956545937536184872973553849240077276142210808924410007977488151667363658596376493673512022978518623612384062108327833381507573985036419790581699387600175496309949098527277471926059392237446398037338995057997689718132463130844836410061400235938343196261757957841481262893736241293151118255094634404046107451342327169441963303877343183311246494782040036135984668678208444742326184967948833945401285112825611775381026764360547893176005977120188852801528315032995336693636076234098759797000126942084945235837141563189701403739287978179244278397337904486633221184359100044200194606854981840808756285270934910444469023628020775919968614058878617549872682243897428319520540310541278461547046270314880403465205650681231797156094660218202222935072138292966674641916384985871873161267827569878884534309267482088026372064182855351352152063997817569710150443632038967581766192171151288161009324757752330846256576685908224993924875015722083733084096663652085933015749703375123482099050304830399885737101430885631518269322230304788854857460866149726272483607251690521297421625344814620102576047760546303826206145810960721573923348636164408472132927903535313327090439108873975203071887599197331575780896797001602231310236781421699093771358342734184151728161561633032616737507840064883666529992708422892547665634342781627270243243625043040699685218168973261342400834938016430503197002787454996688035287232267133100257683565846514445045375268782372472818853818735834267246128439470412881355144719058435191603046979544128460371478110013971444917488648082203618741442712539833621729042461748953841012669864713894396655653148697747578351807605463599951527564151409887237439029510753896517720215364192721883279892761760581780342725782731192163839853752049445978171496416420918412647865947375865269433993454932362379345777061971513467345313356612580307359570413818359129895012683577441329063088130436470822532641096575910493988354850801813303207363993886636243813167207915638833846165231267336441267256990412173867513061942752436467610327224896821145682623269671091839989605869580399270350757973969479867812653754738263112601418939019923045547036694601218700473538851201463622495638110001595220787324548379637343294278596871954242092566071787360569630458802787522263023827191935375943213136242592915027951302527722426264634957069526047573559070796656912246317878781161875407083421213464192305087776910230254880288328686007774247732322010363200656978238372870003816381450601929180391573833236753237996106922600967081085328426926931375431968129135149076260153205873349554231715195649809766845101594416423936192075562947090574102872061320582920966307701680899901129393410148631393567859682904877802000730995283824729777899257698522634033075409857367314162763051376017067742874589788097864765297127646727346785569611740988525971494185957051344587184759369403576745512225840925809581858235070717771879870642195354745188934709227192571531196587845341470824824952092993460114964340192903103044314735594814662503218132010887339570288735996752366985567820291504323650183723019756273121634525593300709173508454332572454914622847589011264310307158853672130199357030876906241025403929958648893984556351837436048485306147991490687178514430150587198178536168591521951799659442862971080301236507417135153032980088169832573084110694863068147646525103877745368394959189746590198614909553230010785402208675019296558638884549797892491020917590815241518943104207955937724507342620985819016633512690108491640818487324881741102140160870005402299061338896870126671674296287382551655074683276418016121601802641764423541147348124636007454863948977678394500819767350532344344203849180159646511023751112195505706643009121244518504134374202504018723138925823706791815958207452434109421913321971240287739798599449601070613334363362586855417326495173139958733143400333463671118483731424357381079629694971267952819579565526985478700167145001191571422530193555045446722094381038950850487330773902411251157874723421569171988329689238056202484058351589166457031852411909048539091423328802098135026865478833847105490552770504658805318609803291200063879546606762170354810950014638220146948874375953675613317357131390268870563744561428893793725953727244917644680814804621386550063868015789755405153988858861742739966284736482970113626680789416794669835708168738955949712471878324352269105367895632872731920223368847121600221192288973048931547818105324805501680564117928311037684775976218400670620207153911103477479213030926428256041418366986595162398752794295481108669871189275002090572589468864533676440321915769326930845645773987204826964201683338143997709024556862319955349436271169079345557541076795680071210199226066712096549582898396662729980620357393555515131572121598337476034718113879284940401757832373461367878044949451357508152074889208069546610999620290054865354901549179388476756207213837601711282954254633462514523031283333434431319582913165761063777914094509426734881109759755646580917261884528913142242096687038257485358868391462952347978605532800728580556652162540793880664327287490816469455606435518157952184037090165814853993260109422456586388827184303303663370490971248775769036919332661321921903471244285422353624914441309444619879566099026313924378601126366156690697773461815634413848212356185335753349964826134492640103163912082679091958415844811177337047959310389781473545360667925638060936082145966266113543401379389457816208678259931464693927413975701678188291420127074772224560579394736292874634621522439111128094014512405029267714982361939804089145485454646362514900129461361196434532725900652798198735867518218325205571871184717255047651897210398666242669653348539575519176446231067850380796874643393730214014218255684263516797847626077310633856494763073591697977152478270665280533036520080997755016599385239057362867840868146610898867550483407402700880858425259874982356241257932951572126332250635649050006631197556353711806416692435688351062965166875618756645941855221092448991038349974095434819419560743806659378451723521489770507134639221929178852420176389337378004616726249826389915803277670024339446863387663834201682492204291788272966627697592249245492861306901335143200350323573452581627937750579999115331709948319459300369420922705921902562400251507155523708446373361307375691425162525538958682258560452162664607511104312620036728888088788534594262000118432448929840331818658927763164806819373390974084153630712343084579064823841357281357705678507505888777883661134410349516352578651999492466514614694083617869845152314457220436674812653189542963205192941686905711594664125014930248903467527043880534114606810373935862876937499877489857943942440921940209399796883686831794617904519275480970409515051278981622447980344344966958994980008225719026788273503260420570344781111343175178317079875352320471074844879187727008205877133790271076888871450393770439710178332238838493786012590474325431707095566199252242329052849500228185248272407770457400606868429734853418371960997339061344299976072144091257561408893365437405888682967620566320522424107777106826282127831598176057863844620276911495390845651973365691503212145551560544847293088489839978089456879117055930148360557692584966746089825957723558724687610072605079225380480031194488944729127982395838727236137269923954162759699816834822008206523977682171506122861478841734942900214860773060582205960634957267779882498354562202353742669858209789610617242921121742405438017385717655256218774807210585067638521006880188718206056718245837310840147549473493296799126436499349775205745730548901600292745553702757502616464338996614608775760726132272531233684246520949154262893565536962774408350963859536386569144109989551596722389877513822123486918962512277135342010260558799114012036536578340103363343924548104901199949949449258505488216240984563823163608275770896334420187375831494145479610797661214107367320435587129516558252498211336726124758368515634115358943513518702530547997521941088402469452855269427367875310969185701142747350688308465139912720859421611013621326751917028439119240877369108707474742994294088457925381780106192023550259183195020191796044360003440908551149964013388870577264292753388541551308889680665654648275359029503617253804573515439430225594308885324168448808965082181007072854083232666346122635872553981631073898193321492120054485903853185833159790255500021822795180656198029980759446444268840853801563263971249596021414018181463546437673625306332845903287129326802029644090913548847580610588524407040291489928309336158238498050930876760560891653104258783338650923175468197224594972461025192545807317304794288116285437965010317967951802953169212943982595195420823151819496821535149337581851326234068339830556111638132178592580337817164524690266923719214285052263852893595183726891553424957532382747858362208136493183940509261991526965683756071648022316660194664768155800532331568975471591289316880637479033784639456600028703863130819694863947307583578251707628191312226573678661234265451854107670142224798298202302671336641308183826792246753484889742062178879776609072658330713921052399049799509771971282022581767025906910230059010367403212788825361511418991065696129504250815421266766603342354197506806135695326685335036911521287351087300341798007422808138075890510020946708220549608433097009415968517106915714790397413008393090921740599864704466447534106028074742500414802254519869016009838300363650840155106865966487346248076819898822474098115058067586143742035934868247808617589704128465461926324146138236476152202374516272712797525386688891887039284450168365490002375704230666951277892298908541366351761592075813463349204242588586764846588099764710747708187487165328497162904923365690162999760307956463679264137241331879716106921332709970928724598384465670801525183900517476415069886193201393443794073068842432379607714958736725762622363767466401557919675546159945732474772445786008029358737742324422999211869259346766028546429893901654397793354275548070567970204033289992032208751553042360861789026484121771964332310608081260840344311443965723625875633702743427986960342212376873093039389388398463785404408417786500519398723279629347409332765910448072361382911362287770885809479165479817178028559247711012100228723214525863426740397709072980116770299600004122870001351283707026319961671408295883940400090226076294456621492448950154325666498460098070299375218598798363580947220626946150534903872257816384587500543082734836797425244698150698510345135064818468519504575910587891154870526717736658124635597472390813461683834817471850020936018001287813616183734368476751832529083174019612904830620368700966994242340365153123423449684759173909338536718093531563726330480530566205985052829200284092871759410663370152291685095183367888464199437726742737046088217557031053352342398928396282410359119474389257574035000388160247787422185992244645890340475656130090730409313572023832480206089130268922115915476296393574607519926444538628344796107170083698350037655706814850530375965158350683747410166798272343251982357089977756242776674997476652228644164971116209515863293800934918975185938367260492576946071436685057054105695546881654955500793406512383387785969258311477169089429989404314420163599538314167703944456287503943875421848317916833558700682225993993376295309567769947156453757887552729460604736425651692377913212013809480381703602476600663602330639849693429590187083491787347713725778895909829949225174951385319238829160836399753944936176943381743852749014378460326470015911134212629269421114415805269702693386604928418843091341083675474855804186137505001748025373898375825585797544192669120597527633148555737887982635982875416419494480532965240620674291885593319463733349381378877547495407648620065021004389437701821268030772671004841531759108587416016582043155676083680633533191756586479383039796573255017274032424213797893228490754214424552126674387026640871760263793440871286284734680729388366634821565341254819860042773905486314841038164451388602016900677711109520978245586313090990470949142957697782156418565771225650293568080505133574003241641843073946746718253180754022853899441069016263144227816317600132157342943469155676902110797429127421050521677466998565066442669530653778108586295378406800001236153493919504913375016067263575911799564031366408148943662021800480203933874212436759654370197174676014048252050332593563988632066213622034614722320847353516552598151870659226589868395490961830677759141052932976124451299529544537820535120648066148084349232249007626500662254864296473067328620949809843527577237801679185135702632306877624620710475076292151762477149901573185783088165530766585858332747932061600948727793063845158397797278629129996972756223913425837781391982166756166615782372111998871056042161346138414671542729727068353961517253051356084092844303605075545822910221435767925299576342220102439051153852246393680128217201999963329150721401322023616822988633006876168006545762010231315589479470743758436913130892606810233628234862871764902524952996572072515345846684500893380978156502433855139376046883405144121626277856846567985460091725477309630119528714384093278203674638067945414357293535932644307865079082068442480577109292785978485455104536216589452433511413670909415790044458893265369010812611340657239670046125071524822272636654098250196672435606892401153744550405275807246099218257708830583938874913289623397892190654535353271495761757513145625636471445704973400227812059045217956991445869218897872839203449278323986617655732844592695409991157727794882678857350581282411862075978740323096505879552795024722119152275059084751126618765492874366723619157974474285285781895858237110851424972843195501092983678474197688827759772791023990095435292646345187542933361090706878317372605175966322135320810212538880361166309232189391952253734239577955517516698565516629900162267974355646290849331004961302403218792818236744121037069674533093254206687354366001370499965073951529022557267916596716942568389111731961191519350480122209277047826165960512671654328409610311180586860723916993370232907075813374781965948407655772710954748784838790035968641883749002900365983253837509485877465834406663967787491448200634673128472056586802929816194126488046944744117977958010576859744974010570682125945464511151457161050608790962924702572229887414185702286069592051410380529724731259086141753546730705743678110905160310707901597066086351783204430306823555025904917630560763285981717568703430831322128675823546530286423526694780198830234303007551353352551426733262047018647107229108951958185016110906855902824216258857091015056031814587260715780879636443869118970859584929317393866728275624719293972155528132438872535899480438420949135150562122942963116713648420723623800027389022184023124015327447241502403434761436063406592221317481871987173518076986732113588801922703692844408616953635046818190648547204414140685549285695383179476104016925673121078357442368697977635159577111229390323998019006136342955738559446844945512881407517506223951280576831317222871366930308872402126800225033173456728739081530638755312438758074621368780662347550582725644675413813730224497117324415294231202905222942093690498241319333190321286496196133260633296005762718094753945939953992700230324025229768324053497790130666982738598443400855570779947847534696393918592685795818030276058001683514202545239929690639347194837696394227821742194810567378390108027411826725848919763632741806851528994970680841287156713471715496709309939709682463769916241379230158838342859727080226571387661419873786669224268444176877700797332094338478579734186467169017182747562801250040971777561290335788807392721344955708901371022045990839670036237301637446923684789864767310127463220744658319975635029217046064355406413898359917165466294472358029171492280704165990904155728516603920792125838999309037876285418637162684815793602622473278334713820620653085425351804423616999626868405136520085275732073122378196733555029688753307442877668926723440249958164133216943889380355141747160655459449801733344748467415342971759076852137683776237737643099480096828203931951432676305977544228616848523312263280037491085053162636405509668109376647823914587922421960462106287754688777270336346454193641510099458085303648017280225396248729729252673304468643593532177535856341836788353251479972880419891792944812070282592936321268289026434531407968098901641443015476622367755363109947963568012687816296795578542192694005918933625284349929926608423700703418806047953631470643105860753844093228764584990425060643048882255950771755609841562006390474238320311404036734305989430087209705106299152994119420862674664098087245232012022856753549700783565838225517200181721303606705067262436470967226963339563188962258442439735742924857199975274574261254323512344671782358873287598603756125448462032577104447936427904364625942149934501108926931531618431205467926705036029668436610283130995265135177239141344442158239528258351052931586668200551139742680295389647374224879730857021382005720047721101915665722477076947273531536478746678497742514666517529909459471195723191490347083654644251430698506059963414690625447907890706389826289754366416542718187600480667969481592749616555488972029184529893802027153209259897329315041810289083689590431090753385488882765374027091883650618902337948765516079834671332712028101792387318715938751178474589476653723048830697106926035873578095339903336472172753617872697533187564437804064843075878273858381747537904133364834778799503098256657316985408561092856348200619537160328103269757862417189214525514833113917417775994818528674405494930563807090528756010497283584562974152843338117742821803472365511386309832504278794204081076860117599033328574137502588302797073033223617750429464450439252934293990632645455691622598322330597592044176816677726215169407140854440504109320850855035248804990819876177495852039551378044721044400597905011138579313528365486870832060745033451062330919260782748694675190246012007664513109104588216961172742035794351261929543754051816463547227401746060587567959063568191049208353425349944307484429646060730566329550653588616425051636989448021050732608080699160287898751439262865719732691750261064916995824507986757462547217179791786153394053905321730861648862345886315252148019574113250915483992717191468625251110774127340432707967596366867618067142716921984154944341793845359949648561394215892336505339747912155612491789667360335755932269470832189356139180590512738426422018051052530176644031969071383396380077795490696898206971663763122337708950049682603889523167706198522656328514212742867872641622754207598945533561758034350748513719122062513413150181756430503528131499082287976018183316379027947505528503873791314236835019488715240219492911085418525198063190850301843795565684416759354188705842806010592327578911195928054795068899568781056849290514894487593075522364586404170778231236639444655979392472238666363994468027937834320283466072992818264068191800509236445865482954600102714490852349557847459394346596771352268856369054066497113546081346650353945252107300961386922056384521138422737126590369361567195065528035048493128796684692777331589864042347941519047262271426798680685683373313769546279621084065824696850812784633350050101096794831476458311605450437655531280107798758246187949766263053207247006374366083770332719889012203633812469334560242168965364933021036110103669112569792381299711209330579552896581135685657335293110187559412061341543992431401679460616343617976805190943233516945701385274920747398010545459665363390349050354224651374873567294226310679727903140901311171820375393702506533492511259682382194483123450507387898551344268070639287289605217927187748605727528035126531707396447046695488335631944143082926906208288689146952779236470402549815285481420198493708825796489434469581655423232513368469796578488075741847675170108410395619382983059185064287760996598149049124997706307862000037523701786979861997122324098142994595722117911570206690459719256334342325783916734799838018310428354226146497120502482642463203495889790313642591206190251285038914773624532999660653767053783219105112644064238041074568659015179389668668988569336924526369379726782959992315011905956357127264689264694741605826161875569576335733286411618371975242611054672433746377505428532675804042298214131410419281723333682562340751395518118766959855837243142947876410305562016326467347411300475709852801574048923441051558398725515689213447478445374455700399292464378351091525475727559422230098268707766354446401883076405646407650371538274610981134080184094438769936979940854873422253447072054740587083242301141065852969033513458045411201253374987521867512041031989268326848813027234406740109786435682965249892530649472784046441034566347983533214047396092920593957897723142529855621351242373830688253233236522345994276472682215790191378677657964601165685797205209010130531930391943644524382013123280578289623350090125375540847669397896793025873730293773803977818282010713551493463990208444409429318523976423219974106079645658578660264839228247236646949877399078196085666447958316418997101156012682312428462327189448503488635564410522603142745031434271303249894573805406755058073152391346051966955161740902642769325900293533934487845144259647952382832958932496871389178514009925134379800973150750610735757274954174434958379953149312684962699723619827727535569575900857145858944186467175182610103567138458169820629645741129030871980774140510950691185142259778265138066352505851944969892816955303835800625953908827157996093113688165539754058101322491527627686548704017571408917532519734867563768821675618265850882341778810390961066035357789594737383806373816432197232880774526510228582831621562072106777349510482483232672205699962718310455179242301094995522284093569232890976374141694496290682203596470227578929898682887970661775122494754724349110069934939448569530961274063023679353337083409293526165525109918735245449657076036575816140546057234168634801305737837892161931450597733030659535053154455235009362475798006729905297979468222604774744156572693467548350092566141491802185959416688022643693330544229983734288364314517717549636982897625497020909370250345255992530389298957177847594740520136364376818080224263479941157749249113394702550004737025566948627033666197875235944909341738263565898410662814662349658529196862049037502524156440886437727300071420782397034674622270823172742349090163395826814006459206259428570989058138986435640059153046367028382897206641734918833670133536249020433404534746961124478584386125452329470556876782584717420956321349423361601963418237273093826067262865121623679934872261742548274647878335361043409942586222788817322128139681560445549045863609558459215359032288096741092613130451856262629944211291509277275182557683431251551102165025288111790981445974664488557257799481382477962449605709096434547707887979081854860855452979607308541359560391156907249150204207468328027686334931202242230510153199336386680715699418266820451120120944172076417968772720912271731618239183197926517773495885485220632007539621168840845213551772862189298895089853184449613778940931168918971287864641761954896010347055934397266265617543541303340993400849467253012803603370592167275476546830744133026584348807560967850419188346308103789308981234169829315717860355066436054442164172314316958359122725886843113039939869206358048104808628221476593168076549948640985123289254142934676606940235164359782617050952155353622407873271808909661923771988671445260618519123813183474775926153320655857035491528262997700317217622146518224616350372414622413364880968888204792752425667585751831965369863150909329338242913704309932710945610948717296287792768703045267510312439916858003671844264614612308152351893361896245235263383205674538568447078677251518302870372093266611934196007749114392752486994539720930929244477057464499906631258435171659824557217088764811224472189747864890530908030949728959068083720806546265048580132040485583495971739777558960546306535147919091886623129935552060248727416517023770686866960110466649817814833419674338683046170808404457423108376286618892587488439231061871926398901124520344531494137716311399207896790688472786016861916822768807450814515555072180002562351353450340036042143894811159273945875103249062776588598405073809136429603225280076484436577165276924476327312755230741647291039858434362825387046481959389963236353625321486546907221497874387372994635401573054260987734927094038982389107606509104580442546235666217906467424882985063538711423920041986470710850174495096303058525054518371910351350933501590451145694088532935906750235618170784949557999113706733410159639079799886177173422948804172540709899258394931121670879512937557875625773997896083688136227442772317878842909063165191820540324751460320360818452569423235275065871519672877240986004765671540155389148779679837444679472377332462317873969396739453375888041437635346595579039295444556797126966238968939410184534625283223520820894852136993164950809194124205169796562454524866557854048169692803971279650164188848388441824712226014909443951335943513281817156749671436589773079289126905600620242930255030005510398501782482349407387212929514766557717274207903709499028175508386147491752158126462822560628458390354649929057233717707059506293315517782942840006895292080504099155070064255424835320924273821749735415442790000799611522009185268729951073762986555673707156194953234114114385458146569592998413199666912055224906933292919554324816586950017258569822420382049524831065735445338347245593162973329507335576527141004463791827581029470333319354577581661068007457153898604077189985629087896800442859368846876759193715273645735370028260992316661727638841738537973304750515465347673581100613650982490696546001355819696838659469864932711872314356362981962581043096750706297102322654486320189771374878125232562253073713134020542877212014538146496569723107916857423349659030243378708376753548781572814142508780776337092044999727320917373515420349569049980111681853726239496738951260223503212526249505606542041147546163630961420795639984139207866221724149740749224084289669447953765453317939773008689752300085239091354774339480932922961753081820695228531065375847817168179711618670476820610639247437715036192451316956907140917960246464876006554776971771868956156354670647859995216792591976840534191260286257403799687612208553069180637910568872210612341557280677835102256609390274114653176239787532846168936150115973425596927390412940512740605127433526050080157269746376463280445117200076069000948876890621160999921560186337986853065975773771848568854788259594707871532105167879020324022023411140488900808874809860504489524853924872692519685158080954380540070223299124336680001852689799521459240687890895956301591574858533515804154949493037303943778406068853932104453414377441305618573735709047481509841237371106311699841658629783095206044524391356967316181634539670431619866448699511029938844834209761764182912601395760858989728190938160764111180516416514427331917372639442254300223367278403330382940822707262977284116496016767387469991179733064371487112135134931467465597894991480823727115557010398237561865496144905515414442241270428807192106776802169379426698174812675859358810278417682252531254492149678864227575794441926318190200814476520759994700583557190827941852048095392436651438361021214934737596979323977257318754795676256951406968720902604492543914370073477817864266880755017732654049518654055671637324310252685339380190554180705314502102346010711303834239126517522587940330336150858892082492391558487145314226272800132318896129603641628577141078359118155187087154705512989558772157047301340828476972940270830902695516690889425703945079657429362729259523996755236841315616197782645907282613602016914388629038687947217267333039223507846709373919170667768802155243159785158564850702208090101480258694100056470635703563479321093729827261554402816603805319383014792773144012477945637516870425023238973706163603803994545014384310348897456227091034888690968812084399060263848516056099033697927170854530060083186718435845083386040803587906055977612139241823014438863136467088696563422180475314468615333231639257419473153806834547043027790539168953960205198377509288464723000503262182574042616742847268104915635240937474305682643846707787176896266824459769388106875852141874449147783911785560160523663791802019462055511177029242139591044167755082592042666644999406017467614278662630429119719796448221468200007278260429077029406551000014633370986433141259158145815965457221035039599054000573298660992943450832675124453384739130758281185171517550962865180066170999954902191810951532070445762164820526335415835628802585364048491354351905463517684336104670948850491905925530616629070130445827261405369524805867668254876850123592310471428297290544271000279892930463290342824206417124809685789464022004089304316487351437290441531170885849329926449774820891470372082144191647823643030952151239249407048336178888160328999226176759154962493932585439544957188416793737160629013824279530849191468027082568079092763665468442273486943107496592050548699050207471807109087686399863541222367844772063493653965716437573662758773944983560890132193273621604726461166593982739357004403606583977763168662651224301233519588943728022358092792200453530881801154244498208641871659576022426759147698019334398982609833968539762720123690081741268592270003402447373259053016699132722523864487853663602182037616163211800823301969895255018985608203498919870228582861081680798107967989184831502253995983297278697279205921763656710448388335960823316951504213160203263229707774011415114979104786844879403554646556237720842979351869521536944647191442469235105166409708750357307503550921017652576581327245152887327048229541340987436551287360237463993456329880461939409885620539090797119957714908706921351546010195877989708181879409747822637383807260172685223042256696478938237380501669354973724507300284188893965063915460801018716706146779489908986926502133713954160026755754499654271685482367689823822497643669653167771537013526272768885647992038064009836408434876490792805885463922861724736556884900143128308941192971562093527866689175166020559026736938759821630558822306789399570816294350079447420358137066126969190667725257733712891318716964844836615786235878783575771211463543811132509628352480145865137484736060633435257851093959664390346305042949362711663552607045974508754510072445378162767412723529972836737213289162666149992025399552317860650994088340136394227135409708932230915710326464921080099420280528713856343947024206709476957443372378719538361915498700671827312839610451884380778599180370282265015041803452587344896103489456947756115995827102521905580268473550687765220914915993904569759533084217704168671304509206155717807617382958467994460356106860864479879753829790966731299068878286392968407548547697247604784572896446646376566564103471627739979101590769131108964334631317616078680317274345128819472583344866088187810712948966236462970567970129112033796981459308750731686448918429206768733368903963035726216545968195246560492392312487967492480527897417457568654104418158650725695522838039082810370600193994090254795062593598753766024183320340900862934026756486663876079865012400305957371842453595186821867139327111507445143128495384995907720313425907796527467394985745674480615521046070893948163804232488318899716333998465257343571545384579190806230659700881912605598934736189910203714090870828821901229301897017337801734438673793378810720587955250993381642045450805171232341590393437998070838307426918762497499469522389380347116143882446614058654716048496310280714442872908824596071354864780336891639028970244426447728106115458954949836662918266406526290137381055460582330848926387937081020157878183957760979432725813538214501953419879259089095760053746821046049910739778553547820114557736589119106895672977138238187495022992906118461446807522940499214213124349218668630381956578122202941272870191700843756852160884622766960770773164252751203573371561485497926912949169270397426395425414255469074433053845950429317484327906009264067227839548799719014685133136030471715180148844223231889255460860992487588224251924292660079901752425806018809828345144002860079493251171842953562280262857853240887327489011869373068314724563296196167486868001094200054326004358694806197313250826065972672713915962918883697083267065193574997869684776021255189579479689328358846045876348317254365816174360493800692029477132894163921666885565669883913645753273916038436898323371838512345894117853280031933207924418754791835044057324923690995914489220586921891973403400823239296880165588655429134088336293344498403777416886976063574082593126942863558355164275507847136136669925486320323606644077704001408008324086805407001261120745851421459497537295670342848688977264401218590598588120638124640789946482209794754266334966619696525395791187279844453806149576660057865819489653676348829595154265375177148005226462195995404380524386507992778025590141193970358698035131707572786750976617533460378308128870618277796206293241684200827363677492958898261319667065243871858264874666659341143416321896261589659712507032760880530712476095225634286455808889330513470221231305968386833697597346772480700821168740683172967841398441874249875898871004205996890566050635978586194841781404318635491077676423936680210332473045288041017418815904194090356091764651173775544225272120636146739043381366899112670479776028107293707346137908422304160902582887366287126973979638652322349974194866138792954517621632037720288454495840681618884005624657980974382801065154826659090972696623538104230034369971260195845544907273894532917434427559716331265776212436083413210796801748430177144470124188496560048340349462326182049574510869549048839689995692589516640173681347126144263241597123299602023791057761666002199933098029686490910102680915150696507448474976476307142599496127420272065457897793278841607714847048587298357193189095046831325726746300240895783872523243218911549443148561216634497256041470789783731127895703053676636853960109411502928892369148924599351153339989841704772089939397980652214798516578328660837237330757558443084498952089900024068216009857107490290539891710681695315468633368684801023916695603780840432339898049938622635978804897787265723393673709923012272743633522766262511062156690861703676794282844134998544481300128055024402973684817522010714322410464445134548820415221880244510528316757800345292772254137292639048415930567542849377378331447148406931236999998759161731584760978063058505072285050068027687072169145011752002574849430101884187260244863422452305259152108717199556285160964897522087367994849026635884828324003249854398024780179032487278044414597485356359190755312292683434310877765137094295876799648550966200537472583153136439690893242871120371113072282089761338674402937917803846790189321403887057893791716326116849518822646164036627189752961776224825539359918790782118915931177756073999898537216686389281770403581484938930710742923447451596632406017478353280481721818189262294982428049294398310529476409017436047887677442334680299260038388878827500899272366858036039194514053140127437996411951644432420413890673631851457053708651159622261967259987973041952467131882908920071422451172041948268485728686877271366511883447863722215657260732553039993185320549156380781725381004566723976157075572135288523460991637368363727219702526493945663174748569330846296555120017224340477368994140735225156736257477375532641873624401888530433272158847055729603113769522000714329641224092356859878725804991519714803675981261704120362266223295111426896740485402216258670737131097333966169958854612609431209873305474345183738327108738595223208555891965321797500514864897903192514391816467839894216026425267035872994976177416631657070251740339072594678937086896539062665840900371559163065550327822274015158299872743122041588976905440702699445900563030442313950637690439265072226980181425039942506103478381789802794943567511102517909661921825447791746797547872877395106198898754276881519489180945956709578263237925569254621899556960805045745626462773200692380835135712461477824279177298649945983293302464966904077684361932714000218406235916156058711079356962014539146749285531270359889858516050564803048710783907321059845771583773377761322917745906022504931745156150208099746541375286918536073353539805874425047982599982606640536088332765447858305126679490138609260006788357513379637990879548192233858375854030494635004824014599045607264881924772958534724758090281188048824549405742500244200592528226342826687793269823241805382280044211897944789233124148875031738863547464986136597460721029084426457683131303088826838719761165267846869655517720776118707357717520863732902428795782122397695541259966241914002394879636945674503734426203625247280068914962589228494140520506425265252722091917310940770660409073627181222617185317169507068460199372905933501801695130821879015766323426875792945936231600405277584781668596595580386419782419205539227711422691885790167047500214609552849781766748037518361286910378870592298835571251920331608790524637638247627253913046317582239698957464135199798705289334082418195656336161153839669643312730921461992926805652257799210930893754234583646959264299203475985344752699670731994657389382211884781839281595083584826753297784940329068930614998579126770728348023271369355488041466451556160409275978358702800568883303999368327971141899829105570882185773749238883264275428951955602766665199151378814126225966971375059669165985270298839844134945117404450165101216344286622287883749529480993679709720000786276922313650699356221633285413793610123686618956515080895380113751428952037162210953304838001804968297459430502358558041519027081879066661527222202286724654747437603390012445467845001706983346465990909004968836865353429499763529547163334508962394485040609495834458013867847748781449454099450520949821691175882092954276954053322327327405914894670817060937683553698534353815759275212035482973681471841689403934527723205274891019337449830299849253356263560396281776326189983616529542432736531996744860285047481444428552524730952403466387690088203616998294984220833825315358897228973855528752467013697687279411488308501472178534992962869209314250282480311483423850082306401838979544378711808358233773338507216974262440012696135639478297870973116261529150847102573748232078260035246738950364349955626701156324577098396994730175244098809188111257654777053128976336365569696922007969006794612793033701378384636099157068313585406642156018303340077673455461803311465761519892247941550554784495079077946920459164583856058489740754436385182210866229763503371463403048358682786574165339415776945924817811326418098664162660325955370370077344224864226964539148243073819769632421448513437316253542672123357928301346787685602899160195242095019273027924212446057673391520446047153544603890533992345808865296555326554187870808616458903850488849123917164457438173389261865560749706055302773266424653484827836711480425431971405094793151980811722742955844170839009443354924969358629751283517324782494830685353021923732223909406157820542504864075380413358210538296627712552930441903588178128794092929120944202770719996113374478702355688047746059435776962885542665553626530716348277321154032634865578867498439744087075681565284565755468305148356769659094627375464792687448990885555794674703674102856829771223625947715217721326054279134818681987804058864294292543017000268029601343286062574268654274024895497834980255594300331343954552351411217609905277375009058166138201392325795748702801412732495921532771536390705909804895823420564967033216825903800224892306572025041689460233035357403767232902511910418441457515284550115803741230746315352639869997504249866130969355430193625177220782236107845145827420287161861493448875033914589974437652028064900487956375353339450912245189820800791980759715029917596644318178753925577182463396081801316541132750397657460789070602716317125193015713759958707573783810134403607677032375496417928729108550338250525900665548457756526032839232834605480658481841729795010202284183432197305044175860251086417654359704204009269940173542614706024982113457566061226865606858809459570631256631592969112170335048929599390725144924177561813921665029723305879877666872870281632834026304955532543560765302222969894196332516086126971656860043064970346279190556920906491220394103771459340003032182977663828066389005929863104946705023775543670909443148582175210558591978869540056021209817692158706280686848534532113305423126919311967399617214105799562642443764116022636850937062506702267968493038652457480756666522056908403551440187933297930559528334118297319240837053689119342718805534998540704480169911086583577787130816011866745577695423426927708049946926799956693595812052988134529088870467372640947036607102996229165744276534908718991736973260060846470171074355678101318208739974351238191055526402920035981149931891517276958150710287143322461654214054379375666322595972217462318369920948571699060865659014424120175144587983522471391836827083806400340462311788190774975193313148031999443458445630899575754851116937014760623312527172774992634469376333636065183145717044562919793542468456697521744081432091126011659615069230794091616043280287339563874336958814647506410278074711080809146796592668373231229031850754988665395054405165813580474072899637300733731306956835936420713375296484555281610428765180225214667688646901487391711526594554275456218965833923801233864104023452808442529034238012593552654296875962234394442259442752057808045871721121067486389259719097061323448230639215738705072231004246656288786124146996311218601880665431338641190937309216265295100351449096844432189570482100221404812573380698438851640279238525642628465493005033056584789754385985096973617447812223761010431554753755112846804617602678963599562479657130901974048255007555527067252052976401146599281195076331748305755912821671931622675525930694014749104394512526452196314321963138449328630476445013798290361452946500782435859250701128195697676670119318267705042914523071097678319560861683833691478022234043591930125508198252534881670114830378777512175723502711951991896430089982099957512408783202466529513119888681477735073452149077446836366496509488736833886135891812661059794550137611296114454168881466725985322544829879406099011466928016746361463347431677546866721083345333261045369019918363080239212038711155985594405087534413292215372517849663680209439496732887587316999291146799336653701426490203591461498504542800085041233144433419463660465745859001610500720851836573697768398585523166337526719985824878498026706999593790862481520689997454076194569425154358866552846788057231079302952071787243058877091043504360395907085316996847180667318995112685077021050635663690707975092791522609060750194086552291632480300621441462299424404885250510120409253682944342128641176430043320294060716667411824165304317327408613404135246842445260980968917577756445788668306219727373863044192889772328325767690480723379813013281607983542540592086536481400381013411474337038705236232297388117637958458590915200996727699652022176655986826785162829871101701472093483815106396834092292707164486200172737670839408476719562127649936814199188303970518258622319319042755358625250394434509585866802741123132150581410108037478311103652743472889694425403986209818746604679822140078646365100308524199094484687162725853555705652076575811082845748073355107719569053436663221915969390999027345819781357226653774166934229246807835568644038829495941680520710748621440642075153790460868150587147743203251318663681756414134941549890716160642915610672527616777815489443342953154642787320068951285045414604415754618615126999404374294068136674665143264853913115790910809908654511443362920226474377106980493125285304049597747206944865895461974415813185645068626089247056097472785079311117809003633528348363418326582778823937723995614767258558650913636336925483914595861899680866817589575957901438415523106582287553529600664342437969402989098215546781568041307778414530124508134456236707899503033227056242541294295466691772547333334115382378127446030699757824475244907387661363200042953941170555715906286408653859947560773652914336419641361582211445686380495322258010165008671059322835292882611536552144088362697658364424919990770756153388558226972358563967072167045779275786671790339519513694613865995973866047201408602264505372244445495465303915075198979678921310806241906894693009994966514526673011043077957561574112752146547724533758578309961356712257855181900923285747438505484826954988236419504718842459120367401058063723785316687103422052710898454265450003502332192106762203321202672498303120410736648564078141165320779384904905153757789461639379568884497154202562709523023195348475931670917485180602411976357467210555404578391071067785376590554073830008516481573376737613318777258827448567912228792336004961490843583788240388957170610656804958319289203874452881280608130223742868918175575510573908622750056425994071814974059157175546330181103551188606145169036536967100755042362642408704206357545959988704316170246702899296684900230953563026005905491797863445951863560745368950299960568235718407804253497413543416280476144565933522842618222803509037837241653309590786112867471839734062940678231666673134444012415495864875680110184158770710873088938245375213986117349414287942684304880591254732956456753595490619071354358032890280523253393811820517334500708224953523674334610546173541566199284686925976278123392463051508488332028648076430293847999602947106934555900246894634753897174995544773827750654682567004140738439568920136752802902381070181422161608677033591944629616190924668312876442794672884323295431195740253314156622119837755128914770263843696920789627096925615526511403839009195323131418913500840896642454066885985298898676751438558187473599545428804415343762601461964282858472824092686205137007008116762241139507901228498736808699648340967657869210485620517231411224047127435043719098041767779148063128497197066049218990604885224480231255946961058405178892837022608372998259915484694633256318302683067544782201661003952193476878620483235653261384514794203730294805982130439507615110650137823024754900360682130026717159173667280419893682830528032398768522063774199249912399614209461352738482510517971580543263370881831881249115563161283971834503648731814649178839520977758054224865154393309009352895347484844855303458039775270950829379327101423112456891751826108408796836268679328412980615537173970694444201852241112542889924967497194496092181647077333317668873264419505747102618651322436972458605138138021065729520628893565205899095507464108714024026646799818137245697667797496245296589433780981826083155246245613230164175004923305027379050730110704941504293646244479039021228996875424201907241163064279771999248089776149848229563068165658469507026418141293766922612201491072979645706268776902534490759209056704209753481720500839881482882195384224169771668318045655398910100578715851731935750583778282181789080807594296625326943084411878148172041530354986812259301081820609447375453298025858999515742370361988111684857910701443606752587262573659619537839161308750820059941098578523057800314877260856698674702555337139796468078340238308953697662326625519443037617403218092246935210844121907741615513973412701384841502954487953345881522688185212937493819819477054242078229048928024101039417503249914456731913965385146512768649002809396919543259406589467094975387136335096196663816970107583908863997627566995409036064801902356498200857530352340864605625096268644741998698106341223350697900154789639649926763195062040628440137396480814567525923500743120663146387030227091209160591137390091851459650581775442500296622539367069617187375952516767574783238060788116598595799201274497016162540301585830617234568911872941539540841693274341624027926637637357181186897005262089121457349686380277869212548689060584058704950256594772545658890666487236756114256072610588878243958170551423460278900858435435752744420620409577846067121854869896774772978104487520640023135920445307949366276029173860858927056685236140916713405577647372066303429351149916928241184974476775375293466268658705942590763655647871104233908871647954755848262746522975099826317140035514980337503125681531196071604055486318844006615645355685972587524385364409053913084423522385425409977629494883516542681088610641123933162468286771528392680110996341592072273247749643261164209328085045041350991222604681162333145707162311813918036696606635626342435735215476625667820369777399532588334209873006217381723556997868473703808315083930707669692391372297577334064234165984005017941793044330297648544496028197963902946570235465241093735510236235948585871581979664944417540252325810200810801077692928340800315727749905149975858211999850596655296855393651190652667598272004306189326875331107225919041989106200162611092988492546841963236480287637098080846380986659452487614316131610377551859753162394141705743908319842694950407823171105262853160426963952224863228426184896961514619947836197276328209526020917721539733076693558449587357647329313809692197279002016579724602508906135222946764497233542134434097470500761804043999875183061770077859890241581988221533526390970301856950236355349572243473443512466755282190931642093738012907415792938881625544852053767252228712996211851414502173352010227446326023197836837436090928293909509227751512296318445132222304755458168005304384822931521206758168070814370863347810533096045689562814080451322962677213442352439717787569711005885349088033552053526654042110060582930845977397038961462617049664954019599630061584752922470287529763868409876260244495930229353176627157294281552722897405364754003736942713998476114734227938182245894850251536997334382425480062633676627853678828209350205142709118134615261396786139881725226852689538498224371149160392257340557616210084625994306413290508339607471533013769267679478325487850983757555812036120111730229333319019739329381339123483000774923492856884942330761701655114092409259766774927673614400694158893168256714070173515593807671015460391847735926912089006897715102650666760977315105741237657713445422169078019321212484747382746434397215146424172033554728490140074325625098221373747192100311580385801759131652267440034497376770377365678314370227246948879323899297438512446843672636508453029713045747193199248014443407051962109657653597426566635360489543507412358387639936646701975127674246002701494965701975496172377363688625585852846551447087856516090037897458267974793576989378096082137474187265985585365614924960850613425254162358311967084974424298005559390954037148877013594994814792415975151400060233864156472624488981540131658588359654689066045563610423917897026988891535228257229901311736242845662709662502736685982756485230097508390048778589294886604589959788540610807548349489273424972101172341621964591699001793840889505481558170864677596593681577246133769440022540002619351223224718460165750633763324701040352150738625774112577057162400170686016770198788474600125652075843142955998441163747943816879219645895146277137730803748989628260616536537987269990861550990559282982444544470045111430044040196919454756679291117715002498425962449540920319685822524485373017672712216200451414911580816161831952327742227804056483801047347538929520636325067482239356903149145936945383903612430892501571407409736257744082885731005174988255555363628382251707887008087796104866699541236214489545551039024513797206559109464674582136859321734483695076151356963806608583650802163568826103125714033051134220059793552714047636231791511590579731601200149451785289515756912282938339806686058071311037206393167784158590419340819857646015378901278961987220616766410622510904513991405730580276400310992994563560043184656604643052896986996957389729071674998805711061761783174940742385990066986974518605250913776218492702691208513505489148141985983071801915556639724966485773621216039915595780066583971443744964036821618928486045840820058145570068776297182107856521988307618570067025571853162218352711175199683485600126830217481821389703042115286761203257899604862982812911469623459182078152820661551318498699818001953425271824973346406595438470595230301733593817467653155688535277985277321334041667272517030180577319994746060261927698057712730266772989156549548080095337338756462626478542965833141907766743949988117066615327461725820110229583797496302182301471899751959757226298510281449811109432922414880309040931464559810774134872848722587101907093240092887079515901073376710606870607143906754211940255622341884191781887716558639974690262159463925678361769899896149989525338680370345062766314456450467706049664021573759604500916531173038880030755065175800058128924397881770399448320686782815079831604089817188607757098700280209651507596117894578884076309885790582078937469491229262125078793711003170619017243804417756172488597885335378467416076004942691774518254526474680228026177548457345761814125295307932215160576351342815138101597202524996099223278103130806168131138497978103151595163201918809463904520303813203266795547094654595789338206069222511366554258877887775164134576120323719548828237779480210382503377709481405573394395830760711892011197239802690174754643195594449296487548964841125482771411961029477048268995874575099302510388648422923919715633791411972160135739434774870763697515029063974595165648921697904160111119683693422853326990768801746336890869613320622146431251308967034605392604833346030927237638657703236876564149572889530543637506159687649520406011346620792907599740466827304618567374232351266832329240979469499056946317375154096948657954617252133531699267002600649827369919558339748268712094827435132994451139402286467844074291720405698025212305879044264047425012792314871420358948470056802835914661588715081165567308181750453987113003638793160132585865345410210459232780148168962678709191796192277405427255056828457034489920896517562947012612719615126174033574699494901416640404299387293476280725169439044603638955523230089657745760024028210949000234033559357329196233426919798837304279092965036902742142997837684059901724498729921719205758847402059284319211551231164124729716388513350866170978410325223580166372734719993079736424292308848920595774681800270971939217168660330021647908511513444465503751056957990446018058497450250097033666572441513183211607434446691824584316956708169099276091477993410590066836087098594362141832156072725058270740431810974625899407333662186217638252076744448481498122990941107186094551784968216542871767926235697537992198886731609663805653207134254594923208019346679713222479390802390018288498575428495557052599336919075379949487463826197030140066979932182093670988038365601090543778330424446792745804391619142207161447105351784682080912922494982304255340261170555922544783309851657967318926328182231266697502133630998491698524234387916607530567228378378135776429893278470060036891653417288654295382609252001299470109994254353702741253705640819049595433706981830306514950199797219234208457611826674635262185246605395235993710220025168139498844426089126923186860167357106391850818546555785235779201570064989709500850392412932385559812423371205252187528466986709564208822335032020894501380994458885061752246061897868161470222401623241973989328369540161957486410079790667594641213434516812355728992778436633128838096449225215160477206450189745754770790202726310506404034235240272370657275646683587317485482892468699499685414414447460132564157387309785427149731684698205231347090415606878378174514340883778895860588229556185957063667973038050679747999275427023793667683585307109725683409803255849017426068271793807950007154318809552954391522316305676527496423455697153441299004345605677099488327922856583473477877027726866451023899388448113133905833005751972944459899541759214883085034464592909960231468306781020946468880890155350323030477379684108529676273300825959415941285312502773820846614072898003226280232384655309787908260537139402523824929891936341983952899362489200514006476578598471004123377264191610937969352831265448020480547971835020622683201854266917662393305293191502218966069802341678338381491804935100980022036295890726318493330912010270500186795045988452242732727145322166624393857730354682700811978010480219714828314609975040272635606219424049083154108096774884412275225887815346918812850004728803574340327949152963290102955036233194982950829843742601910123048009540481007280643899622758902586048459094756600300712856762111252233103008552779492148968355692618513738880499984229710534062196212230730735104274562559390742266817629125308149067754854271238669510848992177903777697880833605914044808997226305833233175138126080322693154934058624527512062972817213187468569999760830864960346679441574604606209355133764192136365608850812603317110647219884497040452940724806871657012795395192016157710666199231271349140224647800222596221638576145985956996066540625132574992404984894088593906304378467323180943515590638818391423186471644966720529783393222155683591048296987412248824859194673225798111774766077954096575550987877352495042215392886777236908996034783323470117965710448739248359605052999429100103124434672849624576312801574563595743535795829448490288404697628920963380753638047255625407235286857230423946505718415186017599272090980908903200792626619373042206166878112430612235534091823821207047451088157366244127371246818338059988974015155012531469897386111022894648997598379111174653761157455093329267047285756750509353993429577463694543707468494946865238909994936066795706453304567244108021067110308713905163563609412014067266668267536485668782969699782952524000632939517630022768584927333830904152224272577989683891849440112386978830285397748600138802505688276594947441703793690620880147114362918997030411826170590557749962480621647755773725694898285566037247997128975128106021617693617363682459129988048718223644867138331715536967570141100707580136678438221326734692876848977379227171182934989508007595784902823126675251973464372858913216342595600442922829897864398675284969712167150218033150418379663069328438968538063242844635375011597718965211004615700533248931072520139981216923631019858678095624009496458051821231686499442337519945693971505033250018730949412964914414848512566641539049337379097197196143542055454167704906031994802456939776244326774124894579467389536914407073654971796368593642494633126913544451983311247647671032652773561800268309470741299495059214263870220702150290017023700226722826065478401791683356598664081565461252391246068846504864301778916660046965306724364176161026582297463348087774773297507526197882168701939861829253435175845715360547335779354617397572872662897711768604407646731048737308133212603042168678828636434346555861646562871033583065543412920340195220905291687725807771618570582795672432419953136492791987808118292712999469730045242408264376929631294791781916413246909239559219665579349015584926245906631831686185935710505455025193214303296300188718704529017607814773272408352394410846955900460171083233327760654073401459218961120201086499413225788338332638081157261135226477565995442088849942272835466300190922128202230445406554323139119885487316593503091003239446245014578738894462515235443810173910189005166410669386847015729226594870197067539569669342051674813916953791252912891767136518872963593420548557924592374414610497291960883789089560268472151301249618104499415330949070527167245262337775141310176642715540311857337258321394352956655921205886816216198118764487311086848983605668712818587276285186651732383247653778382361999992909685280828308453700361612409337607674167520721188133808729615419592552252969164202888883157272008667935795097744875150596050976237414276239249618349588412610189419162649917552812556351084768805418254907886690033611756101795637333283581799341632809661481020530187298092629989750775283176418274386494673314406707272825500239028485587661451513537544528722389786844054372248785221592379101698245002801874239415521539379321515003577911567764312028094210650726633779313310674329848246804365719021315438998569241487573940308612214264898807414091139058916638398182028993131796409244262691145566136584761457068689435416336457633980973972312163317339131642008814065592492545914996658395458865629734034253675708739517897925625162892408256680251092467992436208547298399761690790166942780185305352788681682767955271888546416797825248052350131413995364980536422442844239373013226855652130962124609635853408280325946780150167976682963258498633746078503507497673614106784149761483866264527915366694138858477286171942478374287280735770040420194025544002061927462619946042396704875781464767068932115624028839505253230328171471150860504768075542594217574418122405888298190224124312290333371891456720322916743208839578918067741200920896166842390758711822141767347020407034044224468410135689309395897755777604574736738638895953250544449302676523778383390122266557029766207837501346345817031150557931147915268331270304328595568944685613111965136573663112879721172207215530908760813013431872165942316615509253363765115475125595415987371032715890100679027737466014007288752587226125321038486037956420630942379563414848287053220907375566665642485740549551648172103375507242231406735100600743938908178796919585596487188021121282340729897763690292666537811481236152622080261415983666731893051003973805898415617628818586246486925500426546285202740535372789881339834357504009977274759669387969249140554172659642155952567921628314752129097749587317608336018271270105303006062585701339528054458107663642193258670509565536570825304103227444729615877259619843707045903121850844956218559617182649699316215545018829341432186471547106661570338873773344254310627906050620790890927968489752498093952653340315023429785413405789154174444916142620058576541694998832742984405705099134811018361781368907960575031268168910091334832064075433714618358871452943892706140567958099812956535340251049067813485469819545078365744646907172332225887184904756512881853590746757350068604734933312542207182475858045521273958324008751537207379532516380021105740513060642072489589410386007206415059701216376125232880369229369181144287631862901380432325611743145061150926435808224009846878221725939846306810034366647742973181000500117077705783567651768241507041439464005718793112787804869278325311845684225661661665078974727166900529237451809491594811036674492219356650254944091866525816729044527045086806482869300850206488985363035934620696764322654074670498166897819007015611794586330798148477452196055105538381578617583743512257231735812018959534600958327860391379932889728581544282040049103641254188118438260116204212706324354504203573126065141556859624872798569072305659178587394132195333826801921892394430648854046953651021132248057176299973235015548457356445880038196626222602913711995507724965072571177958344275214340746802168879136190303701273472739237308904585083623895332301913954247213383830056955026891003864781227259022460888929381739470822699176847089825991779810774491226129690680159478858256003063962340703371938365513590490197339606554690410658220119819376934039685510736824131673579207220501592273321335323955157288495695423689924109986098871962255937703959927390282044086378001424826016289175516172463338097472987911871930106584480247173387367724571341848829817501575155912638203134957849509938267336678312705225709821326839157723613944891805395632817953612250879959577641330792279621427614558847237907339335491611798608631652908514387819700463004097375604800282202257126500314940420156204409037934204036872357720462412767289748996476085825581679418199831104179729556694936836666963276233821828240200611871148052291412510694131487125318389439472427689915669527442422685450367711642890027348900677845665976185175537674205347486481044420913373390276699605224134753397235528686257077269792447845054090575293003418863335943071344142901349635635817854571194004042847776771047634490640613829402363912577725992963963356832612904132401475679430772618198577334820236325454812843742298040709244531834818772478989686182687208293889243991290930281192803834639482747324362016994892463206773445739138514885747361628489976766543035115804239865327967691545653936795811700777586388449349324778323564485573053002073719119022866697035869034226376253973557312229561165976636168073760481082022725071686308459678482769498004206920215777689421674632787975566519148494684688248276105218173717646648111211946707964326647544871821889998635180015742073372207521676021248753233165034712544171538953779933455154612233167346045844423988990378137077051798266450993614495998594626998007526238553036227648865772733461821173293116138487519860886356449701200751056855356547628152566605400794186782660686342270525132266306778780498575016319639905597883519826754391621860035944649147073347145855308582411456006749112069757416624166574007297112836008417650685466677944001179868698975895382499352027165997599770805660734893306352374195965185709235154016284025528084523669012766999546486700689945125259322098453596701830349351371558034490008216312165105319181646845993940914255728547418494877105908974190923665845416985665182370529360781398164798013378478909870189251331722443831926706193028606375020463428303675890548649879763574631823419468972439647986218928289387355912930395289808109824959872937454211760055870287345535852948180734635720871390966837934913366873559796265671906612089765626387260054986925069065025874980846971255473691736696511123793930173649712244185937136120590901538682952017613233887983305120377234168119786213234354514843269145408317779642315976472304395667460996362366195110021281213458053989641195374858972487583910787740726108405576852434867698275763909104746492213055001834893439844596346269397855163927328356028387641030333949705525995664126093285360749734376688422335924707061689194604448042511674868985526121182138255509591409087597208239524617826550773820342050509968518209815424759280703072245241325296990227397000882178338082441459265319575072437737960215448986430387540521505406478531170941275348941821863806345240805028833572048852910483125769132265570661727503603489465547097392507333927006561783764331043895429761647376176892278656568763731479463310039525495617457032256899856032121264267807338695182062268264152362292484137021131139389899015246367547293512683811836386403585892753016233045002926915993139772327015681162782000386643761566340147543637448505277845678869369686701015769769567736234907891396908366735830296553003026605308302403731881876368515522072313724983697090980351330112934737470382687710626429161363809757367099863500918086087815688700924235356242973554355799013331880682179565449229415289181422658847224957658821817057835941720501262137459556587174331744242830083689230481644212025155656483175285612648049446607278548620041106553062419414495012185781449970645929366519084754260816498585765623854024190055238815039097840777870535402440869853700182088086810024690908003411392920123589462797318977642641987950266846621012630361281877629291909167322160428020253777951886389539429285438507162195345097691725541289509191497972459934963814487809874660358037921961347367828533688264487996196728875225375832907844108819402466635500510657841441719032786136465726539411602971601582013648995815588344823892439403266209182648865296659812847477377449927120989979109292846876665452886351707309967265641886266352071674634286486509582664775023375918983878382870167904200887268947484052432403027745029123807396641546055063537988974876531445016826298023838583860247140457423013449822474333261098400504202525640112502454144172042598905464474128655382378295025818308197995111362499538899476629824983910081673644623750637774010403010674501619566099592279124727800754582294335903526904410674313700562786955218232254250375470954245814201665981339992402964922681782891570840756941539977786718956754372780061113238632253199540938337452393690367487816893748617991222838701329981142584037992091973630889527535596626075848708856272290429110023448491955208374057645030462811268302969267040576813454448944243795848148034747805148129637730631294274698164535729969697394778204662249590442332640689715100115251735484161853509858437671335722768539726692798247220928585588531006213952151742658011904361591440580148511806013028306578063391639638413445694060774990660554880873983422459757057607325623111073788808074815870847382088401585677098530634255534871049454328286338832869783442177497662784296552823959949999019160970047279636066868700849649796398126514132621728347260105087928597661392956790993355322908886540705538261920560493591357846443654938800154751523200997489334690018810202341397333273044965002025748534610570662392617227092234259997427922877270764394498581751071576204139758938650112673349993872764732290792339007527305804602493305189608391621372432202617811120127145302592493511201627054749519036492311476767891476974516563941203750136492999831307025305537978018532355283021317818936057298272143944095179793209455526721397172546887953035751718753962637823139266011682740578452528083751576373541307046921497573593778787385870267389191584319345086161853919862576179144410052255957130905751723179806760147453185847989722881230409994498256967098614595731857102350062421302454752246136444653590010619832285655930376036045586453993386454841459634773840841944932215175525740715630556214032588554307179256346638067005530969997042937573904384049741930987559801229820177903883350784987671545788212710406262517745333416518227768850727058337071407005418592380036861070234590269518689877240558453743555567126795798381515758916314420241621762674455555321995280642785116298111366282541274543905589715958757224423218923232322161486761294107355448785224327407780745736990118068171641525936527612921961892106556936050654726287313492277980437156403537180206851855522251420806371531585077427814736805262049803941464211590743414029181461122278528944023533448557785427835681853370554082586567741605648480661770615717208008002922575286563402865384709907481397121389526633541913555358401681191776419785489074034611104027637842059934223300074070609321964021501813907838145546671193065743549596850605566482973024133675465710320034071936003818777958036879530911072979045596213541405804059192631450166506225046635081020161756103894885215198192537424105918869554683869540600860242452035328267571331165472222308019770031730279378623731370940225270432308223810771293085727039006931138387311511951726399428246495492993120178505821382116513135629762264590487116982186049774831208023676902169816539631913773951731068672208150212328095004276564814083077660724628173878171052495237760951184555975081537879841081453185192689625403926479612934734799193857785471957625173669008789162617253783939175677462682567676850171007792819592144653571600728897999747070617765440385231131043171735537015607107777285457825776899616611000879452203582164341630369054712951580962589061918822988531660739004717990003727497666369010311280004073596516053255147091333265246995597838133469754512822077095212478183047079173200026516120202467491591852642719851690424839517157228003203693297364245746805129285693802749805716748130581788970544619802709076927683673905710103841475431376260810390561275936009111530708484851752291174069503511663083101705867157366673369224868002638065004725706437014753440705940303484892812999124691314009675028924621669648312646630905801702349103437254370998721905349934919046353666402020090296118943180209890786946480858218381631274724170419815943493946504791698496958363320202023484529462877072177586304959792989468635905665973033954567724928700097098134445992117381169997005564035496321429651792025562947742681540255709815893446701202760586285599175300226327015077205735417537971544122811575999230005684680891790584349268498246243017623343511322868766692193170176053618192987451270282538782597721808076262298866730325938343744435159640046669936409891870954870257950240895126408750883015521981596669160771484489705908254961536471007110960480044246434321821316831843496488061916452518695958080387088135559890683222064996606873369274084492071541443580221874574019504258081499673230761989376944614647587005740558156063902211951627568826686895205359111223283773763166955784589047305381492022485289548656270971563067742694380100694735014703748765679248466810607778106165333465318288887535566810714578067183240124693527230250248676437889016785092269721852741578566417952829499358882542912321344836270058060233433263682574783499330305039858700519703487735611419634991499586653272600286939456328629162666475527094482835808540693322698991247133600032113061345145309763445912389215191390903719642249766790712684678292092306571741135652101054410904266322781735657341588046411579877322650530780714827836161303733763347013856426059696303257299051918760461665646332658434983842775514585289848521215757398355461100720001476605563594072240186587722533300309743256238328404152237359929012463930562500240205469188077184705542136807108733904389599590411962067877024275879812114973956313180576596184789368682437531906030864589748973689213689261578418503031685064158514343575703837634377675491582782755135379514726037065463677043628544751816619667904781623150437595333462959490360105045822103940241635434224571974742442187149360034694130278191481486208640362929523037493502003580529892224631094094074255478747715665512880694241069499377304892015149773463030866160567551023285113073219871476237291788962024997888620651175914864723247348690994097944493737974165359577386540219697233794763985033256381904213737085638107977235542047752647483752630657057264542081249972891621430506928391267332033667872015699507200713475131346084729326764466609710276501436115115963976284807533589285532555369542730577330261993407253102633016541484089209223162897914307043273261436372018836047787745742538526563801803495819737923134428949631173316966719447907184672516588730095868754362929784046294288702071197604243489549610982551186402294701181191326377776412670473615958981607786750081807999649391361604371880419696600421856585070105151955494387635427696025749058500948095134962112542929474990597796118686392835438967160001559610184152482690039878977822768847250713302591258135023289183166414854629687475914495867636538702607784918215572832790679218079171863206402690514904601919380575574896175770968555457068166155744965071072398960425462432092080810714225266868345879260792173001789176022992012240377597752079957379999146246036514414600389295115248056624696178729588310380218431772398961835042711093436422209319002553393980490060352508162997504225532879413499018363987406516594543421325422787518070247870401830391848140776096797859795154761277944050974545660766846132071166010230622590644054717846347810262241292048090513967777628653956729492311028835318714375471623074484496970946516177553502826225849520358197547880993310118408776279083504405533325073076504072767318167696385991982914643717074520284167366490899929329225140822203251979928965875578449883217686177392037989899589941545512410281641117381820304277130810159912453618613393710437731632838379052982765057262122581454777486646474891003918802412919848998837645088636898905684452240937462080088298901653468974944112722274507766658713015001087295079279895175296476069901119079515855362965934195743155032202277247900927899773049000420802237549948946238585737044182349731658371071321456421027293284588177513881375845906458572798151086848365056389783937063451606821636634208218696995230317816984226385664471078662717933475898182309484958187746445563293955096058299225248701944210716974575362897962936714569251907531629175909191852932723321589728151677373494528222043136554469408157643353610706977588801920086720721336469515759005198547352617104982527720894224602749083926042801596506149338746293033138073155830816484033864728668373652798381071716101215940125260687342300722164081608611488350700078909054767954869095980996914009404439831085093661956290940025570993265612125148418627817985429683200921425143520417427865134808013230676511884972314974655313993254922337477339924155730156839428261639425287681339767468667584222648139996660957264225861172695669116505581681309689678174691595692150862624230758753156488928644783652433741022028633137111082387037084211390547994339016322115342163198324755033313956920589185788914635989477413714175433544248648865224079677265717989456307908850448799884245227508565168083624214031297147334033595858033956856609702069316283705848606523527000461378994607207781170065634710390802655984739604687931619370726794560539191000891723018373089031977471834550465439661613439307492724415971565390855062227823044489302923832621438699804939852947987302423678178786938639130399873740393233783973826502380326290896735486741456198762881634632227149766966762369948957487504508655580654736563841771336000797528529514210789668479640050282834239676567693028200739101002810187054649300710997810329723008197246877929772433244231197507397510280438034101144455338464208228904730558610384374823576601167821787056137045393736228119990353811469062490493481955573181634727672305508281852643766967751040623947908576733502915645043605172699407916011469755128963995103704829097503512838797233112016981638869837894332432401231976945705113172790083461675993174549251926008605428360537145794615735619065242874775647371970867139476229033645958968416524076589292050419952868429759659417396485835712085359448743064740767368227142666375294878621718463575255143784962834922542853723661008829955672196321152475326520230936826743698089600167611555927264785711288108287557253566237871975631386987481486121850511644125656071552529243265215059712892372543653317809840821641628638096922558495349483012989927845835686804000770727540368433696179692215712888031065865132963255691895331629411780699941875304203516448109260135212909552639726305238591018919896982721694918971049312989288477445630553425438161480338829695705908493695792295013830230549483249358278521763709486070188772095161598800227456568750022983560691257968461747986743154526225879223079160239055521505788004531117067385764802771312304734977783539852295806233289126781981476287024551678850445772144269185563239295475184903632077284977387885695181832902611998511847653525749725804801589712887337745380843678674366417925356222636777333671649666068211114498738109063378787332184212499786989100835929731317882279476953013285946429255974858365350939198604860797402455520793573491907464606038161504113744375090907381675299801746354788457733182367139400710126124893707591011845851901964555883937775279261385525822570382431969747957857011587235251244271308012619969594070755461477694370880496057955516258223555571315538447481211412854035937878175103706748437410828335663020424331258502346663967395864239946071337450365186710053709107723428065733376737861479923257109198720746835230630015524962154293086490288296035426401863148276207282047207151497820346527902220740870105283070412571714242100524458787768059369962430895139709527355062536901602637063854350966190227335183487651145598591363275079943172252342681407368648164747320715771179184463780637764414560884942928621772075213973269252150314142892367790841339188292741509573389984489487182413468549899591073337356005674688760568790832843999174963924682563146338113135803912248817437494068106959104088199819899272798150709419396447849917217261526900848672662860703890695209005496482117894669082034785848346378437184653956103757812986803773198506329156266150922903046902508132883886203687532647016065443965430026972946588762017862846752258529671926162926048034314394320107101774208279574589722995242286850724382395901327206851395575766523974413668637357437637005282019340427375098469262528315347424940890173543384283081008375608069833272898796394215690518996886074463783875837781054559057973335021960292095833913316285709129919585534977331533042529349006136929525405391329994394065376981186431489192069895186853637916034610920033204108746312685465398277150689030540862585477771029350366722775208333014189136620723852169716015408222462411777464093634872781283354635459932335441204115291988598273429184429558568575394661233650908304244039747477542183342398488977404063309431213231604359216679121835434867794127002650206455064994264475083044583202661176615415490739978921117430363367914001313114516515493709474170068632175580151812370175364992900591813421725114435224236439250761063822547868935161644758112469904743644464270662710317045661137014806418985692309888152244334676310697531321580726970917636164795426862897849375128683260012475089676627638060539311729805868384334666356291979165225537528490608116368885365249543775775214400883542638578894879968497180275049431098860882620248475352635248496629770225577466064725295673055063451660291795795947421033014779276916827982328986187584598182817896993389405795584333477456432909560277403873449893659219560341789972629244424113520104978213769104507527237977302768812130912453844588143905758869366137137617037219481099100056461862822894411765454069532769045446286874007181841855410974738939784458829946225713595552312965496576549218468982004399524016137129566708636259354543490190806579328417397414959065714141928688896835689907832400270945443111204879595254301468265293371525630073778890084192233377147438688759053548025225422802043188423224065782816595506102793456349248461249763370779276973692943512090063671228005176790414377278634263371702204896127767436998915131754137176578572233699332922682907703016684280352242485147700591300185350796605373868361926865866563173950621069848326241971583867635589615655773062568718787300967218243487350841754874749189707227910418814509549568721563601847231234437027901176739281329521936302369807405610879660736862367036047521566852100971244710558293019911009446121344009802891572733672095911642122394765281567406798184171255901321638117691197864344535562734391824220476265077416665675351015613860774854473580040337585176364480277361488675593044021792509909339851687137712317549040307484803236072428570779087610156366142931235986715758315128349361310490134143587992291540951009632340537184194570802160485890289676119982411910183636709630771114015080377516505169712511802986248400347405415228846727621715319845886709934528015761918645140618133259060409162925616499176920130205857974116261336298066149107928320863951101550773569602434874034452464279151868866180307429135331876210665404000665106104099754549468870689497050434961397284797060953273481622736184711904360127317757865200619282862274475560129375058372875992795616177296445294740058460615652656266352168590449999158119696072166086960638790664444434388195879646518812338955300200145647722507748015869052562738475105754643028404491766887469574486485758686771644220895812723413591717058718293503754378731816028268990365195039808668047397707784100534979060273604246157413716082207579713961854513199524748486339618897675255206513699156706181140288886108491772266775918375513978312889621973550397115550068318035725655395812647856274532786774791316295378463962633367102308678782626832810411796273009821516376638322214556996578769116886723193083859195407274601826788588822003672945509544682022116001899354100258632697769079559242734375177647193118973372120273361956035127060620183135500954239583090565801335272588389845472078279199289511370066136257154536526382967518638476575201571017007641584069970888444633594729167338249374407295807557915868171819355565066132702847534662972864317886447476966879507616380469391242895039915767767816726072152120133853499933696016712765002092690416397827462918766518439609671915430495060041690006067058074933063308395087406793756719158283641662228339650376629985109019096962123951426289091962908488894243715456745574571831572890844548610227737193028565376609371748674724806560981987068849303338915721265304004346153930049355485833061873316478443076290833446391680648504919369427444791460325148270096514732344029887676968163526649476637759570527752821429000615214215614259421205222916953130529076939885640179007877789978508018474331399831740446128907839336767920971194349466448914500751879172568798771180017443388199780274201146448145456268696561813015431431048822314618530531464418889790591237449576485557924596645889886486739164765557310387843729793410725312803188387709671302423828586187203644730666219976785102612279104851271161892695632003158222506339811468539470161958197754029858047227194990127219293758532662064232525320592314894560334223549499543114449531105992182170370338954375625903064189405704011011551957614527278231189357590989392240561013371410376191963662404615852214729119151249171415551702696841695818196147815846530503142426132743260773684551250153236660822302165760817325732716415452423895686007999552470963491435102812613311557612944844597020653350219613086495064552160263875610599353986282602525551643073586169451607910761684331572269274515589183072552462853416612528787783373442501374824428007776780150795866566315659926861701015454660198216216595825569545345194802566596610397938744033721480302580051525443825680915969506458811112502443785200738225483887528974526435347431851244124028925859946342302549860460591131400607610820569568253571116668047279272674614362893373538595006121636395224497953074410707158597190341102651355996315845016538114194512814973898364014477380370033992788126779516394151578425374819219203145211374981232099708507952356281071518042788929500207144879771524417614256654869192233137812651698875262321725807262214690424790013645011436877903160943328169752370517515567328774623733376697630345808905271805941239036600824027471078606507802241151509100332978212995644890490128304208340831410252338638455504759086847023056526850061002745748642368555104258289587876734223744033461990755600184874397758399947608467892139985848852663421071855458306033146789625803590717047047841673624452031246457604687743280017875688115577559749119125259707344884045999073318799692212366799852183840794205748854333920608957472354455260034545644542594000886873151339920792629815433144323041738310150591226025332435668598333617101316877238238060886155930008823923202833836350367604433319299869402011990469215379963769063152095489566286680172718935100988755213954695217415053840804435415662584213424060799352025219184979663073396171520247860943135742335012040152867311249346235800400698234304839118762555671064641556239565599186804044988568416446950984965981826595674752783036132595568919005296029290049658699858242315366987087106737740415227027203946602251669739755276277441824973176447103791579973619811590734755877838500384318883271844379494848110283997072071050687109807751392271991434489984349667706555941707743967964354990278836668889692798096600693589922735468742805867787833114151823796441885047883152122665962687262007234699628217702090062803637077127597152672158903806512240757285964673089198241849062831035810596896603329726200246395844730696073529347591795218375605555878502847152563817063166107386763922099847397158636496117525887882922383915522566047604154839137671026800812511202991933317000169417669959876418691159401556012481402606964132230104187655210888574556659174791900436253689248303495303888712538767368678398096419679878089133516179349535894916623615701369917579283506193391161060658049209516793162940457814096666177983223568244525538308634964285689086274055726452910289368970629855531630467500770117832061133753252144044642727451702518292719014991933283257826678724858327414014287827997752653610697495563776617957144228640936970395865098906406763870810210618794553733550111095902123737777328742208813927273986438959841756618064098618191135879810738950814105500075686875337808323566827413648100069316376703019206179333926804073678404938801972150877588526436313583546372244046357221538817409869461106200715479803936912446961650289956128475440309700644730230631590811685042377154068435613231778047179322414674022979270103657497664869035732308006256340852155025583473537975599217142501363773419170736434265937833475716983685556187471415742474686151824015914695938683276684006752582395625962991548379514999793541238933902748703264485127990131522157434077255397240563387333106743529141097370834270372223742453653773235998915314129674981414978900231588477276237485152375354840067490305831385539684212259356511798209824817960707428011896579894095182236661054063912013140903534686877209329656802843198636118454146925744576715073936007296348652492902324512930099787020825410704669111119859223747484512257133841655099204297854676230633449782874343824840732442502739863287913682068483364760471516434910011308872145861526424984809867781314035251665516288385286142369213192433185962338509477468059526432010445205060807445820801409803141506904120267132161583633017335753641058287409608834721130509898666699828283686276262765963631443358080999427246815966574810632498612352247362720067416638409993289720958085197538920080553882598371816747435066257202211840300159273989778201193473998176770410798616719937591171988430021906937150964476195980825323535632456955398100910197006888940307905167804525360944952633629407071653726475351526627721997809488221759728735321357067232901710245980837169703647081782393267114086764509784083154904497094853473850366158395017272599419813318297783509192692987278181335128587392163719086649147188411629830285029793740335963417642756481217824909408863180332503279051563292996079948360491956658928431197751147009423869200430566398126642900113399704758894369762450282549281966690737981402048787642977287728079577391379809480825069328390936214315352581517638386223350647783943597846562516746088245252766841009194944148605577603916929815446200289915137575826901421145293086941818551325350843102518834552031012967054119746862915821559225717034672680000907553647213002226909521943917818890049896576692417290723312170505784731602735099594795803664062604667195795669133295965901613877081927419966819626471277879035897969737380891687272246283517924454433010953848888769492228119611922553079931353324614272405953816338831852072150818509910958412272782373042066054805959097383971157143356589739083717387960498793839238913134777038566668351818905373535889656218062469779615017112716256717284764584231555714069412034496827817295306618738898870781966247913009289902777197658229173954587444803347640917501086473773103682296325855994834665316452007115790989603163933370257862111764155465643932592350382532296618358010220599924732325598258324730247985617183593452913588759387327901675823410699877253318440550737459744816960115056812533935525277281195163239069229462146941440824557937015895763770581678685366733854333315327398044363606385819729828587868737518552405782129942761146464263211883585336512096564222968348357274946965759431097220268469598510018563106002630896114229128154213970780895240569232309754675781395844016796625844596690456237950901933985645162449327242989441354291846060665960256353564781340188422588879543732951368244095582180160057680869196950772842546886705955008169381088412392350391694147533083645939017216314963942436224740122996802695164663103290162614754584306214868795412096894081627876113063963837639395642590222171367808197475369252323083563214882862655127268128054350574657490017176366600487691799386742463246823983176232573815241003223487646243680375216626457061098835032885916112722816362529501902832337088629768082409415314100243102017045766245229424774223419603951318715350313572416393809164005686761085298884611791046965136187878192815489249346716397151048060439492908218800984868786473726187892046749378316556123339590995670000219013864000198159334875803157764528201708532526472893368253289235580384315386939340672578146330212215650509019632150634849395989089666848977568351406219665975806841532471636900345452808308699866771456457558290552400021965015183462085668488867312064520010638089523798764977895905047735725443242958360966967089895230623203310064206848051516319434611362712906912420390873140976709354912741945658975742894825130407956528075961007901352681902484714860394184337330610154098054912784314265601945040142504176654903275035383645725166780564045517831700817896915669054088598992781570191979644996101413622151816323475858447600640478861630329179380528635369790221120211249134166915735279339840602771126721570782749655255014420297737655483170906474423712742709860956720242426651380607128160203351063495286418330132376933816832868987269122995227325076894550913126891380647498673730637210796386442783910202601106743278145330615223877965097655771084862545834261894883835562621879166862912090311445025606737547854928358590612775490346060048542073838354724492390393747038384780187444518220125181663957787236454838559307989895053050860313899339301516447406637430904993944973708021222758413132296886253843140283004432175168660695293884606336218193141908992252980806540703657722164435888504666740944906082075238505725730313039444385982631993279453283121398008913876808098964421517104197937029944191479514200709515579301572947131895759332789473541479048752053535894227469160921835493924216481048086873183478423164228889301763286217625563816939881457299085305353414542715476098106659820289119149874287202591090807494809583836740081385386720334678791140619365275297783447382560401762701894347301919562921651310095944841854428323997494925560342212813764892061736442400163431572071484649742116027627701483901129126765904579596685551993814181044604887178507920198596822639868856441997060804136826299215534192629792864902944005835003925698553612617483161961873754037366865833619704261178357488139825227679239770750364594297759081776284618682721637465422005585296388640091692856921234628099214585542785744768648664757332692194188417419679734145963836073202355013866575051328893558514904511582536516893324865592544121269742994413181379235936432923117961886668226143497236818558830962619210886596338208381890718788644602775090792613085116348624361367000272089480062089767949703295635797921917310986752541670765445364095408212352242825910261413662886513139291208472341446943785829565165383794367918741436016824527117896365688364527838011393189046184352230392444288168897582379721054799891190579074928698513781909105886638746480471036905128093691838381323883340666788010340050954988688107011725553505698918822362658439673787505189509503657562401591793231609988743915861806317067406779011524105432351186182262398124213552182635048332486006929008712909533275834316643308162956672077167772106905257635585063179291272422810445607211124333927207108271031414029062166606571876700295522065677441703140626210668523434472062152870443722102751086852380080083811460893175022808711575632311980429416095788153667216004636435420789616593894473955200093575375636665408264010464849154919521046738557288692089663402337459444795640808571402371707341852920108055401322201926542498846789892864678013176636818510586305357436435170697202862907072060780193479979254308425032974287627506824827107879497684963580585406857756416889855716519307691088691028631369267886475238897991503210347863457348520647679500934141639350805814120808334545559371170750637645706603238777282776746121461644913981648697858606246578249392849987431735588981412697488759656691724100641996511404253225931923887493539064601965686642060103897920135785205939101649440123371506082379654927223789063064092324889819497842457397301124265740618946452737574898450857881374492054543009532442335990377861876437797196641474970431098437604374273254701998551751124243905123660196836931698996378007661001242205739828030948759617506441566421703194970199425822482348831580001333976311622940358269968053171917642700080795915590042083775803605374845018787297921169166465482606789125837884166595662402964019419301889177286198704758803327488932825090965755524921294371538460387796518744354058638294969450928473592729272961462496373975616740705262723944476140682856635114519898498052270158360733032905938395844278080079119964402450528121856862438584455823574928816970793883196294533358404969528860493680039654283331194063213719820996229243081348150551659897496569249592492344916846287024029655255688025506001475829743187605578319651467751136641978001150789644918220675525439702566482061020690218777751594401880260019693343680327181932314164624597824449960413762975521104866540790352661201834779834467200249687379215306713704619217971177323846741447067083267293665005519061829453688388452242080063178477454293209131959676666936623461961266524440641699380222371244202923304321015797101619081808901161322546066380840793448932334986918829962168140757570970940459767697360542786630229412131307416294776364699932740076615274347487606422762833271861880504036229532897429538906145803764131275204114148460985945239155674565457833740573248460657854214052807293143274153182130338394585764741809925570192803408547271071434645775797697502765605079539810215394509496179001230740540594319171260399240890617218366641798726476343101462766489425520688919717371917826946928656671971972189149851347125850474223015237294009012956696163774067824204297579442824387708751131696842407019473869488182348238867330245473314217387111224919628128669938917759441794360372448006910184568478797785273175642755502536071777117403695779809044325141706783571837245262947994856860231301462955407581775407417228674668758191934607137551389562548817191779690177001288391682428496392640800971012642375699097006978139454096348120092286838548450666999335429426625296606832185325297326260033854574018557844686566053719706916549875045609506925059720470374460011279314003121011013354460824254285390237212033181894191438738060903964130302282071433729426364181858446600113981686769836381152602316841075563349811914603097910499390997913830523763069366663553331624615957885096888099732822177190434093042693895253184906792388687730487313964115728613977650989633657374042493975631383907322980953924471199867148985108312447482821506238178630009814760069941293989545144892911228770850956943499436551751663898305419038692562528894750424802977003931860859384330773176270437735699621804785626520805296413151313093660900689913861477967748293957216675011855068297543015120458779293518807017487900954855435184905319604665081245231687052304913660520398100661173470787798835226906526287746282039623355650011488066724188811948214696153530694250746181266396874804143501094232632419483170345455324048688836929353660488835930089073929091848697270161004092050364981212386206083699643135057974993848068023630705927766113767911197200745691211066949477779804000235894790833858845410241622404968204094066326208926741630508244588699474498412158622487541344935241609076110334557137830950824199830350036470933910803073400215267235378308569489297449608547686077555362062707597788195617843149003460339428009481315511386088680722252881431239884513000223305003575540537788789126194230925967179489161485643128215775237284195722552330604048033572515664594389240913718354216874841988287344188075039516395505343235496885363673159348174230025761188938407328004656814599972085671886774570727903874676081565134379270067614221656404309923860643032304207946587106374392361821580994052592321583157585754215330707200538866428336171576924129253213315092340521806843147276046842380097399684643690647352628650388133837638450488292051204158580235635164876870305339103433344144125010675218146633419245237586755121304160954259091008407522500295862063017672916462912986549773748774348234340603355820025926191734738746774256037490252385082221502264706388062165658235988421839551087149125451288149221384481082306097801916164993125745816251755613264631913384761846944225291742587859462734177509758799369809890748707167879344100645314998830600678119149716103578528662427694443825856255529550301062416756283697654919376863387496357259685953737615552270118331620333992230311238767530621925788617546916316663178362467056988654342398425684378988413051136492068793571385725266083382486271973043447964993409046936706346751812709945252528985435022301780049773034918052927327313779431849061226707182112176218951190080012145778394585505354679967024697552066378080344559483002202581564747444244662442974336063553125473873579085553109862919814629553082349957152125578220340765318894198731497602971640542466865302117129371240264249404660404611097764115367958160343425036024081606575505759673772319832031977417455873355889863846484678497380100471641049846333698010754247170005366550116944306405292664291950687550365422784036262814755463012462420397037636394913003017646491944685670586217022182614742433187746820445655027842358970939749932747246829859813130784510550408250647305498886900074092342431502372038110492143543482683152260162486758444222903190457732984266603856737932619099139066150781141118963825660605754690082309542691227643862155670415186145342565050439561129098030187137803311923253842569866004841575003028901597814986495983400119485107192677578155992399300352079249037084575582842040125969950118264240462265232004728463943869899520408804998800468072295825606450029792869681854519947872311142411559853809116891721383326478536087059994541726292243782377665687774708611976162338388303345970332782577199742674368672776669901584492225516523906297615761284126398604796393279447144983850250985098703064615820626265604388803993700543958619299654878067830189066982841883586918618315560767303388997166051706393802200448279355741987082240778622800220901831379011297310004181927315264174666754082691391776187933812400230595349157017684433418952805407299757289995369972357201357713511380686335477091162469491969737583518523206065648076087848443671215197101727389544823300774900029948695472159121498200637805551954923967920490027861610078264247885864584024956922304764861212496595020968371895299896798742034314089283643444229662817343757701225483793539852471488055140234874447518780903349390556763509369776064714181460044481764275774206828445902672866900126282253612794950461636912560993544909993061543285637221597750237013994521775426532965514249678393226526354561918156635256785552180527574515716629342739141624304967879644489708460300309000408984927349426048201000312553753406662319571461320977228715065927323034557078551678324490778258723196117685047150923996697847483963659126441536740543931575387119221128010930696550414608206719077992283956943791935447675248371365966769465170460473800366971447600506451578573854443867799365076022654021623628401850275089457838703065326284318428763468040433433181361855679496090418629038617648918914572668183581579047735112880815970262714071039354634566272155162513173986135533325236144647647575638237665344886425244046576279952964994833431632454389479999013181997824413422124914878963217566855589817179639081848108512524080862339911854457152947240016563704957075465631999794039195522093292855889350973611210947892661275813645533107344720150767411906661074083844071131359629191506598893030736044320015705789371724827958898766044063259161706189560123392541402134478712063996628114772175924519243782430615075207719912426008116692833990508668338729024551209079074723098775451989896450612086805369825308034937603869076798271589102646687686899822629652669259651527811198434042244315810120446582402291947605519081710565706737893092673009475294385349896530663859604256509579891511463242669598126058849415587103500975440682131047274544311717277883662922946670871216268707911724079511022545821842253409303765586506611204513294384921747432654440982609757807316052773288133904451428864598265362099139036448130658244017968089139589518165429472429831175572458875149562043975063948373484175710163429905160203718696232840509847894286409681466940299555057286017445784294248582711969455254600897786174336877301867076062800421921245234622119053873176631536439991284240360136121378340877581639338932619968252508517676777249324030617765917071197058325222237165574401297512502863580501161367711320707268248805803246803802814039518411955066402587473566426642460226441204978469803849765487586650891140201818971238890712142151912763157235618154662511025767000828728128482804886895186438305152916778873119058437067636110349751974845008573130417412530894024518153434885605582676457280124480998394647556217135238808479844513683653854265668548660018407408291089279277068422233416283398913148845951422703609737547540892576006573056208454421559746413465277504541975928240430068246421893706451373919257582116969477085320474144238810048704297335892827903302236517554042145601217326835238943259893209587813772009899370664212187082586861930972514835092772120874371226037677439709908477073145327890230862320105844295567689897359155632307168848435800212507216496820295421970348607931311096120137424221386228762583634575418567134066563129116468835835441053467360924696193261213656658795704160908093704574941590111769031488179203438630949070332468664832340664051549183792815297683809071044866578243794598040341639263563283964932400868652573318487503034176465142898430152521677883182879077235169747458657348860893253966434820971775063804716394232032701999958810006775169309374373542739495585376213989424337060900580225598261771077915032072479808745617764922181486419669816545567375212524354304041837784492805149047586819550393236216743254867621736133746106420422823093036463039739006865799343986426783993081331235300011000845338881000763247818712604794137485059311535322619807596006377354744932028365531310423628075380258413397066641435015211534914248026044733467952653239488522708849629825039553892011201816108042528420695286673461855323061692740154875983705540840575944313214964875255076578859007833953184044312295688973255022595105682552075777723264745249324388443556842282049014208684388014584260667025418042205329359467146149250078801025490380167757840731695438527565429899253285450949539693932773009862520338379451109148215783130970887658592373181435136767907316355126749213978083988962206676176174696772655103205181107557925694639266992361063914066028624848715644498712219963704004827920657318313416852376717676832317336152089655365035191648149294772225797045325267659859479727618433714344184763401827378659810667103673617203015589645676505949064795514746385709489172543876680399465317590802174854222209467663260770478064480126489929273609395628663868305174637476202607884300970459943991139699253915225696995116666668084257807603432937741340332002951534219539249774519417436729219093167770773934357704990294073702510636294588684634850775221341915143190828244335858557011158374186862077043111379184777479606025371878764053336498521267209870613293753763672151220096527644136105401665395642841358143621105372713930259519183601255127099586711242926835765452635941240354305488440037129830268206810665730590693961875444999737315348268152428509361419200137388205902913060313601383191949551308773789566443856694788187013588170811458696371729049588924341687986845734712194545524560090521239009332096764831891256531675783000265088136352826772566623974420475016584191907579185432265647321536414811802460635947718954693558177340704161409178622689414106581606785649379904418165692691661565190780655814057973732897563686367650833847973812823503917156999149916295543620041858825482306725672736895357824490015022301414397858021327936489344927318573332516616234390122101720593871331871708376974682515914648063516257317994686133882306223277669865725185155676979943822293686720814896981851558830242055119030746294904763562036922161106681816398277958564223530331125469886582560728263519914500309245010739945662054021352171550230974972940794404306945426251498795575491929402167742338408205329958107951822629507205651817005131892421488987144122397778844280550781654452114663498634785989497798562876539142389665542872375532704006040988583283598196695195138564450617835818426976050623377241530812958893726666750267293455896760457864275001515823836312222550381196737541713478514902304506881989350840893779776993523522968515598275040648146375673391251510792126817661835018174070018387535548952437390527618581016618571914782005006793548837596063254386829807551009588857181700256452008580853216442238609302824219615714643553326054371562870175742587374080072184844190448372774076776032029729264355365027849957381149737677496657561308765857759291630333239803511055776087426024018547968085866968356341923574843576092356135539748743240773388415443762354744946498949766877406593144908421178342431860842151790259861982325129656479835583430077146820014004926428544901908609091033291525698148836766932022867498908634837990402068956933002908368978197774750220662596349221742619530312663237842573496345270586279146493301588879027498456294509369790389928793810112976100895171816077409351678403985679620273416893255626781515265304843203983425418974681067445233571634273435673152740442279468695982853652875059882471790376941548138364493212068968830020188550265057254171836834479486573879180365636402742100079469586527224878007648744023646189136611939117433256130661134702934371955598501744042069482495983252264807894144769409792625381182754191835817728547867515663207170819260530120494623137693655560136156341620975923363307874541645373230447438851126884948443741444446361157378618623461554692736847522439573586036843480949637489054795280091014461452635520195727853908795047399836385787695833087477407439684689350490149192924465228306713933989084035292826124347071344427233023207093245903945879423472863748751965945259195944059174371329797134629656183700031055846431476184891096738682656373145527994840568094550626116328194755450461081746007582129088449988981393463762907635417615553784204319864925756108372658669751255296097165553142528856123473559691559890316228622910157540165289445625935450347789933303103287532222726614375045223898804002610697656800104426640558537057190200604169908556184331975672129561525965875062268025680158999741450463287677207486357781387799697562772783932137373918926954253637458755634050950960692640387066106691535194353471873297961881296726574552499502207563918419438351346733928251710613932251115415517602307437756519247774417457554380196025707495136976017687519512343994518943905747127466674709586683481076120751725388849977880456286137857780711166903041139952121574464298602854797696969012276942275178263593711649646315505252938617288752644793024475568817263962410693955339180417618339886670738250707062737929369330177581163990614088718765494872390610857622863255353311987142322242999484039260828870911025748785035771277726767676709482214299113006785363689748463676347821686168110832645828314673830003225234949516722339385092855511744418323600673171605479270304244653862993146042053354330800961205656348204495346749326706021722167674971950367828833497345126998566755383785587783605740180637023225028949609763550724815925123436121739711761431638300826580146303922401835533295439942841083745222600466615255752290055869181944409189719786464569189617389143713589880264530423251271611323974117442232751775497501249526255785858784616387446049093087904457868696400738296313018265243269797653901150308956245866293886438865538073391526481309680624239581292194688282591423511584576952857421698043117934105325044317974394383398989473225196057407842493229833711013071378968003993790342434255001529512998784006679887072247464851631440569211462493260444479006787848537372878724979136156033032411009174580455810668740854075991158793325768377806054776600542409636142384042710851682269463561963442528190699498892271178844513085799754687895380698008668920079564728684936739416213556602334498507982795331339993971232798587311496169866007958826648925260539397311788672927870698287015066633562925586331563092127010048846932296123991763235053966965627517001902425430434371972338651017044141506346994709756911405716316620962065500382607242628432813691136383806921469021481437571205223004963131634877359599041896256329412856790161853571598880651610579686010408590211688576674402291463195059831410973781032778861492049037094817158485049333770706758015170797210137361201255316450607924214972184111440156883319708870471811709914790316522212412633139852176598363395800274235638501048090685746993226843409167687925710767809501563925974339618249813488225726573162706190501220381003187720533198433187494035418996589718443946737472902529326621878957959961098855194950136297962148989054709868531581699677544683259489189468428971506719919308725639538817658752612072080919874571074214468879637022212187900505726126379559035305582208340777314996339907651815901727872955797350017961315002011959682185862157912954864295766391809641611346795431362384580684509230957291953032129763801696511692379716798154616698760135651709765036269650580716707922689791007128842627526972641963365829727554016921875171391120135428248533304932758112345452663578446449566212657132724292900427551045828910887116455845060110776671296593823559600792275445960613347752466025658067550215892073254396742330760355305130668730500585758036238217937442099592003524866468174721983885385266343951039911598639448686994579543822431994812395860691193323172780175472811414940854295586540623673337563239860642540729604349518223390228261119194523529738029930860709635273313437690567844588045842700046930934168090162824912758762226436171309474702416060649514349006274177284873064918511122510793530028767608816632028201731124383155106348280059383094710408715495630334813770940248241625969931451399171282019738841056169770107939712717353718386781602453944522774006501019949155734230020407330935834553901206550046900928720283510881423368933971048382293599790309202706898259848547030291483574401638526735879306168362396473986073194874295173719924711826533076376156275789145358206104277462065580496317260230935223025616013492181931750759496378957753121341171149118749848834911246126348664786153802757340844954534740505770370858781048872380100899204665128245359625791361950876757389708356016306051074762036729981853940341807433304435666428317103784428379927570523633825068864286947439590029411481072178230971756897704433219903544903868454965342905758276182616835775304220162314510371536166704496189095411719077825571163750327268409958038234373717380869887137402832610812946054198892009496260358610346297770830137851898468911157789728966370892204890029086164239713603965790319729502586318160267680209486644863738110876444243576593400077912669200165195751816368611827211994303369840820395938448999244847185891517671618964777401375876451583613455406204252550517185379735044240629554267036957012794358389696951491790130236564487740402253845273252396723299211175517521403856699292673713731035438522840847657134037803964098786479981012326019596950150729866602022009085290675905251755270334814631722704490539167842103539856028843199165933872424767935903017594467562919054473821930396879300582446934666064945696811685519409926802767875360533800193506122997331341015231316847881852101641830281527476875130517750643521734285250563225484338222929375512964095875452052292465754660714088071738669754656048341285587789652124228015260902064780259780592174935386118376465578199851472430837450066174350513611044786172145998269737880669943173589455806982422997920977241092497748440571377681591493388788596033591881739496968507853914917217918312518670743518041172546324579474139887608510642898645651013777688463427519054867161184392302544769027447799462523257969331767489541438781974196798914421140946684396530931132657182897830489811269880798713592379815442416200839680007296174587854198246023432600159472995304683686359777468892495413039752897837564076737927329056077666964831253280498583838042004897116972837469724931147018215988281412382805021969113641943984634719993934369172118713544511676555659700783503508434293388946703984183250639621380054322253547502562435456278863299663876544606809499032878903452423596296611933354340922210888964157504102919357906857000940155150502541060529640972465973895780812143067977145386286572955466889447449702859160421987706048916882916786261701598674086133663822872315107096420230192719268995886684732642778954960748185103442269398240964083125884455198953463620064268542059735853921409925638733534304408867176992356879436884843651327779536006882047913161137368219044366726913055911989758488743009287676461552670992195112761000907660915065260580528038681879724737953584719938588409546525117285167176348480379260803602843656287193393784652993261509973046417315746015350126237232719429057303145696596607931324755412908413002442032121789318935014228841545039827007455305982745895595639312470066508435117502749618166875189521664347649127733597946201872550828993320637818280681843041996388737806556345933320895277371464389577135034672719864984773820536668782346679394533954834426801368724080848457461505619256712873185629734566334441541853006373514556327266748516215995617940383165480509620910128227960074937049667525845700608300124888285957965660016247534915998358492681220502544707266694712323136945386411041612526885063042257866050022362310933072469717638191267326008747511912944527966709907005898491260294071347850340149705484675391077749436830206780157571457977739392329154525509764935862464851981114691443085359697407393977851265466904544489869309119201517516352335200967157321617599626185265274111216691368796932299238786649286539753137172698933137616448967488793908515646394037578300331936238338362250742887161558085569293708878278401947318040824712742805216844607260892343113504062946879153406874581998663400608435883370905723645344451558990210431226788163993559508623732622692827743826692122575341434853876269469463311398610716560491395071054246219790358807639229149257210805928432413858715382846698432173495811741409163188843766603993066277269129640545725480722153080716994580287822274187838888828228138163898526064120750799064666861952367645714694856125423262673278171581186413455949226920725250729418430905809382608530490587006300250536540696976580720768927552493468769212801879110149298253299570829991171552232595938792411936124077670236582148449794150193640099204842800216862277285761631627506132016479797749831558188814034418863960486434012388512439144624086308483628826092748645943481379032382710698429990997317289629592133264654922347413921628945967094309832768325860967294399350480123914444155513309388542274986519771740001150146852713776799228356500023279788473811507675694530393999143510043274632901182025577427767881708452468095866745658711725467402928851861544096284445331785055181308147130400492726172378138749345083412790025287613341960638931033607153262049668313060224385315389963613677970872474839223716554984700469130396040358119173551670692646241876398875578149351586161654784555334416330394092429002290120002348350645362960835531838874368532734406784410741950437987024951952156246196093183558506411693296943238526055015046599239286725719790530226279427275054318985641491257904519958535690517308831939669115766266270638691894627735514005965037927325927930043309391491810784234447273742463868158034523020635663550143149111374522702174859048274871443978689734140475069417215715977946706464658158578350487010822654089539795166231039505486800932460319628760429830203337970198933698069035062296236949403475396655202679461241801037674533098554983526410510653843851119001431448194498405025982219950882591934169852954501006637263344305478641954182171548977745234553875130811303596921056968618719623513109240982921392439311482305737878090464147349519219343542764222083932270176663071498192006358230210896078770329770968025416478672755348259652181774266199965611358190006625250934238913170413914475385427280056097623913362382295198372048547707784653527542425456754130487342337961233975517819710971912786987444141400958503252682233218062515058819108625524111586792071566061141611910968624549845249018582357932465312764900646922242614825266655167019192026501618432601423177913427179711817456639840700313968865623666336569322732537951872501532371724356468657022661622087424267943022111602443341303528716621776826174560338467839760856616628645531670204273556770184150188508490095794313865310774638642736941348214309360777751554666243456365826900885950831276413910499628246849702116157054801818605958868944024991694827514956682137821989638351651402877471344469804272414378484662410718642474925436244691683011426496489302368988434210773982357405941653037687076352006954519357012782454059118607865097328153466420391594778888632481825317158676574408003851930523262243891362375445624924237513487919068945478469931229966723982569060168983877370850673232747426950701140065066246495192134451853406117052414281234462603822280706894980529021064038371000295221244476038479138330852718813763700414777553384169732537462573644818675495924285160292078623192017819540260487252624756386057175928210003441604920676359206874440035907826919838084974286646297758874385540508167204137351788571515411320706843140992860797572034410780467360625621134556225779298279945760378087625598388925874757275913412160472372921059712217957075233456171634799698166286966665118469059412391385705971115587788112560213144475133595024441079048127818919785129366548095752695189801737380566069654570208405243448158895219995348545406811687957230872060593754061092778598454137692903268246661547720990584516828237751060537447999206054165101871924751520934834612748371124534946066492950621244293778475023315520100733965254657848037095737595702404893785169097446664252782025025842521556393663129765972726878047989813602369691597238609086917988468689184209642743249814913488435969806268538819512445739369354859850653619506673901749979678186642268915618616895984512267516320719488746102237710624914668921051605380040060423058693825880904229240872685618060920439702383730862342793873173100489010966545068956772155949247756827426303206149774322092201218640057221572204709001581656150880987388858241699889632063584059991144973597931043099912090040805408553946538755116693884419151545022862190661967064821167927313836257990373486783840649539043737546238178086465965958782384992577318054160338910017864662142938171770247001632269166143410790868047205171793365781491829245416119543184031776516665354885963244103438911128683155425903874116888108832783827891018697120150497516845632350832720766167518261370791956122352469388933203951222433616303704830979241984541327096009587438085588802163654932159972605012836226494755485734305955254078982443253466026913505576483149491655253260042561868106989960193869935888881050210131145625127500557488674190171330037398740740417868536505892537729117547792443030376877808627175489293526169764023615024834448474233723949796727566897650425393913956953740204485031641047470362360603029944217102833698094126969090332901568232151992285361935145800926436051029193857545349680963042381673528965601802258697793458166997336940044062956838740489236352769293126254814904490562468410347528282518903398764228534632832373634602087793661308962691908655046031065884536510437263834878339909518041007389688832524091799241069093975014460579135251007769831240107593371289443519510415206683791520864433172330064072407426370853234324447364401560693713674004473766248740549000132917657660328958175843217580876509559504765805983088032122775403833558451364070680217571746217945298709061754291968378730283208825429438884294941183973789274030848339904858649123643571077080282170870923243449081861116321595743776133829203484784885356359390448725960819247300384349644694815876978798661050085329095178655193491590693212137443526463376197169038312071989097148536510322723733879354900111707308749408560740671001872888585015651912982838410014496402882458301426369490009545455660733620491937097784054130437379944730607135077194137806866501054349430697186581446979134760615935048127493009033806493551472650136804897262252790345810577838634258884637474499526754285650294138558500921676786947105980175022830459909693787174495764819905799737628606410122652199118345757362206810349431382380084823219269453104176815724148678222760243454241817617641563479386372809892056033336268142850770113162263763543748224977096252804568713710861156887019165792407767769935710842804636739499815772164043132725207473035243471613448333456684982617465095617925583669904120672610735861988760092098716608713216844867132572101346052573085769888063499603650946112834012140706114591645086664964053195775947074799214862423414410627947371620407098620249433119392675228999073696871038143447222028833471675759791464928138868841034195233781976126971213339393466700458874712757046036752195856640641542286536954534485686910373259031160246177317070701416642228056469600174514716134093941612325813837961184410329114765790250348973842554009155158427630032451022147125725342338671856900530880713373948389578942030494878190609046313695332347340193512192603383305634246237820601405643056543489140893048741937789621403391761508879093233705053477661100298318450586905732869600566598487130751417339948789012904474549029609466663209410391895539282547539284776465655048846762646735876187661840004759137842960791715517910820989774303372273588628210884807207597594227884846326973547794147852477585046286221513883984124346482215357109653442676633535337854009217192773365392210220272696542177821571508497406053830909372663027171502689192713198708388879235186565552288469445454126716180123074352470812604718242479085816915487412884308217191250803599362550209535430979222512150511463474725966732087196706201870929129736802424713874028203374676558977976936984803528652784285154424646032198661868962438511399806066909831255694152189197510260790185699082307213801383381777343531686299166377524796647133860186880710524175403698949125813270121539890877401786058138952172218711453955026566384903761558961829314353621084806444618840337336033914926384511059501809844546897261963089200078338912693623124737367705614142364455463464754563500078058655728168552307092741775254332389508326728162848881561263261874894145777494298979924142808111949808970004136648663263245881770783554563945391716375190060458168929319273654418394454648809998280487208388947694998654953245788860915376134653896912169245997555135007128234867919261169798894620972305605495130938783893164677043895337511520132617598969437195404693372277820884431429299730541442304308261676662571205170258842084236120144107169428225389464498878871805981746437206462238921319012576466363965989369670948616892899444197001055666909079156477711195175230790395279733834926286680361734102641012770400867382198437467008463136565288583523729021448245878223982324067918744826776973208018549366073382058428484416102013503982982225622892840396466562825523727679419643451979567976153490393784579047548637940288799867533790379652186153628990819741521040051852111908920572827872891108594526242042635842197892514975151833201661543182935486933355179486922290570236063050051343393057446606364781914391425241830071329258554858617616425443904097036432634748153670370212348552015879955613003938140444411580705404981318537875006966823556436876219713285571797842321166547608228862114546134732408206216964416027330906413492327076840706947346694908462327059301666045125485195688866472621321662038186488568708788098971132705316813876006449348216964122263255711584586547587056000997894598141134155488471650553444104774894291888602393674678893287794602901483376203244097730489020761143879318727200139417927263294291668003456479323814966914538386428996011095243426658073321347918403416651675662210767314165799400509165038822080686082197192376398861753408446057733499110058640167401683896304727999300605512753375897212743301025552168741745081181734814670549646244539586531409970219781708085113663879304710431905671078430201370389119785791698873311940553970619153463505882784224202714238966804667626881018939773551977000830525779915070972948220498261215026702952283965952920127294535568124352992259438563335649507585760615949123364460751745267251878758135912224028122743638466438502135919076316901997493294168637708053951383961036628762465370259546891720615376075460980170695890714686392138134009948942146031319844011105447544778452276404732237788599931827855540975116623480585296836840396442466806876719777525904353448539087737928931151359676578839284747960951286455608920198216913489825117055103517747742193592973871180554782674986355563380110844382392449657225380195781773778937795921482229629825711340596732327022228152129327911037523444395637533126587938297461096616383066745989305517511626601276638898828964790540317039102723689087512588196282792472677917220358930579931609600799038255211826428440178593392683847025854567536877697288020129319553799078095331106502789202615415436932681143925819341621157542690479604532843558101577533299981819934916915289260778509968948215658920461985396420158748723746866195455991819556901195464812404522485823751757002877269407671954237583774491484270899585052758913334781879620034469801005773777041480652415089005973857323397859306781947377308049227491430444677269036799303027986574175113738653580248599306184912672532569449819206559963091330462456130672933264219242870201471255098314855811797705923222926267184884306498181448223151658689799586499442805693966052500681589376722417470732392326974482270981279496574643373215297449854222090289535787187984191217106184316607508379684617546290920159252194728003927530013669568570234384738459286685344627961090867369914556256366124910201351483669704012632236025240812298472514064107067398334708575473059710319320298838545133408691577815364836868334232345816409027971908102860116003318848460775773929159853592213799065093088042535149585986314783593725741985098428798918708671193893564141723330655800591068419862272001934582053709953666807512052721482761057022855983542112636617708008110129937542774903465225250169833475034788602266515883384481656069540809706411053337638537760121157229980033315569300550991397465125385557026571242664252605016129221889986910670098872959969080290929776932538150147624176058560566408303511201781585688959808053029070274950565205823958857650356048455684800622018560441993834022034518043157165303111896296787490971848603833226310042426835151297536801109950863274973420512242409484871890532908238348085835983995093044152316230138779034793059239621921177901564254188414311111680733505595844917183643849574300090063796462109918922331420094685840138424607390722622760866225484160512676122291054583833347113931525452642627907722171754749548150890562418933028654634216361899947144393229014029660077390991958081457730639596607343321534847198445504376695608847952461504885895853226232649074436486643457522176702746100097421493070018115404721489543187642578311498868301929563529967863658397448998270183633209655537452754489584641471823936091270207775273697749503578119205245057861938894406086731906917347802291383023798249761653411077371245391666430835600495407577369356266105408298275427501080548798329663509641159283074675854210510235356933725961189899967264944680413702406309965765465002272074670398424912482143087742724511405131119592971963095770673422127060709285591147368914981864051772963418153122885110212563923308151968111999375784603710213656347767816077000027013410352245414892257952568091914560144819628575696278708125477812058607354691663039985693029388686434546870043354165340134134440233631453322353524931357972080885926984382309628471757964976575105947266134042837705851317548712428709656782875159814159124799931824912511980945520102768639551286690658193306415455356920000762116051594851790205602787657563493113566627025668848209883276205196102076486538172668767185803163600362264263338485081050041268609505619955733287348343553175553525131383258653285906480023529239187304557289326206561690278497502874375348181464193503661936394549314591206851579224016060076050446882242469000878881653762733885252571730443324168958956990751502885902633527639351481733902662009533601611404563733826911287560873674084806513850157979924068004242740674443962386454951063527826848481786775922638653119492992759165884781851676285299011046143838637186653579532590944224858950104685987186989153023831641942228355491816073331519105612280900893072357571852716560421401567089856065944657783781643372561529813316957737792715050229591379409721919247880029048819426859703566407451457027925554125110431589877042806074465652882759151615245838898824924938113014657431587283665937815377925946101439311664450239725118240599517782754496542812053648150195246591808573746511484393808779415036237971746773139855381070580681669611080116736588154823283909235040988116264465940810707388598256315837975041974288632881725744362099434452503317901654405266805255017991628913854486578359935294053038308798779636030659374901048526751178291045094928152950377284659050670744118609653112128937336629262435864829572630391193250626764375344544770643301916806685281571528074140470712543024401242758996680708274523685655113861520979560610824922536499398498371824289070911498481229444455365209499543268828529764220014232999798784518812667425705103047536362269084648816519266875179661239964671320191064222282581992647240282682863500433475110307840593239763199588006406467282965580362476672411618805062654445229412146972647363692248900271365291586563351092545780734472721959858717073324207580179880540674824292879296695995137665989915626615880842775636582352082285681652828101629047192976261259869314313076483958494662547347054531310971820087768688747906669409430858442502485990727552713170785648840108715020648004960302390584729228884051504376923520875894107359657961530248504647148985799690877717244884818516216266566588107472168102288316264176518128903063124677252818000490539428027476419264150819599460292818968243152406400475665836869806076396584657792380455148439262010026311003476017610292460959645809656811393348233140215285023894282500421112220668134751878083909409159596961620185591741370202680846508020995948820819127418161078172630144271057222577540922925927734035732318072269948706465768511256260741569280716001085374265615820375203113566928050361175028664118891689570878241277977388473709144983849616708620553906180391735087763694515342072543421401386101630103949126393826093868437986067847594092442728274035710496009540414667673519595419303519534763039262848278000025416291951841948729109312425299887411676617646078772909709924032629871652947317949156965295143817987923048245067103425324294209775982762234778001840389720400696605032228031869181766233569205753987267726753789225494979343274965536937566725436570282462380731826607609308722928344927968166885951893368451944886662332211139678869206405794294225664217809455523240137838350064706433011271164156591339789836267213043958591940884723913174760490423622915911904187442407483832529085878781497085065381635067134609646299284691721185598379800163022401852528848294059949964458278580304262711002814410059598788473368408212541180223392672125292077647769620405417628593438041470198130517295308453185108904902983341058484870351526187960293614046756957004518715236667396444611455519775634080306974703885345142947884714757494708588502823770652807537351292842497049016663511965582954771076331904665641965850410699741812803224309650129091493346906282560601376676776085387181960268835158064123398965926212671609591761644433364718426792574467005597352245072541190890114726537597597914242614480497131918382356940980583443194803608981747382021942811041494410203757327326612348354182720709791912142318825059978158941158648578304370794265553618387943524370391988505649544753308539913569868012071037918985026771464123391611303828095299632096772785025346110172268665099080485047836868865777660214876996502090623491015380773703891129179094965921585472893143615337930456299959404333879199228843500694805990403756140605546560680361959086117211321748965049938780438539409851453947559192432698737120476964837255840032814641151325808853965364869649483172874749648802364434244867909763734988475532558808120107075223105963057635689435812230124779222357771587819097042254615036044979724779206930225959569446543519342390306381766348949754072962095613412925743975247348788856157675874057565842261896313137527634596916273210829458268345888684396933975859964408151058017347467410329070737349197609224413224699067389821976649223568802353619164976191517195123168238717721985356151131816865126604771996045554227697850172330987694925824495610083677474319895474126011931337480738244142994073045940148134242353672177635511621565730770170429373183540841265960055275478776949455438823256791521651872026953616568912379921758024033775872988350381559437379151291086680096351111570714790505414481916077639518334496190530936167953845511975170561922925280874648525860211717515549538120584325644033634728889883070377994227572016429460765242509084052685416775075961710578583782964392168937999339244817052753363631977983020640280447679439991599319854963069375069811168633750675586508354837154043906968406525433458215483434016765057608002276533350260999340061903641311783787244440096002209323642627350203989681305244130694444466507039049110081663314775372897679464364333815254804693954193348714360197355685023384914675220319948296179069266866269316245461131548806215039094132110084601421555043499445727984983004501119309392037125025236096066060617771394538533823711332274898077203527076960501917991350203184348890328153198248639913489290353895149862371941883526835266278668659946586573357111333737079507638027359683117061685362681874940387507128129757132607624508519001943201555434939819770548357116628191557056408956001083142308905421163524446155004833699852581147754292256121532040642997856973708688397180732535302924956199325473046444219270077397415413535753222066535777607666629837227611422993421787234784120146539987075773546923944442794353529137511756728524068846277211202527134517961753431969751561849960538800537012914807702028345475341743651127238829882389753455590692139105930567012799520761227273394406103218277467067479779416001629435742307940354811117820305158973146265775742137481758107512780550900201299765426555856301126121475603788743191280735383483066202191826502417016548779291769508724494472799818366982002886806145192410515353628538003158178401260110875860892522361976833716696551550927486322205584708812412352895363689717811763257983121485257244553134293946928646375175875763738772602202107198116503438329058913333162346745274605577045930148843881161189496926696902101418002310163836306529324717439366326057717652572487194530695857203556779238467772520601574867759460315252044029041224570993446566122473733326835886561815152250434144873735032056688808752658279296628868918710043136034988963905075259073621140848014835516581537074169529748232231172906473586065589316386649255544228236911212072767065407833651345919979851206368489752943579860757166012139749621054454995065735208538162819507322471548478200575653315717144258584167267079589888419124661514708938560723680123924096653706581229125773363162203505601840667847024405341564214518665352308178432216764369440673826418760301632732190143470558960779564659467579209200315104556022642339957127056500349504691711259708967864130192564938861613760380247650199438631063421899177606745576320111364886435835016544166775678989557927293581765624367173923943252471088118174491835928616801954414267583534195992779327712971453011519367232649790982467650622892676241770704164336829193330323682125477140195470566358297711472757362055144187633455999978392559941922095036801689129892471565535865041474232307422751761258924517985691254367442687509958467594161994384909337129954771527630391531902555331735333698317178117830363946804770549958998465138571729340841711633860896085126320875133700162733885065603329644314930565657670345862891212642982973299089055527751064535436636393725138895147173480843528547161802410284021477664622060299582963743722341667651680854920054088671038873001195785330157251279383875718145939779283050875859898695541615925188437209298235230579229666116998844475031614361498708956091206599362546622014570004734106805930919462023941575988712952147412003574961249289202298359164254849099337764742127352193952709237005485695675018235250183485433480138044016429829844992091986883025775891387391034763762005992343423093707373191250083808715626557801039200061057156496908354781709883090384896678430373685840034518947095625178632981200649094589975023899913601894171416417008524061085028086980623819223975107779456825326051481173991512594489366838318120736648320339023666259893421709834328144993476592031457195431476983139592726260688973325983681360772768180270612286673546931765149777680002514833094369158936477229847294936240557636489716198506782806773391746466740342582814009653164725545651195212210614262119031021592847943823738657213270684887947391940989164997399201184608176465714763000101196803949051596978591353787514424508450638640173440742848534444218997241732452531701225350188071741204944457675988448599623435129136504982248103075072286750955946965659074385912739969659084237244930906673366499733214604012406597032699134884738636678493732058053621693293116062464701298978470152387471273558099814091168501151862949059912833845599824840533023876113633169718843186025407776615271606181313292030565337883838854353046836352189880434958427046220253635705778414114021342394229159173849789464013800753609733283184898537155800651104806019931805563429596986301805553820807249757193109845596340331585352214162134392927040448255316438995190591946690423240502545415031169552407911424122071353396877179727534867960116255332882187263534889907039957877162793496918796284193449608952683551091591029939810472274525880574375242853218882867143692924365466838377025936727603032525333389462812366134937312859069680123475257458077855089415250333531420595724170528413914676680978821085269334547126413577831869306453785394828105538653156813279308503027401072243917219268811792976802649994755164206907565970084666904082682503361891878988488534210585841382536833116532363832529297846738917041936975826652466688010269593704455729604277227971258498474280395140470933868110088674549839322759837654349604226178892612753901559612011788056592328585134772110173749098552794142346910576525618708645243898981728575038616927150824548337476489727956218066872836477738461763002961523066566455441878959432687906322387660165964621637815815634246358564384133211867262843801785719655106468557015770010958281249372454190504443562767555495411557850578122559661981537842560026890155591563123349408127924262075885521639936943449214159849433364495228522540361937239118026669732733661932943219762957476771587545597921489735097282382023788830416720859694704477016866764032871097104859209290466536003329340769782622456527212509860862727701565155177343077673454446443082443122878948466345385459231027060698698083212897994878798088559105789103425035453834955085971310856973080000927692543299187268113131592214119244478369640632762626270435983551535100159811978877202809128331262970882454756035415391541983219282423353662638357193966571363716999612788576211152655161447133386092473451060681928937983172569102362717739390538030096636419275136093228709475318913960192637321199118952636170703783449276477890679832055148866010705560207274905763480771675054407481358690536749287142898969790541956266300368902924191560350560647535048170860066829124359607446298269499393813488615913450896620923437593891051838050493409756989772563886401165962851371391612491534940193499498819714959064185542645305807630807633785912037172437754226719030333541149859758056441793578124227467374486561956327607968115682874702990432073769649408693957461240958645562102399267951930293271570136901044533801030081321934947118288102394084488876265513041294695709522274469502993378969131266407206794973944249751645309514313839491645041580881249311212825730071081417489608958028774234814452743404346710556604227581805031670948218668901270173883704334408435643132275958364735504422740648536475738336212254647595411380491966682925837191735420128690994848715907552981872807958699079955805483532262231602894792473764273124073945486260036496572551393562276418984156130127198235192240258349191954432299102418318790451620477964987298760199870093505700204542190756569707246069443479614061476793843611169797510561268621815934785688557568814791073571373912096279484945526811985342054274253473418919866596875262400312979616678885522913693510846057331556286177982010729002331344064956971000729020952448741557949703364811870338039797497176215406856943191210049611620306690530970150173878968347879788824893489897983607095925951345000473921303449498182283222737626969576187356059393014356422072072423580552014646558871934430733874643121462691299825862367042546666109028297110098883913926055343458208823726979065309378925061521046401276081750741038886372912073243081897756519970229121076531263096008149563493844783015959923884923900949938552850576958738154542740276483453976383008513123208390710040425595268320122561060329910217988325361969317866775443232621933385787629540233362070862088239989014813309638240772219515704079326051589283536344559416644801094881534501329912763527983287323783733923358192235726976494019477766165065287465932681048623982965238651259342680650626567583556446982499649285692215319012007277209403239453206856059166497603638848427792040051204855900236933681332487105219974640980880079752578333661301732415106488717245438086025859698518858557806618428342589820316275905042303814838908146386428133076996812435999377741004158334027514981584418778667865553934911136660789722130854171978277891572581965931609037244640227765590149923577710602177815965805208268181663485724149615929839421457447972430654285002426336394225956410377254298837201286127881493042386432191515379326963963016541739098685326572143107573131725474081384253229051916712045659390840604602199916003865420713692670242679470394994023577840750719736325052745706551662328034798863601907772477228965588418900013957381526138057904361577008267119405463222259938297312036913382183834323547259108775637496004455385813889302201175316139855258341159289358649555519240771098132867822425742971096140236383025853279205239055693688709774178520885461587849314343956920001211582289424167876057551128948493680005345252760008463207480678139722708122219101606740577951198963585017686276067038777188420332715529652782868288324817493368183167419656985160112491104790317559974551830055906929990451577422009029796853856227885391669223214387751027703254959125618841967992271284474196392740047646347148636977411598787853615447548109220785198701459118490098969769872331314547346685414790340590240493346709975752234420202806346792763209965339439829313272103631283447229872249132448724782730495453160423887076773531141769914912159742983143585322176274300514642495404145195467059411185781445388322427643094156175441128696717945954403342605471425732270133668432670219135726699268294084376531652154839152761575207218429717669248202265972242244226123140099838994850942885153073875531288472704288503414573549535277895824108881364676649101719078742120925141456054882724861499395666802760926142377694621488625488080718130217896958890236717517468903139828760703418788095382799061498231489829529583835368215367551292045256885514632581819266483913221127957577484310308357814943773653873677646234868571548882471892279828002059557830380377696602531149974988827295174669742859921769474509991556813159019761438437969043807889053859561318987355706168178162548467826548002170050622379534918179212726472042348485001475844187645821234890797040093716826566366420186238755702397743615480471813862930588915700348333420369355794803719644994706100337517660936286534205233560543703687331571805007522528734370045229785657880288024578416625068248525287308936314433593109931470896004912073532862691307704399065068918659399022709015365327073526691025459505029437451040186484690717668509625793660855697911435380474869583408853462665340343176150246074209709204697112131085974469319757384087899628673483210679065903291018950507927217732620438526143373318340131759601991060369489238913938163291919666936747487146292060573846955581499480453145451306745432990393890006611632577419548500247109960068441936966521160447347032590343424914088834667543237353912191760716620601647408411102924265002032238506164094325327082723728035203598388935920980065033488809935682702492518431031674024421951073897132718821124176328061857651261580433086453536951349334954127018337554388204884657064406114162767277896172746694283440203289354769855788183078216769938332340969010778986207598344587109118555865052776756887706789409088583393334846699889593121666015665291484733316096909666215559992564581993867508227533815148617104827254820262355387395074700562356660831420396237373048625306931752585902972150595606601506811121235246069494673626853658264554243378357727670855159121244726710693254608237486848345482677351697154844000213701888208102760829922347467361066834545450759720926106715135165119280307107880339479499509744021457673692019433729565898118058212725889442221595305108298286271975283520533706124874082003164731526987215010762853510129083281223642464095016061112839865180234031864059795672048933480770425594645061120898748594408974764807784857112005634569364869751140466142786179686852147119821990747921097486659400523431752177329638119595856288600843326870520147691747691868008759561817738738074713204916044872836432061053277852996668494871373845768107757582097202278709376429973658317852241635952977699762095133559477755849537282244606680840867451567883439515072864571056185048225206441212883228426058884758021039994216787618208296451118677486296413757761511901621919502213118362488995744506129114742317277569394118608087326788538717452416536051199416081805661889470094707703853248165927797049602332932287748431644732881463427588286709969380543464602065644769109526774755638382579936875055684730672103613196981022277928686744580514199036811001185029486331322094128269387276687358520224982133285228262260230269942935613981302207730042875998798078085520696923848103185682655525597702972515302060838592888722192271651300070942506775272874577006114745896603504696727632752177666975498021110469174192541354850818871165933983513890688710095613971641296698678548981142649405990971487923034772070850477267235586902569982246366440037718325772044344345470950489263066586097768693445961263981096813541433238629421235526873126472964630676878389638743021751592033867737708834481665128849384255307690404895428827743037834969338407183469099437010545018142811788751079525516810965568406122238568121891533326875072876066532141081345892397865380514553296871178134931081467296582571131858884740261688674420633840499951035365978206892844582078797144154623601115002351112738363187903140554215720569685222077928802759563173801722951898797067735993699083002232372091858103474243336640160916245405346843263875546349430171815322322274809267740810046805338752165497931691948579832077231969632844784411781488344904628439297036841988508393428023356656122315642716508062431082846937766298669401291475914144098869248554585462531593911152651622995169413611345890890823287763989017195171222860073978852426766300794735706638666863984485706897171903438889621909805220258108321901268852212409181749852868023876517763499143723246977720939577723980018781447523160941320215809453759334550650034760521272953033013912580807590048469736178539464406215144580336367885152934840124633369623022694923114228054218539450037758558368893347677733302858622870904822283522197241160672190839082384370601721477419092744978311105696300492041282792532117271170627440827440707254152080899497825025794080026780778385482198282897313606354598794442898067055563555220229165072078098017601486680199544713130180034782079547791285312884703185027065405991255844039934437951775995678430741607583146615583270055400079462305189409629192713586301066608476721335227991049068515433554502716638528387574811687557729200878135704595574434242619813019464333752045410994821265803665561798760779605222739203456101661422894817607517000851074151396109735503581171331633632116820955417764220899636753976477820112112405748389316923580316149742266002951693775030868420688854340421154280048221805914016467848325369824696749901198033898208877455365012678728650543053424762974305504892704690431933617594268913252214010434877580775718874986083164994138634892116781100791904252608760015008332435301162894906226738533875001401930080535827548223648853571132768743394148921523228801271032192929554147351849803518784278258743999272777653751476594195933934243417434167907432822287884513034704111229094398551069711763461861664121075974500553909851807412869267343649600937738328452305785573046921849045532867344173649047680066688764814450284524181306523822511125209907629771173215325319110561554821296106261017458753858765999864646032746483383953515949553300391910745907844358764949767743820147662799727829788455812727540037408107512792496159208001320859692623846602886328281836976745867531151788364087763903867117034988997332495016504963659047633209324837820589741497013817843903577238501148960722435936759106080504418006488767662396838455359555620601976016471068503067065569317724282637305526791931588395731845442862406244287905241711966917787530250005062503912132112302126301110145080700456741486837582616626184518293991894542021651240399051324098939171425710853978292316564508350505656654132046791141493185570968970023470397286496894486710477119100587187695475310358922551246395875322856842950588504450604761273724621636045778152839542940900408294354263164221457136765254249047377141637757680428146495039090408102745695856034899664346862942493856419474497898271910222308084647435409714305559932822443090541886754525578946189483675275094492138870284684027161290827937857298833765435727497487526313418430550540088206908385385377923938105635465002996040341601924067715105035385195977974051401265695665779541430106056151564306317448162219962112989126263954651327202802989157752313712802592949169508750489947468244954319907135535675328245365041448874351372139922335527777829608993805027964995324247492741387961178748386001648536026096963947398536579539227994407024982421156960621878974716965824220587476095040994735289703504385735482708720209614637120769033750385251754066667344250559227419115045606026678508443157531632909131040733728801370444491913661878753135023959130088091143105577460065996528840238074493417279702015844848256513001374066535738449050475454061751450676108022032765532595175214131206175455011362889513897766794901861464806920007757062803296772461423598382035027326246869126817214598407203344968677194767472794831580792260414171340883663118314020496852619860404033751858860062669719482458585458115108913789954824948136731105223401785427214489336760702336731683682173607514568810908930719545828666327053663033781933426902669504195681371867375263087177237455280194567249181413214572536792232295979591410812094029201945199631056448871075155485732013465188040505958489118754689537511023177414264776452525841915809096012130681020424035537381100901939044480656108281196851181084170184122360591761174332303603021782154166809556715342419514344388057101074130921864487213337074899233088105788936034798501275413064904670098712585106969550454520207695354189131729688971763645962537761705137913929313598658821591840661179693447972855277138168749043687947345684128121863034261511448073411261745349829433905065646076917173832340115783749853178399034757692065252733694168039965046475595780017946736917081986478146922602101549743942098885435405520762488282737098082680048651577477754758814276840396676476857203062273100443965034255181191512193861130280001229925519613150257930327536793715950592729741591678205755903149828323091293021028383971941844734013940282530283912752956764007680064927068895990437716255593020328929318129092842448356387539681779382597144060297244982483918119620890776770729073059525233371310824897764506987714898887989471709064819776148539216996300321472901366477072656624886458533543847507154270707449293601858783573786503662753751029186176428173641448907093162671248768380196146571622307416356004056222303737343549986725333235805911568864390977349091439561095686579595583637182951594044908507566496282844686669463756800268404936089955314494181271944334630364071585777068086113200660089937857092425190208056887984999050523748903718461773298241593815284804400006947171244796732597506897624560800081508421861557637310626939893456060928704863835777614126493126059231862579291206077278147510993768936385866857315064104475892999494507611995169019368042521718637327409710187205712377917529004506965456156931500979398646392037188004234908599332198216159325511986417302027852597307837071426750064411689609262890799822613790505706695822253790295922653158672193353146346554091622324646369614208028299928625977105309853924072317348291122654013488074277859123722629663431402863508299064831836131347429660762922651205388125576976230290259320771015925967257065149013229286243576423611609758045237949931022743884838794129611126263314794261388232607483833652579498582192680505561231390998336865360632453309475555823566147266620178850221950441044698016810176363755726110411376280276499616287025906561756522116693821809961730046898978939247515714011569385105391058688337982755480424911264871237597592511013075633009399602628555845420192579837263306466145000245061900809987373355224085514281879735792358993897593764655118623235072137922210211510247550041091051660893539314627196021302171438755253993758651815567037389894006078623007769377361757427622843775735445510984783515993709353025750906652609951752169373561415566804896923260939782205773946920195188207212523733789684431331579755117730167118494313214898757894085637267380717693087820534455684439291167896231549187657130157996393999571470244493421710196882606272363961570479040633372823040492625346394759172588030940011086326211872831812459847623518046660397000349256481071127336745396728697599228217239451493438896840061382934868997466874902213673727351341826928788371905750130840066151206445605073583599397928457515037567805243544147696328497338884867784827078650710363809997255444316649560815234823951727568550492736047830279448540060339626320466894568145549141783400002586703273211956232616297507268874004917052606277957806164392509030490722041359798814872709087967090114834027383972276362370019651736537197606283351672651799894628832090074029934995394108772764211998845165984057938557503864391825594073178778465350621017694242389546652034575683052331439131357972405776290840400908615081833844623932901741247361598524041476074313237666370675139767235596976187568056890287965199614651742087788022347245719829312508474262711263898126776985219561803320470896039621405338987361727496495119002346274637939589577815078416271617680124405390668054358236147430214418213284441587762977587319902129825676495579975234220039931903910965275899383926106825551555774014061672803569833895732695967520416036932597248970294578848358555878599189999885909358990388654222913884492477192730930315754900319397734865360206222487005831997295296322383501789045135171979749308446509509819079420076584360279637327829713025881387765037769198301014739423758787552054506443081783674566423268177416125508144564335245745565695772985798315713753362029322038116966832976457631941897835038449363347469981082768249995438009913189182879646763505957308664823126305916240878556124802577691072649465215457045837549773161268001184569297909579072768652587707431924870696572208101547598724303788228324568329480147052883875366078076819390402586557522402895460971633865962564802554489224029131401356762211813593137400937531315453618184803671159144758415425571018704781015910593290406046227091614583425346763632193392826808596595730429606426936658760936696315759006163747228741336900062211901712384053074219989318698751924347017792262501938695166941060034743262655668954725885422190546440678384798117062686586793136940627505811267455891903594380178654407744661157209089619081714673746245548249754485823467605414126415063131850957826740180829471058207992835709208608456399099804640729141366933595391232331634548722243896809773709356764911292498105054734373341500783161533331976749158409464982145996805253097099568125196958076314641365348840217312266505940970826312372734819750372333558931882274165304156681825475231084555096808322765826780080949866145886169994475398311100381781538209465145701850550324415254890402716004579737320915178975308378386603026844279340490876849357339758163196147565768668384830807502371782517157780666028851602886256154800041787775107869952835542742526588367590210841836733628854503802144371897087320879764215547027409715952591364309709505497638241014408720028560658096774862171405975287033124959398201428924805509619616122997407803295707747397752586838244612203078024898895903027658559643531155936085265147898589904797004099428769145697955584797755541810050296248556062723458047070900639286032235584946779435963689943054202712757492617879805996103964653694523704293389326354980032240924783002021575296758898923231985240706903694344781432025353032104683078773360601891988231297730452677249409654258940970433247785979036403688386398819253865220862844788898792428833217082021701773922249120332603631368781376894328718632440722138162388795420748760749911653486572783260973534056101495444305565004326187445243439283082853910139561548972020981309694308116550410070103070578295728707792614046279186360746811093594878395816188060673100993068498140929776109333378514597341925581157563472596621006869395618074629460838148360109359911277691991919419649798461418745392170076458763963888731441565115169435066646445641783410342992993788709332794274889565434253275963959447397681120402494759922073810490324137757002834512250549823360831549687151445879717897661728956814248599334836476872349904021006973038406737103464727304772667238068000497455209175626658214630156806053556495882566121797054775490718954821518957139040426548550095003693477819261887654969305582469295708787439203146554087180222533141068308268602034066836865983512543087698789081426065885265498019846127664561011097543321360046762319251800098412622012332402593634504087457758326864403312427370863636788597139698607579918142943350626316547712312608409007859106711743228012665020520917237632929536743226692974398525408301748063897868402007471218810033770858286548651842091477780319019711984802699376874460405642991211405137413628004217247502647261278881556338214347153572808259306585237938687139289070719771667801453047942616075926617302895493325374491442259793671976442131440034145962981477381358890324029211564541730563212879140912722440550752074561650637951386399705391136102920935551695796076368538677727666062432656886567999719426631083088134329780789815342636336048175606209288007641620987891956615863153335482808257666340893726269073813969726343642160020065348727659012010826718359996960877252399208508608532214534378223863008896395738163659214101098253702074246911183671948161058050410704502377672503685017386827959473076722868470688566062640718443376167408660035193816113222819894273880881030975431635764370376469841868519027925064223314180907273775798337236695869494670052608366244880611586496808477276243536990307900055461981242656105231260893287296151988357077929043222897639047122201142207576148742039027734082136928029668036684531438981147971033091034830115999802099304810704714986503842618980173355312105795009201013259128543463521344522293328277636766969840753707569953221524563756606158000162066912396583225960572093786514129161804066693176136822491896008506788613116155944634825879315094288321847847962733897506616659099729591363437290833588084001053432446067074704930082268341654697085992731475507837302938808777899757583470833277589783837888463277141935145725324002086950615742114359299266084111369984407239887005176070951603305794750327009983696290997204867524465606371813990103717561941337224777639337996307766550779045984333852137344219332754429328604077568492372869005293389761048277835638091793406715519662789989326390342544557563025189247653279314474792796989508283898330372539311204232573491791773757089941868819962024298991540804233003249719616474686355183021314691884194494707528028954848579762885977609727989873595629094849874285016569501083923555930889123539429545698471253819273471798599615212048321347374309973818611889501738670930324095226544864424134129888011625824807483813136064903446796175232483732153499848914834896110237945142858401993462281246414534631920533519480237250000907666191286080855252057225514750637730160191416398215611498901878245826732958863695041470367343607694815689561260213709143684597133541123404318581328791363681434609892852115642193630093633809700234785856109063612091337975022120980802815842933481153907992144118529157249094861833696890394536703864685683681697324165720685752594491879886877036012674958596608879017999774332885664287652046519879161657671688833275669423084368087932133728837393915587568369483538572080893597076455849234353967212991757568316887836726151268791981813540107287039329305864909812166200728470147336896238384961948393126266805127682743184758438724175043080308150361058239741293836676237531311168892230165166960118359510241247615258572673509616801382645044495835216999056117978379754609062052052244327926292960292992920260851720848977524683128342813665701510779885695600954173745137325732009268257409104404263561507678336237659142405049748632680578207725805545751803620409472492272142736466419449132780392894950035158325253747900664303118898161680553889252526951412047162830869214265043079949671973624637895243224106574145255071454405796840115680586249793253148091434013686662277189230874886767614043318005495308336015004510643860084843640264881488714988528831596963755789582569146040488925115913042894153445815552596521741577505520656843065910448748776547263441774841156493937872310197009774883296112392739989308628548266898012218400241179601626914496206166662246828474430713348652384590210637172736021810328001908621385886054148291006206895473170133858107851732820918708527867417508330113753028690322383924195220120380498115599721038398542865528590758666646355550828372817521536547952657864101370277183306874384338793720844218043406124579495815036796116840520378931704639233901448607374081080381882504494966363818054156087599671230977717389198061131873225338498508304815655320202637806208332214352784736745985045065978190138420815295994073316061329421311244580824153539855993820771261994413932202732028039979641692390429172313197483369191660875754124707623588328575702777803443370057195505673993236170749143697009131483829260170932567874526307020847220226596085291592478807391791629355983830813311208045201750401365475817360574736146665456211834759396709597173841306212051318988260651098129921390565140266975707022995440764295242419743994071635873870172693606162652598841148437619360487440444220330584677631434363878972764609072141374501497026999094005147032641943834903964935766302241639492646066032958801626507224676390462087157608946004437007915375034292476444573033338324259325129683136076759458976205344790155715355030190694350339813625445788532206550580023655418545190771919754396066921123056494625548367255428070692176256145051919136824424126941759457259208440148602558143327417223462949852012714969704209548374785665337564131426139823644165738070487133645455189243252679086062365919560260448892724315291704928112376432622460422581111029475042754321904591805457679579671074610761778177505875901583822584324235905421717488125693482279557273393559649068431278930019081760759775147131945332018403959518735291127393480912997031569152025870886778157163404224887580650975172038527189213055769806708512182667382812251718891981943905897946734919202082958521812213656337034368112687530424249185408114448606919740991183139073766862984011679068523887010776226660599241109105274087473326172801001931259984865878288043601677220347024595998606428841645594270041244008127352233357822671469213349078868111385752415709026457734485458857724126264352084593677198045306287254755297959196735703016058374626862600604704250741173907915442654893902577880732593813594493982617492193016419892508750732037813200455327749162804408609557759136982565344779044948308536753721682196238610968849448394240105498087969126806415699603268206371737943494158975466036769673371222049198437940314673066424741248160280037969914107051628986576256054956639223113330650214870516566664474216911416708323318394432550663175788820975928257330533664437509456829508663366763881753735239728273840368555498681336080861464051155838688361134394391831562499557932082800135680214502059089972438092188225875705941404785960465076594950318691598662152924851524634451188103107552201999471930642195368181884109341751131430933259427409901173410468873608723622298247638242885915728846754890728334240782545113267920767958654833592393776537637581955878654031079218423024397045697426209214237493600036473034668029894061177793136134987299985246373077692441654536308729216999561919861805609052970971529752909586923160527129775519941575954859380690086466402729271572785676795648375168230912158631791987808431117273722403267752326650089721548479210503898649021755630144437796452906638579912303030154733966879003374477985859182662734990885299849848018637697144135625398900213548906196506668776400985662326384809889840457353615814661897464131215041928294642612694820952959032200630319886298735184491081558514689814378246845024139603895742299539024011652308167239588549896629959403622959307095820259678522959391040480385786454204508318094035971260531513191166044288711303688233872401275448952438440973804219036651451033986564105981635411446244649660601922815675031138575363424106616543390059174045767338785735899611136