5195853749345807807946717032254873359723668258939634315128454831267140506322226299721243189662789593544287419049911146554410698658903322164078960184730282342217008440657064961989463481716937748583559365752950997245417111985734190026602808998622274985173757166169839019909771998496904379096713696607608575665515105643553224594155915762339980401065320743292617209885028027167363906980300572392271884796412149430138169226456784862232973298242256163195731309796029317736550885402711295436405017049823479567108479608251892394109181439395105953914739929258679687720669270765167531533469326294967033051038644408561907840560066770176279044485241432217363360047054782697145779912144981217311127596865689156148462850982714927787373832757461217502600972375143871254430187318078348436673187565690134152884791625568126544391860974399678147219865778333863949046475443258989865433377753048952690235661459446090438103508303672706262418452051195915366107465745471612457763973474001711468032579641896673060418918090237031399353443010317458349258372076115041486797839584319344271579290895943523306265606631168216235315819171502128798362478309923454936853004227196032280020012358852548849272992695924936038374169413208136435695197691395122549580911824467037646316556069223282273366813516281912678274197416644080661923541643900737247099664062129221586751042125859659525921234267425190205417002968910413636163805415435987787083874825299906296737381870559258536028647648268941679867912848601214179943769664821817509894664886303298575531014195956946402891521940708262463883488182723012165350330257494883121030312614931566509525365744066260391663066112862825352937343070000267663285562844380674318616716742409838394679117275616577149724064048888346267985547195819892208713692437053851406116607696817798158391006482523135795555236916721551761419661985564120644345927073150391258457913426480914406214639668794530231674222313764495959815795258372540972104581020615507186611549794791002560663725276094655800880259460626683056583192668148236252109161830136785194450375108824044061144167845365711749369242656152277694378905486651597511777393620380727628176832981643811550912951923795512296485659930095087382485854415745393858852851460108446932474048587973758033280200145848095590458145510324743863888363262722867781233365849126514350677959135803937264758761312757815500524104598225690566608983765226378788238060520577247135502035762531455251304362096800351664130483638154395821031711857923336385748564094586780862048830174802476233742190879966171055172553801535809128216202829025532898178232713725546267559552006386194027208570135851506551862590110613344201325801061727904163285347671092224714811083873280618142819029242723214312600039090814106008033215536068338342242233743354258589132749673507722956330766291040054338205655338633276243973087183517347803447301728453840158867228952743197828990846121236023745641926235018817892514637249624288370904506387177329782416478807735835286814621454332584232122896489907699051297621989402614904542443202118337000208148410901365600920142975786707622563564690251254368566144815587734180650786811258105729211769542061127195887912833305236413368674787507185877060391924665002869248098706384080020122689189465499299179707206319331690519556095025032913634365208467418364974586180471745182712558300146644003711769934552723989810834599909381467451817080488460453813814742988634815524572419455846227601990753234797244485421915537297386362786165880339981073536365094730909626214248146344697223833307408371092417331065435168551881622469568810644841494911766854017363229111276651700291378963375102435456574240310349577473700321665110878292224268226063344486643164241060293720642248683031795012436633762034109324292596776377520194560774284127656816583111874983340417846368123714463874061450895837521157070451997285781937016509252378175120210038517700402162088325143665796790651332372699807630244510180859815058296555445208233784802888870375205850495915849118698987764892422907057558142064824712498878120311126872696992484856005993705837049727996596835210821410890373188151851501284716809950930078486292487538667148839734828835773392540394161875758731224017584924178218724812498361484995743145653584467859098935073573047351927286723418428212729176470216409228990241183015297204951082723655445570699090529240746944217572127674743653715740814409820688891568033309770254335876769727617773676916884919342930607580341019476067756257292495556314348559496003889505234573138760105050990601099940473931245112132638737798998993940333558160383647410290089979273216672588526981622752761758676008675824776465538803189254122723690173650307861651069085597779038156412542338404600508058735748663215469702643003064970744228185506052923297598994491466899717268964267596345144683730420301137924340099634249608081124164277060404514587002972780993319747543594056504304592870960391266021371886436977436614710749976579716805449146889541912096984641513203758662350205407607305760922252628494620750391161892378471696959808261347477593773911858927523403330565303062439720806698450801244201831137370253343903859940065595678781519645989380765759755204872640802877375203280755731362849014194372109720158134608845030941451999100073088901472356850854099288109107416206453688364350860789699619350981536904731276352330200161197286349939413531277500521647756585119013064318545296359413199857469370777219173793328270690575312259337059976346679506665623265491424230237871539499156729055604747270294981135085090663678138513331450859063661170237694418379702848933830107324348108559386356641434828848570915835681529155820063456240198190773232395311903900345979089909977301640182272562507194193094092723898906124381641350860279779051330231844382447683660797765660804927012440794452729708575042132525237471551006378258116721934296720578723823451387298971064484166213086378724852682479686135541173572109971467725973931544009216663984882028891498792947357388945334722034824963843137873502407940323627109506990203081431682386428880591552141172581625893131783661721886191318576649128542620986169257867998845419432387549548254279966655530181034363117072907325311987431549652199500318508340872070724979845164015147097821919117199687571097598113812505797708428487145344104015397657127907840699403948358750399054877567342311352646582367396392889535360501736901650896635365543507133194367067223212885411976336050469905602424746934476674208913960850420663147830288945475267554539681658962745874678115741597950819084880165743100021505755441533432820937501822825085550105359602995999740822114612278388824785074674548631852313641479352730348716271035220452816963999173207088706919431477669255644562882691561153006244910936491957135394551767077601103297837922736276721897595365585804597280553181754844604130699279638457403822098472843257326253226162813205404352546972605230562279461891342877032729080604760088934013258435248410428489865964767168593347961713865704790296662389249683370551848328898817584822757725053008293025904896644027302074580891710023524003668170811019478567649652904315772589661772720577231206497938416664621708970028751981621415266922385555452565341430602844361063392857303659283337307681128224664840680045064408148917120053529013071186783223048939652767010921329547115438842636502778579571704659360914709062623991758706976331278370840756028418583454042686813750745811523474223668073232823298372954007344867134031365557977814100600344821634138375830638419829880925317571095923406479211203292285726584783275526264296316736955538196665993555271600242915511065884541040496923184218419961077665019223363965374796547533641318910942379665293763327071436677479463790767296663995793847405142089369435165821220890174914439648674527143625748827844336870744502954778031615498282726403488849144512415686236055327067416200114675817486009705248945786316337894376124725706220025594236879658196808381852484597156570267123932623552638886335041708724537930202558821609343957028801365059179434226387311616419300436941859893225954695866508538582186362341673269639225985739697805542787945372335258746320289070625993698225459984859591529537699199568381927825301250313376036055901749931623254370411758462067568742636898213651603888725932798562836416248603774152035528707654947589203074452868161614494260654312333740185472288350709125281622856230249897016951931853472535821544579568270965058243690843436580947903720726222156415590834592597387650732465670321971065414763491167130387954997094100652129478695309447133622331842917129077946577421245518851046238951968662310063288749625729452248344210542658076851813386231555499821975240048723804143776832471463561185280062343768145728976122588696215211556822746219116739087956678109354947111833755438336022789509545039850034319952796499678629683187072176518503882432400273131450167474135986374618958985299344460117631120867339125013543487823934797810807530442044308646339733203094184848992197627492126009420720138622411730593242564265217280294167318492541875022549060898828334066915169346949193000080872606112704320255940850260268355525137417940075570556672609434096610361156154711777334694548947618644860575946124867327871676437392778836331043430262949016759589767640383498841867152054739788665420468708592788593709172151927460506387246415264645553878960716767305020671297761227504401573240981583550670446679430870028443441599945012157824767745858792046296290791017799265940526395609339959039230919936530583113773707602505429520413076125446724195865126779621673080693248911330927539107069236534604028910053055808829526559213773186078074389969851714360391779097795692031938913094531560638647426986190283075484948094168923666355974003311969353153679562939665162663905091036341618675878735351527928427530275337205892776202364156909752779313044523890420667182882758036068462825205247314032310595408005841134754289020534765725365275760984359788690743120702239767343331877755625690012082216282917251438114776346347546878496788414558479857481126970557407175926482220215064276863929769477979627940971488905591984850898695568362450509499949137523612472039865101261100105019872143490603690211338458579171058263602772041162296041999806012849209477681808027731931822423718639677346526339103296488620001865822556218842852182720683793889361627348123419627800969238526463635369282623586376363397140897250896724087436173710149964953679759331840694201682696693088455421365559518938106466135444289822068514575379289936640284603696892744191738767750324443803263852136546729596371413858138555841154709472432069100595419375869074545592736933954913555482979976331880153856142533998436733621264352378753467611910754438801927463600585822684785851204184277914385333926284652138368776294096525068450079544858695573202602365871726824788264033581901272418995078750238155658016107225477277874650783698154956667480027754442908986346152657224073076851305696594228844000832230648233364933683005999400493717781504941345703004604645684066734994488523193504064439997494078467906869178429826379278018425262052649556499482010037949781318514888744494332644648432310542403882756196539894268102343497637026201921575565991801035385149951572774922478978058152780205190348525018265153968784053083692737599191917522829707103411771044804823915678960840650901089283674056448916702896852953051070347852407398978158844139445643688363613343131057841265200774033870231676080185870906527504008395329586184103781882435295796625168116735255633812066585164727344156829355818299405054661043888293876811393113163679136240628448836517656078385752665299252106990542317015854429686206232442141106337138723166134755378522837047681304277694207773211073366171830971409278698476798906242959143141291118078825595485010205219533662884782574133672273204726770146424803050473831168598961648653296786082139523630589376540406736404003327279632680628272213996636037479196060338491219541830403017854774480414353584439523563974650137585627063312865718175472838852600273079311507188096533727612873900208149200928827571853625803203224148179171953611797169640970293717524431527998168884749746876147899343405294111999474458135749539563813333845044092437340825888734016459844348847091726808486260771327301735610329501182031758735877607771343475335544847923896384144922056404947592087889268996311703909559953703911699616416147217508463368649030100162703427149890637073847841862978259691405494458165549323419617543413654293749555110042494455210661926346610676187291440896417473566200872939658377521610352100567187274578434361024295321531697306033580434860073592035199358189892151295682789139442961806715694919149617896800844141231902562963978849538219294709832932289586873767611542562043927220449497085461233397644858151873928868677223346785540026841938321117985707042720374386961164097119907488283456484822528735134956847685513859498880042916430925509278729115065853968259902904565592475386892388774509590790247706043582261509387748797766881561265524740901930704574251940106223885260350554624172508692702335724350396441814321681551722065638063002757948381449694876083656453864039823661806776254962227973259663546912193771497893116814239206560252571949099878180871295215871907154349258136055132362894472662478912838751467971108497844001348149423209445242353103887398423347380711665199435855144974827151990962039648691276890398770496686673986851710948527656524573231809298883955949701577120687911001921709104699570727540509390401603784694154011193948908938978138407876382794803298098981889793644331960130521941750659737717071504791814876971047102086867574724204386864551666377585262929392812350936482548186844460653692874019002740905823517953029389676078978143244726077773186114081789576491816289987664083605103381239988060798697364863123734062296185092061920766253575949446765383983199292368084341935970546185583893722059868392496083048657215695977272169999248847241117938498995613930939853647462583276116015587980974960334171329656378070538227325711844252494350097894857770512094279704943489489168654421473782100070565903951877733185323691911919076566852049813131664033135337234891586881762176242646069592325715873551728036660825431491624205793058221025681774327567729159728033856068536613145991664589552465851458202873288877034492448794279414245422850637331880135904421473997440625689422511624124577714104848810479312673835248705486997382273320262429702337108656356095212544670823804048859625360069591856214306787291076949485582542627359799368097295890848497651814659528565374194783767607472564029982838476995363640401249505908906280037626253527677892742243043662775448163426183962147461776142319953870112731028342088256870111107594506789992736934860458569670329879458447721424911966812779712690645490273315806902684852833193158708735176667367625011294604910891674182849585248849078539921900067586760718243037034888880071078836413585419723526015893891009882534882323305658359938328428417660049382712387113006939881623499504433614942664074668656829168128562933438704102679534216133945802096339209629986830252875169640959583414386375059075252779744739788129567294809707333601585959937740707437917998621081140646539314485138820629492591715780443375813337220282232582663231275613105549271200523771048362590151472026954084146424628454604619866069765164578220782528099451447144020647005837906268068014158873275340040534334950767669075862190724729883216602789546453930159121604583814585853708353747762784944303694152638018854229905184678019488893167968853276167785143954992782198984869297903672286582971250479268755774465833052701908134172109084561008691006277378281609929828284495264365083820649710602685514053589026524906971942912281843249697600262653341445647976150484343104120495830984449246861909343754167117790788133058744835879244661482151120043459223617194119685833048261275610533904623135004687092918045517660951424748358816625817712373040145288762508389042623495623038042670547797635649812152725128922190244924788343224549722234127336360862230164497852834067579213849936160277727412695102859880165159875893565216585196381369476092970459716348907526155391339049236382364999889541267797930935868496723122101065292971664758244193866188399505124321488964788207684293032983595027176072451372130659962260510122939547892029243208295411573585879834523736660991810462610978556530983356922021103249501508463027115451143356576991852903749151863418523969526216491692066081168509461768720351090160366064281032088165937063162288225921349553751678171978285513435938072027493550467564383844288771588890630995032789128502920808967856819919512791713564767847734419101102054334405852238922796148069179484917368943176968238943759766615107933738045741665550835702473983677950865339505051044615952241619415591024975581695166752077248180649742240899968584259457271190164149373453359207623679496616623137074410755776539906846507170493201642727204958849524274092041461536708538024808861289789993130283864727529910896915983882195224501983736737717419918396516138699897161744526268269099650374144123830015577103020020995023547959343445993613025128128730095890825179769031433046869632741220303920807810954359935808182315446739829510615041945435354685139703696657719323418961597955468449719484256188430326585271828762744682117826670703351989061848113582893675242213559747654848750018298655180412777642418902878889718574082133310184426226504392363110629832174282624356907336673994957930258676849374075719476765260964089856541578086567405182609795104080744891790356106615885855366864849228498433054725314999425112596429369113528000631020973584844586423444707507660762760128602051703048518278035001388300261477547942704631435046285025142299053758028492646240869461086206101586399248412136223169377098609758498312264577290517444253114190039871198555375327172507918437441428648493031663380530232076820973837777180247575629743051744731124992611735592165140446610094116606977051501827331486048047569229817622873955699737442256003925817689866252712796540765466758340008984610982261815982538103038148947408407623814403666477881695499230080743124565931679367527077090198273585042535693639382199898918836194798052621084922232121023906525005900173371874198310512813466066566674001298608439581862218815471149540679539483331418640521069274139106159008431673447499606623046967573583326584829678649202617313070328660228711679534564726457854897754886757924878224707452138627393771347049527450930676999751591869004718761416500667257132381578478840726868418474200023252419357242214990742590010023449790625440661051125384486598833702775310477582795233772331225606984416463121491014492735858418116558104526775887227590086928749395205658236814646396404097861801321997720312876415056555342423555744527668945587192758383535891476928695489048758033862216705943536405044958824637023345916510874524029524307771583917419070167510012065505383431723475382498159261578028657900173520058298014041198990866556674926931851763267386186272828595988581767943260999618235518367955713980675001101062895447283979550849917417637844033678397784740734726478141925338795525204778751224872696888411381944474842727850337506194036264359896281563249382133842356972418398926072407436759034369957299029822539880624299202638633363366258412400462992812186949385712338279429476766958266860808379613431473420107702529115296024095339487729830510763784303916326950808581564526603971402804536132112071128680240548788969322036257555677435550614582489321524240995562216872833282420353515040039696917594788107450596848342346315907756235155891940524369604235835511235740330424487924884318892343567042175118666368757288067202659363670282048784669387294024299136593512727696062001821233653676225687959729326536718831207565198766552524467020692586706453073859505858394006176334904650968243203888618129837470971347443277598986758661555203390435179406265153838695850381610763281131768374757627113241403480808912199926302165886111352690770672881884414720319030165435403460759837388761803716832476017364430323052939019490073321922668102134549732744783791124326592403617061045310789168380712471612083790895436415322250232579741049419408942693235451585742717921963803708977290845004578850542738018499286006091691159934999173985824853554263333448432932849247830325671097431785629812107032716858316425279347910801112815197772514166783728410400611893403181343759438800652702773953394612846122066947913183460756086557742454760355056365701887596242926272648784299936507795445179362999154032451354914684239746773972997390546672074542975940527815004843997665863228525119162953454948338194681013866387304509955449373182650751148777507967953407435744019085299167918614400750504089480498928935626598949025175583422471373177630399194196603262605852989396060099019428099415676162450490196295206149958900567284439479488008638343238138185804247294133044917741175988897487812541065360852536744242131870651916112759735998663097300598563764376651525024991200031181948214752417660173663883987095290012597849606623099378776486005117367051011683983821798346056668394000101379767050120065660326166666687724701506529635192135841408077859229480033006516729304454262947970918022422173756786132668862559651453706914280858572738614870835081351042471467324507369856830339575779917154897347084069743887744212203029408133941348312691375806027429470393688822664924162652354107144183542335601003510785011431246754119342803913374452054197322998309333524926253708904413245445385219671163789160960302737371919431398514883899895936119956148181221072561840730333955840565373495603959034118141547022178615065625910924336140305017235096603175667750193718849350173783444751328194113484378213331609044410642451863112659481814084098449404740927239494343534943342196146611603327267702055540884104728489549982619389595140228638110968923812173012071595618482294380272663881292590759310169488827845102491620979955987903942724518129378431529424012712007289730553590333586438840121332160134299548582931575450562605811934353308266459616261218479061264699039855401472098229067074190560473469010157356179185983392349496732733749584202111609049374224807171556404925137207202230752142859014655157660391121355321535721722298703570610722868400553035218547327775836809195935981395827771413291774455374868457687179947098418595031578954800569287272981823682286343149629776604322511793062281915239191169739261523693009227318942852068042069222581881704546440636833747944966124303584949683746330704408995617148497891759124767738189079640454204093268181657421349257111266687096313231496149274209921047706415156480520234162592584698479021536274237261777936295664501503667394828544622426145611062212689318890655117459063624831063321263042018529365271634128324657873187488241177605879281124589367685424248366137614543765113150918560985821445117672948459865867713702394549060827011867844330001382512076972054756943727151251490741958546842328922204020146395360555319094327120450952077606132298729738261083039134332093717936719782609718112025568778149832414382643624536738395172986960212650825287741325254771970667788954036665439562097564761738507302806462006063272928495678429269440097208904231434374841794611656756486276700843270765934305571147785303074068396462056496043157826467875271111768063613317633426062859387499665462733164838270887162100940816453636943436254343059270364346081454149492028552858885821366964019524474776631817696179305992403355803280843025894511441941181527108436520933413874019213331583304147799882234522023945388547977382161150474836038433961815613342568774812205918752059241802146403380761992483369675599680804544872859049297534591041909989444922117111041894253358458457491884005826930110545981736672311500911494197108253841924682814974065205614334260545737296477875281802374807333388961681229017536726963344177516302570703704468041737172690341082249319790137041125942201246445679611680604419531025346571225783755913074416379582127774996465840331739281828777999677066703397321504422504472271138844525855687748180441989216320214667252711585304458547568100122699315696745385721585232053176435377836511049611770393609016660207991542657628705845115117773794593657923685565049661172949229678033735194640254210328512544512425809418883808339372124489941183773614593883617654967415300529896267717095466131528260801953843479251051508211474300381477761119134230390121369799838976652863887200240262499468341249814001489110234360510456391516497908156177191628789735464526266066882599319482350233770232859456135385326265491524802935211266980429951678128370861054685702490543538696518346422528996567717861114084645579112365264811692379491990364811823060586078137365314404440822014321380087890637179610164147358880029037727881608569575090735614717620392080150007965574647109671333373682607708595052416236194338675933203983733238480113833267034528949247610944893804187514217770575499161255734024533394726493440990906032516028572801283822277376367061222824782963091474701438175871904196664851160318788831748236436855511007123154023816081915558233894095707122624015714816361295574073544266429920502083620749306703058585128021171379732717647228634582095807924062036318072805678026336817519016229950768049516329052633395396929814991896757490395659098527219101600790375114254720729572393314585554691113639111183041381622171626186208572583692907135207524687306027984133403703417047799268009711400914364634075770550586497368519510946410818485431490139965717678762413405243897046069956527294071313753278567362068063616436843074350777534360576473844588172580915093846273230978252700528876978577851479802900726907059847534382068216196386469059765759402930237058678217953959835301251554678374241072867153146687713968325263787895171987292960741038871407875565072261091298362576364505282848356683792822659906642103621916851410899181356257812132405697272424403311557172963287427086714957308740995613800238070789451856697461461022313446244312257342011858004107348692316748074818129305105616351220552236034425337368889441186308464687381733376103991946064705641010848022359060460554151631196397372274510527563529035108327956694912474526272534538059881576146648885237955218762568546694319973762395181603570836681251783671057296805965223307965190369736842661251748370601407926063037712979104389226387428120837240012200120569481110953776860584695816838994843064050427013062421913696496980286791734436842085187447196784713493666010694903511265974653135574831543512012374491099564977424918162424725952402502568956799290007349711217567828074969639569669394276408154936743140104160027967494034850344918332453969962768407811307331733677922219115382223004235978142419101432354992114415949436241582403657982371692034638572206455705061769907166460833780910556126733809709525162255524625780393966247227179796911474936414543940565288006075677724118769224618764293194792259031553339351723590029439908134048293537463645005017050951864268188541288552153664360455542079888632860626931208734880434631520393570642336566340728872236499429886851185732466449326650399232111807915599736380323098028052363454255704777316448857760565701157572053520352907882558515086201058363616742932711077938447167272109460145338510718401356063890100047061595446528368594100489599594300450905657493353774822872831361407407973622058435817005288425666306194466762505197998426368825465175512298449058848690227100646254716945880895770539661472447173644248837826393457323571816533808223106989529964607064146790170902223912874761231947451031058149461753940417531635471585690504441627911053717970418576146196641703504600081789820688302911676756007578577755638706636828086661362019877553026897550243042608835046024889181871527651956227011525237716634811974639825448150212745517180662859322305950766898172734452518804737067662649328136319854016996470187943117149053694570072671219337021342156052411878976134365299001145450166308595392006433063963188633740380140779080623929326634507872811935003901974377309973423210401605205506704141982870223545695856387938518033221519531996456032670364125028450502455644390993151197510023968018264839368357773883644656042854670163099825602081355720425600078185494487947246381853996566574482932480185900548724124770438877170318337927971854266644787565272314247949737812349003481148766907322016090772916917255470246947689891590568769450176724759443102191340306273218236908483328748958083023741063896597335777542447346658033130420179813491256400145711614937980098980320446086101672743137935034832864919517127395569983686180663850341293015745302291559267224610755885187761392521686503336808873462970657887039108868292983760106304360158852772569488776053164894231346121409765614591107513903426561274425391853213423184584827483501043583769090343661119692440801905354620630674030152121366346446082454517684188294406643278823531786148906415335876430868640994172896686338871359903089853943360649208942829964964272158543979943974868051948445862178032320224611108903108042639957750982015477687588808713977973649648949497166814695577974761026080884723539121691158855322534133211694047050110235111753916339750819224029141174786851243886851943975388293310899485609998574668966594323665744683143143991468354913345711386754169583883929755156581162391976483332720013998414162279408695334778950952251102518836886656289757542548874994256140729494012098742007984383808422594434835135919220919347738681830374768372873896987822695553646784160908295674273965124680945623030130059617044430953421526088492415411373187621626069211820669901453690909762835531453645611602747016106183476920076430901161346148768477814406514158258465609314180038719160821247162018578400828922794710792927633835792643635527797178248530204698167431895357127944779532663022949792972417130925302256522925120099387529243335875101763956479488416279104437025636802208955803645372293636448012692913708398753380619983638549709000381211196425587485849693574584622744953505154802487357704163625999395746351732080715596012384874813488014288496568127829157634125563365783532299001884799463975521857436790019029208678524912464550393073084096017884747238475830860277576085786575959672520003199126884583061719214282434445854767455904200482404922176520105582337838259307548031258911922581814597413354119912037939121389560920762107618519823526539678525628604825686438410772426493356818689171630374125203446195420012970997150198510140585195748759957046752871723847996506071856851556131418691975764315013108793949562704663861347878380691570975822102679056180978816976033120613934191107816813794482095408570964483604385976356794003644501598936306735333068647157412872032836576140783090865670412609903196843568546946932509541812803122717063918502206456410691882195476272664424654290941901199318866583740183658188172373482423319967242350725534451688036279600597321567639292637706509236297246989145809728092862423456175800599513094077976162405750468058008959369776463170421906043948759655591469015433475575270565341306865002914467714371999956590621307808190546318856045931690652882573383347089964568162222297576823162407215102558474796925782365771022743363519367847549018354922125309635087024709453464200692905435409917710291137483903973163717258149921040154893283671998369194019911116221611930308497234253655556767380552656686436269685050506182911066231890433060028533684203504601325504558964067920399720170540773224789685082875814786794858836269648606205583074543223609592119083853584033440895218589438740759045493906250339951719752537602616156457172116102383259512282543259904612834544783009960188442868768220513968436747633642596873750572624021864538202667926603979036209701897341271448230891299193823894083718945089903092121130422802200681475984975275497600653933164122360969466094533204269663970492639736682381735155582549946986250234892130213829487642536235950083463677708091039804067781286384731109870689783773179958087726299300397456435702129115913785305346375111754234446458059338979403141663749172617363168102099949254421705612984621947868068952988421591062351713818694490295584326486682817099480249699618276619367926118917955980949911748419445137858649435034039921095946881304189953997590993996005590278319828723112962062451061610648589462244566852169305401663738586533758214800116156697864137096749025957437449164824610024733307310805548393319892253366749080811891356296627617833279954962943033278998560321015443438825019422759649495528739373616509001044229293233796569507969529530734167086410789346206093956809882399108749718753473182478069057286106971952737075383631448443162882589675858656295658702546963142391359844710339995775030726140470516590072015905573187150764802863413510721321979387092179560756198459431673761709419726772757367203157314791961802785452728565386601342811908198476912294140679249383665866685522224443857925840778145622280743065500896688272250164637856930246796786354272408524988773377491071750395813154906405273610350567732771362678178719347608644600473651787054861743777438302772710086164960347521999633464731013012638125269922011085322706907319582495912914126324967137737568426766258550062604190804687434376052678533530800219300878512949644912876229219341272369110315389870158771702736864090012053592579695473543817404813815020489737606253608999730121512025073047707432893692666688830132649043724568847217574142026039304209681138913744492816018622653183051265057331770951663535791000415631137870947043209552132342394857960647642447778623947172411896593658422777444317712429770850519985737905759281952105172267229217790581067086282493011237060982761810016825443793094128924923109381392075519898298600493996316345474771233222141902052451082626264632865187491682898033142404120594770398137306586499713054467527004044958788446086067463900662463877363141986694290946237304640938764079167736256250983713177160937434351134750385373754061888982626161385751799237602019207095368975103689858782543855775484910808328696572441706081559007509580312281938183354962118029879737779008292110445941153066943817694605424635780274490896490872542012555028596624073153702880044355511013973635033449729008013448009111518871485720602613414769660581642530678151122483734211177136301654612537650999262783801624355410882035890890716985376438963405593796376465437136773327213664123593231977420234811253975331753103427615367491883908395838004424877539176815094394134727628071468222239820430860383755518316462394518591644630669944496327974113674524688051118012561194992303670133592407619411677787276407875998257597359291468146964615393982717567393223469283970432971260541397027359696624021065353489433663475101171733135341877225178535972593601774188713901624141004592841111298707678979132546657117491612832612470377290445111832581742026298536664393438050144402576888518361928467711616630070238916877603806642323585159166280081669439810585727176781607326325592445427475057774443603446179629863316154659437971232686394256133574190656500398422790429844568916435591151280033212254149505407041601727845949260496901862402217487550244838865914605891042364112978992386272863324814028355866163953192729006349830232177654371666076258259893776700918774201377075700526405873554655433864001719380432083661026482925312712993921964273530632380583114385684977073590844918156214526065523021838198282774589200763360823235319238056333782712889215207520162085991524802084362284815567684893382535925234670899370837606085324677170693150140178261022630263621438408713838856782984157274547781621403897683251549955772237915078229619377702856852330654345943776737675346621307530695039624001675342986548789433503116178578746281479134002956216627235182966685732745246441172834667176463132615880415050177451917724461785946435576172199945036819256424918662119827047031535116041684185041253136940643807328022291609104339743348303793425238558729740183158482322692044678434306271299504453686956150617460991518748608144403098714775522511673547307212662972843220773024191455296917284482767099176479989034553155974422699308225962951864319635232674934974806393689775207270793960464861242881140127647365434731878364588776991903768505049422610446805772361461838688183135397441022609836982165033851265804558761921805403620224519736217762638720911451823956307380911798951834825971154549180819911080986169542140365710629710602710808414479694620292365336307588669501948918380409646170810578334395480381119150115833814962806235883811033049060644935422603236715106309614521686189622992216998419149110673741359322511843433274199101269544779702964148581819338259486340718798085409258439463399337971953732631171106950906236160967153536809927138733823457173169985239919812526309781137844261259783774766928569437640335751887856133600292058992767890376564240953313333648448714403531197621617048482747681453804257377139290005943127986032412847684397327328912225923636878063831271003845636959451814502409782910020305978564510692142383362653665706293150601771095334660826282862482807978145244878244337955232480771478283808386110543249863011189336254535364075030465351663881715430894430838442599034201599761215304748832786046949470529506637167641535703307902949902853426243907150621061862066056242594218509325398595772988584219578990850883322271749947806227185075060149481609884778568181909407903018966126014492248067267108809200007610311860185092718539419330440111142238347957239092033967002023137451396191814723926323124326649495535144335707000742154597151101664178602182993968184633359469635043804023322719537901336282245740131643985167121821054673897472495550958574286478574032321179319875970727255993850254496603635523010193818418793719268828281744155164546497267648565357176351766383748487203968825350178803980619093831562969841387304185584655554838095391275414144662221686132626535165283824239706028186809072625231769142576546148956637544707220306311578122847643307051531264304946193916290964205910064281711115835127857844374876982401583705388901686471809296994135393664292182251998079008697111740116546754080179987887757568733745499075573580589278043700674049599596154412561598393673741146005965670022378437267534908013623129687789917850687340830632905317385064056842900634618782082514242859365949149203765543841093428713640235159189456011395505848629093117632650596298437988573335345657410675735365209907855198732207949017580127747647423943816136931832590603487142984388769373066259418589827641830379145183590115156904996750934962986405855866382073472148232638927677153730378676913227151324116973699962909766468791506638140737107003304380927796946519424408129939369797890579264816858299111004941911690757674166742662583784278360539505372789463620888156673510564524052330277639617433101552508061566700838591553207627772933839986667740599645076738515809192191867532582556054628589160079399585338596741457820778684782621679103052637872564532300779941109129525799576733287427404409629532584163021794023765416966928982131558950020432709350057649538841907792795848028964069733797572762441721205007904300384653410687931003223834634065093469700879562773096479832239849195176154110388697335229553538457064780192230000834456412765611317885904137238221767308685146287066566079803635702443302816445141808406496859439673004296930455636487026611654522923342045180644382095666821384576911125734808237437903685823271963185758138052705506865347665862170646550465646296872306073569876841506542107726313644352618695280330085306078619084419680440078102211751369230239670648692709610832918054977000968023892172134218409215713423529422712039342773524556027460722765937140175352705160772519591867351075193728999416593745604780526634243526326377927391852330483046571823565192994623819053191406153246593103302865256261571721336760320631971258783409557720863439572545733868637077033706792136194358822108072879573954523847556982774995802080048433896270935624891390880189283026416033137699089219307425344656398901314074082914945687122687327127368776275576960529241510243955681569186634230383318469483788357503422086419558889735684063899649092290842808796660238734123088087217302682452128151934346745553385015384620842658841386061526954466994456430706581729326478073519119555209379038111143791508959971837457395398210324794854649637820565205745666708188564038002785731362846313084802769263063332816042227968277668934851168502783397620417244000804380407267546875648789513924004433584210964652227096047349840294642174270736968768363107082012487794111295881768595806615826075845257486065241191781343835542126652391907521631709943226780993668907097850013194188401180280556346156931942352860710839867812557172876970216493564658544236582200487184205855101667411944692812861689100785296462114208668949236304314383903549760180057842866406937465755000086005110895182732325072548159257968589569187350583180345160096883631598416241299508643160269948212372213847967928882198215110031278490885571373151471303914918146096174632879195333573875377281891418882069088622070367994613803045933149158010217353043515905300893118123934956792197458059589679081894197682251461217112071048047127536295521778999601919113917720483103665733532503794615017880828249505189442602072443055733726640591109153413721965360834216870920041056498860966503696018605708712818468245231992252953724295166358194029553752977163545074581216136639584859157874128625183315939692551047953740152925544875478338694798594868984177731129766690559939899286174692365487463033089082072990517077203852599902211120427627688486117593742633964177119882540499100850134408705213925913178117137213226777647178461952369181804626048716480297044249476495585047652523172291906420368017565070835087404624824466503304161668752250091563945381041472898065930166266322626165369507796602196112839461634350886847617378698219492439692028016700562290159980829173032335136807953183299297270287581824337018704123553472209328186279612414295718063300530563372999950102621102909249392349776975961081244454755679619944821429016215349885361928899884267419420042586575101294183071598240282386545292703922431748908832850089743262543846089254155938213222296523877151760786101605526959178820107823099077698868311006924807818600910827686572304414107597379140241233092640981332843602430354378501901176165208592853197132570420620837554085844120449152419462524518364863357860814739081027270731577054399076158531539642460444591307737744460214478342689623083213097771218349787511880743051383783450682416484146324409705843122468536777326830473913884479891047891478210894932234613060940144934071892982476699151467461576069466656955192762678715561628225261837522142328686568025187919436629381696838707354256765467310973912172766636371796473929651758150468634208936016753155121207122169922452246858433759362482294411313659974650403889815064394735876241249614755143025532961345923558783654120634036699986120613079857112624697001770769372344741636358511071771958925963107572735360221328406692594081401158422969081124074734983492532757690897796918315899287537781066826815585186028507426289067164746437086504106967709338234040425078877437947643314348171576619126004757442216648083991048710723434809654875530448837942713896139620685072636670563357539928632604663261434102158584247249113373840267310820036985319144065403887814545538641230772787283833112993348901765999076254073356777977311101388987885510918354921718459670808606485036038963365537382349430390049543256043370924762007940070185039455169497490966167961969987591437943992742738444131338336185238933222506770615139272006724247141474634311383897714025697122937085448880028407189692152964258966400399401242061030255442977764314454394529736849864419616483825361701254237821818350221970362999079205629411692528551759885185093013586427697949895970859477977288537280959643623120116154941679533252248212575887908624018276239664898610967556247119610438151028407378375120755476338482298490241978816328494941674412741581515602594126065469627079343592653124473896403059012829754004360682129419169464376658634034571530742794600647184740603017564728792062433597216791752063820292071378522871603372457654036065362500362650711148394169563179606957993258330445384790747154124810510846680635263643727443856338499574142115732006479113509143982930355577041252999811262286575868993541255471661652789007665151041405520178234390679679336852056197759867690139196054097783988698363359019122042758268946334104031376377280595771697491035545948186723542602170240080183638133041623078348656680788707161985299462770604470148117097804093522568746706253267189898679079321678552132767184902891759666599667413726002721212491677533283159901273884166287427694348776192182210608114743596355890677296505836906728293552188768725455116699380062892157466242115761272842870976166481128852163630867141339327033782804680897260246051294136840218498957946672707403632046730861611507201979159990263578141228399550280477392282219666481604444499417455294523854711459519954303344180610162447828963914910350685194255271416199995387879904072582908525776386285823601502909167468211788327946438899059240166902723992734529172062067982999690962252535998815021328116416385372608952541323935177088630368805176961125358651278977840877768375972094630496613411295383059897484694167107769110230868174163912372888509275287211297115522913251539399327846667796507060351687730760702486053722473280215374047124194443048320677095017654069871291635040882949759360035432429649712216304599565591594148380345226548278738695244404929857892414179997861631156697199075864106613602499562788448157164640050712073312378556391207913387493564772114341206946167859197936293671982327557251867542462156875243341674329044121986222448036660994162595409922111733988892458558064224774766087151550439675530437869236713311126372315283846889666599261602725452684213597285242801738899161616975496755573198379552441358529117767343990300147193337573325347114948248279393003337184427061772167082819849159593202655351438755554746721646696916282717860746201786369423193895513785472547178346982825244623185553191355162907595888413976394849269395812102962441392680319794711750242452658803932200231211783868982128493283687807931162231528426639578907275955748865188341193867715605332838403299718652862158829380923206047477358223500715508537539850564202938861211283833687441336382812116902123252635004849982510802014714026351615225600698840930132514917652714336906966841834957119510275556080680376961044430251103230796495463491197291745770991315494043580939048878042520629851390804263256161049843106279155384365891217923038923333051976405942431552345648540884280377028512755811145610474553981929721572858439554016063518817019991059344188043555161413305006006111145554468713329471702313013634849404841722155192373514915288762702197279595005342694095623490770080717776287711071480042392479478550327046827025174278518855802757890694276979596923884670250535315374892580440133411988904057688115694843998001352440341746405326886361761561706041186251802434022769845002172877985611701945358625519110437615414075156340985758209221264035676073699223312897618640766170637335704637069258020984960687651484055528225150053052448516371420925477300925021326561422050292295843673675277400067209415445764348616083600341458179011665141576448046406541786503415671186343088882423188257807259716935669067846199407232023749621324880786461180021754956331203336714893540658751826322955076419081560815880666758481787394936844091173662738303152330060553147647864221494325740983080036450225901424573906481579977981527649149382830130878926924712975630554592776799877770472844131795750109487166154832879164587657223244293909625008296202661426259573903204266876706326682735450318708039465042722365024207843984755658505100482718211742537825200776626247285566398562715498928005678293912578107954225875667568135054356503424229652139706463376881217978220643608821892448776454676364296250510302592746623368726463882418560600960144706033915552840191948919005019589293585130325434539430330842801820188602745289742685729804094177286156321950834003676567966483101717450556539049407063759498718980626681245259199805281221092990053622856372281272891023123312428890075712941169459551973305658447454025329546492347544875431285930433076020779904669156790828422475873485552543909924594686529776354692257401702795154613375253998368683424504883308860298714113959817250611000330226245127538833815630701901945968593106860753135699679869053640409720317382795355222109114579510592633372542178700021932490351411774112376584454457650999935176253765902651007542218307390808433819409665875530861601331422276567507574152705792952186339556112873620046316996181400133089600997250364996685204344458757727726542689178747367701247022705577232400318282929699814527897455178428560389581550432994684429946889635764622787821010588921915593567034407675457569618501692152509213653321876623694444504820170091467790877540809354705297204304540229317072062097478997727258612645676483689999746546218034806170638386654644618272994708288895969797362837298125415895714503090979705099718630272761343793103100071670552415533710954224634944052120285427081463558070544938444666684237045192457265319703647013682105800429775591132002467269637858449481469919122332678495369144988837083084997130398238874788177061779178667380410244021599317114282209166995046061473622563374703933940630134830988240506943424827221285208692791526676271613095817046567436615877435162233533025829486129891378112629952306618201149761740887709072967208860680705671856845626523720440337396376844029714376939201356389029657242755736164767698824553565431266431904511098857649195442095111754945406616492166176721920442528013563224864080797369452507769561827240736134114941897157823880072807870494905490580205988376474654431581981521689609208046783259693852950103271242163077656071041336521632060284401819574282387520272446743761212493451979118870898132817193315565900098010807996700092701133699180280091082871552651831945215223252251460657703969042247868381716932179234915301216540237176247940168082583014246991924731365050166074222633068657859223469074090698011375781557232265502509908078870908576632355682242493383280178179027790936594718957396725742650653322425075546342171844328694760093345853308043261445978748214214649134475379606750348222043565020943391929889454588300614071574669008191080036485326387885042519410320538532281713351130645806858881844708026197422636791381966845930410212922775048618847943628112163295588756250121005700162084201620288054689602803483490709220383301216685655846185534604537666997019787243837455909470933699389081959774057702393240233503541440645613029700039354488839193348302964277247250286634518438762593889317031857885549090833619979258299903188876421321315786773699518409717604347479510098766135087928800660005843704813790303902705585642752237518090379419800070539104470794545345482333314412476496833803358893431774106648896535128519944734087254765330210864386248132516014740217850871958387002816177879253275950047132071872163781569495822428423246554631848226472422904256098312078431626448195437628043743585892645808452371915677581956215805079660415742934402150356078659167023064639922372588624321297104806213676569806165037470690410801422790457437144657494554505685728007152895610076825281631200883683399689240258830468632853831109449408322358141288151337711821775715548873697816621764436518796278822610070851424690144706675302195366464440692052166547215745055691238683742958165820541025631290324292667952778360315427091110152682848534812648780222032143269527711675156321299222535750186039810078593126345278422007026639611619568881416043986296098661523694541430581196585104803769921290755898856075624145525992895015180670555162725139691281570072690667713329592116076294342450619685456889849150768488813059020099545223218234310158040346258367222754176099421546340475101937769935452152195259894832342546212216761076386911990384528873404736312429158749939977330217568031662904910795789786519541397101377668050130619587139193323143270037942056017976699608931345673776461776378176745706600734302689336504241159734204965948489657680341766872845276763257195161829954120717992420196422132748830836248329119362371023237512306399924856868805043255689330661200102598274055550975433376333553574833650166622619153581125471838212678694257428444893916454547479637406931684528917219965329067930680273442995786517403946942646614741186375854416257651246500171656765492988339065720854415533798375815103946943426411953516985712303814119804156707993354943425755137658539954534334669154506081695350114009563996363388739348507033045555502801548877750685445258653109750940194082757826370805761082058042062561736418056136612821026921237484557299194718379662764456670328783512522903841807084430197230019360613913207488297641660484585412584875205044963737893931389831189576007601108571250654783777986933544214434282408573941329118712166598042470711568863005017898005755560717889936723024625405315881447428206190872185547198629217361104934654732940405214077909735956359814387582522143651351225720465357886634897001466601834317453099777431820530777447620151807206183927000063141985647753944764382775476472896985559325629196534801358006285983538461034944597988123924652250503450653057507306128521987202263608674089730461083935133854170441318817790737845249752147565610841723402585260895861085831303387550800059686765241359933164403259339344303979494639623049480716649684114402442805868162111182756714125676810091678494706925100872395962553553721560040633143231461957112578840997991054479793930036857104098088887993431410803807482102602500399198541682662043792902262413552462316574731046415616933185540897029676150264906577261680134213016983699625116773490658672003405193553425037614054010987198538158504856350121527039027846690405366741486598651454467141800941578153291941817963409113303498546462781886068864104026456806661307576764370257667170726406172212960636073198865673646397004325622686293603589146511151851384957116745105454469120336422551056767341951407844756890532788893469104399540234710409453721500847868397241375846886831103354449235065899927401190783804239784607113793685335555623013447315776597966235779334897298533274851401197810398331710530393610196246356148277000182236275547657281927631458269378591229883549277379033179095023883015993348276903916234244757136447046471298899280914349814537182986523653432461453997879232050249802277521867013302180013319344334552214301102442651763094039462918140580791946212488797291137429243202372566298436316135259992917247584741360214945558173173465199848312459570965520338745082501586417753611708250394179788948106747513885065881911338217001821506258646142731923157088788971021757521136410612928726505492505670322546298259552325075615975443585730469285231473981543040584832416452471095143431586980948422673329667767371625784473467300578910977653491654132679926757815707704460810975399657659234015686366803984981420486141174586145771462851249492540155362821535013269545679619873989426708852464790745202264251540582163049285764839369686001165114430835763339813749718319436058491584051394375740621553406001851009504644071646718864214814000100050514922187758645076458958978984036538847523488995630426224122526189064717055854318451173596848466463944640235777512730199774621377661026150727489652771749202339105318923996735601888052073207118649541941514185263079377798410285239334586994521928856626477405939962411111573665551214862503106003255467514881347569955216527137453099751230374021026547100923679979944067005518710465286278645542437944754206087124743371135780034728294725333145510947061539633016935318841255817802618772735047631272067283875556727604877471245372689408785241923693081829953580858799578003295555953036931389465344291001320986472785389417464098518628860958606884322374110529471243039135096674116443855917955089482405905662084629015506392800749089680147445917818379008389453461320444199681462309219158094430673617136094141472404320130673631903716326840088328761884841215305786318902911843620808283404945513145045346421893973792142547198412916550203382789069373637347188489035165494762778605078803512350364880430807075845443333685821957345489479276760315648007599685310969816834501542106007766725266363254938489543854465231803330066481885723688964400933024457463112391863232038479562974310167588818994318521378225512954061719590390822675712645107492999061021150242410982257777416716623726942966217216532219961632304687272468180811565796683856087545373520338420587056725000718573001454497330398104787398379226627763113947086997475104942964637314635039737337174684188375739470844347311154862231759587161118293637379485972195260229945057977241078027524734360383378983671305413316078542988026354142500741382714321276464266892216577642780952494512158675265596144908287382522073398156682132856257175803166373702618386500885411228809225862132404332092071622844735658134458709132431749811196669234058593473387531705697807464497892752099427170351910691348787577752951903621756947907142921779454650740012197881582396689756602067132143362141209449108074744950764989325630760614625433817203280788610173149211773317698429747725687604018040128559319161136918486146658563575330362288492084832557123079337860907236176375868014826124157844944777384922508419802514930715100577315817068900890042545617237285927518315115294209564135858677170921853374894324371794379137954047122450849282710989316339035539242598582500782870712446450904939188946297376553635989624625018037831550398943317805768230742645329485414208639420097820905269892730282612586529639321411937827191129391659302275107359443235045167197262203530051886830263767373183810041394409597271297673411829201315455895855673703470811904924056601281876334615952044235628133704823900633004690804328880603073466766820130699789122910081498835411003017087055078279388527301853963365173889497225263016857932238575083372311044570971556250574321920267509603060168314949097439632669419370787803735229239972936202153181160950223746779667961581806115232227359734301378174233313024558780515489920167975498730133599377429077960986773322206219679516359266063061649071391913880731467394090396461368597789077141398027526565211347107975882697727539282849470615435123611971743407436620568629172684955142217657390063029882799067562077309164904001313302581588334641382298799190322652911160993358596716695615647913205312302748697279938490964765186727958132092729712662669046664236922845055227109465721726392815418793398821541497070242882073514394723506660810517532810017469808271631308389440193384496133124052125355193137147586026640952458670116735049854602314978974210177199862476362733964462260691609429305643389552959396623693863706647211549595881820483842138509274905069019698770829114337288206696102114083861844855298927748308929231640026210696216118883713616530704717338498010721610992353917988469102042953926188278413705504340250564750052771699430811361795821877343358635894748839976046638816650986859339804697684399952844409408183016007476144674660844385235044456056894418985342437866499004449055735186085629862559298198643659122641340802799054974883758013935290424415794699196575950762065684637189658017027685270356553021595303268070873541079104850162312852279186164529636656032158480675893702428971945600213428377334924294447344538099020473300044536956401135589498391448879883336932572696255194034178965854287971138407022632035553340935363151264014827181495040485479905211337849331059199793731389279801935720654759779659023261188168362934990465343309211538656563409692192139773104025289044791031000310633500910313941946416520730862825186278310604808440002075152444052680411482862717717025540885381559600749936217989692156235763829889854857479168137352975452844722608094831758562397594130324896167076450636492622381805947326943740386449099351590780275018712086124769678504763832960471242451163630597357733117314351585730946209269905779090832277326909994615641631209118201428161851750112686849960972792945861947012134302986973070340645121325127340880088786083128182605837340085063171049748050978248732567576183490594569375373298171327085793032092549487014343250383191660964274528576278713138277586753850287739597224196419336085660046064838897520049690624223899903500984863626621580642075465355605604081443116265339547184619270840259494815432966920748110038112148198679223419012186008011923248057825747099000319019820012336242924409218118149051033135378093395745667578383399402816344254583167733480319649699870505931389705479817949913873860911514643623170152856748136422513675130492819824100784698240492859362312693586097075435369308694531872131489189886339865806776129317520778787666209296877544167109852930718575106135812577084804790084055812423046528885684174543651057549881196858746205712277632847691580790385159880351589343527286434414543069047083242176429258892343897204108907331559201126916150430250671562395450370583284899943968036192322977905064382862756053967676818106906413851138314929326083675586186828113327169551483191459017635318130563279125374783939840514145069125453466904473767741802227833745390737338875152827008230014398928001735523138321132955066495398198372924248181394580086736365284011314839747876335344027754273785926409374162795330742518036314806547484990170703787048852583074729477867984955334048933182580052999786584980513928811239488593783762310818860262043276125974343629961952838864069396008606041313300405689575072911622582187228659709268115612814986134453285151021958869331623011635181410025128323109142204606770399430442065898108022343813591620574628924404215127462753102265322784586027559072818094404631264433991604450367549458899362589933232493839875630575364391649543866106490477040098634164229283560271920978772882645162584512879997089187054332507013272733010919618636332875026838155338630721693567201488090673499022995068238584315454353421870773072678491350881337773115393371678845794920909142820241771108276060539022122037220244421531458164118121333637469494846990046952473386420784420470854544658254401830472551904941036490856771121204252507697092195735820408610740275426195994114788270311182257385828547036557926743875993219048530385099744547121509108539534387316925999444166327237090043572213905405440856489113922026483604095645189165804825117310958329728383801827318791203945941773656584975058889769890194689766132790288783572548427446915892506785804683940295048892584163424092673041446566070869128534977386644958103759357343355119607335000496306782718452897418379113713863403172344189479210148059331617958375610039076997902808741802608545107100107707508889653844014979589209210090750538494879280777626546577577652615565943871949712377024782547719265859147242213451153532887568484070084719931376492856035781630037035517400538287562276755918012726387028182910766994669160962245973685594795762461927834930154652921570940526772864658041167622924082186139817093569463589342645043262975966666022969327252416021357645141808510707739465717419555319834024875946720776347089044576569971468953635602337146040508155042198094457928252076671731647142361270615417343540218381555260407535596048872236358286342968009852302016904137862681325521432317658869550963750019152714957199954740705792177279194466861671566041011691908625645081678845992606717976067930595004272056656816597395902795745355773989544236886615215485060595163461325849437198719268764724331687819404357067939965742214658726508548983780483379953185651423083938836105153591587905460503911315198808324783931621277238620851370251094562856929146970832818955071180536812414329026000382287785993957649990333335946084202081571977731620763197692300720038196383067129206516385516588692511140546258279830468029687547798812877493321204241054012866536328605455797828343558959136890532493938518390125470376280979923162466327257270728855583571563880136879694312394270728186243531645332291733973490563472096350515048278441848197244681880526687182919764958767591950049102760578770757142018778963067987164111098173897099976772179878684006216023412211119886193180959460181794045367588477087406501448456626030676425372081821481526471034738706448976284367405568105318882662206104822358198755566107986242472192574709519484040650359974111421688159111050454519654552973116284199000206252603669114301723441851861982617887254165606888123219396595856534359776337015828259199748224987323300944746339154164149972460193524628092735640167571479715835187550450623298305162310282766285040185158588318925156275451179683692217065807799315933588696655014235041532211242746194064629121655259403634758032642048510533608224264528004808173378139283553476892355256646453791615533998336925161786340096475636190599323015531619344454092665385334276678121392337872282449077500037694417657980678906240258919913782234990799866756381406398299577891391370256932560611341161128908048175101794941012157364487277171989509688183384609336874501319418468337245574034978656007239180036870595153556054810520254173276963912437783488970922957474791487789032801159047030335083562701589482763989884698621230586757815853130529418877640863811587278764178221172950724700092250978855373196203509571042051276374250887106726176034238443561208634613423006613327740684041162035506849140812154839998302519722273957972964279763662402654527854150848144562539805145411973659164159073430794684299840937303210725633976055423943837931761093065628926522174469742536713912219781674337554090975239800191413391569903658158156679560670711151307207673589304072938096068284315145803252293600903803500328769273864280509870970350601643520457843272222200207233294469811867541968181412532255685021903180844941850901154380949451652061045449635626741289274129395691706351314877451670608021060620790336467955600868939741858910980023679465935022815889974766865877245282786288479058055532119606421949128846694509404057269229962067089864524984824330156089076372081067420819302745750468476004312429271252193367843999837448870022049175494721516815899543331344549556095578620201891746179313777623333980753884063247865707074847171460545834230565342822630014832979924517931097622814077088561769661113816016778060468176923100076287569270858754791609301612729347104021106981450521551722995820630043254852098150205377666159223227553048248053084512289905827140905209033939337799027918400125116636649043076756758540380302813587252156553238803658697727919368183308064388268634403176978815633964860309125099539857544336899296783823736235289174839372062982660942326950579486870817013312578573805590547496183164876107355212502052007856465771268878614135385691901786333901037914875299827497587756499790893595073602585335084850400379469728335696955498007492433470317299123793388838639378622979011831753122451344118156919116127301486798034268789694296108721551690370184511489349878589361427687615734195234278165914941194852624197507121548364965450669054316825686398443389885430497402833526185714659998976419559299583945563035501490287938984814863258814128778828857650549020417833615037805688474249293296247020481984675144081415335754388190139328895309718959593069507416530462251892873669628935885627370327542731919385248141639102939971736900101040675489543563757754928628649843810359313670056821324186050035326452384752767450682001707800343088327893079714873173254035170479211090397379856164599092619657588788827655530157516416787743401380162938482408269811589354605734750043982132959940099034595168544558947261556441551464813420275730535261416061217353745187115689743279410017248074358867688257231558409501235133579465134060783939779730963577835771395891879162040014010467250738968457535452766868279216031114901846699144321007834866469571971056716630173274057433180038236342914687705022438282690703527261462921791204447275535505968685831123293313758485039699285054537759178409875624238197116622186851878618606279792502314986105880977739600337206557789188808387474158129152882538306225105034872298110126314677408131651255633863684797338896546450525741315601970449182062626371434909140601808843762068221868001402316477557442818014947023834084216964620464645457941654048446978574936983348993788843358292890648142740184973341136571391680755560744752150585798345585743818365449815130298768503151736118044599580104123099959275448169964414372482804114109137682598584926354692883394715729597746594997632092380610191674523397947447110410759811830007469899684339040192267149333343199179038471486405732557481816135143057805044694267512261442056670075865369729255007333478783351368945481464389999623061839265301295744890339228280587660687127247811200234266085134801960672496288309432858557060450647614854572413366651506213368423194670038370617372423155481324743201214142113841194509058291765085217622943328447807803632708216837600894227061851632995176907681441431853660746909209816417275420573769025109890810702443171714871247159679659631711966374555942067782749715778859056784139723030718083964532327332901425397791862661068412654498798831370159236503709541717267037911058063097657928973144971774466571488888553345143468955032579136374253018342967214010523870793431856157982279000401453731810253349054853081081031287561743878202118594802001115333199264641472783642023323544078487313878925104568871114468976715457834737357804692803250157829375069542378059528708133159931869476320658464327207011426319506543176132089421142953096737798442850474773625839035444018897631917964432704298202746248027890082789232503033853038662575255354632566816119505809675932558094558804496007068659616219575385830611160761578343215936984522016177293360528353674278866319520138967304456291669087873505567680477207742372538546224584130808946677342689833787410879383473278935670948832201042039967205632436003098981102207410307138702945545954842963183934975799569763328824309505814208605275131108440322752712204725596114637848792735901282503985535156520304174457958076227525189694356487905340036933566229847717242991781215329913370092986668382682750982424416753753041717556814089078320772357622937109864545954962795762907770063874760115611007287764054731838116682794365475294970486969042964523802239886416814852448453749102492726605346927312667502877798937219980414017758015765943722526247236288789464366843448710962587311039807854281975219080087345187280171956485573094903011756364082100305043690900301702887523932242283787146236277447736488881106424702417130868513386925813934677047399113200061399092574977334049889890111117356255513910654158146026147269994620271573648063978680294920810372300557821628025883903495487515745891573746548126417857305157631111379643207010762448288794568780817872102913080234053933499368359037257458857871387781030066891705520275161858997666769866445625178205812997896663249226870433950881462662441107421344931075471550696853007218950185689796333488448134534255051170738618341799644467811336942069033904749818872318000144838135149430804795672814714838222135640683674053511802283767699802477435893208560740979356015006353007587907763738825761472973508908767458234607490077114401862762639384117578328435157507784951214143665422255109614474143648760284641183419029991339854128095023587606947840840973969381181684042803407292276274661699718986380661911730058685152212183982610787989052158927432753972370542620318214529321075341638866910173214146509541748273346223915033355760420374459377611344736339675252294322878716577712186829797312541074351132790562781363342074328436962075354401779815159466899642239446072522690581107043722796929874582834004162372087360539232229688861362778016315042005039251229006243421322063667878471397419410134487510726083870717847698540654192854926535922993688348202268788963366019601801270014835162030837273875736926043044538154368441278556130722336741205011557301528384097070313988109601766497649588988795726125936807983632407355254023606318812402101474714540076579949570352502822979440895903561455402547798970277212302902258404954108978776803535765065291132527047935703393746223820359573735539223894133507130512558505888431464754168418232294559300899633879244761502436655001031121095372307774924267833444557760979406647424817334118462828694791632397049530363885621914784153326656360224350638201493862287529285822954380354284423809037790719391587026052480932212216095076906165867573721715946268878475076783270927290472066693570328925604021024853890097766024166969429822034419809919785398804590443436730181162054922562453802957390974982108414807164309699994724711110430371762579910880779241623845988016193440442420508422595889478270999244388531682435784273211049148073502465624867336864186290105012373610273659483160588118238739076438456722770197146067890764772416262935112121946543332409876128744038559871966621964205193805680084849726923586682102711092660669153035738196754975247356613789695008672491167664189824585854823423391540657313821713272858240583912167132973256437754030865913215522245432858491277780766258689132366910295035263931008634592516752443472076603996097960320572157402749057717016626412544602817557732748419120892434688148330196860144986908088321780695539548235249747347255187266326989844667192066801636245071614313397763483790471545260767939460700477825194232396813889672529699747420949463693384662530893852736579563509979207664927016392675332289540537458125518319959217751079934087723545106938934956631838731230902267777471264750323406389502503720508245471847970220959819160442593327865059747870866847863817066499175781665442439114890171988627545113289824077089478496684457111722040023530239276026684130841913227330684717735348917420415617939773831213087621422165117678372349722854252914156473085753590735608993318610035773071647997070540349781643656223531795495193258292260425890413866936585105520359686738218359646340908519072107166749661497461095095947855075882556523663309519118702598005693949501968209260171042392192762157007204034061088283512732018223934655068564672591843126327240543008515371848108382694337151115426378816000811749019542258460012640521122214398390244569416417782735948179508448462929970511399673167975935779526819706868007064371079662140102884765442252959486594450774794073559094229524463022577544014421877787209251707010367011513066143921642578758559595297458754379771936194069915864494139005543510604323730621118668071082547998969392765738959815713812176875762701988562368359821213421018685866064811157983975096449650419005611103218007394904658513565566037247579489119610075827183630343068826764786747744327045419444851733310798462246789483034079464538960949796911689538831349385848635720609301469313106340279753627290260291437479790424552438891620657786820668637670125379268321496164856922786444566104021963002729105807176821277997390496897179180670497070197987626675355072981059008805825613386053689286585790690581174645983599957886435004174222330794392751647435189680097520863833373649714557165034144896872266693058930385102705129508296522191597480429939200722783602255474633372315319230212580841077515088415656288111143492577784436944886352071892016355613381735339817452750839040786348677750294276921297380284363097855630660188881000739767204613309862938947735835909886617078408394687582265748348337008715555385854502728303148081782553118746232682865796010929097253564449162321517087699781691427784228134477528337107086146398077490214651313247057755470000907646667132273598304070617728718483150864181541471889841623495343758745253318455633528681020555820704220661417071433291493459031012545601853550694923063418312524778349424770840242648090821183561496348816900934109008181209665804448230921924444354263394250840295128211313858293719148574668788200121352738567848853611187056886808034307154848724096104900589279072403229703576085605196155073971221553424881489949569274781089101367719297436330387314783891712959620650493037166897375655836131094160109502228808535101695308517023044905127018971582651192943756150651163875662821187206401886492557674062528810039760410698338594352858011802906982933092936885221407309499790398582891185763396447277127197126075264473950380034762575394007714241798184122136602950499990661196275183506829590786835825891001639157507290149227811394883084258163824643668681372502090409824731023598864723960121420460352826939388175647944056198144280562155184001566250656276180509665871490990047672748375984045901499648638732409774611110614115365329192076217295656877849360997429349646278997463151945971071714659624241141998313407095192374730602037241341273513213833160534504708432667894146577951267321871352105472161576133929056888976102413060376534147540545134021741083389426079584348393816329494692931973680639173903394026976335639826294258265666996408095639202185804330167723423063873447467786367791817590932239626970617485112892984643736959822519581330842131320794167763755907966090085298431410927693079679465065173693446588680340757614660277784144498147905940026797254381159673012937628222225804630068184041443736408221553134507504322837972256996729984308758519951235922258848421419849725576562795298513308140292287259706463633152004334149268486101082738091317617050465482231942150323233464126831978416640735940083416753276869967709473557052160402177495171077758606052757964014222071589797562432038213010421944151310289036279583315716768853368499528422050018459921597483719669612464670671516519679418799766628864331309551202179011881857529316740980936157474386574650302343028126219825662100767123264408800622244237794905071894110561452514738261931431939129531698733084468394498631835747701960744043580319869622806380160257331736184126113076367905012148971054763285807214840541142366154260736155745476851915030367082419493108773311907108711748557809758069946378479180051136082762647554448185032041056260978145310165510439932237442068166971512629281224127451195392208805967239257370792537656286407298885508523361331685350078729448337898741087221489925032904859783472247355188226229723013509578826151896405228950923235695543326041120871393199281515174738171775988965095415344505112585402570168064574126760121632981521889806603161683250362436725988166047717024282617643996579067873588260072491653428717465471269518444442781957299171827365581543397832010216935942034871430584923607819940544039342820963922414885667661615128062345342744096574041807979481398522167342851509913094882721950713039774969010001411809172268240543521017928929171251268485319374726828620423430566783632163101674266029171425571240503729149207624337244496044269220593507427280723448997692119031190441194913095430239999200114223367587988388821844744765876208645494192020803098572048526157021671081293384794551755618334036203302532970340895971532465879499730083270315394992155492070929903901339460900490615255553555556846089926026076137662128484039624332324027634248015237185689552995238731495829621254972531587787300184324816889904492655804683324342875256834825364530120689911456633158841324860314336494486532195511305538915046470129668221441092133786677172820832799521765865188456124832114198478331408095603459161554766286123056107916477813729884351989591997618309057838101099525623683773534375380064985194147610078356719157786893281890315076184920591506385964383463594002710212271422160756185532882393574596823965281357076630819059306865548845463609407060152067907693148932479849780597503719510279694587734729607756407888739766735184858320290975616394277153827435921764884981553183600325718452054131519918063382643786367113419922084075882220595963500321662554852250749072021618978000176332817143118125328580387298305039211035357269701650699418359952874988423149020285355307232127405904746060073002647177800012863353738435542842006824504606992228601445909283494176527088677800660815315234683090753462329010086168799312770180166412645646754370259181469577593244418973649086112120276124983207748646001910621834962574062392167032733824997171667824221560887580854146636453510203726982060729804229992538989019382980286368249772671934723734763961099725650527885978350623190496506478033095874372108170580630380938732132620157468286245308337420203417689695431250884324168800930372140119653779768290616506509637841963928206272002064625375349034220622442170470777149787211125548600855172110188902871592714379230226833144163953240300582020943976559964371667081112170472466863429415853029728830057195331018461303998291263157263972416628564605904834961376092490641303160621121505001139749089043284690653865026536649624522537855214380667260923697650012266942474912089716808167923924251945193595703784365281974277702897407856337715151779977305075365005881525296712889877517125661171750903433104393371033745211438614704057378817145359634165309260631147984765580016989306936963927132830207856967566596190886288992275206081677433083603692310110438068666834678977347717948060003810777450817615350121826732733124102848820692137150342916289692112496289249462278212513132102413763481416362680412673097217469835284425051310462629939750507491019451067299245408401377428277389235431251285735676814667484223246799825944427085677033882204629299281775127926494107585716279299127395817600359760418099727647559389870641676642694503576230996925812986044619988439886410419002684872586058946899778329360370539927175880775354232164000148292194812390467903436643044168088297688828965755198863268684582302170062859335944821148916375516823820116059544037242033661122805197209814879282006200677790070590211202680619819540507286284333465585854816808752813541279702048507182674254030311676703674989849667825341754886954525993392276132924559634113818270860299417031324879743254535363459578510223455833707133586123468325277299534127408211560282539471098718672084835766913941204141341223180399882358050354474989124246555594583728624769106605617032798257706089951328238909460274544369149748633865699589536654018545459433207593063021075631142996542485806565971374471045150350904253744490997125673878384429520046320760769582040427266608650755397364340398602654470041907073612348873813773039576581782499750095973264531935883542620870855954442768122316805259422409484089523700623865545071913163002411464844917203858355556872283534671056557278563498953530868111689885540368124464269622708620898777221258170517943805186048127905628854661612417807425030943643205081557619961642484087172446777386431203209473612021839183751599142273593530902115398217692742656983242696686907437369028392568156570839408109953799602541798513261245295116011491451615885646963098518120831080126287866321017427288101185383395023700442544386015925043672911414894849193532233826330708999141530024934397521904537617407312575577071400253343707568318040397855662713839164544291132047076852429600983800265785808002719495737608607097023692182983164104687448209918710180498687903414882636467368230258398266967308787940686422246372211037723454232936005648973601832935708144578771471045833193387570151965413290338542126446874532547643285514658403615360948391555219648209675516887414508347402034998819886348936778129063704007406398276911714492215111591992633372100892973413634155215404678005226306503944208624245786253054687218978263784646070549274570038760568484762237834899716274388165211060547760544034016733162088510626771457402905306980397596357320097132983174614303332182728550569383572980351881124433705561518546803192127315428961232888040894485794907738280187211599393472820390891665493501332482322769052192181348898149372621863030046365583617596311249511698002016642290662421162397248408209411185415572714820150984735666617726367924196679795783167733395177704596916674543122548212641168939388089647002414669580755961855793602677387629185044029616892371732909647409318913325396076203377577531282213015358887594114552219063282404815350139998309864195192420761142688702691532518038648880957072330111380534786699453232228935179290338482861420375799922725243162205054340492439009991163788105326931365305658658557673052962404007233874340105951728034320561971795173607627222394208630786883063580841503325565085859928507913361355516849405914599491252953380426077661602203653692827012450592100866036257512982165866011161481468071707458757063540251478516763661741497372078423459696458124581665715452669502847807552365823980561117373333628408153490972371337548286629982732648997085213456111030692691874139938637268504225429499759846350243117843794227760709675560205220542236616138814985853400430053007331902615407905590931984089390134334596147847306499598007936050493842566241981530590490194890849123380004103266316455474854838741189190600036678314861356830615833753714818485217603748422484068343725107946478238612464713210054426937721379192954201682013019461165838065075270791860161563419625118925522059138214330487828780302205757053966898321470152931061391866672069758681738744047143373560227424399258331216620334772128141883223249083204876810398600414693025349357678165846885646797157459094029887693278967531100826571470972851520948834598708781348595583869921926800269139007142991559935828920501537550451266466521415008991051115860905032679331473083873979190787778381658581729138515813722800588316581349522535387878251542690432080124177420059747673827087020239351869512618683350633442145178103280231493262697661005219736546975098248565724591692114197742440040974721204754923135544329674779766149370755147561016558526093960684511586101957069715577276573631082241951056852734292010677930139363459664240523052254221924038974320287711764160485818900414301843871543729246285876667618149224511775148072791278845616421444805983598395664792576037689834214812161901568037295999767641172553870071127021850340316081198454831938050853948073015613833688072166061057441249640112596865762989586791435660624636985572158357216986039596658022721288593339160758452312978880052280130573489464309541748526632860973920269206637691766618272569566968094915679338414076904250107703602093651585436943543969080860120330705854308993347744652638751785765341881770015780155329294463949484562640741210225867896243638686033208382403436013793427891759453884612862216917297640429504540828390577808499229083136186541634563521311160193091414023787840297559680706815125367879147922041707765845437040677364389071386466133718361075133879207115344990613085812929533910941762297696667066648840704096180256586345011828482267347757465490149784286468207534368043780339444322751397228071418313792736770113498537350158309230610884561583822785411437277191262341798956248417069112849669795020200096620572279180375331200813833833595542860788816359480561854147496051337315297833771738914338077783816648268041329502393726634313795369286081223174413895559090360806825424646064405794349248285265957400865562913582016941879396992632629286477735937631729768458611984812450123727580762648583355554935280303675424490755504949494998416546814356806972433837886375217962653099770468612995683321843639895294172218070270838260355618607127645866774701784601647109079892556132709170258719983704602681846550731749774656544914485654749495478553420995540942481046411350807762005104669764902107759895975751052562038004405716491380878453559815129920470042792830918864219191703605653767037220322208620540611072537804607439462782555609670777931722193936983152417978835913717890009303091317558256140731002892992833233474230065779743854133323616040388801818485459844268691963668607588679418064948465325521988758407274216122526473916468666541391119540153315062453000876521760972836942284890036437424187354352545239468947950694347865691026270804850645440509933629299391029009584558003153057429448378481482341806717022328170114942890049283363044747089897908403793797715151565040748738429369639918690116362977052925778605679561430452189386181374842713280237380425644572290428813184413437165218772220449581472791233586203824601824879838976245479727358730291484871855652377814796532305425564051246712949621100853084626283689703484678641851836245608326795676014482356432626250821654333900502051286939291916908164508998959254382985815006707613174963868784113402093503283945362758135013534885095345773178614990814315668156755290878296058557539970447362038658635554260016869767812548741507371937453465041028809053838099727820666912427620410416809608681373430032374147198239810881649877211224462976696419401489553531353485931129888520471619574938163412005227116069116277135638545996107620442149060688402976820310030803957162068137077275857999002082477194390213911738224024924233571390739760152236168561063487745874948924040273889746842291975562057849243260659624209528625181487161195422587559970932795313562378488030299044042045325857213441399103222137632936568154876221350370693917780974630446924556682719889280058056519653246601370551540578573488130095410181218274438485343781694603244353485312756605249518678048463999248789055725249101969773620010944812728290815835932910272274278750932852944537130322449777195970964250444897600743987864674171278693738128998062351148615022259129593315104011356561322835151163023354975477502268391674190306619044442089730056986053463494165079513722705800509104551801228835897260440931081002557748970754333150195298397507852527414590923339359878718468144406158607600034979856727574389729434305165269656642315062500482336867383909865420651268429468701488126426403056022249181037808047869502252668261595404517398193889840075332169318959310149959248123220863089910806737741747761584807893291182262836611886653811202981211439756940612890456737957256487521596191262441597160866681329072122841077312461288264932065073395580687419765883610104410928357905974726692171543663005007833624221694353671736192593004897150673742288546729338687998377192150535753617280123981770518227542696271532351373771859900733597867484648984011489674575659909795433998796298346304761327228107750140929549383014590723455275941065158112151562911084339966451567173984200356648747170166812978796095515550214099717823505703672382833389410919890583934514882110493732773775754812116567055277216690868145721102424180896414245905982806379590843251341992317907495676314363348663807997138828678246888315649506886676399282050974662493067018797465095014329326892042448249019856366878201143822136370295107182829406237351733947684704224943225166899535708103862242665169591118798751222132519743919436485596476351484798949814115169707367915540798168953945456063943679371935904821616011556253548916953046537019181882948664028810405809553265174363557424826717768348204620248674930783165747513348279641766624128296503177938263181055231904317146807115808734053169782872314039619421902786181507476664995408479312502770399549387953353803640681831119258203131927362642017185269480405226540743479744045754381239270803568542880765169735264388315306753517895872398371998427269899575826515103342189379221948837885377029649983191139051256040829366169023911331445450576270262299805708100334589024171709735055935516336469817719237308371986470021665211293075998738566764302405672193312619118991858424965106773983215587599498673426912533210609031599248188045497099353784845748907822740555095805841219694278169851126272882372956078048466373268470198386623819527421278815232089199037799181034777904795319527546540319227431809500079611563228972003936779969820828889936368166476770348334226319197191738645282969004838360092911721904869398694695078815915106389479855895654113621512004624263200196775240752014265576949475795705383907982294611269963800379950598889687806278305391672619605655544502293921761390458629680256700161480883969198143015983009670786835913200119934335933334201270863354785707700134728162582719795131609170840963436253401772652265436443438434878503854022397514167701145099576437712225454116522302527026974617399611166578130361613326024486126087293951775811073315017456078687407802070561768000601347054812563343541597764674634879574966222557911071848306779257204601323589370588673504171106837397539898826974741101519630323063716706698285660870922996928325606387946765331418411600203136696335129706230471222493523837407140752732366304536775137411261986951225561101655233846698814002608821377497653287572142024425785668795445201639387601803255734390160614245308347017298623296626742714238869603414234006426089753934357234105446970370012621697990336159660105802840841114273963006621697708298572567788115512813485644315144002269947868410601959414956461961198192878720780986938323070167387196484266245333036879276383022731470907631275578265192721124307555546219437994711320602825255001666297231920301544515897313923089609422515556711262851693986294265107469025696723008267556286613133970972442024425242008726498701008196331543086511722604244114225134767822221882955225659160683196563355577666962484959965023333990225873630236475870777279603902934512876909547024101839790190494946134724788481992185065074113608222604173021221439946553065436258428946249461615609264661104730673577292149300971897353574947015462292417347444534269616111822369688839564308861298260972154391360243200641537767593680896336572597918982136902661920019653200469251059363964221313325380611668683889716112535676009647718984743121003714977444145019881779243556667939336170595106085152177423199893736444403014722248556208518508881426967278741965711341293153931183880518482578150294424749133352630791639897703832275759663098362341504584264647875440317716643887048597923388175719850521286575379238920368185657632695824581019942835871789355019388860319421415799286355390802830726858700852322240886316406689752437208383615840928669219887853096826664026610603460481470255555248814317988048395343580516172796577009707502441986345406013292940741611472726915559099601030225299361519881573028037908101133663690851730887190093894604717183453538612701520520909369841550905259120491553606606543438583574109012151216677238993336195552963874180211979703692035645100496784292324521402762965530050190778108440893043210516070185195263084938927321653605312321940577885279171903069430062304409457145772689779186039136377817863587054223190119722736363055832180986408728849712085622037610839827478241135107316888182943927819656581604215946634543737130821897546616137632395840124937010109953624237001330815937321123143048400834644778860363196208513927768852216694571517836467329711498373595264712864558204037908158995255772244531996726220011827616241729044497596278901902185857581763768118867585475575894380038214681502399148695253732171285016575725964979749364648956084585242815411809873700274170788147761953595776664045072480458362039234693161838232749087132969162186555872055889053061775071998207952449744232148445623120229150845090965498612567129442574489463063069609470726439383530088925332748708656629373201665663566109374145000673610941108675931642679094595663924029230008501766923922482948241743767767527603396699937232066130507283936706136706690413629243394012415095709379049091353388617129361970540488383283328757529331377565519658597916258024887721858605166122981673299102580352448208725437725993222232490526760691563017880379602925174227893962119511299337308590017539229525837898927851681431542395228270864543435221399532687826448276363717151674713767026718453271917289095162644010713484229657758477386802166568649988401367142080728408724481245244184221046244226167939477592126535068262887219925729666426749492908724003735638200177820594434734506017381845675793485534988351712413151346803383731285773519691832158382063401784802370732601785000949146486654045373456616895306490314953618123661006678368808548589085346269525736394130020875723632166892855428068581583670243606823512897330246194252629744015697958238071095604130302376788357052976773883444967998135814649444741329607052448238041632096931316548419214468282086259459153384948880702258076385010066971210614592563798596235736832420551623072339618568191674358501656828126359310167087154689549605287190835877984792418876820891329149123700409878129907690779811835848119269147059950719787768951536358374299995990971940627512766301239658658148145339392153320950183049914729544077017222664660678983874357301719520353510086154043431876617789741876138246951466700898559238102280903728414560230229175008818147137510452818831864871381273187801662608980774960348587614023714981241040118504649598269761043431556760872622097046863739944387443120107370689383060343237666411824835572641579975900333100851033417075239396384985928349324437879686109049788277779604636080868736447451330257924994358956043826461107340365167657182987682064701822556593109864572870639835306498654313624610078356410304934574340771144505613448190120514071505582797157618963873996048445596155425130801708195484089824384099541055045216025673172054492892846042656178880347755951300690974689845463241385150646786856844302397933268306811985564259843274513207624464146235892217201629081401174620035769248579209462361512739191204870705553583429766817090009139617787243691044911603312413437498167991360564956127558709152892708508634780286908654424449629890750514093021612477910354326216281343743055226473164200632363992137502817449086303833997124523846507789523532263556845668021406166835797141368713308964876917523217796500647428859656133835598819588239294046922887591984434325284108038532124313173261714147775186999743056498805121293717484993692576972521302825044325164663923181779032273455960402019475868286354367584830337487698546133951597023782265309047706660373669728421800036667561242909036303376219309302069715949230134774102724664604910992486400514992402685052423924013261902053453704062578820113514940031347693063460728500611973467571606475772118190941013210556313583120798909828923025346402033491714884684667559962406146340799960459827393059046296811556525522667540280685690310901166719272438283211380849871972088760687820759181219394382480688555523206381299421361799048016962414735474593546772851856667353595078615075439007393579135860220738690207851862691948852349471554324445230326586770666801748904446881305437095673739429594494838427667101811388662504554993387230096707989028985145501991339162161842630643432957517616740756072257420584838023784446120106704029771820203105484929531652323735713995925236884277131396539802473773265889567984798837481371619096322901857556026819667794856866598788874620223814770540036722371150047400433814291356350922259464578219362644074209845947163100557489425780298628603107913224280029971540669431302612304736264267265319476320550812052536152689405946984626672663979223848107048543231694352528915938222132837791015284610863765259071284578347459977439526892327224453911846591598331294873015748283685760329478302521909210794513981567599447377620811743812374672828678513350113195379651899256548305257592604914551517706622286116732591852254709861631304522244928177352587058934008138691815307124960228923817327141900091622444931953755137869683773882045299782978253777553422700188493922890188914391047480660679428810100229120559753592559616569450461483495450435885040002669504651809149784837416921921298159624704618697171922515618837743605075547416224316677149922706067674129860582024681405308578285942464351400602170221861729648143389824965935143265452524599303632624111614238565100453812843117489890951374230751797178353775413302408646160245314032878246788029360225832856488891178003771583520542035211950749867777045203556510823455541516503270985405851413505840404566216534632182768810160755795251973537990209476267284359838354541804604724662298026451335260725816376849216435338083216743815307044629650204838646968632914555259722788718292056653516818263799762041812742947613964645472851838032224598793564851326963149232046369719698955441573269574507711448320280175619776193051501373527350478495967944653969019257509344382132728522087374385211961895334657830682980728156777874964597953746704993065881558336832281087451031531838327482326919138346082195348522455103346937951786485694238080226737171875560648287856270078101785502680146200039714442549450539180458472193207189633887833987805841799908329048911290073372053647817717640544345565663900216570362033897852396953410810831599526729119995234929270351345594556239150140664056084010255715270994919023080496194506631112630729110112521571191652215326699662684696949106316471692135804861029599194004735383443766247723836886705116590128572859574257640329000612271294042337395720494537537698826946450684414996036599243913896590136204646035739489314705194743857477941554128167008489908473758406190255768684395234134071457208917942429388817341864272417237029724076004886520607124375199892874271972360013183896233742632819347535771872281570104578742033977621208395614772892240125329716589600440001589778993015557429178049183194342219019411976728736540459868293524536478565237000764810707627989432089846469170247728708461160103312206843850975747628475691602034264958244332817679427086156469995381215748920797739437053609698236368832735704478422128498468281928701085666113956268018864782874755854410021426043955741119407972568909912155760055639750791498