PREME/G/MU303011
0696203171634881286976865762397155926501276223865147324031806940223562603277770183100143514998424295058932761502727737040720840290505733538037057717229860504364401584289026846950635724685179463209652431944025779800543419729597513036816683640169644885950829508898325237806709330991827684915916870247667938593640396535482473124362472760468314536904722338139209197933008993517680885648573475204498891432147155216547320680784442030577162824171701338660823094607179840479095302875561803418473390599383835637789534575401121238886034892678483415695937640138907078661748750483530000035035424983312034535634323823748107579491433291824735733879150062822276325865602307390172196027094850262814768089052965400544563516260995704858245795137877197506923102291338455576022302381031450159904425348785740459238662713970815819665607196624960421790133987522370654252411480126408632640722072577482063615648713177886464753380895569147553902218428714986070061133823840784184205140123119516135746167555305031565921514358504257064178608343201859873581179711644929257083588580820013187485524370473984123177340794926061923911646747933731111053323171754232842690912772298890830046869267234332854581064981098854332027961175491655387865238276611292364809695469968645345122815084401418469067482077677238830155612504158944002292397107149374728732109820891945617166743657871863997906464329229101766312959052023462929412392253875117374713639002433441991823787295440881625176863600483559972663412041715497342852124130395164221550651559909827252614093745952188876374405594066732556748375937826012995154263479128957248970066048674012591363834633252961538647523152189837198592886356005122801544768484691788555666771240823132591123704472679124912223160245895286113008596083317462439575837612660770754283661175957582108125873682927991178634511878175604660169565333441963242365884011026738982576897569695962032309628386806699607096308781624202047007644252464119651432112717190416435024245339863459653186809042859287200943476509720131022485779860410637750238214296474698022336426847154388494636456745886281698389511732236786672386589485602098007104197538211526921297103514310511706720624944335799390654979465821688861131280108477529980158819099183385394973967217871391610889822987168768743680237558152777080351594945948227049769083203968128397823002058346698397301682466912846122436837828944142632237946100624927583862441613679145225657680657651348594887608454189708976670801669844655384339200951683232804992503720615347255580793682105516310562014660857493603971165352649182995591903027772466578971023194606323770715515592633129177021634889670175480723539874470946178548335714971823110190136155939906393537351675186421022566256242157144031417985851096254346596431644724723705534713007992351178907647293316739857586954852930100795966488102175128843957762993068783360087278707777828113150082547885827203379694942953693311998537008883757882753573634203817246032886379792349268883146827088352319035764453266233474483061005837111327308504678618815702999521863789122251945386947876309895444343096699911669160146220010244324428308213348333845492705666636226544935498159253683385615409682681446248204514882722022345181194504098272827367164943191448939797650110771255347829466525775349130158288580122527757173058102355025175233678111292018263021962182436751844920957762209081668629677911690909218750684739211916246622261211450087190452958470568926847210407686113052454028594914655544891530649160736183273155867422747035928202140024575449916970029863834316905625667043649591828822343844812517339518099591110846614705515136867812354077364720051741949615517031700142887948355510347561496738725209186962532676718662369725026819359432407069955075971639147901524821905322847396253298294628594815773440702388328083865235713736135822712394861294757622007104994183422679366032482535244431295353114851844686383902669315675290174289570750227089537647325017137817900971093268013729712890977791190798275289130759302670084942363502143741006318061455760583172754924629591105473818992600049937161742389037482874559025968712576005431312420645215529298157335847996323708341030599875360104875220572696654944413816009429537808486641454919096527976760903527516645426228864120627070132716683550887694570096725392268474513631426182353252480088382387993896031171975942941398773187960678121946618361472615637043067134667227683752939250770786623522572497111349531329101692697268048286615947930924311455847463570988461132497085510200700246058674982499090139895637811006027542718813972816453864157702939179064655311224504707234551758615943083585261737260698685217583082862408560330503100051613098810712035925317934061814118454502444862086542194523953127205563667062327227195992422546450716204584251373885680332749565794793435050791194548025540691330632095235976588063139362935305312048761037711457254596802459004981650186276431166590326221798137970102226989373438956420287248703255091847844226507106910388951674509520141701708547401892732179276133218484971535551017237066415117375284221869627887298632868533524156909219631632417638064582238540995859055746876990602282083129371934432157730430065791545968378349052962549774505319229838474854549221871190280329997920049459168444327582491094377935278738676531243014923912099934105190145882811070714322139712355766236930992332926895135343646870369903960146158029353985182193799190599211795284733317843929544714988171524235350139124766441846795130646760348103647661458752075909587130803949757249377419931048113168444741137873557518707530375626219556069235321728512352874246505303740514996127970912650178369382831769647195018370335063354130429190140720189721240126148092834777934179986091487835985790448277915227239081296648444008296944201987152844042337774377767375278299328149531424839137153872147573456728488344439308976310683898534688397071318654859600550756867700770399338775301140017026965608435829194189976410351100650526158754736715325238019686727786117374270793175301026729588888757650547224323567094469951846511614211351676377750763332737583166477197159461383680326414927722916225671780953405153958482343311026370800049511221013324014586377835712564492235202835558208510580042048781650633652293294132691346262429889951664999892673822199692004010418572858574902992978358255460270500936346605316773133344722749651244501391511252601342856751854775892587770677085625879358824791522675131282121617294757852278758511767608518052947031781405434841298894734463707542959816051445877035418532921811070008038304769150314371058699654267693639007668640012142058209555547016139630469761050874476114159986800145515758279121335976495808292104332256771183187925771428200872932872412973152089550004674947877401992346522255564960638448088736908691465252585121531163835106433859008341187095869130182832957821376074483837504489213699557039685721623131999843206411429958671766025891258591827747449997644217943330275511285213733148047579863573604629102874763209247877789695654367896293148147296410500704105820713144926188355024643529133566439046673626553025076687724405082196864827897112952042984063899281292307035136045362759760150494832342755069697834746814474084046200727838751035772431212474152150696772072518418832111202116289209542970734983929114878842310154743035492871025702962884872051869067407654736690621250327781276561428761798403668320346317796334082635676355329634073543191913738441917459586745901956775091524901202982137596367815826953572354291634060469496680938609438278887542779455794937705601191252261837913378880259928524223827529017093320604531605128907070489870389905995061174427835566715489886797666789561064047255236350610521098252983317903079222536990117955900456734782473054010741622487319993067580544084036772600926315111839144483651841425841079467303449600679389149089473173302289437647964994498151462157904575747202855053047031806864465311998077793244283721096088036578998862839069630721647978653676232254308996503296031883046987658968394498399308361097614147677446372075441605236954763598403519276912838176870233518427177176573228251726015600320649475145875066547526532738570483308671316407469572363159930274047099500112426983524608951218064005682750024408442173855785935062138926765167084730277638141715195843108160761505123527112800733673224640865477205692333508173158264246928046546797420673489931008809642991275678489241535834279581281759591483035411934703070474216355064257680317139024130817069395785309903087367837472115819757221620644405563976293053589581127847218713427944404312327051091874092068153530437732770962406851413220537579212549664427552825270892533813732791856938293747450350438810230883863696732041843929006436355974498542885677986656067827186788745456385806929935613173825132414536782209162165856829962371815316903269989903688644058276761021395476720499912224530498290746937178134028083207735675137548470273814056247829246067644369148867721906524175231390189555894102472038476776759263903359039073037811411918732800956346145179898443333213812141429758361825714106666281497325990441966170364544321007095310424364169527802276135274407913874328580619223344102697057343909798587457232594225138023201737806865650551304743868948971818798345829052572199165970120920484244411165828102149037482367561733378298852813133155752434216560360404055068059436498045459051280655151453615397072065970571810250892949991126072859453315537656607903031763916954306468309591423350402725294149064088634137510922116792628515819730435319849711245407724250304605701796791993276240941020998447544258966403293347788373083292502590030909647727444369342016382622404349525723742154959616564276922094957608745474604854373856727356903166741096321685977520285404364440695993765976456564965214762091807360662642930273402853779925988555089125226713882511664128100447237883371152756502450831482598010415249152358962668600873246627568987750991569891031633561506026218781333474556927990117176877087074651928517206584424399166446141539235405169848780790098821538972953873624620674354995039207613865414719355887665156758524115641594251245096429393851318949190705575337574216645187138680886074668098742812964204425983550589035876066254485935438677581643622325603675881245625702834045956316894946397082381179307105481791250511747257188946465094332670688956047345807012386524621283456712168166106020771988453534923901448747329928425795710411683641992003761539068091904426358255660866499897314228883242962617567791562409983611487767581380020141652257393247137895093821164618752611131558004679713046872123996910628552379679152089090082293452204985922824026444220800845608188570621942785677970361562093663702217750088506595709664759273541736779515670822000930730955360064612258565813687113600756614641386517488500616723311641239737148808266360284236609875281112311895850826596771866724269642154580705334560537033638645869699868894725243239186026700161576712173359325793001214593257515811692432021833504738387103251387852074154158239897883570081073111989990836995927996933868812527057579276573457761945008937227660175701789567716407199929253366714326905684008642556910882603614796681523349396767373421394507454112397846699470982520779162913224144694445205313135683603268772884001620653955553896274048218153252171832922770933964162011222402991573070424025170137749048626558122755924168708784768065152440908402838773775025318870872643517040995621803197809391440140475861469651250403966544806631008851264381254981728655099269163433188517885017459762760290638074869532686292333173792271066357274699854758971880368009561630720492193239600320504969316156249983893953943798148652110021040893842695034195173666714322663041557910656189220818874114902366766183008145949502197068702760360881010862196533698891952516162724194824991463209331993700602165875231646078711222281491897891926814188113456752307548059146069062051595863521495034174369953696478113164616352939082918026464891914183136624975168314682365924053043439549671927160482658366431438354831433905592846802652009827480407634025097128605273031739208640653532585528393098118010762022816362357944946617180868153437060483411035487921563752474493474257217504650564561618021566691275747574743964968824578635949330318760729727497750224384839489491995107587766296038712968080430950363213337465663255106659448494890598730485041457442433967844604191590663488319732497700718297894977862280830146084266792936320909344791597159672035397656343069167215767633860971060027710573600015868219392576655322649911110587639549788400603074487445886995488331165782579642367343568117768826722118013589910881615149590214180241280760463593604693414214967528985311319750044508215355242631379494727881124132269813964673723237438941150009668700028074938062640327570001062467617577671655220795390191603604455080605049973115290507112627535037462674993010728359448088516101163898541899082352930710070612593040557469502477311518535881330770552487989093698738679693188014022294780133588800800203928640149101230152214115244663149847029773866369116194485033291543704923202885360396878211390775157112497179397520257347639671449335630658500906731356297426348807664386122788570833700633139660885809214476701316075883115610451404474347012754978018056500620773406793698874377725828125664953248414838063594855380026242927964338297059037621455719925023039931805117569090131241950704650277979261787422861945190309908023653352454650901458370378446344894380576525417745324173979291588935501432227013545283723670937085739686763688971244012600974633694723001853392680940471446486789474215010357276191498770542581387420966330519412285790498049490435226359132845469418199896123038312055332375419280580553731986011796715500681490711431403317013940793543401006847582455023632021489468566318543613383985884423645956206210259351740525655085134526497632529379593693081260367594176493587596956734978381860763704873050474195537653125531632785866379031583543680150818935013901627308082879497743806200505669071934476103815529837965026965794253329560655704651954112837590776573694330868339760150936568194943173020680534062821324791011606655967203525082109838375414689731324413000132183622554072695321212689506739796981805250650805515873682406774951391285336404784272606523313566623874179514547700185084497475356488271159415335080756161909145484397553526251693128227179532516156198339650079399205901345725141872602324766650543433461262069017170410436776727752616775344060092901463659353256464352606164287542485409554949094970584313348835477863661684775127632942230788093835939791509617633640082217281565428846984435744471494875461857250735326432657035764266888335015545259841917924315036789624640110406732619077987560148719393361158481818449369403302681616615696145905648990098186704107338058957793344195899372900412497690514918752410678043545413843332011356558417652943667425506173110404792682488619444503864744382403635863549684147244473410680243059955440966001974268611114060832970516997408373977872622522932136865777063995189535454908048259251068717514278274995498451455808305303580186258396914515743872516393273859886098427872676560615380489445731825295264600818379961257549152664649551465336427707208270467681819699295187470651100365073344703869778278082570880792053576317219753209525770696691405056726513727500953742266144322791455858389387481316630882603195668950378204837288408431417120052129996642104900901174303287990471821547553769215857875336213709552057319868114915122968715071101775863175077755042429048970490155389538604786730771829995433251346907498512707054408804465021496947243255818071998372289826650183391639347234780120511962969487522158951923332272139288603776591968124439499237902131087418145991998166789646581022320465715045660024736777484745289639698842381613154135193739578039135113413683139957485817207610001934695035837652263974064591931079764326687408946153607811197156422939543725692372895786102199974392112027871881356713028110257101128862031804717586208036108050524088723708383495933125940234155206049034679856202272323365841281065687430508087239055515227158810055751887674560718362706120904783175934781092233728239111775637502487752693504573592470259082715325507705102868549679461219786025693442190567902397007613059192436043853731894715562226032725577581416387178049126764110311407889314187817794685940129721358841477143535910997272803660537348327172537608336892756510568350829242947450716796413921473101319638967859009712212980301549122340002103828110947198948749091132610043509948360755406096790053164110650327737403533372391711225625368743390617358299586715630567632008754193965288184777441656630800320647201174152587778843831097142213466141530149528878015888799959359340305361231054125138724036226057837099813499199176239250499903710805731895268353231322748151061181983696685958146349492277353772433446611869254103971400468691934400686052833210352744315020641920761123670068363526122644075992927299756095784148965311015915710897539447326996925734874204669630981221653068469460664193717106499108194180619698193859942644878614329823893359569740259732325350202925322503627607932556623562437762520979558040654756378116894849094675450386243529951713250031021852576305592864181706171477628157331105986319243470124328610678342805091485138938744878608431734956746763097799391137099621200306452442454316347043298449431111174491305470913050231417410458699958385822604849970158232937764092536968943644468029693881619241620179034397973885106718491097571457638166419717373261880561807784973716700651462996860007030416189953040180981840152275934374117787798387784047816208822131727975448294209571753713208553280415801689166255733287524587255735707649785421500532563949085292862226735045831114712344676474423039576281390465890178800664631859744779034621376100702704635014489355053012166879683344197614125237407777654558841462765130755565616642947788730197374005045821403832208444915985413035296575993577086875030345364675127265915721053554177557452416720962641650138802176758527157403957867206580627072220601251510192764586248258107809924512305067209725768883853213652160777267091150715007938676271244855045673795561319487767380421234998289852450076660400581404945903918229737727976244537100714885915158798089538997172723347200703244630760546978351284300399930663630556295251432641954213923213825064765555012469470299549835837747886679247840707012892148997424034229514871011685929928876450705682447614997251637607453918183732020984043890869797630025855847105591300911618475432365534942496449150599056548671364108764769658676468468984525162026300607837744848923076136030156331109036470375807503693586801878131306371125455718748813778352045117845889919454172505945108520940741101680771672760818284623714780830687294227174203813305145473517354379602627139310500726967407765413953832070529495975825910834927003112958558956551232575722716942216345691596706069126186467659791343159111362308351143147755374843100373664019513369473236010863001034991999941236428020909169671352485764588953016442015724876804942156646285061827623762655237498316618382573949906906940004508005665069365283290135537710126802164533653079595470459456463702947687477548667149410842583290524640784717184124444311089410272257954240766688520948329007560552733910888651352256370323526507681746768095499860083044296162352676635866054149875997957812964101105243761889103780005884283324957342825247084390296934923136617309306135634121933073986223584953377401112112526195976581362064058368706317684603957829347823972795688715574464530663977034372382684014607552232968832801159923766435088703469528427918696980265716078517474420445205899363652504441774454105174123628140550004149368720076637143418971580678350821236227899791272557360466253956837335466355634559565378489185372905052938228550164638749908508900290737345959433219348631143601051155425106592704713450769707911784132562760313111480446072040586048301774773194089748633161847117989858067292496243163809710802508909873632283879097077484001304191998170296000188434565579070683437976040609584732075195757822981370977360974943962590417927128146062059319310059125513486591520493020694128301445026930780638201213273464427090359636847774576455974984428722276879121521876780803723442618555337110594470758664923167265543768020139624927746729114016011202759544779399776287821473665989954052081377414870646121231068080563904193656129797332931222093948374949722337517627870493462848391826377033654985491669154305618073710994272277136256226932473537236574243674813609803955924473703946343599988291622001191838998078673680363880067686945393815810271709043397097522906464188931705348491560289372876817685899958127534598877060681827218600320841973545772942857123113467115264821217174897016451693814924542021607718767221112396893333924783548400059777354731100131507562990241213045240923930168042960677500765892392400733947563253305714999074959229403038539508020720347901517325542237375298573324674892184406791071906716362555818057209563551509238144608625192989266315787842697228450177727052004654699622026108110313379174968881545151601148008632335017173252696995432386787206097694264999983260683152320879746192088826974574517651819354243073736880962628312061590391112712639410668235162991423345252518163017847708047298390149742229202029254532816361583623699439043771784624210131212394040112456874596328154661878877415692647484937618339449340636516594195820749500730809917581951979716156761710902129231010689982254966756424124702170932006049741835567083860666968095725835465571613862061110424068555453812531475108527281055039056756630188519381605845879708732396164788365779971080569741067704854913191241330090753813981983352010297273745936393831638817601480360010533500213250121251102731374140394473412273103450027880190507737285326900051332757540715137130338829622098730847817024877790851606077537759283205251666110884007425040191655395325199737312745179157509738130712496937140934402329417690670148272284009159678812060765926812839469257835565625524679029921541565327594299221439715287447177510649644904263495027932222907229143194939261325500449302504205278714988076513023779816134359400552376161067926389896603313960940445166257190080503808089260657706681918568174212380579291974865003566116727202013591470902218351117000838724148565604889316701850010721189460351529273733188423771366475686716516909999050348892539719618165095677366289304924888861248315347339055792502571840963498656338035794563651895745560714266876367334333218919933123114805562849605875745241795138298213749053777047363847780451514500823673451126475898375749360563394448663516509474814799017243541377426836732037419356837223321909368177566954280320243295698688229507157664230325557099932262490914629866136448736883427231825215693058233701012325037454499514817491001198299441521755729087980132026730920751499700522764413901562549875710951221522482481628767632590435134236910863238175913703248396409845725540536035760479547557227225014916183935733858437029728875245586428535986178519700306923886487827435281959169630097667007115698139940374425610872723115890011965850443053346986138587893695445519634750680986449547211931154485578280341516883120871044130625267172976786248374955993373857341816898684684397198786896064094764293471892466537214618131741809017171452601737232953738553173864718659040680822056134852075112679444696526224345332319121809516888977259588220379243211938575246764856814879152382247248506823822220580548378518404134127112137428087089454597903207897341995057541564000951804669711228151330686263127944674640968364007965128068997183928627046281075369649547740148884890415272648471050223969677789738231213180186613889134231354455862689587776008229165215978572819543582258602038679606072831122625679388199420314293440886880863555947792754668451192894066279404890520067559045723476499554660777389248887922466886898764922805859607039023066057387318032968551546789929886282865776792351986352145024067255304096415786788975298548010390404671305431098887097985877432364899369921142211974012540296790051184252917898298376892413662343504012356136978358711611280171722444477975596314687395806167791734814478108618094019668974951627941151140574082372388062538850721145397763673780218121096433342375916554312489225053501285534344915495562243657052962995752390276186810858484373902146560659878608831852518289922489831864086573439409522475405261470771778993333680860568106611923480685702496729297271132292437535389730279980157037376790674398579189338593109622283931136687757094759956152246111207084659878638568990761907945743442536492821813223998470811639774722540249005973246013317568661161393936208662778657141008689271712874099097380879845272114772494931688232179878209440570231769462319752282739939254860729560589259780774583886722797530493630136950083218308010252254125952479327322882395429076779736436475847066220235361393619459597845664628599538230343472995156430054490279845694102426315244271044784370807634343963731855595213495379334006685196796653551169084626890438667935634868899235793974850996056291263807826699580362100016019363280639571357506264158554049974666459456716099280696487966515609282376520184870141721878613300332059859498980430570189910701900998026491697995836990597333018432543525245239000805464092424140992100649147206479287220826512839443268042341959986623989943739203607393993778620007024150287483315358756528003686945965344360361156370659078034596103727581573630437916160327475135196627985378370698954719506138562876287139479030707297473014027192362291536098695594573407611341962139199978653458136924434982291526034931119634971248927553116300131709618263420300222524113611137104708882459617857737122666025048984095088144356359701895837147926412145148791998726985307169093582587815414707167377515438275911579106067573638586554703468514363782322418494856714227683819175272650801462463244672963916256113854909390482794773461735936747604351363579243143874945427135510190440940599387508001061364592869169070301397761420688235633154938901601833425165768287029689695904818131320737738252623315068443543702930320743732370569623849983491478731122962856587488829329908251620841384569228117382764770300814741853135169145885027863865539158694950934389240092465015475633742304628209918210495780468226612608280720923818019609270091292177995478916052657101607846737212212972026789968674592781565989323134655692640256654420178618858994148372588252141458797032342009524356789982824046982459127941985328650910248353645451537651992316690413379288945947048973973014608623027758376808101478667795710739819772990516913234025083518308785642656529208635993981282116700056040482357772706888972598224274147908604547836891740959525428799991914243645862433271368391166648979341982591958921410259293872388591520724514700481830320212370254009753169016704266753591337759724555322618864857307117984212410831983713835310552664107625790698995806691028492567802733660746768321135266641902298240085909342699385576334241061194893526493823512781014960129256229935680689333017277402508117562344518457663240736579099875611404591526366672217135013863678074898329004114918230104593777357393699525016530276252254561870002973012046322416647940565054598978686402339894761977386572235061428317701351892844771244270793706665754614195011413734576553734840576325170678323060379997543222825507803192244178277915172577639688607189619753943343743372612051007760464196860349864351012808237676698460372430936336239744399644746350063369757028903431903937285363872003226345220687034297323599521551204997576794621691975194488021921756569684714884167465190610622941409697747841514237163003697314190187735179912441436585056230178364616880058133034861705190111245351040601120826095423889661168633674544563746770942814709692341352534214710934137738273630335207328967074236905106434969667097791897366644916597985997902282938969991277268619406720373111119958052128489657043260508133603254504428110097221644923307280598835137899611104808348173844898456347912621346193707828909497859950133543641347759313677787525705940806059310880110706397844307843767196730003478120351709480503036437527975446454459292389472040963472778141869198361237274725106743417217773560496328712447087135981894976251711557174898669721733348688313660684531338679089834122581558895229085458343779415730992756537995611969789511617952632063616979951485392786046593461482212585534357071053677634577790498713948056193869752167600603757486757402988816398598356152363593274650484426899327176357482983590818137297788088959431723943795758831376998332551317466533191670214486789078924182568488876094649201361421243841083009569861767426816657936974290393338132602522128278409087741304314950879925551750690613368909798122814329259419696053846328969732785694785443994207411361277971484252211498453139385619669134471873721019421382461679483516150878421270541200315397891945045658791471920855676880896632548818418190720614766750113567621915583543622893169266347420676239319772085472934452572702104043251604884159782142341646217936109597678678752999345045921301795275730217280068411139218152629500763454049238568309131251239998235527079470330959004583483009319280591715582598622858584416656343019256825920559702415179219392912873196478764768098227669915420115810230337708811178319227710642146456859041769976627988087542214748434864670934095940794558349484935293616029447273972120637400852928836596583587976071930677911418546313279676669341494366248890511546086516373976695140396020695385851987000351922957425478885638565905791293776584344278683727974158151675195016620137344523411210729716049636024601587096280415246709210203580495664437976735534273619371949642079886837190630696591127483850447414614173815161483272371914222488398299480118699846170837633691394025244380221303582101028755720854805926289289841132776078139905809190370831532682346955270665145119837747923222304137318240203606332653942620301175252339431928612557566676265999483133795629207800231850843059592580858902616391130091879189863182410006653873340932107612650922302190321358673568924429929231757049506564064701459277152128245175432307824153834745700153219074019997179389446284661134811822588915654552905820361146942273333910393480152819201731171122825609672983574777322089684913091701744747042275148903402659932384409828710420120925802418954073310117133427857892876479994275465422516718232114067103497239180404609707003643688944515873762459464757442188419330983231562781589743023544918094570177123279438422680238475611998427571543724793491186287444150561003539618709690410445909877684475824598785939833248853826344446490778101407614753161537107858776860480351794013205725511878496558285240746784098775701506805797051435419731243741086194611419999902849638116218028548981901290144103720305720482552409798639621944614209409250000493073365306657925307550974082524076563225145548120169972523625977054686944605396823903231238378734341000592912694432500472865044416405021491609530791360818563830460518867601354496239635331588708185835086885442427103068102099823301392769954155781453569072366166871489209318786941998272690904500007602500059675035771750797026798375127551613736415790168842407485007453789037638781443054483478617692666331301567038086316337572012191638941905151798539480706487693889227487970989311580835721071540717884981468731698083219672534442072199033595379387919881094987560787737716862549282322514993530891633425335698310168419685551912075075912015054063743072518775311744124120718172091332986382234961336684788097952747366228433111412168426264501356843748999759289960232554191130748562853269671149723125980468310682339883323708112086687349207952066929680212603791764837114210414659744275539503615595233598900095044157517005964185333183443714051737747751965707847297486064179004195565144013693620919403705383826249193514919098598888322148058142267556886140223932072803022280703033203032148667259509251934893195373440905852380093373558733756538191363025197731196314128085072542715524921455887879180020143461057203282330773306210285582317626754616570309215834499361098590797423115471002384500309627153459927053582611828611541289025394757089524729904450021925831700675562024031827590014577897960738533375381286281922693419312087255656056276185797293027050111339719672260151543598033329661015003610534358429031737973120169204564621759953147529581340235510042151029076627041542505302558710006271705368845743558977387253216581406919350868277478145534411509334215402164139145625520701267423965552999487722224318526708834716232146986010562344493986155824092732650909373604977684463646451001250947069728446309708670040320272086461260746474927177312728132456416204997360452183311248312056014236120564753288600234289372863582583831783694790003907366665225345519598711676071445651318412222345792999346844696832351368592862999532228932447034060120050141299471376128422029414891067321870953870973667845880293914132072148286791366061639542506628428885004820310145581342896063139162151580685489790730333774864334333138559027442419488955950199169808934492308117785713390662412623475251097876531341689347752821407718325153390724229449790169182211842042260863397725354622435072707147419368770463323416483611160562565337022416655092767066476502401570819269990482550584258014813304482189218653934659141774342129489963988549189153617532947653144773387302317110818035363225942425623803712078917035081390313075432974439598164438779442905255618880230880137403262097335504414483303933279435379035871698950991011338743264192005215768289019686075984625959610461922419805100807921452781108967204620783823549643570935371816832860053712968865317147136580511582560049024949576759550781936080239057211640543562078348438201650970437603411904728141012183131054543724779183943044399414924585220259277353009949605022559004351882172098597289992283741656044433657508811876161756972790311545401128141377483520916397346445147980848939915852735583445593000758325409363981449159257431181756075732875082577222705694172353201666899202547518991290519933191475531456882146869757184629646766715607819475322098047659685141847844875643701350272301815367274950952526362132049736756282908613624490518215553664979141888925075513746157341108771625058306594030484673231128972332164913544578250959121664542080792403606987364490048984292703558204844397917069246129756734773253336737658544302504366358257480868728614402145220054975326889188856909649664595976170557691635318844140166359755144612338565764103877689629628863039542694343293936915355574843120708243315287726359278430507006405060592309508075909192363849398035937209246523967539639879260361289960855087529582825364592139152827427632561912312995494888649902018716941275781736608199635128397703959657461188576102150275204705508741279444665043338377969659140318643891282803058769253465796164373779618526922567514850071310520395114246248520518483249414136772129544096062478903224139732416750149913816520908185781217646704168692531310705854378290811263360467661775479907965740942994634251812310247997406570501338770255239567688419430067861981602905766889159931662809487894661249875862525635904014347491524984034839304580393650259728829523874831702591014926997518804921975599403775303857600360496655745347818309923465367999993261358298843395821813243637195442529835207613505956409817809774430184136838784270479596505408180071893122125441804172234671248397570980593325740538301842662295280824861940035818591807029188190003380451965246687037510804895011702268728185309290485665956818538696192579409623882960865514352828495482803301297936481653051790705896452218910229685957684274992535000838798769312029414082533470887971897613276075372300368225430292008347961257567717828939673975089326340957271363550570113990492911656959883152011971619445067904183282055121477599562850795326749147525231922807715712549276757878554291280859103104727481916859288055188967832693680523822203066374477438049534921100721756533975086551998366681155719460125967833218199366891725609629872874737334114597208122262807275410362759520374132155971153300137255791394207149441993654130531501590419603166159473835137817805507932340996896452526905473019011925361112805719646091092308051635298543792293646781484167884970496474818262803866055754653480176741861499649560834869913080847064361118609746950602196311647404498041718368450886198879993004773760189850460741123774551074139883714367964904104366559425406508282326429613207724861716153655746116178828525297231548507506124350491629665997837704163523981096863541270309421764130301113070599867782279590040480684066598521483466725685300280421222360058154728624446379666232012025489708085162622464026381106883344050696177963905660258796917724841996584645465159183411983755039471783147094195238945516597419320330278180564024124739417046664583555467149946331644134559442001752580113542914848285681621507181862757157311669456111034616037098781047017363974075113382923149707099400933765986927660572341654119529212747538145339508499851635544152518475467370684549846457767071552320588948452291004167739985207825561210949822801004080870372489582815848548222352660883000497299983941549856795501389531856796106954271665397879520897501946285059422110679518549192961832085489540275397532567458604597874094842780780246458798158002307397806188425012512982176040043359795954170360766003788889674910990640199270576000837368640379648715374156527840904725040522383229789335585551022505432589585404466040802903840692166050044857718142624222404837354801288362426679207460306383515346289104481669987311611442047577700649620417062622167822845246167004411457519256114356203643816171522912106394793488012823400924481499966154165213298025246313478650509826732191830662158772054249428423867094360459820058614301467404544428540550690217044234583986388181751894010564218382994695076017754297992696204168203760642020811892777594047014781910155462490412735772228952522938825103782184221815140436768725452082187344964788258008927087532881039025948441883518913196918566013291605673518535445088441231924939824449438130587182565327648707538896804077058815191716772272549805343667570469952724385244333277152772926669267852102077912038313911527403794613418852946899842892822428780461061115275154728211501194071500454832396461572171802022464240618297206747705406986176176031403118536064199428999561513485303226954353298568220599812138805709688372695970978081065281576532285332044122997068685668339908024299659698818944645057807311289735114725019113805086425927079391219657061740399022088728579764571772810956735212041485251125156419711681422170147357516395742161638326481406262677769553681037166187445101485056886772472409633108993838904031933375798363090809342237623822128433741392699422491149414816784442959480150810540578175181260809010205213213938959144673475918139163425624151331137562007378347969016831284398174192924890335177520211162744012208685968189602992011617306221594809306714259487275880995563761359224101232770104026187438386683878710668253461954447566275699559720120218999053139333866458267265812020294444932377604343828871598509836711372038992922528684059272759294104171896644393402028809754069922822300983926319751715736939019450032000289247205954845529569552945322442487663278119802428490969345717259712752142771178749880528273430313574275283033874708090732365384249594875612968435623005722107813384998573840289175361501682727154843997828220435996679284090434639756570760280328859807197810619083396484493268169144053990303871326004506345069243372815565684820987378173172703211537975309104870779667251814568928937486310130975168552982046821907301711121187439941045595113717096827754852168887057802653547520099990432113085636941959107939719783078465325663201810385456351960944465017721623300449141301413388122053431312615674817863562516274765883144140812189345324324892522773248568056906072485987802102571741917992902777406995173552460747660037081797802991533803331668893460193455122106365183772538128900409566881960014655555065677186583562926480575968330308670654137759180031522257064799654589854411027816725639253428316475221958264127958299043513212792933078843513630949904581070505822722866656831404347470412159057187242753117503418918894783934874932743886441101180532853856525662150756744130719350349284254247710876802437952775819717181358338617874461642479184658607632398512357767421194070160963952883448182393070291541958417503104067934934993358732516358153852140214767915844862035021115923434881080931296709480734428217822353387318179223632900525576157952006821065564150521033884595548108459254997166820047734827965552581512976689811593945895149699799556676514461066858762653705517946180415231620967881853619872736941487080608105581803509048374890541285978223005669445347890519824911622316294757293293427895033375347968398359982442179755225392758977041515406552526088099108092419525529004213204927793970090378340728444893057468327029960491132993788999717365818434799851705577548541724724174489674155194920800477000099135221170981594666218154630080873196342082236299537204505922792329708012205296951947079092141754125191400384320417173548333526483738873269038395675437671030227519857787590705112964509264190215837752080746117788241865640568620669499134420503978069623096467136139869720071012435024141143032928255754330927233150555025568881543441096997244597950865016695452768287238542632084430609881664669165080258665176059992145480904532656565664489551432897965620805119446564768321155764450033393288796062997044131567990075262430026509847862550057579300240195053694810351765205319469017595015300202396416677193915043892774822380236017730457661537798731468071428597186626796163287526301324127253877744635283892268822164052867987196910296286469311504388122404515309972185617426082354962848088917510632805520649279377218958240937861204307673902333775355642954716046447459915531211838991412117854812534198513253335481024080938984323945420174342725986927879648111873441960615833037686419974696396836714773036346862099228054320895955818240971320038085558029844361711902352748936338771229966887771577770737551615180661820275622723733830807337937451462484747549199351731035279085909587047290726686337264472420546493231192877949846225225865488548052201050559295959338960640014391202092495335465728032077656954787877446450532218872817732752083428571542268242784629942267045444681096606329628911059793531088397528702497180278896743975680920384290490043341346316737662179284187243581343727098897774754375901313259876708981128856963646912738317928668010452205967758779999203010555598993640731585151458184407587043233103296689415182108474044032424274279837766062768457819554682659266357913727026482860231946154042422220519893064533004949878255450779175692996058944303602917626032406673970233621411133997869395747698821325029047236280926032551894487897093683669471009774674285536252307904334023576612334226255354262448838117831571040628114960158424756380575604851205435905279592704872958365512883929045367299757872346144410898067900627069777253641350972957204540732472355725624025114143023104417302302624482856550399554347986965391933721489572843437664194213675110427640199984655877787427160887080737528535722482882499482960570896041046614302214411654202135109653289073125011469252982950328333943084438299246125422762892292807368536261045638492858225299803526225399437294045522420152983236984210997174033558534207688328340554554169749657131612214033632965492654938666571048114622455038630384724768877340143655692420647254029964029885972124456369395641892203165027026608624363321218804798607003633387389613125371140626573137326207572274195284735540118876331441358675062944178361063285662089023622931004949776694047902884676064973234122613700018716364660287300087799146723757389241456938873091728335787230121274603088277800724297726575165354769931938115989772956443134433104184260716321044836525983923567376229983422583926922237130432381604068661093676509493094642519154184699606861230797691406970626726190412696531027374714949147787007195048038096832748406491353084041341441113633532270891355774625018144866265661320944619782306524972586526836607523557410149401743273030490967872286187557996496973023885234473511761992639346492553464840449700349671788192229961152182578819118467525360560574166039319612141144831668766803229008948143517467893750352233078915256346225252434183142389739051312035517348445072335238528852574618608268928042435901563582333132218773778068218703979500739869065257528161464893915095868397912846980668991269036805291706373704797794122544607948840360212143899930542525907015363324919831744480213325402508517084888791301506019338224896429066799843163376015998387900473873677023574663341140213109476453959946659032203742881587090379263762027524450620654372093753859554571768280765350080708011687905270480547549362013458131005283667056913567747854730890588399553314195273971736981431911065715716803772913719232671680845311580719538876530040029910157718197481858180759396050036608461761373918364508867229491084541493896677382635579880541700009422520575407807093945322700518603561214322285969536141940050744402693450026304263250404099402599597970202494107375373382925914606974705302564912970065094916712097262381677718045570562967778031262288744062647480748654183109209045823601750000735613057921574678679125794413802924498587107612936898079312658077967687563523395516740659501578244099349153315113228502868778141613232777062979088669775661396777187851726207226969693911950313142231022599212775674108423748167890995584795471883428482700092841152150564229723463104131641116591292153352213174093587568922302307877849537785689295359409593416863652352442894208029348311295251525775344098660332895881431811920152788392629216255415433939744738351628332062898235930557732768431093752182128811495578220302759049150875929011099927617595773184436598795531292124944435226598349931105680219989930360200336688247235488707520111029014232613306002312051415757693870068761828474214373899513015210791130276691012905775661462415729129959074388197025086274954199925360585845099651122390612238282326938004138496588318101945105881604813089148454543174647845839438589274235003110955942964448059419378753647847796913900426088131623113796987140784102078637551519475874801768710513292902976602199202419966386534026234224308523832398081351299702279952125623498860543085233282278755581827546318359427351511536750769873832270911922294183611884036844024874039135312932698544740806709229471823450359294515401568144381687083512509001719900359770810554093195006981682703871777428838084786755123744563291733705116912105971948788904861822565155355299034132637931187081008529850945545550463948544383215866808361405177770848877688421215609034190312549361662900525258582703734164749767104462868083868364579042698840640985197738125004803008176409714994645366259344702795209449916476935181204863210152570857320561574908106930575077272831081545850011038843232874406886423481818742135161955882599914121304548989719845401993447152926255419722200344170601882164741911496918594917553444566246710764354839618764818324299415785401174208234840813657629937022134699997932351406090977191566767494112143587908154566077455238411660968225314919172206147296103714279885153962142685773353361515626983383536921542927957443983402400760505679978846026644956844414162812683169193502165653045875556927522382108281347100491876841226618904443596732610790411758431384832982164567696291874092908243142330793863964124938982821249555917649531396359454340878437912787344123132250456861792911941202540569449158909997184564917928817568168095049365455342847454466555376314380320330402026789718937665947179240344431430139630070974763772623314544221359459079165497221255234340689486398085276452254787087724809567025750697485794683702303077200845532193027680614072419398898578471117335013006773724815469895992218512979350698578590484297592926824377821507986553637909535959833266998158893895659133778589581918092870102608544450908690755293662287413034090778267337075803670366635015698956256069296928861991905199893078816450404971045929189534815519135457429191340170866211366001836136040692485351638954652885806218264264657074125835991515453415529837090831034628585112428902089938087632240074264741431579364637019975905107507029293265335614183212120570596223218559177288715399023225662582566330705489344274887990868557754028634945294881493545780582609552014362771636426844602846727528227622439766950945914531201422535740926918495852085314234992923035027827977275445482872545089001090295434328007037773795520069271022057962079171830482235048585381321909698964875035958861002891699052990208949886783316025175850349226539083948402020308870558103327084362123296617096159432664549401085134795663426781556692220836894263295975198564444001695210530497567460850439477124416550305855284260004251496474074528110111395043535817103115691305969396487228414148554145096945367078859672289544488631737352358995173018754906352338215469886152896712866345456326418009860937810870594592507871127468419055325252868046595739480773116606311923338841711858840191904704144359115288954572049362014605680039864416837768481412105698774731267595861431692709187899158855382891577691921771064034542003205028509371210069121739114647872166098382290571381983136771042705679293467513156168990102103793051917990013396117692074251226442678192305968910119035574777665324690269346846736175133823374434638419230123502324176936965135866907065631746046895459753239800027455188821976774712718886793600720264066119526588613292195439741434139252712893146463852331848021080123730067324404929979443608826897237052935908583006292645026845312976045878944713952237919070640270928609959194072742530256699971454556051692010889080416901244384915088061634305632235468518970905311191300450870649121660775861661869501529234071411400507081642438108995750409800434422142558283703275485856225175806028416723210094046011001189509332307191554745203246005773371545703586507055435481586710736188156341374948041466298111225003410686069859259409520339478638383758564362631995670389338018271595279696042877685282256671495190106797024578271445981705114033390577877069218532323510973549651935658133752802382850170437941112567835263229735363433989831829504661937214602354727395390250869258450725962711872704801206729067007150312291618998603217922096956999215673169442915356211090076986444613724386233791372069588488672187908578123303443647170488153289825325070026526986108340684024498037753243523971887354751755432584001713179182097760625204842383988022891388922511900361597087238764977259107937462350629598726372583403807080397564154620537883616825604384502930834734032809335193589303294160011246706271174913980037210727602182488225918563916163503277758941242568369378822429040250682871067993632232438721972196232257558569060601835583294167320836123812082884603041322891026042423561453843024938469878744334205353592727743095369633652164314553684510496834756448621224533823935367554249273124077851467002215935415009880457646969203702065520495814494166999618377395872669284701442926420094885993929943683778228204882311925240806604588441612336154218651671834256252078732436854480857544679462975285959633956535419151671191849038540654267734988653459310277912200473489521533895609756045704386178279260422279491385140125891832324019052718202884154379905612010479688120138331317049323003913631908537329966390215426673517601627793063338401974626011987507095655637306729346903455343145992791222485573665565357937589105706638619545446462527362313829838391644167039639129900278463960064515780626224615215186666629689565578033249499110451316245085527879137616304961379724978423897346700536993509184345712943144224122944455483980233119626396784950582889355275351254002993052445962556792429349081105194226715966137156083683873540752464112394119293294572719262350954890141218448354100002022410360557325101600262522663829599230684765339731973445331067646348118965542545023437768992632899836208126399347521574405496838519714602711922419124602499715307519224130752789426193845904372372108424194376101652306667207673954257547516906608141234863424106861436425987050699150597285401901981736125996504708959584590328906711772951067207367884172067486401668785946868684964405431537371752015427223343547311389552695674441442222122891635178038863765880721781733959670489918981920546582633877402921516119527263801070069246473561918144582137895814223419106157316130269197403953684302014402699517091986744864466694773100431593153103844420897093822122672932456182778738106841349010351218309478523800633339546797585188590401800024933198022092309061364540133542409370357643911593423848220685043592562039630409950290165208551767373481232418260648536367128301791690836450931549917573190087769423608673045436071715992185142761186028565552379725077922534066292194307575866075528199265690294853434871727500306777435887117730331271268495948269435417859086697764459374420852351159874242297034324201213580387615749343695320748667022144114562818746899114975400052339394863061377899818423360807544544575461037956044232766002113682131732331344902445418576546155991331725214384673893840485108950707142180626787528212297795275397462499164890111371828112937567104613760920271242585483044481130975657255248617115306018584073031248796619485868641705652769232131677351452588346497865762521461919475260604526164864713127374706132733550141335419235419755071844333618718767188051785184575156349289187322579513657868237848720572875193472889560882959949804294729091039405263514020638602612457306414634983301567579220287801723636250304544646246019459171467517829916704511179489487557599922911130134871957844100993562713794427386462199367870139491310375341480933910723826571974357977470957366165833973727577772943639107392856686132780390972486001150647662067528882223408273331012531239047485682198566472263009697816653852449086302985733809927451185066370921022278333581283662678773661464370982564753941328974791090496374430514603922277249417658614579190568510674729286633484198041020806672513357055664810122300707051712162088424319298037738535989053382730214372379983176454093726327866481045569698810707537919988610026859035921862622126822685342644930007758869181202344084596376395975119837218160205447420277331200994307244448343176269997982553989329084069229698072716393455293218395096772573004040211328565113103800780737495073067235462991401802180716814545017905524565799567258211895551676921643209062190040570969063499398343632883064931218253934901154827800983516420263796593465077610776140554609736377882970794040049330749036163830959573511042211310413288832748735364440686314930092654819861211035783618232857741470932730131654208547955401264165816587763753800492104467573088099616247881686643384388159340930643283391495977463386550761910848426918853857005084413546994030548536842324429684781712428948172889448345121874801834626249857793683141138450314626659559699558343423527753777031938620693602462928356924828481552235419500218325866500341926222750783142621829952308510506638956047643822864107564985643839838072742543287321116112685573102633862316985889842305724949687444467841618402041138260845045740137711788380699099293118261915386894053603785024166552040365656113381811659565963810331575532391409361589149504725066440332178518758390532969559456388767168468523298353261787048409285620248627983373634304998982415831211047832270776576061979957066174278148979586120852832467345354164499729464162506482322475016896955972525895490775912388873427401454173533930190920902346729653890226919364713685739473097430362262496750508094769414150541683507039258002626040626286083293031560222169642556626913076060297435200799677533769090214668342047566386668093526078868015865141761977743328689566694751963593946905481965323928861718093322847511308842907299604795332128686516442112512491209356991551209158916615023889843980105201839195567180274973306132201815734137235425645725083916988226343433301648283762765148923244290850735197151145724047508716229132227020596294051610698712154283460740329331182606146558806195276759499329296661160526429101613297482530200716570967920239838265074534446945885196498347236554008086531370771231494429655734109824335715550156324845541779934032655539013861541526866950313140832822524743574337132010889881739303047052031105001004529855062376742622987762060085237786058579372367976196785603832655598304367260392089558719637569118059227732271792767518293362398602880267177120098433229074690431797881818143017820317184228319288948774759446072087527420782886727354651448252265088858343347602254566688973327862375536395203288997794380189254673086263479135961944093235667789536240163553873185717287673854504887447560766348473592420744804214633026974674219321203958924502904670881025810190213998262475411155839763434528338789506172956912472835410504722981997717223214259659187614698022911315627164634814249319926841785438820567308423179986741343621041608756727259582839395105265532529208731682119660469942929484967412635195096165321994054330677130439952890678845045773298349365451124889241110937479579264358894703217789003176015794620122968872426632033837725152902150554760915950153126592486374019990843590482045368452462481267168918554815072785098027860489485691113373779418364791184612251685752528883033456308720071737563663174875610783282259218848492260675225764493396014560104375121552968553066716936972674375157001372788231314063413107342395524309803693770232101911305780057249052164382359347584558386386721617189340587390926523509301718067989535959230517676948440407322176479678853918933763518952728007558310465035051403962810534114377939154643854612446385980561691854230316152968998496366232401370081055389149452226233177989021676359989266502226602570667353794956421838474049774964437127704210637080698556551482026371873916637163956592686608122470748631486961808951230513438399258115219009603678808414997785147543812983576432642728541683415321819024154102759022060598189033459965859203277761102734002099673979010778114086133904099054692714461456178151784751031547013113225898688610504172037992847559864913871227284862730351858562528331452432474710556602848270608506177939456801319038899775326633433754920891605058413954419380632862582834457677784971391429387313687716873541847827204094604669141638974887577535699712707085330887320178168349152760226622163659333256947927172089432655303984176874635373585757356527802396525956350987639169034548402067662601627101461489408117306552967513949185050280862421647054169431021852780581825561958349401422841606980020510469530883148600759957160028087961235038623048662478554772460642269594893212753139922721925211580961993785038355349782259383757059775734158412981162945047390713360902103630050625267150745544523159027806833639127158092365247693372677976206431070951671215767958610752987838190737761084950519498544921443139022475149943799708408733783790972421833554736098166679456433250250926258707321701276458603163764464330177029058376124973831496860892793214371292328527866741177082850805741671650746416294171837948958244719828956209391986190451906623781431429259801740540416838742110164083386828559332055820911033963608664048442780686729449602554344798461441906803456158885331669460947264330796682034799711564130794959183780666408379807115618897585296529493156250159864376598864909889005861943525589879657689783330600949429372736264425570156646352738684994201217837623632981835262858524236581910095143239418498387965603334419639228079548101017619944692280676826574098532791138112407749052904046186981367506309749009514348898501229002538759400817654284374189802114161858494691776110434299092679058946243049929760459490580552851410043372941252930157325957428978732514784377040635008549907728017839122299878455926052269257249724385126513740356928789817111053944715667453672257900795088207770405560686731341676473847203177976995674496721814860017022288793798520250301068800110928393627806258808728633057438016385545643637209821496552027070449636076622301994419169289328214086062709600667771112320852864297615592385146189896791527381788877652161729498354010481405781801554012751075331727091746396709409746936475963460167971750347453861936563991095689251656175259082220948780963095296745253483043896751704485232911540024848341471229945149330380440722326325811571454024129542949329562914015864876230034388780203454937233318493820660301205331522387562133899834356462306454562577379196671387744122931036121839307350662273281608632569099222031199991150396871858298894387541485301015869496862155813563863610361314432135634100598331055187664698452358419100437104357658405118391977781798379280134095737940676572362723394011887285949394923602382284577593028684433567426555959244230046614024758330327357728973462598381177120610758665554509480666385153867938961724274868575172318780748890213374742818509720204633142115721027244103700013492262633792383747197038853851012520602134408383255994797380899763255027161011809222648863089586510439849774394939194702497586792619343266905905125367143282516080045882317896856852383120456272163981880442278430717792227279402860503318210423883596325200934772772807191782889993389739499007678926890377932766547658611036966079434728577385393778886840515367506134377351100557487041812229149652772026351809081966517412283329031385342663213986650205813303814822813688559461024527185914982756716988057813473437807425538068207634863450650970383920267181072707183107572119337749970539137692140534593327923088385361840579319391768393473732903776700351924935287573699550736008292030644098103185744954875713417440351121100567947728438320418554563492018915457608021232398553202825514186472576384953198852789674900297530011079060422647439760190922572730537533617082798895162126758458914728671137836153026536844585419616169909840782049815255790550161249717112483489191262342116729946583034883985615991524955800094949908794459860148285739543579362508292099606143652522327123311226904383631479460826818982301046928220731040791428457257521407887263169776722175661124450493676553890129166786228094951406583921681969265005806456482151033841718668496855831663550506940819112182260010846819366510323036345381310258248242337680602639557580591941586275837921539862381198867974070460445220390405011395092495191472924303811210285772771847735067503292686698955488439288962842569512750400645894298979122431097497860146174814246095876717426929135088099561890778652638403350928276060793063697318063044683521600294961699061073184390069377053485733458751494555435922843048517969957761494816918560952511239495888287645614556499876543265194006540459767044769018716378746542859408132616468685321753379594780932772764658213783571427365446246716885933896700483891391595598518558630058542961372418468573679533505119701000608414204597406735783014394456742503128459180213431558996775664640395723581273414632410460122058588200306979147558444947121299271277616267237738429427598827795148355840471686828574837129552839648260611120503173298907118298681321571030291717251365913639387790172747473576800091424875799793644608328905844450009066514080596113575426734910972463661615004386118410795995399286697622084134423629150415400041937919429005468674930397579586062884116341310627331047223642764682931165428046018563293261713930835415398397881971567280213886097239724750614541721851412956659599661621145838281706118109621552403046651900883265603024187956109424074126045049855695976852380320306824638213823380358638415556155703747293876114393100545000590378820347644347676574809688243558028525666810600452087750287234686180596243447682344397201656158863994955166223263315626177814745876818393218972309558012917179116716640022142895802384975343205759596285333941621970307727803116547674283525631445511043265718794700559444257305839023535416079586445731394950976470170249641581185423831208593766202420739920512953073279076182473052563635956673128506452521451410777371769147962321462013300770443699633176802709986185067765949036650366413805148971747939786261912959082824060988464447429389662678954476420177187110332243286852007199608081298563878227967719635005012985804992553442095587707333723492225746320734048660875817372076649701695232137276753165235243827611631921768623491739330591518665991725045272479225505900765480541739574924742556266405371639156332329135889952744882349258556312321826091676463116154884886476277626923319771137400873917103458640211053792408102664741486558779294109245630418376778457250095562004024656879224792202369122275436417683324675927593037878752708711979605454002211347158551126726823339607267244756217353912459841364999640854770160020438452965771765228357301922077027815207120341137929398837391428901536151683694778204385624492968208149212154972285618021451932733820125400341391096210051286698979418904877783422724900279625251341451423987593126819867108251258256965719091992907477716562368279298730292686955574610096403169073923766938143463379804929161770265731811093306278406439690923206659801321353868470378352866768606636505861615820042156498895938062725665538911968221271560110805374547530467017116536678622292956465320318984864784747729109038826446443382526499273717493009167697489979156989456775223396140844123431494528367422392800729145624270777780950745345793496487240528681879825439735660736284707639642029970310545273296753317238578679976131536897128050782855654908447416319093165422941894497082098364627585103581255320212578558829743443976457849783090176584086242198154264961393557294339101506061742583352625534803681927988152480905958599026638611745348294939604690444003941439867738180961019883271031128145149605375776129527008280358597444591874274653499612349576267361985068152514969878998506737380173294103120616999917689231438548026726617841407020684871897401657476967506412147616734220328514009626862642282315131672320096834427376806536482869019264455115639671536326439531667472892186267675551118316634228161565287618715046242995199397201317095547871237463614658711934165042350935601004729389184933667703670898416214965164937281804789538085765593251455473493105762693152779391240397499138770737809330924377767104754634074666813322983543856468943386340622664420161443207849805245713138528593251900889870471762370150570318661378272291374370496609939024886992057022610902298612481136747029449619952457933224354603385706402013395815144594868493676359334597613416058142585325132773823496363626905520084396687410673825464080847331745696661218537243482858986526356033376786969872420601278496541442513781174013289688470113461742666846991182896238648273019094499876898930530107720809433561415698932638833293634590098378338975899568877417515375560491874910551851330608886901899233046900799142454048095904312944091371281403092981253938485714075975473297777325830540157474998899683078135204727901843817950797696776753787408120798742732970736405399957442252366094725254112833884823782423672228391925352336354902054646348090446700228021730784259396164563920051634312657684719257831583742311878820877286777355989109469703725602518828442823422820161158378022288166322702417221233855989610777024391806443983698652356540147831393020313504541674810779894036103699204536521321479021910761228451350867683077839154751088588757114221335213036442933524971957544756776562418405702317457803135729483116721694761182150539922633970293335571692627340795728110117557260069487735900257551482776238197305274451992867182956871976404618776005900999844992319134438437527805175047891380440505324775595992655532447825932830047011475887579050028041125800628998820624382632421914440924448224313358759017660173273364031016978177395426953032821127777407523820424737491927294201796659413176883045176347102220640171370643987657968838037937213503872427042842702574720666719362565788040457716531803337750724404954974390316782516565875063875910555411054993044334825740734451116815647156597217598831738395068492250626391781495700816688976267878337484003881965534353677210349717864073048412973646680516401517297968001822582002523661188901417344182705782440881538612736280068332937180443411914922013138453431090483995281814417215754346498836499674957980030532392550062151120129123247261730770284146214937326352604441116023158635508267009050092105652084860960737417711399205179346980962335974864086186991992196072166031986709433552506872851847683058691158852705046238794934120389666447536025751426378468404610916013924687012078639111382568823263049891000872038837544643098341874941707719521845151794339106436484428067374719258045057574256424489668374052666859740586112848557849436406673233933764741507853369162196542511609203771873068517918557497572542164105833427318200327906611143846431758029294997155872299032879504325204890775130074024399444007006514166000103722008856311724837544447609144799413448381189821123640591689468405732796452093250999264587188920446367668327439966477766816456762037262213296668356030037693333811941771912621456593491338585589563279511757779960815223379981774207241432565448366912398024787277007561722976946022602470474603729012108544681179293274117724064631977211002962448655161316448563907871059230220665830218053752286053448776782506169482064066837099032170349195762332283102312941048097175603313784572386804142331821615876615425294934680260960921148723393672997938156778631664291541604855249883809481419648201890675924680025063987531345876672524486835710710243806852030555041481706041277599330984008955927324381752896394883177981362900209899936881243830126081146661259665398066998945537668234834824416664460920324068583986026297272547171800642798944320384341082582118565175685453898854415001991781539735005335441211260557375205846608220952504626749072995141810394473189571275149287315267949207156518536461154961166416005650784232128234830657547340952431491549969867734436829831784293022370152907099720655074605769306392155061380071669020826628149548755356726318984278625634687038115075802694963080834120402721409048633995491850981650086840447976218017713534964349376057584640307409530142452321001482649658618003166993565887674160172458982296786664412065680158486314835069278277871218965976334308485030053320460968713034927607550291334403657035644669147228091115877210092573266527236151310175056156031493713431116356977862961181123334719140070882608260501068242621905759437552099988472544213739365766804924771305352711078446241874819711321139834727637673786037454315580938341375005094522922730860044916449059529023120378206631643764404944562820543598282108773223506667581546525535672046988887943805150690486202081045360437113408277699642559273565097302988855786694958110856041802625803519044000836512988706450074919487510251838845269105332463931260697926585394413743716328843189389744498864065210299723831245592453126239035953090374249584147210023702169489124598514627561911605343640276725406717873377082694032886261117484912506474284791677272461569292130243209697784415576457657902498768784348609506186233687007694220972651536893935536923828900994314175767828654833019260179135689852434957079287704021484896170841771087756091661422943638837854267548475427045298280281741063348173522238713897742442416115170917677571452472398944502307413404671943462776411288617543251463005118373966901361157050894237866289051457732728529042108630267881468170886228975020093193577807631106076982538608961591447596052740864787529232214142152865547538382530542214656143109422146593173756999252532924994046286113838690907391403058731524294476656312835759887429320749750788975654777770197639440249337814700351014998539955254939286439912717006210104157153606243858043722276436589494326212173222305412221184917154923273546328774786822888124170638590329408477739588662817950209566934734762215010438016095988894694228189611697714688229621070979687602059525755549168659337297851334105205677977222097451612683256168180607178393605726186279867042614889713643816719177228171984981354606175469295216346876220324500393482982638559277222233258868397069280177865935747267288131974478093068621074679973788187510307018719697722645447616213353553648586385657620791446504957308762056920880448551529463858013232384435440523867400280894101924952935377758189337677994161335309446335705444983786547301410507232887532966355414584672145373366288542518155923519873754920862567652776858475334799405978705982031041503534772897578050235385378259304940936192191831738160793097772265364592235563838142318476875766672820797295541003429104115022234246185560202618828109490358277641274102603553435481271661372184571901728688134816015261937526917000702268003171321657874636370323162954758592652756859522649595944388372161899358743179548787345555951231458034552551693821162295089044035837437684973546518492402471192401719317895543489277410564613437462092571361240714145376426377699641923884979500347655012172111520967640798976963015115754242869730773746925908391489644402557203982357582058961901140659373857222343151163332300215330555100958247433960058430806884093944647590559747521421658107979441749128640559971726360654100299283837852205638475701498090226816791251085132183902768944957143048414542665282524499418278830253335840285742334849761717667497244012995942301245221944530618025845316598793547173544311290429389278280311089245002674288108637720061653598026489909207773207246752767013816014131216056435959231486434458164115202308207515128238632304722642232639289623257369421375362130417970377234015369718310876370765836979499145311657707646111855449745777623725344775693616656170454478675209554826004076495952849961088800029436719934556965965506407534680636570844508447636386545289459178600749865106328480048199898504436707009662229044175277842256253293860756874198732842919975964989718211470800467910580194859955452116709622956512676845620318972959953330725731291228968262822579189000663966512626898470631716486683828661270938157634511433070882445190464832452169432199231040283413777913145481624494396023720984323536657723463501850301185080817607632176521796063935161873181924723995103512035318947648816390272218440414312639804420229123649159222586008982197091517240916525977975747113098216724322414648804001761895040606267615939779171712585457202657101725839460889686885553040493182792232114610853955100373699386756056779708997941722514457168426492656310878946828350394686105595640779196282841666627225999096084900830495973371418411922731991397166765800394699247114453756932526804075713464216065518869633646837182885784692056236745872456023640144112125165528193722490713715412071097932906087064415625576947416090062987671207028024133558246958078102445730444863367820276209885188244035681562091088397430279707577396681596037155733202411713219341665387683993213378619533012401769802329722683307187754229447911747842804587887087851018127499430411141767701039674493565859671257497321265389235404911775966081329638068979694133536428928870125767307839792821887912733393873662442144610199978762337716037317294910794202186733750117982460451737705315347389497452903287777276880769370166316044659441507446296012902495398408732424011697869606012371486950142651053537469928596841925854408176561737104731657517799434425645698947328425642209361605691698340230385049988301853719091866960107890455055262819989239908303591215668875915025653944133563009774027327193457617301016172605466925422599950477685126015444441497411622513357248021996506583245970449237628645136428638580023326923567654492533348652330223306297959903740790697442486771985319342304011532146280417295674563784894341618360627981107246732390080959782675872742474192354782708334953742349254676011321409262987932051124601836815635297528908779270794024270754427166139317744065297918289105882861972041959299168993060813177163775364814269599913281042248789442988755103841232176013889996441834437842398690201417242347322233181397728360648102821440608463809013113496624618466585834494058858995787039443242368901187427961989148087415566046776978883641554255347180343852006074203975680197934454648602427108435509010513892179615958257287011840002449063295859743042076726493597738040169447498925103002256226288482751435700826672765223087916234687779110556451063733240155858739168600404570814564256526139435063214454743421217119092311482104397222178060271363931181696516138470230150499902538728528945284694877885441501319145604104985949206296905457763034536080813227865504264321344237419238406096472528292049859304769825338208868607157060499227081045758959325194534604474141073387832482703490231635524635121984309319909323313782380036921493475498719147872086965325852211494354989309427715767113222481302150147117838777661844800389511027915150994722838235486339650333797744060785064022295196912654377837795470271194571839262408125675075410405676228176133115952463847278337224738031298038256135715698605318170138611682931608367042892804204404170353068027181628749587889445052757615966609198121552500997835768496876558584188101247552713151086123917644109803739562913308837396156765720906593805029348401102430996099347336163676000462222040342546887957345117370831836717981395244906463675000470212619630541094354775860501377212436617973453757823200903706690009763083323875342481966415941296740005494204577417407597167905626625979122195396527718734157851154560173519369624227130341454666038775711836412334083034360379897041245457283426065661830647679779881891623808183708075572271040023257936793793255104514022121896541839840596369173032945726804604290324431023686799032648875010576746765573020298835245087852353203200729250093861507624984013756985771687259469085575024827058657568052655753169276165909115731198260582040413283533781511240888057534499738751688122098190600660769994071511786847289898287657174872124572873480998273463589724131808760384499686769903109062191035514215944951066977659409632183532490150309941045854688201824231466806312766745745995151072001618105302595955850212587121302173448368498855695210109650362003608961880388512243163039318968457720993936843235027292633597389619389225149384863188641579588288721924369474066515819683379096864072657700621024430857232450999682173162393299359638679280779305937443646518900328188469756796561897486346017932254475056287099498405634399746768977591615556120029412031864995762506574238388500175794903411197472889018758842318277076277928921066691724906277519026967244696279560054440086488581893224546359857198115941832987987809766308188310554278201623164765540123215315182489041273328144178507650313121728471710815845061115150217320225601619161418364249251382747895626563627977788703876120857861294695051443600486906364862189322094047433426025331018063338432174862873986124969023289001804057831283590281430862230364439151221368246107998027464838521010746973168923786266626187925712174504252472560964637412823474052175521029551601699545325466155068324051024707659080233101952949069471685120578716010684078835489354593332562718699462620488025544476631613344946164610578831953526006383574665127310383673288359796195818451969428662537598005719960069856514132418308165637246494984611690895888222152725696861760527353569954182117069221858210733303114946068068775350116588953966525143450519450440709008819246849553292430211614331143968116883410874095499108645236421419314087247500163892491868769082965008212163452056031739983547606242761023570226846099740758199248892374020162570456716949090221614599079948554048636420490156139609856040451029950239289019301560545341862729932119672782089761838430089983565483212897696333576613603932119842785934104266932999243134103744134279838828132647497862245987182096352129686812240072679653968011165360697834317575868181561261053092956137840394175350479087150406542551808947549347616352587367004563353012772805136571445461142216956817739008509693654874570259056560950191685846131207441952894993244812707810824025769905217516501841516673587789490050874590873189986731663278632212327545111495515225471872012935360573732784060125236882695473310545337421183101398160014605730966356099559836936833006618536512710901277725577168980941813180682807525848366740301520484749005245249543320248153538895555392203366063894865612628778516280720534068546048588343561573548983773256245204683144644789475323924686297950796851686287470411418932718807986930161680915597700963892435306804371798961247714893086605011418974382203531819170854046610381704902844415301118882037873975280617273218503536509601013194915968384256031819755702068881548559952663151261289850675201699435193187962276739148618005331049047663846972013652917172841586395668605376817877590978550277583102154878150760699139185058542046663418368016411261093770178403093524589014926090067596577990983428384057585446633327687886898864501362055743697595330059531494167338220952731793800886844511526804588376639636164574600645347831555604508153122283636176356393388525241384526112626557862297991078873183121009092833224456167668285487182510142216736455667100293407749580819945343043966030646528955659718948197056794905662050111686499334285523514962498297010451554664828707077346129604210336715562036278555251648007906324316297926999708473944270893216684832811372762840937021163552211078083136769015712201084895460189423189626912138058588628855492671741891748482257377508759017957274176988096194206506372178515701626782262744111123566154879866291217165666566297034312499817008997066581999284134074862663770272237570210683301904546019049780915759309148618279843756176550643457651747117750092602870539835286029231393255642628524689675711280221042489865051982982937274367917047103684227089622204296962911006985437470148920110808933606309891216471403808587268672196791626452901647883999502655573131980177787945791669447401239908465308060679234340357034924950574620940701347316314032574257775345381376476815439648005969463615079641722209376305006211683820716397213218173790987485045955058699107746712878993763884038860905060959495867315759054524085531798628277090082677287451886766765677223893569104504193396026287468258842132533320272514211817815087229825278938519626377153037037078463198084186618352842253291641971274447378364356942635817891680232517608857041458905842424826240298240473411722212634091959745952296934989037062731595977679504420833899650131591330094342979457086173404245292132493231174222246566019286725123408575575012381443208618257837544624947736926497953794588756358945910917836923105997329399206069381690485122665081747885914095640441353348570724313066579790826914672561671993965659877444187022396499917545632093296729746880585860323811680104447344649971276555681617774378304862027253494838781752668425163825471049291264764785813011521977545554122664802788648891528577818470220731875151750219962311741324886517106671645595120259269694720041083902031194427789490191256704729319749462900240099800633750612890603335050945730392328722940698163505522096730003183757890668296841689512252928270364274145211612365853695034197698030125759594282653883319508753759625295450438911880080731367792165306205796805583147224627927313042206620806715803890634494140206896832880637681662990426422119424611479405167379859085729478121168656685789485487780403833532695008890200533804421757069753643365983682384780039998830647489486414071401847353787468766716915880145699713167923701509105767200943738701359797412826045768722272916494128239035326346739345667906051507096677767160963676705832905566427320672372177065190899368437682217848863144427378090355426930625372324053966217998726285820543098542369222946899565368433543964937542438016970234210618748314867429222848788171731049924392550129081868589997707666744154474319549047854548494537175845421500064505329007627089347907847087454609972708757802232514760291113532586938652637018082708180253703707156298791933216663669729925401923195865473859357616114875214022778172321063919432754018765097765473964884116475822136311637069032426635278079480186980920430676501437703299005062586044149313977203868757511021327641839696140644344261308952509400951488070418602583196389080681906957085273697392629056130597494601959982939742904448544286288997347432921585054048625251352166072258251795007077246422743767673068950043501104548157052726593513292954908683880778578502243874933728308269545553226670672964874199234919701870492623227861770010751916730642071399454054561774434571826632294698243839160587169194253973850979010829981829123324881232509379094906382967954412156715688960929731783283716320562750064084442582783234354076478302513670224555919366960804216214545808655087323570413464292041166140602273168349450675062478351908725942961816233810116058398014021936997242077921955534421982589937194155735831647031002957975636626961972239600292160788088436296815587121169030614438264472188931709042329986644563333839015713857607960996984294870540091593457146319811078768696436074699847012858216512983351562939520666506858806352674629025572143964617973337603025855451366935651807320981328570069506593548975152384282905850869383367233810436197017309917229282538176527351830102143622255160522549744681578926921456934001046056716054781223184782833878305321454352498794707255207440573061507820544001181365320659458004999391651681747381761565351647660792735026787300865448886968752982301331729157130113134934271411638906142534996675403055884246581775710966562854305860223452110913897417829470955975313794547765666293101910124474668573954873650076783489032141439107429184841225917648960996005621770483361628334907786163636467480817769256409472221144143518369894498985481670736986134314797053932951179665317189367253847470492155547864718986882189163689176530087463957133378616557339504078492055386130004608608684915198942971644679154295908718503558211813750099578450017918242069398994410308857056856197657368700017105979043171773998107097033001049919292768447985296163853208604939079356489743845712593391705255552243061310187228212420369501251882556662134493064423164010923533160608912557980543190018918398440349566432425827395805706907079895999792186621094828032891657486134449363478132878543523663465801202534036958496787961766043787885832314995620224728379383774408035659300497198429598582693697184080813365276066145094476241849104223999005075772760437707248210964263247922935300542904746282241362463652780620336286038236148533651827343322737621671391835021626652967504220275081923288931620502624165128093826842707127950129459770697301262591718394742917706275716064860240690276938965362050849002981497744390012942328843487340330950871395514298621277789835645341296441871303267206372617869617236001102205253103592243905649631786360028296653450953826742434141846114220947667894316979430080086791217222154828675220856216148359056703927269113214885531432656688069278531631293581206043610055792405057316898358883251711990357562202929219825201814052294799407647294082188501150699504030548301268631124704414065695384032368915780507058027981537006296118549292254671501396841237115808387699315429221393349253583663864820011849429266888384910604051240748822101893052781402383387129786511665456796228063327716377565462637088158163118769042885326660674226757332364362904356726208400600497437490207461708241053413413514327031859938039878714995452851207545001479621761615712355011273744391853987018372413844582674079393858821164152568734213674689550528096828703227923947259172075324428702853353423882986083545545360956933307247622939762978331174337075247397544708563341358034520407437558172854622560351232736063334949171851651268780951569721578437336653536888443950059769414737656191089242260931585720332606437737149053819973981382071937194966575916401528753484641826694883402859060567804562037903553723655944156823145262950487689155947740575770053071542268593472918829763215134688492373406740400307776046042625990736318908854410398056411103643751750462698366013691015068061584109780629168982248786651042061465776909820849623354795617933825440943549872020666034164194489272844962127629178682951760206165006856850229604337374786845882135449346829360803381605470003420069745426004577039204439181682768983397849138166226996282694319028322900125162246103585244811653923257250724823578911157132843365588027202166009474029666097521563097935416734474504921781543137251072227388468916942724670746731741886965894979221258860323241484219342902574054809198945589430354428250003585666938504960271591224976342008805671828619036136654499043671168543364855649806666121490404699912696375183743208108141094530360358733005917877226744440539598530827947268449868560524748348669708473869264708739838042920101679727450352239898555976581658978561908066786750444905368758639420406913263874734230347363616193658777555142819240539852756685419286002549170244038400928884078201996803618542738032958421671150194335797919754907417091123005302390434132330538024337865059755353146392905439128397052107113671798234572550510042464205269762031796588613828974418163546955782420471160548061725322415710881682230015163132052820948739138655650781189916415749885016986145370111327272010200705999240257755798006401516967381427479134599847624725899144184497417476669092089850531884368461843012142236949828073487138793891736010987734334995351888982927494510340504991790002008445728119991710158669125768616152258759202583422012211568102349703935034997363402853792502832192599979789171142431473679177331561531179469478146480803478262461897228662878378663401178317022945742432280049169804319457972690568964685846061513856176789290755280248480841412683761225101240664509917604149731618797048108742447515179165313545924731474501211875170878339518974084622790328410388855404566316178397655893862908564973795690270576582609409988395724673002024742646178292334035378398517197494596202283199213748997799001204190258514163646963551642002602384625781953419199636808883008430491452736505121878272081826524318446645520108636676133477488137465183711645327358055193797433712551657395660967253016010578387918481806922728660093191310486706970932105789653732814043760670850216354062915223145619625586306014758548712588412719528295488109953858443139972595423168311675886606436119534323326367938411405263922901511730922173821320821715610182251946034048567784258606468911237379267090970922006524968395702921548730221327484189078444875138458547829606539430257061727596694527327904367995516500002859368663957545032984227332710855524270949491975370905470941145356873630556885621842745175083933357636609558749186830641837910153250118535248388316100795793727466825578666229646228651437299899701909942016338802312654141550217801790553647301997829391837960108692068260393674328841664353710119573129060108346735691276493751639731807680351312401402435670362407298355704671238441022604856229383911473005525543440487473497461795717146361818452696936602505088897333643938527147693394805412293274490060954225825470674273398758068954399327053559846766272841414258060493553186724337198505101894486993548168976347230170610436747420267926252626349220134447364783042498350959130673891051472775395851954939091756747911777080907265224514925711631755376131156556923225191893538569102891378973054653181733354465923661509029902919683868883930340938977440172702887971410162436435628438034069243689725558257772072453411200883873178292497710076418212566878933299254049528176153747142342878592929495284596015793459688991946463156506172990900628043918606348157853551385326194209489212635332854119148417304042910496568643190711555711373007638265825337609188973868274201944039102395531737816950142973060051357990389877576373914159866288512789228843018543487640551869934995394011861196238214971248366676827446232124446456347147972681237173529838900176962336287993894535031743828457611945512339480220822328136583241241089735655687282079874418075583959223756029979576544208264672787862924820666296623777378989364047334585545175997270948375809848189488053257851749342216964099728908974291975123277305977689229976735166134839253907550194874573481293011960700481454263355485931987361805216372087338386272761469778633846288615079094890099433550565678228025706731164278243924076168210673835141814148908353557494651929287560849815163048444888597437577376124763235942486279370408671461317009385097308698762029196846816505223682322251634141363629806482212927450813293462698741447374100858558820285057538870378616744833899838307174665563323912615410678114449489911779599423195805379720158939680511087670997731000130704805055751087068094997932356965508007614133782127842472610306009521242407199370122833420519681267262718779636270171805444672331190974170367729670877325062362401881371110293507130952521183240569067512676285512999127427784706781329636346413176445768320543161313213775059723071283772244719825359134415165519522521471979536554693725031839351344314722478292866898659847173624278593310110771830349885310651879927276952320931545635362134594810598770981080397942726148721479874257658490444596042078035661248534455872083393119929525155193162386370953606349246769674235115432240927476003304874065720485033325189434047500079958585176103584191099286047001343051241956677796122784258450309025954320643016088890040382318520275045220606934672255564284826153981519142928231241322930802396614718977705963005837054610833852797254235785120700543622555306549188797165139302570990385575525663308052219099347865737337550561459396059788507794825326658586250640562086709510620165132529153512482353253074552955478913298900415252073330945997566480438678150861247909801186216497373996728898105358123478170690646752077476924896773951309770289437192349924076440452551603720181458408139007819657594648217878782612797185605997388649213744936563071947053148704740742529750608640372747138043546296351274562895526853878184129361248058966582728159481772397492438312239242028995873850788577128556221001416414508837830965642519138860469919084467071446334518952919341642833162832573743584894152487466112474328403769490666692509315572132227813968434830523977749469714150155535133291475248088624134519636343905099453707315982373696398352039572621353485364680341102866912895511051049255257907502794751842762675878769427545978893977464260854065391307962573674786198520395958449491729537159354252991463871179426597137135668236531707683936214493030076429016943584764642360427936463756979346039206652304270652130366751747988910372746876377045133349996033112451032885771219048008740076947295416358984199248899752424903780382442759330335527605285585004196495567530606509873906073997234867970829007264194944936855631194820276109420128555969815433446374024592082298718109483326238408719951456167186994260203649733435092117698813480328375320536834325840505761384197035245285114142293252303774741365738862250917068253865840412980737291405000200749058187268553083557017044994078917336325620565786767436453516827660854592907324726108484830417250478846917959406904446748186435142451126397237004285987676666529763883393763853767877964429290011906655673085580805667484383218618824920332012576641320320442759808802860330163471285221517564855595453673886547462813489779327274507553377483907816718971288656384779134568562000843751391188948638422756935839979845092626893964628237425126634541195274365283283504440731298262802989406647945345679570512100073299427649936318798285456112065506802426913267146637182720573430181864868071495973980379850963467512424608588715457227729030522961250699944435737218573800570539558439836379459082565765667312100027422208420559300751478422897298380156917442101046690140046347290491024653578604951383066429859212809082809563069690152594396812342075738062063626971739866728248824261999414148786995228370018435265176113029632359334126989945501846314738961145968133733654261494113556439632749048922401105679620113905217258756209196344090260246316505732881542776235743734968077021602367999587106224277532775746314996419985079071949950751915202255066316180475640879987663621072392674517314214764625117300130632990548651763703798892059020207205713182924998789729364106818069686958796757399862011042417831425407358190496947653564257336817231185103681123992976120311181553924257837282253284189843491511939964027395362522950215548603467896229625833934144274324279904539819301173159069561478554835838683633483896286010120441130356402236410078587643146180059854827231799150979826510320847008925293814648372984608247237545582871526941394233563795774649662480452803042968732683229227090227698743646429672878726563219891391503922520721827542929592890637570297165420364748094394908197053623591252900013198927218391684374639589878044577387263485754163878801982132421132306557463142137403920825218568597109243267407335537706702085179982482590608510322089859795077144080829685671712706527416457157977632445876266376207533622161312905343646626086527522504733178768435277670918001830710242826951968023531111763180073949609929674557190452211762357625563293121128078231938890923845368882976941606381391862503248114391310851918110589333188082183306083065217192962360674153445085910400549545990836012381429378952617667518678095585581211702416885754772650799644667175906484201260545234219090313879423419613535088614919079041842529924721335816616905144036505865373270252310159013877606519236323261207439358856859325746542413232118600185632859934047977028125693145642850848811706864824865555339579142051071196374811136611850880358473364087478379210305521106569529910137478364393518152581011548885923016037050642027440256216749375405417741609432709174382396935448975872056311245676964495812399795480609672709655273369592179447978346471753546351249647355875756305880787796461658969739276669769034796705820079742066543950748120245262355901024109000494608921028456450344497379065912133318561602809442828886138317495984567729299342358556214040779342034743049358966374405081071720198123121730619840400827009286019438463447408829711050700902610092783062282922693033549877309671622088115682940350852817818068168606124967246210822591537572531328162422151612612225764761157302543210722472083108665045630412035451136107877316982090573803959257550078748819740251433927161011453809268266123927799811316969205486156784095432212547865500270274930125095196878908146410678185552088927198960156696266766380594127434344584631104970021983966445410070128925784767033421045010637502289521127132774433769606739669872229136514388580292684274471623278283447545530909634524129161857725347139828061431586366964600547897115688003730782517940625143618164800304673787092061112115549745113538407190586415630361464683516813258495406302268518804212828112700547738022988088859249077889938814363389198857886787684264793455056979208807866869901890566569211050047261765415285902172478590135093052137955855535988983776183544368711469402176139290769347880590097903178832834467857288688939912410176278911031209806960068379217462613917714800964379501406232293994659846231728108599887998847090122075723024957462698457281784304595941089907959939219633644684767909579151904024638353956186369185178397791988778686686675796682002070813444588520416899208007176501968776653754846659501325613624645518474336545078223030518795616332829698143439906094813021322513425939057658670970422080799302667729508450888580123532102675444704152468450319015187100742674521788766001337214508813576801906725274852471520720116234380402659383311561576981543120911433633466535049074586980334476911819526824972980518195417380768090870067798393335281460350703924280972526669688835801868046670916042070985172327342277802730658525129165712909326547406236586069670366943809085097203165456587821656889274846929407389760586122877387102069334687356724357191071752315482015293614165237576171273762221128332078434145158831679242576144764325424833392835353218029765492019281133682438399196599547159132294280025920580667914129542858643838432417103057780898786584711098600935954757341005445631705811784802713342279576865808350631464258208615890120017253818753390275467081488690908915874787070838329369807803492784419946062729984520642275659637683932896905001883165162320977485359921249714764235272695741423932315722958575464685945648577603904925627417342566009631485663328427198858688036875741370141896981906115009488371386787879351467083294509177477462621031680627149783354519928053971041099826727961071626842042599472189478053999190049368857375362554631836049144880346236468262971164434401847006418588800531278694773973667586155074517053551946162243021300430033256930594203610822332370435451662033347195085422446091267231575235382557850181606014202910453352700187920746623623702532677661182360151512916544190732001256458678764229750049157142497425518170332537336590093986764975002420140440432976180792104959750712585477182319766483151830252925943265219810786099293008799571709153366140492658437504493899058929504797103612825172811450951003029486196911040233594354515590738685218757499176756741267673717689614046220986967087555716828083310545300711097075981599554071979664773841628611861701327064728530231558681096353822039480033007317386688255285202612257765185835354808882248204599373138072008850434838574422701368935715127294133015946216862072215205707289922115690242509479229116848149614400781289530242393710485391858174106203186086698982981010821070375815215202595229717957833892579260062178482793303863769064453870441908237513484304466829358619621722122827801978773642030035044308123881213838282882904784637073793403093018808240336403232791560429635769451230701691368174492872059699523649929686715364048382715368145018466443792057809268428785272922384411794429873736508614814551402943287050145342623456213591289930807787424580551684621611610408992503240522308217046840164533556190733970675731541334107232698269826947631397599549448265985573093422958029540507168646382769049653064138842476657637995033887427475284095816816330175241144549774544860970519090239996283031514839772226301761029815499536496025370684007692261797585190116422693560087203124590401742320830616858072989066036524802712401489819180721523781096074545471265331661193985049888038504005021017157409458616982572945364220135758422961201698346787079364448409440802537237535755672459720461200161595901784700979926596770898979036097625327374144685042195956300678984175703064374190403590969260180331329009559064864751642305481669108192591785447258309841788989712673611147870876336097237172648960258834171084582823777878657235040823930709449403472224314553797238988170806983546680636117285170014955225594006555389787194118844132706424705977912704220202485051885551555771402539394879072410709984794799071820333294896222976873691283903533195910625684213956571678970173190683286864927847138337554279095493708324343154941957168555756530731663176259216069392714691206657635892953727793399845594979230628892489836655808685934422451082303152512149632416667560017791862466308133149099713954164216697240290565348257310434119690783722650288504099571322530317181601166526244417903787567411745958088935772724774940208001974833887351023028405442234366666945227723968893522133951972916958044003709752741054250187245050646507768648248079098938678544077731764218557774803683356835922396172351663826395673310880932921270255718983851930657833288270950020935359478717925474191218218268586062952283461288089291449026247721517849673994216590556824960379488150108632164720842277763427049532561202601724541134939571977630458067533051233469182817021634508251182668314516114832243162979837898713227897433015758792311527334592423626827110018580888899344916366967789268836666405928978594553780891804002021819786156214877887518235497601279056190871480654278461986468150541395584646291645230000977320352389359139927865081424761271383292269849790004215965393739577241236403976068963862910261121192253197125407146292849541698942933825099460436864315173830254282147018774569381272935824710945731331695649857882001079930290838234972200675613499057950784295161400579638495628725613480361816866665376334889087349747807813864587707750565645972206471798923018844636765404993650255883291024748082108513962686495593923864678297200598292172647231932312537822573451924147618140136418766185984288678273840446843882989004182885383701880976039408209639013324334917988386999830191587249805633711693791244027179652376229130648583314688808742549605634937357926844345835624439276821526417137146032876435666117041063263940091256086976643128161358829673778490557228807741853922690521729924013439052406252464233499653532569913672805439706115116279705893913903728435212138697266884894790747555643729276305884000901684466224779531701476135290715449515821199746292818685272552576065674395341468091244294443375372826058497242682596674336096930649027514849472557986387837738981101951692616413489870102067404153186004628390649871857405566812740360730478664754472388610011621668809729097989078288947015973214815229995172097800996254155823085385263349051838594711161132840621362524232379953735279588723435340116422907309349239267380190367136392113090393163114449239933772269831528174788915822478798555919788589676310718287059492872161798931352802923999601143405197545052823151046852277090431003287532372689501433741530198325638049120042299320061930991753396210552999313594633822835990298043461556748125800293431030742603927603656988662571420312304094007853592090633187824720736886220581498628219283421373731383829160339161418952723228782633907835150417648677895229529663207618516578395289612935446446418819801831331668035289072453364622170046493897140803929247428895746183572299082149175130977902279257565694448879833084795432347918685230766071324300325205838722347953898696002009325826634079644442809323697159195826655106546844065025940815078700228812655153241299160453716318413253853747354181462614117013549785254906700601693284828156349046736650725434564966765161692906893027210456613177943889496341130833644096672281176824053179082517022590799394823830628173858934076435937812300033963475404477685955071480989134799379705720008632717928163254669349762198722383330465025291168381053668085178471526132285643418722853229404545008250993297532684095754863494739694350057353101206234617190063854205921780348105820475157244625075794075559084881365537444998937565118013929203892363030591171550131453638833070652693375603290499859301432878643777763863119912864022917541632061909569632958055306565941870240334795405327953045563588541932159582739749276925508655066243560974399033800199164101129625621202847274935320920606257092698434478528215891122545303971992341161311077840793532186377905128232882218765721319830979747744708126169446748419627661357683804901763581522199615941086821627701650559450866114907681298494464017704655245154644670775692929359857530353953025724221654669679491113567911738350731366539390418604029546981442036720622046089142430083710588124989916741477866278609410953083697239091192714368714876457005375313922989737096188904204965139253290241556548462630095995223383057542946053957777788174551838308819983152977412893959184717988288637915361459262983156839506634478234428329018841142621382676658429524934899162042307818325413820887732816149114145169567505253749629298696461848646350143374852924684414038926389277072234603097881604214581931533468487306102871079909671369902163550280225208522336832552501812811780332710965532938375072170550298486175190571133195232292985418714351809862523012248787465017977579162128340058407370076637577052053669812826181064080801071910690115570775324576946741903907978511020803991768590158119374507531287592337162439143370786796594824440762251673284908054007620893942832241822268458126810532882999022209029975276213473218132482327632339071125442132677091266043596812614764193030062730934153213301190861533706505822785225526238158570649927132935482656965910409131953380115826516228836854543989680342532718567378292973392323202036038452463485131770148910460365784545838242226171628756441987032228339385835047587704731916354033418397954920884917152924610869390703475723852849255282213988257436294634365729651910868607040150325481691540705812173821539283205277192636678281368514156962261835268184328018717431530810536711585397336150667224533520503953778405316860681394762867330127276122159723364676567474283929570730337761055566433493916641020176014291341044436621887534452688751523890339490087197042650609845702645883866467106395064030437704923514842679740149350687257077983308980057978555854906243310994075498563440550126599235032600059258291690875206224537726314956887454433327752044828882709112857054818689859606691077107923407919318005435321120610085146249176296845620573726011628737126336958611371460841803546223416914818429808009669347755731275730444863521690324458498700986784194236960370825709822393688227849093193125364048418468849993951068838122843821862639606105652464284663117410740542893918285468596745044667960807892988389644708549293148297336008409179561848058557139335106812451731654156042564360860314552940870384616555093063269691928940699289623009294779367226035086472979147990669825050959559457175367483444653820849349824378260963426903865754615463656749622622800872213300299841956637028889055587412069019657739207201397009287849932292121688106280867680990705142256199115030375686304714401936432011262413080561513933414456118303155693621830369359470851128422678797090616710695667868644682796709395663396274331987758723043059976925936171483532420773487620330506744989098520941105021611732540231859852972724245905070643387817864730708542635478429945403736290552459495597645670605927800659248817418734536822293836146084348729119917732024117113655927409065343909372641449516785814015626595284851442961958059691907209045113905919659931794338501020247116493104690048244255820056894663211955245449384271619561427663139892732823382569942064070272043109845229027390873656622392215298744012896114586961396594412904579360397477926644192604529711131955358304125757918772017916795364984255980033848180604483650650530771429283171416527926422249912645050408255933689383911102665455059864821709787652315728988850389903729963864158536539719222879200530563612903283872682100358113841301447871524786882251418031339940666540597568774063606723416288186843134546296207319149781850721783310187657042945987824230912787092070508108460045477516746163592233604470512221806022656650457418802960866070362248553652340615476017052772704709284331965074194028553594732882413273581827936816995797700725693921587473589008053136619305168509231798784525108558142444296820290975984671307768654981556629445927047250968661107715904943386172927200430739291279438966780903209659609262300585658864835126496359602665805287327892034349851992212928470976158673830651932579583523194644788428673603456069966311286609411732603679889476378767699731876750845476864245174710273381689576620517701730341326974242802883733439828784059272424320952726768483038194410024334942213876543205616078340972490102064631346172182448112342502803087254132335070477503931888625283582159014072886295406310883025683469376713159472928953464622752668020397351652921331003114547264001542796057307254980766814560545664077112421431082294584183565179917995593063278471977146650048890373222289524846657240821675517381068128231786753134634015905496526163637642952095030297207003482035254826422097128673235868801102672091695213245419989523527052242139300262386792260054508569475642006986057787902737705026442216285999541154956557624292026687248459539253472057368060230566188291808939661303093761033533311891843759578904476194481991406925715392691000138992085401545006008661104812475171069832320698772820817446262459301418216117908279102440817819907691820658668455034503742259746492844956265304939558657755039884468995006419608283237953348996387456809291335873822549164162129763971168595590284928137952309814382021808146215885086763734148143309546256103474011994704806988487331469679217686912963315571811044364955289795234580951739379646737793310529705659538999266569556317027249542881593013592787084039336306473428375865175334134272657504241541541504608443680856853644730984802437305300764719611016572106065376927173304561658059943119883844762201062715817227995523209781744596858131081656397354486712364846287401577759074693992714544778993504570360787306139279962883223682551451176151642945944839061828794057898170788603541891138464945295520422417361728778121299848385432092819211345128996764731749610070130597629374982239397226230057287319047247394466715053744443837125507202855775793532393110608036965270274514631086392610294004365607930409048107462622407184700081004557074273595135075625964006035279523178186468283177239483204895254719223739703475163868369971959234305715344934795473705264973915952574400849309871740852813357639960913581719024745022693188339408692025615960201757150929741709931255124494194604696492593635194493595338253354885470134769887568348172989650034850305925181554593299129379288189806514327775111696154088108217059045852697319414938319351190206293816922881519007287323709218411566779919085814781291552942571761590902539353162688221881300359296457136881715861155470990701127842694574903522949770590205383382293609936513816710620517586278820078172717585745311152318264393097879099294522753251065108317000282762656240225809702692635986483742913682000355494792750892221982925318674998437343131540485977439466384913569153766118021903452286097150709254176352614866186194627659761581411523560766440270657495031108507897286233292830455926145114032562390828692550270099685465894735018634514492060434326310202927646585137030520769371557146490561351222245995165080529528622566820980288289308896492340015058427577893171228791035997494810919964163426208112136771776512330036180669617668778166864509972291533030625803959402043796206310976323549427210296099879242915957189371328062498674513497870045800068875548376325449169607067599815265633357533412615983453191471137713294874726484436294259694490808907621537522798645828723415344969521907327699673263232863223533280886595056715162425818831905441795450911723255193674992901558724566909178786969124782873014879385482335987619162244697687082307354305136875843050475811170465418912150492500710502883080418972673179734072615521805985127218965584888859616497377223851071643589124323002578826537735106616504793905195002432004927669960302868123800598600694630280597565060737571614240245729405900303036198611780435720761307092648664679202744569189848008331702133194019518528129593039628174118115414536071494448855189630864768787090111043053664734297904925967593816139743603921326402049544239114857644414905719856769326763861356620498937347460882684727630155655080608964658882159973665542719112804206007060684866888801963485963263558687572960800245946160041870927843128154468380676079461809702315053702838862889252173166574347181519570810842570902834457789467170700882472473672876826619995205859077569184701188409770046669715322770948745723890084851947863631957327432563283652755438242011275318389392665837099528814025633485626729773070484585053905016574846270901289460030329820321731034298672936488001766295086467888066811958050501978766194110002246135817687011458377720126371324459492655823474109441918471279057535302499021498269902601122772704911287250220470840986606659813792770225408690407668933765392930763273714518888320377040706385431191632638446121621485673131957647557582067465402749209795402788057303476513750259131566189879581383349155375061603373973351866832319333844597119671818276493274762896663712265182640282441190868020848730891305478190615719514160505633797523434719505705411857895893228726665545558049521863081667014719215260954460440513788928914289755291728908892131679288550318145463469065035463521023395725238313865732962834683448134079918639185926985032671288821856933028921837319862079937371512587151609705803928148915391878598090802478417668293937518197446407362015016220611254641188593384251706505825837905693241969542220151658810346704028578854649988972596496549858535001934249186513033317166669474854404474569467238590400094716263532704619420114370058577154941313296306053628119269500724845597382504269729121516518314208150406149842985877793652577068620652521339598977044617059287484268649749829184886536744395570661909697573250969771420649607336766532002528980198275583190902705426104015503756549732601052236665607658656091450032097756095058004301258429206160872380823867663026542428991070345703458990499706602426605724925403318098013794500408458288195983997654373833310666065862678219431737306992967911616937032406736244945289552274576369720824405309517978172081771237057857990737742310878191610415598937240988727172812521647586495602918757392205718653320340717493993128868139740582385388272085209184913029576706198333967141828730718071393155205558377128665362262556934244916160530491860613858801758540834097105042933376375594064384115864178418434983584122076479285576444434311876600612806788416164547473225232807421822237346329487772911224438449543507473217025504056025022813891339055648717043897810367432418364231619222330307609719794509972445032940297185195448742183559143122561158835458444609459522507194641637783159301630868871577488176052130891622807617825018270028687634368717835391629007275188528557228846171698259882935215689505120378210608132287944114756146068985472841656134531551278739031845571418587824180462147316736622963319654051534987415640521895771263930602302784224474324014530206941078617837561067940742899431614061292988935787492475392998617144920696126874668022706689498373461047022750713267379464412647959619649461726608198865274335810164804417655568980428203773458914973322648877467755091140044575467401580530637456369633948205281968610012710649600834910247560607712422306804268846800795933194228800092216054899309000777160819720583929687926590049456013791744573870360876800306424722066918033244525144912725781481986732405728282968299497675096531456821369683642720620648515234713957532413153553249359147924011696834531066185296015882573018192425162040420075725850023689183923466681597213406124907120925879108845121878748427454012858265066257594016673173508637811213153243771038763423828236791768417306483511927760362311150981105008838794103196400693046628653388933241579122497430005409915184622584067167111730797706219313503241255237475600127575551041578316023762642740353035192608689845086113498724617880779330435536360033384918977043766500250917721800304873952449537785662999824386580603527245870979209659326261701913904238165241890198635221710806378711075703002078609521263798218824805460426873518129560830737245993645518808337383219421784840174910155490116211389584558778064654243731942815111366127170069903206762691211866395845307574299465269393787755012364000805894411089112287601962837817178115002636038386476384416809525191247913399991633062038386611656067569611539777969170349618027064777414792092925973813133108945029166444367056028113516420656117339637613245622165641092631640861781316429461768008732427072511827880336316399511367699650233060785321379770904882974035833550889795195734846341967640491680963340140770046847667854148719807255655202751800662880780025613359425038365105226460486797269955164460422964813604254372510682067847385108002377073265363129362215062506880203727657411834155318273506647498580103122526246107918288319464719122402027934607146571069018118848884527424521518482776532419734275682417422675467027132696697001305874819701082645962652237797906756615773116296361407468435627995816547502593621353055071380666389742388262484875301725678290831152517755127614396027380012816537846130131006508066744215620787157709805666714347810748710653871720716807460549854220359853844567052277643516231302813102496966370157966716005743944229163613309843503769095802272225591630390685945614210297642727491100277445158098363395968962051602991643168145167131675396862773590074169765035726843397547296198197913938281673958354846349429136369952630418735136464732051262006975035267575875014670907039254051514251329987949914545840705116211613455314456083171081931021384508827981341487083571922689082468349195184353835946006521991392639317553380820882547878643935153004394705512413959690644121772097186504450731655742890164243914518985811189762924721418414874392210917849605016984220476947330193323623958227734822031650452515538515882016295474520850526010079761570152311971260190291641905071062394313227882767537225642903432888473627133922578033192256430518072751503536827691186154721927230746712936278267342849237363557631015270520664417657618773660096486685232717503208247515780680432372755031472544134722767026068152860610278518139699104615135735743791584076493394904895805865550911366602038983320331402189679687122706732046556986599060037121136901088545636813444915385607569694950355644252193393744525332705736095324606954050581407485559970806677378399286355727022380069353790550402630205397089584988014468190994505404992525750639569100050417186479749485841776131219928022210874466759989663578682145202931349371595928292171318218479844237900564951086744435568552786032443861727343441998762130705171749988553124827522426467556622538180770059736668790322035954430751784565882382048431271473000006687716790184028519272900135801474561963134910941975388882410995520694690548571826862392492826213392186610385545517824080438912116116871789137880551874306776765585898598331078218436846240456059988069465025387723863809292556955749828009364892037228893725611112685974982572674218793812911283662473850382203569002519619605624054423800154201673084941169277650561793526175597095985727164123968045438714478207673492349986260889620030986413299895479970298969392299206110637911783656927485018850877375666586436992003397775111275992000428971657224133067095642440023707485304156468980417252338490645008233935578762598583298761407219588282248084536779024296160637566335879289862553680898746954695723282033698708740612758648713649818569831293473003352562177595798831924537283623418548457666311117662111038825087894527935583622138192408446509120402426375354140549322168456324284898624639864936088221240252427875401293056489559314733112583207888058447802110477366600980337260396514359417954800628689668828583740016636317112099661474015472826634029274962322418697734443092307810037347184839843214811688438842242690850560751092436142579717422257395913463939753709528629477384192548435762226819938106276574758833227720189085670648925403010403945871719663774043477128063689382658006618978573669499453697421448062479509265646939867510077295074355531312621599913904673396669782325196463918311824245824186664935947958842744294261605003938071640790676893534684494300950655081751013092828878367979682983921090602492439296203237821785623651716478727251505159473517192786239976028452996026470193607442393987108512147791768212139662103036139184057146356491628200138495300245693935818231357959593166756030871646764267644377904766078700011089795734148133240542085292586737742002428589731279255654566645130682209394047055698702819093996262411143864642580994443719131809650162567069536952759158722151139693455247263849799581387695733714306809985044682110208100140033004901760593635098228578959905811947290708795324129167044074613394947129215480434788261641146064601644833935371526590769665106719069018974942084735516053266309634144348565714582492119801641995002901460744126574081993402070990026515501012741095010510486615660726104555004614346098502654934999695963606230481689171084196699356245508533412920752902131241050145891260575096740951410023892174991871089631747800772649633649351524545022871462654148713522718637544510749361287748584536920722827063015268559731363300277231261159601636509672245794606586943373302061939789851911371547900766308322610235988732600624981605632605021636393425964294868259006796162461005288392597406179060554985175853494173008474562431540863395123303400977064066038793284237275223591342842926299944762394538166568942258113506188387573384528080524326958749364871921372594866200050605169610223376008398082743780294668400041464446194098510180335382913185851140240754375632510951650306306742456233929515509006535930695778103348297631801995000106465919932415336613040849242841776234447027584453530035937060904946159864045237981513395461065185501096812308493882226610314069027829783531838591622492891170508190953725383962496166644094725748560626756873697352129031494516008943644978730875294788355073291327596618427996404666139709091741100927114429457916146368265310893528507908583881321544691567027002517240232002733716789660203908814692939008312916215859221892423381369476333391285408266563864259917913090018406129960550190109706508572746847024787186104769363340347764181207376088620304943782294177893647535897982272961003476018452447741459682184339436537604769364545840434277664182003994320450630718468352146053463444126764117629614093403996858687332570848484362836203762439860650192455326308945757209232054171446433391277486264917716737543263601416846760008222884996933577586049699876926830264130349081402192817349263541236684714166402475124530656847181420311771564970854481926734166919160922434816340886703916908722227484490538850968859378757925276478268029476284333708818444161943867341224297686804929437172076649770158203212256998925114655661184090595891364998069791381623675665881032634695973076006488605119243187129680118238184978881270073401227421520562176647749821878915914723918508858332493579041813220357621691196379535453328997664747880960934780355534455920748874926057465580100918843215279170189582436489620667717153299171602412560190282243065795543193762173423173666560813220676468186533453505637719645012453220723431676079832421080421890935503133228210188315592706656851935581668969424353186655255151294714583350118329816975591298948478214541051205995743720973235072070249191094232965978876933351838429450423213409227405090440564380161616370429810069394878255564554835835162324539387281387299279730836584437552786103287580285501021158325972395044878432707458412342620913390541428543298590514284951684945727745850199617408126666780465304480002151688247263818120300566073684959039441000470612018716436719811639833836061974160556233880673293803373044965515786588581586213403509169474854352183402440481414680698881406688320341934206707773309428913079085462107168556999068926775659150937632697281504991698564054304980403387516093619604127169232755944566514345061872305486670781428688422405309731070887298537713460612606673418650833903128271770260007910539482758241848159353024674826566053987910337160124928568662445900435328567302900530281069954641326883986934333865498441568498433572756974499670659213437837061821181290074786798188744473357995809300094719880631076285849828577745299395078096864816353973051516902648914799221487250513398678704218426476564811774748779749647834906512787082479599931431953083012352416230629091522456501283977893016296976430655761641448616966566703436535751762908289604629134965212428604170052773561589775506521606895344237765421161108811424055736407794594627925995989679838799727717866864016767938685949812711352512151839812806832374102176621557190989655970478862937100717309659265236701019845583051651748799867473691422102346486659956936649629167562750540526530278741133147320891991936712668322654925568411338788738055033692941376882155638816493202578916670642838718968873177498601727137991095634069121221746567875805246063805072832863320704123998993372620020767474901640231330230554480729359295824608891676334842082238229696247733396330270192605614516160426761712663402502328656640615052468549234071246827196450518157218910508624371740004168877622045694970492755936510051699444917788646949618870438971268533554080969747136997871394135237207449504253170298679139315330933953364028802509970747350732992653893696936756688557108823943493730110621902048113076757924886924900948543968347930941392983326898839210046988179943948102307931799931911051005105165145515888117138995894632844261214303388736766439574160891918110786952596873975634973021579425072904393843518470282784718651238047021502511365041869200007024493514212580157214490624209659247102309065671514427314410831419822455024302707763792980712600413202674251851802543073887958364636529034668980658171158141398239458677523754466641065203862830716985157424424517863703659035574083430215508268306863878715072958832424845321627993470190780119201463578197233067221091111979716840832767966923874173490669738893014403572157110507471629584686010863350215899955917503357049085315333806081927004100143966860375893761557646464477026028506825384446766794481853783223551587090837759784954961850262243252939924498950337345147504904463190144463022457346448310901045684384783523215903211769961676737841648928877595192378876250716882194912687892124141654372029679541325722163238050195153741310537872155360529777775457707747184908563937158073324051292652571759727693109100482918676668448650793537432903723286597449391841514987495408818170861212283044709375503858397895620563221905392466856591554999452069545462615747804646941079766392222163494709817864336665625570402846694667044139413940078358028882236481701514102023690221340667437626623868039317843435120872829188089666216370789333303867917683881483960066381073365847119876982494487546567441181951760159942360349643556633979632610955425617019226633114897830220411338455480703014934252334238395918349539154439405667728036056161418855004398516868026809218631452627576720025597748126745467299688357020330270154200018207713891049903989630137321333361626864428201140419161479722262318279640072026290117158131534606496810541288614535065769116473110844825686664751132357908646662228964805753972535704555130667964199821730567076310598405199171716550245706804478760421617362913842013212292366174719709803148139819931033202939725831057458707724203877695338621862318203661652541127772243434429827209322338979993865714789145301145698498723578986833397233842216399340741886975104064100596590834219751139325614603095320404299804624546235667769711402950958870531157451105953740415811131683513491210544160797859259422175350063948435158058350146627206349154095026880666492722032201646713580149184066769569254796291081050579565775977494632915107201519856351170847462352687665573312270129119081117357814750237060762619114874547364435085123182551910867698692152663471404250417538253550716510375155672873897586108831312876198236242453308395806794332561634268755910396548564974275110498167832324637101458583006736042349234091813344684191377656468026836748072048488128604503289727243188305079329789423004438970308546185470062347315725276076456484251569497401595166955192864358708273488333143237392623551746426516632713675051369774154270739703318778845939259891645466961835490921212798763654958614073591977424104866239853766924053609604049778664553203069854911468637291665785279765901329547775857088342444015303446299365921259855143049670657894940308016108328100754224030836138471657474065132713511617175458989598516230967772750237785605070565129251099570183664809625714057057359350954469606869441714950808616311052761871115463816563059724311595783622649057941163878034559552641415713924891236785092436164702131675563732882658334697211928317308718194426032064029076057496326720116432419337592316644075877413665292039974462157085917509451390175486451816279211873902233862383580675135249437839935377354209406340013632370599097606207418573005377204335887848170885005718319606066717932500380249481550273215538175716591790371062871814927167820871340494192985856594671459710234410114198132013515456310553308041365012311409277727061407752650918347325575608959698237476762804320033194065030006202457107512888195282538810246918959198533408597571551489103568747329936742547735593890411098602627638994900988313240073854552645808103909446528148777111705684166924170220760632333227482523749010194893729209830969096419122769069117294961993299399714899072991153781917741584323784206900637814950310243798130586578997219310661646484529294114022824505939447232638505856369202445658763781446993370362291520179255549096913151635977172753234304919410961791880421743468684229633335051936323840170312027586727257325641545247098759433991734259871604521547610064273640325655400326763776302119823747435635027804809817072585253310476738949288376494448844056841036763867392794320132429645534995741927429289147238133132507411671712671029951735530474654344585609375645932640601798981411356078483053777060114972796902531263743912200466471126260470008224886830622667855357910554243818605878675939382609116979837962346064016141082305522968330802171106519613567435796521047424989106593516137172954711556546226523634394498207448483950990520456267594495035510274546814737235796412874622673247327707793028959855573355988771170702216237505573586150630915603027512700978507039984873568008753457002716766703534917300049931875068843620024703048853325828791188616783374492687339066252179007398433116447481645753480541700345302576402895034012238325068553817168784989417604538092221826046010148256988656042576112650092186831603837602359340637460463083283234158396486160365533905744270733376412282650158413880701520450718228792059525715099614045600500637378549059575501971562940366585745931444299785668288157768177762073867790918628186986890847518358702410372300599221331164342528801786037617830440385918879304423641932068250129539286579890141221641116754102814817371497539082760439216349997269480318455402946292526620844115951179189825928185364391266696126168691989457221347918226055923937932034647999432665829434305686774751786204203946474735929766450614539267893371442283281550257946000006110013610802642024630181032895467063892406013932835120851455837362571620685984032514616849141285397427013601007174419127736832890480411628519901178386093732089270714836331697665171990800830592422375702422190096003639913236021485762063652801716108525871428154158314718214831818021505423158940959404507795579542671987568902929494140028232337576393089115201420209289040955534180487789667897764214830231693886410248277818919448975632484727277164490093319608896452065510147318475209047908936375887729017384579955562353047736322647889842487743306041689881634961810743734604962721929247908768215035739281817905909608084792531792892785799603027767782747898585622778876153672093099719857146325191738400170202676132583152667890012870640157378378389851133872983787538550566819191705633677142493008721284795501723680751161804899891501757739465854969485438247278368486226100003741686530025065181521690329686566520120884623237793741620324397095038529489684577520018694933316003789773000411531639970567618056716503826912677925057215676049868123991391081236410716911116118957724847504577060327963221769535876351281534965009889324767544294640113622349532708637641904648514584498611216920924370379102625973397620276684157585619303989091036357124326471727797744249418799671568800110553119252420803806532685321985157517186342653707399067098089490462998460603075463408961324765380664845009173710105963276428415579673111304219001347336335091839258675722419133482133928113572721382186247401437534380415889280423673301575358697850522885838479525727837546453338257367284160709625955035122167225649480696741283923053007138988159446040467835163094883163265424585485572253800574167996507012462134726075179645722675618998391138023550085412171895932568759758077469410688177276909203230552204875488178487208692537747055733726001247045087927589888268059247205375157140487130993566949117296272364255943383293610836644213569475728739305842647804929589330323293400690859182685699475463982011823639288634567717647364838080838413975855685891064196559919858876621634462346162065463740783417323671232004517408015036638564631850303300411530332371504319213417304353451653228878178773929261758454610181714479751565779207940267656366232837537649078088316302574402334405299569680472897676133649789727042125464933032349139442509585510910789684577266921214749466491589523622138793255400030894707091105134320398431570097855406425646313627700488592595503679640883736347385927016940324890950489627840005720549819477249859335861970622415888776733022244058876890007385618869644012108194086230169489281765372485895069523703441709363332255945030715879251441281511881375909039495096205143739854537089436296652094193263838112345027963308429588035133506778255522306697050014361328313790836530652701976336457670518829783815431506989802752134664991820585197770900087755921082524510756405618853800623889757839460133302704350435114759453545020930491891474326841832850438855912747354423922770800925029628456363644696082949121579857486508092282795862802701367176244342599727242934165091482945566822223114272606234471842019713101978077698838323812113548386174604649752009859347809535560247428097372994127107216887107826674445249701374366860532866047189628824128545181610903831365230042672296570631864663795662435717123912970299749219709182496444261040932742352250209058734131772386509020834473062749205654809340324531775640594484737123752222841887812690971603384240716642911595665057810701685227851273387542190568859468410014701214320243834683987959122588297509131134942110203362059103077830683082074084929337121230183976982387624767910823610804784308716848218634387812470845685853762933547159430549123605992444517532077415776052818522487463256743221936863324805078462779001406690671422395229145268762267589864617111767882207299819598558894840952948797750913730947970491970662638256860434647660925229906498292583823257186403243025668121599477691399437115489916484499126062933111959654987246221589514959764256889748241206729371019151387939231781124265190270089972629605426312711830994636428172429688316201858714389724965815821278571803052714041452043244224043443125444280028811007840908903306952793088056430603154400663570462551041869437105771644175636978693683082866201669564224380591778576852760204633299154103749601318154929597883514568070061480179953605427264416123457568955736742163519302003710513037478210180860677950052839358782092024589932146622722184162945955931106847110595623979533095554485406982119172113833281025681429669360509919182425132230640049962864851293284615832204554810257419707235608136928884170219150596014210173132105051594993016210340302769692694683417895081190760556051897879280134106190008049203013066914050634981896431950201466791106057781766454915883572575678448353385060199651387325707674588066766302825627176599710575767080499551206761045860205317811419497598161148289407023185814879667751330533742163953792069647489146586324701493610112681594415594075054749283530420228824257283845089592443969074493547500834051483586890790876040337864786158659638567428352346290891635531085642944683856326485952401885529075755392846523433739365341938223887328139197214133716319971802265636871983153970742319275705701112576974050983657584298496395695092054035398539555255677983470653878193495217500870231396216566002879044191969617668539014062485315234809218106255516932744425595403615512032790886856678885707577774633169379732458815478979200056320880701276830949585810323518104543245260886718333022707756391212803379807909357054692029051790214610749961824254499500678192670749367380291720129099434027498162563276486543580490507547800211966717210462895868548932298059031021439786272870342254600506714859654816784293828055968482575393233254003679081332291483376200417946254486029870768006452389666736927397037363574806466488727060595087706576084045268337786021699353095524349586662857175583538006381682834233446781957360577886286325770533573632542831919633578394032785973948377530164592017461722245273919500965139651643597872427612607591926191466734471143244220017219815775152672686149748444272416830063964989332940193214038807002919813477258496765619172750135537601898979566397539995595990399022509982572094879572901248306308883404999394301069936548753783238134463300521072117417828634837311761805036322756814850963581626523103370414481321851382159409341395703599081331513984305637840343425460482974084107255862263473797781213156132041869726367724155831392060173109989385000139262173321551952734967578561560191014198711206749877430318478921931731935344569589040446310114277006282050857108847433839817789166631896082122602611028714054935493977525883210561915033856154461756621258697303564031748543362427642499638925704033563053395025583294639813258024434195388071885615687279496752407553097724791273280041899323469515076164117486384815605677713664812487553357076431037203141113201899993791900913100015924405858330812574823702588472793485989211134205385167573447396076041383159110069836061318093741441996268750046640387791180079619400345636713868488776035923485467084889006443239632629236263204723033119286709971383861723263494916393151446966999037704576308421730654647141026176855911630435506406179037764162825936388180228102346774161661037897849444802286355675028489835880024007799136257107376882056689175598755712378486242337916770271236349571631694166355161999183730513310444975416933164549603417996035514717421638026313430041159512506130455990777016763458919543908011321099062963363303693455258364443938509340538153506097245794326552927441015072174749396418832930385900199877984867902186737345814755890588532272407127970452246534791260876508502621052302487817435072549592434712460480570058900051080160961394287027992775513695597820210144880421762165595810734485760554617004948459296929732361312384692389383235692287576673540532404768294336789358720463218410563747038181843755519222040096888937022537962067223959624570460653550678441262363771751562120036523597491891793540032495298997454899667936803652876522236999685077903124668334689375522732544222391703458140404487698592014195557791279094081158438897217643791041016472849897916877448956805652420834240355372161411322116732128043468963255138445550654453377174876599780489895669959376115075590545674819567549767049917838315332864399462123790339564644398901643474037275427880681281946945646227748611935622969016685303922253742613547881484781001018651349256320563586547625368223171925848561836070082149256298710602978688177051127196814702495832857746919544860655390497546586576013186866377306841215723240785138185321059013429577568357340850641000372785706908735089090070886101668108493263221422719824977551259090024332111942312485770564093517922856081139593959584613048125649229488955173990457314953510416777335635221099049102606608319641917990973895309811751976180885521104190702286272869863662779083249433025041747208986176604059061093490825916178025103974669850397633561023516628897699993822627712471936342972023103980834258310027144791402646016750781636138220279809092323170227434449669983143459790690159355967946046905945527183196255272451661467319136279800678896940814405440165201862571961183736766035613800714536983513763013096541186473450483355862599756768464884700201660523288003366732195454252972356791653669966286919325109969789254203478686115468226126581996121321189194252788124849048685205763759729477679475146632928429869100375760984082520141648647615315024661543939101549876426803206433921792828770676760845147147083305823975361399662437275206320260239757881397117042003669487703129377971823155596900786398122600588470087597418331901357706614986922305457285536593691283461443364399940983800366313352505974256230871992283342450773676909249141409200339726782305874815576036309096331281386053934514942689481218784592455983160874781563939598003713552412975822941299351587267645946844187189488804448296611549807728206845270849015796945644164998220296371316480982447082479711920542590398581197993783318908825711185870176479424186003827438259472210412107746134927166685846799947604488999176421693970385722497901835678382776166319002311685995647285697273502967361969848098404094400262503595412088341685121252456969706491327870729880150104733024315385308355435859152260190698249146842996320715582735663274266682673006332769423780372270416850803482082410939904415199152919624465320432560178846503372333420213595588984952141821644048668496400872518489955135363837100010762934428591606095122915881020540509644433829694591998236904801006142963051346742742833657434177321834184362733097732878984903747624849901786114105534075549334895141743617944399111423344737807663894971041616588046038554121060196156394143402196755785782517800340162279354908490822483338254277594979231248443440699208487851874057068540416525541324985515716762314113480148799621938463158312207440214896056205109025956362813200195827034008500385354010467792057213326547689757836524220908713945888590170123789131759900730262838786449000653003249375732035521472412290824338297286849098508927803028181285673154132622191920914734358236360168036204430994730559530414524702722165425682459314561804957906559235387656111232892976039551047118776299317964905766580036402653099071680143235418207367499239578642086162743183734421398847356003302211478550127546489515724418239798895460218498507639672387978928557076190065679913683107557350139360556192879739302562173321533659942112766961304660522537338317379441394395535201402526510644125269751921816646133461218514188989368098933927722159136375865876948518164540596343515551538767027400663314408370825053820543822088798151738931471512488114216602862832319416258606070343669649648902949923508912894611337652799261593347795258237927385729566489458798021256926613964297137086481859252586292756183339488219758379272469927345691753174353925349454704579511942726265837033779270232807461245760939723057551283817255568430582424311381500384404624628251719079731394262668453356907374885939925296709885597639606394972338742496470636859757035100082882964617000519806624633133935428075537857255251985508836405532141906284642157936014013578370737241331701836208734295743418917628198773279595562024180906929362199935040352392256451667158066886526984071335749719947924217854771975177470388103196165094121353025321010611272933802216162326763359355482404899688584189576500186014267242488792828233216409010830316009889972738013995461062192422895581620569490428776831689332297425739126993142465514251260253020272701677432753820622363990610203129367050429127749821855946076927680840338100819142052510782860467944178498397332643076734426965805224839801940856592161670181834789054114659382212742671195247770891931745738339269472616083480125031999258599502881724131875348622872461736973113255319825654969931107602709130243787904208341849382694173454314186430222864576437861985070610662803082186158908135942056468880960537802198941444122052446016006234388897378165715233138758774212672320627399792872579352831093350778417496328910016761416665469898593047372265202278564985357912662122010485765547847162330227834857135007055999248022938284916761485745294667942889223862650225128834469833046975749659923429525383335267207300987515542550979563782536991808051343167705571573312307390167034141343934807235666698473897975165298337414786488448000341776998503856595589495133117766732003413288823748627471899997807259618709544905208924019392106326186306909920971284722022396184250290494696715491226367384507934918466737635491923785135865453085720480622949684030227188976177641573630277216543496855695511007868389354691379716317917161202822808872043312092640772015016371406905725009600284975781582107077156059624695586114165289901650496773852311532278594958765988594084253088022897133479367837289303248368618051979195865723196833061644574073683640765197595381170641316621008728299543406271374891183990540515555009611382065775553625427931922526237400735613003010272920105956609142691044020477478385242571122845355106680451504013736528098564741902390547930381702771135303172009125352201410964892844130970371871840023355120043131505163137410285275844781888979175227911779738780674079822847133377476950477030514057733256006307034999412483739925008605720035157842242899106423358990131566299870745352430623437814235266389544906924771563280368276269276901371038348529021284975047390497557990402038917741633830609658134349814142430742544987165601706002086518098046981528361175757974216201415051025204145610041591863873188963645848121893067571632102726228235100524459287707788861164467723200234290221600489116076761087410241131146872754901894774448791874581032518111766071979953163199606595342055410891926718943846234704753763295617373401816660582809514498686603821245025741889589558193191666058168252254213053505563513507653355596271597035852413574344955393692027727419960078700141620059193875256811531734678690637972891526840652121942048015722937273678836302286756211602218171025503015017557572611656402978608459716314414764234620704638677998050610401061085394057893660028523248263868137011514327709974371197969319575686386826200063446698106138631777796041481643792241861618699200935102135830759184548105933155078521766629472000229142781017445353564202232125818064168213039150148066359764336474109334484975258518822259906328508061317661086896735332892035813808031878107761319160253277577675903452959248979279801898016218218784612294241572803599423328459101612634229747207524822672101821758554375099648423842790271301086602864496300697467545593553093225361219214636968762262891970541763777744122382461999494588055576433197568055803995854610234705383297133047671114793765876894501591307790945380409478913995610784398984881787899685025787841924114409654937383992657175381899264350667860732312270078383757524439035301675569104565052138516961213868306450956803551099135685441043139331802105588283121774958306701411187597014262680975107458903277489146499482282757346442226888539233024708666996633593185978828985911389914960294508322896474243766879238625242035583599360534366916076632792301346739489151285497294219446488694060146348375748237597797969210750532097691211478689548768010115985470240176428214664102255473322588975971167319831828124882708627683305444614140178583224551843671892379635290776184819176132000510240305910319607962380582940958439413443676091823178478099529786083385256522213025151292409223071160963524896068595854029048754849971553589959624630966200027278954652340873842125699738840779968595897165364335584977329948537876852176192841939932904631738698712644337762567808217123477056486850516095243625880542202425230064541127122820811154857650782511250375619826240647423516279087953177341861581764253415213554550521631824438773600326433927368156553960137711808549860387689052936598209280421182306566589216997898481366703230420316894324675064894794120611404971571260457925014947460232019625025415692898111453438191248333934898740304960893362012874974835792777279958618282075475512114164764758446634276836882727300085417644369316606957605939142557392905932322320861126790173450408065879529626891116118762335938242273708158140883150786784569313146795692237761767851415253362943577155665440577604952411848823294069707274754100823370233289276924514125064620838584781037494104664719844615056713478609764358001422849767641791357836555574199391905552137516716092729878735425445410024171970208649539948288973720929647997654321108255447260624102661668545472737461034316495686822964002972104581785084071438424561880991244048675303067589030520940954904032890856203314162016476742504235737529898535195748425288102695770917764711506776042128254410329622910544858787084261620656401426675485709324344320608717991688098360134329937032427833811875760773055176584400766402819587846305537647861975806085292425683474813440098507309876085390352930192437490782714188477978751270752459327599250007867738788159918996713246947994352530776271926479595543940228014705243896223795940370007280214825411437876549927016867484612596497832989585237280220975634479200806493821798495677347261383123914764044824171286140879862903523514074982993070500695506703526130461610269410805729057368787939249931348323300093703534516772183376556822254394077215011905922055946176379638400586523632783148310492437534010488621865950941786606181214492615994278345799812182125259228164593486791534747497557609139758201657602143324559461401509907333188460904927362015720772275014671560035267850462096617022535895682756562425904581830935460566265966525185303810957612210460707928106747607827180624719048434008129482224705426909107436995189641003728818654232547189012099468906439184818277845841798983812717482008007418972518296661156817507846447364465953726408342146655294948819878591622441991488466183213850930804042110550495083869462600514609435481083984071518887699311630949165166834041167141858515335145725651535789545057156003517987991503132806684091473356026635502774967064306400839359093448204853903014882082653947154514427673181457400048490822896614327768773898170403532634947965957343299540991658039761146106401929510226896846554896062988275742304142701346731459177162935428954894965813905968349226597539815336711505694612292800818870619664829178573980550055510280770861728730018104376906237287199898137400281643154101703884724515542758571680052164219923246333768532530975683153176368145097706217232245111611003104229843487254670680386906487373899242213728023643032772174261487952891407717356472922758447053035918300809282190968351999478190924295118887170672457391847464225390202447344063038043838707906239260252493470605506160780100235748354088946830357868488967180597684485613023955958033120252259184912372960327809425570511665326543565367147638053216387520174834975054535235237187005366263735009137691764825865183093587028818421103324205321177544273959806065282938714226024116712373257645333135964058424799638488515006061955770666354332095988848816279383566734201862734507319666505046620264608806302174279041324709916566159846151719240681721064859787002536337240982959029669973258323843829183985157952381425891038639250783704794517467365950267230635379057517663606193783592032217682110243358933732269085171992973512025634963748198501536071688249396404082703124926967288506510484017200046247794496475262850478554524199113637976211617015916306811756958741947635546493275931006527102723130635928721380251655038876817576924713787115122916691842163285285470757156074597477012175596914935923201073211597667035370703957812826766712523088246460248937596645057235662905236251362688446666476721045265940355874039152293581964459824413149398515666659221004803402606424722828149418809140000940294467062732544829163356604275163573158346829681992553510818525289653271436258461301511350980094598518168270511023262812299272912328950977636548620945171344102583728068155552189551827935717405371732755487034671122001742681435070471700111086838589129576610843586705034304183881399955362479018824147520199127901652826031153421571139624851842261029981726355008812707435193853308453185072736837077954399551509068382110303211545851855047361290040864659335738541238943260497383264331335132249878247327706733203758509610328181009182882615648532667518408709073006238704595678348679995709191904887911333195441370837471645170164853645107127865012233385815191922729562132218722135514095785478961258620239168916804794305785472033949978652157920113011531794431859310567973701250385662436166559517638770811963358345159424862529865568153332949279333560576198569957864872143273756051473590296809336326357375318480201186489356319719660773300610545656006359069523420852947259373534174366020892240000900195883545658544920676813927505700295152834578883159286275059149278817223179983625969779911367704707151690207139509054025340050893541211072356988502293103354115114140147568349223128143683157535563050035307858265138635662956288530842639322989468259674869492847638815803174619900123056771043375149358286637945639593568294160271340519402941452972409012598987610225887843163534929397868362377143062881522530360198745085788769466005141062422713497778158351499247724349647166941707286565588985243764392834861541030071972610479137660894111365358880637938206939282537231019070071573259455921889710475534481826647372851984446431958919884547815276781770281089629705806002137907627251787170140885054811481471644901971125990083851077114333257709155274153284358471488338934480026844244871808348095117877724917804293209734396666261724629019462727239737273099548653040571086971479243190542692243657273729000825722573918064628232553227236739921609215726743092594770976068470539715865257909046871673786696811171162093345508304380535267131118986587348407184167234097528558475760750778344541191065429947173435502514794972912061897462172178525437606918590222734574729379595558411893400438367983370720865687704737943745348698084797834858541913095336024418746230303286691794263469301030935155171738642207462815171295637463238396641848868832489912663856280879977899579958444785991224381236259718653912124812150773582948211990366097849955859296028405581454621893415666646810390251098658780893196119104481906928258340104490220302171971251819708946591598031742900986338329821132011540992195649365153524623446688312416809387981116084257948630919241392432726884895632587573268735585850837235622747391538090849712250712917400322004210371114483600601363554952325144971481690621017121761594806919606882040955117992668881923647882281901198480489147857962934329184863778860831053157103063374654789050835472264580841020037321910441987789599085478187070178485525471949558161424645321395732045152017424874912993046684570122464244042390680760202814624606398679635905291685756955962525762890917118885092180039566678530900855667634232841773912619434974146111704761348883772812302493908282822978233239954978044935598438811357020053597726273399781248298525367038855017894081295883152648994780719111001712961443337007732699318765035580942727626736986070898066771365113641628212126596838820280052077615238725408328798366301307632963765395148036451210402979421782972725156655895166772015890594234403667853237302853790151976185982487039974809586953651772551021599780929806696497559112449429837921658111006187753503693379282201605214454517623931831632374634751948664175976363122288378913225804796397017458018493222473007319640184971425020167600480844056389515245221130987653019584142423891929289381454582683896753518048819503418692413922360048400685591391814197968557883853934996507474246108305450343665247465902175711739571211225335155616621090283242679344897499623298373288923243374459978767072676231861508240972021844219528342946975757451674006016576528249942474627920161954368807377174951828873638168151393506948202363880217653462417839905344473674711381898304217580622805533501345625708862220856506406185050792178514902635906650763314784245564843873004321150963291311546434297217553853165581666614634461710411232935323873915336564203890767278148193140465761410030154618656456310898318914338390499174078045588597000503792958422443735940855335704696935685244015200245023676243686193196789962960370087760748534929759008216922994106850732250157104263279869460276040061995734734567974957680602728845439625317551999889800194014955893559474062716142260801139982616328259889402038719765955779497637884677364317802466120391228526215496091525279377577971745318245620930224119834205486530032641038631433430245883845305548112910527572425038976785352900683150389293487408225471570766954598217276062791059780715352224364650550643624506130738984356330181559287891116543682654356850148138717001092088032088669831559058158334529340729174109059384745109890297069176338108653371967958453717450844130589988732810300793239529774392238180627882854723810306729727128638518605052190312282234788557558449988682652456364852744894975992534787986764439464533099643513518418975261581829193578500677972516533876081532846081944185824214296698635782691058995051597656893670086702679049375648681997785078573699084981641922287893420672729326910106130708850806970272806423741268493939028444413286078290477289505251030420110982355582817332514964450077613716634277458588327356141332108959951745946028136820997020922881836589665055143037271967108000576409588156785858954476434134000572239688073669081202086873543138725075131283432837670521776134709819721427023443082635978694281832034696943649804137605104610317927350449897578514525328853885296785270654895234666431577660089529208786083190946631663416062540739239526061375149114893011789806989626217594192008731805291873613401568647223052518949205183087334963107066254766892732790848733871831881222597631265316934278145523478819595900248899055182202819504549136916915459510850876354475897483486356144042772926652427903127845471934796628470845440795000372384216445747520965042810211893494560379611930787107992515907433579597619058265831868122174978481026807609845769212066818235337147007690313692639812114517834440317624970444983529928029593905652685588672232435469515494029531230637415275687776925630314818682800566479526177130101994648711351819310938153196831852862078052945683003735021422133546361288438192373154631905668081426023655538781975899814606883817959081183390345901745440790919797869664109333745845995280029359597226302025076303026084091126342538322161198863896465078147063722464258171671333579102448902827274497022188781856660067828236723523156866825456751866809773873985150466267453073130367842318048700513464960547521628529914140924770260760467914223827059033287008829140846286186074581297245206321267646716184044168136245521726921668747346747896006408392922902112020297093621536818088611191942237050428534108341741687735243911548686005643333212605803306251371464549448238558860171006127976004017054483065155877127843546523442779679955217771197718554575440246995239236061856825561436051744001093110420091347258447922638923450368473836355968532417612174257690333273097787403362042644437793974550821165642809875752303717726104127128087319317118473700784257511274432791571653822767262250880460742266485714873428275923056513166750882677369329389084998550165421643532285303417722139819913011850509492132458548511232177034865698998821437202136582394755701301521100255548228611440340690249010283301489484006778905438743583682613995119952062158491094677102032979324672889000324840821573851438329175472357780620755761271938362342018540639909749699794571183792487109175130892775174805659779009813715612312067084210505730757999991323166979732369530668580869860955747669237212277602466823338729226867395687050193890457162890415854500353422744378877241375028256090621371366731239514256990443733823633714451602844467647773995898338137383502798498900979276734452483871864471619107078317417019266959488439133754247634883102459431603741781110674648271480190194087093100031222305639308218575909249631703420631229301133334553076748661392281673115523097784856597299761602933908979263264542132121583146071011927090726029592452252405869865112261684939130538304658409460750475578016120276200192956603925843174384528750930020222935749938079329858187947559031975485112158521625313290874721147521387594498563801314154569297008030327303389453016245132717566520457685357096540001515094329180296181588061076133915307021397412682290622228019980166241453708499119797906759791833565900744166806398870964816143881613588400521611164396436615004067896146413697426050940454359590296387395487906886121857490255229069929482386434897070961121238937332881712216925933993760704763845730651360190779898981595176560757677424164988098611902925736131854644321197928670886060564245462874887453569699238133394860323499201861599691593772193117731496018048512087571517854005617137776036763791154349604665684360230177211498548673374753791091839108602396832411197077042629659458739457876664770598069333481824198143498885407515195061278410390564959954126554285843013976537872087153359972275337651501308134793352883782829039899060063950386752047717703933808047475961224496807554578987653637726824037146267402523437818711258551243297207939545499924189201743988378959389146522183633091291999830637986445655086868565531749988518638042239573327424911575243229663315119015569979541027758736366059929134295427955008748992315036154764087914133910567890952515622898395963724544255265758228512279866462875802012129623739794229077770478726897983789474303719222908717902164759143003590495924502936882841419772635364391334865278156594024471828776292244334863380947190286484154007117720887673273072600465521790739455251268824952332015731634863004958149315926231150193854216644871786785694232895847318997652497812322052639471117409546303827032458624145852672088855380467153854805177189870416858900792958073760764875094647844231996257115379737141901054540555279817635425977122109276183957438404490617058897901710225166036225772338604118868202714092920226347606028920521977371769080301504485024423395823276840575294925304415255893249758189753925120463584697013896620023046532449238566471467321150725759593754563185642819186242383023757657747324670045570823205303594105696622476494337373396726390357742001500882775714188340176497451521089886734279375933507713621895918095585519770910164851825933793129506704143367404669553717231908036501050597912180709306429992786979921660402299891420857445386683682785472813570067651355393462346201933320789653888434023593838302069459433818864452055815422689978671223368967144184420623457596104280009969165811105829829259589641551044502051390513765870583068434044839006692242700380801755947347339929251202819080846316501005657530250543524418079408251277754892593877242785075508412091503221016397511584919535373014575530993248412124985340668625955908725528348192628167218593258842791223397956177911299225719074389302583759359656096077316330319930513046573886837206362892229666909699053643922419502972124627162213685803078208654840153633090743089305932033042242727768907551351789023508220836176165578063008317141321639945808514533497440042845341726005589457300620756999912862636937051468877796356317631497624082037699667518149573252961888522548552777917768860197091708385043846282467204430602574327178907067276095520362909845969652292098883285388813116539446304147781190735869198225499198223090493745474676199060890677928290173147474753170778768250780903755836961659886614328355180178096768671842568951363115852715614527093231842709783390819988694943406710507133948839770808253886422209465546749883696858930491547001431678415580069761896955862164560868027654192729636950480909725419806197160423465471969827820049861460286160044605078066113035516356939541503275160916408714773553930903777242894580323000396547357950967683811545560810133987771036268735058941020661471848975627724568505069695169319978011536630457541336040652985985347762214181240253726980640780005378290503735363081698347327550505451435751813298072653602516927551399831696000038051727171146440397018972116456562975539030889009319340522139387584667524734117813150176137455873441343236610802863658758273689390341288689184189305994314963411364446984750645657628648125574304530308053404089597645913647626631736470074823993208457763722144700343258111538657648984155034491884312527492289372405667176954074853943827544699897165452068211245019930029590024237414084782237808068240924398806278941154505314788562012053705891342416464512152581766909423267203946787375131725935916106218610900206577709459152147468334857284421682135856452103215585281380356168856816472882283789013051923573689379254828361881796948897689909474391238986318322475108231317134959373924156945014261495143335870018069774818520586219211492768293359689272563266172007387404497167001486526912828266235640671898763642766735207154580185875277032241631646504986066744018829755728971903985239890762941462056626879032462911520119302462192923593231296854186968422035989010577265308027209257152192410025353773480587196731659341462153030910877635974226765398710615505481741031275450742577711436583538509368471193588912553823279209616816523150573917103686440454655187937380545817393562064483303847835277969562441385959169603295719016076980600606750103321024959496333871397180312160447873817624248606353210335313184050772977228225375558012226926311480581916966754195989931879806041120439367820671614946782414512965310432292320825245366594410156994997490850696775003179981888851517200367488626922639270952793456846757328619527737098999961481776562772472539123388523110722813907629141007095877525014343370921405620876350323473873715393934287313859943290911574511986053678609347397846488422746550215799598372477374148914546384096547060219046699460944945972072917990422216068478106283687261843272097538834536468368321508249894722440266837531176358447703371334574135434819180039670734651669524360881632311432628625911238345386397544866894669814144527223120925772751187364076588888435383494790829265795613030505542642540426601427947648024087647805603531800377506162591216910882944746018090226510765425287705219624030080079082022627643363632997976063065784944169833042332388058539650445421258612322102596068104103599839023075001523914321685499668654344195059498093450166604565504640903005376950824193014952358155497860834448842292242959689354848042377860079682006879860714231470453671312364886073380958130838217186040376974004212214701812922419012164778025726197931679046675261791664338975141775858239900492597993558952611520791317729527909841613974765100949173063033839828952346415740050352210542302758172979580073129454924774614678304635990430901355677808637991579582905357905327638569482536798008334329511623897668978657033200370922810620878020652535931702693264083899413559715392418858855790999380939985341732824211506135552895022860038903076058648592460487930257641199656060543754225846473491913331466529634193994625467918501248165357189725615525891825668543225508836017623950340021998676575728243787469418505771109345607331821338681286775240223513795117792627125178636954633753674389731425997482073305162583418471268607303953106588418087608369810564160125176653179962339015485590197926611307859838638201673465327803568891722380597153813353633621867662606564390294387054962033644284314133399528090161761583767211897847542185193339656396980935908292430195169563121253296120905762279574736017328417689429854464480876913598478128702855114441269872356049561514793965040569834373562410759485446862842894860918697014085992104371334930349964558236001866603771690395349949842768687138938625652512330441544082283848590267614264132675807671242010876586724812179780069694074540244366633348113790718395080077010033761466099408472511429556055574393019766680519355764699948430569114200492459269703276641057431148258821619625817584707349073027065918556745657491508733743919074357550846782865025591628019761240162012180929150449254140850422217128856789990498192462100128008211605022987369572154314090130183355483715848862432921687326459047343252893058080233466998020242608817779462118916114739810681064489324239361112476049743052410725487054154055584876971815301357743592577176771378044829444582244933093095832030522468866765936725690701386443338681037499026911906086607405238823927055238553796176708855873916258833187555837807927866423661831032304958195624550538429052903590933291088189555507683910394400703645566146668834418875347442070031715992782959094709938398611232368808720323191908681622837184932472099889671654944095183749433832052578560064196748721290196185190957644935025997115360806370560416303564631176349114460939714007303163356931030720348856088338438477799916388047173033690611862640115900927012575436246203425080929825558202260056862648609075250326430475918299162325930211408867648672856881858889665380796953962744968929921625825557023534640299051669880936815906291964061238125427083769623423014652261777576130608006969963198189780712254244250685153462488701443146595339336896681376085095534881879094971448780942002157835337784722204174957413861731413734852657909434095913141795330007455750988607065163793264433713808181374816340934761920283996508418153076001453186124134887873335368543757260949225891004236100217533401100945150630752809145014796130488159034429253519659575559900832374065947558765571489569890608669824693212235361514413981005278240611809679802804312219565272761205358853345267660344546172233421723350506354996800575211697828067129302068345668840472797237019044095942780151086497373556798177492840002279957501263053447601772796394296863824747909406250516061005956076999224406741717897875900548223725018828893120008756700982185738318771238839706704663347046627880937404628536365179055455843123173883791262414699113691639590655145503907967419527463889573703370710538977927561548705296780172715616192930732394773047958288742908572812979112913245180041044266637856169288481960153016870205063742469525320440584381443438258467409730913278313712059178048377008873141502463437730608177911349284166008880904866724124725891188580213574987068601692101863819554950320853463960822340468415550823012428402536239564131578369988619439394277556340694210620819266546453504562951682881033654642577729552288044190048074160705782044771134360957399651620221936668777520266871405585741015908462401951218773204734298743799797308205918862224939837140951751080585193243794456655490119865591114671629437057325735912436645053607958716647217987422250743451390896114999143470396024102024892095606437885463150535008971043586709466797780448738383172648861729810589813058991157630644386276659017271914532720598122649945930264759419446993624604840989327339482132531314467750007101648964158135555244447218344759660332196583205163284511530680901460991052879798954590670315380623064751469464601486136412149423898513931045656556789342955134222450509724212193078355561468678293343351541745467579224527498446782500097058668659541178176363961398575426564359080822978723275049245402875821594584306022554595521025398661802395883452258176748494243002217352317844346871739921507119450399207290459988951429644261288691954390067631470300540472225323296126181601096539694052946049204977412451805296070018153897112720623125677373872051148106570112543614677075477735726268060323988995410753566151465460283720308084092429456411829718609160286658270484702941879506230196723289203236364188616730185382082084332458867280460226588414639279287021476617299046085060564013774110302904817258435632919943479525199478664281654351394544504096097202454243992825397976405356164144588251814900476043462531699197283012736872876623841425636852257677208571082499571311896883322659873852489975502989393430067980308292696532996699238287638062301584695295920564450653654326355878365717606958642125394963689983531614408101180290437443346408239062924447244960069446266548301493869736510797970446968483572876458089018721949111152472841905330761388675892584297054162536710693306531166006873795994024257416206982440828984801686744089987981048167533440876746756274941764613467587477204706930656065140429443213244062490645139436305011449029885515601722174773703092336587324098270177745212719011484725167990194083132215402048450121372263933865466653914547548917184377816799892007943009181341909914505496668687344411131579226883217888166188784066249508171871955445625833068350151512420281867942577942334926624521326396488846737476942272596626987408168373138450403040252417482875771032032963324048208643906510679159149778283371892608982910439851459355351498304316797038806347797870871454788008370818523618024360830848873663290810542806615161984925074554657361183690105827232550068050210175225296998307299382781171044285934414941451262296809933851659816210350631727188334948834191637180096800515539706624610623632699900214649825772778740578428729973392934210074506005664282270711602494070704431841230462398510098644636579542472959061187752710345928371253400807200749879462034464675333652184948625913694238142287218937976357321642279696817867142010045937061331436296177731324416957049718604634440637967994047631018881196854389101377370862138709768461500198054603826810642316340116508349819293652591037721813679902273299618203392368594048457171010908303411227062252916316128075572710892878701317892605961791133391332511971277619915349812029684244634537488453122914991567052027924123496330058673955699956625699666791631848653483071442917861586752003955338564590800228655110449104647328815275849913461596134814415450183585116351127067491317027354950958542345423009227239534184375628257395382566694278216995868468095459059390919934851441818849984644905139047474733544175680735940961453167770637979200829184984463102434917460486491161551895855009062537515953946470583666491913608466833683295385341291566073615543681591309126872582853420741503729136763695590807905658802141787974319643631834779790433005138759866257174786631255359932968328594346989303526916110209256356349127207472918505165341165453429471522150047304325249026055279377353799012323504287852363083206126554136880210220305547524152031549129635846089112198661320539946310208521842086578322141446669523913989748362923050218986992531515666159303988653859878909214024081819402339897916207405598549742747985788228893692814714792076484698278586072124866597861579831233632940453338325129160228959549161365666524274523339193345450992500131033323662936115744957085711766150488757946277644565296958053958372726415190845060563574493974545524696120639719863149124586129889308199531554623236472632307957145551367368756585567266868445802636578800396040478195709649983506996642629142007631264959043960302222412399083325288398718975154830747032082371515930469881825494811132006942818578595888810067166571613892329161102681932454233925906745327165962509210495186847409549650244066964415443920868614518310242707865266699540498495833417546969682932603868053454815772799755813092573962799614087678245478413551941401197449400776940118565839910065191217448457673302165031743186659947254222670579021430331996738135315864181482815743916268170013087790154862123699507726180530160952257330183054688008740739395632505406491289755194962436903377142414886849586806429620304229147886901600036810323878968570816684395705254421536675839958744060100631068715883153732919918559615515838457378289805556819068117959951000501082289858339321338555777129181927259057169635361267686294012137562627929981242446762204130350873191841462927028998021118740540942696274425612032931781160307873116958544412491841017137204456120242587964695862591706113730420810970862157535709588153284760391363187945734233453191482176680829471934211265109782352018410339568766013210972586107924448738048133888767253413130494505891003139884237983842360328456401571404330546252763613980793790590025210147764424080371009425477971643542122409186129817623898437787031969240208391465418674207735022840198254064080079266734111663526586645862314146647944078274687461248677209298380610305339577396055532032313367057323228652890131125764250247933750937804597262090198306153155162257643338413333471273968692616864445972483609620083088476919122991293522439602076376808592535172583375765358088097385124496864668206152274781057089003600470121015008906860312681745564317279584464794088581139619381039484631200675118796763481378854991244282077496045138097230229837207941595604048674402784870121112845490418296247244506492842151046120940629585796749651471473452873048337924417455460797031638044449156075530718498493304773036633430890509629954953264239366692308394365427739542229149482210350149475044932993176056828948138018895601161181613500694343563073936768102122353292802116868764455099223694310602542275214525405427838316720968428040400644411889726569606521573301873903539582498300751983133186767257988959737963390992341193987193257127282819856677678261387770063593540289213154183871208273867294467588246604327017555860272538629776907500358093994969448247268094579450305775243569472620377198429630534877601891186202756173824966919392902412284517044497269360106017886081298519010626418222868563472597879323310199165189417462327327845271593338612973505632517051376178162672676566520259391108836271837808066738388005154827096554560668434484278740043077588241691000970636007884749009744313895998216528295058617072623163771849527157917868276980101493178745511072131828873127821761042687806109284985063854442303177930402520249006717856179890030690154261592335826493251262860243157982644769954907161609386358023703748366962915368414321032214512623149080486955445162182372716081485110001213934954602126911451181933583481606716788997381342397790738742358553672495427949660927848832107135266261959889724537277665096051090761425100510306417823473636805515852506169722364906745195246954237039099703076802732536206842357817655944208085719145678020088930482023110594060782873318753595992424921802203169546051983439690276741980075244487873441684779171529299685431771526550872020410244098102444746867850958982684929965559240663743782445809217545836712483441993783101524754047808947128458642484308254244287030297716607889093776569736167608526843426111891824547698343765365027929430676834030243302691896637684823486274430014627391049350571207045748971388512610227786883925925138047766209490440519045507279084498848688282730421161504313646097559100820773536590190192960942977028894954852122339888997443800240162221248341787998785026501858441997596283917803967412334247099440127832429748816790815273965830236188138442942761841967061360581079712481615761232734574378717381654993768599546225285226857719559330309680047782098193456642092821188703837748042530007891779403378894072552765444271620516886843812855854199352278277726956010423834852567632672206339901554859239793444535492721543612643384025277455911883664931184751731836817489320141290804551239477846773400975492656955393962196831888296875808607576555749644073651915028013620961802556945304631864012894062768084986322493941357877202865459357556070991750139572158829824371789106393563969734156714786699223581915418059925521558956269058438532273283111147624646701263734423658507096122877281937326855351643352558448991547321663681201960095952802178290154741692988124873213553323129475122426047089193735406558635609077661925057088194633046445729834424459716165634984343908647839945959697627747016741207196144245133753598502950707374879494209448139655007174650065361808778549148109754917826907005480854656391591474891135430567865986999725323290643246422364330968127050002403948268982848040833022723328251729682454851897203805709744506545018567800049673484654977057123070671709471270469879151571781970236668273351076603381410002691885837925993300861994847486743173850558846084982096797145765763871963083209483472223140556963102541217010107890401039683081451353694232269151657997378840279504330082438957250195950865814569554556960051383759225223208683296298317295729451407063499212271917172832366230691307539300963406909754096621423605208438846264618196881078018932651700399934618948821738497063983877709184128619607381411533694370716836908611840390228171150960295854661754225495319466479033228240137302833706368151426826804446791346326799159921194090448149261463077016445086754226001889931760951469970895963869361860378542466670864698810764152182906111304149856224412388244470789942959836162737006031325489598728797749510855563400059018821854632343236514509147392955560347298726506769501484926720898565115852529859279752593100131973576312015994750772674819546394960007700084212708722890233266760307588874791890335301923041809181234564993407112703568683167366306099357733658311091912637946595767982156585991949678881039927314408241204536875752412703860809630400290927303342264428701461956228122298350888248204418493309529579502263154254478165364306723916192488245618015183238267194122483891476532802343155190779657436063137450147375658035889579959220466330390897786796657970644996554248048862735041220046089046734484135596206765156435938524464939858382605964774820091504484351876896449124023869673612722564919014487975996293356026179415628251787980395984474414960646169268129716657598058991468438186487279547057086643489947157306570545261638340549663384853592234561284130602922464047833384772257176195221962450759201680918933378308803681627645720585072805660523218937242868033273019447668717997689818808525140719083851690738343176468032662282481126482501024842849563312670131948907823116620496090676898129269990494724888793797298846938818243243144345002313239089779227458777877782818027721621338268926975944388722380782462634680228526437204659321807034958772177622142871571975453869515725123840503859464302614710696378193857310893480875912226035963586716339733490223683463115457105776971132733317724121821409677776469940260110829921852740504426681183145681954990616353646533165843084963555813702374008542627707305431978134630274788754211315936043278010814908806597495870059103177440146531852207254302474480963567981260190329355557901423475786403449889015578170396841819536416016343018977583766691463228181663265974450301150894079461208872831313014422035450947668821720915037547645358387229925501348016035273533569701255922053962922708610981081610089676167559636566111857233520133571181815815128979048772157087781992384273547512172088105623253457907547744585773143247122057152569959957032132754425538812980463709575128975904259930296783425146086273338635519640813466431920820225202682398931161500497384825886206904660194548735796746796010136993894686420510820504202979009653308109108502620289138445394215485280692116523030047291495352378850605187819849990280954726184618854424360476847175824368463267383646418859278715794974521566901943069398130811575880835764071138015424641854200116991499015957054338459321966524879766209597090524343014731187038256963963203548192804547908589811442549033551502265460162161466138980361060998561228183836723868779459292988490506711361170478314201123301165988021863284784575272098955871802064836223006861142910170834113993461995635086104342704047807202674070111439712453704101893412637419466185478676337719718958889103429805728628859160215796742271016948904737435248446198632193288690964817819954480959154270231134015910522600132866094889313853701526122946616017293533475262667575912562250079167591585529579542578839413507678435134974972788069023638070377126660240706071083161097355621422433051012922760252147815181793928138755312300994211170312512821050301394182421229318615444517111821033930045934944534210965116743878400096920371147758596767012666085922812103979565460472782583349612366049398857185340157904734732168889448440359880318483217041412825195014231602104816223258570572319333557058876084206280723744296326930147108749600078450507540256159313637328070652449809038878388331868918613470002968038068509957876948161275603229410761838225583546041093984361339606064735748866252847783650493466150936395003945486339277680848899153033196569257287745825726246935760333652678305975185062909765534557217546643107828016591255659872948310324545252020604519148224796593487464670854316282545901752990117842066353367487535005424665678462143308190959640640255834728377941450257808189147396388508512818843085189239028428650749716353390672026521673513457641579779584622998022493933964489254774597627236751034215810410961730988488207098958038057361500251648836616447190934843179185667714382515888994518848625800346336604321410404950493404278756530481280033647263306754264687643140453489917726642941484822304565016212401535396239123884613333437324375008633530563031946499286957549603264746533146482666697556339258460312706389597289932964777323513554310117994859354049589501962917300265615500243937454098142305235474346835955085486172985167921719528800816768090383811355380070642699522810249112785526287329557144602639483616578926165414677448419383397760780034108669376981118688086709058269283116277575847664588435869880230439490299763068755596107488977913599082637853225739997834368191972784802205183783585908156935047186456357695647580881382014484369791348315731473658698222993925745218692658351915341077900565825086853125875748762973200641098768272393824829119013638347902516670426078072149522711191733260783484901564423075627742014553877962954445748502354833084978780022586534123239377993559431081170133678734878789882000636575033336257743103838159230218622133506950203084502822341412019620911147501937812314284929605582995658799644976322955667897564772736031001876863243722236791123121754799433683634684011938359596108302389880087743303400156525834264221536371194668988174593647502471466058182428901157036825686417657314892852413468235595873516026216544872997207557443110506497248562516230548065598775766073643865927722872067392811668102638205031039569588856862866079128576331797730638464438596755498129979482543094420051413212272501258553744587594735506039124963156666308964051321254700145500793820387933902840971021808461251082476553118312858799201653103402310124711455736174787172771920129559486230739355041491213853627775559194932190308604232173211810488469275237538789849945416471056524368600197735406020180309944409066818972934172579322429133826128531902343076930508944645070819266616677166621761409950415238200807210111314252044159271265060070970920230166374628574272908941242749050599151651833015021697241276200783350734024499739230704412785203745161764657848866761302076179141365606090174418773723015306313898861459512559673472403320941696310377080334388235151466786264175801781444441621686654036078707352538094441656983430412089584071911193382468540445650998335664764157242616352922486453306550350770901352434721690525677533803639859564415245163923775993182343225784888657217725680558139415326145745991318060968129300599674253014746385846048900920859930004884932139174917020026563285650008368044423533428654950301125584624691303746177612195752433057214906592289020808374768809718911395039796788111345981631209469233459308305189692017213026865860015476973035310324250126241506183210462326947392972572749428550658682576735234882022527295580258093213535250135489130322757135833449268240620239731272308093402544486366153926616247486395821560374609858932194597764001598686070924241366113175941061147255951226565478525708713841251799967605970746818053738167440432208800177158227987658856463517127173094023173279440680531206136300407893340431776834322143571924912283210854554130581725625069804217759134915132079209741904589256211044029303659479567896438320101088306505960960032575647224507062374052061865365329528734935514143130580603705141191143979167749516429590026240297852362812849222593452322253522613088000196715874334261018934870268607622912247058594681191650252830193160786998416535403995512428554038488864921102018648487013876696860813589350417979306191133536793252605975786950190082282240908752866751689077868890699716779259219356110270428741323484584568517996059570736902757044695104721006724618037816953886576167436224488632558256534030851373023045644851773318446626066339891734137956029807415428606772375544558990477548116340478542378187003016167371052938898789651878477994594268216225438654386763436819270052305515384632380846508708904488684351437576268451719244270371665604811180752807375056112435433861529182590803896336117726680675340959765927077844322518941192601470546758345126871746340126078168785084853398883321444344411273352360349390442394694066688737658953369903994693880482515871109320519201982723282963124752276712301690316669773720829037902207236629388341854587608519467121228748432598507324395630041794965577555360113663399239972738859125710074180523807770884325081421412032672099417212053585857546673474443522208815112841800659337475039164523440432493612707816804003748541718889286746313537326074710562541538677739402602598973100277508438283498440329807651929234631655454032456387013204294364384705569205372923420218058026059573324374133241485512929628381725515225532827184215648586080621555067968136889966465798607915067266998058925939637389343809211863064084749766241847516663543701901980181463051493196286925537345823922442294932709256737583872836399752223512856326069426926177608681845347965510613321074816407560304579130203003553568534494394316335094053351395184255848964131842296329656754953459548576468891743129745830423276893853364377645957165468287395733639029305576064082092104322499238121788934311637791630009312287157252550924908693708295095210545089949032133634651774204109252110041880176034916224966225943402192702008318710146759800049648965955058005062674911962994875937147905020062166993125685777110317994858117355685950520788996185321531199301759849893760484796945356100670845260906315587863729241046855931049677843198727658345825195889488304397755809343550176401755221443973892240763010938053406022042111777875218395246385787907923624887250511654416139142343541632614810380708431973619279432409966455101965239556715424505557290403615605970969530918595041283388853906103498113539179976977113378331569095332499083859122798511657537046114861295925368954913329968227538559703414225098543010106219763008887789845038270529798765192687249709859003717855463869045535115079574183348659046499694238056561685181956600162848019105366666518808350180254443113282724977535500658837584762126400378289131060675749076550390864767242511436431140052132692073080658792102151660790549383564265775145978660186303178525137990461038448516786284084417368745841094200840281589422719191883725180508551800471236627283479373407212337654053132537834600370791029113003526555283400067741057423065496759035481444650196412036645700266218060363398735376850844348935032418749852006359740023314154662926934817534027039971067300709062498049031280473176339599626382725582910305851807540357708931534707412929410212485421507975566590368766824060963982946442935008077950013881797095142604955158064278227212280264722494970745294433474052498778901837232321132799758172598532793472772052648999223364104650037027285108651569361177348557554946815097961878468884480263210147407688656900948066859601967350900173769585718569133557157101429687376569013956930223283754211940950935937062966351816026769256649599503148363231481481640867788080877318729682592861256275870308357792028769103189665803169972384971700780872884136330475684275495112091040363345527041352923207390134246134569498311310857828596938737684445678780860808970907764064926371352878195500428720804906318884012819948912647767973652093089657313108445326701639803587223333801422318124690875134123294291855740091997522760717342077506468310710369224339737638719658912957813729849722013399418392303054838863911423875360619609051333048442034434111790196540470297049410601613367722552229798630972912214289558425137109774137066372263899016749219014469646092237705338406434328467906601548758883826253071808080204448993411321243793255932416118841154064215705997166866043386539762157979106230658991218583293312070009600939700058097557530120754251410606083098521089769758298609929622876605972327553070397027013169566831393543625266569779364528737833029457574419477940542979705528279358565025301688449662005347965876067016040623947881780949325271089654121301266085959280716918947713623685472005597880650585041775180722882566156210812849136337221270297149839571687120300288000212351936532375510971750415255620375691799809457912287334448234231013128924460792253576074491965891304623600220827794152579144927317719672168792708984519949379120969475668229224089681523893411350805447821307049718428210442614025816706512724022056882746244055048182898616492429364865614150033980262151375759824842068977462710718845707900463759364309352144399414181412519373729085902285663727977093220798499914186440840145040174240282259693141801690384431281214490019257752515744850268199637557374851317003422022535688156785488690658789206598985412225302570820341295813726190983907797330833666343070688100760927397185200803982765871680553024386913992359036634235223966519204547162693995746518514382364187994998979639184037371262805978041711270150952641153297597483653645221382277864798806344327948163022128320655100676474908953168191462791605390934212045994868194566096442816441586392978376442753149638160741705208655647053629705156997471108476772780281716668312326364072312386244313522712568112471875570918069871625690562328165759654766409106229098941788323353071218242470423881935359375367212392029856485889524794353505979262260755894098102548038102673595949186948064761993208164410114231362028779937291073583975771078556142663808088633913463806061657085391196561524512708897245061726197250152497093201186176385042368797337763993137439907949132067204226647899084089964511268019902643141432664540366147210581639378590876467592771350797660054345383312241767748699931450675115938915450754062300476759534063741200604843919495288522062676086817163524414598046240357317495675771533719675233475475986444568383944103466399899118602351209281956677003299084507224951186822962647479021705299847714198122346661535819858100486180890590922722875158135116883681842695745794487182339373241975824079143545604605032821862435017840863008620645487404610995809007984936343397160267003066294034545545487502290610667531352117524926757916667873091436389449217804572713332393520274465133300877311578597523548680513631879619492774973043558607448047187056948698316846473489786044453799815820027271379378809046087650695413992497207295399768025850942770369514705329945696663410911885197456795545355218872604663324856556375558254398907057532756676464887465621843666886736939010395039991077581386940843201770831217189955002719503738441911746688661777319552876877611328738945867870725223987941430098967641248643167403198402659280701882206268804322428444513384954815508808194257552042417976272131077832193633836168193918239622663585996962047083635089686590720388720135771879062474968595845495583541936055801104393231369020011366424933457636832549531410448679981629027174669723885728752325091676493022560896972941847767448784470662824268314327491896673639928040074215198613330958346840105543858416529045990702520719190628809692194936408765108748669512997678817539805170620757278014094186740431312040394672183801506812116080075034682546125331508747165297186124075491396756341747662102159032053905895866583669250905521987135812782940957725260119562141582991648604758126308853674844156389071164325936371977347904441070658274029815140134048862044602736330776023961558734813634331501388896336031869636483854861465938123238377830509318406575086527174688008292813208154486718763230582982908264205882783937207352104317792839522965881438583731621230545815574326118593937321951050341757438347563551266872876705532806358687684933652735491573544041118126692794030271289258535114260887768336610624733529934957422826148658972440807397855176393685316643863744132603468412543568857215920595325890519468946332682269826262746917961857876310116193323186104497734467292039558696055518416572115655641039294208060094886133074353625237218295811664274346332317129401247898418607499644208473833783525936766171901274222255364007640280841368754515215908890666720802627224982451130719506470681525642286088527541155946914751413175587905358256044951304677715160678432946382241064360342893374485182465426918413709765106373037881862813941462677156301776120820259539765979252814799006275856283143362174185455595735466506878092578020217107812021338269006581935094408459532003601900500108863370835279623826397961438725480943079286285707375670078582935076562731466242591982405145182454747196182371824729182125494133928400443221597460803575543756288051716846454345218206746269573396938760038357484665725941592045696826283976261573731683777832372864982090789111835269808847693028081473371647688213982383299960155991913642548275121126048864151960366146304424672713608742042109704469396405434391978784499689210677988535277541633801022591844586576525482991550134231086664332934519177157888046980005442241776941584361222898208364302003962606288962901251326594650551468381993493118913854867146640346501160605678047385339215920098743878872688674935445332989001511527348501542794123673249831107981224272503291468818743276999668014233419233566717474323158348482417888535912601394725781833235023710629127666403346344562152220700005068962816684853940969892399340170466308001065555261979603482656788680674863464750516277588914076162091048532251985007308430028198281935550040470730321899457950078243909265687739959909705077057955893037596401855606282172177683507025750002043844633634473546037234699008858893345865944037429515042810272533422940040734203968057552809730152707708288277331018409895139176138470311517867583493129854612730495945864052403365662590868185363879774894673917432937779081947125839326686330482706511806489961735464028525505980181859487743623854557454628644924283174592750046943539663500671554048157235243069156324823745948234077259199165178283584916461240428119052108775861998759756653334457338436962329143809608971424242676272452736941626131746703930029804483803060823586582351930015136060376996469565858766439067511010626512423164592412791135689922115885370089274241717509932898202059875941224610123540011276832868278069553018069238089568124155627433134885949816137658207438516875728312091585032643346515695256419450157106323252718038861864329351275823722891328933482632445360860919349172678692388534432753977822387453868938009112080982434520603682088365779282791440987653672068543279652235578600070883879204030595404537630616118822549812148284500761204069814906641371885091909034447032385785947997926078254173873155117633276971524485056141488963706864267005857518258470368145219353528875911570691015955445327164489821133368480105609969234058976570925158809126442286768125830082569154958427113011543251269656826649357679425971389977986668867956854152491699429493103184129007295245047639951566442032431647180333203046075751362651805989100212770872487973357930753565727168223856131308267035552404404519609079560387946149544401127921630518011292660861985642871215577363632483832282588368017965821137807379539367805400509249166881596325754654606947817153523492500693051970267634901313752758080425925862304737185126054079443819287208866103440736379561867353092900935378604445822830075492442867256599681618379588551436518158947080032080067744808468003166921880831650377060683330367548160348097766046991329403240957551759676548579415475866783913671143457378841060474354440402485552270810597475284261049331396829446352316127639715285396700803577877450222592941789892415694589848123327945356283915383436939557548311028082199722483637783443771713603915505773478695894830601889206750645687101460299241051245914715465470600040886435487911382367066964823647114906536057946864863993438742601087345392074016792813923683229867535614805639727530557542218394840799406146642529102167290172796841987325884859230740726880788042898352147862047240497677048373709303926814433604718564647351207894599986631588349053371507450801673857956692950033152462182477773942941228425672871864982064229747878012207033800727329832996661242622564794203536165914233355557453988784361241875333992450904567949285200155444793497048365009822697290741921901798141076330995090258785004355052393753174982360500586256271259013821606952424667959757436395035397376205871294159602460747600592326410899161728728945735065994248561667419414099137328212739470644645001322414679449876946352532238109749722671592198374800685698606824560527907447731840308815185135176684649798740253212785167663896682941804642873360084064829068960008735948475134918137011513300645998365053303122923909665064853599556093654951016971456092274238106837972274102915810058674118806935765637047052666988381282971304251012792040981860018196479625815643817217126522577224247579005619111137139040189259708888972528746341142776142200406764731723005958715394465958583535804159290195232477319535897091735406455946507084135659485090292900501105239185355024710184092704282748070925770008398472114694328237322461576186384598910594813435062612295862929037882558780389358953158798933522922849530764458774666929559078427656285542681272020078205079569666489985385308605196935206033957787818734908420956136566262988488721967370804000594210509484031875642674116584471955151593169374491096852053843695964333110941808606113587688549232134283305438144058798016944684284242804756492392365388730142509759909521213154912878375010728178830052947689293317486411517956042061558520494232559249476447754163183890948728431462086679633045627460006593383946384151801223768450832447934763304719905660488368051789473777027922394246506806291486796689504649254056264111280156395722339303748937733024618089438602963054014785624592667841472811976138954224679545388879912496620053996006046977405087927546872583127176035018247297142188482222488333621323942745220703216726463513951185282624054436321769610015731003589872214524367760638172706257421139952081025484256735394915143736032960736024893546556081935991160824563548652965753204263303944416507338293495011056489602433004422112965461305454549099351692159638315658773666709226840535287993175210536602963784048963863621969708294746174469032661387040587051910481755579979622577658814321473353478364140653598469901458545079657634796657265741560895336997008566197427706953660589943600405913828635844475683924373907398792461088308720838370186155153145254296891788485306754892715377425782644416963943020690880293273623955740437289366350764778512271402951332054021898605916731807006296878226467752649160936896683714696553139760513528641897096689110027776596572929099563404671426827738553423648271663351867018764588164815862700421324410013728644923379206358025454591920164882695849244335577847308473324462018806290404506009252346493023586247371335079494643953355579171977644404028983853224524292277989010466445784577582852089470310416286946406220183157619421201956864995853991255444551732246633665375113205748666974623413347946436983314571806363134787421574814330212292506195968463243029522252299794389261335421608419304022943493190947269323946051829681691364191691318215417359497452891799053364407291246191610370714747726520468843192850773191317963536225166647559617617709340169758566825228444888606267483778557558590517963032222924481229945205775265853582371673349536304697171694538407891678167311359898028791250664201008567009677491853931843183837012176054853771960064063722086094746941896590646719669406868597821860115407082277541743176556866666837317423566966093131321425038408045444332528480128577928817284922989518881131319835874613756460726125897852360907997743798562499909399167203222654073314197520946420196467109422221450301182296295693116933041949906449833471759531724345162153512642954861569483913337403604925072093924932431965769281989051956050987451149026804017163468219896778009877498048894410575187749809763507245522042365306363549225116538428653864335544853790779550353052716577669609042098071684380139215834378739119437486707003677374634015437723808146534112668541757051588295321791900845776465349292737972805261883679640326925926843042380280696478613246586942594016554423969571823903905489229862165718345170164088353944042889007514934887814460877679549387265609470139968037607256066273657338533913849407469096046070265633587131348810476704909994963407292579252329048025159712957823383568892932372880375554115432828263999082051659610199966572392593644078347341580594728013484251827828429968423894497208914894402709830176477564815042184444986544042095598440881613943927641000932923192393656277632281095685565235228057993356999784134845776955645233138095899751727735931385867425414924958960843018558475638872794593448249060462437993550201204126021382760387039992158442384943134215317880415064639794522599451221180025325799688128838917759814622338946716429909510603100355356759821750969714354135500407751096843922614850665556725789858579553795844283003634548541057448879679559025757509691577918201996991604120761121480025760374707485805541246461454506870436345899835205375880821821661149930096946301606541641298148837419948232904535095890561241129351488163445926750975821986738302299370726076102791473579469926597505586155092672944804727836464980077956778074862334231555436411862681014180297575475817866224258406972832361498200520693572371530175385074734899442395988491784832096600737610090128743345480499650785157536822468059122307911309957268935529978775225972860671672794760787544673608401735267797599736346886251606153319608011282346000545092109722092293359240359731531610459016723186829757123920080140008081544572799982413528900032712802570842976946274271081270508271239265511301000547181910949962624463146267066944798443267794620821562217300319030960836146803276294657625890634217673649790402944605852999454870696080088883620536712739393737398157412641894151516434045637395525080714624657330461471202566517993604889459271242215077735510584572715361161014278318729578706813066142492229163351196910236071195272396742025192239273793951062682872296149308837763773129075417844057867775639350816314859439510570811947214780992993472460009622740337684429073265391026494108177650514745982233851766521262966276479426850009327518375047262768032083358354851673324946668237066338738432341484377977265912537812047999626273257211273440473820685598277326520632523301537234356060509893639749851968162362528534207377479325591535614814483045821157937283332875522181582504319826066877755197201429553569330396605413975667523180131888129528391371011201425184895389069275526124461591912789989464694346296236116731424620898169524879116676572677606305722558562754359938607813354560290277900310441409478464050780836114102188117138361500676387157803097931944440701992935988379232790132965237481936498488161666513179701324196126868610269022327911702047231406156676043871586238990375137492677064037082097228598587981727219604837895807556411126561207247897175484226209230091867718869634542285691355858334113259085584895446322135771877712562873983678127016241804714435424492501895429609932469276206864716570923610067845505832855258911493768337365428203315499129923542704431377530893590462888031785571302203973894864405377173799304513202517299654530343268868173632917090245454100097862915751604249729912941277195773410834014064080062939993119952439781712293379846614550342794221229558704258965114502039786899399536278215525669865320122487550756644804413579517279350414755271878714488408827195945642010097417817121785815461973420685633891207032606388647865334461128761000544268316613472760822140861788873498216557695749475079956150510007459090894532965399773072032897261723219666803627223362228610658145738727862556443123610809065490041276961088768111987663289417439913035221037828710905119430004987371271638140384661519510350620897037217851666593918447607880732739322904019907364518425051284810022347377127559199646460458442355914817298426968153863713721633635913172276354632969492426109704518530664184731385430293240497185048225180535984816419966212822230879062458718970751261766214633553035685122406132374257884064453318803405335703083029267080009040199454625678262006747378277057869808315022823551411185416327304827659189878492005516730034982895245015747006773177675563254080085475209880649136217236003780050019866743947960343293081063993995335085507942991092047677134077391777681623781648289353427744576769307671046048137110289992851022874932718736530898309578426313273256311623799590136238166885085661608256155033173316515203880047930384304076320954552429804329574189795080518245505505194718717612782991443330453442674066460240679090916015672255189005080423760971087521174617812824091445205611978152317505766820484308890164243922917914365415183387575679520204307765655044160635493767715371125970176720460082058006468149321397159038273236193993576347397149555269565032913722007996709124642982212550268983415317830910930066702276699484360448001735572177863195837685847000885136994860491849457203369203158258722385069912860976474455843179827932947510717830318690757817724235604564981332228517234415768848734287598060797984115087134341449973454826922290995234164725718057281227871465243378421137613214159877159296113122511916671224298116604338772310943522374111698636963075037372782202462034506275275220687240451045245008007481459742121315016218233783640024187456232807837354392063619411207780174494267076871257376340876383069409911232630098880306437005072557239159400884558432142044231115418902197975314505881771927175838219672144593009508010618870163265611233574285809757415600054588724013149208070893091769214885734071186606751917092382375122154486572542810179591971674511985987035350169597331174176347276609278125398549100769334886011550341712426337299075999848942721668930338073197753363779690047671324438884156108829115983653111690837040787729441318049490746204000163041253850568228112970588948656153287958488338756894937005711236339731298607875081233577350107598936961265234266292130594416674284636757564281754445140704481401831656087228886712483193554099419969654859836836696927270086394722955160006462908116860576418828841430489594484540094199738637628825810679476013735614942306804388769750732891752482699954656284547427830274684707353733286803148784258650192581095584353970528423820719008172203510343304218496564343545202704349585203157200265049003258502291686473568899772057066294979030851246915916602605296271562159811688190446361373061388806295700732484871927081094223128567681391589387344605650518507825268769978384665631601396650338369532862417097146272963562360913087036663158542180719330923064729318880320914820347445470712345254899707932028134803086952872783558522883957811901183357382505779602894765801155058895355811209560044752636158656015259783576167623109929844731474354391200607657006149437389537128954184325736970954863898973746471770437849730280247163391547713916406527587861409292688687929926775784398296867547802325030256966902328953513314341500362757535562450743338731549889742023586434173726737564528975344442974011551060567971275794739398595343083116678433255979521094732406224817905387627902514127688820119047336152611518766730699161595629317204684883775057952058387187645169986288780702321186432443171771436326770444142013839637843773825161084695184361497153924930535052135973706700132927754098208782133991725662475939944702170000093592144637932697850166111213231740057070844009869382263151632563379529372042818441209182337914738772927950056075192063963566993092345467294103968694233475450495511087473521834875400248882329078471599485420971840765251291691993593503260339323429520471105431031544485797714323258020788587668195620441618721371811680978093246222565281651932541125939173956442822400144926118779066263198370364217692954665836123000007927967965945296943613575171431424167347977398740065112376723032677568213009734777472813367561627188389358324209899652960942431107339604985644883408868693880463492270909305853568643425831350244567058829388924180218151484630820986065813426569426048110949683789149038744135215087246038725253079117795152129797476145037380208257612090077536903971073006619483751965141178151773420689366325991057069046797957336873824067624475688315419079571760737915560062731793124622158883772068199075665254301671433848199746602530926829075204191229998548628253136931890124410677044235782581016982995944642090998474197636928934595155508988765792965564125855824066601992916733542027424780170363241518039886088648692555127251702151776601847147205888144959744757541759783621248837564643726543769951404839155308277425511418475742910760143428396359008876142409845356333449427697894681148061810878314351235257724628214561517518580947977406842475433016827020243372320569054302621715882301471011264205617663132889524498406434399359544095933871002721770254098124249004073132106642636273043924217932774814193055746718092695426616526294023070353179603763123114261674675078550911896565918889279515959165882427667218868502218224677573224219487075972370950153173615004330126208748428621098138840783654446506896776039870187478942784620237214396201319021366742859820990988801171304662096272724637301504300953135371156702548416373236207610008566485007755308785222105541910800515870048559090994497221846985613648263243895171580724977999291096067492894305204517066989098194023793407984348118966625586837817335139124668058485057986746022394588621530627868244685587680976632695349923830265059999540976747125479430213156820297525746608883519856377152638099547674585982975710813682076530572475021422717967738239712651458458840090733327279362855291621661709857374215390691907944853281659422746951061835986932897623416337658698439206501979661906735417617696765177954670735761597670915897232334361269859864352341076318166234080448275981367964572209710297481876234435523522762749540389616392863084037643640942354850298792910889417141364960062446577007918710893230733521228401352735741640060428515777342122451401600914662530730999581638124638583208762006224322002206722188329603674542046517918067350661390226956821897651403783122563136368326158044327293730153397350683951807227652585683592392263269953952626047344702156774390180673829560027689242701361185928303941726886926052020973719027052829523842321861539416964491096749817662905652103226944713011954218636051234732789957152333451843177196725268313242827667963567286737975701827709289984786140148140458684177354470362905682583335155320249300616016844094119341845065891586412714313878560234010716524827180896343429920502383366957237950265203555895200766767626660605411592472307726405675968621795980979952358133226844102258323261536994495608496352974891245963260624686651411389059613511426643153748626485420614929788522458679475052231705919960343200012674788273986022624539842809536257566742060393673145689984727333430625677904129812442016666772619244055024731382206102412431265894845802246215979633271183210552592851013957223598922650367346381709816718301174197133322798111424476264228084257956667088504632663712355581154699126479866823959538279836452003921548654610599985290374633066651455156552004808887073571047384845087526930337045757286716555521082060499002544148727134649532653236716195201547709930670561251969953696495646276522960041813827026969328894617645510256512222913715541688104748825605023456288685157305236455727272583316071894655115291733106241803583564694402631444691488335188156041331990727743892557738466223889618336473378739870935686395943391628164574204244163991045321140772999033920525111254363876802173611352072947156861891859260009923296640252582719974203108698773985942779085959357140069821385812318659032977123360893138973572434430388908960296321814416647478102166004383351324832803430362825971272341144770111256011875098851933497391585781799386546707676314542294721472723712881679045683822210248996994820991990289129955884635007835753095854575683183105218001602472663356089693729608502785865700397378673890664499880960324402731899238147045319269619351106042091340960955237817154068585922543128735317682045042586539223666067228533664790327586976900100773529455892119641517424677252228223117600226500032875719952302593804209489073116661192989469569354336475094954141527767392722278163528771399738582813741892704811636444316422482510722571205249171202502501823514835020973566697016487892148427795684210426999399967815859945813387519719234889907542959989103940505194453466370262273066413834390459430652746912422940442660194910194752010100999566459514455094961287349835248468762299302802730453525089231785100056055013405986429800885166381199720181103932471093652267647426168396704333288235653557038618956581102658514213592502610763394066214125849691852142286832524974123802018763826708133364371985988677485713212954440866637053282733340289160195152587476537305755199905687894535444279637098036146659133993030593606915222049272369202170462069496937875715820132861717123022453755660496747835929756885588679937412088185154352660228664988712516607299231146725765819482859767809450892745203372159267369921903036397962901568884462080007253708251726123836977929530773926061577791531559277542825681784778617758962285013703150535559126890668737572478814115930775546685949853238261480801055529772582463599527632131416549421928161018812223163184149000188573403393893739438957918132388477246072607504897383423879980158889769530411855649604444340685246474439197806154504994215864428975443700403063969282301872377767393311748501760004454307858126452514533463813174503381233149959081026296117506773842957231668594555589463098963049454113405587573343841976232899331379222774795997625132916417681551929716050675776620940125888613758871613986877302774060485226795506939468087249310980850821571510333910003224705380512464850924811236160065148709393508814915263178363611412731770863866211110531774339417682642851410416327836377527837761198903011346217606718053824369943379376735107654391334911947898987036320129493352495690966272955730678540267687563366484129396773954997501055408952114412650763772787119356796526137862291257577840630280604851863611582091481983506102651572466800532491720681741329400012803279825571920375020799780596344100703243883752357089481751160090727629206897584879857521077836938019736196844533571118655854136518605074976591282653573857241254248675537122913809540988793415359709918869077069364404513067560825490976335865308477760627067923221009658335636996505602938731737991807792847250124792212202065075882199235319492642014000728317891333213374147418943422567967856616514982934120221074313996984383247601559860626354570518621412623089516052031978762482326395264719989410700826923631925585265048496257838964582607425611777716823543055343605875808731572482752572152878725092736112731979214447344512062200104925081551007712937364792281957414411295367403797954084278300110913261225347435888099461695236444468627588015590175118853317018792583455472399811823587512516503104494789561230056576847225620758268747664368957310394753424231880285953552998828470786199249371353126961412954402514176317407814489644534577879053502157394055189598320520124136194999123236890708020029267331776678677748531752602086329108321300144332594797358344146223511780218692847872285408787080501090839264065606177591412791881741180664815753209445915476208687305354414444038006712218057313160623901605541924698402360802424013334117400554995778671747075887562806146976192494999221526341743123074232515511367091917743767626338815377633964969489895539766436010789227889784509293607551712717415489342809991253663704262703783659976496177473832170194837318676967693231930136625263263170096566257218745634576676327794002789746563083520719027561421774033408436381507213000434005683962564860765333749243781661579883792774481756890368300321000979564439890577272232936693025532323668975930520647565033488468159114401103455464561595407880642413779684098605925236968284952189351587108550837633068765086187209090685582250844413264206323443311110508928046766381458116092915552536809891561360789457645221990929745901286531726840302880888598319346143701058085916153284588454198135461984631579118420293045184809894177571828849486074056281725383265498581236647865034490071864373903787771681126971195158083263428385599938751638768168406965862808688719857066405619585416021568154850439604054261904955628183344849094918984612559614326695007281856042428095460656088253044261085236831182271727717664258139391098655007171696236041067362138719884484985346174782059037021421828942335393110894814505477745635443189702912069021869684126271008419211055879576952793614650859277061699503758405207682226107693890891918686332097198182598231769188034297975943730450178490642511149322938793471154907497679118619912269333859373494028212219161425613510464550727233114224837917752356352653274867086088829682484818838843628255370032573881553226220211756397720917744081033484953528478662215285980963066326635845710798886519497162638343690180444630046156423778306858844652617291130806147426265012671536033489143152792860532852807211653084871699834939288322373588365100553643128107627437548903911183587406683804254989053290917611953469298677797355118338082548170923664224940662712066624529055237334760504667658137227486912505887135062503042417348254341953169321380593778492555850621729721396514758143002373317861843404648448117903510379112936069673129566425175847358277409190634383027787729670276183137254058717962380897783260365165508541806272522426102893758855412970328390660733591291404325767193333480608833662178336400327397132455294773250669012272031355599988563249593996486004982018973533101956427763180518223463319494582009672421203484439374578131939625433482917357336114327401856364090196604068947558803437987943288561286019660750174358435722275869364397542341654978671101537065025171165625064193713421711493739609701398943544276214876915136122963429695609270679335294622143171073798194165571734876345765147716205454151286784116479385754877564633683025281993968033530000717104775690562475139791034085494588348618340254886233831839561398779475837597917849824190417291390348083038037152654133511846869943693064748997577893492645708261536033275046641914998797457886523515763996157051888430356427459428118024757419420794410636194180308882603864131823028732049995885978734644146866768478643747987605608112643894642335774265827302875580697904010742406399328565043656503098628066118413210495605749887535109073817492986764162876829890968197057211134423866744683258008114078170866920551868033662742021982224372260128697450115683171076935592196593602809169640309765615279220986329317850152509694039848281714292843432674445989082644728355816188054538041753951588221157331316269721383623820891299718616633812566538522111139155309408060283528909943323892688345425246504528101159895325484884717367884792209754142342344673280270084448577033396221769124910794759379679152798170760623143809895727917979016856563252434704984371387888279593596805831338152974776733388852349234713326058684388695431808639991958481611456095480603196018763224490521977242467526623027481163942898798006230233636689018732776207393879123984759865907960491040525003042076965899816246231052450865247600419225933544462185316933330422446265076582377636655160047099142937933621899480715213585423595739802081284889788946231928616622606480086092352707093896181828467472567707219179500825045579014153267031606916713585881768266598335323443933233455208855185237821812125566253439162828897776997196759206845103954895008313286964976721122259504267244795490205351690168876533062550271326667966725732977885395827146439642127016977319703316656874612831782501545805349937409634866476301362673413868655376678428919556936267209543156567143015072784594700854467507673512327935453853090612524622362675216019068778705114718024187503397246078690757503931465521327181004352020848284037471271518832222753227974426640093729601879281694820791937136340634655312844732550610083233862558916476625529384987314133695338747102773457938152559722499904896218701427287266684687659180772645762746649482037808633508978650125621753600763354386594564924357201598195397354287299354721840959917398516890177314301403240578488713962933163996555710783025960474848031600326928614576252107709161427621848419448482667511956689822468234239476501776854316358116878782413579878197872367014603811551151022291659030051812880264646597673293695107577395327612945935332395098983430656496299747964002756139632614840597754464190993003476875173185082621175332729565649855649940411124321425086962901501499449411287440888903838686333316650557858297391524789531556214332720793136915684788434095345738064191917345935333429078985383149181718824060572007588169819830105724572357942328905758943526279518131393637638317980171692745323302445766365267860349793140712382014894070980616678143455546238066534987301942568306224629984702779867455922777576596375216974967305177926189585464161786494075430652367515803268242865579602296651272085278706247618307027785535519276982417889371655333770606656823429407241544601437419010577050505978605679581808947591721678110059311116749346971676625390831188375956795126929685809193431039674780848967368814251095698729588944250212084152027526209865411989895221084421617507359148132156658620376572260417446485569670493215340939580286927869561609195316622649813332646625092702219456673058639764574622906869769152261577046601682714982848090594344372378992480317105811985228322385638039726895475776391660704448275378657802379620352244622739414021765327875578964288283329634034996723008412826818017303070002902497548812280631901301201618267131348082911155540714779650914583116847198073106060766657457133249028201038289181038711960479997558550373817730959317781727143617922456173307225738241870099657001599256450042155862577198266947874885194023318445084320809556045772354418774727286853278806489681427040687268457264162051269442237559215203421181612365349299182011762624384884307210100510374616060347549886273384092321859555247326092473551469572507781525948769095784724405355782707361352982808596089025911215364812374938236769437087275517899568756732000982475670640419435425007259085868348213324170269626933260395090663538550173869508104669539575603277783367693447730596436589349736153508306443365879047856461213454697643527356039058529159079465234115567442576917121204075066985576030403059979672882258795770796718420874631521549778332863552526625128278313822780647102580358513353625866872114923561639214729777539925901105773908700014801379893676297820946196428659935888873274666653056131361441176584447822997915281032310172204245168461755797416361441496715999049645475786073665512292908707832180883128636816427797916192577144632745117297057328405421729706950334781215025524467286799977016477531980749655816137097240136633181642767746401413563733099501721872387012858370520369376111715929499078876394309307654129054243019891701331858372114846711659867841503013308787472849707969823410743195031126404963872359409035131823913338818658414021255069633825515174405412768683296642757054658413488919686642684743208705436411229412454957061703163541560993531873775366777976814753868187979705950254890045844349684466068385591942892862538509487032886996724492266683228861194306313627759376231472226129180478478915888020174433618194492326886488962783787054897819143234086312682257315867555686371409593172826400409054240311432223082977300419920821503107859425793242272511561406989649557736815077143546581489943367064061353089614995514246185031887712351705855856250533127846643458423694938509264345485951116931513570451079501442811769752910937680484782017308421567253415251978387930737004469803793963357924955609389318826547830397694084405633283885773432227226594074443409536996644330614208902786794915105828476271238788596016906939096224198834809580310741378717216312665707721089007065447206050540510319949011175310860664901295103503795255640078022633869008503325757756988250988127588043563516540175548652597081604345339864782242685924281296137880982811119305506079157072505487313512360480204804832596214721549436995726939218956288297220854308962605622549219120720996460648038794434689473665904431466594490900695438171769836239460266616057675798364423541910666934424340219235833202382246380808772358855073183207278203047095534742704028282742749279084351067550248389023784488804216591477260193935287481554201811807332498160161791857816847825407753208234012513346079156539141850173348424883300489206890553712937486811103858383599572774624708437757404227939771863256021921123301336415374915145942583435824266239188840899120504479030137651524973205620807857229666783917238761864656634790468149684808310983090951912767527056690176480057083038439805068988180254410070519335655472072992339662786386897490643682695530704950363454940377570689753170140447158083848329024536240769966342015304978573820768682003683040289462637117280458157561674312359392739814984969002086948738074653081213643773096823115977528376655708062280440569993314075606291930976830296772494223170285183900448550745687314948404874706288023660988193877180295239420845583692525088397758636137489079705473498931805964109414545910499499120819194812988124394081732173860500574000939514908461945290791026639809852932117749653142287823903139240962532736658804236637032428959944357682420580529630015775398458268847833144141123978706700841229879062548753228817833701590905162265856084002675971249435951265126552536490484652172830251679708502379536265817607710635289585566144320832417482883940944770317084043669360487054318838311911508773471576945198483436060105706518748899601002480391924102305140040093087352593631513992387568794290356580772796714476908404428231079366369227489724647940756542770020604913533229443941470753613216418600641829689253528379161808662213498378570108499217061486172092499705232308008121151788077814497119413649234820709050236366998491698872345332093697508316901437640852235715744112738751659502332226338421526039003323259628268028706630705616036745271165388953116253473356222319870629332036166502680454507661478787918339646655908998291921083423571606062951656052242381092333016509724936208582714505372472120604541867583716771772676649828962062966232149761776420183329144396912218682068789930146152313218205012737368146396188854516919262973974605313122125919239774884044718586103443708882148796457180643876103974428389578024613521880879959392360203846569141073826426495877427625588104775096802898278799231185686117743891614187054459355315505688551250091695809927773425794787083484601974616867001504822426251197251888504779923676276786190120951649220275075504112882278255645442723143926832598549926781886165456322394216056063136912084718757146768020639769616073870254269572693889816635202367394137859439106740459077579022070928016013904522162610754135915785128895440285890899002557515869208251764730852814689691985995140408257283721104213674235091346168843121083240481626490867134209461144327779638943515422384265425096527672684331138613222898449406430577303347158546687380528875317575145029815191311568045292446530801642229648702304024889519543555606748302533902613500785128336653244515304843271238302712617119513600896230853123724901968497588863780255838240218180366845034335824227396429739883719222308371279701938857917630151922102585469191146428613765367371438386335655208909551377647978511232663534658081764752828020601324519275104534854524696676926711513006636797709709339550046273389687381834414682308530324824426421291692140643682264276484734062699432868297726189856069287631866055577773923778895237807211157854840181877395773977138880663487342495165983143872506928710865933754930246699935382251763776666878420575088373059450389211614385439277288134711349045081452863228866900269394859176386786197454269592279673078756133617908003573273247516943588249587352823047262387464509648540148527126849389695159439315612246398579404103583923639959323341059272941946590076250730813613389732329008640564804336580488857035657171392135068582105122644092835166676329375478437312883357306773310359096073103723987152926814929388722369567685070879839736994529249626217609925481705205130086960672467023403851375448565076451981172223067206547757850040505735141352308466731595163047168060361910590023038982205343227170728942250252526635376982307253416491760781342444553247262937705930452818273565508661523842601222147625110022235705096604661291853906996290176912652186743142434959505281363303786106288566856504671293740163439651892823305066927006229986578383961265916618616910146942987544158551499371767699912863908162749707623502776391878967153304015339844133845292616376663340761208529559814645713074689205890482469859311494390226100876018968616574951892024308441960978955466308371816646200439133946765739248380324446120238023518063877046335239108072626309213727247136812540870106230370582125393793865675508095428413597517889682681938394633772778188673898118110423533370301604773201459988370464497906579613983868469212446717448506798978795146222289788964013591621008123465902794307634235766812205986460308937087390476138732538254195913139121736411236345392653072250883753089702489456995494828673295917429798036848518781321632066755667461058271063181829774689334110623394679935830817566867137641090895698853570746137571747278455299680255107862666034018671469979034998492194963124695538319872982580469723290943544697962028494059658533541031494840034364487088117642258045350161890059653014355285699249184282923888201826049987390041172627708548363532247189827409404783485224818806293238633337660731106697976345795265072513233442406020971263147321233790513777308650400723729052308680808540213488299831124464277576472769295454555562035056484586075752587151196568490138073024027085032003861962352559764883703439611155504086795546102496993946649960800869602573204387649006658361947941039159003346174461490020969422053527013319560820853008826089383108611530832903651905495092498364366453700317947686964012460736623166406013084959482077610112660856142654099993443631860054641297179225607149978833729974697144374380091509524187761531569378980730949999116577191800566486938766873399284202694715278194334245985989007191988434503445051957469173315249955715239881370094206519819328474395873918331602786523746319530156023724877760678781471160575905011910961122510260092204779807731533026950325939027967771582388847975523675961906146609522253627072164312105886049516674921449806679387011037713586722724473233956641852131142413323730395744456540227776806611755465964916252627374390878939523635554689355628079176946781463505835976620112809254490535805758427325763330348182839894821748435587493545890584281612697140871078784886869106623691662010758078163833553737499265794574719071981263768051685252159076721760611230013839899616868853151673987930868741845131322736261805285525247975628722554093137787739777282003241742580374665297163065795802097784510575450036563747556306341147016787020703388704192888891292683848376372465888368673300304048822631195398900133590635006915176584651405006356593937953476106879168562834220501034191240473365497104957628950377302951341092499661096805875434621227880690682917895791153040906863415930082481130542900319982096275446791684516140707709058422600583204748030911121198406482041491748996400013800234963441832604756508509273557548638172014384288405707537378429839887021201329656302652343205803738373613639274145060248589997267253009981959918466150208412125319108408816567857836962138584875451736534654675656177212709049412688256962170545148400062790138565102246179493296905719518443258882810739641169960642075577431039363631200786115355525214731955744889040645410442950218284146151900335724764780044967596631850576684480439081601242866332814985164019908602800859343006909642219547952271818556045469070375913234949950089658779823692760879348387151951290978916286160392977722048708310929746986062401492814203066191478337348713658826172944931379956366346141175675788014725001342543627635389839836165907790309400151374151924694671954673093868349126415411469724807557064654809915055908845861276310995223975831183579209920025369942729585599167291796546942325699857492539201200741269015141458607613566914983991484729423086335105530517264439628277349355355821940384194355893115668824733214997584940344076056968547020389125701888508342252210244477370901108643080548410364765318039982376254059963632271550845275371748948897419475605590467655501052980371703252444299670243625611421168752486134369910780373907171566912199891040331862175928148507533299037351317743213700598172987359495697314978657333575995034736115959280613414053211282496902745159277943045520964076237829139487602644220181892795627657819238004878627421395014077176223780150675169440615712728908260678213684469421077527863950976773542955071246224974295408567479451773098264696397862001955680607194137612924738269690680149336938920566113110999135747145178940490660570295599337480844483613392488315168807479773209276374810820240404604573508956885222994627110874295688775438871540763964205258403015579446115035165041245612528649705345799913647769786901394567695618789777679608104463119741452441393140453527631939098245225082256590995279989752344581627731749791793300898570032211500014232624139382260539723505542621002368575397473926002579630709213540203966574742136912197007795674083359413395039098491446839161586082188666726828968173870353780573117994571391920831308595677536294487472132779187178007534049608607930951188235935859005293275943831609606569598165759217126634354150606097469752360442989374075815010804270860713900166584966914903898773610933176592830085888152184872945849651649522177466238456194541016359434332444852949500742673982988233933403753156224306563773546235524061824061357848907572270935171275172774671604810983067088102729009037894680923523186433247920867304148603001565118100755984451351399612864584137604258603162554992087007996711527692569945343078670293849264299400180065255429627521115344401432197656780318320485266267509221009658888902415758048562443627468621402980818740376901037526860207844339404283255995374308343325093337111973819588957369121902421557572634140124242976118926862456842678716352079722481111056998978859607119525603815498843779220808881013135562457422064595618685133852518823883204026625864508428014852463538634200378550754710146901283858495318892023195197064280912892159493692567384430435204632288645156457890345189606627440198688034223000581388454360375943506893237327047076845996377460825146070393373893748672328745364437320759139851102548756785114948199280858722606313141978079098949451238201640921866786460343542699283789496845404938081673357320821244801554398032221469729235929364971153623581781290380932846300665159718492616156081397533029814865004675199065550075390157609635208929564408500040708818796781192181480403565038690304971344372174233938993253915243639719793293645198712555219187279439810448235069709400162092526557955146624388987765965961708629040120862442797057143990531025961388838084021934113480281552799547735011914424855923278671094439355865305758421371731880844739021597758043520515104443826614552853111228648120794131524653790358890242467991648718348072638795574029072086766836461541345530261235099362898709142226367491480130301247829705049298843897562364937523910291544216737873146148560113142184403175703509530428783700071364005423889477885107134931676328299335468580303601290010974915408054798979798099955153994887359972810386136861057573823735363752188706940815572434820848612314800195679663591389073498462389014050354110465945784766028249180008946150734259470220587014538370452315997724912814799192586556496608448478337681377114330924254578749794511495073231305050442973487688004411017018292155855739287485078896748742222479322382554126708464238957355225697818045407797813799027196821815027047304417539111662673438632067333200037632598798798615683781453625159319990921122559567332535772221388138171954878810139917602270018358449021585862887267604254695471775834974717542601258709610095310658346798505988403010534815001627786801703175686065719489682877077544852791856427866554702449729979781755249551227284590511494630577248558256499825303255884100922400990112630779097768015555420903751777339871104962223016370417091437525242904315051783281569013127903672475013711808673504414231803946918541138803991913234079589315203575244336290272300799550390696063450906579119056148639964027303196896064800159081158391171063739783312121463510165972583626939951142212866013801150767774704116331973591553351041552874280316576666662575840011542184228910894622365987517159323041135721340279681683484094186299189716731138152086334300142799216681498026580505991086243114652941473502681099654087742319487487957413649841270458459801280745922457172574958473714636985046423721327663051496991991081347065847617182818539410875169849275997197509851439039739501256236852960697915371011041380139850008660320452032323138301326984966135422494173067797838300587857731799444486089262658320980837865550977688944293069776779031362042412878845472689461698298439096056932250034225913757944677560666087751925911462903631684117210850111732363645392309632293214249448465328891500211733365193931268234750678464466903216249997543719540826077612173106339813249831341762859650599361442215307694558119100936554991013732864198404329073967639419368607894011852550194564980589689642595826670909236224877822543505111711383212605711392664517205314011343100356677865273537977854818815692378945131934523099798249983139242602654822274316671095319086666368737957225386140049732301677779634781152670659545174006333592732993293483967624004071476855907323380638609528274842905576409669843298071873664318416878141825485570830589808082273171743719303351121545871032233350375258783872681214325575794443606289176562110454115390639203824894218006732086069552391896476655000990114820845751948285161388092904714260939829351408523729641234877905547852732975179682929236519422104224807747755521510843199780033313903354630404303704719996726688270027902583674897625213910002845042335595289174299860345028443854240844326870743723314361562025387194856033267618278704053122764703590084075156756814777820986864367677099221491678497530014168487062380072954215276177293832087403525021345215739460228754992827730184291542368454923197934543668919365654251591386942330764888152259641117504123005620846562061589268746253019785667067524082646639143023848681784224997967315924998060599801147027283970851162244718105427506926029071147200091170632443216564218118274990701472576784126145305981205412713312407076787458638256240662150315234934495298799791165382651358908030978118822244661095834747532495924962813948298417493372901633966004624605024779017306580273633893432166379470497865160398913103497808200357069367416004115721615877806013362315868688939232843534835332067082931397262464792662850805829377995238050846722734280796369149608519838640758732762946522950224946720941425639570882215962002744126968934195054628540931475898236106603701771614397147154604984541809937269244235861217846289632959627602375684298879057968525790590720203814872134510666980127945765646360258309683184114213405690656196555598636834568044965891943143935685304458486873815851739150479974991216254112907064986283616596475344714314033380273255583871210457671845640132488776841432596360900435326988029305702445016773793602935552207118098451803712974708671177443854019600834169424267612599804803220709813864049316703725092273089340125436178306723040701997895549531749186543407849778053141905556851454234833675954238024469391290912561274683446086170351830642199532864613869289983997640945953334516431675345027981750091534033145694513271040461588945554792104944990522975398261877499729844696220711618893954009035369356945912389290618173181490122056465486829539002705955311667751747344591368596495062811288283927800275765168617674720581203000045357777881077974942259574791380563714264080189312278069608962729828550800074776007502336192886608582879695465372622545980704446452310663779789092101780560632302282733356534780777439639583794708504451787702028948233371262385722930897241132474131571064817504724215087946737615787841055310783025218406412262926272878541563067707711331067660743291079970260741756180497428239238457618935502659808920684709609968298875486792862302491096919049202810345854984583505218739958111433036019979144894787905685614995831841837517694761490137612745344765797252887783669166383623950552598508599787563863790576370361961488476563250576788377578989950600807110327310430274614140641490061570970157932638151213050661085092808454267318640478997844600755744952665964877490798670228045331625537208258598341534501894073884775422178435817213203265890941402579998450189883078117553500828736526750128200184860388223632036229162951967720264875953474276683852047807239316682980593118809847066542034209023859609363729606760605882625185594305439075849774129167878805477563784022681349791932887617430702351349120172555549940198989257867797535247588806712492242220305324171955944071213482144500418675832554376611384550059454439582407734322340930797115535460113125872508564301192740851798803430170403145421041392664054006599508297390592473861960906885756674260531900311667041611700726511008837144382519955528292782164883752467493917105123916243639953445205237337396583919297260600560453913300628607401945320858588010114602896751310276648705292067248951086527748892248830879929312954012324157481780603822090575829429923167397765754652193933289052890648973766364026292103066865448464411656604582714723633040678420611257968662619600604215324034767819968699149990812032653339944577353460297344989328128424388126044311160433973300046189733290290850618225977543954477644992710830606738099176017818962856280668552526345696211107471026268188005714045317479065666939619851989395582494014689833658190443044782807586254203776282634100376538321748632237041854974586508710818831145964979477195412290208137141122125372321033240802191164595096318413624620918660546509627008906459194761583983597876331117980818608470821731789042668605348603402946284852423656992927861074202644691056258592595246662948813650314158545853323240501602826998277290546588096139293574442044611228958398940168029447307717096632336371543890301964347487990390628126923388577469565612898309151276865382613772856477105658033797629629839376164065276456609923127567883388525253654330565206008847184229574105501829656212557564612809499461846121369135137908942044493081632919384933213182981304503871246575642331417155105726951221129369806272773876825738061366302454262783493520207229325093849482266937821527750389483058558050415586231639996717715792557973037948926869154110294815020213464938383079191224848813320930839584811746325791560667589495140480587134080140015100467948900588875647422877032444346788198744720001122914547868611052241926220911039119243095396880423007451553928499494998725942350659582206029078057562600668929011844164150031415598796773384740433207988293909431471323197976197154522940981936954153214590699829777183828331524553398251839804193179416001379869501045206433924535955703979826800770522894958583706618888588767811329718923891965453281813835405544574560996971906781771594946243083545720369207190243049729018645634518418771067576937809446633714805011324510693069652537731577306418962114308243063739601507239973959761619152996596186802851333563043737191761828783221603175111763292976377823736067620256876514456610438854877917093373838494873482707307156124863090877444241718211987180691872945162097464185098115123930365230813912852020626567144050711646089765197221382171551297941070901059214616480804234448815485985565929112487650540892508336054415742850663465281295174746322880850809405642355579326464005418761959298646040750297981332570483586933127220511932686787735465803933016570324396452877559422544819942490626208407293405903757133317400433181271541318720142446964850439143249016293095570612504115794915082395738452295248144053060064390613291807483663848534833027391261013348153322152756147496240473678725572233086987088796749914456951425999495033714814249007974906731246371451462582388810813800142846464958047835858031298768733363653556080305266773710857249156464215093948835602634738402780829193180521357005413596713401766348660261834483413748771159492492542414430176537814355865162414943186823147330715027755091738943355291071580172630316364778662093632107702174490303399406942066132522796002294260827293554302070499213252669546768705884288887572317250726106310416474866703351436013406497148323728432208611815112468221462503526072384990367081901657145479823576545238145365338875700055139034040006419567157016115674434443512613495340575513349499726632668796821411186873743285737840552338294128700468681004943657107337769348411640348256365882611259397372667574215977710648651183773718690417545875962910025499253689101653294177634364074639083458903171504495388261319351843783342124329677042468630127277295883410107786141732171010809313358153682862967867524125590100320525404587915525708240502040082518900229600482886643572329700798698675183923670288811732253832310527425901797317002918069330513907342071082878396655318142319715112267610497331032944865896242444966595448418316591371725486530866311746927070318812996021789560660716807457237643079585847540792652149777334159268658607158575893716074823729662199936206560081342951016402707930520488128975693407260563788329289350152359280513052551056233254163356434159888406287681141109260868881730002150890376061623954027395909885030820957611813717546449721610162051027196542320721622206122927125451108999953044412528723053990121388506892914529859432381270222768102980342309487021842124741377888806635292891318911045527212177353772956878453925815430230474369635759165470742818033868367774896713124510456365604511120156253446441855067819431864446163330178936453482156527056151246270602350172556245551038503065747688077955269923040714771156584490932993838431595252466461829167992795467767621026741146685773582740257947737612402819931336513936182035754332358882726175603059101022793408216574345479585697404696297692149931833790566242898357874856055388921532508199318356461280854361600024696062867205470720401658376928282078152838612946139206187469919875962237977531783195163572246793707389828588259602197534347096458000960857415440892292072324518910676518699783641062035350905974810781736317469984385813444618792337196439903448928716111005119282873966279726597857245968421444483095636663822442788019190355528288391398927007455734315495825938800057552685604080520542773804776236434801466112474548436735126821697550857493713799739030717453515807533472011770405002600124815023350012802663535879327501595173653815434965789487300260543764654037804955955855451656875949656074952540368151944677055353277367281708465577049028154856202990412293153479204658851123872246310096546186304566758307247464278751001094769130779209744503386620279364814443435746603576756075080957770921935812906906287130952306349374959985566894388238012434649881770219903310672339135248509212949828715992295523348991450197949122297525939639696315152746272500595613698868478716485658079604829714949291243922831664800235566799996761578640291762236415762790302666264781736799653651365094973249897762842771942469340704099598237354818034137775467724271375145784872834898935895806046476584354114987870078994665882785512317251329850747387470802377802137926353049690191332168561150453082168988415666381593998214609419237404206450171993735456419070153223058534170115725973735582028029485478509021849495523381347126561952685228089233657146543651427950347074361524496221904628415831947997952268595737010949047739652813536815295595080542283779650598766440145767412056976694991278123872321212385551320884759946428082233478471540115505195150713632501987160676069493915734910361475274409748234510537062142336296125806974156435261005296182566797162046488562907412771350577659845317509885702305364629768913066742773893231043076343427205719493892144176509368527530885264649922120417299778764245040098882140303054933323460004376220259677776054617938965646424945367207037718263381381120281535710276723527474145556456020764651508396315740003053482906348111931495445290156395134006954554053613948439800258190752415612934024632670179613140023135434465821898878182102794886912291530521038248822306540785923658255775166327874592965579689859955359392772518953752535243882815122406742602479125524889595589311212941134519944779559827307889787833340458401925984057696179489233498789747351460499017499896607845457250521805173460681761768447664839520477063852955801706043412394186252591991850075013738481704293631723590076636408533007045242209276710763467887747577917504753559136273420905283241303093107770266682148539810166352428508768856606694966981370753675408179506158081959709060976663057652246472190516473199655242740621034903186716479908210090102946182756606042828366015674172160798645479457940702191981188511793734715396969581904145850246785519123119893937432327818475345804315193316791448051841456861626964089379810154088014338173413617660332328509429798487815824894701796067371955982383324829086827223089953572444113904675188647574675820685346154263667684206538636122108507201558421826673299493331750804895447106715315008802373712655861668643853892160636213477530596550287657151489935642269249978622389829518742867748020847416460831188497762905375939442392591696850554835796077222614737255017158741943178039655133976092818539633405263157351184376213696552934016329141631862920555975305296931069223132978339836791196194838273459753920914822772608369970339480984859013818218833440957705604779105355632754667545510657418450765844026774002405341477336391574073969355529437050713719160256927665443314936720130073033459728546214053557451936012587855905454165030148213421892823245761188421506073211365112004393334555644868635671086733971953817692438428482516824322228448079108481896016633297887536351216424669542989498979428846749161794768001844182392019712090435151085500412211992488863220603600918212541970522874102589632798102165755729075484102042530812874534718251935506648467816039407481847985333043059199285499202043312848220314950198896415172576435581985310377347002916825972392359285471681359700822786216432815403686951549090600375951217277608345410234337556743459792870639821737924657108658201679893164298397526948738859244740812919470556604677779187855491709148556505953872946130000923924062876294880341327662391201426689398432471637214387484988231143157450706644759950910249875034878595394624251411633283210643582702085933789553088505412905922639099467184693369664240752423198585742067197555990079878615999861140439465371242219763068892747236037625646958064704311318150909020126797011504255209279761891717261992947362360860651173030756495929791372612601207779768775089268268179107799313368457120575049465855618551809576750710689951551137160010471643725430362076759233430097115727634796196630831783498596519668874937132613141282523814762960563793657528342809989805752222405340940286824517794026619860058096443523530155709637971628452332137271570083808754230513096900820921662919862694816630242089649784167205072026913395443524140866068640225741178966960990185166917344517964871776517885639450096979015700695450559719391901586394864695016920704965636940487713368815656904827048045754131916643348499285658967187221237288651135152991298242050084828139459482056459362730362539562731714359980376727989380355147737685368843611321817995623069561193509961115616346460051571536409564812815233180818255795381914946066192768742258026721300990118396555458180018437037188799292346613264509453730812523678436729497411351304851395205086887786435142936264365447110060522421429439946936231469341607186524174541906538331461469111039581963592195216621508736997004199311362514592975051465930201419540805908463069418763475192640564332941055422902509573808286164630013344758331813812482635533163363520815273116052607106908253684085013981592751244715615376561440638728279906410145213555329392905838297399252743835603642166279505425471778240650827099578597511956233373974797126107105778545392678249745813493810782790679333013113132366249560254926189761612627359040832914390934594990766717306298890326559264709798571826174400523665921206151910533368168697404620241063237420695212784037497712493211889772461231726886593651387120585862002036942285947860667343405233258172302396980401858236545229433600061516411447201533910844328296892631551754027704307541679669200142645592336972043602315578193961753289067612634322907697794602338292948504314497998822422230263647664103031356079575344084198656967140459088902693209428368474322497027104891987698314608287611300474195149334821218808330988663004919683754002862255522119803806315867655833390826702546906425094791808714500651623031562191364548250643872612532740626022293221689460822503700435009271268515222028590221888544961929525220749399421551106536266771690109153369200714322792399378027769495497546838356989103705003819711523129723778108406583182903643969214593301207764719906775811507985039183921370218160833390902069127496148804893796624527562971148816679322770454167370185606758848948436563378885076814577976625532694969981114350424272164805507869066610518824583028210919447311802795986159286595097956871945006704323632865901291741706016433967503222149047538024705586084224764830292299165538858018706393118986057785766161978030811492035081769560657534009691318934632699542473232042250480261371388452611096887853857375969745888103930622415956542590678836367715095596926881874610943663801250019263480024107431475731163624920238753329839593522147696386018128759936722920450198063653705463650937512410677569473833355617693094994033503228671608676366867825609984532369706843129190863211386041600077236062165600394989674323835587667298051820990395233841335426221635934598308627742849465356223055414343025957349381523475388825683037579401863855696291209760340298745222373066204939796055240747879945549645854700743596325661053616862212062033129793511996712696525982113060048711761543159742513934970945857806209801973558872290168896452932649658933490761490424032339595626871386783520122843607679197807502080108294840962073024548631721235109591050382579681089208422999283361496451045189573846824919485909441448970686469208655818652358312708601321292189903632073549319823675753319481557129680392296453564318121429610191555058178036513155765602186430683853907923143363915272825784836116278383225991232523556370138758193018666120825598080073221795195360850105751935887742134736202723339772045426625991132830499885342834247680398160685125571151529677847645642195568958179468731404805833955723179806672618859407070747855737726288814529915188714801773276830570340363228632703169910117700270676123221462682127117563785694334140880984716675963610183263017558618477411348799370930444454614932330554661084779074680303771979604558283691389321127679585122722385819113221917217586722842451263521441871690603757552108590691614880254079564888966705036145102218118295475142096222205345088072397306303912525547846423922548944092550115972359946966017466230054469044449662669076167166632498343298648213987294307781576526702135345361686326754677234035421523231307089906285226379585564835509399358091145427111100766146197778110124143466667170667508103285735530590748154407439640391264012306369144024193780577677189979344375948190588102542507773460807773629453247574122181784890098065449823311808192788806025533944686099006969558531615478802204722022553131827013526960642336518426431294560378386496171208647669878985969139524113556475671937889062078992922542438259275264784817835991007192607178264434738164782255145914311513946012326533323881729846664721942169778764924923502110537257231182899963001105208619656100940171077171260499158116656285932497109234095891320900887042778424714306255690040763753442944775276638294976309914204296015212267314879812756701628518190050457070837668895232126478095528300805143317126683721150323705753755577379352761903283388597590800476985812432459970884827583901518159966619142042070254381985340219197746026205638365802328729269450471898334118872620836989985771247498973077790542261970501927787379221941928166199346649251762941532975190780654563150438553814021446923674788188023682896070636268619322604161578503024380060516362955394993358873260406741205819939686795586865475807053922858790002694762894897964167420108577972951167580296616537838429401206919754229850802973884685829111820328482812346470936343584710161757661644244106539894267413221653761317561773145028831089471253903250031454404992509014710670356020867421183007390060169180236390889496977649536213930203333180218738498679133348759683646127733058267723892797696684450860620353833075765852575347259721627182699807682767119162378581722133553806357664698087030626612351825589062178385795864335612313009346962676208921673510476077238597925793737423015636732434251533816901314184042777222118199000040539388741590840715236276032232069776239747757678014157724299551992042085737683081064911624692715211746658178452010286569308199042613475848199243290459440641408965910295937084771732283586575594849421533784004990191958637669050466375350995016533116264129692778295092580265860731751374185953058983645463113070048780504190003776511478659083258715596601876374815512901974702318623208936724201923897244362771136388052917297899833810837270930947021662119205886159242979427314259110379216498298689024161111133951612419809063883002736833515386203897714318587978444140862430714334755853171324182843737638679223776450485352394664313305425500175562772338164360273866133256244618708652887958435035486225194982224464459838375689312808145787777361080097569388125046509485119488381239832841300666581042423910518952509611378244489335646130541954211512260442376470817311268485737395349773474098246860183583507603620595963579755307323383966269183372924279812753617485628136861694902010067166589291041594080034480299361499411329218758620817716407702821155936726657614749862225010450635673310058683670648214164993387804692973740697378397662328758451900004427841726775238122173677390445134988020789372486893125196418227632481415270849190819506085091443592074952090442084179290651066353034948318989285895942542087196726106305111044715824927071149541469121705415694282949543820418010077389870046338017184028719055372970279011508456929217672173146182676227139258069351502882645423454581711200369466497065485166849550542840500271995718932442631998102463579744050108697372809483440732666746176878142528410342391647136501625411988890017286070581326020598517166697985620002509154877142181154524161406262970438564093142759218694508944756556321116142525252644413171030493710737646884690357345449138724542421637215326111411115095717702805009842873764779026102757711622771028099893259522169905507179172857497641740601703266695405755397716757257857763285339268142093529649317452406049545468175400279202086162268312978290119303523469156705248400007655667007679015373904726647153237393788017124772117118260200714453722354535110836428392863927930243832652517689661958847774760982911242237592543846187633234390982721737123317437517082655617383136632319329077852179255707535167260714557645941653822273630928029473548448925862923528993790121869046253844064947884770047496807932575810797064481919567862340722281400402369431579664756189805144459400130318355341058360123012226638051656047193194494966374021139574405096693192078479097196443820510057649881186846330418004539551609245887885647901212720499379033411267723808143112735537013774247242917574404149225231338363915625709112687049393042548813509051482945475659342326218286478444230211250871537727298310151809074088306749738106402569247184037668461030861411654278574723311079780889043565504486449776207027686738720300305995354494914925155585947625479313036345188167264811251494701551736398208284342381970676920372793094249376529703350239762781722452682030489989402482865329374988311948334563989025232317724034188629633385206060330431649021268701508219597852995005672442859967232591535180185207507754342791066456791114025629585152190160056005934352331211153034280830919995625283964489381067925941304979575641495179062460004804959453315222439810536757657214853414890925167947987953497949759556377133867533067775433518919949544371765226289567725602535710943017976311836775629667736803272386819901591962365965811741177826590667791287251342885469406326286412442814306606205191664749691174209386983263779001041681899465359068641640208291127672784332758739601500557533301379861500980923613024736768278280439499411584598946258451587688821623564094639165177122495195110076633921126615587963876549556241255800356728487060561040557174059832876730144442977546561189385363441546415528267096121329035239389232634195335520052080657029827655289152875882432084957851635370238063156239000605286509020228996815099283918338306267298084418059011453808863266007326962758668069261796143668213156353104307077521748932650574883198049247176137951809371967338689883788666402154012273335683939293451781820551325764079277236678632338881775646539782524664096412786700722843993345511062103989080550979443567634486346931055993431277470921264344926736603006910818352578802117729006885794141759287399381588129910627841892126871194620513955804184708067161188165146895238468177179531193700674699368334597061881888160035880505971942674416555699022132203928959042676574851331453286170089515874592955022914543653044335624929358832250335244588033374383565166600075216743889160076570469042765793145633543605431921259730000335459221051002420339195491757369112835721947807381249119221784610545555209619531201582251992770464602612032734879882994427336033000749168732926008849855954928032412488243506424792587164441684349747330429043667902946177294493074644722633777366984585134313449479403733539381412450662180377423651486365070814322554366198845943989971739137967358321589015859435803378387544426339950067319131494537776590236672685521958313816580185877708094288413955426879510478588797178233284953729152990845688455857049949639207616798038447854261695108520411743955855670977868416342325944956002022581996636865473363295584501072323995867918813766361925507231620195601789385495769806197269458629144543988208607086015141793875897720396640879700630396872070022808145448916086475442477612489120342434918203408668940867562068677107243850479570881157796800927193325778091575910561469331077992495649784776454764927895559089934086166849462623450374201235679362564207759075257110250003676353755483322769689207631465111103331815298428104221580276920749475137926312656683203424207876407743915938826705484799888918921543246275983993511244651310373284226003139029605808636590787324626263133756225487625361920596284113405121180753173905604371025154531756123815592843115231862537787767988753302408020917853714464781719694125975273367091123009159632673188448832335392021792824404047294326395526210163212872835797910981885102722535577894417825024860766288081201758232017515264131676055673986942463198437882110157842936391311181695887547586568335241057177188979066866332560075218433560595961774522040258300386268732144600858939691461085097694682142922962425041681521436211440058009242455985367148456868283703937767377120362058551599755625602888733358676142915280733722805830680432272904840055038619336217778398872420178830583211727098855703654152526287419015109328736568847444735275526216536881622641892492131227254205217714445612434017389450751048318783412085392232808859359112616461603246165071250013619205430468761758999695072991917162271233669366606216715810592464656552063788287772037542606668514319957934397035874853417360250241093663053877247299113192411642292589240047819980926467895966666703130182292150403571943545814006626203608350293417589430978953269167765124406318572768797424886894058151323925184705458358147168455571901940384961246000516338818871154716542743622981789719960866926244769464390364715005086124958571554602945348721128049952060615536946312196386669448576754624952310097367173451830889778511463157683099242450633566090529791029828563208533300363287603557337296458954946096485523961693003418659830594898571702341156464991673512009912954788767215232498877183209584799114032933892771387730232301846951264818438872788911736451833195524009498334198791772980498840381180722345360881800798753956027279686773177357374936360406374025275713806602476704497752973879150220017491273100023062659804013278975874728554892124445541951463925397796962669086522809412913223639355817226901739174096388966031567910777078861589206848267952905767865070451772278284392263957366107556959952903286008886685462206697455228915498206680414573911372271324372595444357328432577247089681879316850579481339477177880012018468923763482811519160693721279216666728766961855144936884771469773086242862527669006342456165721709688460564932421125596759802033143768977408176366386937266483157140838880266012409853577305260186567040763819137471234470880104125123704310250979484285525538482838150307878033985720508836600489377196082001804083037916547832665558374519333216959024274515814839850725926094345331436377954316905650418564317452122756640782876886294501083251053278302625549683923895427784693858840284879982350381039738515806292799730466275397937646922493731373953209409294062938500791356178407573541549670234668732523157231735299984575240017741388983823467085074269878399958642459446618201691656206246104724444363064426160736894717048807150248289874000499776219666268104917702163568922734064304076822578487878057959115826335228336418214142067832241131317413059009208824600218277371731998488347028390534468871191066450631410582178782001398092849591729752757542578652611371316004527828599683900252126532090893068305092496549497263800084135044270091537500093826637887210375170589949382956161775093600310576803809019729397840160224200678969474680677207695790978537177560957464321742732708585185490038477904618570583436160443146246753186902455738635234215739519218459549719028591102063087811874936921876843515237218384404319704186714534897598877845928176284192567345696970097245927405405438622510241040506144039087643780676976954513636927162179535141396554308302929084205947026775774425847036907071033339201415553289932309625786670520925002469565715292975080040278267484858038347053850476672498907346932571094367532820927691528966101833517646860002051510645383017572322962549761925963909736248478548085785002534372002757238230167272946658056225983224683336942288289202485678200632385338679057736982865778529235924681215724251632404426404890802419759751953395150863013729456588957061959441440553372816263254472033484281978875563194465936350107707567592784690821698147466810442055277553908863072731757921913314583358346348580359596097844334572122068383481039096389547192663866317755258975296078804435642920284799854145404960321957623144606063859519289143802619021429927024419675749688226283812434501380334244747343078539997492970160005978840618804603673754636097960760884177824789758602094563661758962820504219686033706891603174593496354467832504155436792541298335497313367048472917976972058275624778767907293786966594405935020322967863210989509925865130248183543293069413794162242372986128789468697680729936565543252504149650259001379502905388974934335338085580540851216907845104592231527786863773602407475715843769220004022956777930808432564797149431144185168397502048084559528253620726477214236838556501895409404158588185311619302927380732091283138586109654245272154313793075460314247251285606502623426375440195627708941254171121972558468594886855670135924618378773497109414049536677249928171087905826987154053857079367657427307953362001181698450584272715008072016792582384407880618207490323584322599131738040140773650073866309997754996766265869655612157133771688192979726044188781070519821259257936890621437035515681465201019490983562963787540249152178740571909457637756968843995885791577702594648008354552339336114776213972036596932853516964460983540810165372159570458423478692858941665389088366047276697458742211731948668660050633180102737405602935532083857318267503230273013444195347532361824170172404927470419867129748464070271749782993439218424379480872545926081174384104604102303017373826751093137897124761127496335517280298812345279789005832454255106494706327565781676480446217980828490212382760398758760199646034472910787821334629109857070821697909179124637122736092135323965591474183023793810023695749061329728229112722323882620627598551498155758945669579867904220297181629366785525442877303141849109370488583005453819878620444555130195091144835745638202182329622101387651551913644638062971318468522410875907429349893421682323142668068895228977402332862174952786819269047306500552733597622671578980054717119088245434083559548087394748383520924240343591165046802382333769407133726227985160822573077266486735676053115418974247039109522509672483771648489207967582643360542675448469960640368309362666487297693538248464426592704403244698656027565066406277588880494044989504772396820760855943617475701675162367893254879198266975520620050293589348944995073119340695191094217332793942283899442061235352378800203016655645260080050376079000085052846495617260658526852163745564421409205850936929758405902718516214328584547823672199700513437674383840905608798992972486841092291155597079965669826479476755868396508019954802019732053699067536525579838572635615933035374702232479843794773075025451082268524388183018441860393718941703923517567487101703604112274181155011086222097456422943551133619181528493519814840369212418955473869317498516499662434224688918280082396560092943453799424462896591903612830768135768894871871496449290830044925467853791625361501705164346606510776920682315933938935532892738457179626337959252554373703813371001974879646259612740285887447568316453054463804222124546902669775118949613037219417336881847956287452921877377434174494043226538081242706842653785479218997638121493151516571488103046126426609524482167641348348408144725738405570106676677875626167871904423721190125695071538364564218646328062550498238114395791500772378224097412806202487399441573294287565807345693153669988662645422208891621810921268461101910283035457519871259820689733940881756432344834173162921152359422460689432493348890080576382962833337499150008767807622135144973105047539981937127887718643201526527245761305105357017625286875781984284306292412675347815729870872222580716225821979664001454856827360103547462413526448783267945115820688685328080684989973033267319856158864568706115677770158659826056772497123059628985086725218521230737490181245131432981001164913325947907976721361330803400719093401448510921858698680004129189816549392472335569997807048097655392593134296947230658273046050468547906869079890288170542196294486564382705223485172011810176383653870385045585301281694414932942048893848005724780821925853469144132189899823663215958814931226771936201370141245700713727528558225186968796883591545005716120856385027453872440262513496793768393130248850319473987619734190492474673580275566876960375561448647036628363314148347148159098527307920509026167282256332078560566119175174556472103456053089744792687972529979822145251099384081653041429701138618403633521851975417973200736280271822758817714189449377727164568748892789541066504739285972102199696234525991350756314303936608805926951535092742091127204869403089497812810344907658601208183220532548662266841734033886969311736145775854441209015510222345134656763509462864391514459703082180989609113163144638471629520757626274188227166717836166187466337465486215028328262303626619458673107956444769543638071513521548643614581358455644472943894789678035848127131511684382628420678811363981724485873203968583551696965063530206604057242565468569958910543936392202337616765217762598323040879549650298724453584305673386762819862175634162020637303238319341579753351242013508421931969605634891117759971848142120912280560413630089849190638783603700833668202798167216034245431184630676488078900727390601492299001210225677548574895866384713334568314268228629995584098171285565062949999128108244238530306575432931397403742491992054123524962032580218729288428242120926496508821059062502672514830494338005345740756608226572929776042983113541469754220703391636741223030312988729881096777270706711393288316346067610350247539732118292912145444239771507583554110802884658459982432195893504298176047369161883612537038041653065371670934275926441313804311302639065481445609155198581522923611034029826930583844875967126433715156216145517333585977025364724649871320339586287605563049164115506612724272726876358759799021071276429544476619462191482376514134270653522697803037671764982423198785951978226182721445237483090754333340933282193906133256680640159754979426080469229179212196090864672004365373252102449410858233845287857590114773646119934986028176559547033004317951839850511875028757620361357244227740236422314561651610992220323186042441047928442428403738064380450192304465481339386719134922013447667368327854684527061429674289293426633801978198180308931529661130427540970554662001115554496482445853932032388655846240682337708942678152479486204498610438482365832077983271085636178804677263639708229771021473783445146370770046841307590276755146018551757698449649032606667944236030781333716172344877138723450024040929440504292519357388140523876053421092824262495676115423040604093943325426577812677181824444115727102500919033492537317285086022856421423514484305893206288715815261846975006372350835111218024735530556043929552910576809458786044159400175974698397879607874320401610179746294978425569514247699824526412396258961909991331070770729235322680404774298432482759730105754587262011706490418719764427957560111805551322848531506528780216531541567283808611915612206150694549957135657316502475318320572473137832047071882072695297739707838577177541140179022768301646616754379094370803260583162894273725989603757137047233032341855444332174272647115311381195076819553291669769670040026427841250823186317246721574022024601588032514707603371693652329833328454239667293258580538192954511249351706293646239800965762234167716496072195146424200432186959052240036862232620389376387945300603118759695310598919853039604993326706990346940298741772574786258948508964829918037083914040104718931725798216327052477852310758051862769289460219147127632077863936596032910106491045031974831657006701273740405302584705412217519654011526959444967337099513158848350140552445434233214789175371388753695291310200407378094708963988085139832231989232235218092071349494359550041630773254526852735650893383622133905892850099901256297311488338459927069693441365550339624482628074433169569748900203187654949127999893907475082676351371577211139562057563857360004320410175983466279195009091147868795069370940816566859472751055377146842940073760925521122174389512585483612386705667396125815714403411779574412008019030111992834218554536138249409540652523874773942436403962849433817224961484063004332255500903500021425244699631308639755583330443612595759447275361963361361702195583066098827294656099802331886178424835419735125490877785378032760950936545625895805505269991763281473070467164768981398764394036015295160007334494476281168999056325582564706774293787936992043710660233133361427466542111366519520761992838293426308208689582295823190179758553077249565671619122115469198809485145250013609063595631762766977602426100338320332053447526319419784221846932704113731354263276808212007630567630574439827522286923014738745418427901804453445456189022372711587153376140853966200224459022643129363110764028818848870426804419623588404457045546813200210181905133042626972867648762670855529609747213797013680917814913402611280702521426259469053277539605319065512926849356266353233101718012216940041711504321294797670318471696524761174941247275254356021162051767807173233372269853524922443760350374295271122657948398898652059003019911027760707610166238093833741936454118448004622648281411723492236439990279813783381492223232753669642532267591493286941492883550909664584993811949234701425444310560555892352130679982090434551748050094197715671771093055348025052461563183132725307799614528886804047931739714595304095371147953328224309796738404929955575149157294575565572610392861336841670149907295308302454526218759397852502133969238606432844481861124076232781613323611472963838767973071936897683795671668235472781306219718286934915303742887572356872057736462672534667080200903376392486259131291599987378190943901150851930979955348164139304507625067754531520301897084606833359305512547185634423472072981106415078684793461826061083089362390976704817274098562262745554760396652935431887631935232953554524629721180995410173505798571752566952045170168625196597522644917503150574538761927910805288422302190210546071301905660789215281566971724917477396035487803189276951028867910663792871923196237534095932366773458305150777778386663933982254049248858850534899650990273831198926126122892972193305999261428084998127925602964540767505027847730066921691907629992132191154802879546555681085521501057967443305153712035923542753819140989201535158996037331576920915661222809225903164069654949167430172994774310978759655065242469981612621273571470685646725147477918503864109687035503380919419283373161726618544908327262102019513677797339249980424214602749126119854069852764027169504597174660099414517030732735793906572337960200961868999232394359739179490068015150703028733158022174525140525010941944288985893984490096930613132587922390291119957815767756052568114168939408863519214536015625818423704036475024844121216735113144129822940046114069625044023514616625372899279580293862693214279260296765918953681049470625420970110295542982773478546790320608474525627045331328194325989645086949227915640907707183609861922009666074846920037027390145085328587746335883609204031893790327117525932438187263011490991831646270118575073334412549531359163040937132511786055299689789024813982181887293732617415091791989276434303426467794158400369065049532882226970345015152017007881779778536080165597796337910972589933039127123368339242832795152741592936046349879261643642166779441578707737992269594494310502560666633772007566802701905658530755305240674309380446336502717460958340844476210847914694057038702456546431566449320613690482638989292774645549773279766806303046737097656435521967405771343038295003827521436485108095665174250321137560527287809987110777060986462943375777842119518500570212264212137837329390201674150003681562051928913453755913661145997761547998545153335057392007766460613261299216064051712176260769264974910433034277916048793800170107484958626579384577898469609160511080020928555570292202509477851396310875926832320012597787183132292031147581948047836656769261792131592629037319578348384258944289151432078207102455979467019928427748223159733109940492465851328293905863068147396774768832775795989430248822431960702342364260573304124131218905151652220066211022737224798559638643727249304523649785448497212778299332345424123173371830107301713969111035244075184992988503448579836650690631831273384756884855194125626683789299181196863311150346668080659017827327063209868141415151289418370727481146432825676021636617903498196459775043478294917171096724574162577082360571813541538589285481191295716689106464291522084401656402740696279660740826813708426052853868483864486566392310281600083504717509516524277829543540628519393416260186044041686267258170150581666627312994419438445173236733381218545103364897760236792398343773861044393338801523458121407503565679004765680342175989627669217938783051509881001648722924403842734299272367318354475662371621939102654101698275810917973393890664464125361218171434020621247290683766667989008395643383462022780956934907542058371945091934436293626426184195630221936851870038948215284092300353884867535296869704576302516422197541441162502254339547744777225518625507441168673826314352110744579360680684832795940658836798099885664495818121673124265589787373512780754537936098560148714428888820634316816740874105343810006656320362245969009938110550273881440878826387442146331332263579694313554175983655212751170469783139471392028003419920511850085535273151861928864375895879430846741879098901797159988495132510200033264030548325302175759871581812792813604388509183904759372672800886844045182806155281595521939463909448687480401629552415622603507346737395152957960797057292809217562562920607052825526404309603677555045605728194206974340289854955836399987392604038798180551720362338614054980581615557767566535052133549013983541200148566966724821275225666799049811720750299731222547449666541310872264883828747832696047925152323846905302277837685130983136070596434231690433763593385752010991173752724281207367067010939509265433626596346909648933090426857295685022065947330749670837820029411577109178120540584703908282953086162033942297855609402100732222521843444691189230866718608478013050391033402037990083647574432410589749550606972178600986327994744712259829653171880438948708191705267433835310055661568635533847413941382802813865325989952200584133939780111448521675690237205367571386076107099464658772732484316381520459090945543690751804699513722946086901543063808990969201289709016376340213389801611104266749223664385862308064954906554900744415688943093867016584239768020023028085174733524284649205115464790303374036555630238141974751947761593880804700376078544935469885077229727126143025060156836781290640102475249687563659735203410956874063459252361726596356885992635942396007725829795221731514308730099309888140240258244042123184026266969212712366736113149694417482551658635051515578657436514698607714448048981239216959774364401679459850935920288787744377320580028487089746058595919573730729619400748571634646662542658641575342785939587015621160909985254931802823766185446595013303613088214112284964096104541366080134329352703932331781786323027519542742391152618634857271318693774793643494093251467859772437665676627285726533758558340627966168019485777498533134683601272368618778708420527890572266524035253789875502823691031254900553695221801637124536512661014209688725249307220453329921320264495614622302549044359942139551633897414242579740756315547318995020360441874614694540136630202700785278411325921164785299763752335640150935023107621654368900033248917010301022843373426061993971083995166279019098794208352152361870758729324810225826328798606384603689837882760792734575382811283299948905445979841687706664445100686510961676744843048932532891547028590259813286040979725027774520965907736148193448995472106171110095577703712547172260629413026776995113706755856551932466591581161599455287883915170776812702644516980435219843090185793377962065705618215691755984869778527775131861587342704811201206709677900216763269835547133817571795315056216295505667721820913202275535507410161044730015224477210319085747290082636319904065481045257778962885633120982816483346854909580611408710132176531458081651109995324561871488317616554906357540182309496529639415943054998144281113244939203121311251309388316763877317489995837404076911271612116248362662260322395172139720621636865528380610467994379477586980283025302164424714858359058861026425955382155590353805931531769061040364433952288145253174266368639203746502894224443391090244659337515369170335368763983275673390010965340498321909918900193215029415918292154374788774725762357427979120488883933045514093523830511130187295007665673078178049624218132049985928160321592862733261425342899834957885588519719704395716161214541222719792433829968819994821574350822713318451399771605349523462680737028072456857390681376283741647942801976899511768337005877819103790576567048702050258683173842148687688031827621672456739119823981917117559648147142509297616901461004919992800873842224646686136629819587557418069031803188321004946974989579862478136277614290720632868731706567174007961009293730138129979951757125873235329022761431231849968952720928282858287382016730714412423347959423238284353565769944343128864092538188370119067981002877741256154332514339308276248109851959622347919713900455007423281645356530041801867486055367032303282568826505513486389466290607669177085391292797035299855653364047038659204335213780006359427951233215249775117464119913776181816600425846514278426647576723873968192266543974531978452698997806766784483896765527549171140811472746428579572887992909663395875220478639932802657090292175245973108677648656070110098062986602750025164791252210061655307934819435041741159438926239272140414150871760794358926330262377017509307559557520057520252619540199147180035913249336153960844209919722968217843269826409792712135179283321773193250610596064666175593691434885950099472501389774572305039880304886220901761400016722410928965386381033401272952713343356480186586650484865761325935943459921499873817596896698423470542686939656719640884387775778979610657922823157463615075277852361370656847457606345725710741320399160670519509203670749538407143965917642045176367530796081421403897736229845521077863645706705528656595391263743383404618384030621148418986890916631914389173695031739986264821199357585827061423310431116510143328770405029301636264141988778780409340674110844480371145911066259696079468257971260520163293481915626999382767182563872234862432422695040612948363948177777204833638118952376910515967464661247514028952002082227010137318624888619822728171214008758206891562131565285396635271055231734951811709222085213208120422951515115731245050127963042049064371931503402865474784468148444699868065454540769747508230799905248307451942974276517101127481629541870438644112202790160629373768876198036130430036921159201499568468085489703179081292730948186812183644973546663605946261878675653768603059269650879923410059021761858164544216356493076767501211865444194604899552164600230926535631758686243170648661703053059797710174990214935055281791748693386534556917109363641090351088611343106503937858565653468195275161531420529190830030350985074827662961043372435902492153793449403580383177861795763243630385780374516089699907550245076680664065993137856840728408487485226301394901332109625797959173507554766298374781746995706369502656911300360525157430614415008790951607610542343728026803489173183903009756108002298772211770148119435469719255846516008577554239807561767139642805314887469196835012174072717930508462044047476280649592009144156919615073199343221391347621241529361618083006230049577726809577665329817608768582602822355079104164132093483559105009310530222214709554801747683578073337327276887435599241892145768237221821244250045991471329970775415495977073934211424718700299681151484624862767628047432332365055254076110410993694295014544948467748782547876114443432567109641671091787859152225113529433605452406719051694176779394999302100767798309284201670458275476001124957915222111623748245019367338280682104356590957199661422338034042387476566387383575578630208488022880001941821247206990066212808941082254240184622643199624816286058969326233123569478323065050169156953929691517194734815708113278360020897235762745864397518099667812649371559258242210336706143785154468020714239064832189944927987687460239962069906197962711815017472183778409680372857241947653395855785274507801832951354760680487008306706776214317257433933780580477255932380488164734142130758800104554301915669145161240150138387266466565081604595487818515264860020717362148185255383195718627718069071439825286548792170724184330823605383966612332492485187574812511820346143011641017126009147010115641137466333105786593439102809569157196756645781135950529836823371574896473158443033873185096854996267900059449855072859646950036416412973873307799248799735653153214826377402003458399947122449482003672836354231616164076984189933269483314610248632509145625750605020822634452873233027875936567435348606616782799280054824019450916169668479586865855081883073857659113544586873615291882580227618251638340545745897591335819932209067947512608862599519635874869975460249731260580430986712111303168560206625876540282356549736088537219995072658332209870959443794219679717877001695938862178474867459248268972789530750681885873293062608174371553152582161997216907796390519543654019520741661519319326314946877884603871420071318077343217079403114821448160045291584437856723463188618011704921473935402586399146768603834186032623579444011675946101594992893048065552723391920990385700292228595434477045053053715756776716137355006300281659820014622626393906089310449667185584003833372465048043614134120183693802855175357593663747759918997615144875220652509315217929051167701147775087606284409703647712062884748636583998331521489372249404184863138712251144978289751410330938370395805833462412796212148998498880705351541917788701355946476155455301168517073983628452880261440135442609775428039469257168783924484811703044862156608081618802654780616565458132906540678698437840450429678385682806398131045604763033761876469515368302037270284270212913975727376290542323212410464094505560752559479194255243409014606683285841382712507885201209770983916213342942032597544283922146923113581266878186881009936266988975936569024091894032203064709739326734704940701870213178453303152585312211148057694708247807653364305701975713465203641378725462312359781066894828672983533005430439780227604435835900976270963941258814492016957846189688858154128656927032079513691369270941258417686203470402093359935582798105942903076281210788990543319383950350759150682738626046438659460613480741969681548950799018895719169510069234361608641583172991404493470159496231588348502227967530809679836730193349768132198708207929064866558742952559302367750711636019121135814184788923020216711394473134316345293135076087564151424161992592630027918397387223601340491602360229024472930003353948692326896474018250163629863186218029268046397082315527810105130774569020304614495158397533237661911043952305333307357653062445771163853854216397650031151881090267805907304014238021558045910973781393273219399886120163900012683744059832777445633945036128335422144337799971236872555182672683515316453731229513393688718608902806908615268824186558933865270292914274894186954178473085874070661878198280064599575482429721413444042418792444276317269143955073913059641262254694967126492992827854439257725852646778077850954148469161147850240752527306491533450433410849565038432192802404899730239318846794120732947763858641255517305050280351158790566911108951115328473261455616090653224472411143368226280142628748186347263497197259812049559052898962922217486422777604181511570178857100570780141689450907545178687862445724921784738699451740466542468740764120572699145521408290951455466631728131250511165688912618302794905243918755156427686038277808355970917342743947037155896135254647978773343886475500784666814848766884975495594820492422456238679157631060045868184148950581072322029326845517640048661925021233915988590942106343441098283263318716476440394684307452052129351726894911531791088000787514970518427400675624686481834491820552868526214363731009555075182373891875335837261008957506391387513534148717210019606694108844381029390997169919677290283337243735899612329613559094264194295137159999199469030274312875334749740644731348212145327426860561469651588763911349365686398313287551685466491488603609560087765108760890137578332673269694435840961827439551139626522601772137974928526096028556539438842505867761960553643377828220489563782554843994393967156625432357583425760679463068262398405565093671040982297155269247542502754980818378607714233260583415176056205828471961027535730662791808694592948689988044490984750065458438135642222215454895969832387273561641258851748271822880680044910705576465591914414234733368875335991032878662243819619343384923856742126978863772529925949452570780383727844792452439618820544952651318932908690325322598891254720345099676074173059166797414515612644039568784694568872391635054554658364379371765822863979424557012472190351161780050221623253273593952687328437991190881228416521750514719198010523220627899815605473066370919822189641169219473077365658527728084121986659914910492962362452558259296754272512323506609349789686268590513157725364984292395895249683556843637103229376711195786444814374829266090765196888117490372402090822280836154886797721909654504937422052066734729284423303494975692474654958257898125764744987552469322905442760157414484561523912758853683349411788222023613197114856593969317786994611048692234746327904664154439279055917245750932468293274664172108230667615611569242233676175115759866265696833950464651390700772521769325080436406086856762827653211430133947865689719514524746399848150060029435022640832821916428561849692195554478469877430996685291274637830517242813101527361044829880467695041111944725294031742323671728174353058502073300701402709091841713168342404157701084206028990420263100945223761083680366321268500066243433457090445004669914686599131924220205672212059152345606454220294693467324839248792734536978784450285028554758628614666338578765992858434141869239048567789582462665579210039377173709099165155531555765470820505439006581631982983182658429830193449392166142964034175827197002126352271352843017830727032787322890434431652312130314298092712202643389749678192565811699908273677786512422014556245918389412857468160210043629181803860028224119969204910079843879826083576589876969071127031504463043025440552963457459309057306310022681318200234653493854443630455905170547546922859589756781864112601294846166212244621894525518540319859855749985322210673657155432500160209123331884536303423337177855615154282116725674299118969000555446647411520521426772127849375694405018970088405608785102978970379889459031400182179355164106411056961692710877038057287219631271333653791739433393753452379764008202795598801169651004137026268709065418581168681848546925991833954381565660673108217181803113993555784385854680408711000302576137136311045149590141219148363485362764404187928235056960323236696800641145515905598905280957784550314265232323772185614025702146591955359717153455382055309693290211882760750548671792832999080004489380730261174315936736871822531247235391830618583096036571208226253682802001283201971844595570242695569655717285908858993620247565450545035275924711180572201559508322834244630221509527728307107719801967275401516113842002319330932145011811386004040003670610930780962187035687488847735699507622894391417101469502075722040271806382854180788487569372400018110416453855823148370671536447494223041287847075338763086824809906233175317217349073145468461671873028115568172722610154627671904396573777181176637785709729773833695666918544977844370696288831178250875436797119413733715826740855983586749383201943384229583960396916106281645473915510629048913172064696165692720408167115903881939505922679460364121570590766017787005564261765712861785634362898685043967206664986333551084871128158364342754948396256145797841240473254181634724414968247096668979491159391500071272239685562810597119919961943111079570618477835736472164865204800071951971166797240463520351705116454643971262615384754850590534823179809581676951227140831131042486616475413556119435923331345727687928682839473636155202521323073368606981266840555412456737976603956809945150588955921450340209879926323011932207633245090285827795837058094513758991657304797515313317851735464418683954998057946358730722157331094418042077614806046403905204135191132026211034387438741950682309988152740946530404278962149385947703261074319404221307035308666486465158100681746568423448529597337737897905957498929069936927981686170085083923280786689884791874586833343598468570941406052599113254951195574514338723418272459585278883255119065598385530224049383411808446768591461920383473889270225558374253582166308653291123896342307988757411521600943936392518233505383279091317777976558600032686782835361857287865179342597423087187631003277818507683240907597184734296067933646468717030778716584056342173718740776833737461087481357874891447545768903226299557813112707702396228604710878347417313762601154878126112072770884403684155319889115163718100197573521118883942934880548919597547570447164471299737158025507660448515461529196047431800030433072438730372428663849486030919744552326981077707907379742015969211116499237138306424833759679500733223825342228739366208552748820710301798709209485468339606843423717518611566586891539824531279282133323933748402434405032485722037918237038748522233815391792714471204735778851624418061705819559263487684514955032551473254017330067909215238102635581262932476231057308579406219518679361862530699878131774582041243266942290745761542011591605238953451238638695554870347202310444349115971715819983546823771038575838462287838636194777630547331727936767669817993832628865178845926351641777977935884494436430528320347220230081892894690954190552254108803916414900824683198535066558783266452815063470514767369991172963094581418582466638112720996965969641675576639918460730793568158384823017744207973104548117198728128215556947767368059093246719834253503279219928423841887924039094779741985064569940506556869664743947694377607998433138762832205742672819345914211144114417855774191253049576380246267244117743968922160166799994724769769710958085751858109892982632865019280042527438230570937053206183195579868482005372072242278411954967362551292301590942614213467719705901206048542772643495839633342284216463633514849181213881522110310374959207418530810524889857017278074574080935315240861217056048393148192870130972926445818491254480915205702246430434227010681931586807836919827613012859190025830691736495487696686978092404901980580052738113148678845391780696642415319841213282791896351852459423049775243945034101652559499078142161221434678329100779470575401012822731816302203706867947401219500531608236678121356776117441748754002730841306722109119112931042468185760503109344033866237917044238492099672775222610807050651226787591188149143169458038856305160740288124262181746172724263282620604549975904262570714458734992929959177543745984273828647799984027502136416914012926088901828936593920343361315320043920682574093890830998782312472074606254434377426377153233638052932339488286403962608078809592251526038538082218454566460107816607365700561513543314101865578197682581235379410129761344676481576431718159583171611210272377340835017109095974407746621167490269256866278384993827595966300685687769422012531715934974217810536032380205169620287820576717727203592520154783081622087300144635825985082170305214591685325394854325080196545817177601116400936346698199219670077841606397799157832697977288505544305299602462712136034713511599632328201544855105316884346251008331821665357720482483610032956000651639459303324944317054589405631327259625889018222871005690690070710101878980216904512772485649685559318141402583192554171682932634540523085746773254396591533011792290429196638202772368981642376507742515549915850641660039824642280417553600174361138335760448681581802543226067924512723906436111877022182005080310042806240188686203019475093052148077075806531466471387845216501134041584437388925953294156960191946521241959075340554753857093632552089322657510118559480625979097676435973481484565747786739506253168095085953426429532256385153856618905461047136247550429073645056657020884788146915062028215014483610239540353136840510620249927185026478630459838313680386266840594312289127563262097015867527215901576369322833535066086665756230691957148023293304168850619912634229835590785137643854654674770715060007279063540874270820753465605213691335363531788535136488131824135308872536561514421680902816708678257884406903627572140173895707725534091312943414375823945468983842287210089824714656711986744977339351281991954580491637533736486532765072336843117274543685702210071425351554621458730434563359283787769474332035000735984513711209246398871339934578259608555558368639591686684056816476516638119324593751062950482547820372823849628391102914012719532685293820367557791376004090477127708392102405654463164053499915247455781590297434605956406447640393029265233018904727098057453570109164668023602794889159853443430213420263593360586065370542750361703214825426906981866143785307684981254167173415589084300941636030323226157826619997175707690520225471652748742793993944820295365399624975697738141075114386894730687764161667523039782848139575521828160214505146937798888886324083294351288187466770322467291451974411374142987544917026701204335277940160124882577263846494192305613985971866258553982393063288475086448309048424332897393671228083241741931662182786303233164347216676991005388863632965882138153326258743569131040105854427071983844137286597713089473799051132613470197177420867937155648161429001444845511634665395669907735948095261307744306368194369220061003344208589483137792816395277713307311359213677257366607393009858345333055403229004765850041383662418618910309197535526812860021828894792786658305797804271501845677538933146335753631061343619326659905447559654315053326253969195409638368643741036607837114485705534651778131401154603312444667011242310932075280350913515899705832510651630113466713480857914001271487206832765725428671463026054089133016569421739630352681070250333934552738815090535195619709764952093279777220247146948235582406574876522855697560045284243456441709839448328375009351710086384923149899916163065329946535813249151121923220578364567551917328351756464550805358255347915953253838511014037268882371981574533741323917809700228877055169301332505070757328866624615776798069672291097824164982556931539471960986922887001689151138054714423178070794724203011931341357562688771727609727483588731626212534682036470906885615917316074539746238640591914446104418682961922272733606743964258916497731038444409544459857433662766560876336085897083012108512783781441503515699159529007722013049672275433064072238840387164642266170629843340235027168942678451802168290081707747582370156924684901900998040965123103342991899195122636769213832416541760693677815124131737897805059071350314158269396655761034944687038757720970528527959274437650688496057532192446686945183322755050371850722081647272390876635760036668694707854198107320082869572296066758183030746434281134576689500488112945940463330927924201088366047434125877843821941095745258259483417435114479160323753063188218359497742330951998178303024416921470832568650912054180750923952399587094019573772243627065400818108366732242351201307109753490361559194113116262881526825183400250270542998800865998107445641484579882964860522844158500904856451168170014862946715852824334317429730121645287458127739015453162158869178305910335000902705105673824424138329497568316909932296221515313852006912431346693134970198863988180113488196902466802975811470747099274527628640747453145257047707738903365493813338438224664064502623546847695090428104803270225763588403049013799612957290662669182637328668402489888517761352805020790286123300886753600799731458674260298940077695570589946097791629597675178019694437072357828879641538490761674231541350865178058179903299466375684319084375113267494878072954119542572829445855328454235673733401580390607657061863882072184451637641581669138320099477718339859654611517393868051867643284105919117438036123894083089329335393048965606383318144145152817340546648397207300897699066957592266456143096125409457697708317703816733797320499775105811370299417772287891770556216039337121990940350840307640851866614934428302041958881864683259941158338381959110922531259300453771896658220008964824607429503282671748230929577113573580161842916824446960395844975325497420896871335526852179848785382484338061186035379183927407834966193773476420204333595345574096494794198820221761229499437235921179420710768712933995594584741196628908357566234258714283596723809846567492960745399180703086098163825409087955916128400513524258676545927516012580334459287359453083319920745993905479189812366965490475589366317456496233437844158915618869351755114166583534487935633057907625136042181055940179611373831592120402792824372919896174412929433929831619677244506489411205648551432932676076590507147567066403508602091562820581412304580082573086579867905864175007755208556492998114162633349162899407457186960917710118666016085726020019332786079486493241361740660524376368764180191265357791528946821612251666710367805148088772357125259262308558754075170819979757262840591283711251195869517453668741869514719379142569928528295888318493470856338534753988460957345719463870895202778536822433462337312059023421401813472080058221433182465717351635865921563572717989850212617898042095953905926729784648249725594392735027233498504346371467072760095618371326477024405972682809112181042057281511955139365619830700310778906049944727411793949701638325447917100683887010367319306924373942455906487233535024610203570902490900065129468386489824150182423530807361731559101105634731202675682036513627018746938242567019079755815013690130754176528837047363255445402723608135072686859524352915192637350911698759951951033376515746179688443769409349727376309890160131531167451408117275152211363200482565080314726980856475662080620163759292252087302795803922448196830163517204893138715436034454481992058441819973263859006614354105814103068923321582468804793974534190505299902060674331180044657031467615380846074884036331800651795995280646715967077910965559957847291124551846756540688559204308278654493105127688556889810461172990916092705165424183980240645628182901512468311877851147208121106604192879163869318781890552136792413705813904625000129197363794841616965256181498139178692781891981491995045036657594340395390149080948370060750475722242634074449176523116244423921410979968563040840356407954361082908133565076692708672484123161508408232471214634311688977205283932940487895565918112666535633734537570799921823605389318585035831156288579120545057949171017067056199669564449834792302971307332491258339826485959533730382473414830699058592977241513215898021916647901675434670299129372787785449820017718945057205462669365287522334530371535750937158787257287324123103885094413600526273160439928579604926126353686013783790635204650332730776573254695849470945292495948454962780740346452633307365060808199419361726645382862199230989711681667738582188018456608694797302635334147643791041994069347077811328375546075677254649667204147935024970725140603854571540399739753658603375835094991511692784260979137987194634349119052684273208092834470845227511169502451901550555721604713341961730790553128751516210496322853908394664964258475730794383682246601764383988085830140434686266456737024963220813045676307876441790557671433797944057718816214960508325005757856978840276853372183092651529136993124572350629595062910204392298475907167673020706813256381982557953475109852383546667423117085149482488512959609327318404182285696780288232599441930820906214034939545789111545259992098750568063812821588459414722075944742421181923959477354294331387960761746142914162222306805977219088839659344535146025333306197456278388088875245538037429034204181685248443185383060208161951940778996859312612900615301598179961613284003529458523077352900777244119582057942191540249779979787072903923061775971249110700515831649716093817540297945939850896876329280082386065804515288153637438427373313172411721044076279328569562007701763763556883851321454948917915652909496937400805993292293561000276465552430604321787789770557287018719978303830022942816899324462047359640064561252219648856966582721559588050990018333238173004107986003541313194905453809150638868027924437302410682599100707674831148489011979115930533491799256931319635657148027023586047956865952680471474799521794531266909884934328007263798800099610545951340351335621375662640206430939602731193838380558211681156600941727073361218796935198375140857139118628545584610766670581474264099498562304173137124358376033470045696209858213903699985391312374411479996705760886954806458646617212376949134644192090791681110498955524102084698163899601889151796243628107339813307561436177752933769050846716833663234476832841074029053314534817152564467688539902223809096412900576598442383338456984123706029523779982468670490386271765511482690632147816735702074003768004682455096878944482228489758054689924031872199718145560875634097506715200501103414613271510395431910322835145856099949452482417232286909321711677518814067626875532995867893191421681302482820208606032301441751250357675118740980620811542787053031712897734053811769988576866326257085275157508013725259042509733375672512637030788084958954464927763578963088381757051022172924046304805980476582083086441567342695153297026622668018003302871244204516808742243790585695118714200349227745131741064425023462152901003267192340980518326072517095154076065669404309213995438241466143837757745772815679856823986618413983260908060666280198679401269706331724348028772634515035157076229156476694285111785559336000355310385460384981145794949744060525314395966391962770917051113523760793020154935011468805703156049788204245550358553443904265357963867142543464433187579484605788673793005547337549201646281583539224800731099591145609544687942005212914170167222736829092430456886011824049055428805943047940776196901465982848899408673805187348558040271018341555630053055754649982840244606791671819493442974392228397728990282886909565527374117901322997351097096653300884226828446197831353035823891082877545456618061641476749588224346775213424106767558331167849312911675413571929545934433218490124508099581072529927353531212473985393635143624297687068488092106659960079214709314760841420891404038210256902963265427279964353816012045040634365830569848386502321612676154143657193789707505757039086689533772489989833049129772925648142261061060103166463353669302329287505082352184450369500312212181344561334910578216762571002392925524451508949648470536669092202924086241564841034454048887958809613981241947880556325328240729116293229469658936865724050845930726909267641182999037108194751053180527700008594022711823397708470500372182845411761077090513752962837609542455821393316556615051290885944897558007148631213885739919096508494780573995918851357231583864156954768791436681637432229422008014606333676667243977922940170777732541481623305015706413226727383299458504215077345283632097308777557471720513918712592232199078298409991862410649854743701398413992255875529097889726828724388262000626981293584860124799585641929002764819182596231458964214542807350583954108534214359592585000589191380168548810962156972010693901882964494163567144835181398687434145070579094464450835060600193232848140250287844943049250323161169510110580417423499642643547171491377570705544362841246743746591653792295007189404878447842377076059531966006191964490867278627845781073176286396077110902803706665810930276507488441274056727438442121252965937625853862806313469608606314269961249211429215966284085869339025914664571495495405813179660006884622453468720916837266647964336760344320207111723732893729672899414524889289741085579738467676550776883879887678946695998671181759387078660808888556912595192127695125615161829784995129837602028751303855184846345711900293556095025692638329067008503224764703255170798582449991367570330038273099991702441437097611689433916016913123785057266581675061580681139806626136683229585986616197967775524946900699382230545715108745026690195653395548388008604096777197462384363057650380610744014982751669555592621886699864917171409491967369304954128294977570073482747040360624203315403086356967641926018876944044746220510796388746087624672387346639029815006841046780226367568452525111886192601746636620196156649461415417372233950062932570906166451158235607447873331772962098261296445465055507820654616813914871530985409469700656259826918826067548813501886210275594086599723023302263482154754984243312781252832822668226966871154767408558982361152839053542604563269628631882167003681466330816958153398359749908630913212924732207958966666060767316929733058710578147430242508197352438718809631826650629195091450804131388193215473224641379831812464047139432947281793247709672328354278339595964994906936069053949679130502843968230228933167892002166489428952200454505932429042385364984237551880049255812002445034207224873955525588678656454043237032150610281250938673205574220358346795355147543362747364807537422870718938532538276019497819466895964346023326996763703298611393885145489180944071830384171231787988046598890663222303175333457399994591755406743944146284768874750037943321775628056029595246632604165962554564258722126788160625597587642412105448306871614197588592506929192573075805879758469593241217912306402409849003125059952357089367117962034296362756936825421774688309973030998599251176376444718193095968705868449778809242103442878305945583734444511800413145632588842867694062820916764028536389445952784214656771773895727129393187988314517039155088100598306738642878282993168403938569781344783765793586294116839907422303770991642171834503367048319244336321873718080762995356092818515097012209394008909185490171490875478928371110438751127569941694927000824464843856065937911809723395737955688908577411350946842909460321226519879474316951558262184243048271488709243486699938205066518977043208095852981144799607895098278721885175400809234267329469471535234171953314048162750176673805447310328999460611051613088243719268008291861511198257799754994635996629830276908603978634814421662460181692365482929786194433907672731424268611323222163320662810148484106406962086137192880502853164771036592330731278981493594579336099690115948162317759739521581492117545805613897383636164338200350883841608736116680524939058542621508386654857310123342497103819746426710133660174007166731803900365712561860225336672905813669106016028119950359421500738658678056687707581803237450635046104288589290426800661648533866750861084963628412151964852809802607464100223102302397260432280345027758167184488922090088986477587476063564345475157364435101666949087964193384968930397028487194248147079332836464925515358728012439504649395599029401314811294477659148148368735858031464136283852795167386913153985146467402827692747210575842094889211729764207498567688297275034693461734597581906811196559131713254146677400004799390448379478583058749524503040187796442731857813853160246820697266340199515453463421054596816627526086540453784421931805418169520173788806875671407243818333997736239777514385178365601303841296368099498610201779499589690308025383416923116257267250310236859848298304215622952828172124711544770306075742979583081152267465010176223217381819082433365927344484241389947842131206788883677675739791533892547649815968813143125903001850525397593472892807217629210342400799334323028898510326495279257391384759696355898081105571551069000394358342231181790452619617888162059395972713290135340392047869096300658299134447022887949737469778200909064102101038301404928068928148290153832228851437479946350257507195314592475678846330415613157614436679033229578866481058350831411491297049724150499733327171329651741100164193992213305911501866573768656787735026299231035503736039578319161788591031786070129801782970429332823151141804465611940906791536248720258566657050244706835911410053315820231099138767915115361118043857076313862221730643991519896095354018493649241782948174740275672626277991722634636431601628759911889300984634441373333605721870023212380337369097754175851221967465403134252997688825946239852447348479058171390687444508763611498467281963560043290074158526208138117692687919924303000888800914346268750662244485519451635175719573243921376674711404997542830471898687241742165544380265578795069301777805717520717291326336295122596779470936180697577990699163475297639919664453797431853539630252413048361419226257935066407394708755273100159080265172537369281121384631657795453220230315606877222343685588878598284725230438646310429914598783642942176735181241218860718114764530518876727720239275443332023067208664002022524922861043273059625638799801846333977144049191478107888501308907500373796546037967856237279966865745587757793660840066754297523075059070029620357285325534235637281753981712390051188608406077321506381694585653336915344685956129385540420909821787080408038775879179851577742910523542608049509916492928964768537047488430362496929809103828096877423479388445502112292092634551372199181368729476111208501626751789468441547407305868594016903040758094871156901899687769151602989951213466452070054721838582618554037729816196552534086003230907190757116245336946241554641194090321610405981896903057904421030764843571002307573672722453183409657433607555970448709466470347556726667409433794825569772717405473658399887805111239827060221509441657780838466969668156634736753960923740256113261727398438480123810913274974643668753622636432759260389988462846809465454686173424929989319975496314933555569142406776175227273367089358974351234899728740722645795319682970295461608667350323032861074684830462353763411737242560817630736329343153747782922305217251148558346279806684507880974655799478636037990540002574870260575419489528582236159915827532313274065229157587109815279547275606495167080757722447481121098073263829084031491481225816245572866049787684771647836830943808697615215170568918584167015192655576645557414058325030112838163891628002792707772598430508289850147221385444398286944495896456315176120134656805743905835242931018034097242011477636079670730342859641422221594041469774228659536059349450708604547528577009561537792784716095626663310248842173354873265059994019606241818314963013787504253309329749490762377800989786346244606107300574210512905859923478485861156474998153281226233153204796498807827094179657967830415400498196637504503783652661570060543718335451927653783821491660771375172313600928585241468372952408424084561665823932291265383668120745098119017846673757207895483243008683744698959542505011922940282039069638105111592586028223018692840952315384123827573394673916835356715753546898020354847349595231410061747220329510946583624901443718059224850689195144266395509840688939769562110688600014658235579929090216824334978438396208143876612651577306032400252843167345452864296220814970361002939951074222950196261504559556109950384150938078090156734380990612929384669741197368282485327491289464076039626564333147480222640815609915218007671092210162215871613029207425798732518335354861169004732331899459470146579402806722917759848994551817361774283694085956572219539050043927190493095831618438965535128351559773609615190366887025521597444252052988010994553846679106982060215080245471725592065869423798424654323337158496203658480432013121128951211037181801345072893940538909961551680950443549032645975155125408442945671411080338351245794171594219696225403358347211803372494629577230039958008020589641043224406834200312794871950284012266356268462743699951303374176768577471318028318162724285935244907926911668551575361347423041951709554192209376615385095231079365859184124647410037641057149293883356032302337585268968501931195660359374162306343074954523908852334160857127890096337273137051847064919415080492947984955780792048039912173763916297272341291883096699616789852987597372717995167180210767142856384595970846872669150943623006673086705851266905010814414250052602096076272215192936997299511101791575998071025897592367296610308352177797090394954003577896027569237025796684764630746947412406807621650946224510946016720679600827384575688339639187416474957268016019564029606766002644489316228030316614058357569221400030333097256142321729089925914854550689558834269066145358643631826573602961822643446690290244322920085690957980649532642655286744525993671515576019440926897669179307507317330840215783283929976407388844824153701497358870625728943756266899293995033275676460351953973123858289276026495321918652562396921490989798598710874294073303459784254623775444585434235357483433019477752761015248367364377907662786877457734510406738636366437421888038316175896805560738150312562079673653315295265203950054031802844315953834750541758476510867572964727250952347472663636581528288386086885383649966967108785179917929568993795823441311986541532932237771947281123336066761583816902750018785662579204416515367555024128675832224525021509525103100440216452089355582023191124443948765001720162102706253420080399691293739726483279957822354972877504427219515195843305910811982311227187010862187661292140579314695278532849904253792615879779480801590078098376567713711780935655058200368534641156065912088171794154300405381216470052430714605361593017859242380413665373083257190342488683960811779503329433326798486748466851017088534143073850277395809178826156370664304819376530143156141395450501372966875539799263018674204836329043288832542236082138931913891988672524883449966038722819893330229836915359791926017450019429041867816292213549135293818881476003501208870343594168791549609179320966452919569828480284610013881984855953311029339037508981287072394580509897346586964656944417252258063312682171193501070533495633573716359958348778615403619769219251225872175131949611124728481933084987338676929156921892543212434321844038896653513839912379016482199428194198343593651388463931701033913670866192028833001319964445671656455605121475630268894101682093898614176191598656430553143739727893486501994466394755824755070345690182058553726167707885767170355790917609438268149515940941885738336385932020339927413500017133081313856618245429425966770811998255202118576179563278527671174927190345914910842519940202194078447425099993294762778549170927747086573726475093857762087873808741757586222628239149057714333629532212430383797749413801161574395942233847554556116754837104985758402137217851592033665564992239358126386549544317649802233127528378792027559994393069007384889541003499727035074998093198616411242121074609684099977970476481171008838344150882010742154502742454410635299691223996635578569057765781259419164920956924537117779747846132066832888511455866509387262714404129759503068801869723434981471094123501015939330627794608899325040887002439284386536735382833553443447114217661054990624528145427869610477927682178076547464024653474256005684962170435651508360483821662531811519102057062374505582521949022417914156877818492930146813898098962513553333248720075247843534291463229752049828076240383929108510933589201681840379451999922975602867916102281948924880713573470580285490956948467577130451412785398032598485238620711480656037168150872414310693989571423170600412893238436958413134591247459910708742642038133028563662172648244547423987106749768147350447012008820233751936400750789990877150050195427688254245611747461595656779060442990706444313368279465002796088235122567439683751471179842290912678259924948774317472332281491947928096433719493261719181726151457893150210024286208787843122191823465058722559683808384832315996732570727339270743574273665915994539212730321991477915296537869637415650879742543953252296844193866384566620089582679273495657269141177097491078890909464757986149268177679920038662702666949268192633304485069426000653568002609492584521171332429330494247092859502421183880980317949370551773431194689592598270090110516289175171129418986194938922244346021003937975650164198718192236484905104563338424998389334607210210158619199633210262396937023892726163581878112668881108404864923887149831654645960010266606363663896273549364413856683807603275165366528782718300535934681178856681984491749972865237351487794879603288554801697787653969808230307301703486872983679515464752307636811126327378071686395092170006491634647788543249573092813645543402968861562408397512785402091153505303715619359438617105825085134181572898207713489742173611848412579623447454672955708030415526327497983496381547753187449510113963813474189860073969953465931600491391367647026042980733814187679101333666196479830428885371194602596867631847647617221720030889825020781980171616734007893943770609610479569494478291066507765390664455029944693235556093440171828195833906997031620537950914152585584355899246033543178103105773956151462680424823058998389646779719281053308877647172684573400253941938515982777601804600875741756749990215829439801385963281187422077754917721845874914541796685717617877339774237413227872705825829962465403258953384976711771099354384591793774064166737268923342348248086398883641067292877736322061169019029195516137330267086618551728788957788799576091648804486109517605595318042131818580901632524703835670911974491402991937857425508857275461939761529900454841953776677625591330163212637426075255754987070944135835713754295892259510174559537616833017412452491495760467924849277398405085794065731940146034254882222720687884310480287947109859525759755863241508415890969402630494521368528782823762836715028473538039463702461271867521599542226042463114468198431244110757463612129824117514649828025100750705420728760345852358084384453001645438605715118771149324644096976542647739935626439421027130683249869931826338698905820372092222322293127221005068956325701919977768047509756430798201864783053326453277349974259391396726911710593694862538897865861604515421994517295101699153171647321712507242358890825161353764075450431548577433047182679520573922599170865123884958981372491084428708074301628522481120000741927457995031163158647944560609532703387589968234218618172675387175404812150389452061099543650916202258864568518942243300708270297246966268704663380858657744732760438049973114288613126924274418953973098759278432934330956284016339984103664412600457836153896129568653986077313423010856180563890628677229787541091421239528708930976864035645888633316228339038430459218153424843159076830241331523769156926585227830562862201776993749771404505091254861590872932315215714174795506431620751938116624767136584766931588740618910788855432303316573944643577132736434826642318976512030181898583350907135867369984712104826801764993345848828901898854922339694341720527633662397654439032040949370069351565908299093106166933963202506130331021455606196747160062708960981862937762806697252642982020028927819706468638984082146422095983852702514138549238299072369417693773480270155879455562228316225782111553397201458980759845675164262443508518851745916197486528027332776575284377856505160664078947609836596559522109208593495496903977593966254503277851591679514007891013203312769703148863099104514199265459338976326384018890990473716699793269004603953083122757454581608196941667390644569217057655584816210713117214978427510279914437053275423919234344184275412912898015215746376127705066348952277999484068725535121374767512780562284970490795951166372393750899767951759576808633327555319766469493333587139918371333496374920704932976369772698701580491477855088331599575380458649779879044421347140168187387465412819449476735439097024826460708397787260379123526152782351379081767388601989888850330346530273547400234621718271269599012323113148216305830653338582165014381381000189472044624975052609559480002824373654751775267418123536530952517299893680190427189386471190167997610486101161340981447085238119320091745215217991563105706315749416670512714532892140862429930968883625352741562848392959433649428041968329907495025912329326735350062831992356547172841351092807847368946160725790143789746940911940794109150316083561080041632389548198270910896546783996507984221552407816391139584744145244354236491920510733043054268076155955559809182116437313195786681308305036127414860987898670144905497987563625769230946053606052193898387618718393304788219195879994455694869165803580719797121501725671377879111589585788374792025392497793550152525237456972177265166330985282372610442738872117592440651750916170712650917017945364578380333003537056219437664863992477046956280290098631100688591730071547593872683340057278050133394815481899242227425877031381440831179741285674404945234309015418879769122354942584971844957013635686010570171008545813964405357576623597359520347123815375613898828093655988198853473395945705989711575406104571023854326381057456109757335908278665116293541128385282829749831429585226735544981411812389539912555336656631790384440708195454628216169032188013929894678236207559110601965880300085003086682854560030273379316786438555790243769272237530533778065122761394387001086735689218200344113430777742343344000260126262339778979562279275928658251437385028702581336500045428842471788274160564482463137746629779332922325249678902074101467122537610948936747946560986285338670108398355473968345107207426221297079470824307685560398730408282084032524779240680949833845795774164602569987005823917692472806301567418475114239873763129863105766533701636516409696681616582212473735814478461721284679747294540774188805605392902907885330584696634658045047833205009552066839314562730121479344576462934015339424503713788519116273710775824820005570030520303957299408963844984780443476547191936424585337817523155018726743168063045224612832633723066783596168432998504104393952121048919140716799830301438786352190040627327737740900104982501903653257694661308412795282294058377076895056173111448187114730820066944742817408936450881228179903001546803849206965937781781556012452575294946307302388027838853720543820370193282452199757293128111469971921935887386644716167511883534550255872516303555360341377073108292011844031208317970023697481399755820057821722478457344741212197491969335177040055806271159380991906788040470117166602005976111385536987175739433635583553456282039318521370221149837762409838766511385995711393452551854364429366556973078521103342626915777465773148257402323507201817056260289047170418239622512652240297812011850567152198425730110708990529710963539243817849821932247552495538179823191236447971582463679409395056188854843122605156470597112022604984287351741032976670057707181490835043864240309458589685618145778941337316320683351890523832046308557547108940896258069587546250221672180067387655806381497132304537221563200307930314847133276543379955876562586034539378018869001731840032101729340318713310311818162003753445832091509021522955682722191494602170773725235299025488717120438015510531794122014997901884479083414684159059918789856112171904500387451079165207717618478392116398492539769217960799209692587945958063315482457943037331241881126488796152381193408527208681319940829457139871964738457998863349688231102990374298605564924435277362909439326059056049115660665305864415292215174271319036104563951206842722116454552978119829994175076609115382377043103962858004933035793152427710304784282973639360347275438074920244232213149088869672755855539265831362928709768124805194877188365504834797613406562116390802352424398825275904582344598759666546020415308152883569809751700834319826482744379749983697872091382612278947828093874745994141420258154110866699041271600948992014653150994570021312218678452090861721267588778509273899489287956991165244006228731336117460023108452283254819177780587903004312382409724435431303973149443684027237289451598021087957974216772439396860348783543195680608691201100658272042583422083495051032438038119408035282636355509352106658399935869587057029285101395040777880966822538060018496240032383213433812623787884725771197142483306620084807356423158210958072905204302568886827669811468901801462535070005374566962086611665748564056148673329897952542186652014629077820883983581719672915434943969880988345731493284744699195842284348417717494701750927931265767898319507538345315132515390931471328895772678591464714846768872893155862327550784243881251864918068272520008928908152454950964275274006045271157204750397786067785473063384180629158771202521501282745944817632181666074628798189682556249487832561922708748799237466702158912000944727612397026904151682216266252194228121002513749228110481664917167780290852970199146519228099407559037282917355160271981727642257527556493907755941438574491678071502620396896663955753652440936144034611906588832988953712234782198577463143035397301148467042016895997494132132146612219843418523875914010468864174457654795802923342665849906244926988625054453168844831328897134495946500689444349922245454530512081707156665967295527163439041851084416697564413927204850824510963715532118567225760118816523338186163024244374014854910747285691787856072838648484978778499875809172081633399850055160699421586704448382530151719542072554435690588223643124855234035056203835775423566087306788597487943466273635994916833842604645987988527720362270723141266349925554550016635693215082819089671601678100108284756428539155075872734028417820168020202776125601510330681753329331235880268157549401420733929323402438020397796163699636667225737175846020625061880973142070780419479927121350073499387110157640504692826747567702833476019114976721535877056698222324951052061276827454901544994461364680042346337589506915243180857290164723454953717683631319613008386974684288184017377358300316760908050113785848589619408296985117213688977493794349795550677421954210340519891025282389136755132536552202006028078380175079412643067653669310339562360356312871046256583653343833548306579869386472429675703060181330723912632243482832393384567445561633385162839461342670572135360301506148145659518425900973229153138341335681060283085829371316484072835680280699813777702871768498905957635746013606042374087515809606009806006142613451818812860358670005194817038231980611880263796672607410554023534406120356452237459373983139806484088501932247856621763656137575723190457748954936150700464858899515761578089532004579525650190879935757742507810641947709108768546211869266814601979369217188087854939944151303725296496128464310692138098229118799138622807560368539684034598280693524206947537452292145530930675754051936603452489239973676126662455661589398399265486415942901507003829317825584354279582771617024668851602593509718700991675778290256134095134244800793301537501135629985473847137781243239659531602183238711381073534425103131592759000863422042808294426997546734401048271167558505039040964817021619407790538936115799102334871708858699028953570070997277649927151367639791289350742724163070283943677044354852067000844975355771670368262012979723270616763466203881635881542594221885393254069018407450614334877023251320211337500891118101054271448053488254170806460418581596766906721872771074494050626819637228814397525466222068131461437153130929820033735415573569817703847307600249968088587581759131637018584067114744465390688162257834299163185832354795710810334237497231327399942351492725381450181754485284064323411288534076470013205476895443120019974987910276593412821162892204512918620185720583826981701803878032700154902822790726265598974032643878058396882865366926166962041728213834525444144394158046845196139599326512502527477295458324719590521043745910203633513697958044214635683667586647771809091017462875054241373998370808280862867506400420645049382845592038631239838901770931236481032205340498533585945396934855498639913515264377937421417828818333253039289322714838738359822671837121328265464228060033630443323004961427159324477100297620063408297438253003134685118079106797671909576891391900196569147256092491775975285688054669831159476395377533145833865041267620289645320738330447157547209417656659910679963939675024493851713269018804983748803409885471300007883589129404613467910042540777715334637686189057237993974747530331169305639912281380075111931784751220212482932339218470521978682680398362233172810107097117653924014526752910772248371760980058352659557736224091787306946410046232791486479833707222362967329661207236880361310484573378187428755740018925393252785318625199656733482186671280466145491140463361702571553137522204940098426161766734090398391551801045490126970957823513025671799711202118416917385535531142329491251613560710328458085824302162528366067512591852343863602717161527662958563927285777403325205278203040389531680364965659799626261545290613216300268083787434413412620762397391002032543494788163548806993625010919663093850316529039994667479079394422063180827070087447468212954941651469466066320975917450240464120655634508316761564083371308471776363109445935478768938154348679876213571213119136524930483032095391622597399682531146594541878884704130773811124481734166874228463250877243013275255671914390786719623231238934329998439003280520029755577282860728296080215738212696793502432895766043561301930925775839577627923235213303401170069209764083686713142802503610268293925155364575733926097054555385003551806770752797355874816640945061951439976107677687560973206989550050158235539461657592663199731462970264979111544065799337401171445490602711499489954080540909028903280988910947306766090342401085457819938486565628382648156213408795521123856222323522364079811339147796071631193764846921344190213058280954454594926558443372257689349219540828859343502510843867197308889379923154498985646917103941507950099818126284316195329239219254522007629990710171035924623265452385490284400611873676925927586737213554689605298928162408874314271670070245435671046247075405714183749064283359600489855794324024299064490917226922722153586989714387798777447848386246612928457533708285075093105125113210979821925940132836301222846996890097903154734063682058020749900759014713850172092440393073083494492616894403048393782003478645411682207107143028503629315661200031887040274554210859739173809793994071231981090435256179177264544605602814046824048524765914050653767711649627046067020092048437564270943483451318494262866159121333113910617738197119259729652635260534281083465274826114196720085429530478085229843655010273837233095020984289349039658463459025844587576853877245441712432034028075767996825721743120988482637749491612561808620115568213700846499964194921553783640864726094318954299246281647104222777424420813607909561669274060893581281281184600596908153250590396059611644090567178707899816835741860311516952306418084139308728057169160701639332942260133857161365154121198031907390426683589992154786002394792240548922318972715875996671972980640679597447653115824616842505310391598570611015744820095332781582262755033439679468699737052010832488070328846325248519455826582527650498568421240387186281537430885904719431155367693501810257542218752612371737247167267676790097364214591318071209991671452213381221076462080505213249386508409449729797482439158423759822376969119252962259925422481868160183351103302661842153270917683726484631575158818268454062721238555819295925658237518004304441908447597482524180657644281072130875545347319612070906520122002447967832616163499009692426890802729718400438362278602713150125620381701013910618710829781704082817660346885611075039187847634571048299893428561999794959721080650528867674871495767283870893001923769579377991946087155667355305361946171234831757387903778816384320528918527503658696975223267505426664628769039703755271580320614415162764714929871724826407246701738731990622713163477946184604996065302157460972791123219383279077370738138816685741225859210009478001286177990757221713452675544916913373089303218186388354463517558712833938949627469002309350457649616700140500118286925734159244633858322288573221508026662924296605276551285518894889267791882028387395661437723616502565821768554255612376709715754970399814518841661312662643881613560947941349315902915009309552115434314268266195277365018924501727610664035285841383345899261748056578602104638348772112196079119846907418773968925125682246696139952322038354403515749975622069785304779076740793069391625277706628702212340057513102345418607657975647468672645543755403359526805701210848183929880482318408074086384221860645673749698290715307711521846509543023638509954829198635705878799803296763834390636153922296543732434745041216945816847983247724769148975048661325628682201705005352354863331927942464577579428032421456281548809094805054647637104538601339223795267607611623013700154055989512131434301058360339894442952590352219547051798236703112532711332077922475115763171216914833224601817178880047448001086555611270914001738819104988881227520788531587611374158451078340184086396203106807094912207740814611830104305489062835336726841376559423200926524741453020358720524725810409734677140215129360289032058893033017625910113849125330839849160748120729953474781929495880651411213448035094196871005110357162706106372844104037423671249182464290872453262192750112681130479064160614968014898164193957781514736916281509865069964737184992689969409596828269234279745483741252999861300897451825621250017372789445492019410330730176705067062009386121476049994552737615572352781032997509116296196194947704976340111577063291678413822162916115591053722040054470492238201552125931290755720486663897325166763474584282699748863946613130200251971923135186668400856527453035789004723426740406698858307742297311156844691944456100968716777078810817091864935700862623680916723919150296144505458265579335399297842756640619506433978092111926936467557015134554943216724767713382056088185645119118720625626148070850565127476767464016326162045479305361719703808919825202539523658201171217141071058361299396546329047588932086293257912183034500981632007750633605741182085342676021220120305124232446303650427750514531538962143609007653863898635247075631543264521133935074949032464221099997906701560863174249923645535507610099272159777822155797358566022107218530605376111128525782416094039284826504029421785790004050831998799362103022317508427802035153062148051753185039136385416834932925943925073470126373638392829162612221939486911331612670789214465859720212696141514356621381130020372171134740369786864349400909849912324640381165236127191075452548814407053040387550064330373018006567219459426252913943087052186269314872077490428212850846051956017861261990296395841842580545825609619267242635791157794755465754727303384329497586981049965878171484654190536118749781371978763794492777302680250157991776687245932524657749854350728076065158864599229924982640033855425274670962073253274484551949746617171272273264445816930389247368897466876913283088798497831200084689447634869047054840460659934915493252268971472051292782788229112700448736625213567579091487286933845387011646099768358965947443640129814069864062194769750277279872264089600684526655685840043888169517189931062159998162479930561753403806669689149317365862992736623116439188137426967033233635596120872682684055131514398748888338294631019638674572507303837786482367655998484877927552252255458276870126630489890638462570661229650358434142227053080787789095761094558137926161215861680767237869355889660250100539644415245679604619529342044718980623809891828152828329905483013864551553543279292535524955149136127676941766899504392498874869227232487734862916756448618995996987370176632354696256323483515462506208366062119549496731503929607386081810265910429703966694232903513438263168896163910971436406110750920294122085727468671063338204541198513476169782253746975814287861781761828679033042666818191939002516897521362119910418165169805447756158161847610153182493242087552875189446867300814183108826535379072842495561363132286530803383735061287788677434824278332554662763435425633217492516675145184300017063889180735794896304463873249076256611958971084784049288318203555097542705371210794095629144930575773636229799690311098321949799370557151960708191754358529269269541253675687714018622706428463068573395511124456823406723129564052496673851892756846292183522460699076558562641312041971559283545114423977855439983603852160782473444214263109044245537086021715728180362972523775567064394043237601607294756930159043633689287926299149533928006700989439646609196127732493458406988810205759467819335228072592956362351366442865633523880469960903712566744242532176004676152193800789184122328748164493110090363530009174481340561579975783329626101604929457827741342833757275742680700083116060463781565960767311093662501484416302413106328707271097106390608164416902578912723503162671341463979161486276810788941510942578976746418673767855250434296365151780859160879473180514430560538952961709475859142811777343572491755175866141551859432701303679353677020780273157926812664683984213043512643256460027810527735942079250867542089149834854041191414229620916218991221823235989765557726594514386175967551081811578419718309471062901856677974780868634690435485414091835897690614557992396296182416765389821941612906804390701765094325105753427113030329140688383280641385938298872726305389394239749321090086910292175453207356571159575460149733209149003725251868129309125990772628493793635002012004571308792617976466506494450105810918397723544819669488489574903889549333245489994495680749865852627850299772519265407733440760173391866158290666900188807168313645572933883695458361010342835419969020512019148138454382864928522784573425277908367056399323549034252207401664749663577581840208573307899727585877517079197375074915166271153708116060055113987826705564589157585583477582700543979636999451961219470105837880153337701935702563322851971975554712750850738105621983692553433543330652016315822570399613007376372063056846610225725595061274844209473862513443506034026548902129664229976608930473324720857215471679493027494363207114096650689107416064371930346630109176093350101555985515613042120005406670115410885151802709564600284770437807468801557632832060930296064852563340784308292571761736676884890244075756266786992103956127508472804694865210312314726231144565480229040256748802969324146078016062706846458506114403929131441749850627899003452970771105304373425411904272316015470721963688608209528533897187788227678634660170920142883559160865878328887901324158543513054274099789099787840999834127921640418115895033826422249540061628904494425350153317686354344015014219753475154916481826023764928743875922982948701186124953412009013959699518033929756398049070018036031696984974079192048585736913594059593480608808772700830096295359493705669791510936206920044493462533447709991410760101566583337563453888745288718721105326923001932097474519456797243472482584918296047997990528225067305637295470191710215735502573161607788687279618034098363810716526649404320091780616529078995350483994213119841538913374912708974180914467774286279060984155790740467725766532031046185864313522600273020329084413016744818061561166190368327481220858908657648992364845155812898531517946690334511343558434314039557603842965425828313695448296350639123595871904305990211818152852234424359763001605796908993635210005627851482571585780714053107383464353249337366514388595899644275177739237321393809317317869855354809919174049208495395886092964272786968386134470303613724692921837793819153950399918451180638324316376940550124490348072209745893167140742776731513702771170598173450812976668882803366625306840167575799574988890829498525870341694542305315276651145687456097341500764886525732847801979858268859481629711755338024816798265894908062407654821855874567704843777000368303033102713058501001780433559249654463846374018833641709542904002897105559197884987474737977280331035367475400235763303482993254333409618899913287042946960534982743978285373527739240870866266369184623591199126283866807803194167422190690316309224938980236018046323223861155049400251954567428817333745017706569084304153680536716084187353299353873310364220349206426693722687039213490122130373247627245554696806355610212960667265884766616316897062752466514356280343339341906728306127723141713753818897690111449040916978528652024918260276934389342753002496795408673016908701604753466892476238419326241418751496102560808735425365390456897579396122303885964026991015599698508736492882848147269114123037547113330434028015780650526316173947302230095511669050902135686559138941965305795235494448909978173388141801006871874473321634330863851975624040698008260276941023908424380347374609793361509965147543688713715801345690958685981152637320023855700266818788247115426046991078799603713358625715708142978918618233782629291127651827462065012839887225560253028262731105084274635640745492035536843605391157843114723979786960859999675389490451183144379618155337982231551507256921567693013897948900244502497981108022938678699373053416580663370001622959247104318607915670714099969540634186306463825811915522749826840562462443059450372980623237531214591703003766982437591705263243329158207936636213376712098932859983624994327807855416861061842666549517738810245305065834276175437801793852474552837067123525995355489073930867084513854718925799273087657888014498972620975473290000631429285210499035999776475390865221628112960456448519415862335709991976539220124020692210227185722481843756025503268508652052987760594615466567476387942496362964775720679971079702390289408052529560986406763785658654212256976281590505432276609720754455925223625755459281776455871014005637992749018835227695526307445946643414183357995978451825877395832399831969003869556281862239053033805269887306005326849918411049418106426495809138787296859192918518208625800983111875861270748992747084548547874099558713279400047187591608218414145069289645306707617260431335934477326303448767827953349906443132744551766037994045542779798408456506005334173628177003486905478922761993879072197419628619827255440991640247492511028944117932401329773660267103359919969478264109365192565281333504739973575347253019875462882293306619347751197702154456027387844029255783957405155454267294938428486306967448403972501642257300514816817228006844401557785846107472722377097751072433007578149171504093565066618391913959776037012527022612180792041215640079222869932208203021068776121911068478902761994920722007787524730498163951181766739574358641047168336730231697837919782393125974152830435810201361649872850833856129870363477109102715127708164375000970538751027741697373074637077274231049376075026212047723690667297576237687858418034925023090338293166507813418708482231784437421699054673908747706444864717057613836333961829936447116758390718634486195892479442640411573652723553033487732724620119902462593739290416740557457238289358165931214358517774548140181671391021016836864973578301710084315099729395154526964395190491734998484586052007003906603210272885059221862250652401595027619239221542155099360477258463324564733397241913740625329129988116782173369735399709633375524365615124746015485252280363738675557825657981284338398430521964942778098140966259082315723975379582048692562260919546400026356259491072664301154120028213936378175365772063519634566022028023135390438122954445075524795117728110262036372705674250332565518629588452808901043082288238993335213858984358546851541553977205460248445598152617149445721229675394336340273534932349453930591035572771998120432824997192989492776701558324751166039009544381645080085366350666014137626312792527505240328518739585614020050798352464965484534611958073012767825192726902283773352801113407141878954409739246630343531463897017944693833321318600563035014578667225579564613113095987682646881625121140237638607959497404653671897528328555352741370499323827100394400150263828291670187259832986696586102835323026565769283531838673592457322949430834919326071886862975708574228757859814424972438691106189276006651933888449785389285030955876812250797460545506682750124493834811847435684599256939648267856657019064881007673599174045728784992841949286279154379374115742276930580194478441990800950171741486544412267686380573152405646554037527994948165129142192135469894097017420134304562796973509707381171356499937095402311144805716782901055111860808960421461131819933338957577513165201483497161505443436503358078170549653441104812865098136398494993485763884753845194644306152185787667318582571257282292806870334014531601984002212897133464237264949002297956966723697261411909351906874753903608517618439374283701627061385226236511371994543516774940695366104152263308694437252518627327305654177992686876283263191450933018660475639625635878402020082343160572797575706110493337031613367990449581958531386622208261679827712835148877508753924553859172349986189409742249960446534603954567014705584769694867397688053210530743379424428036062492108426814045445548834804354225873269295354686722722099399145187598131433070006932356398828952499609685495768953315709291045101357004137421778503385071515385593391579314721116671219597967412292887636341311317338353646325667705028733287746952028275596853658723911022482310229550341413659943886034684940486143575994715803004265601277187765183411391289631064291532030637606505389522986213943306601799654999142344490147789286019804403353283821953466614204122516321925335360217542389264544515932026697265832947874189102921968813960162023345670356421307582926978863390426481572748921503385738513736980134933407335401717801820305009924022681684134179906319336242848364059683161706678671729276422069810789292222823337630820771913218524704396455744210594600109992514776691282954276806059312976867544190607383610529114510547204213981964066654398831081486793786705939671428230001840336490788558277607844762543156429972712445788363923202363574148215039890657188393283334688168703077284708082227987565613730386431139582203697661175266088184063508207109188594846282516109635713757372660853069374992261441321853579567432502538961437187406684687475914365999447019422579309177158936151543626480514783543395645445540478545285359520729057252300834865986840909304744463459126424512220015797846113129369289504618199161811325640343400863553649265895522435739659277872937222211513231495768455046831071030289002240504430635965995482388855008184020860263961600855964392852770351093866256771215322470091083096222636202076446400214847735162632038414340563012182195322692270066340746306405299473743409829214865132324562061320689744525226782913708639723174699722327825192813288598594463454777754375974740623375528439335005312723740354659972108585821237827986181270683316173358424367778234920847218534533214091973335342884077733729037392361437525288230959669368749614795160584629844933841318651261503255321630162975033726568219965050826053386086086191282690773715487285681516220908659267704183819445126219489026238309221331017313745911510999925633827547514430510745040628157096527015539932351188735855803422021675863711360613296401506197253651754646651202491888616046030623665914979079387324780814229797019447681577833468473160314023581313388120112819590023943587402061925626612146192985221768852543757990336312919934566086881780968768079242903147495430465114229844683142479163815297219187260323346709230558399598006671574821940804059827761733437688195076074475148757136586210690329885822393688319334038951279939141902488764012465688392316995902175439511209488053216552825956023219052150387063783742767899505219501808219146600001834789031041406227091947659446241717801626628021818443024003551236754035133665851674264876139661351574373975275786910192460629950556053780820031190540854573102624121426656669270743176614954872179782087181746767842851198500647756077346539880330092748237142683803588832946361651139847565692229156158809566049042171183966282618117455697410417333998755740435928026418198603548564770202396538506006486720735400775089093059149544003590847726680141170571411675933391326330457700642786930439031167486433235727897301490739622076088145615462509973652738340009135027472798518475792391301511031280451759441943733586859416113506649180214744641123924068016996696105332567936610412963501849761214252742200691080911628127007856244385755104571511878865410206867163135348170065738707551895401565027335760377912778739607056131377581556626667696269179680512866081860164206351379452329875425739837656475139369517899123272847374860913453963669758137052717672215461109799220653861393445971513943774225657060934417244350792240695251607774264746795020488320425522043375795271775351894653072024795642084069845910095017779269173341396544612903710714175889312422626145093766155484406624179955816569938238257953968461083895196673996506754149679325760939257630101418202472853912515095979727584521917863926512630425290560146323800918701201976504129276611972428247736351432080751742300550969531000956564402849235069797103702265998975930789400673232384282064385025471314676554123027791809788925032753000290155831075197586921834919687114319892429459287083197468704941680751068494604631310477528661002042422226150528494299804605535043076908172830746667800665918277235577850390346456568955396668916489705085955298302295595482406087669634161887172499803443588109454370472441116329223004604430172590535540258747376692797421977207075699610174699903432044808986967024024661270468531478538097180508774556531882322849225894917912256575640897738261237417163700402594600875983647073233430029563859140262145044800626999719452692283994114942478541771068521691140060466075557538103615658474028870055672896034670623268790478669726015947701442560155200841759577719789214325293426812017340446401076528855016269825723060174970512322027561579256839921556449298790587412646836490619152709607228201068989717030233157410116792830476279398471834580257701790200384211011446538492302840832497106077122986304271358065635452920961548735505756905596418297949776234133856365757304685029045984899448014191969415064293934006068651114474043164766962963743940737389099036128154151701331082646174801911199119714398514518254901407089416182013217063863038798693479271315485554974608179629842643041334735992542838205010291378151960375820788715446806795384426665004383044452888048192515565010348767515715445016209571620740177493593530243073533883372448661861504229587726066173021993986374437060248756297642880304445089979089753988802799518094534326638328083759925971513261225320881166584365687211308241276055752258471772177112183779640650383270255587745512194764260966590956056801983313481460658654835143841846712162051680086334319110988942646475689517102988463788565403015636806345501016656911596939660583449499371003577310926505860741605403174146728319123176489215142812845570890021218432832404856698067778696509089375558867908578249320234205070020084675015166134568282111221056457163169672576226186683237548843881304021877883168427594704487353042902471804090735702475144976528682171039297601600116156502723254301931812566061969773506793686040425424682306736587248812326991813086865911946533051798438990028591869824018212539359983423347209107881264560900239610927411760350652838961364208577663749349737866006558157091368763159755309607986264585156523036817355921485542386030240156664654470623875291791748615107075135627630556595306056713923454452895979056776207224957290650040600055477303379519761242931416450077209248909578486564332597934060635475882103893135085473987264853910262081981107426970784065220572209935240860693823808256203506299838092944781683483161890153218710793613032560099385701897322098315564546880480124000228761318996227441048150690174106540585729779644038105472794678759990734552949926722016372933349310978498464806233804451615395883551973159401666195894508527609700980930076182133429450741737940164818366238936420338318032658077100560031861419669098370213531055891992455068219537756826480442897809173222380280115959558714476385141309528620728496023065980175791283923231786133904531931047330971039686117202956793021955151584744771836924045289227242839403415100139022708775799473561976534358860887827240208306054863497582785859967667902631419373273238098993826201364200667776559784714176690459819460366664778484296967306152599677286516930794670004380968397016664245912609075854180578846264778182848687514782017794249139352656636976888917834637175301762793230738685461950814508846227418237580970086954429398833624748001043148412881331011972518830766525193432243449674454846924865307904317457711591081958102694622792677728588217594251871065906787864224878643999164369211346577330726199660439080522706318779441993745522546612923748313846987809045062041660067984794830553188710926833778110588316293454486650754527579629713573796086297574546614334641818745747774734390716927134135445726058103395868568018172462610154054657228921292842161100333746106375137295195016269000718707429000356809033168903256097766387240140168687033674157194607925391142812641702209886091161347876979278709464388784505909150703185723566032549117137079004500588276527543625436473410609758481752808461532734265864451987967254574696375354638539811997526295634139727000886160292556257984432618858593168021128355708489640534466661756246845642079330166177983572281917460415169926787067991987918493864410106303333128376486009254196062524354029927850930160612805811345790913731839763602664686346375595227204683154541480684875752009475271016911993096243335541742090304448413857511557932467179710791861221489395699087540604706164535702105355630531893910317647096579821420417045665657873404257962226199150866737593832709007959444412574678512243002668332320390329820962406880335466392456495342437496188186821183538569186577291547069801936344803583802828650802312970988132347567591184017185940556442083808893795613783210805682824124800993922319697135186473803978697249072148366422958601908368671770167570545240112795344568679082162671712480795830614317135856292529962687552176185443381119121962201224205465738473523948211952507492409032578754018062809728547950844259293827777574374566736531722509466758239627931688279420488865144918010673194346060327686519900456079325599016315860971475331570295453602675109889950381419456940990649045216663412423911257609987248487199638080854139034979373451266218666818317449538978373462361291606916878557685992473326807350549463656585555259684247126908140189660874120403125813313838143193086921671771955670066915296843261814773694782120488204060004485766355929634557983064771216161274378953410544625737184617937089997348425836318006442820912986536071141139901555271683789674024310111515154449591507647436833644794682551031558450765359807668935683322208835285769436743013190124198116211973866082386700686744137645154537762791951523125382629225490123998037739245686577813725399641597785729690674346264302788043026105659879101444599621156489652557973473552395383684958211018428543339530781204977992506240680242716856479740608125939682533486239625169981159642354049254078397590190878162318513516068663640856830000365129047136921731721077639628109695839663388987601719406786208142692852696697895585056506454223108084692645261862376971756971776828473889605730939333163173468214613253636644117505225076296129645373415821931389985732692591738558903744238089322057668358916744201528166448102171935765535857483557459302624839375309230949627939047993468675889852920628577246264067149054765613463078425412827329328737972926740819395644434545278712482750943269671200914000765318666308844760784273789080266518480128612229540196610032453883243429979319579240914232106528606149547193965811998526239961351803641426232789140748604181577309353313784621755967567151856369479728054011325632090342692318508136704059902936882592841823247589484324791444581482655406686323403547033394970213263577420162464657349600059664784190961051322043856498811570432011985971031143292106851732231908744094038275408539717512519200500509826639791552504064387066692563494979233702952083134085179884773334106926115487796482669113774849388649502313969908071062885217089298426132134914752583240636189079040097825944637258619056169877457727748580094415686159924806055440871966388042992120594806261420037493913613433126721657121524105520694992402519449128377209203046817708000622563075746044936952798507569154485608797424133950250357221089131042281606870934307023528276990202567431092522384816699827019026587492496297502543748196840465503589412996329066978133025833936377297464054445856783436426529466118658378376713080434523518293084657621792205028358311785118939043494803282167325504390972558305379186166901663891678689719910282714016770069469561671907946222635853293076243933402474929113924742410716852544079907983665676791196880142688388439989491016528061861027429191694775262745227467714441642499929462830513521391497765642203716346644025515664908946011070377691389813603370182606947229577499190597492252430091375027315574825465914862727134010020175812575256725398449111450041946435104342279577586782776550582030480078039155544062495325819610212215895058605964257673974979657642661426594217129572358774312090340402553551638630474016286013795790056132853915938345217687554005423350932245045919609783348970608895972685021873386307989633470121599698507307538004535209127350748800731825037649843855972867022142057203223789093326630194011819593003065076458009252395366723437011449491544493734688334240972926664520375028900511663941111483924100383373672522850864667844458745385254525570731756190162613093498771403746081952488385519302780187775122159376917072561313337420649073218829884642381191140194080018982820927257218012805245016016561592153286066959940180791381290078051423553180411626446563031892337549305997561022911405968342433639808528860734053310799718918544591801812782584471721802342378002361287032441919379163267585915847051337027493580536998588641251247689197517591221037308954429550991745592142666493332031781069703221549685946953249375672940174415394745304732805658506027656940497303652441544315448498679524049319786464352749223880715720897419811235588819739784443999863459838600510305588642037749330235127489862694316241780414719843799368084202622648541468578717608523227400815719668091934912969246490856974350543342528052244759509899636935122911331035876467010857099725317476579413025790371632526538959863506708927657365802828867936665289871777368701361998950193413332010397863174847554034172321124925847290323287025605436505793096980830851973363309295655924950351724805135145577163634312857363258391727277227272269076024509736115456645900464729054270107935417309846391823943809556580484290418193521550648347947774006742129695842116079703834996752635703438342361862748945792155947057261334798944954704808914800497134182653995158602075356801888157805325097912251148602434103567980767977457381955581947458565071832855400806536307413592942459493557854227773313856998267913613888496068537426449093487548924164045913316984343317835474378824733213569310734191906310661812260300263269091968855841518051033742186617068912806815621436389534350444367416348726745208532511322445287034797730683538525878972613879101456703706292605554034833028383647296767139162102125413017407349387900801014768073867921912326139290424619687390056777601953315650701753763114396813348982220043210654828966437191807694469653971596042148842952336704485315667996836446945683953769981961300177283339739608762541939832757381563625003064204069679767802896030699898118116511339717225733035494515754033843254146454221720374379356038247256550672566292080242302271836030286608142418212513661138313086800977120485182094564372414065461665509350487660919023336181744254821629833613438724624969317547898107199165148247236298372342807222844292142710525963566220537471488283427625547491907119767744531294894836523790753885873620599196151275969857704180888453632933991901559811528111140423418729282911687614252104391693037396057105449511803585979033624642195112250681317299691022868312066481945882151208319103337583684040072341184524553739029318261808821242200829421322947403431775170813227561040805883843236626728174863430853449165067958123045991112475643016564881559140026524760835547010938774315959753723615674332492948419251371451484893329023250397076715658915394132783017808578785417053790678028946438862028314556723207041927748650814058704759635676621667478581475595966037641563549695901080807274536805478970728633372886340712251119317955862819010734361931752394149611876290525290996384186726746024467609548087234860103270478859496144724318286694373232192204212638655539305372226408413164682851838180186553719319303237557587690538244059272392402204040922175360258763970323316136823463205416764271936949268560505558978185585169888047370006682533642057966616636637903309992766898496551619666002329274830243608092591221629204312543629163652009822295972596294367622556840119659421976786682110830337050950217766812936091058806408475964549163643842216596296214128887533948557934877167374326371038638506239176215120379193517883638714660618399885529726641677237962836332823302570096434106699382538504633020513073811241813103061751536062782867145728279715688640132785925099350905664732433733002164392617876023362771225937427454990887242108553734853738892392300067881795771201422125923723597790972435506278181930186475605356855636325530531946624206661204584037427046409872966626488738440701355068850779250794167325644937993402221814048094910773224643409415239064972819952833044267039906692362512766500813762762235128498457861030118762023246075614317590878654600361059671652443238696779066088726119461986064274558206316188519109454099152640583020180497443262493481926167194930888322672358555541497188950243258272440584822267596118313535290986234843419039148160637891483675695428411153264739279187506763759639904880841446067593729029399714823695623689602105632456927885720125548285045050136401678706672102738829054024450852506973364534617121293433859505134918062054769940899430648909016636579461706199124855167378217052669519670030928058851478078089518570732227647139416428995279918060454726797415445107470479592917424355986000501420654237444710507169169847923321755357390545389719464042503010768268017139403677220995425368359461778890001928436795641914367898751015819188105483750932641619627371350461275715152714967905489079573803660204720036407042535941337555606554487643761350018063418733715833265790152360918627143834321617568409352786297229491704087478912882137805865591254601616822528536292639109760753925082004237938219109944649050774380834104030371090994364181542200610019157510857961744535419179295791715888462982645027478915266692135994766758623038165704933549467282792073080795393510932272428704231225274510364509853008745783131924189413394218645536343003564027285334929229709742163887692434079085494304781839633110783021350818380432304671601878205528519231251565951382342994535732762088406512775781577125856276730343854720596492991636732673250698157845777921965305676846235168519031881676132142361181042241600155666140263638693240661315328962108162806081656630862939544702831985221956034430829402247832307027130763471182984980033048796695935531902354612117173520524333233742704349988611650415063480612118061702016109355905190272484637556251759616679980635146727065967983851784488844704145516773293409642346144393136447495764895585759807385845995289336382412328336432618751528993936028438257736465184794712954745314611201448593844459725758597926411455928958654294703939977550259641888244228846439105143560960726469452650231703227888861856872373549271729046650035111859610192997082027703507430393282285744367789130317561234837075618890674540029867298593627982070366874840703960738750739501587047033996007573330532871838398362030612897499322361547163959085523618640423828665266076729980166456291033900634652947153131778084005450668532110062037521529391433438855903173920669031760916813575711450142904119232231054342844594987569362452236662930042166319852042458218011183567435275802953805350006987435859775369576691000467097478667456954699723432562799663350944665458451675146123699156734060535307958024557918766336418801613785136840720602103434571006881316285359547017054960747152939746745022709189132667412445091452447677360555643883897983883919777827078217992028918755455572633838091550058270620915584147334504960438879332904800183635210736771787662507799565730149137046373291655385198945648386662486022134339370893959768219681317314052686332984519407975233382511034998767677489994005625691655333874090297540568562003006051967723535835175717820200999789918926194471559604636648286653779300788224661575803293466311470202636234787437749004439529965328470297262284101768089239835255453177852636245541896200938598366513729278188735088474609026897906921509698082543256468263499357790012135032712772840691451607050123884356328396622086979151365026025744491113699760270730278107160113349741782217136201955008120451263729319355794862752839284718464008432733674801326781319631843752613015808487327209146727900289263079043297681697138825813402027189782581390864759050544546017598030698860452172756720597539029206739568865518745938757812218291715253803930010666185677673335306826988846444455444124446346867442318699986831641520891266993691366410668957155854934693875707587548893431544262033869721175370036248607355682670481380392210505764166379790656732689257172095856788153688251242136419170374257766247699844995820566965811484079899329932991272762549149637547730787167411146435566439663099646573718441200415867138411366327669538590533906845080165149301356132833787557327077251747149654693698344563338291315311574939392139157598276146621528718428657712978755958057706937523010477748352225758554887580915272583378836900487481264305967888192364937298066241283206646212122303248355776576052588305806441145424881442649471190292111163471488203013450444988140376463263878111338395727553706739625805073126850844882484700631722564074043177131271659093477623942907115523386908065817048198968276134429472227602417005630844577081369181402599501406904068270356131367533010260404383832141150956638504788402153771976136423556457481449415095640706384766425901849156735949714970194593055282883113930913640064451938010860806275086370179506048821940277608848340615863685714325212125623615380419471464245772503249164916918275575236213519664389723177211619480428233968627384030538358557502456111691894730917568683618861069837386946236985904672307560259227010043438921980150977333132687122294485300555128510823151155716793336047570439158431437665399502630027824523248791976368141050211058650540839109752773086794813571072508580962247798570606749841105523178144271312671013603777941546370136841982335885774906441268498080250684196095297954814553053696265393898296057457584739127451872777153014744601056043016453347561444169776746539366724931237741551239167671203824932080734423441975565210866526037262994708031307573204943996073147112535815889746936517980679550416304215776834105348825998954020496006820326319765582171265903327115991760059888710160405503221584833794159860384667916008943488633172661432121924763060865389300037292314096376375540090414769294169853040842963491953100192271340401779017180253697033680317654634010757438998731015773531549427406637350017245506616590360079651560863708008597625581878067072102571142432327749174279298783808005123936371864764563132007164585477089068488796799109755238343774191758689720638476086361584449937054780406010818725163327570718686928015415447714099701532288253749922913529891405047454756519097382790538454379845942123205348474980025026177090318553395070198972452292377249741783825226539402640582242642202880822037355602367914099371169782752786852856692493190704208756629974586394397087870022515612874051322388273888542069145451362841818407531833978489409378988218074642113219149021718467343666448581180319208359267596799072911564397979184422024554965487505223604029541152737727302797527055334542661511880081189680987452547694331304389600041779719183479428503915230706224375653089168801721176160777906053886536016803355740757035511216622003657454127810093446632753215760820058208089391965532642703403829820997891353314904697985903655606476851345704593579809211195237058968250790366725656420577222068516221549200060561980728274659106196738171380952620556660391566351026958303352262258390053364974080716107247532333428545622292600419826673839864799803403747070291126440888879019872906074333045424388330667997913302032260663056671033025674437652976105132749358115623920853938950687567589544540377918351596273240055830998213855440009900685246947771338865100597709354142654404386062714460955438701147455636051892457096643443679089083910402240787688955346891902531950758059601645589031592356903074534033063167943073386746538040031461028490992415991969462471753647981053595834430314835694375558354106866962750202158744422931844404637846624909033895602290159422236073549802595467983049752239729470608433354184500415994071215239758935937615168831454742342356062280603745959957217672339966923958909754705654023647951307306136910218912224565586476248702827378693507392623262546129605399901466349685962264529918428841410590870679958592302122638596684390913871531667885483719855839127260787341653706319919402603661310949212995406368509351624127726023789897124912139993916426683873456805505090634399298778506603535921012572374363887820609146266856004821236933208909200067279891351686525578831455082823935138033965455025012640952104998365271741560366136882995359613704973813963553970466978031846524647925414583619903012442233711830845148414071152974415100056601105109722525216349255533435714905890047899881862308707126069273787368331758299113002471278086093669363563929095935737283848657844295548625165740764401755748902076920700290405139859877969905541485914186256174837737634218785324482180174222851915980416908692181623603652146832552744554338718924578446409973110271164821235457237258038218165208260735507085767410030938804989986712811561141805676512557071402070257030349125229961620326511711656213746295045987517644949921995888673741416586233270389348935699756780691990357481860336228503585080237927301687505508189018888050585926764195577019948286441169685295202177313528781756916984517031428554384630744681336844207514304220148506780085237826411826113048951652365973585944840289593787498469042200789909290691029611518649490144490731946908566834094421699449366267471275595128049810703679202481241385626816292165593389605831038074966634955073364684862188317850569918952452003384489842070405511000842330989579054963485863209937208805665019933553752997852766366587974593559787326230739508079629437147393350381522672634779851274133209464764937775480553067329034940758474871970726989560321335043791139375472576335863058087705170550251730031729141165072266097951470339194211032592367197790763438773955573652862284411498533192754636768273272712295271455052855136111548581822427289686962139607742185833367978011162288089783908027093099792116028639999130553715105528781869447573772029996703666952532501947521177614347418184792718052152136297354537190727828733882911789000945420627318026566096255504822131231343066462170553017347029195976916879374415717255794664742673362487877340648267800319249137136500772165928088799432925807846876473205845689959169394762775289267300566267370016598518676171748446897922042296410732279674849143157875614883796436403695229247214612440690448519776027963196265869331064352323846207139227634826123079301268230833952646307993770164727088512198997648613383198606220806715532889672382611889299848069577804545074698539570963149394404985293346400626515941935235718892376857481570542309915090991725270783689673374358583872247180283885004810095368936947055609431692814277971792799668088146075400438692326277464891147189578321844558747554969279628128549609602074601682839102746192185576568393288139403581882434382590551096556789249406794969309651514175221519540668611448636337145180839755318021939769048492393088871326360143847717302379696062324036491996431075446498867978715924338110946240316682282727985699919703806523651058445823004520380157676021876206241856471803139753611485793023632744092440064790695243563339360754146872256110264825219162503845604221745315859322072192150369489078789881462126875486688025993573681154506204227880653042403392805164061643582877005349725054750626249851151111075156555747107178653935227450112279302360757429730977676118224300796215981640851446406921667099564485420697856339250166164750476092299688291104871642921369346572264129343449786472035547233884735332568141829449496351122934045537926161591992930501588227419116828747914368160386615692732111365973231141923933961610842610333835601162980242146642930060092230087294004151592427186680527200363086254605095662866207255700000359188995205112747931804663014362630475390693519141914893245496551957578132249758433873952291461003688973214303042986559847835856460071910084414878149407976350721972346858868788568802257232828480772359477191712332251122483264041980595321755164906834828574386447327202897391585983141294615730035954193216415809553820301061935932436404926636556584739094587720028243955581923973135109664743899406961040341707133720732369342191546801690720941677910709246543633854647433723842239649785898133666353597626469399357021997110478769503090883918076904381815154733592499268348543481097998200059516094280638559217506865969812905242898128265399029758501214752454477313051986723107905946409122613562165305614920535942482552269031079821513073154726535891503776416647573816406251185595577905506722255158242522249824182062502055516127905358210347476233010932634378702355110858130472179501465340550506199958726854252838432296586150355675079332307820853759889451559226818845793610508965044277567873051820700382939666667765684556884387717957115352473512307658837659828308998549450071133440816463120496817981934304914581745325497523410681683105340714519491048986552648594311919130166111075196453983971565369130469828458732809960987395771611933118963354464628420486107171892034673855114489093904703780469171007429681057796832934929612283377415909987744017613314309332688064625535415982237585710834411908974646187118693139329221999205295372261941141073866210768758654925253052131511720026865934230489841359141199934381696544228956599887858426120773128633343202425606707322197201847637823607839186833748888814446935707966994659439501394267644879806592392432882415115709968702987428528947739997112667123753559193288322835738529622977831142918366856550665635048901913094276588858696571041026116074351534959281459659309419512270220967981705160796074966181495772302050194734571665360900761248273280760945243649445677915670410034363407582911860501810094788791510167595422748706695029640591502197597181439861463792381503909461683576824602898299979130388540667135271433323222917339443892400031603972293897467219826037916079653981345738017076427661715677629685375755582692607597597732320270006954270043938756946506461520324632862443797208134434415234055366545504278001761147329152279449889017865960519480042733703835307738433156452304663401475621976979136761443622315852807794596367271632017687184183003723500401713933018715923038804211588700612884607412028177122928214233570487053980699870600620000371894376381175942636203673184285264350123367657355850253172720230137229900085398367696578808861548443054784698211811512468037028474532640236564264125192370923130976345586790359133922714019787605895109148303666650166382100454991361368403732580139445298281651749187971095222224728383096313579237871324049988306583074061537325776119362139910407376716898492313055949304433452635903246413656467073147471544657556465912585700002303899749089166390665547915783914047451645556698644866738577841772635166022454986467703555405133242371150757610231148575484744735326185086378011594085198340769561996042187847966776448141737050009260750605435275531458134966726916761440330131501886724861563005372714255125389434411488985366993033751635197409842833078693468228369977184570059269748420010143160103920507946857285774868498032475968029911414075404533401581468164043630221521368086423701440045936596511499239014737444259826107876929503953904239306433135132894734217727582400697154839876346484910151085577361785581031133093736196608175531829297347896793312595309612188909722865008255779188939370748454317263775289749569426124633231132574088483307046146942318733193213329951933005073423432951824797452637689255597218914158213379225636759875889884055318455698229322804267340495361985992517442296718546043889019739202365097810706881221774844648980140851342186412831688680826812612296466501940515304407376066002382196552585846012756650169827587257816657788160811544004502068724308692692409992496370601120753876642974753021757279063607170855863233069335476386136074044624868445364850282129807134376959731563262447969789533915252260166545727714135580025300521189624092925001994817932645257005926945627657598819283840301791567762487066390497252767005592832287219857871395079855921819399525737551048523866298146219147348839953580257674522029262402299417885773306495270237931561466061068043583332670596294183085837183616750103210793297829104350031507477281780508518736942172378723578148461537408127206701345041347978285624532986594700482263254926749557122941378024697628779010957087862221146366318105323306223871202056272057841022582408922306156495312788227368625251671071577973383900450805085440156615218744170168300220562146144382095432447079925482997421740660123141168147865770374313472703329273651618375735361128134253363309002601413121847392870028396180005719533259271290171258573998626848940302554308667752842812973408599420526721813406047508787561307897423620687793041045972306581548772603905716526839886917222022544643725045874573809087425612641811127009117420396378947245977254371105360852304663526366970366449143272401897567989268054613382671434745142248594652689223764227902633812972584480698958713701206150342378424961526768599302398765874430410376078235844673682731553276461837344528053522218296831878650892464959412948240526855456262818393247527300476861009097254075193171219851218839480084394556666121209757778718517920372247142196064441193215956026897887267860336459123017922580772848941773045102298940618728319700195552902232180212052904349070077499355576447519475785243295532273836164987103256491613129455987489808306311868659268563929252787968488745674263300661399182457404910630246458265205147725484613375569380637009507284581405048437933969984535917415897366930105175147568783789043965490152049393320017397758503436908233022010485066630815964899719044868606035551767801628000831375215142349970229770410754659466690239442964142679831645998191324073105446360020465003620825137488315556221623826381092051256480665396187181726226718301735654127828945615680624280588346370663756209414178204254660725956532659338734980162354294883298832171292353264897715337437841610117271728648292177572457442317022642425098370485702431754969029020816409045286009583377056884183511919164067660516568690742523030378979433835051110397118150968266583489583258188054657070792626985649183601640978554220886046737309108140323541587959871980002202016545581282936631999215990210473041471164636519713510839302811644703476344723186649775482654240208352975844532620487539224765581261131754640288612887611088676152858555246840802584389077219875442526162921667126520215218046023624939828962158246205917131482952109408988883015531162655969444986988043606195272828602985285895898599839100574378591640096422013587288365933501924867285868827386580796965153993020542492802474539391992841267873992879502582054073077181655972841916147740529528148532470417128130443872970927668527324262011678752709263769893652267818238119331152873361415061007430660733784860581467095177151935216853979022793297292250157233303608094650851943376274758142902366874450353365425487457556573532249909482319022499470099263036676618608211545815901277681924318024069583352172266732056243370709190027756886235244261209093620879334872035553833260965485954680871415492727037035910518476295547106858467612399766883323188985387662227120658329147036162611148418365139943364639550860246419814177241190769579934878642901142362247814291004894888588073322931890693064130586893277482267782349703274949299333345365831758391214315581540931446477084460951161498892167564647576375494037432486291325559049322513220013562452839146984918093339461339208767918620321302403246256137191356291164499215076287451836237450535160893954509026019107012679990787458877969367465866431099615681586328953746525530932624555555700387099224662990820839187627307111000781543728951351093520465449743529637735553849327775323673085600708312962803655122560074229424940999239601653355332204089038562943222046371539862870813900432291084341374826482041929482315481400424157520857464737529320951745595475889205677975367394206672200662668473521136035566159708900882625233478398101615328481045299609902329806148318877686063849791059645649626712345242598844751911416029074436748331424151757841998812570045833374534702117078872525000004194584406955010129188336400896324145345183877450901359022321309407843550039763259231064230055299146461659627608446426233226616008315759142220604037924459507399937672045254712337938197558039613415012013906371932819369260499239747199525327983855044377570381326575186786768902050890791114256877908767265792309877810392581329113533502903083646491658236954077858837802103740308888102433968174193152556349274278466250368845022685449630913867530826309720063326998566077113903959175546333507844306111274951417806786076388967424276629685670423193477959636387606830146461726923820987063012145321965363756958764766481223066919028766115767041026192876574112093720461551811385792041437195403932835418674752528916008205036174994394744263410543859876076673772715799621162076437751514120870033192885119350955113951806500892231111930786746132131113770914054601969919957563831749193296734397944753226340814793291276492420485278609752117741833813728241861572284042874127413521254988250080349950438247160219914738264860082036938312529123619219078862888826028108334912550873569179352230445984694972226407470314582057554931409230192466759477561043669353161627354792605118430235477701249510913784392056016423756869089450663924350555444027099890825524019136492178807927342847381626332084929848395896811036086210755321468532475951383605721883776605411839162266010633229206283341405751917594147101776846313394874235819141997556469236182991934926167187623082769127021911391778157624509338351968561011164737897276484262392667797643039302325171832723690471527942993290100630776821677023522973297567785318441036131751535572453143527601821224748452557436963649898037932153040939115674330291149343103667709583874435303615182207003333839972997182745845721234775572258329649836689794523700404462209654379038360559847222695849899366326675467313738296967416860879961552010483028957488596522828507915186188693265305562766741832254296447549323186456582736503424191363099305112825366112257048583730059501750604206928329332348377288751649062624492208179311902874454963723079197492093942992539994550230518070127265021681659239638523631296381345088176196538166877435579021019220644668169934372547630114475101698074241208920923052821456989663055564146353411351947020339781631793730842826696853708127116373827491907150189866502332196919935820388524592522794190748458900838089603438544399153470275797319069777451213158962503449017991919232230743262904738036415438891530108780905834403367730992659956069147518001948264255274239512044289160889472567063864413195956954643887689178377144745321160252651589862384618065650828220156542306885351252841694312102053854665339430138764138603305398566712988270319504852918254084721094756839939412570330390562003048470562731650824625336388227370739188148474078173198909382637294725589693119572062761528136857216659282502623393714498740698954539638850868836422572433188694397314524209774742075946865330482077588937271534378284992022139231517784404161880027102862926323401233668514371245611719855306762001956115000603917008407243527743368380102718438021064641784026909553105622983902761677335405896527197784553202556881118895909733231669534094572392816196360236709145336908844201700899070058615741291172115728929747667007695083852245750608969876428553058276630978882854641470639774693674038144277622378747523949851887931182213783382220549992917037979064855654739222856561371846953896776704884653210609002512627109792640855994847031738735524896302705459815947018651124166924095854869024448995608811714410789591133971785128699944688881650511579176873518769137677978039370750656582239283496630478029955538165229166952234203780434450565237155345864928468866222987349496396184326018519070369408176264841116956997304086094907753515304120952570763899630148925724209263832035796342577464722408486504935552528087933542692987460141880699192198054444651148594154860821512096670733966483754081436457912009030893529422985217042198400643806433279214309710800226354492080675746187315501169780604911198036207364901418607419423638539634955475306664117336167320257498557970281883445606810384566551680758723429815487176967576452112915056408613921363552005712296659602070109529286031518525190597923047025036609524252581217461163469280023328238909281724418094907170594531443678540727377984389248988534186216446245766056910898839816908166023983260582730974146547525986626033540711013861970533526918017577357645240304446696384121883454541494427154694933772686724935524576065888299145357793581128053066962447611439731839866836277102137870516854196187666998096410318330830797321249075547257739499282277969024097691069135884583326684978050738983940701270486974849117852670743005371117329934833540293471415958513331272683882786765348972298738519062550155656307033304911969008103541657560970479381478594569653717568851472780094201745159331812251650151827219896234322771921977759102073574484990457776377518066040399259178746179582700723600449725729545351796839009383514106740047431432349546627599309894641216577564389034928780125436484853233714041135035423385267620522913605620368412396926515231100314464047883709363135745344016415819089111518124829042463581675266209727435889188186642769787889510454203239249685952380884313441799921077103313419954783458810602688282777313588780264729839552577305972807937689365533909420406598842284324174914887155507714414501304809350941578841891271770897560975446454708573302151326028921322373253338826116223938928432369222330583733218159544631125578073784711316660970292053230471627368993115193291619887692395571654431370694711850860443616580180241378688032401479611501135114919224927293420675754086010871666953192338724349399349664280072196075356311398248509070034208850396250162042698229483804669347765714817577107794861277256741650664674379711793939198070209391633760475876464042010897639600061788225366285011250733798423350374923162477759533639124169530859857039784876296161350462379080507134536810759799945348986629973468161345264452732128394253222122433928444356843921576799636688194330643965290018179258781187524299043872380661412307238879129706271488314854475908916107011268792376179681144913816033719767319671068992605974809288747954487876122481780457214681923918561182080811306353475634701740827132530194854724716542600731131276011286623077174614214731340773818632571429049889969372868247311573885580365066275411257568865548186143308249511237133448026678241283137949056422136625083823111247720769992533181315597689760548082380227230816910143961142395831676091020853039050536180729846671913413246735421760710324758183932546393772156590741367100614595008942133073615410834455219349404065544700590993440862722130153624903577985537599197828183556408469068694930233670885362150755228144938442725415913833175146249964308614241296741517435015148147843163932031321026597017612740636253826014874645455156212162512227805848339441562791724338820753005812296396888025751018052115914993874975164158766797403196520584111649782589931743574606228515589411917580877810635760765373607041697129796740129550606010355685622474248981298886910718692801591899649361250348049934737448128486667975593515658110849549671139687808034668295497852853898288640408117884849919950916353626353912354380262479774014505043602919152583555380360470868732180409449826889530861891273970686939752483732541459075137910052252429630475394065028973521012554584597532846884157932244734663593262313220513044500543374579898587357850153770823244299744314674955219627659294576013533571925355583248565638601432440714337708667910815113834780120961822732054911435895049670336856796843238307447809733594851152322757899527058566291073245485977763768971882015998349499590390326488699367078058594532630130238835462598065135689268389150238431633435604297979484194318497296077141369999247608010966436588623629076266021233511633069841021762187636325676096164674504743726726482513191630720131263074453228322442869578966827764164875344383781654688451970863094872459928815127390147040074751988597671638272682502606560679111500993701663444374097855379679928622820804348329290119888601252657998263032036160257305825130951353703592764935747495075555146758452861278912872032063745651376368463988408253647733328021235989138768609600587115759113428201580850795965510416263365821805057469316721532009693230295723100551497966568597082770730469921790365969345845327197314038470057967331695261525700815354600371302965776682600309804704387042828865242110822740256054575943825534340894821650780621275537176394842383133338097318060951526579169585794796833900171174445976153074677812560722428510723268126027816906084517760621782277096693854812979094577256361313336372461508820875954293364530219397638919052541636104180536115395820515078036568334702280716370003130641640086019605429934688685797191478505414079288553082368873718077895298580706784509459887517974528397616383965825876441771149621652145352620759684412924473945066126228420096154788049507354943295849042441363442675561793432856467338594989914238982548379449831608097920483402532507973430735032984430873624879594985128372106742918238207049752845244321716563088783878527422491026493630617036889728014545404977523572946852999921566221212695479539319105482913408724478614209413370404509646014178177997477872727511748518929278765075731667228772225708351985053476420928014741806600585844988157297899567942577579663648186642919541765647731644481388166286791213889702935577494008242245603479444287636588639912532509887157303656952771964746421227337551219702035967467898468664178491453780524792556230011273063572246860291455371344869292431135356462087841729956430249815346922415022760203688907585927610259141091229124703045073983578083964218972187194347993920710682360228516642481817450331276817536135385113751620718305242393372491097801203813347668003314392608825658801247661147197213120471848081730765997830018755040195707908775392314027306571142248698503998036182198918618440407341684353360417103956454792100964000701772135606247633975378392554542810857778593332744370501625903831340838306125754928895110363204770779975873584373160455547172817283343646221351031793875564551007572775831012678919630079674184114257763442710928184867170020412032436124014033765794606752497765690052535070871066679033086526750204662648944482308114247741161881933525903636021532913268026109024545306205048568867455164463849258957584362808473688551654781628093117034844986944475534929290744787991212518700218742310941898206800450170468383603061251946551270286836530257300853067045104289351115965096685960408601649954323003992142628431531641772330471506135380119536305050046222224613876017396869369244888113657535864738841764539156077890801405485264007319344548453464229071181851569232389917141419485003847733015620401785404858194545190445542014709625672920840965255865591107553081608136314882274937257734316087733426655651956067335529614144231797313335865501499618665162128716905976550360316019690263945542912266783631058584087181623030314490866577934019895058021770048604883812148065471179466888900924033601831372177071101689945253617552615206282491136312165150747008198962525791716301264290649202466281823943493706195226811084325969010693984504785327420418775945459281044081307182062433573376486203111362891748506403532066955448131635268807202220395803897478563022204192875359851507680899040325043713518228079585344151759553656944807588281192229296912594734032362816827842675012344826121196734863373763177561160246844055896311675195367038783808896873373337203006946832687562816440217658954100468685557914711022239438519990193945914494955205424045682564583933548758525084253824213409234551391071339302529473124336821350012826729791747737978733047200877994846630599904706284364937770153085320255093191417340992564255001044519959412002950742968008769642157477411714895488696118960000050852710077280910238319929500315875325076370735302579174376974288533390084043871972550934969728207256965714242715158431795454310607451484211187932551751842480717876946325643066097330213450428499500965365579950433779762280365563442034785382945773576820395555743978416541289359002808087860136289988724289044108479827425425185635135945799665494102137097647064155500506644959338590044748608398561328484497130754220684435356332184325817023440354757024968717658237772810202451107983314978136566831769390811161845106997033653887899790967778998934212235386570151511209049628513247269278282941302852925668359803304555025661737611277976169665087034326965039079830339945433017623230355075709801628203951216343052094684853069618785875810917782832792102390201069688945789267809303012064963949016863554149120349270368807216632124308633047918451781426322145338253013435855360497676258313743748509597092639862803063148064985119142912873573105089352949086542901055595612077626094399881089231846786369055835586284679230728515129905809974485443494454764779286229272539657259475518251137931222600920035953564078049176564129150660577144184209726624219564147175448553106576900977241628716016770507850681509957352856225051983829503295918867221764868722909652239623306966682958919323050964914045865557645185810441685524199534774426011681829016788902495836859216974782597433911152046493885931559401654236626879437488080672495883748449283474158586713837755966066942613080364620937730049244140890558635777949712936386543365286976795009268584942902406493855568515185717377755656356530761601062225922327168361997497789672978753222715846628255936061657170745090503185031824479599124370088985318642779842911334507296143520046584537895769303037605428337655122732833944115677278337973480834210736315961088823007078960745265596677325772458976100460123589254264604473032571466669908316979360779958851222356245872049445000017101877577042787819075924367117187942630744099145585651122211945257809385093819246773635092653832235844777452322626290727266766536907979731668596050863885871847473653641618283625030132958279416046130720577251760908854989466468853321978637780213603598079411105002091778126281154487675138384279868338116435892954590932409391427767016321009018819812520345873495974758084770045686398967383141708131206266862664036147279027806543527066590545473042669431343658089688223274327558160498508571209845611594264837330312973517116591023147679460532091689917932370856991009804396806937109892307452652492446235380473358765828103221230214045282876510425585350407469742236773264145919158581150929015437104164402870582545311605506432113736363582590315779461661512911781208847606288480946904513671697549275770109014730816783001595011868890536988047103252266364689754338928136947120038541439796970277759191363806760362358361128329135093811819630139586213079971872567588918537585639292203712037668238322146848882223826634160665598302679976172533696430126437496089456044712564430378064517831472493363270717271178202883117988448400915812362701067670129996008092355759212268303507555333883087284045858298469802947196765894210824871157650662767860312757205897466725452431851883372000096090611388418840758442656880135061667868354479617538312655743672295759403302093522698658144637607028051077134271634619663578143216788986830926999187234098156767907492156960270221795379215962055663213266122080127991851178003526363972949548264675668052218805115603420983863809233077434245870222324804028291887755836469310537834375231026384248427812731020796001162695289321561735879098757593999088544814924493283073623711786021949216658819901056264564887958619956618138608345305779159963357757896772244981852581515859068168389574606633583476469130445760874595367622914803764972603856229513505016747476060350836209224001401212819036143956920697777422349689871677234024333885964945229442974000985060566224606105622444057093588656335548557892347971919222950983495756925918666867758567030459862269650384486094409360609155163210408137595738197591733118542885011501739518465458197967176840582730154570497685239402708567076323289448068601750101789771761437240217207455682242229980572740817670383180409800215818059482979056285505160433606197737960704162027518046506855232044000417033919578873183231903322659693462713607348988174574962866100892144876784120483526851994879311879177561035902881251169140572683348070699965635279753105384297643292989924468839991838075213616386114603825587473184352678811340058153134231634032715472391614298996575323378354374044998076319995516343855388233744291533441858172005512055283849483812285244053306068888694104199198843976253441898295125132692616124770749991351010623607000085195106524659584429913524545538369725031560773637905097671984736868123696317888733269605985181461237430297518837105031983969202528191430848780144295283865879619183540669625973847500246515395275272741444867324983423587689584487940965359310026252170065947698077576719057687450570767211435166725291014262283895356141595718757282772097576952133957648151224937727527916370614402641534295823713494271887335889914593008254358157700626818069121913727921903194543941780554496497319007132376734667629327833751603834792639863219282920589943079538827544893879685825089957528681783684185045021983625319304865702876046103899526483310247487907265833292587280744252355462127530581327130584172155358684798462751465839341763410200814584807259788058039170675189763561646042591479826577099183050200358717801955646783260443775330480855906949829932003944641334892870095586192721735628288183826693927343695535365408129698250658297563518626593541195944233469988805362110637226620926913871300422066347923738995797783959818706934399077096993336472218331502678636308853712852649472004468898799750333089223019393232348800998048022707101857093303632670206770187816840254126666996720491958830861832586407037856734752581310920291001755058587467538183151597195269905267728640779902065852673840990926069322347905749543705642041667394477319051312892369101540499197644649711317279232382889476657492412122517424480330900763837015974857448892039050861715441421128649423357208121388269549602257000689290788550612657030099020525184664830141417948172237222455295175176534049089697950960267001403325971705526502351454831517456558384584024217563869233591238374178057328072137118819502891527403378252514883041042655628296968709380160840709073685309989521737026824594973174253110668105782702706038214863406743842110935019452902872584589537857439752515492094070492761290474977924243972204917177911358542319415283955131486069931687273295493384536275257961410140775115356403441957046480374608895557593064843191295245035833071853629309089747897447037608912393997095823337804887685189422054671140482863075657383215585637701199250866224323935262962466067973228757033085818661920401254873375951920958331160738774646523751710913431259776780620740921949614682820382501562053895874559993122948572618433788726087053572810961654935138632453755907410364461580920207224134955699599955691092787705591415276733818067157408124037451068507141437440893874814567875913597626423822172342209814202769923441315694303386276328155365722943291683157303951413265903345165562509246115584338450689716827250875701172471813746958762401554731044578849245445168395281288330645540738320596765308310650007377203837020487972986742917628447635405572114139197309851579713477002231464435723294312199860719243505666874489350122999370293559076889703032325164449494813218537513827117454954281684951676578437190048336229632734015147190832554787417867882428614669381447455712618875464099571353482747560062011358967092806606872791806003774689272931740448321165037645620858814789494170520245185854974348564608590943302834969791976765817255960834322538582579007914944804443102261280303663353672752787848563322441434780897859289320201649337894406113354906492560577026308378579689538601166523366832128500005852118927551670275372568770577476299589282291075899812614706672111448871664490474264165931329293783756391412490912310090617208944967670331016108296256537210364508661822464193489248750715337394199128997095575585801211323576876243275043037640816351285856334823441647917112162585092078609804937192381631188233632195247172726387961490512221398045366184648787455642319961748763226158959061479621670883167249543549892339896154019733570429127105335609863631492998348914220238087510702679287358534489033020980609054877300494804225452710635986309433994956092040660427124111875863142997528929503067825008689767700032773461099205534896068350019208089202158486522051891078540770746208100006769316219630730914512089503294711770096111828180485362336017915169168552897733086539851917908799362323617444653459219645756583547800409076499975082506786554332588045659186850904509036614493119222646631346182246731570283067916985701521006228692326129558742903136363145401575725094975452581476963200736756968863775863806597751732491393694408811795723633490155176591984178291389905249250035415813652790731104899447387271868334585174504669467292071744115222729956704155614995852302948268071128994663583821113700919408480400919357170262597191358484313991934626831208266448830896256809815152791245944003630266733067602743059623120479683236244946579664537292919245649358061034312309583467896075308909454132258072284706510138399598868806181838946968948590339055615288482884241065534203722324059035862608687394986916299986686040413962523046064594689697558661183340516803113153933110293920409759982542735929477554368152786487547099027660976296437627265651059072366653433092964936704592317863344598052271068634398716476802556892335625700549706750687447868890443435811865324173655408630552375383374974258754583110487755532688414519809690621605247154190652691161583550906225503716746034300987938666119337583222505832782478382103554438704537686120621104207560471946746011705067114431143215384331337781672536868750318950507673916252844336137635488705711355858139119959030357074461331876085445952442947523353468416182623826331677334081956639564222086257185326098588280374889041214291466894486328741572024644044431978938669524772458906190090935662355637257757299536305798127711717783126705257793052156063112519193313929434570443531840881171637837188113454486043736192386974306763842874369902666517515460035268704826366128130675873743072785954342374739836216220076757218271844407803165521422886930265907220849662186472421766447392455741407731152311234153422853200869346498392543541277368893351509189192832847809547000556462544109051319754076034170804484900107636715275929876605090273740394915417966584051414033781607508395087469944931398417678247843488296342275058171536049375263199913714389106713674390392704469507612856785420152954182604689859212408244199354184429033971829215486268857600138879915988726765812384037650437047248219256780367814652220326848091547099840890443166780106434897815128282091127750155086918939470651657103935780614471328114088236615981753788123548001005661098164517282055239206394049411413747141548387006222006775767252487981785501181119455331641394298524671097784851314771594752050202563319082153523419081981968333777231684791392621351870410818397650607519940817045795559994634177326542667367147566543873149390133511206353863315579653054146929697436630422164871919410895581719667687562302698670108087967937384179998238394772122976858478740852253302846363932273884974183171030255134646784272310619904236562057782161674743404278163846172179675670998101783999494520788625132267340694969817738188900225068837383276736056814053603751179871299357677735283245054383193898306479818507178429880246426721060280169310166263362529799640245828611112476321115803506013621171728741006284121784088145494702814759937307931448389531257432678292338762602207681927483447562465903124000543163679185468981197801901870460914351785202216409856121860046022713565490753822407729804468268196361071348593184166454896491422372644916252131349439313029165670845568837853659234079337000369015847366557855262315623320206415826149003844854446780719993654211795081777678621807685238621250778497238601073378168242765845339354238789248894415315627231493079781352650481971088824694386835194438711423532733425523338824021117587884703457069302305560790655242439307319083380651796873934485062925564515098888049420457142807513682361795306069916935039562657789213506805517274002348605966190723649739080173378045584314163124165486007520096712475195808538326954559049595095239620016576680341587876496806198301631291070360710232844352700948142450971468362636642278490160485520428602125860943038449401452172651333593335041352296683376907153462939722959113321535553097998101621317802896763751400100383441523475732410303236191913804478069060555431775886287703647121793486297483665446914700724592541191001508376269201718673826783845474814162880901502852036192881599705563033638824722792133806110884391401204482642988527263030014071251260134681569091600173693264280949312622537836222987861599321605753122814028424567091128790732406410205837564770495272316670927699366999887669851856267306118842756020093187389875494621254987980996472422748860193996592496428446107148824703127475117808178854434920248572949831912444926236980293270568585391380098171069595688990245757661357750344665621217774807769841184940962516602510001783931731579249191126838449314150074160017367663455545951780736134884440126972548025248311515264426192933297998748823442802857165146571504573185750008900426265509254130572420086920803828333879207489322626223564173210270724371505486978884695708610099588573526301772797340826474825344186890219843740370244336215031155862979016042437145911190385132910055710343927607835482081249798526980001170588775517549191829022958748511701652993969005248218051666147398246021487093653248723689863839010501855162836301676319359851217840467005606037631792966910991920272423646682333120582663668453261730898961060705633520202297768227616846560644327132223254076282453046405639289107704379377613514437671827512124189390823846628370020273941046137379977043451844608578164168783366833069355880396457745928156343474624940516070894938236901171530568327723291716264975114138547341411252165690557683021156242584262813355411426004495893696734385441519005621168099570938029997142046034129673544906169111043989660899156467649806372948587712539816885919843679578162041970336006432913047627201773697821627436891513350196528463028237679922054688142020983416413551369699944532051718483671361981488912551497707146901856505844281352085700323044737348472907134814991824625411110428383796823935519384611182292555261478957213084531429457650368500094072155347041862273433075378240553649553197901360963231464183212471705928715911615176099717371698242388996161647626723261278781204991987043644708780356591359774285175515726788818918849836913216529386368478064143995976372603861047194253465955032537725350969246768948887214439939924698257052407578487258124221464496383266789291353786275727232053296676104039875061483550777980031714782321464276602453267846426654865139315359130715469072574158271686214966540539809544332996307468454180582960014146705529098469688525163806182430938238268715307162375343791140816492169216537119037534052852736209423492900300150700525108711923812314951230369849571214441497022057566796178330940460798138043705685647399184675766081262963627286472068695067307850120908309617937097619634392176226811175758886606146388190967808648016715897286644963874016371330037923433839620491762839491891568870447407025541867556696442212304142312272113202326883872486502190649394075958838472756591742409028302697665725149547924154374042511709209268409533758130452210247053392845831371570885246788285456733430960132766003365037518611074422883979437839041863972062280951025126949795877613409909079809930382288378093491714697557572442525384742161639361812379873656168195317760306971384808540073846670008628992747534528923293459900181786507735126238453044551622833563948609058164052713609401678785259573915654751845152552015489615612860138682226134459484879812695757496243356037769387539995708130439380097057292886646795110502792439186407711342931502573480726979715023862218905252463975001832139575689788756569167193263065531510645333068655962091095238993225325627036208312335549442137921887731210003714324434464304344729610351584190607953722454172863615845334897926238943303246052030275203375167870115044841395406753312738462064712625762706049111823254299081037038823122407850638757433350498263713715857714018183516035918087672300032675847788791458553039640212676372769728029271612097023902611819207712538865270824286951575209745528042827295097370907624291918846234886073149684345210149625051890764090965463787601095337312278960438630019721245413822085519329571791044547625795089538391782003757271868519591326265159743565267017728479584626666285255330173312971820451027360156423557281666771362019719800051113622706427810517237717093325985876016300790165648337931692197871979460723588760146494581439763077868845274802255574686137732217278782831310554874310237189900711067690105439652934879483452310889797644369771856288994935992793684003400414067092759018788342654904029891106222437528717297851489002462067063165937778798422201515983561523276554044233266134530506892731330386764863940214104400056397158708126899846789511025230652011738031315117611364926650112626860221469217147482679441962059485029364313634736880040628903069536330828449858763447650136018087504382805922386127915922673756429722988701724066342096444985812836958276522522652609440157455287886439928948881553194912255323368544717352764477494515448665703025580122134116794517523304325314187646420648854701190693721277000642116724185582022991253747628443465271343109740266466230411593590669396640611128768249177776629407039191386668521447719546655265926589378643000316316287131265832082094761022654236476374362502370465063189951354830565813784721867470575575005878352256828319471921226718584422067414840809813725397511695372639283536639381984376367255882978163327842043780884591653637370211726849467606891217566503044824679551209736973262326386607192221174365182155140242214607810035225353839522166073260214093004841356445843772097856658714865450452458358146450071318912920952237715931353270579766636885647737071573800554862682755324110717511459059819807709385387992105969431482889185043858864328659373862669629927072174550650230859158473713438960333824389986687290791370306870501451933355354190157993861252450143954489365903303846645476613391801475271055882212633810394345254731483739784657504232717741115886144705795694992038032395702583823065634530894827217386853102037228564301078719771267030345122585022037772372635798089825360350347554989839096415297566958372689440023021892049099433629526260466171848610688436443827902886477094960572736650277813194871169751387675712936803720624916966206891378512268129204684547625730953816615058182177450608954187929860191888923450958188739304228769223748393878939242998311888961745929555243104472815692290464837257102875594116020571313310745323797327493387893995237385373892790070258386007192028370394880523591630919905061198537693805998098768111883018514544742315668339154867621929650157996964522032934175749936987148694649457209237731282409105587347688393271554754815144480387650484213831503837589388544487547389727790594340555762241442820304114314633191661188100395709104918976937062253368953422797889468058761187374823907052639206777601189948600295977825847965157707896523730221672234933094014383907186713602737837729816868661062396641530777357217428843210684680650552871495791821774282714474029169012158884880447354239856646423753356590472602058802821932387494485627810427082966284645949570328366229476191995840469720356343468740450927238360143605422733554452678119274316382662553003569514579976675656956553523387654754487492603401311854084776679733391130348742469960377603757191209776053575507188331228317362527531283741146231751782045676764734898353462986425998421772393596133192816569075903009270321869425955282119209411804220717667493231099699222848789001681690127979732087358547543259412079919749028930552383908246087157844266541602184531305859438629085322682617238679608071875275009657175897821613555792033226390982198934185696773704129795448174836850740542722386757927927283492943864763276264583503678766799920444037637445540603673684202165170797765508867346584787318535597457099487114446242931151886493670276192665202811625009040183795539867939383039717584751953625528776121907328557963426585120789227623209823778766752168245520904421168774622075478792903156337338936037509548147584574159526218689349118448862924678164879901975789069512686802200646529753512917206703720144829347467794162717167265054587624931609104149660564734043787734202449572542392469377612797961627369673104721504483438317552610926438806030269933351823958445398430903950676785866920102388953517705823733820993383592764822091635914222366196585513767829259379749476211865651348184857396474318633597513331248830670821964601513196111123518406439625628995145980301067849636723633468787247309108134571100818466605143124709974832521788213414147844939909543936563817326585425066561704261974202106254092039515703074466388746526299725196391426145984800918110882680574605525338101091297748196238972569253563432491384344534494389918057226180457154253706596388485913536180050166981478574729539834462978140881536807112887082729967641364718805860893605540024879420233669107708014225261498771372482569850359649604486281872325899693212052505425300767955299511098222740103561332289380321496751619748601946752752928548416353018258458552666022367402209613511370344523304362445940892433913453032874682320155037897160863619552296787162192372772411740941852621088636290053676569588608063596672025031976267321032856800991052697891116969213928894667701185428080849270766423652261599262921953129500226225194451075373190301871323608419182037560636960814561732412583114401222115150280806345267323544061526737765231224339537083035420895745154104534433707249378835961874047100347096599815576284905026778880690130982186836481657938120774921865786280419254845031156467809635143677659029883717696879826040938785573332560659700821297583615896828009114734446712383131133523540946880875598605125278270842327384141353476099898535185870508843636520240372292953387817765100079115734742493131919408438071062136055653808189404235404935261646529073744874429725147830775298448562007651887256357216768868957131499065900924034018244608405610206121041030285617884674295818459532370700172084733093815158756024563060217212087365587912195800911829453839471813315900290794329051294238696703371614708478641737733059489514518699258285796727977973033378975711097874101775159298116157522560445450704793219303625202259823487883574117996241909026347027701503749623429563404239938665736947623759885376401153732615166412003765582589593352124720586756650116945671978260901862779720120701380450542817507548167537209090289066145612105672180012788930056952651232803005069444899054344877894898728079495545950464198591126820515250857062562581844098107162131509852533231068087081093212861431894312386743217775201397341502209034994154320680413802462506473801684318469685249356756979705604954280992334606003110866716493168234579540784466312183435183082755563838608841672485460550754349394133078878050822153471514889420741605784850224613519017915834664034417747218530965951711958348101080737288827314234656724312649907601102763795031465906594618716175537741652958115742755046887992145934209887821985410852721538372413795437134055412861063871497346245161053546477871946307963772337626890921610196293786523868586421871888048180099516050195088160170552269399340512470003705465973474852918723150646789553879454538847359620386209525216576586566930822519311616997342910112855253361063176681204776523774189197643427796896572118347474382732373402402365251359565265264585586188214288203388250878546178555089835043043217057308513005535381235382322415414327700742957588963623263268855645678799383399186113180855994198886675069390691424501801330263332056065559483824677433515538874234299868534886002605569814874309313511672143065657320353071922986059248066077101622651926553615145734176066557147707598243015113256850617027809310604813292174291567701910634151028034657856137372508034857529175205668085712002448600141793708406901154702990983086827808771602253263153096439219288104327370080046304756991430167463536739150365684197811256300065234447910004776066493381585009694734002058839285779659387760440697022865789943861748239255311283344241528374991013627691582259120490750455926771025087235543858686569210002929798762638199962234374655700411812847449674132425252192125041384291913663307001774421026917987192728608832616087725482639125594053996182054032367412571194154581630983400692093088842820510905138151051675333076971881017949829771766647276986024126991657048030256685351062845549283869036858067017277035405584092620328850609298945956212711364443244622245462669032546826086890679366997451972346556880764728269678288685313424045896643350773618954882987415733039437533623685161267048924932769416406872507521791943201419744963567453872033568134363845474073927813408257129617164116768726441180008912716910189878023068754077491030001447899561388834140520553228828246541467840149784677067852001171398774039370914463546919263184679050614384262261422626858571774967222985164103937649254559715737794373601997658339067918982199345720940986515063143437851953937596127946366352986855416847910673163285126283143833105667222318374851778524455204495973939316370892691574971239035413731420024021645535729126509966569160232981539129826567337548144159233752635324246417840548510919901070700747565580457611193837232504989624552264693773567887137144876403883734009021475937198703879429616522757452452681973753368889869938691502897377104604488137475632502927768606838066391234421737070334060478344695776056559663066851262852288261395753964386331303796550807919452346704740662675376660637282683869354767890120481961809675503453306447331665601844075037886094399233847378488981855163365514521024303915594874474936595354163198825521933159847925286384315104753825963221461643373951095923977111181508045082387075166469546205464931398778056374405080486439967142122347245451462738239495121222770369637725221785916554480509287476029852388157679191662012052679374672875960166507792343883394664874419097657034452672236071579529575530814860572762250921203169873915218817011421795332575205178242241058826726067544631968166861456146500606893828683424338327710355872803457453963219073953970035314643531873181662644525980144265005247601423278950778067763306841013844794062237639277785905915252018516616981438157150941827996400854985394976196650861391580444113112617040528995357573982340035145333223162280840057459880726235709041382832321963604492468036109601418865388796838635469698396974958510336402001504453955322092726333181682416811144013553901535324789150659876875504443453515289431006365024578213675600291563415980459601496152280768478787491803337605624334913070342266025619086443996975694915056470965177452875934438281521031214953253060800515320801978211379337565142939024724293677024561792266328383179584782337874598953870790329107624333139325436508770198868982090885704837461106628396995243790122650371464540313260108152580040942856583901167268880540191516825882608508016739579880344513181964635185376897395948342742832566394475537288299356668194290543532738193154559333249674037892840398254462800909096542044017289929545747295997820736434449767788015432043899389986505938494345716943131547736412076335476070858823489047624660475589484942100553489681954032795128908348246123177287011320727440146948880632779458700527717053430220252276766439989682537352048403460934123013932095040203786401022252300229062351378020418347155001298219707717440411452920394851766314437456759215251952035780152357329281765206250460028212697981638019141716287493564404555861347071914454826110201367165844161691565181503088199809396692082721375718654324000514266267968827571849102030806586181369911976512596385113877507171293334429383719984495771058742713438605445423067292169870927531797467863015492923252179718154261318360720038410889775695038629618071885239250289789308401612464200660380799744597063756376945532915793938398823615627635477115065869262882887794861464040673938509268505465878179600993779885898576755655807329246280246390137143845452507775780501197241776990669078189237520166439673211311850665356291823709497015421815175631189547935820013205849138485296506579348045716751948217214884558523943846866171992956667397701776722944660929888791797616570543443203141004558037576624399042826745007861681699532687567903141853603883533751959145774683828597564493855083779264419864517878398296413627109281385270387157864504877482444525545440529504549315429418547238564089440027488895047697865489168257828673255812765510476572719114524014515439519642706788797958998256236247280510767222181935617111844072929624465280288041570049956634147309833080835762843404115880229823914224525889057105360767621885100821699574588408573536848292264478292098605296934702085261047663017469847644918204250288701236647356023239178270544351916330998786264462278462060933052244964271199376833914344403339807064021887966069607193492717046773117282872005303791359672852510569304971390086184144934750747625190961974519635951081949162381544629548036598640608705280827256007108531536085612787231094397622579419103584125479423471973914446687695944591943282098263776187647785243653270483563544818077269833172701815495181142915219598959811905308760396065995140832861638579978878859385708702662754496513797954732558439162110835204156521377635919537894275641290777138543198138374850246935344744915961747402122350773379721812654247531973543959339451247968886741886007274738196218337752400846567118909321471180969816148445287373662519725648627413975020481200226585243621284680534167566643343034118393766151482707121867897881566186260004527225662666712401485492656242259345174248276187687086384289558352524073636665471988821294794794072623307822999383779465751410902137540245732517915306821977254920111976504801250204495190469370992542256776406062288327892101767784180917301093949436460693823596116965326954525782626685164573679016297457939436494140623627857362688626411685183945154135025315738632706079087293362602167353220801803643068548700789506992830139822338038437426683367271214296174463018072826919424403965823109839488313091441350217363608032572951004550616528100986906876573560036553152766608643634097393535064964326701597464063408104752234816544223424456562285880105402533735159873823066225620531514701904388413335929674884703886131620382358697491353870334462809653223498841327628923023372755504140778170619932273711619399397952241044178000713564103116308236563546208759929327024615863517707227340264660401390569748222170220532633326810803968001631808635774628165543112096137455641785520993310985851205678732642399685808278034325946795123807199742643718200099400399092754887564579918252561882464570373002953912117631093442061705592803765538189354195622345478290614492586338987443432102292743347388277153985921517514821993113483714687204641996624755870778704691780794624488150438115332256577222024314278133842247881857253674588277609548319650745786863187799685608756553940810265106498074190203775659431825379063227608879232269006374682391354138976931632092094096903199115083946588843119381133787562873986420884026152690486623162126057851992113908573529431078086729228314916132337344251027620569042675641974632374100268000824753395410452665838680390505443494970926382238827981877705622266051190042209021478831603377968505676345628940219956715656295422323496868330833668258850764224180795467879326648074987017851185740055494791404132778304314961297904309843441342241948090369260479717147677165017531081632060852609220681203350661110412849335444122460229956629789199397498286873570646206034028362920782508138293555095734924854220776812172169236787552940798532103797537823872100560015711109749939974984730398408990065537137400196734415541191686172485913351595758188334311197754998243021403474730402893245903444163039370325043046467678893385925896787324329740458573112869107934827867429626133491916399657604047828142194781325811537774343075271065526593427126397861346322632755443438716216020048038557438843276093064089817120424415390291687684227867272755847604249568278246902625035437097604297580246722662869582609561955843260918839516717921472347190352851522045723762078934648393717134581551767372572941855085985538256599764536859223819574893042508946254810747883272955690903286821441040456379959318372054904759137004791367515673269951130921435784883697745961000951546912946034606116930279276474778109913847171926727038903056519680704006030279758203024655583065243421922615429600158386515701502658014172703224719712196378398213081085243319671155687223781942926323802099906285948069846733598143492603265887359352412686027280975860097006319277802616486175036211659552223128241268232171594245670523886512966064701173948216406776509493678307567435678968154554416485956195785081520183870179983191550938037857230596735830185760864291484870730544779020398764982863653934163831199165504861067722725892299538685858639238627875970628805210121640206260878007026878800505386563384954119565347129714959436111495208409983152244053290482300973717253164467372667534737223471712284779376049614628991463427899538753822608297373756761284109162662373010966822965534244198771668053243635352204854505305026988740227816389981911492395674316233967415299293386456645696685803389531918059403941995620814018025126950932429649184891017538621739335195208592616160390600543569721164848249569428198783764697020129679256279524945724002257287727391086290228840331780651174435868005092627713894375075023634873254716270718372960915655958299380013909583497922915207755337248387443422630293298092676470072643031976681856354236154895723484580843688171380825336131462771451301918396991156993487166559002830091807049530781998480605727247502782677809816859064282147235256843310373091844930466185380229972522270600545603181286474859776882328425917971328933636916609299927972824951618026716184733711223258835930039238066268938441221721636547034451295452362059092523625623739675878802899865873881907521671451737912509074678257937783659768688359427177771885210428116957903156969319303411850241449501771333068165649059920880089095686601776318124834668212370860585187809772126069686226354985694736177383734949730525247251881536865871028807177581036126706445238784430159801600958217787485522840342854660876817553326726655046394343004210576031965843798098025673761361939657827567201745683589510805155884101882829534984175712230764975233450649630301172302099667349457496822283308475762943650766892281511559508473450765522205377380820475431331561043917674601809151856364548694750290232558125712521767153980822530568509994168925372646547069997564577661796349358321895533026134850166350664546141457831718669435444409878568063318510735409543152221431484038727742180048732888178941394700401002805691827117898750728183249322835070809810941498713230447539155160117326084682686522385786728928320488204176290181470617830763342909287033020862498760794613127532591757222671045171128700403696267310965468811306107460900055590624623542524968192822194754303233989390936309978423954442587899842163107949200144634480923698932227137301733919299718074785974501805703933550179062103170694367524502183906902445437833696575288709205918205517486843535191226327406147810854378663966900657543269152792932524073478341223771132796352090973549848026609851145082139961516142357106148929735531203435311532930500696296976997190756466791777030063961171565203062908952953319095129774419541712712782871629289730739276357946629252215051116297964191771900463676440074585495579423826575510681153784328639731204589282425896265955057968722378911813383405091901122098359519533738384894852872758365805975815030154414868793139201115880302507249081167776785551851744003466586718603548705656724007527716179198881151479592674800107274341958240639540363750027493091936240290049985897736637761194682857099253075335035323487868950797714430554152927650106634441623607863538829765593482662260305666051396003313870799797393820884944515480740572264850893624227657436219587826538790129634562628372290244499305076885584234687953889703974880950773951017661718523305107049000315645873567198915690121563894805584705792608052787348845523984412721481638840123278106574438751572142824037495138876283374326977989456087737781649674022701939237257375000353709363364981515302696733326592248752721272298254058281154057782730161902850103379453460286537404714564117240927105170174096983704853333223262897994972292998910799224745684935543812290602626936300320042558197493880532998345546010438204887390035646046950598888369381341584953031627287548731944028748327863573423071854209133582794488997966922488480803922472373374653816107464185861615609777929117382711989284586923598970670965263260777531944731200295149865964887615908816361664882209124369672540786507376446026928202627165013024754070978973054709338184240181357040558774518623002361769521080128932341346213637936843967026016434621466129094630434005283304769420386715445140216707784893720084028255845393447499362099185872086465632044751244896714775369452595332835221703156114582223226406930783118278552148689807922127882700403184440124303008915280378456504039916812850882692397702757323517803756191940187964255906345818235690251674826506615514726730338711437742800393810117167464183365239270555647899807202531056708325088572377148670740291945159381840874400474089822214608620821699210088603024733679530607839122637709096635861664131334160938585091447422635987872133117544652416914339435174616740419420563880567377822940591054035281274499828809015885148929011653279012707499220922080961543480446695548897524862282292518162767281916606049490390205611741475215323612780492107032581591715736060545790258906876403637528203649456573090251418154576248166649152622890045709370069723422927030595935871168645245526289227554523722767017320473580799331383717921403187436909409240418030828503226888361466049915663020054776292442187300274062865244362123478332171558633498991875099677834886176483901006876441136018883796852581895678282872430045142509923735923611663130478308337208195795340800689852992916551943499286611689085102796373798311313686803806129176319361481546893595703038937300281431968946431128325923177400000736582995173928596279389859264390235187996097707505154207579147960519919545107756672518523613218130238316216088613503872878091278216277959187592006732408537816609004923770239434057513678972779289977543426231012016526785135048674779093355302488503044491062116632684715709578536360871039086932313864348434132595689683047670187296085954103560845845968120613237284641107825258370790090386567973033254750537087494409787259563708131664898494790425092475814270770667213266554975501084083705539223970721770365717797623320454158317079399343977840383624216765476845181894300863198386895039199820631964308657704617951126443328295399300134654218038069393711421373089135199168588706317978668706720688618774095139864353186187510487429941493531646351878876613424232049487595702619711308020262220895116802748035482609070260392349420388138404021106417063916030851760444331079565761306180261937613007799106016854779531878046407960500709799618297699215341853050419831052047274352674670214398353435432623682767821301393973604296975494643662489107870410750073601824179356103079232644722645090112003337565488747062888852884935644593290933792096899037880668346143690251837668624267031950939167861907633950106420676683511705491081698246353417803317607683128896561578464376061183075345179918990255865391031233725081547531785167271330957226018169563278456903217038788903097977126800058910038993536208715615690361492405860709625482816407806268309834530988029176441896350203817170018320352272474671855269679954302974900044347230308451006334001248648321459653537319355132936353305233496623945051219035494128238495118116186915714501262842340514100989052570807349509670698751447064665903652195891802706595725247400575060132851144866198678523913146727471282815801610069724283604821164874095256629551689511419882868408043147993335263299612046214369902297953385667836855447180913787344982194190102265793904780070907571117256941436862598486340216905232161594045369363128665216936056234395101374084350656389194918510912078578997409959456440299210378643145389334922544657729992031477181128981120978256779960586098197961119169601234201931311660300101356997933312183990893093077588067186858252197376993220931580410064498074610595710389243011369364981382457017748384868354756033129487272124450019853318474903080682656246710279821298219255650403571758949387852882408843419036030778662091667247942411478231284534642866040496333471731095067701915151667587840457884369749925092398337173696052593118992676361299149762280877971483941210962168404625199722809961658609729903120852680612697496390890054441816668437343964018099676121893627760090954382046894482146285748458191860955078555381536837224246689943662030842733668154355044794750872275470831719641002340962496073980562967908194811928243270064266386308627534710339585227390929821828367992487095570158544026220144176017457200012342808355014182474016643867830845916698712661568188831992989956995461065259592682864299702521837212477444161341214169426704841560585462667884435307388958235355036869346381024922894132323259877009561079849537104551769723231602200534909073028240626993100479970464388056279636880024934948223059594861676927369797535823874403559420393899553534988096084898259891110494192788608369312760522384892280819310823636875739687324423869951455404946896007187381802955241073230378062861243557632437768422844390736270055128133623726402096735401641225912700573918147703249555999041762461500963968493596827086047418510112020527195063927867847725709200154504329823614894313539485945520585297878873054582503626954499773144837485109054827076956659345646665790013557433471502850279389091861354782738494465339218427113249868166924155010997355337276732216092311895780720678632371446184703575643618601566497892631138836199180016998798221823877695027723479129592346343744064868862707054681770476567104794611946377049352711596683101419503827222873522753886704702341466896071377705363081826314262166986237895296789431103677846563724416546811949267249120157783689506660976134192037923846676473644307700150446747784384686579125544797934272966991075523788123649679721233420481581110575196846239648739562694124082076341956010862422286082422830068198110491710503110591222235474576680194491118019340960753558358972668156073443669820079668447616089376752801387092605015609085082897408492160947756768826115782953514690102662341907090518468515545376531131895700449433239606877361134430330983866841814180407418937735936298419699434726706942435239783812625335752316800519481886116075458909554732570400007695914115526167872005642601837657643893055614531734853967989130545574330724420809724563630249051099102588090053141774242585937289083201851396998919177489881110824126918351265372937208381370254223782301398559975047965118564427579491722507513503612125087998401885718527617643769665804211735707336254300100821959814913523088446521336103979414942557885909901472665368530708844180733071422921765311106060127950217286121540637287003274472938342338122822580945335589331924173338989591910098656606984815327973337344787426832914731011837592084294741271334456608326267861748216454863833088125335470103198836650149784341371041043965004480733436865751889162455291869894326318495516133344444622186984123911689284813931900290781191562209931302152507782618750952787945613219030249539566500753480901045999775633095355834390164773660394884158224366906461728908374991342810846087331249269696026252890242259024477229398201003141490618954499381818097621974385050239739129271469442633140115442167959066849085267713778637922880158636721897075907888263886698959829418163890357738277590439070723028665820404142553545004488592190903435220186757121517992005460649021409178970659128572209519249958661800179990402418005185530919008920392151645419626221933382488647298418919080307272130972968540303584731949070782761452113579874811456141822717274667569954450648872396318462137397313850815377624809899277617822218274596556752714518913764042198668245012376317470860554940843250547408302822991119694174655938124810775481106972928939983554062333015296084345798922592831739766746488094494779422455103421498884263291483995454271191975164921078699322415538362635152542389785000747594477041442882569588879992910179186952692100065117859700884519281507897210921400464223796401253722902002995801372773209222499279143054511098801397982169817101983393202366794895422733166559693055403340998286073283140767041363142877014757000080432843687764794366893885993081426923015905072225019738092713998923849230969575581679755303056460406344952440861680935556321476815004259534669967647283185440335720763657006015293833491502870148719823567488335026087763708712803777680892141618079398133887730624719409871202209273041415408124334968806595361368358482416437496608190488689835992154445661543869725492737048570875940922897063778750645510375077610757285111200339374673821468716616788740432772050086076087516225567018737205283468238881115981320549688611346733355933856418861094030776183477258480578234792414778631552178753885386527094376053764567582269708677489409080386410816956647887024880423062534720092314488670258336746971283587312379702706165958948229718148172932813775277527238858201956839875466027820938355735734397505805471010464597343031475609380197285443655023499552210807840591925538225464299669455329587968300983941166019948306790189474863350563984438649944073031322051126956925146933355038328921719710819463087189842490383461336073415944625150951576996126125540176137726820571055622823908773479277956251131013799279887543736346737683582346620739366933764490168058457367655223187227039750846622373618551981233271333588503204965611453699961087963470580754211666657088358435478092706102619540075132761528708341568488659680921199271206455806996630264894244656677720148563315013495250708984585657433392885493251351599720089362823119600619111286617434064388911002184910824266037270852739974478904954924636594108750583850718943786402346670044306237660985730487099197296972431708052337582426899811199928924696544210296513465834303084743428585358442928432803975512128090605464115014561338522168626209284448303951418824442091847521372819994798420349453952507419214582954156112469081020479690877682718124013253465362632960045307863238910422381762896443143548553832216734832788872099995319986829659343048991061822198938700023054853793526756712186163518266238241824130968669525964199862576576478063311679398449680994774115247750541161152429572831995460110084899851485567865052109431669631006630731855653209814849742190684070953687725991640553291231040328051553670091777457162164125035171796608017217372255677319961565832201337394216187648747818199126563558460330949187430213067983684049108769750860351972343223901057914019008209988534505414302988188129113654593192169807419787144970028123227466133774882931128386604737603762218387772539873580693697062268713823676940494512515935068645115380227916493372885517582958466313284897391589501935948637639809818069854405980296045681610720314389651558333072393772697308454703985378832800212637593261702963736950077559708953762065798951825075933377382524862680920811844754979028475318401736212037953163863896183943199834610583849451269488184054045287586918628554231397876309583236615332680151720816807392432828533532783248019175620828583888351451571722155463994016575239930421073584257613870817526455840417484369842868219598059793981444889124611267561601849379812114357211749635685129459673858519287465664797582660412382104735668966459564640793278486172500840076419915728367540045378983926869268858694058540198105072265496234700502258227385468712542224202888348491109789033313733742064923635776096338224793602239707973682856708305031437681940460665262204829555632203748226530713487508203878662124394534983322579458082457520675306988017957268568240165895616420851223247845664107193169064484507546182655912690271138072404914978593005097307283804560566450457611475950713099913073835215748476888902255392881100152419702929936860428951676271871887316915652318111077004522198198363304140796664293889809287478787008005519433697496501575106620617125994104521820885174104097743042360011255393917467148643204199094669616615812417058988388839913009328846164191799106177720834969783511728670386081506792409080721283579099717023116387425412069940905278196521168225528272266144032362929612217170748340726946789498969566462111040581694019307863242958163560124608504200535254369880858296700218739238813279504872249639401875451122652592687515533795870667262535649707695830149877906133318704552576826095692797387018090532477890419048898303019809378207891730228560778189164760520325961402840318746794130922780281520029101454812056127668453768087313637869754110868524902947983446913799559208830597978839884653612665368347990706212429977343280352484949289028033704008851360825896625285084811427643626253108032647791794516292081777494732231349230864301559880508388318438214246374311423493232190331730251287323873786928890691772298685153047697624960893739211852757485626727126395377321375683295470760328708905735607782199910650811426649199195503599501101185793249619598391657725019179319497037512398290530018190302143268163771845366929070984706514660901256808671401937179737858896293153335253976697292810331934274091438216291760834906114924654125268309165449820930317818067342864550627461103483393391137948215704912976277606914250006699645758563311389056931087836975215380691128802970051917345876598614899760900674441848428716072590315436225582325118704865025223012505025596961875611488081526173052176674947805757474162306635075689623150421778228643597708345437357037491077433520590778508019305347616431951650855054655304339121659141742801980292879103234260976893407794708700906021000974445758955747553439526764095559927132848077702217530313058020284788468554884276620847855059508114134125645785124490565541595570787096225771566910170452762909645580534036118895893899986105488950025314522291979823435109816943266742249984221686475948130356456694379966136544984367559516132211609668941478505847304766351925924529879314222871208764810333507867778400957938033117935675819331603605674822000388129233806626421346555034723720327537937547501493840140133835497899472933748233506032257564992264674364252494573358815135307179425091687182924458461562157716849983350841715300261286361721821797723695152778637851600458083910728049760730457237032745646509367367935097983592032234694784913433160918178858923621830022837503001164935561399728005385963107671269023137411975710867750452009296354071907474445506853072727261011376922861892574305834911344642450039547247052825787905111738306178982464374542331783936030207060488468153057681353276802560600440125986785463287110550434980352608700117237086854302169696484712839935654796975800678801943101065818116878659005285753793551498253634409833437250459651910995635294982324473390767516803878416533311341871869117832370511134060073752867724294324164430592381536678617852780159011228630852655793176419121587981079672064412470996302485314772913861425676522990985993626653493496986298414411526535927129867208702814275316257913930859640784414529318305138615932988006819799868026967897755294496762432601240721188976712854796780212638542620890178302981241036557391994400951034919232213945454966657190316281806922839309659844622414612355093965694452853799408347730405955250363481017645274876059155371442019487232397475989770629657082499427071483694107951511069903554137512946392521004452010854048647445064307952161805013681286497926567861481524415614549276434176128539442911689124086479780203220127922944744124336593037852448507890251240644547353845862245305684930113030526959233454558498657805814773043291278631586368109790284730834593489561718315244983986865927174557352997576029942986515844629632980376531057468053559657203734620724006263487195419831861279318473144484941340162183885581567047997763516141812016862869701328192130625090820735481301620564534182738460844467687261768034526717152250723779129068453479177474411568605747869288934577873666833305971610196473278284072044742544464579493156169543383316683951584336549375519924870587833239022210883953371847832678907451082005841995274507918437038930812775780489003838464217857729750449983669920546042988242544470078760327784078521161838586682906116084303207949699365152633414285373672814147953623818067565130941428553424257783104869198978771201319304152000721481394715052957570617145213898548582499769270418205548284215556731651708917410815473617167941600129892754240247676525260719634852098391749396999780645631014195157299954472194944742842660077325293947194902938231610994885085667411038992032188953814322282773244925107099481996615637253331207027835584233795334778870343264803401639298525613795873425632961250022482475568369217955789680110764985367905668512932785344228839252938974644056001840221174548826866213797484202906981553264206760697879973650183287123494976034025859287752162869711975633207095016695170975868025236820422110159491629671850240527246135463339643229941354118130988416608001318161956204330796565520298236106422276994803320254232218060512173777173892157079362830593029889196029161770239796932266023511175079869409166196084886132413239642348531482072558448527058227214520819976433554671841537521831208250104871204574471519620460537179476572259933839507667413573405458444734474975077948751973064328386848875652942434104568126935682838852265876151201502320666954352819784523653455176097390701122109080847897430753833906738677019320141277624561725766061618403648249160946270628971352459499096256247737262358492849251395560347613885274490799658869799846268595043510154980436145198474521489598491081256412431941312498878632905715199746050975992884153470869096971821094751893777392951014262952068700613414660708674196732320632063945975889980323967318475762006427239371674884335168807688240293862459625585007676034335936432274708242702046403597225871451107627608581413890893228598114067812570925926159485245666393070548771065491758149433919883300784912525476487026418698033526446539750459533929002645024957757693182239559872294691329309209205830957642842604417930895418147722848043328366502228592067031807641875155138308520099583324576219249474779048487709344247409098116382909510206249720114997049874303727267648942807547220046515525423850163428620081392940506569928011470057637056766464791007785821350094658083005181859982298491868132684993930776417814757913760645910764512075642453104624504965439120133550785536304365754061325962348893234732124272385416620092436783243440124993372649204220727027876193350331062222079633138976484259748835273628537706014989825769440017588952547383564515498786786095544494386861370440892211093452194310782085464642119816244587678595188639393497575135376892723222220793108640523555798900236000761263351220716873279879775303348020543522557724650881532079951991933970317967762333838854964506139809677698416894800493941906660786464466747247232664155314972849678754888950461826802205311021274686785844275063566929702577004028066820507676751180384937180634089747758858606201496893118056070732705553612482489980004555433103321632534430021213363273100917937160380062120087289787145602108862207779843643280034882881697908322129228891713865808609971264060683974006592967618810432494787387898734791926487573356651333940435040360488788593329162059882669791333060237334077481506881280628789829056516615423919766096448530504478202117148637750675391399543801949086079841561109889108424304573529189289417489305613699664528055357125569232290283833340251967108595116644359803531428629531362220115955309793602114356891275292912074339466192737165908690282876712932209497656186831048103279715759915666613276782640130053555358928957842408677755785339591833596876176359622242274459615035219419595558107828979451521893707329505579767014419302074899721466050007725094551488109311171233038980918079397112106786749724071341374172553129109264803322971669744222246227515170743086714360166310946505668934573490985505306558865678121285713265377400996101755853387746753892322349467401897438894061369708263083106106841985678705126191273867684493606327182953220843404946663303245464199514917053210788078257636022655678372207718560174299616560432629332626258062600850032542564331141495102120307546957171154286095728929729683133264767807601808316513322049899296857506211259152287370012772110053726905496162714616886546818241435888016329394923336322263721242771559627681901308544832850734274417849367552719216151164143008822825736116847099890334591957699318218189023489491196604718791030795936367913828419271399722092849300194461674067009614380533943297096668012182379560275927926989929948619690861633046186539724055817814611870695527300920312163152895205966573899663194015069686217730076460325164182258643077258267665038864753802104185333871190698828170437208099772773149361505779066020292668301994147629415728917871100180186305077887362031124884973246314622209426516083334141093832920834844520586191313717411280522970745461597529198154843141294961884582723129547182887111565910932978058260341636243300572020661746318539494745067928939495985205385240380853336425400795994984040113000179198470995833305321768315421024610684320549475717390320208433302554374285672379206585143905039800569450624884993630255575932640853742933456243639306905731239609712285087391590211407684454531538143381748181610670970521206588401021577824777276959873464663233864190218738856890445715148374438895066141193024199869719142867094073970055760092627335836943483718875125252445552746503319266425102256714066827032201750748518189780802151248612890549588361355921662283954215727637289944390323227862406482121764464008539301506491044501349324388396035997557711755958139752069586441981523139008089033122737016926927937112100528198295876376357677751632762359966089154270425008829730536892673500687584586234226258275953013506582539608367156192429891135534233761861969340315046335879540872751001745372899225140268025125395493101837706757055979260910223719425849977480820191980449165230952712664055090391869070341247425522046316739557640022369358500308952180898114083403991796781357679795214161493570606712135848076147229305194360677831138366290430070158349131960940487504699905487580321048168577416459584352288041324040409087215604716013448908347040777864755280675842159844501289765921851831471712098469222889986460102747003148173369996738905763111977657821081827296829820410946679630263846158019071090876231787133965867694031709044859891790847048120596848926270465233901114600759231928846980482659867378630619685607751115237120889780281991557684408200381899916823214742768727631932160769602969481360427627749817065836110479965743335572064580174221611768982159530245582023958052044057703527777545313468553489410749468345474129254521910229041459580815063067029239768749045657048562958635965770184630667542578753335798635149521196196001344778769485207805535214887530922279822728864615094184272127536433026804141784900762194745023804835168553203656254049802882797353735132938805881631588066319394660477615322303933265073794157260418641373705490329857323766911008247553230684758990051808746073581129330903790599887420157228586993282739251210122663382315192279316549737644611648491419252775853872268979234006047901066404978357479236012208873252354719294085988214676822853122368626479620967460634913796780721861495524453737171399161321225863719390032320810475768873815011740264698236210375649956818436594575829789517740386848611744684692459524925987092084274131295742716917154524745487204193639706538553384865526852803907497537580055371504072100275241061230453436666491925686368969394827672085057135142119317771967586981946859272195706346475438639327095216645008987899906281467483231866048328174979140274227929073933327488049987427449602760096389140047545680116546274772674585937575568093969380013772958536680087409115713589236222044817384155514906907921535698565027997137830702508029374778662482084141986402650623442116038525287365449907745352427527854451835369857275106118465910887437924312119299140056425009266038534729426849426094297260679818551587026520374522612195684101156553766823363587225257265631220767171339747903330341499421060098093325701151910705604217827998928820151755774600731601009300505677174130256511260257025213702011332109108568719288509366658123119219567605531459655358855903629442071063880281724537809811267024912301343698333905879571570938666718460670794057793534558576386196754485203961637156794555285341230073143619276972265016002864157750588283224568774540045267014297216712053846636527529396545444575254881007507894123927433171888024029399095278656674086532512190699433847076306369393898895129303430359070179760632194973248302191591313062870413848255499596606000142248346052132531296232091939647581007892086538451687414419412469552770437364495202805067903007733710768711037934854759761044936885502265030887742254105045095963832506688046811125542675744861362736686377363850197082383161017671373992959601375331096526617382979576500042018021114713314300977547370609035551780441859033218610645582164726445949387587153733381720484159352997711584454269742739176310983191861999384657916449002513607086957148035133739717282636199784302541923025928406086451821404276941036573997386908764497439295394331092636198657614385935580284884555155728193599701808156753986649392566448762810757949883026860294972063468902110866765547303958672549069485723468755507271825373889266403511281104087719214748999724143188953904389085108480730106436158599059290435091475226424999396341600314396776106555658737627598134744335119237095279352831891423784314692321534878728417610473028381152527372017764708283919429302379995600194219714398889750254190312262453782873157210394686798074237382651600096169901494595072463665184556708545727612030492297060401752230380596605220207802523065587011488892589773136973340452252321380333394570721265310668868513394907803115193657168808532287990226955668828460491616501012506807119348006040547121397184342021934446522668412519125487268090552309026719274776119477548385888299852583138391731398556381532047889379914625369459278406513378992965395021182473678969074486675632798832199499310350721966429794706611821918335314733561297605053164514674982722501585630754148257839216780503005675201901528479375701844273954949535981916759856201279319420340541164750735235697684069935446338540299515609431097602373703126732625620461123588073616618964760887085692163442665418618551377205412123699102646490859861117074438900877734114605296418811341296154096033053479463653710905813694786177505028431818875067370246242754526642376123816539016711572047122347716120003575196688970276062631215624301803497640551451280099202510610336063574841846599224965817127709602963162510264013617963519465194246703030375019794237506377617326078382529112681109562608949307182244561838450467414641589486268273801488655814331426344541449668289856958593491194049479619741636102821318488298615475759903870354034604634381114514502139681183942042251703737199517639447741982147815140200034644827150012097530414021492985308813515298994823690089799275041414151519612250621486202446307760678782505175771994475958682204287662488105503357714253262404934760074271592563135869118265533637813104889945020023080868282799818088632096904634076230502306486847336099671632261553157237843846528400750951926162402027737088270667000615685123005437954691364388349665274492006041224520749636643693128141333968938056414770344727470092604292248170955547183722333403632808353755665449048705712170975941481497278609664984758406356035742176934847813327542378526715098110041298558611990583910922004390227887189129814623270207897711441455387725177116460462488187897989259287254418951594471423010914906601830856749778186784307976951724271510869217848108737619734953392311942889500355876737296671383196683030497093982502110641675186090212751850764746543731059270098839688719492432796645082245332149913161635710719750183892726548554120244227933427274234554550260442196756738234656559060315515675045846110919075270944602097222383209070920045491437244399536643839575231394852968859150018474095727482006290961852576306732671982776451644889954855431103529185133990985071917410247341249202600104908101051359021921132052736628499972257057939295408104467328849490127919211869098733103607766560338532330164564829183348780549341475845279457887291777046708013870801090570612910393383983181704210011934309112863752462663130633268503967749077648008067032054411911819041548019953338134471071343658664735632588279084051174480138673497183431949683456535619269596914276206224979819929971397433842499886997082089246296231277789057684555843269346028553200222062560681852531261526001018677409216014873970293010060148884655356886382656231007443341890267719839891307121500175087958690703253490369091573812054578278811497565844296976639119121778036674266740331012004487341229190852092924538062587793618606442144069143560448437776876412497994098645261878909246815676020157776619188529973766450996516038387729360283554103709506922274181227196921617033134710836685527662252489664514773137970038664311252718991628334868824595030133641418990406054321736336689957387418049391076537108364427554118312225710451252399448698608563487971651435039997514952477746338737474650133370211354088146639810943032341525243472450241693022976047894970875112300193240015497882812748356245492706735930891183015169895567357567994925196770815651533843065727844990701443786920687935825550751747510964942267150280045559422113976480465584612080651523224551133319596881981956739328253314969115309764974739224281849577872173914241877437769120460458878817204372096715269090822883876240746026438545479433070541850600666729636217158705395224651042694379410828937921208634462859083692742305062944124425901109819896923878776876449513336067193408788335881290871680633652139115437983389069808294875812915070880401825677075803911145510777249151936170040504251837334420529636070079116861543395612639839358562750001881092239605326007759130122670436257198670479998068673527573532341523893382195382267033240074100445048792008303884316948173335837616609047682472677661984932291436401865530658014135678326351764655200836726841727966694765513527339986767115550297612329570722605576503067102275855197124613035669913581388324860290564725042482236131617590033588254619655605755015318931166210923296286391840533351685914794277262850140291163792040445581181809935539955032856026651142139682521744602196028467936738124175930680200297467404024523516297921564584169436055155498050559054864492266368903556931246621423561606868736112677796501504678604905135518943533531728085171461742703755742307619675234701575037757335932113918080854223422767174326734358652300148261575724517868137022242418100615370045087308519185590333360746225370897884273229768024886389991233463332761764395360377313506871128205499749734875150190938659459733442119584492789873552550190541444822697931572954476611925511897157139780156990596978567057392935085970158957645450986962815437726659066674875754127859164189124449148239281778402350591006368618890358787269453688873604619247321927726770175808999402218062852210845051855777047352214425584879034464281634201093009820976666895626325627108669174335544058540999033131322038666195960794356529194417724275888176227910963512213273213752801210611117611507743874417065854975155869158974335062731318443496620843040856102108068802330829077860300279339249911967952931221848484075464366488540599952184608725902336845368614870411945292684432164991239735361803200011934287440519681833471130384469539560715161659979501544036947831523011660536310718430300017557150064202162163921917462185422506581393199948846938846041750736009677142935698949862852597049841709383497052903286387274417368521772791802890909463921201394073588368890745673099123782662439216105980081844623202656815741906313920143037253481637699640201987604830490712174026464745943521718704978476625648500790610616240713988657392559330485660063145983404713506119509850208772452305873247915570434400988845973241520416620552741268172370019048898811719563382375343789722186773616420169030342114133492667911149237522589083324360692838694190313969561319243045052356305890135223285219525813727340554868569532347342588543013952640778890486003157605718643154979310277088873648963726360359241285451099737154148489919970596379531288815332916982429208602626762086248248646615321119718699453790593952782470127764507284174572849684823042728582678861861799875719743041537383969182776354020972239894208449216189734620579775116591325753314409104263989343948036513161989627343761853846318370480487831747726219965621405824557343328978784112044194078943968250824812487253419009568038901707818321025190281848309584210555151555563137412418025446718408801874773191397760507299274703136121079153438279054989433768189337365746540472784703799862649961944843691952578615569835457298032970549860474496140962223890610607860810888438395410886125076937275833224877036545326562295728367322889700941432455958807624294419591410730434382703586582680626466258404248185595497635716403650657193913544919042166960542753912599897456894881554621985916841443794475585126027900830188123083619998617975055898684587636278333935164160358333901234989663678446357802907363521811528637032561514096812688566588440161239391409532010768525450017171691023102754565491203997193114611567819755779576141350346624328038599774945894487603551493554258195252334813052718504308692096472776688077812467889332826863499989087428052696108390835885418522544097741551354206455175979034224515228377726311942311713366072580299847699366637687046658666517365255316206286551088491026785859768500629731021817943584898494369644922510303931295099349443473959894976175216979677707809443083756580482339849837610305721056771490530296770933563979714495815191303241787103316900690154116985023321201525062286913547692640106031608482824964479223785856562555512756880251582586027021970515176170582307174275463534994821569243771355473725888824094683236967073981174378759067298551734766220688768775408022457824341886965664241296671586489999234536547892456643997245347526996119649485376334732699121592085975947735854985517576978116013577628871624037420588173342123393561455939094713718995401274497391251980377217210651937906759474398163358162818578446931633591552211927883555653077883024048430416389897478487441771752963764054716640517930001660122143944764420214932593557769993886389057651951858472024346054970328676112066798593435572343435040314654716934791826903257417760362122538699252938102359337408331162979709374399140500099209625021654141127775348091520292848599107229312599530796363836533010103142167245821239224852045134600914519086460922265912339384296322130531884789422537327870282990877817366682612257531578735011696028722683515412371078517481036870367171233447982768210976908266271209392984063654585459020871789607204491108334899927158990350864908109325256284871878046840846796126054980173097686803171083929462309396744589334262441522355073941503056957236533002991158414695332537325545337178365450863188134964350424359321309355687556152364589781536428139587627570484915789080357028426300984743403009238134022892512768535655537950140525267987112435680212208702554799184691215436395405153183941372806519671415078119874460878138556948250357368729661607941757987804473662623045355479788330942924677049117021585482144931015067301947896992991935229162669886223436954479371041045486223430376930721576214912010572702551225614041948250643101302884985339838957347062226955176726889746088350713619017169362081173026129987607571134116035291573332810226629394272364086586564172276569056318682468406859900490216628508305605503248550481956058283219092541335304317663522256114538439290985327822220553478318953031107298504094169748074176383909580138501454621790145600108185722114657666467545014278524912372597349830427852192267422321704800365980143260246621356980997380736294182422464063483686865138058671269164392369178951457409956766567502194884500774020002739620781307661335835128145667385408261617570497897490580170503626895299407981808475110320396995759431164371412875800127949377995134560297056279882987301415666674776689662919338407995058357891295983614085158368221855832823830882594944045985304280850748657978498922999804124500770363711055946719915447537348402504245696027631107675064754849149369754380560226104837423549958403605041170909035648923166727999620383494460124593569108167204080700660262697210014560167508832124812797416019951421960161037641127249667915715296250660325376599920236515025347829820878657327539668042780968204569803069048890284043678576793229441545762525774753013560058470097510476859420452134918675981408156981044277275839127610567522212824247322690534474898616649950776731287409720689917441523152679782558404112289397555917646217406751087944198106258855188503266047196561310380223274917844309086483075169964118183199142312933630873115798746678923299812507014550380840734088072330909801746174508719349183455316901465195811374239918316380162060463581995485831000290172219341438345984107795732647302479982356780207628492431829653191016976364016783819400280446625247928419084256296412231841966762443869973755001416577327029688891810200181619886098621576540781983326187581730537459507672018688021684064081815293500115745356520483294258320900954842578073538931743329223616242561862045918111991546820579043354407456686001002625999477875130038082627093898356787307084292002888482020775378215692371015333947223893164591287298112763863056997192493927040804734141386399856517031777935199456594408589134427225764075975833504504782213800756024033849631074864880321874174089732403202450340661835110507709221019298998401501211109497636558103455170344716370159938767554557646337041852537766204044125945661838813089601273009885868831053071713524751741640910363283840094345417486996707102748446311278402426951912923042031347936426925278515099479279560683200515257631820011543851271183303502774910803363087827115878238589031483798768914566087729568159494539106870398195329063046573364851296545576528169816655743964045751001070194069843738914422233699872731289929640532825806440627230945038530449798326890669375296010138777578064504466949675077338709278280554466944870602591150235619542669585422739792523878188293464501920232275160354235588444617790009630005024010446454104957944790939917927195741095185632515832002489758595648317552482845409770318685798712739891041311456383810669604146307423198469491831553872140872049235223020644699340109687351393125445720843998534406352264043069952666208513451296830672684730616835950847867815567105181226320461624301341232115124391086366823862277608440933756373205654279197567442335322524897957441802177797243248131996279070474080702551240844910944770572543529100501724416941988421288289405818188327041048097097249844724925346910645202382448214654119107645571551797079586157221249746500855334389301380332065326296272768459909981550119645695896281060198378559475407526804251913459222057048931121801134050138708154741717472949967708589823138825296857733666073339991051526940587258667045749353553943481120943271712278731011017605714660125679801592464584413475264015493626132835675424176750326445802136968624739403734491893790969934269645278783422908696552573555266357915467854199055600664318763928993811393284397682023851467477451948913992285812781041049732240884392297677407895053246948159991013656906130884853260729466903584406137514655280796985503619729580102415666865271119540132438281273339767403082028824859773567000216079658192416352973705834105133849342123663277946513495244901009270922106744602974894260373169573517526656374762312165055785556499706298980364123059378007032498585239046812793516947437681130367059883219594063152591997203029855508775896441518661817490068425849551007898679529039437007176428796678489468681251366638470598173845566496646587733590128717486350540947588820765159491593573119509225729788843117163956898114485326421649752227275508552210290671790549820034169948033645118480966906759398620027881741687257669896612564171977401986539246908379866621067725844843051955726383426466000788333998235778472276683718759318217655555314674600008229839510338465231955886128932945972123734234805712487398076698746021435774141149672287427530522142782706116296984803916605343424327295786761154124823903254440427205462946582481168171441903880506565500747926946697118762301482540017279898290661392991638844729877417189425327028543621155689462095318456756727025174066989144735807752054006681925373256507443860097272817450435875051712831104857630837103424460332098105006374926571432856585501208174956703162187737541262123354160885390088405660774961705523312508781259720259814069827399003738121991530906935375177701246018395909215007289803833616234254734556998291236407106359367925165540824511862660156570504792395887095590211591745866415978834767420158224048043266252596378521833253046695577206820418209006162797790891960985985069838937620652844764820630171174000958931929028693616992111840772476836865695124310956070009587093209976115455950972245643626612363261067332230608032266928931807527634467678047765300556834520784356958621345542705023253480417955961411711527535259373207783818374777657953284005085474598362705548156664490936383784933328756439441694281357287202591198440866484802342468002194137135666582507259291435298329627581269016339995490137871683728174272105876491283718053952610948375238929096816903914773207460464872958756001843129192992499598953435432561502214142464882360494456852954799809468696714064296600315307243388759196148943791282010824614363481409745859735804016902741092026379546081219200294805911413623151917161964958315321865032176204126686848174953972432208586630968335842089044754701212779115954711443717521734262646488462428351998013807345412089069967064200552754750088934791833400356173003509975992879609521326779296415957391438809889248115816547075687731037423741063863790516259576456635569210272540612632778374980811405392438332962033957269621736339377041558440909464771689972318200964728350832909791697656954739622152074233420398613757629872286850056787202633669787561923150813521250546201445946496873949522325501357710003980662952509084331245407321489940634405903152711883275521279296105995530932050960614695561102823567252000768460339584785311099000721295933002655971250031761949126018888699174339676188073551540722560907843229197915058601751955380676354810429451116933076779772044967193429784638183999543578784174087714269657163806703081727903956982620066192189639050372133935341302299783426719955661261702371037853653894646508444291947113658152672306034470404028974919527108549852619900534251533794123432974798558454434456892371335766222737641920695951241667097461057687879733006531301352442660400695707383842657027948966579952116462600767900264983504123274610957200543008852223361083849777661381065470174342869850983544566784738309483919391083498418787405501101857627064608217718264705891420602390516179983194321550676344208938454660529683616243469685694827992517790359324109104902855460841395232197941265106869827253255577327733059449231145218749124841398861375002007551154986309120781873163287198283754575782920414924357406275255673502779454153663316245711909694606485181343953461054558510291025284083936348964664340627925710367331749787955230990636404991181136648300120790548079748960870167249452185610604589851821676916621992788871734263390651469008291561645732433307090541424756682289361300921671072361996077946269066739758750725944939589903313874079951325365344227418219649391130398189544037352513641757725576281459160038855941441545175601814196978781347457685785279803692382440282587979914835832816691574628210694541600899871215387163470459823364353912634458812313606742207400813229902478488642997562476191141058842500220052996122331718760191089610485365134941997892905828843667976138006470064421239539841145772156077247265724069720172993689433843480540509714031822431880333294612474257534060363554948183155775561657465716530754268694518940627814005225104456552905732193367383611960868306967809537561240729779813843789217259067181201263908860227510761210334241364608764261536309363867722351209644202085721478016709962464732556882087823230299679193813586196977304232061652689553565840646008612921910696299881503534483509903183178676212283867592326032530071627565899094637576482875240063868049572810094207721059200125303480387045814356812646120422098014222539574857310125605395994914685777745478177987517938230471267776407935648887187308787225106692694799240297070039095964682661683713164851235296563978501320875303074060948495748381698186591658512495855550336071691492936303169680791027276372525239333959560216347484176337472764647575396133251465791845403427749124154306861523165530825126227996000515947036673734838695645799079906634148409493297974929676207018011450486486151383078008764240007440896391349355405505518921388462971403744220716126363050345732171830432409215245725983320129846513188399945115264560541528042813959207462656341995954352944312567216211567064447984203062633896937239851338984995417168020849000597946849009743633599660456022815938106170781348418718817268685961597862524248314142887136111094066926087136530528025394682231932642736769683308665167765330559392657328944110596712893509495129134433769570922543466389952171793343233623634417684350143498083280629455511362746940314631758084922922176279145839261584072297143795509231884816846813789312737482148277769264106611688657976479145303589089730333248198420974341583179242971430147385315966866248607467823176536520244274675350950365831901913779343440089061445509054816333872719594019820444049193407326634296119796074172435739774729955196262334841254875159469147963778396934617223437635066199690631936163886760344286087921212165387750426082040751955017044530291075176525862201433776335085856033085689778061717131159041125286750561696461841952844501817110848839581657710453393596447646077904434554286147848799412039424645751594043191184750722568407551313378269125612659965542108037876821278015175801495732279736555900493497168866515019890081235612866056490992686770604182153917712631971369699027482970144737343484558925787658177571361095662977174384246390677079011826524796489270527760688729372682226614328020105529994458239920387163337627289596424242910390324667340354227492678398987560929466530929355040941786970590146511147289264221327815079271778871760167998003211312815420702263575981362170062651839996131777629897099402753218868319968297717632126112679943349558289280288305027494804158828797177240522337115277652840433677717129047226928495132791420896845179199083483699809852829487451788071991823322270874414589781767041532137674477739480338922560090203937700826527046653687893902196257646043834721181352704921508485748782414734559384624674016457689601802081357027239660235103199575667412564745927730387088969622123574999816308634308498616644443279646133411022659200868573340300574359068926966206230648671886149650405148024658362442696691948685140091781707012380190068972608671407008827873947791136340906977925031852823635633606739626796362797253227661581804226660014680793366663921876128737334000812530656945517575972237323496342283918352608221101831047903105805178348116857917828253623972738302786694092004413271043508245707209981088477031707055145196970622066264111985629874605274163077709320486492838871585448627171990505843536823831035102323164144068156221585749017398031925635561305173594788795019975363838956055501580235874160273251952292239551536367119911019308264091393610528616114463781725753833995965192048759531873184719003610209827657479114422503802638963062789111336518581210824892860745661728488391722326994695063686183364950281750987317658776097702171825235831661269035690712944316092716902428598093733359767081416286062373873262359778096640730775330452643734173186612516547575216460995254332178617548086124376197471272885108091170265341429171736626742625564706763308554342896104680569207276692998105132534713863252733516650957438246514755260540204403846794885600301654271836248266533340728135373534139647101780943422372224885680551947968059345482030983819155915938718954684232126951439661754195106378481575002386516543017110153725276971713562088893630408022421861484338817643286695051352882281903560462351325041808224425404523497150446367353808244664079787550431031468715500105176642350040511240291390983873300467226784071704049904396739449960019617571479162523863155697905337579959107250498086578905144781325583011651747265949825514932649617138903267367512544446113298310102975376127597151445934874277508562806224101419431931295521741197230010878169867978306224594061954587700804553549170522669924156435321930914880204415221678729792524290251797723891783853487052211193241188721721288503033247894062615934562696109665570341363202945582747484828737247990580601467749829034648299266359000569657649769500237089860041591543223546150699572341333602040246192320598811707673571227856333903446866237878456867150583916409740618636009560079824515540188033742165148919824248919306600694551677470608152622481568889770127719735920382216439021974285925804146664345026223733198637675978813746602297023415635299278165951076069711174186587039789549500045473249148435576487092674371511960466157617619060331543815018512327807972568169874787107840477087454028384110350656765283268783535776011345769908888094946976907354844713305324310035853199856318687692623467949728847669211996996743694686654742475132587405316054859302384647395033542227619341054806570261671174683716940962851310801563451365725778141884699340634852775997514350150813276235971183259183085063572232164582952335343056537839771263060230782560584409287856046283415002702099450706726349715423056592896237582319388568368991134104653117707669196647385621815929926829000533840456399120596403776654582575170164902556693639184472991219413206130802538644424272920177216388052682364199352058061313672441585516686869533288150283991406354034567310307811483875864267412959929690258750831764468316298754047366518389904579707932277001096787701747695613108746696636050833653313768736982902016532230220208546454437418947963105083112434205449829619616246670657223148376713288150898342739631511042513949581642828158707485458128628441399174219779649049812863606477592949712505760776783299747973239509356911301642510316807567708078316470246364897417025856824053973010732978426980912218605553198963630724090375658340952188805495969422922003217368281214321837310771488968680887668944702078784505198093213540200430779293310618324639422774887211623411997365021411905698063763989916933509707553225572373336805614229509216906962009408252686405482122209738246780339566549453836427820645601988248744042794857744948137075615021354532626223267310405934103210621692517487895208498018620811837926139004856115092888030128682927286804904608773796741147339645437078333612344142693105530803307171487458823927602842922771628989797561180516294335705410951387780869173313431460666202784318629431025420456330307413335410720433397094692085658980722041470226816303686601646615178326945146095602780570796825400461403139900034197988978010972130093071641762839179184863690203058768174994573092829881249020542189057903413734492654952440759137437389463561152429903220323140818751093841525298239580465353032559141252430782753184943624148655338493747314140810888360925470450960632736650005838380490276425922812626060230431848287149192836843322352615375778459649290564420144569908431354769780585963571881001004352399977550102579060122707269343804884940094845411836323655662483899903556692251624801705685159717678390733210624056353933599580389049331418220941496829921562184244505103378006732789201069056356864912527808451982445167913325948641846674433712436051910766444113514132650681252906171690414750663414821709526943183614814995534424471921209501570890837523843134768825147557099804642910368417444571713670004551239837399181455343636003136180669940388273476580325615321227545949083286653202180670629594324688600730941378287509279656574886681766016917465704247186882507250317201970321921628778598411717025072672270487193808373651371909545162687967678815944550901325052779131309205994515501240385430912589368008962755402724951658693600785092351522174502837450333113889091369048395292872145694902642353207683094865943888710779041905222290003413192244911496725964831288721106690388381610354755802985248980582592644935130934928921168469452936826066334435908058251466822938037379742743033441222605345022264953672314774965754527238475076110494066515112802085411457738152807404392457445301210444806633742400170974091488637441933814125141063332068578450752587413382051015724659596552071499268500451958386913983381680453341986914903532713541959623780166767536128430858648709764261586852266640597458700053253957197826354161082429679354881733832893610867708877268545130182769155822742388698237291199510326204029326315793319023668173447426983066602705710787938711661808475925921872825474463430406451511220179714285868885203553318728796345352784201320379652059284878549691645961059982444447673661906304246393663016251203847173985156374680825944697643114581871670381205752749643198041913919007328117934054331017869929815035242930734428938132311973716576493065209744173403812835478101210793718566700407650821928308664194745385349085358451348313025672799306938742172889198236658135145522384326733138164207499978223351718823123503767686723558564547608820524651634886488826565818348197985816338806908774068153703973315276184477738378520797263507108186845210266655906771836719728629723481390686411824024371112215548755512700079354690627439739999431639932749459291235795014930093964113726526853798793370631096269500566673244293887267857410833752172316431933413127177360675832413103977965994409053194438671784080902294848462073122455190962498878161187164401192367360251782022219711251882673954568588712498451934772291344920496529307807117841995419732402463833204136338396753646754856036753823830420576554699127314478812608615341256814772685150723143147410633896504314740040259701829915869972745185019840679670659177363605444077442670564356740501418082159754517065750144784572759341430701079897718842072952151778710218926529027067346167040708468174677312713731917225507131351780652424049220524641974363903700940211913568644134999278630974407991161601257365316493328251453838739032873408341542061275409449548235712138922374275418221528828634523517753625761278379202951146489649224257147895092145555471098866762673258121123936849410863940936867885416066904574988551379013805837034405591100575396206315398955018163200331779672099620369367384282423095866049662023607789256856747025470718569459329772105410997854627885773400725967376502686632025978226279003889950010923770296736440917715272398021233437058712252875361019445001439994963299930007715250988907556295782552204390641295353628552035762308478928663545479119422497892976317242306046615909415471457198923693299107425939077032208875238621294444957805778794527472580130413466919259212025087411004950230366776791149330101021811755861726377247589361724334420173666691047003023535824989441433918902354028365148563254505172495581788480806908638313839386619334989469831911965794564966214521571997415384450931493934866756632782269031148698433460679078838102488022949347373481290449282727642056153229370341011215476684602848619554263891814309874770655529099981996575357037771814758001362806123219496708826503864099605410215829440057164274872364938340019849194766562781259978606636162140172014535806982422602180819362866363382410236607286672881198884061338363583910641249626070398880672147385736091922466895516355170674216234195620521503017381233051947461216710291535255832984274362744581916936281935176499430013854530912813376201185725822849391020682687346034969323991164305038754964520217165816617553013113954319578858084196659547488145384727521560380993179433394768443178219104061914442002713337097970436755940325506897631678535054177656901941975933473152784637172442689346679418025825657176628384439079225237042219660270433062809324882450759290405465447667346684796266332298851348023419772086259158830668232869365095493016298396725033308305845191160156502903063004850824703118538894437791370876754670274949749155640452841979341328452784231185971132467405224801112627633803311801903665940234926836906211869504181695466729629421515441587427250472404986515301198458306030013052292599227326766395315044694915787126263521515845245087820453984057386597747533204349294984174949860327753745904815590156869491156869119268829041475556866976307600807520066209333063195607417733325045087636660476488098588275915825703029665166503969631613066770471279799193380934148907228446286650714733561682659658938436227725275129090583107731671562794455080853471664789328022846013475855257121907536298906325323846347032950486792344122185174036197247128835027324905366712716406849808968302210899448609234838609582412561622624178667755314038069364547554473538961823393601231123318338938504418535577567017571904108189552404194232315836619762507673568954310450663220076320314283608206451985212142590828108150044545813365110533368220872189697522965204526387613218745801357625721131168424478857346855747233844920279690282518012884772465402743059096104089083150866574151911705957187194235479509883198316800602056968013023551028595027271047504037104631035902334776939967031406450373624168687086274763734566432238968784203324741479966212254737279220817409075892802981409425796153445191703861325350497644060810279916199829939509757332976317220946706775927476997221990173993232892279586357069106371648357793339825098627409710310262764403700815991545457534737028551499807850776698645759373385559590632777858370327895706207884177779572995275829257545585707546081302402334062709878510577278725844981307699787496926111047993161015710255169903751729597043615435721204526778779689207090582081944912085212920357529732948406353207945468546033734164350480987109008036444370363470947890373481524989205971297800417892141606318066818202719419482023516980586634882465033587042766142518994474852102640101201416993800586469569203599715499703547019842602582609167803148968276215242670608833893365099955764919364084757112212107746831913644080323138759716707651139936250988064161505325635816701447293536504089250482871066709853219149879846688379958019355797905360299311991875056695021601797456875672514329493155217776895020427887437890844451679444409699785372059455797789371200000324361755623931338532544296809619772065564993046785293346441642091304468406127424478871326071449530922881976415175061766765703433370005141366433265250642545595771692199044031139346107781803044946058318767435235800222645891101075957533213464732164147448732659312898064927976106285911810258638832612680315752989805828018183903875683088821107939107724859629640853276118796560605446434781125311335451709296898427005709638642789941841470923605740698277149056123421021580429536926986719911299661954640915579373577970311265274353325294310174391088406684468388303637433986807247461275533154343778877237643631682201314029823222845324943661457095233745204206884956752754056621168166608320655996360159688022142079538919601868053552019930366562690785957990332046782230467793896564995858808941952436129622299222701146525258423379861690274193232609891091941276186301017806232469609064927776107439715135503503734209118215872346172814719896338944832996754384178182849483042160864892398965254855973728710755128437674051495700764529001244195647923501116171683132797874604521717347245079218416722521708105429402416796535539949410178824496686680611413605093172861926112662764448535673090109440149428791506293655746620381081466157053910846898377537285436770370104247104718199625386113721341612589008574508165515092224243003051841797700293845479499392875589551840806730191909121118173538992337014653646833238514589595435530198549789023446358644003631123997309177578385013012308160985260469586900806472280046526290618010448259781993588191304937973031579999297005184098585782454917433777071941217402668681147954739374388604694767462725664303184200221464169782656370532133023330850875394548156548303398114704630102743316026587288337154717916840790180782363969405808223918066061979082655065694613095106474632966228072832507140345220642207048751824408125215336159812734000497454413591954862965355144543865486761781999468280525576458669790644473312228450995195305540237957033297449263121394176113773825456400332143793116790917555536853078184088068681526275755623811635434977965982547021939269038214643921427837234125274918444797131585566194781376127464857123763053001744173950154660516878903977175528653000293623915852296142240239287210148608011233688130414535471635068783665239183928408480295317653878731334889925945550208212306602200724483251789823094206032449075977091848983849517263585379887702450286626572666245669735459535086634079979294457071644300797138413372532247666635258755143614695454182047444854510291444882383059542977839799689276420449868479636654295507582665454640955026762235528219363860579884672771948325817759047871968774479703811122922371094962147026810579626673406870186904975130506747101201813761254930125705974039008231182189292290441799555089827529238766549687886210382786648841173233857761684164904196027732893569342826206629245315754048651836114563175918819928172320752629131450987827754870944789888856469741276511070740053754016437927699531811771820354504939988765350714389073899675121605530683770012129430761112722542571790630619997083156783796858129616260692210315348117157319582654172459593811926935897910414404626355138971771135099275054961709163328633320891446328264281943704263982637481770425233783474376114224740700172702652177571635073558418846795775085717875514977459457951075723561519702544459243834675490599889930425432424165306008702466812907891926415224957721429620850063735659672308222530495318548538911705903841909325508261467743395802342193966223180301075547362198780350457764970595501325803040238902633922570539213427658638391060773786889103399138267331644526161702975848186432833827971658213475503107378674226800985483226798182391513176148664611029556218738708410415707803103533810443641422467933375944851463257601214991018523427540727470426107539708839675448093540411270301161111156289952005683297673344379374775558345243798392268133321981062253854893424608039743775524515696163948795474584730396734531708044622077814002688067821562844581265642173158411790003406279527497396789161709201783639273164333900853547038580044353932626855094504843988007615142955867310815614098889445928605239090051269466637973825643532557046620375805623448770419432600136148718771939000419639221008997817308969604813424435993963684333347061692423275186239380332879017741485018239872123904501631986091876852366487349195514348219536014193305946787532382033486628461703155495314464560009598522022392036776919524057335083259523173422422612144453975605498669764866618941558512845157449110702136152938259132642953998164336010569955947457637081654953609932981786034330342855642318393950881582242871992832629950978518770551321361437339051271441867370668042118486151146569122424926494260462092066394375294978062119386007274655432967020792989322061215870202680736616688405761734394894820964259682490801760569599848565480101241667867567820011777391345308106793331194794092439897374642470473869946748869681966587842426376318968367934629430418526374464447092954946796724848142838899178612449937354628798615201362883663750628642716273701838850762323432678516149367703953144102743342717169096458839281514906105141285402615417018886020458432030665052435896566005079683730956119806385953878026557986359535106153542351687533834161347546569466991046088810965552407921416345609442458363760834276524206571474866140798740953428720611199496362356088959140198684358027140306717134439725564662227395627250859493805644110592756541865503812852437980007212295466616700565159126598230301776336468138762294036884020973253971546978234894869195738049251498095162965228759560360114204920210853231387757783993175223969272541696305756652733947849531608479777466066398570627840465965010093050936340506733530147640791929496191483309964568359092381361118154096748360398901302424434447804596776118827983251894034914175752610050306077267294638012580462030711202653037293481032593774665742125392586273466744731809347908918037102143760767118753860042726799492256383365507570415179358317430731779660662784178476048973164907653775941399391484800260353617092142458336093580286872813809474152265412491867077426108637788463854499699106060938390419480546114817070035929836125894439286259158837971126856285173684385043903994513869394042138780762691287268543968643127680239541845019983966182857586346622398562135096214846625567303722114124903189185084405919257721254205450151926981353747754515120697594080400537555561665579660328834257426309456267068188918292206767446128552089204701281592568410788192034396509146948923505198294959455694141870596087230517929175145540064908148213954862901520255406641736125864279726119920678902586135036032543105110639950185034422211541401868854894196151550728353054503236450749478135930721774365851870848130766728903363922295367782351236695932178105939165523884316451614927963154096602324118607061525504907116161473227536076553325283670504202216566577271992779869421021656401893864633581675558377190365234043603082779762722578980723675877014084934744037245772347124460908654678676132328279299001705590928111887011065140118396027143870356798309015795373367612848824567115816825135151506522264933331602181327931039824777210086253636896076849648592303789820080616644678370517020936362895477868682016582935247741646517322072345798601892234488592548857701116272031676528379381415433018209544091584196707625288060273767187323292703571978150937120336397236166264560751786072630035414825932894606681472185755100481906468794029462193689547860771125147602520447186622977099848237270121114030839238024202527002184122918585830135619672881241745272430649343845094360121731101157054747206341338067421492088180009920171070075251056150561584572604629998507720205756874192433704801733687031353948035730882006807022107203123489443546488942742237619571324348965373894351051014319143132099182826572407147446194862160516378465447858595493732393273314457436019729747166445808254859019476775147291578119283497972889644503274352088356406288368529799596941231709189829618665699760982594643349177175101793803206204743217570538714958847934921579442088511181626262462301944758087787880168107888401472783475511670366848560399514554506372667165532817603094821190155920369548358570350361887402630288107982120959635955132487378287908631998688848713617609758833642511509209571188558268414051223297411205381671591893934832033386768610641211779953057485807579788384228262124757150158251447978424333977950065723113261240448390777516859555190318712092434249638813453728023494358612260631674988928662360320868997730385778810280587808990553813361109599230706326570287091064314564960641729208650881672470667673329643623676477878195078249905343689347182571921301405669589069741088463077012755686543894412894045370620958185871768324120978501461285067589624585456723531311893816242815210935856222233695852674511862518581719446547874470853746721758096317948418657696429538030136277237067486530761551710851695084488540168813254940585993733283294254471750796167550735620383561325066076626260937441038707040973092327068801229463849105050600197657272894248681090295708459265137094662895079622025770241618980987657094841946636017739688161396357729474563648486960327287483573214149740244467640331863002295337520836249123040495826767376161788323318959247425138053659935032608755663914477376267238927626401357497043672372121462941687295350028273563444160732887388701847227719317676989223430040966120058118687700611653238945606208176169932175107728055352842595861118877887392999947849966336212401556384935508568457012328887357554756861883009920308828221866449108719624437365017445901487459689370093315184211015333262211145738283720673618219819196639545619660693786980636719641470141019047970018808396505774997674556795933670213431260389258305978170953939571866374384313397092314746332679660725568867957976692759502425842128776346350014827723281111689662116800581580847476561128986340328244327198688523698083900469900625666182980493178038108412798089193253622356855938430985334045482895682864126571823778181296678031511127915013699176468142820383947207308345965867326397463657649154503002067917286024097434738065236027338069063879987468021322769303491629146603871244746903872589084384852156978577744488741881614774810428172597418990699192931127071797971177064094256995756750642008639946379772356327109485735904705355416723935251822486991335338322699409611219823540296469071750070407180312366596988947770740823707340792803952497141826906297434648808284367564933543467435203280388833269770434253765825197732888498466151442245520006845511940429607973098442581108349755392293161883182466099983395872908192043685343861862380399644451370465643952448361326997371427832722907200901569359346822048965328748571213303465315212404634745588629425127656049004295454799618738244306712034447540213880312829124776585025035169618517063051973955492937430391575933466519594758912439600277431212980509794301107647234501788147970790122934813400543569700838839571855759432552367398555115084238856953711384566632491798500649371942347173901238381420123386354990638579665449389371516930273771877021623272684563410765226146025930811744476661259804044383066176281115897222036327769618689921178906647513816396208303327588162255102504017112787753780598677297565666639891321857891258850845344589738606990066621970480827830009445543603050126670459992973481326132253000996603460098325915426206480083899075524452462617794641566160543364016270254785752502756092390465669641588762227949239846191158072010483371772806426450679823080699649007856332081134824933063746363104509534278824629668834090352456260481622207884912748653225920815277379518108457805139997617538372440457301713887128468153770316045358804495900666127905738533865206946403266850583941169806133470567281473975128611801196535889702652218853952910368347192013097526678058889317231029269978750460449521599470655779527127438282039667492475677069405830581470805998559394795433859000639436038765344960289155191927203902044692482929043161432479644632191915191890835609860581236292242149870588270140158360458596839718937418456416292825034950977474932519005659669877154733192582298343287999283749645964361409362243711317009799072034853415364185269579971897480821680361275581925881464108118628270948711947282152467106409336579157825867890198095791736685233801166649448449263865375280119780329515899896018652325810453651003633208807690258724203549672396316244445866414006243656151292833637311228981978042701014070950900475872239884642669728503166206897266428347144795953499341159123665334093465278748675491980632106047438268251450787222332722937260409089700362213644436987500129575796631795368325126027973318358711314530900567753598451174764772267808974558487559426365410986654589103087706330870151141256214410000540587923597875986803881733289075939663975680323078708264323729272042344949294797977364482835306579282234197087498154908193127497601988347298088489380148578365624564944323619132910057489227334649559046649908511264518424784546661518416790877173702465587173462557420870723911858034864158849738199683404774099178721172902341652241500483984252762561802770510474217438309004673771459479162520825104526343450702908649139517131376476808333139026036085702340882691600964770031163302088813641955624909048008074386907504885311024480258204025159981039763298193123331719166572645418972702807297415318014827927211636575514104598765994931559200551364434189593951498776833660862054965607799961251135407426644915906954249066715690225888947807371202537570883602377647583960923146138751965662673212061534276056146947391441598387509789752788400536485243476312059343739936486207526954019037946398013091038319160208981434828924736190903020065147678680435619687756295832504122544646976278778018133714644333571396847367794994204746406195491949933505964352336035875205219553568015648265090450344928043436008797766630503079723543605163617134319439654138102312932121516414794918421883124471877403530265100634040041563313316975368068048435381009742557910491424921455237114819109480679190915137055580646218176300643737258180510414990565203171415273763959386173492342597425076971042607646438276185807117148644177359589721054122862385961546354522838144083167675855552558840468895080854818485549759514171312866255552412837882766639196701241723935304085010750459832774207067328792263831227520177785293197936636733357789147604676429350909152574096002335256957229968597668221107379667970601355618548798609856878742580476267188632841266989134283334336782897895819174390185326879728498213684458409247561798080525232343183951788000664934058983266263952256743705682080139093834047243192401803326445640497956584582556647289714369559925743894715521346418449237179078797070897863902927621108543668033650293641633053772162956171349633595266454465409230957499620279363919437964219086114879746380054350596421137686913934776826426875035684994775259460955230117819325802786160947745726506501677029121009946856659532568153834157380382631739582094368086597090198285584401199020394864770499335082772267495533818235563759049168736379947457136397391126985940778588878778564330540922560716497995342142978556309709211622187794159819279281262698585721493176063815100853201887701827582020908302456461064211184310584007077526402892969199399797234728909087402016082616031701141590560073867422027451873589246867647018115805379955964435302390391197848457295725744743346726341393502404043137059362334238376999627150016189370858188777250983240527830272487778993688577735083124092100942100521291709813434004944672536846097524999850637498235226465871859370076929322871348514098865997479780360127970777498288177464688474730298308306411820286760986562401632576044578311859192718140676307937693285861749179389105645347537222949261654096823260050145947874298777036461759784246521292993888022022124492995649983858211661658517482115299480325645471528430846070069060460009639930162245002513860055028926495854355701884941633549005774723649803985169773268825254147320373331502777132878173027487415004452379743579339471291079616014922044764297793744970161469169535674536357712357920549458689771845186030633995031366981285321641845173683667661073354866159855266579297881296607637688581946220377078979010242382798001428689052908534979760526804917120777785355319747897444117666603675095179174946881069057274042855201026224239227332542930791910877806811172291630462497415852727713682521474258629643417233573227306062760192200050628029799271303077801285086338850266489726152727833226717703942587732767364158850204754411793248994234627841458777071463431322202489719950136633008701899157896124835702567920472507084869724672548313527992199444809292091755863135500827650932413797513490233308442364754472946241263591784332197220367667625897175819721325875145295702615767879339549838259275305680265505242485813127381438370322240139265251821103670919706729558030831627973760987100641436526844528463957684128846037624235569395100856871694256180984444880314936354747106375067716899512850811002097215224911843521931168190744994527870804093257981669138364957131745295680072645403998626658526620777683903779287283793863800099132406536900836508966215264041298169429130632995831358931386166227362687844483915013554176772100250646044217354409703962585281648716597109902974084029431585776989333987945205568339448925009494707439126987054338824166951008285297480445702952775717299457506870241065967306213496964023347826158292968439207200558385443585650055651361684817687430717073944631223698285511361781187393180174363463262507054262868074225794542438821871983024737849320465917670721773226701572990392742633861562863107080776829338426696465092807256564585499124568685425387543201381495722480006037681940338287771593039453459747263379954228702479756198419373670360717820245973783624985766637335466143296522695396394393138687284765774618094308418550957227151959881768560058259121318844741530498393813354033763460223138638973913186676789277879045891206314225783506279459671328220204723685194400293387456741221335258376677032547535524611633809940946983860905211493082612240737345264383235725083136214579339711399846677435769226574638115326930800156841090561309719467419134983924873359650686918355005574882309361641031318573923148388155557972189897116784298119511355632951959262395473248376060574016513491894544477122567840629101580467160341475453727051250110286108127592921971058983163216196220754391885072358894634893784948698225435096498337403094969419756913638705955852321989274060200912184823107011166970630825469451338575157778346500782980930383943122523816904888394552727128632244294214002591946764750422054239119299491133016814716451116135250527222070912248579954246658106645604238667217954024716184640099313015794113630304886823358390598853417676312180767401734238124839790064043527565559599063170826039471145473002277156670799168085185981831054429881069881092661858600576404841989883326326235909730796762581224963729652507754240815931867967303215852811262827738585325670693577729977518055428855290608803150156248898683190061473059336319014265252975818917656296217207624360570604127760353643647436834789321630342280930963743931328856066106411777048340213470314819480367836518891004350302189605756532773435496128221081665879867910381072585334389517838812255378748214565325048007986198520825845159976859136381057438940239490844050896970598732708234379026079335344323563934013284812634582719309461303681462854444830824799808744886037759583090792805964173502613538279793968151597616516690108112428145694547005215580535118149270810950878043152962945048372170298373994535597441642089825852178708652359851435268609128249917941546898398065079671684989679987898843079565161129047968192851116648975385100401499218378941454347421527272724929333967246168727166167451671564543322308195430423318038778369291707882865137466182626596015106542248119766326226192837654496522856103609616689276680410651093227580909665568816386248987423388192007683643830687185323218451530739322046027854782958614327383927877222894808665100723283909287189798042802344135705622789132105889771946367419594282117427355174330714716666179360096475983956242656621990518683388362834372920682061056807423184110937521357029228549920016126673018517472082296280358424966730696133567003345718357550792972118792648550892497371313849990825284464101515978100997290706941324977509496602636830455232963189185753208241117767742006328768858588431487437428033475854384904541918792346527552275566815208215754292858427305322737195401795490226478485518085339631823036734128468937527696993548837944313590117490475262291301657153230186657784459150273557624199818607698638877884067584980540098090638107448684199599754834881769123787349395045030069115711152171201616625026511566538081478007962902682349219478811107480217526433998291015441961834156836207586781481060103606320871052852492646616947573646818567251104019057940457921343092298566957109197360420527951023257569613072837997043680814864198713921580894881878331618513266729151221730089923848884582258719297573529924227935658708274171306660924159289604458120287127963642535766757580451956504826041507727995079866060949209017297290363439055831897943776594402431438086263299486002305066668865973113831710633945418357011621188933186193407331672350618490339845709551278554460359634301557270924143534875234159264050553512797676046207783411945996154818903305905812102060864342329479777946231675114937510169417588401154291149644954581335697750474708159195537723303031395871830481231805705989754650280944171823107995010309109068856120568872287813001744581871220066695394168119547060215746182168658860035398174163839018731958737053513900737408600987142929767518032295623101644702737858407834537435221480334348341785082419407190097290683064347259109591859358014230739939381401270983226000297662876334524765117209992678526876325568248447870666870875157620522585330532387063480834193870589715443764059557306553416321419240443853327001516088637780822168191272155756170666135987004640450428635123937885802977808155236702498215245292487924601942333466306803230895043676612508571221385417861723544780686676488788052828872741480187697019241866901787642600858254956268950498434154640547436225445252390205712462625325334408590013858362607849323175516122046781318253125100777969405074227391509070916736548776752819339305829229007539047177117644227617781539720731522455403496951994201933954278907435412945101248981809227207180969635706718016161739528386543929390424430989093512686927979372789670764450223162839474831511003142626367568701626348378768219102689976998951764069440571179139207971609427253598319409814012470774511060828178296990833705154071870569551799569728676940695772430388500462072511747058123197121911474837492036931245541107840246833328351513566761703564227732826054522120760701588728027655589488598321057133975227808998878582290405737343959260628095350251467746049356741002663426028655772895181925658715695065204674841535791213752923804130470029166874632453485732969507155493160059852141180790471295249072823279707846818071279090867744291357634323155984443845959618541588308422968844378058372572211467844012057328311799532721597283163812344996146769180585673677668699339060472503661039407294902976688715137056768844218950073661970200501382506383126140324979042125275702273643074536904876750068906020857879044673843859411604400092591685888718346933779322068309853181750870728741698841560051942795748561854919231478606810065625275525618819815110246069648382834529856510785293597595805800264869370225826539585470274287349894265172464704931885934083645926267900699540462529271211875188069477379331507489103508884426678338008689659120575180982391357464260918022932356069279387114001387858596261140357429166252552324809092003721608483559848274366901083264100348953713957242836136126016964596045700556198340546888220665161029956770722377816342032263745638906783191345754187418334563421976661797837845544195392750730301688549524253296307202935084452253750961244401898074816172853054403618119810588941738095583949608482861359508010572268082788031011364985953195759297492628613485276171836008753808502176271080165556453857436005604894644383278368598311013251901869240104401290331433152918864621878281786051886259956283839370008127237777635600136853869726980674840592445192672699951098607729491488655521934118642697783973024987395567335097196841642128259170559482305442648201291097744771923114764489384313938269895898212661887286715430281725432021143729348570467179999186896283816766052443888909669837114982245424909377741252956535460464652817089326063461608012135527659746629256358918495732099825159696100309330996248775299364822134856598949536082088578197510282647001595890908993342784477079277351666825708029492853275628057129831786407429057343433983097559969401644109516710404210539270936331648556512986041243156509622010306744948594516323453040918643994360543494321926358154322913955300092044036127782754481458386520395838890197369540877148946640792676093532755272510985260837600109340636100739507199039346968053947627021099895156970974262723072792288567599345246575852536541072395534277739894875665129627749053980890535423323526212061457874757662561708099679517675992538972620472290834856146999280327768575926041994929761423568087822905553814002686420155680607296242689552424538925130958978156222786157200192588624676560118373602871493052591706242491803309939045657310720167193510643386848809796629344211505749481341637839414678063901585943815661523104447206410161186756489970319608786855777251949736125150324087871314639543696572699502756385747774832472055549849043584799984472977679717720421282808075001617372472312173768135035765090759826015946666266519063149982406141078132117757857009971768868159357460437616752691431089439498268229062882251157069994429069431713373495221365243519780786070549253377426393090090532269555183475496093201128052704098617967109266033373941814058923611495925271681408267581612654030007047439250367163980421888153692147830673185454721724718636517064008584159769554303181966476259047625359337195034070788522338427420196529771583653445445204945968780886098441155542790788568245739995497880204363365677548298179003383667014251374890700195854832866897833787703350261773786579539903983312299061054544058197034540803406589158573982354767214124352944850048382443871113837916291077390433298667711273612177132270156367925494829688582008661387559201624030869715753726817039138968817903123619919449827637158125638939294234867481108913954204010906273299961814628454197870651776997431866081217987767446867404967254153637188217941969995089674482552677495779041389363438208930179097845281625074327741184106415874869516977798823238660302772613289406491016316381909732694522906475337232494683323006478586592967753047484701277986637654722426208229928296067689576303641058251800975809877628581432530395307798757247587611078376035531496430183452464937973123620589066111797146428226493821598380539819330875840442790731676836176064255521517842704603332231534850237407366962973543536074300041208735996601368831706486097059000668322362711190396255120799348659282472271460306532989318590724517344758866888776242976897617516110951670813887321299945096229251773843739700831620361238478463702031961370983678033467700022250933973604529118338107957600994993433829127293175160547873990738745749192011093525672563989184975388897802113660191621818264468695465782069934097007693090725437629944571592200863320272467773546471201758217321273727209211714533872516580586196198838343571583722351983137173347520748281625274335827948194454054937431382478190939922230910890126200566162359246785012448967787284109841388045228824641629825280974327029739584929843127710340649712460689413335184932127520271060686312182465651148624008243018029062686968187565419962615436170221456823420797555804633556125034412726027729851947028558931132507218054613099098183651471295975036107439553553072157366795606486284197789185267945568058908639566027942359704878645800732064253199163988309291614200734113190373152148952905103350497659440303351430119576539109511721236395427411721253896617049730524412889804367456307672542546442105633814649487912193795995615840232187021154954939188725878531861294034561904820246603223902740775537035056892392800645285343924756142432293892228423771617226229598308516919408251119227298574106438021973918470005242415890883687973347241590912953997368215576438350852047562113656794166509270850304695953592265103283858030221686739766482825213420696799057092302790539971052582719032471018578729275008051490726273996738548808571215477258419869596796762725553053224494469571778115929265522726438956933034825632214849136584049428364713940652315104203323434865265694503367534070939225350555915249187738695537128406377279307179029837477553878396946539324234878831062343618379110173335949681062255560701894640915303695417664633695984996800217099526619330532008579478129364437904836911831170307677752208862798854351904631646661268176340658376091701321650715015749901347894202277662951108279526362191382439907411104631212454790379602059175089775957208263860899565530333796677481634605918124889885016083477585342371889688718246895064553611482655530488208843216611208306209958113467728273831352311528417969122569942929824833606908366004071206650068884033101129100199263092763445943367132790284068138514997888410510383623553551905231168262292595328405874359931040562839099015096844400250328154986211403817625326832152492972358163411835363513477580017564195121774256832859678163166598971651311334552995718485959739286992098175222524628642682839023757011922343311104386338302685679491737603811878505551351993837482937481494315866573348277027915626530616231000152015680808692874530454443807055876693519999849743116050158172973670485282423586573144152655215120711195372769657308532860116320123117805775932127275894901408887004697914458308496255161315597601878626959847992493742950881455476252761738847146893500367181016526574377762512254571776954249906676587959978019516441222394389035357483601693044401693137601438858003463132809510779850323022005832888434126320351170897304798610820014714588684063940624160442898580656030589007680150730207690168760896712075735178823549369086896045034601452712448930762924246703009696226476466101774987924752249921365886155518069826592699852845745407571683486193577707204796878129522866550931645516685829352962237406976183887963697615663286458860410767759664309918008131818110523890709336965272177246972649441407358352414926652711905130346455665746384740998482896109846081611950065452381054489132214564880836097035532947026277751217315489528878031029258805383851855699897611899705634186789494838480710052729519702236036020828092057569260263776444101144384246426891011177206198174237113730793208998113172206125480174385472822183454172612057547762222843769699706529948849228428362461477990733223027453066171628959164293876265992640771415907988100099943303083232196103116815798374195579119472009099546979119663453737543212945122520804689292016698112526110857561936750928181502604437021671195907331359422514296018000765762998518813174664938307143973820504444996091262639151606330877093114901565450282260789921680434463408758886520142652610637590386995407496907911743619317139290399581649351134702696586400225420644902430601684364400188011138401836437822555896827241881986384419986177974587624103299011940840315723973660607668391878056115869263739698999964944009979776357316916403966669097688174738439716242925136246490436431243456401438737848650918097168165718435300176664866725679555843892872512123956124742485698883483660336898748606323410721210091222525617991710285291053586508518559840817405811486993794865837938504640212505084960948301151419855722200592109239372704640659959487154499082599226626602537408886709594914161905474741237077888389215364073537743530557724534468966835535473193921735799259107805064685353014711030500155528348255210626849268757845258571737491917899399712117622829795490250299152144435402197935101344812800780697010808214518011655981943146876837379138337043741945284242821901531795898508925629787977779865302825037832494435560032480654841404003271202293539669528296597652034477879003019309613718266748799530346627877594690195038402195072447200755537524605339596051822923132062974674582245851535011963900663748673649230304078236235143019200818454813264854935138945059257534664261440741872077796386564171958494080886677490785732181028882507308339448277258648060645721286692547679601804073214090215531831757689526168377484313485250739382132453279465621897772845149011556407802617906007658393508785440869737687338848771000029463202617870403873843242389582271123042215669021902108976710598723632255650487726469118184970955534504536603732401870643615052174003264285385078435554602906112224445863626999378049425034581418570759972020621496386783028847906569597618120829206006420457565514912344829913822498606994657248640493494495869600725848048635767783427455162849132801182190642607438422340032926856785219332953639842312273788070122624004693502383591010838825798733912362203908987828655560463332768563151850046121682104166353265494223288920041830202108495159142623684846572303073494846717082536413123974866355164422192238210433308883633374473167139716544673514048066017238095820815786961960364626789041240483630633087998052756478677126277445965221587901710045264079176074922158038998426945592478179583398229473597319697777938682016641854924516041367666824732051144913782683737175661243224950017568194814106023741265829776131431928374347469788790640678398657732684651168704657117634456217190840130218004722612407583956742531731725973416224541307656623521857681094299227508437329735389152452058327942128459420024042512849332160145017088423366882124630304719746965119265542797363002814709433200861164556402522061739139235932837416522840352612515665646059924716499770370975991487768673631586630434804435995727556878782347091717249750745967858376534342168515800787925226771076764337807873218993872621816114541802250405860027573874657205780993174064686965389687357024145279077416659182214484069390044438847699423144158332198504474461538166734841078144853465768135340519400977594506646908260904978877292300138958875428618232405365986997000668510768355892027761148394894825839907924764098201982470626564884665074197131310682237571758064434817749896778452990757726707074586160921287661214919874543154140685309153095357125779244706425647119930711430350684500958747180672201316203225709570521917563312184526522486812708527415568779052990872873480276905371304341252328681922767438260557897133247418445801730851724036911365718423001881937338774718991577144495159651654497412479228719370273982283220995937404529140038497174101403300694905869975578655869260505347404929350417527468807539582673323332953667954016139601769742949497945241525764078991666748144975110765507438161039577751892952881477599722265952448899948456352223786200892783917186538525397634283206586805603868632864811118380186540167572456672282559264370790953638182457079612445072027649330510113232284863554382746408569685723561087303482423513922907694252873779746827271186787820434725828996275863328205713566725103171562928336929933152719234819600620181301084473922141126580550531157052620585738112395144231762983849711999166259064257908859852602487760589484865342269872658609961153155366652399079366893956995595388875381956114139912703273497483828018584513079606759897186560671312384580259812085202664151063581250608375510259667549208142077954371071782329194267465225726000104058245426185877821594187224691968471961309092765359168969621179836080226923667305216459901052190499997378609010761991632376508004860397759156320469944405624807447770118963769471637336434468403192443831051495667870651832692621662077894634775610605834561742442630497103174561250737802250958164001715560155394426853016196439007398116772197803695255456106403872644449946561101054157954176810056433204066837257816993666172567923896863940533551097706941022836139109296135421141528969436164525159252860828468658041344698925432977142477241344665803234734799252943319422349613303434907959861851513181331066675773206379671917320972284849104622571873949122747004352111505330713638326647007707121238312098216281444238044049641176303215993610034728147274842866621289968066796621063825872249656099126522937500605281984566383183595675697605902339397670341297679691172174652133662083667449929260759938293139045935828572976183063888186254439763824621104928962111186277722475685752387561450007787627876060421142082655187715209590438363176558008961478819380413549499674453110028217354999155950423346197416150979275904646673718358676802445725737929871191645720478380672906139133677812440076698586166876218220409325664578168001922468205237337956931810698062185501205625968240241683882721018931469937941405146271010456120172839601966992838268556756074618353248050557978966027934774802234367116172702200983313145986000561576224926396991497610119769260698463529721172165054835573074559308748872082796030941036215406981818043229843044991562704465248421219781657549063243790818826729287119576458919579517571614767466965683724951710172952203147856037259091722586608043390007527075002006048500865910957670628865397340586700226118739049802772464826175775199381707879864167263023215995038470812895688480180051024187434771912554322553913744355050086901310182588179819719947265372984513031994284643615558976227266113944511778407531562788004483457440667016572940444869246345290251593166298790915120793032901159782559588118964936816635572700432752003137896641969044222553957593918596732841040847274111195321760234266426235799354510668379319426854457136164770071922416819175953066585101554672868436318023096448693992143719840499390925300021489900647072781318167066318678184910962037899901691944190654781752429227955162666127939782165025152024533000221812535687345697817594298732752441990770702910086670374975267773095571939913671845756183252760952346881134117088365673145205858051841599615696098426628583629673895924923361178840595122982792092275042369744857735990536949603411166087985884091493211574439819030906436662639079916677658001613623801508108965601493010329650789876072575583916349703196459893894175374376707110887857329999323893902838020294163681176343101011993133507978632255007178140302539794022710733173878373307824018100634120801906450946079542520982489969940848268842573117446684507077200854184512301865644325773944450549679597550651223738046316775691054261574189200959917949231434019228818554044338535622464577957675261688768361671597090745242533352406945527295799735930516591505546285074494174833908542465078290832994579740289866453234756007902419687826158283804541522813697590792756876847791175861882114348771831072612136189862163960348900616556627776373378682359357811288057909607231510991036966569132585201130149584425844552924425734021553158928497312893544128381432854899627617887489974267267974305813076057380535367051913284088219783425611305213579580919559290456882450656031625171624385805860519588035722389670587362289689899789599801261161860316007670619711484752727390054706810597912945174288663191758712896763581194639728956189281975681796418784672542627657857118015016754268562490580520250029128905978005968096039654285696578110394527268524110575437717289322991181472289746064883114125393991648915960839326685808998301690676144103296141391065558062143454465938149605687315444693278200254378263133424956678061590623170708279228086659135854216876951550891703367945215916638797679494738832088234128831104982015459725888074142108553556711570598579346172198254323463913757394728504017291855508232221354749850237363468382304307128218205893682760418499092843735864427958590784780297420496301200405923296291444394310490887675172536743658863500195123411854587320644060091163006575048033839025748028015867064585523980420959886718387078587803535670553215154528147150935957766814332029608107911833291570264064232709225559599252147108947361553499743938392094802004626524907302482216516553190132451078505747578141747634584936560085491858890243445594896057228556549941287777313524814352561458304047872409848751312109403438081927428373423761890647885401452409422530685714091929639536161254327747533333724363362781173617722785063217568809600349553367874088379483554920133193655923194015686100956359904667817313382551107068451235638829082374331620883245199936865337451569909638705901657219190759006045923493818001026425003260954606790351480950800981223742725311834231148964174237212775591883843295813218262074115538990174324380085336632630611658093703226653321351254979880323727086660419251434690791590211388465686384201344012973495442540798876056924587015476737302577566898669951967979979100123460074211283167024627227370396584568724750316504262070205074508099271526804911179957877441783453252918412357276657870202009465405996311559267309597188059386164993496637839850797903759512067931617286798380951702463315087280867715715479304995363853884258170096341720090483204462429218481851342252754440664335180262943224094318600918370310283539661543351769825542243018186519596218341147044702712079359379167243121232132486615632813342079098928123241861614243462130033678556646288402222847734954063448971480496644869754742038473923775265086579672526946924441961970084926054532718134872783469483101871865121857017041035529417290247240493274685757185984267453385398982231063612862597568328695482315088107302088190662690980085588958142269329582281703346798000075657342778441487264885717342931749329610015579208608213098963637885913165482790598498428711815900971444565943280691632811370753035788121422384744364959975051207125128773714398880633548268723508964841352888021523634614754630066797616133729635363293946667628890063872226777382188830649386587693094106921698667750549002816726725435798155436948044756998517027130602053842968935401117336841461890545021635597463646964200076806094082197018159925632748574994718559038996948568410626881710584459163928359246641303088690253801353911412934218777621466126687080814319619459575128361628771396664778100835351114910771221609772112986446704507757842779203483733823392365313314611472019162124709733304203564092004793879579606496456744094984350467923762855740254954078230581430116857216509337154576792216275777871166795305636910356935272501668498458351727014952903980518767786443643021262290599493299659902205547666954663688774453235049495883043556570802694231776499476126419093377350076740383528214603261007113280189746244114086530621686442798727424487860999893403103590184310417645938709192280975789478253017660290161809521776067451500403435214539128349744745491778170981345906299463013092335015304608683921330986891666332268943529203206796281057210992561308172169200409018931433438101354647764194766406005430604975080074155762814414312953268451397559060068092599604725761685510450269782964150216715770714321940389418053814322440930548020414116434032297385504621077894628342300444312374648050888329556852974081321195957546904872716237321648355813904462845275352497161334904918625339548057781202441339202636622311316050285439062884413620446264622317092538033247000579251242058852127991632892867630481417988757120792171762170674312145383997796124536050197174549412067732705598140187727154213967856118689311014141073627069115244525417014527439344740962043831817474119939461783747752087774605576238859547026658072463849699738554378202692943203532689310535668171359015974832151298998420777528402623681798785830004313278243330325966076831225618425947380665494046640797568255715514641397857808961726578566404675901443266944317634414837195795827824690084935266360225909042358180129792289884401247788541169821333566461025110453478061450588025932749005089495727975811668235750519060011327187083988786706149090457055209332916302413418644826620588270964324140372493590076678973118831231435333413914910969472441630464217862837769777695356516304429782131358481639877463866339537614140543733012851778186913727609708459553499098124914973478087163314564896509684020565774586188334418715777305539336203268429572226718935230098061936058340516944747690490659362997994290963772178978847457437116974265197856855050537833666930771650144101831203583953447208459185239374417198304059412003043735558161782975113176502065910244178641721183057865262321923966283795625586867865514945522227637948194643265061095098795088491032266449483050240240649427397733624642831354366852794763570457197749869741016864166475730280250680057575061818825031355047307606486597275038742570658256945554988428128683665881036722905290115651792030833656975862085333445885159502028534994674303208203111680307856237662812566272679137363186940679702767894628019782288178889749325414318931006988425424825535302129432712618136760292668261366137763090471722163822664310040572726262759335855899401996106363686013579764094072980436337062209368124511782704570002587901821641216964916169191840565780904033178414050220169063754890601307172728913960609818187591919502937406705374583118089006982248749114543875120346612530654549983566548927001749131557563025312190438882726462659743057162843547597470472147021925966587868682421913025514421483243619084573283686223539043472838973657900883813731312514516174123088037978387174014048273840270921564340663964216000605219569289802408534244340385478001663857513978922685191765817736824399029277241126759133040763072014066610784373241004501008400939030660859262212820565568957872107260414725221522450378837144045168259883827398427773096140237783398714478464850149347365737309971464245685062543472751832035843276214338895746242688624929393224509580127821835632888533336653309107814290778308949383264471951571233483210788910828998121675165444096493950900254354662831346208803413725516889615363870105478504121268310876545842126566022556684085227022751677352686761415170711129891446607928080486637139775968745853767464553702604372386486560399649030255195659598591719217749677442647699568595865458644872660729783439831654265351902180607513034334239180404543059707706222028937999473613179078480652467389825313917976673654924961418975294690674415182873334758357972186327013842310319741915345259575388350830874640267482936478639190375606870853098552169500567141867805166637709708646880112338845648029902893789486625330567324956213104633482713068019988144064570649351192496679285117061291485030571172609308254803354615383580857236731846743273912228631437012210578659713688574823295101715920555936057841322246483471830303875479248375196321233984850058507776637923847682419019753253703190653740825265182167989664044818364318168566620214793956134404042196309233016747805023649904268963661178711250926266482875896915122708703931543836658001155151682311562370769626147438649074388294276173770044250840874940246960659537900149488812168639922259689406877346845418828117504451252707987802861985974105566378187156645633684946501719804304127395255957044527560017991915573977122279402719887722707435454360328709360740549908641527356900341478901061108639646644085106435932123453166188519755554231084216939659281631112512502754930006916367175467660664495570853207354124678478359154397458390124172424603833551878848990875683513444011724140700928053122806003093747913151977651701602078848645762521377190802755872002140761962321856580223857141453138954544138555208002305838163978074300107362212890852499741915843709276134825257554119566693550180729064750939948480330635692567378155859235365945846901828541284596167694211869165291272175471650230621860044588946141928918686166275715278116424821180556461019040533880730154609189259573110704077679190813616834244595007637742200171173437307421846259442523515276261049229476290283508964112585989444326110857305129876907833728647241824062886363892361052612647520116104387036432587280915798857395290891478971223123627102451646625444923906289065233759587831029088695004526369520033743404323469765225838904860602184412897649069943541799370575892404685618007011161989976126702064101481448115959578835868540800583756309992683640175598082906066006539260408908427180948750052744508798850404518601690612826168614144030083213680809463315817587649390211177867341388366156568407215442536970585094386983344586434008793444032750156653985775485988899078058016544039027074938404859157063018856284569081167902680188566992601384429256191360549776778437683480571598300645820106457252036372267950985236396161956468532001052893650217942778830491693944129384457762595007196765179523242401345538608848396016976595740332392453666753247942781062022501956767016571277005413510874560593739397715554115722625458855845312853795120785323603963172717654989386894640310379287661655269176673132587197384513419771315592569163937486204985943807153175338536308308221671994091938708463421241549362993661682632899989688609015982871024533174549045234175087288174328045842427492977824097121433782216329213744948501010034340110320541578595325696936119782706763299336392312087981622982486056640567978147554841507043903065262910779235140467622558960818473580967110177102246576817649900788793734379344283993434670799973247472177005091897132686901319302125543628985395132653725237172286177182402588238133602512982030080813701317502378939525997130541084914672195266505533367876638909231030456133283042712615568654411278207333109954487353817271021776733623179292526142296623194949785835018002782248237770513916120391825467089705419165257612470834979168643086097806408364357123935068425757783031537970225054704817017438381236934811308117457225089090410717429539132307680135091295843154304229666317507933482226905706979656957006460515668945225016856308889175791810652429089463905396443583337739791252590500638567620796935244648882605945568635230691942334946185745202682874674611552473794160776110048185309619765278483828109449693761557691517248749520978917063205497203402856127085683574929203406094602711078896476502069917219973654860255280447033675652135022047631452552031658514874588610664283608130533400655034717515084691719848656451989784278425663183105074758102810503959800474083370548559040582503823384191397151406213702670375518030317360540709206279052047960556470192339969148384739308995437117400782539983816227214635505183469823889541627319325843251130849113832237463280081420177227983303263690248228162338617944250036917600759303558730777127712240470102586228436143976068323152128467569232161863423712636278583995974027646045538485258159705674980795805758740756718985376366437051342460497265634895849919382589055489740167217450807500949054890509706241414019125064509055088974904244704622812367676019840376807646600033719911880923476116131722486274553115128583495230044432429615027938491848346022946178243246596869837120706221215242526153430565899600842994038871403661504140272840641304728593698375189133439795076973422535671562599733706721412446970470994860357322798829928674135624012602821404330825898253339978379989170534938755431880254731132239364052187586919493204186084601465778005971750179889104562582695527921193075551939702454316479154679697944144970020027119593462622129072043124015232548878557981648129879614847657973726438461738389889530189508413145467644165076609937584546453903807773434372984599159804489264674066033272833897686797025959726084358031261528340774018169904716272914088633279924475881649784662525974282840093918196222620815497485685089915300267588343648366887221294331726592621377924709393470304286015779550343772205109055373853567291601597590580608796889825892629242321998036937995381912433976268936261821705492925752308971890522725392420866435675619986508537608981620952676391552071213402260812230484002738453731774594805314656322175622461532826174003930208849962364594169988104385483886654460290757528861049051202890156069199755567908741092512679693843893168207557242928034054993427404164728198067277026589896081824484941918307123010449714261477992506494467656285283524165675323108224255155028258464891025743982708195829782328840809898793263304683090229878904544875465445334460544677420306232812029262187634934030211134707206910300779022967260632373643094471330258647355778116682613075005513361049996017424589813619059342535485866533124737303444573440119246488886430020179890557038407763055867100294233415953533179365763472054463388909732391846647007250743842183377320771855766731578020680965977605886972270211591778887795381411324773110203196683412397435963117013226003204838762254511946498038076389203382761128235098066544106148928633767430963789221540447131672424819281896519924801926228831934340625697946515797226176006900773145840595337909962733751627998615940774881758807436646950759135075491865119121579809880558622921056156356103380608111276460575434203206813675417924827488988967485880991721617405360540189847864619615102753721657866826194968341233252972352248410022123713556443384938426086154130857523206737003365089148352737929510353345147073575730216592303768635761318290355262926470466947706637177670393161613959030081552086962028533241136319251498055515894135189306832905881253778537040892540509279283614261947847831484281130607951388799635629200209753236119006900321600713808538574565221313314720591949463515233412013192091722053267667891389489708638976260529846000014508500583366533566452858666657180135037094426342560684018591132357140936702725330269095945018880483437054918104203856494689668667478343715436062658081588993639999232990912514664672668710996380948483466347288153042001209627809138765711305699199523436849654573548504884936767211019185058861788253565180176341731723662026799255135911286079078458989648305570593435383842717441456284501178905343509254416312220803032253393286213322349033056074497184656642752788438018100472109259012280149429964277642669319284171483922910749834315607290992192715729182098337170097640477237253114071383642675761231662043630283669225102149188596777943027069023881376216838627425793071124929390251356623256642226120485654854334117084283071442434289268092790457123792988251105219974096686454438911366737417042934648558189156200359977942684568293332767250460692381484457371535442298452026889653384070878965983626862083864067598086313417988540480501126843593732337749600770206412733868923410438512994848441125244508680772881844360508327401188026844918810594915604777328012654586524092167890539386064196912648739616435218828528355554442093103464309779718805348783880076406136860629037401573639392106157623922032052334012638491574006113685218904187480690439568321710697522418302817388004698143066012389208024813797214616352472021597887756965745768151500547734578057180264441383924242349123439568799971284477014087656794570818070643540723880686809846431047246376933716001211177567972350744901578548960529499523829180424825952268144001012910474096801860133288168454053416848329372275184089675135835669539179300962371932529485162963477535442621052715481244963168619344089579295118220248427531411744296276559845621313084886097730150573427447635034902969337705578588279350746908679522850549398111016824984242671516482975228365866686331411093119321809684876429255174085570177061229551214533736192205982498768850559190566876323673808645107117402013364097757399197243186639936868984656175557078477747247677817619798002245679107276430454508155335424265679873939571671797340576299887544512109180419770979085867956330419262707186441129594714366157818327478846585655997293337356339912752830169751709480640740772081809647832424342301901254102958712247857698171825153828157977415522598058818182087794012243504807711875615133878421770363371422224122101621365723306096120308785886164979742644266696980208714868377665713174697337608791161330767911983583264007452628296043679992513998906353964922264873390902199202347693335915129456285342954538447552981055528315215945547662787384629150795709667426314834440977464860087834362673330690580190795331979046167841635232506688412825157907562258155956391559350361677151636614560572896943179476732954885431971164808939338082836905613614941689415422948300151800378352492060617904551485643636353992739998541954913449892486875896614033791960700527139526527935606118005318808573585693600411518016897612403610408148489338072447002609932342998428623052783338581991346524698911753586236812764467560939955313161750608552695485650057353999091434615582929203433177092163745840746459531327644089795049646366946424677126280849753887181442127925235676547496175605040075942992638740135724438033693975007083631322271464750489945483424716897766826136638879820958530170558086086661906547122242553140460678381545334134860483177097610040903423095590697200890267165222153892506343688308027569409379892693343718468967258768168914203536578416400590270843297172869721527621635071676401472425247592523444929620167637094718557491082199481090556800343496403225082857766183284361469910564073205821738380777792330937142086554281429871733223811555788883581448459954467105225043090133762864765070127319553938897713503088094052272866388970344187067500996751370170892942360173677514437377170286302727504220094717817356203981083723459789639453764094604887505307560511192820006542391083624116641155132677237051032992517008824839632770673407692588834939945554384347645968434253928140988746520307396457756935463210151739794970788088507542397901154230815618369522760198190996750067203121770645261290237506409534253928264150202849444976162828098396990494610049502815337539566804635254280236789955315643211771491153977550445301163910407128832637929765113072693503753735196469006137811640137849350003900723141507193652030993300376263293689197682404701771965553869657218613127297522451191325125027773927205126133323141699254311709510368938499215296420298868509298497981109905789325313132333387520637304377736940910445125396902612710698939811427796055878732917893663723919984346802489352207071420672880735225203592018440800350243841530047077230118979862043981592910005685273859910148102080255249881304007474049671076124903902658658152108867138927696973231061549505570693839922797706711895197178035916498785026970556361444934733227276226307076824642656408144501575536683442061762438121810124676523254629039330302822969052847303053053197242358507522574459407501977110219611231973572666567793814136884705320673300280685155640985036119243900763941816153560273324108922297343142763963105687064420573690297186972711126868945003842161862787906732948074214767423593362878537293847203148875117596784421546064949894929499139321241410881764343851381220385198094119999192187301479863792744126178498003403799232053896549501425923159237305119814275043279671105297075507776289896206793734698348485332262158076298654377292744348431227379180110719300690374402301409911381376542707450563075820639965162180999441927554265805540378239990257614711123076757483763501374401822049185234938886726010574941356012615718787479881057060770828842524308207655521920018991281362761817303347616966619450467037137704135409902635946836567027369841111387966110470744174508067042231627344307943839597683382603944868266201147881277182187231472756939014911302158302749513882204439254025485089700069160907598172749744876018871451168632522169925289139185261387406606051773197397697583291801219941769238436596910682112058849473691128741084182423016780190074064129462827437668740928258346029531060236086990943598502260136655754992760146664718340829231482841182759514030740564546976938084524404057769220763793320436299800832813422162178762393041445643198438527831469160195925022577394872422206207338329979950224884629126086746517013071982289465482126326907223065695805076707275406682154915882117153117474415128377500802393930338974423127212151464303597716429015007149647294850596202653832501890265916434330057692412647817909835085023601195801174703814043962376713470718859739828122669051701769041686463387528525468130132287405696213819784648248674753000028331757861751665633776406480483494668112255136267735948652808267350619434602895879591548520286482314067068619066441927195039271566908546686208166635591429401928901202328263601532497175807431381809782579613710758005979366961623094532638393423106743257731310718179675859094169124522234710726193229489476120080850888037549411797306607705799197751686729283103581409946389551663812619786751129097692060929307576541969213539668056146919225053690529611653850234538797215535504510935550226302009647133235432473825038233939028805260805424084590385628970097408527184218298680160555127316207722086620163687287966989872055687010792112250339601400553223659765388912651976971544720363552289690081570633892673056492322956964021993946009073039286304678459517072599337426998237672982320277907860105111879726127445507718838332229219280930369304712886316740533986251281228225590669133401831856518313082847598037243631694862591102605076124429989491568295775522275865863337165837687991772192803346148335383852449227038490972794283448480175508787343046811077000487950567380834816785020128719101664334999338392521235520146347838442504053224450460785952776751143508675010629938274727329246899743788960644137236612263175082025472225612708095796903860446870966662989943168320792192103087586155378470975465701281106764041635302674783600488328242387323823108443315368245407670448792286755453741372179249264652136986149045868779888108061251728967783804411242114087480060696197166859778943748893635207723520395246305789304557896362776490668635440510245477781410227759451130828605686774734198810808568292052714426713126982369052405976749091955801078482197593495803481353937146510587697100121197680891657053827330186390285919213796398756477265510661933071854155975008986762748204319901851920463394410611364633680408036347516392490783215078310480311452399770068153485127145027421554828905080783761866472144467351981828075391808262448693556913215221651130030743381337794024770942403088059313210552832158259389182662754753175240739892177212646967854482768465415122820115142254873035536150235537596098437535621875655322664770860208162846378574527218102715724996218904927047168552568564244109327386330800186549953101930441280669795786177217181529344651898327369451504579870425209028573819357046390860217899817430591732074315794933701333322641459951980386828371715504583437609592130034505819445842970854866913317339192228013723875966609413699673331946396227716506594217239577220950861858338077743454570508252982790089778865216844505650217594121101802675433343435717060434266475958553272795089688609494170914682334033340449764566400824287623307533231218936970538591884998975977868185949162913094569849497644784171959587352224438151579548611209884342940008164213030370518869165525595953754254303858637026063721084975138130306380473030836605979131710773319507695553747126540879976995388291371098448077525096871675158939953578915645623201451405665293092559661481943652228451820936035343351034057214677495500518481747377786496888410850676856796475046399843850156564485447353827247294165897065846610405347731917328394879408577227338989584535264919724599247561968546864956191591634353083369937153514905904320020251392068644348610590655744924839961152130105358222848672356180104910289769118843220521379990339887519301290141341015261252801846525315963462282361913281020603577492880627162868385795577433245788569191174500637567163805463218232252170677886303035677211643654346122135522017023477992017898578986572511386552404150789707680631316542733385695606616205999712383873820551180416708748432070696248627528848324282442511135547934162134778518138531069059360278399645005247586432915672046672618782418034430857655302628472966078081320688477394237686268230562798337488680892297579041570104040696850140275421302522117923564326528637482929489786876183970297939482673408921678168003718884636985968552517378005618054262115397704845756180235681797127420172007458140647531473521756987587852180089432705858383808668466205096613475699785908582617368295578162068045090378051501398676612125842639318147761236935689917050972840609715871325685724684468045719163904001203293369032629025908224548455748298555278450936123402278144169707896051610969728294681753269385070183864070432996152144154017026090486593004503721277472256797297766148321527172013259501515061587028202614004302964185422938732519306121301171864711775604102730875964342567672549524830133520357728169069208763705034543921062211733457971745461020050451705185810541176063895335309658222505076843034026408041469651814451460913198614137852088257781101968361677241467660018115920446026319557435687062155505795786455971134663412973285769472066595944445249702716966223503328165888576560148284819177665675992434367853979153621525538809872359579558372637961289425466749729182287487638369713428009157957935823956624582753408292881667792665318389039244144412753250832208368194301581871225205439917071137758954378952095109734213303105635420649618346008576404042778493855863536522189202153474723041538331895104308842292059693145320169160265889823586518001717304275131208930356616206365683878357657688532047502119531370157427659316747706237488238466653430119446197106694804983610123450539958869329620146828997310351739582334799211589035380971953671297202209193393154786603713562176251990466503648662320370205349756320896465907579173528103452307262036844812284703713835336849957778449752184276920648943213578761692802025497846054260109107222884622494024712903276026156992441069331932257554315185986310713271608407561739764410625520869731476941154363949810477793301169519019454070175874727090837983847413011917662966763691949648443046933639605617212586466292738015822031128496048643526848844501614184879026343153382368043868405492298686254486518893518161595655944615428667281812663864049011556956222476760677916365154115801694297992669394574858873286951409895595316190365281566762664041036998798870724353501545951394294606331382865737461657300212034351471666074030996355212791592760963192915633183263043036972185238848791190779389459699482166479236913941793705577727039989858215428684853279137684411544562906834652590719314141561790969887242704416140988760103010214276392559137105611781555919514924010419248453043840020414001731061905237489009774265781815520851094886857483599631092335717319803717650086510989489203985374612970461226270521989890522828070020859615920363673373137387668087006792794065161228917629658417588649030844415538057194213474083448747524765790076060997479097008273992222864682650402879081064838470955859357173951852082064021631902163181363248092982394317534093862802824091729679185348415581730825189509863527484666635036015678125801118155108382737014228521034829744148626509219309135395563938380392794631607496897360873758629656400610557507979939835264186990043232235151261088852855837719361379412600017489857986790993018809874872574936272460992976766912944572599924108800814697986386566052560231375716897305428566905789543907896023979824170071469588817453619540104105060885931065707773287322355218459617563934077157910120606052039953752566307294790079807672393183816044657552390595172392252033139826051630269652114253124872898242708300237987331889118727429538971872992975325125345468591781347056915102461980365954729513131045594120621999109290709268688212530807596531400058729947162232212866207342788878764087617263542561834626417402848420972011357136532678599652815123468068835046892715173556960219283344664706296841988988405585856017261144848242569528149426133441280472391607988879306638932403419553258795095322224993480090411753978624706756164382483627295397929696591245081533519923796321240455289706375712921205033408150774031979619998844874357170428402616717522881635040989888577339489692147967895277777843255279324745899390395847159676097183422364886870815445771234279948056554013397518658833639210131604903116973313941154671405154640217407874314297823951294286737327089929386434302128318310426150468043235664739389133774798664321596975279096912689089933408487775804652840556870704266659954772869555429831626812266710249003981127782949325683159656989296959887699858440003736515455217142810563396317576912136905112168029206202075725909688976748169635267099520791543189678468624499695118712278246547648914107055308600327959505339240151344374930679356006548211814221789965850337638851832430797547483745183758763489595900839342406033955362130781952091169150878702216731901920836448877404642592769706305449915417940493514878849442792826499688078524004669325404885435412754110879849959128726583733536624798991788878941456420238763700064472904430448393667910113535586183469971238915877694269352637706961879506346844179589341539325020056494065177080754723328136945415623930997278310607416243264660531121953312377106988214385130074915187232438408649435621534582319558214140109143532047714742736419735888893361298063191021163937535752652379785079393211400710816677454612715349384048414734300411446421162538656535144637225871179566469315584131733727233658399590138816032171412117533265483262019247175297665121808776144334290858045100907287272599526823860314978368325650822500086409611500099174710917726664159217780393403945677625494450124234662407674375466195074529471410905471903314895541115861196552800892736675537906042820830759472911353648732886168071473976624420650278114056482720525471907308372888759464150809572724029727455802081751499907682244704952396945004700891928622628953566022401605808780032035960445158913339653047434845343295315627697311988817428617346934023353528823447540373450186618709775897611266229422596781416179986098324990215642309629966904605449295949428819407003270045150767528088726061726259641065179712531769615297226027492191173169520517321054680094488785565040052392064399177914778803956854446086099811194770829888060857324604054941035903669102862375693995974682097564976793868300270787180554737468732381865718076781678138808917262068855425414760558381338025267710780598154464268988451860853084605269319139528849628772335830603529982366004688435137553982447301025280562222346672301799196640935226469071257310051189426435745920303608724371728006423802330337719952915347300434064148143366008640519361715994284150675506836007311049997088735774767504289654705815002287571406569423523250762558721711297618269124729321478413488436851255809331772641028494496370431575478359947419844154269458395676601220046000712783637489029962989575129169795717561628892560835549604305000891964095375767194132139571821737802765706257865389618252416131537306132942254151818075446619422026784706515581748012590735846520720742099009202545479741776285188793650420857323123649348539965005773804517032470306924251193645643347222818834940181171366191702648372734008448416618433067900824691532257021778768543709768303017206234318033063110884453155523825570214907804538611630158627213106743002575700122037677166016751207721614026520597425272917794946066936501807016414441892647360953170136591615683501017674652198587695998100616799594192614943982595900726849092581421017418421320302891921584720283905682350224160665541720741681251708045997544036179431727507304264189975965375365920410802554828211905380698493481029869051971831073525635011841739208104153123681404876871116171349806660186326886527855451227987526865905609279670960427588431281080663062978352190264456529624637604006732335176905152662388007972747590713893611073813744315391098046959023780040154630157446970168726286420736040623002867288461156970874264685826224851449464935844520575125732649762757349022648267917884590606252592375660835668466869049376232933591956612413116962734714147940601102199268185664593657410290657247964040584693305889896139561817462518860745241349515316773692855092628904015994238300698863550927202653859477992060635298344272320543585219795118229441914591808735334424093375462440465624411786162097649765011983625092708092492011760335783781571195020216226461394345846735582146522582634893974386957806545159022055727049740984596661838427517528333059701767923248387401565182837893060155297238839694863052905471327659062647726094134788899741579077029921368270618659425064290929186288615238151776852865520909472736423360796591008201443310749975731606040225430213049070314658655263210131898165138077806570012119976027736730542008887951307358722466591980090621168805616440461437518743435617552973183394452714219387172257297318390420635962677026090212521647409762551175350449159511614262766539473812655851261911324404131518689791034518404058055738821627292746465619467019248253893936254242478850526164683798230961812691434220097140138144963196867102959287648596551775165421608426518943176894977095918009882008429989563497546070208189781692237228908188584079192764755157901040487822881499941958576328744543611915823471618287675176665164379532748171770597800737688444929285800347082350545445837848213320631611965091580050449448570032414281984200190788764686574574920204618699986502778347201167441462840176247511777391869496829597891181493955799547346964614071885004101469101922907293762791738631061615377933170702354849925862616529376107828718909620980438737700410400597065638351874680798883557952982153187737940659998172516482422385113202866853276154982988850930361944884962906747132872347612231495364296581009429636880057414824517656799886932941289342120193764530344965587095666615843917026096022172463972661284313217367275935018268394301717989889897513281519453891386812633619595685078959418184318704437437401085729794346030600442459602342321693278137623942816835918212364313169512833956964341088807075722446895483156335992371083365576553705549324041287755778099477028867742295505459252422076558989979657385939157836066371118954524767027132786362230227122328974663733909975332184213983343845129859963845318126077248784620526016927496705328677678048633630831058540983846048831082766115656639001023348720504829550693365248739892627776925286425452198072961174158995006355253515554507579532321978602000398597419254157084557782510795261861539012188890145421284733581302617746435577848713386288700445635036157785284579761829705607520522458178586942412671427810598465257485394273424152336004248192835022359417843969382401273227433646498610303537563252689864173654504009077032698646942920554037592266904860334528387055302277686277015917991450425927945302767334206957054832358091137205918991412075756767956206555373791646370821278346895282711845533542901721849645484045265951686457510258186836188524417003211916460663434272397275612158187062089803143811053006831272302890535597786285337873952593981214449992611775970404534858259115461566023670003212675254743326597315369517782032968403367260996784776589859124454011418373341702648611967507629373104040182313247987890520759266007529061121334998185700246952277453089864925509612661258495793359518710338308852438763747574026276320220270242491368810136348640073630890582347486160413705890781762443448153449258267724386317971244898008691214029825035963766450618097723520561236450838166480447066851972835102126795469695985563160158451692209238803043875876140055474504806399947549387858351235085418613944650251062677461961680810579806004353425250012755422865952212209778914895194150254925575606049308647847741173747949065971494117269089802570298718537223112837275374417666888870136521536934752403399750796042365288943207171293480872860933677776317525602113437453873602816442080407850472750450970805975531139373054805901209459662277207106172729818276494243076721045463974362768692379461423228131699312515710179673704996310481440934139280347940976527120019772811116430811830206897910300360662822434494139377981713640346288374636976002004178775785479559276741591338915362646603897134657684754145753070230122312007657915613040525122155898864216545659892010517436887225806057018295607688011591248304047020554422266627380877193316703515602482720308025264403847794151146844554658572842673349409871766267854607210737940610389075076429059562785083906492345580811340605314553560282968839018375469074538637453228211105816784842997029168478800175074167218768027630686470026163347541862310331779513665656133601047200946092014963444770799168369644876679750329075865647108457043430621009604833260666659178535373858569476392589836378465979938350841795317032149637607066251743268717294334362299097642003821400380781473296908414038530568879070409267692166528885717965215184604784448316476046813555786864627100920845328223365070671013267562561111220609727472419801889428616485801879611231747920687044496958738436310581390754384929814776736291184683839433697019368708891981984552096946066532729319995691970415661680962079267911540275657704620703360177822023086774727341151294275542812385429384250228800419939517904180588919995350208040292548437496490070331949688337070940760731868338569667985946523533117614498218807820346598141095774471624115593979496416541805305460934912322740076661769480992056455448510554486420417738042924479729237457747776263394837126360370090982092529024208368539323368983547059208326737308136738957536722081482739172985048254477494794826345494428063054567398437977837808594157481374306350304974531832908476947556379350207248302688364230080398750259190143301720668228368296570774692500793715013413812254838924252303631614221927571764175935718571470794175329226401682496911824007775475247228381875235313915157159454724879962361472727971786244290365532324140885251058814582115058754833747823228987005662511375044208456925065834093592927997863780446750374322302045860807093939887160199989247827753851677520526648037150402927720401852306900566386626627968562475005087076235671392454165175406529259497117491868897895226043707326202061847941047207059579539775683708480277495105634775518690571804380742245168289660098382864228121596801320668057509961344218023427469190623756839708512204664796081779110929982922825639833917818019263503560766332509822973499815163146102255459285936984012108043582407621256950888971702289238797106061425664639139359454203781396463557985050395781270124560376273204991812620083960084509878592993734548545575732210204152920840658020985998414797721417915292285737241809188097848495475356507042038795818066938273649601230621459138995918081130665293958215076212385038643888434278099041489354928989368735551595420189338832853013816955204904990717149222329477348980322727622873453398520509495884867947164724828249685324398347432519925988722882631385955794120466934829432307174553469253100464627984199369072285963703237940919124479880027309732007846307409976671540302641981399466847751841725840628645320980206742546748601074954639228197114481012817414785026832511298130777783217223136772543376375888868535280614367136519559629433343092242193782688924705098106572142689598533643553906056911543424522342983232970949581887472183542801123680907536076256605276273615236991164133399614633242823997359472501238172834316240082830412954341822416270986695716758804424746616399387993134753340616456659762473176758038338347671391257469211443690928804874871479951842532485711322156920591148612262585416115314903458880795138344647043198424107210979222411916765588526345298579197754959440440360882812794397309753226335374628669559884375058207553218532065718272718768695485093769702728400896577904298415990777571658437723632991205206840187444738241754771959048094706960172660368526424506573523224414235155218980243829841472711447223747504039088928872421808130372300728608228979154688975502878951229580040240294979911593333227669366975866241872149314333951541863389028645578857734609478237155306834735844262630951084538394710011723207522648176870817286356143660478006607705147293972340954187534261873646663520030119361595087070031176307644999700554939158524361920948501125965726443970278786766220476167563799700730255744492744200632473678911689272232165009777207731507303762553458788823367851054913605435775569857789395204604371394621649537958070272432114523459939624610051550005351847434552763962444037388897980060717979796869949585597330475872560425233107730269598466510162279563405561066647652078128500516574916049618523200471091216933445385605630612691387170733854064661842230373301364529628588318363707746832249804992016482454781470111529115068792944142659222330716359475868560302275804159443255561333243789993671291046901469847226525955160556773858886487510615759047112206019129560984481296119040302232575877812623350121243997316701695065986966335941406323782262338732365156077666661070512750479117905387748279696809900269886463468178423235005549779656118640402957339017597290142280977738057784691800537220848575243070834967555429412841592400210478174806025963254965384717757275945305332248455783178474840573972176046284026432239028893103063691326510679234737118997424184083823334409120645307659654868508718365749862012220878689219202806385130289311784283400656726283849999556240312554952979151533814179223174969673796011382114793393152575864496182694578626762763031060358758670259298728143056096109061627244753997941450420918251714341002869965513353046235364156714956498856790512291561786709999324477498002859944799446711671542443249113371188002208975338259592586754506345968197280035637360976150552212360046154886222559433281510683280730154914610724858276163986573534096181638089594448559105878721387165611257433543554870267318706776175230309520319097627999178390836130466432287247717363432919966838928756106224400058646695204254498675519125175205891495065577379577319116136695753880253583350418416694221246631184539516060191014154709743357725066358942376511028420225570565968767735048299537759396503899226814438335439395747617870851801392598696574689898071261835462345404959138694312868353891756798999620763892103333210866461981006803279125600227145270588856595573304690007901455345633875567758679515155954214322407631775844865273423660250723107920939826425192746540127421545832027637319040258098072224815076714563109278218006672311746962433050418276184026051251516983402664161233594797597400070379792941722043260962910490951557988579626933425322671761737968419567066463878317796710922289028649154810525969521423635876897508336985403482974983940774241835377663122340019842994113884072264955353927702384713485528484790746759287495088786008700105790961553510781777331374319023628066121022053986955362902496780900180523093559432996399637531485340110109165186411295395185307220407968682696917369509115604105577489552549717194816752005546545372975564685929812031721400100592921394528804152597880892206484888611657206183217604269332475312409709283822298947908832665037363791513497952373732910527453953451512423811075459684535119527962885485185771334150938009960427080791261791602358305338118865493654658899019086120195127224677608042039603517105891586288995896325401734359379592514512966992657254037378563485867557886230179833975347110024139568169690129528310161675959309335023317378626240299401351051176901992116814436874721871357646989114090492258938710751634374124185349758495663306599633568206549483295894708275751282908730316036053369825361036709543234659683017101229642616476089256304395614186440808758705038216015286286322465746971214105548601740258375703138238027017407650264778274779622948689368673392095095408905846599919248046681415973468525525491659323481423307142959450495708851976080618100777174378721107351685928007958949345499904544274494459780584397396917192296288251853187622865431590307646829463055006830408850728068904997530547717718288461411199602765635670559741231820876795416604214493462392957195256058001177275149520202029766025207098385594119280056811791449917784691341157617051733307198206885452469332351969007701204131005984835061591950314339176494196904776779387439178148797800574768665304295793486467461452591692437459184286025077572212128327198298587880830961003675651316684154924613836221784049303307643310988546592244962991776951598840495974837057317505910401840001917845159334116826550438697988719521217701176970044166357517742170349445521881942786092709306258095511882842807074476880502402400114684575899576791956311079018676376166417740882477391736039241641475603214416430272104855869278286114520370527293836567675268346245017113681828140749260399750963802537353679773416014759648399188456809717546095657385715353114273271456912189414405860837622333873866508693368498606751297703923553861104913790554048657521016662749622689236682576389230046682047482936973941290454793246977167265471582285481178211139900519994740245500566612872515417296475033555610021228667946294340515030888616490776795160220560690024281761861219014929281688366144195197143019237022801760686698894500905089256560174609706765446675928564905237069199620967281111795604540319942547352965568976850056459462727348789747020462654106283304746338828809962299160227614443616286029229834860342325323702283996832755681610846082493374029884588072783418565975641648830163100198159968311803028185873332088932644794741062724362021305269522215436730307519026564440296650041200858419750892236381071830331385408513093408574924836170404998945363832845191147884170917926873023058432670734151144263627542496118448478261443098124069709182919689102724452511772307570011435993125098494356673652677614745249525601360542021530442983224899666620780926813255796062885777164806696187586841571326907922263112952434025226040274772266458731900048465187132581601176727628151691429083581886839518627221091857333518974651223604116508137069455296133388481199830210155483278851094763375647608243645823308575723289057911108154187583328539737862922180815070044772683851882749168349553790075257142068822602315501863333212864305620313932954789050187721324043385495267746065135754854147539098055970418719980000767857534200752928051255397754793030249343113758677524212527949283021937490689079091639261406031899500918162326731280904483589134869219385090846836032704550147216882596666948666910226781456498765253226132976228799654125434597165659397521102878457918341195291763851972254775302904759390967867606526810062351967008382691453675074987566433576751904691852408204274862719878181490300771534783048980122093031493779704065233419191959346109051379447295285173122893098883416920354581941193015551981387616835980889363659891241111733156475307834651973468280228329666902831451921288170774384214634712359225294561378229480549511470363047056539938038474138834402704453489799246484033851446319712214158676141790484540767029700241120805866667026667242261307229079043506470382293429396354839828889490000934800836087080869803544730420170087991748981440103322499358507096187800975232222721814643723589222934668762900168041410821916845649346740568875078619383479353657152510104407664997782520783330805879064366034819131162624203305836197096703167251059272420286970041505969086554478080537363577898236853067711938700805126888179936456156905751414591397600331345330296385358747945524656013318021471842713200475361007520319964714802293206938605011598115726993635743690202809610830506533205486765094244258448710466582414229719678597807784672376801663843355900006430054141497938611845476469251900006781965522611602595186667987744496330768015206031137678838763186762971949498761096892107506182982355890148467080514193303620455991184209641093881662242640506373186556400666781377501348489753452413069942170129090545333723865354742690361890824225717800210752602320685215922730202488091585140393949729958944911599589146486717326283745278088522413201153568008926553535551723000435538193115108625191541522877254456989816042063497781180794046929906686910063391697111241404617843903141649236704490861991766444668104480773612874804223365287846691707775324772254082875813303337269887114201910236008871260304079148030564535475387691054106037340261550371752626565619221659562130539069152927817566175932228694704782709100329693863219539572510522957549537742952777393906341116107463384621167447174184789180714123220795349702197991098663507214318784157554926042067063924884666743030779480363845979087273279563416318300245897043232836496166948954469843151498061481809568583922457914828666196513322931746201548358380740386669762105503834952810545876858590419488033669861150393248898158207683972300897464955413405591918182927635828520562558328343923491368943404679870809246076739299674731993719725475658997126627484431953993916456157407071460758826923339303315010268205862569998006986999480522545884820944760235711104704159035786150122501739207334665672817269987668871164793337961677524958981558489546941358285066345534058261763513500422689846971952682608653369779986617695447761370065616886900450411031219162743131603325793262159796213019163668755480167590355198114005039167557747812064123751206467701414726924294798487276336780110589378241467778246585002895803188261401890433789692574257431628841593736906246005206472983077885424836202927898477078290123040764770405338466790766014479083879979586896092890168724268989145564094582160652974764132172046103991543330653803274317397125305226819612388139856647929787805256700808870468449106160870762998029685449665497475484117121454036742089959930090136583908098520524343534674594436192546947391023365885758610821870116517246904467404977434326337041913116260856919709123208658543128575549580235199545287242941216935774395545465225865639852447633600201563858228094344470737578229384227415816012628334654061768303703840219459700284640933372680793491566465362912891461272768723617013799099342807733370202958430363804106632089607409802041879437835023478316177608819900257087744246577848756850659517202490201461867846203083199581001915022707902584774939971060237590997605011890483560738371191414406290481220416584160293975006791055975831921669500131473960826599605901321071561959873772769426766533208199473310373662640730148213836779047119053149938539678281814309643512755042097017720964512806645883419425356686691946285179610734226860454602225646646819332198952787106368868462550098653837297513815103164844113462162558321595313343522529655691258374001354722945247399709880017439996745320758006599328724166861318971178747073679161476023709393052498421688455651184265076180561326621718923420658376948447144242025836785242766172624592607790806337760327452798562735099239987531198415269820447358952074858763086145710913714620943884170579659258661491703179900310546361465465451222356096210955802805830161354292755512398420064820406244355296357932841382561932413083598458605146842198005182512107972244754304428514400722980067582840756645253124471929222696567601772179765589044054193737984674519266693158349586753076224048639546891290503998189405854199709128945484328031676143321800231729569668494323403847666929683443725237554426279600645235291603515532990279335460807366952039754666095914828866539440670749347441827354727074633999238083680147273476606752614070158726788347233665917506752089980443044866351972406184374070362726489383103069332838922828985081585695419667757621693076664340965956085571811521696563032200723187977417094154814877967162559671134813961774087680402705845348677646239817053385759928146137270019026674676954370681298241240331831203238426179161856292245611658816073721518521069838568876770405777530966967104601324750593742225216518536127292110063124711673861120063121190328754888368900628168082592148703536821929756251580516866079518868135625138601840218427462064229839496853050259398612841241841896114578143723625884317842695272549760028168446419708050880348781796703077986275223325078057025934735013294099165380909158220975667968328539804567634369293938824264350907846130852894677162823924209374391956285572172206252976840615426105204196481166574112098441105427632636973454690613326555898071628066482268181824837557228866697206898124838999379708439248521854568009719196007632741001094218214820580943412605719514347574972471573393108026245846637155777710139322248807754539122868061237641888214572181554180777227923078795767649285802161463843790941928189237913591247487170375056900408150281829685481692336477945294351852399488315179761890354993013808829549828492561874742950726138049767436995032946305271776208713735804681182569915436049839760757115721888931284439501418153859994749829919751938126651494208412746710671726256250965680772762786510619543822214283508600643568198216623826892276173056907869024075487456661813814326598957853862166240385419819869595671916101582423775364102202488083732175646092168923426426610090557957475499639149821753088748533217723278667668788015837227944355672110908447740617813979469417389131033009141838582687340864663854606828117875763182575229698438207175980067038957167916116254776980848089556094295892434049363484676468993907516887022798237170619221281645842041109949576384747086358902174411398693069977481716568526160061675877034520461396143312941735983076193319353966820761091779443634750122690552468043309273250076518626267148530338932513183264054640020572523108148470728479474362820789243380686708001157437877899681804004503232288953431428432473135280298496047432075067030818452436889543019711414159262993461799210449189658531548108955648761718902544510031353015078159890648230526318540589591507073449125215326801401108061458676760932744923525191081204865026530227107102306165509116330552741179541644247296258708203721437607270609024076928731692467933517750708534355964916018200600664088700212017091903198513656147555709907943717215881320360738361256680204229636356061264384456940838388885057463497571369898284976049515230691053067502470918942777559869939768198876921322791401001935624828556765020487380314579620223297120005189473814832280983000706721078338777831520024319527266144545407245275238632416916941729773534742536790733488325340590246012899801322783747571729964093303768663900538989046187983402190336607710645722044516373959204800325669051858873857795346183480866229701137712139454503659108150036038806265840207613282522467911428903246590189085821697337130467769545021884887223454574454905311482054579398098635119585615077859930654244856239358676198641194651785415006664291437759815288770952902696986539021680533579403649024636908888814363624817870466060305790599102059240343686069262679864264687269924675656652382226999040378315980683691174970329790113690238446535748108468004200650726188153864978623224081572026662733530069846140546869226981063868222831347356669250910225822962778263580258807172122413772099536800664321480276782223208126436372907964152226021960603296741294801577791460687801857404627656973364322572166850576653419477858954425297390045374382722225044964942400338536937230054156231084271730801165851763086917727244311099677091489159499282621381297997106715181731814477057303315428952451590963191854858371196460500850465709711256527636573310005158510924076297162320256395873601957605782860614174207973875061018221531635114557174237693508442232958560753192574195800862872200084502165845666330504950963925826447877644049950786449056025899423685059626085182347355647030947113590753650342208674126048557105707469542205935937936413693316283515762336589914866529503692044259573006093717984476404856404327644822363262462249773117307977530669525526580849982234326717277134878908803168854000661942196337454976061491338840919914927266588877817857819756326947873570210001868320740840452571923984710552722975873329156832516436910034944374523137411873013828762440228228741180886172145501090238170560486327027164167185502674098881916407634922978504418747341695012642429676740447308378895513403261418122216075090688323563117367743768989998968872233503825882279972505623956248162853348658221045076346835407979217650717917194879641666666055523077892060866407411279175425858394524012224409926598115816630157098531285306969174063256355422123662771683748895746649638199171414760214943408093265551625250657549434955880962634640250747564767204403544952141570725756548009005147030052132391828688871630787512290173013029295436252707313586596412205298763149054050100289605640968009789844843144620757983609450388121079025824401031432871400560484911699165440487096072015456997307686267499153558295425063753038187210403378322813553874699481301382778069823309857449103969673494171782912510061700333497987985817802666653385701987141906420157330049261186317010200445297371083328563419461087074341907958168122724218017886903298150302694942766308212431722038641573863911700051686456414525018114829993903609082672633066152462348932361377839905943934827931947566317446117738343580122356153728648945274571477880578525282100250551758887258653566113197599377490810192066990041704585264055148717568048803906843436307085333102420632329904437938413474535409445616218820470323395621387342230201315499740420728699371726237753535545693510149746417458134177949895771900922160313760453888150263144797301507797454560392466711040876648564748666649436943779966948541246528217384503385652460275183886312336552384925325332925703386273963773289262254177059936546535628894222677595467487173577909280432931669097145530144932614982946502115800309471926292435277647909592627206155675849145634527177422261371704189106674507809713203830885472552818729473372094034730032371299267062051573232743435093896275092789276609674827697772040594118093942690577411290673125415166251039384273331486932292317270576023917657727046521408442417359515210757634153106402896372412484478993810767052527693088240281311574213460320202827201406802013401378042693935200483280485735197127900839165148823360619081173010510347695509890529934962216353786240189275106151848255093870278189251357111516512926848238189073235251239844860241069396816268281121128652590329542694765547740732482401031187816495266002062649983144776939120223287667486764469882705216132718555345611650982405030681978049888148954349247711926349080945708316386670117090142948598732968558693863670542873040701353845402186450677177375020457797461441384118302170047983325527626501814971222055376882999884240787862357284393969445189605359749843730999401585869997186721421392028696925494562452155795935499760143750901920718301770793782110987773492229278906980267678990953259915265107414792850752130553041886271116379889386187641724304283188233391023064443591714591404287526111595682954141196053380713423972280311206392476969954468738643409271585771697593328404357164939164203472804917867160855910888259539335137772442408521449234888017327846631064340595542202819702125717946077404051030220889828587187385272208324205907989957401928034016832676309715626942155163461419636616207780079864527683823513240631586215616081444506433884962953031077114014357151668545666709307413744510517502842469084018402677701770683159787333985106816035240691359504930872567245429802582285200666189154057895303331078688461888517506528561951295265144946156242866997977148061762401213617829027588886130726708781038990807350266886947826037006003275081702189441942704590803513270237938655567698336001769389073953201721765568219477792200733282721244761032854232149164201194044644022312322192758299358780586971401359081458415841452554129116410484076088255890059431031446493436523534534680252088563577902684405507570783466243413757894645321366413689660749463402938889116463098852869022488497741496870347900371315090112306064608641592028007114881670985758274821365794434102705629506697880815221291168103698533087486052337276403478821900557334861275354552619127883185970549230901863735988134529850531924833849342179009933660553100157106785699916810677266597778538064263285225305433778403683499339413759938636832596067252026525457080724286567774240933848566031695071645526639650523016386011754284644326577243052168241012929158628209844759282528231515413266610916002833461113674583946535309984353434269477202545390186483229220162395141633417239618561194166352363172133775656268278889033312085782056170759012772274014375906365010968407167884585975956201515677513184437079757679901667313425320136923316998808679500604556591506396256734680048854156663644121013701572899347222927699247787182697187648550330098838682831962430070939771429530117727823472374222394914800789913440825798630661429995951920418227339947627017308716922826896309448055916326350507923038973574118425051999744965006207031762825776985272367641375951068142124926053323288281257356493621398742078466764552617829902970256374547490914254057327352711714055883003793598709371211450632082387793007534418136596323545056888794083173472977136769595660039859451190121893417636015159865025783866401109869053128495315521071184240987820341129729734292161646789000009599429389471342787002601462438014530270891437134815814955774886741533623314449032748538428941104975544207110258500239343615456231777564432475379364741337711914804265762747390744765430332537754408606724635788204531887234815924151740294707303423125653834498910042221041678130055788814574307814721234563098565926608659977997308872711104976001775656731868589464263279513047472640643070113533470260256859598623256122380639675138577277643911377374096835424013598042741337771820587930620572835493276825849257412144924788823818095177354566933254101977070182878352698088275729060187595687175062266504327360246175165402841039080762215602518991218776069388684640571983701450024736147746176529465272785548180811592388827083969590899519041675902742989179922373435531715768565132897295644081416676653839790177953131557956687908463806451964095365553103050247249884582604258102330890119471581094693176021218629848389651461917480258484482159020767737076393511678083161424796358439194423433656840142933140219714322441411408456766652696442478429779319770448227135646441985313370117644683520364513406005772341396748230782087203854449423774923176324435026496703550494786294080229069696479728568946848010415123022493572151624634422764964809522041362956311074879496284666886807747918047716843685535196321809385812534159170174012491032773909921281378030263029939683205932899595677301728938129797633299310694978430462978959540777008328943357316300626168871016671879091429478507924989342277694876322197322060440318521904782822958260273194086209271280402912839638059444830148390765884017912278147021619106135770553250424388828056131459812349669108010374492143942901948596413176036677542780356496782162915785354997166966650404238209625898068284250348540065935794099980509173154420558363323408329616672150958519352299648556265246266079917020129700336917170243692693364186506535634697085370668777440732755400682645993494688145334157342969359190596197731353603756722907483509295097554080024061980645699725095472819886272732549395397690972919992315043110814939684985077595371433886263826353721304815326457487639322001573890136490603464185066571026143024123216041166017251375493565000862319636687470489843397182674013590484369994468435092294412290182016079531623681083740487283508802520749438823301869375518407221934909977764292676479138236414610113028022310972730656625960472368346273162290453103786407307921569868811675769136841139128769770674023087973119238817281068521438620860216608343731777872470936732637543239992823083229442700239236443543785774665176199728144419032183742862917558127926535886824586981764123676232002985005106740629729951472652528330434673942094492723974715660509200158978738741387844521030565226207845054958104782175220616979913970163538653854983365536621476915190494455183756527411686254213784730713537266185154815386025820994555774947263054735118366111815697227354707167476930425040627776877911436148460866062655726315076863213160388722716894589159316036763847231170771919006735517413370439891656623661446063328837772668865545438743164621330843002403195649384062665334905522158460694929471907400682614936035344730600584860439508155081606086373508331803980531638211775509570487778489793424169777340863751939493871629384661572764469387718803145716295940774782274004930124913600043905150043489691066658415998771125012784371793934073619571848216423061349863914591538334224403727353372670918477866197497286248305083000708268412981777267878193806599050701027904809052119693985900810159161667169771252544313587489729117615917426331585650110049728499981153317944067488580365931674719227971980991343371163571752664214226670719801755451825257044001044561579480492939402484668658480651155678391448625485882540231700112413994798022442251032742644544969879965908788566033098574466629190680081163653678028395732064013149150813303445833610327480273814806210626461101585595728332801784021769605079154316201793184876984367927385496589019788731924048427165521609664028931383961442324367381642177944318281667267522076745008632807743539433259033383161992338814224231497746945468031131622139916396716018140597624728540571853341435029493994027019883771644163316104148596927004127654054373394103128681076554982722320929452352526734220956842336498380370421536522469679833169398283107162924738927829850106933252749605344428626348627021081373117113110680976257419357038916645196806548796390485560525017684664669947430005441761671587561942670067976459427104700982019023085967520872596256310983864014933374139661005882960529509116277983800009667529938611372050473471581509650927177757036301564074399571640480513862290672952601314067892953027640373851754069171094599831161463537398955356951443117001662276571961092401957475381974127848863411795261192317796592056589313134651614235791064389733239462838566383712551617133163598530745106422051323448491750678515227936544284958869190970740543628409084157366158038184293935945400838551314354151301243068693708685414781386362198558124460001059844546729971850639751363251689869351977874729252664487229876499585430418908559352304228994497845915982397101967730445340954626831994390601013464593224856686473694049579983657934729488015530363671877217229961067704963579837049627141946044281090962400208595011778463814943417199891267654302377899701788940540674867954753630994679018751740336636760499190287885568866177018548850029337315564397202776996341965553946987591784686640916370250334734091386562221855378851584477935751398871648843786256406377692765334350219211064343868538892571285985251049866951817071557069907443705218613191676717239574718450923524052424742591761832398857295678682237130976709141091630521817874127360927848169334507876112214170245266819583000708387592628194588777484521571716893269437485214342059476124513531489672758828960696785190523809300792984056378602008534542825589773490907428052579165753269161519204321636782163437797037804153862315445347709442441654513397519633457764271851025456052669850507711677781928932908713811322106621983250772725213743526884913987556099232722179923791650246588694199685011925160627847266665690089324401196624565590615592509157492853657690020511113653284308246160327304100138427337298684143214557985173527482954882087493294622496358266662755075043855946718966544122446975899207395650458711404913415766028085974419419778356888330485944184209104556159782037958521492809309138188266999609257653865424367714037232555703901740581918050769674896955545676536066512034100882027777305286253166337060990004820473312262388778939687475750060702038261842544991772676268484073734346303031356452174319972338069146540785524472326117166946451373042927350643332790845392821575881536993397769724537856151760565461537294632537230164384079677217887436777026007849331520672689436132367617155067096327331643846896210428481615836103190223449499727148448977383147878509788970151006525859823445023092312565020533595640766293474346428424306826736565508467576546572274165546725668875138395452553933126316527807700445997298407632458918299164070947479143944609591256359672111085040365483201626284640728444389271092231045072413855881874106775640705970318544674984112171759891425077835172848183282858391124390288549021842490524371081729150276859137715535410513372825983941609978123350119800622212152295023172253052730984449256920767370744898249598125947911518295584069979801299608798059121235444000524301662684043418080193822482572858235116759619063150971060549864514426494524400864547061906014727404497470146504016002191922342386834162789405308665288462989355950155397570348604614289859134691616599995769912153083912813695465322658252510129478968764924024491747301445118467857516011795655571595573517033645363345104049158319059073248655725152302083446383705614977534049137315312532884282856436859274784319988035596056522557142934930026409252367959446060158060298145992087804099801080221850568236929681827744309314583463903608543894380322655412134254848295031285187482761720136582166880646865110434590384972126394756762918922378748577973143458413035746287403658185602448525349570176115238166477838392601048975016899547349838719782838643637321647263726134909095439184820794700140655433332687319215027574514231745681713073287023024545683856667833182016781580149838472769280126812220253441470266274293470175691315299915981979216883611233096526170641901514756573682717611919298870693330442641300909459689463434567930504995753861699783817624985505304858984520280128888515976420005204155472677189996455391511407992411486310561304594088105064945997627774390722885786451875465755742763281994260902989797223279738289220226659892851601373613423188571934103499528322136568719299581199757885935154647384457659138081342723067576203245916607803497548440174134428867043213470494693162514699736810621703222646315188689409607466114492758638100933651312616148126766766745443892081126814772207156358580139619291500281957053004704305589948988147656699934296470566756371776499149041682645857515790317588797606734401634711066533736962594049555037482988592787175053905015680179343880317830697432769650068318822268757574506866757737980553009616908585673607880547585303250785517084740599761583911650404934187749303581640562410301911187910707572120186672538733435483054378444303354832952183485003776151514641512216970756757946905113387013180806506550273361152825701369464174354191503936860723858086678967725597097035590463771529694945212052211357597067461818171689357939902474180713576626429879436728819099288632914318737926398366369956020136449751739835387768977568537739976483942037359589897470539435586002825650755659956826532417127896023343288256022799494018738435193967926229376569356832764699606315572883610439500936994299957217870363016070596461376610070996203987873583855618414911583428131903042400905921583465739067210871963393809840047201135834193212454900044513915028787559404114510679929016275975138508581486398910834522932970270831559167148066466748486851355532020289097103457683087139874883202106540290784483222334716946030431304827876247945213502486829908949118154552492082076701675746667759923949876979752546331114217121826539219345569723763275224406091993525319733415506497556757729042994820307940753700282559216264055204154154773476913418903713247147583364614848938192951623175202212195107569609294266289160522838720123979875359510861144731896803502945712237744474248365624318280176136876107195076928436156709613967938917486997276318275021807323181517262774712685037806471529394275743413493285437597733452214127657566611023830643823351008878617591654193896985685686360884410868387662796469803805593101869578548136279569838320466891206778247976579626767230121406968237349260384327848052634589521780646576548152611298342214016817490578942027370091955371077764838669151480301209196744994588702327034294904312057110590902292045869757860831347586551836110903770225635429121092329388941523534014575320505528186030182406698784117270487988308321226906470691459462284555556971913417631819147538761966784811219648127737179538973768284835239262868037112976915548664668695353413417131666515804002278987277910811330042379620176146948237191539607191934310152784140222161329107200507797197320602108925261312423449113492753223566623492108821178154886850111701038426213750708559799070384963233958074841913566208284448288273472648690651411561770663464382725817609475290400870421630776821707766143386494548777294084947493976626766006059142434398666699590504683467447519820496230472847139883663293459334472664668715729154842115314631372167197233866582359451709273447195469268623205681402651228377113303477102753231439623839945192685171213758869037424920596297033358303547447141976160963757005103575851491748441610176676567708461609487990835043441710239430927078908110792517702139423809477973556165280675465081305215525868397433955996859101329232801111177138451748568426504024000857229866834648435320722333849370611734056928422010292768956035018698960879452620515926454989219884616834743803651524462348718829434066212936543753782975243751103849459743649441666304307360807666183646297261500148301279617605672715587350762307079537747693080876372870649666960317256588594960597157036910918107581029683356822482187080187518801757794321394272911133823054155754931112147822381581645029080643330906861312022881497370519464822640167765082687580400406236712950782268753117668036485134662758257636020493682509144271103708478427011334081052908164558980818472295948085126026235693005811249843707516940777331908489592690798474447021111538150015007592299524004890910994279990816922568288559392766984871252284897236785210168516939436627955176573139773082857916038775380802525597919947734730227859944036036980743059614559828128279368512720594412537669263832748718625215719421534551655536767298262064057772244749604934283199134509932141811508250837294930923095996150690459363180122071574032301101130607129333313511853549344198903286958502814079049643439642218208441430304393557345126368162076788275266116850669742400436936095916599557567303642451573806501919472504454656853409410578873049224450613520545242992229007740086295174647396584373103229975483286765527225290441124639646477759058294625791919070699339844406823262794900462041656135254257771191910217769336689902539288543528960110810179183659274264311685622765313849218255431040983265849818747496282078610246754580453472160356927015662373318873996754137531274394886289047865693686926627051699611570000397384916828149023242777809820679705937581510515898735473452307082282907940588504239611432515205666807107158880093426918284437680881770385123771674501582188608936182871467453336217720395897057796828582667243108851673108807673259342008715498405795621848043423243151071027274807493498556941712733856823194077041387763720062714791540268290599515472330893776184886744221915069070096440701222550667318945892373946957590733149724024014638286917069642155580596089637086623559510541172885101582846509827168321027632022061955508426576935369272800300089137433771055694744181564035285906202370078076412861742465393597857362154729334737004627204770403631620775353253133319519127208043753369386048860241822775174509811144778898921988508338168454522993541898768691379494301372292432740963705331298526338237382220353084514349331339685975788669632441723160611286191596693776602579549603859633977537993086567780277536405238218760902618002767168471350428346815083534951334950828632586817280884721966212614246381440334389224275528915784026572622558144742336914122170260377141740457954414142688900838077045398858976594508561412436954326840831461905616416452597750780888781547859612820755846292391077694003417664876564339091154524345890708884512540975724312747810224035020309430212842641640815578111506164865706087813051242780922651635896012786357455096283462977996343797326199276985125878822621474372228381839727063143041749469632340560102094417765621184846674828529137347870575644686967458372828443538551058244003099168763369297896509903817440080197765903744973853032919331170753048100190874030694683471345563788174689974876002563270379553194167433005302994566241064640023970796025697145685999291598117594422706739082843747392728688243854420230301207374093739230362605301544398193719634596241672014728113343128826510537470150705663334394820284324115617225663392138435552570753261816337718492357810706635342813879021461149234003949150863502669023292001198268827231979531410164904640490516369435816749328993219008945329782758011849703612710114593988686964743063267263288673657527811835578033647808749316228860799760187165993972644275660082241758690690607070260110891360271184186690381824399934036518868488481148007364143342383869206144319829887369070654493530071079073010481408464679229984000238511712200966715701224983956822243618829780200514033558906895368252484694832177169269536066523444192954438350824118518852962578081722852644896614421886298066920483331227155759104404944566273046914246272143191298477857052461184673040444633755220433791717163509872384505780963211914271663720045559150347459911074593354052731240014016355764584365320695977309845496718520307263815452779380625467803546902700592763844375242130112910461547968777125567526479993393672823765931035815189159501460251538234850536747855810359682763666215060820540655160811403610591548228463033588361970092748629990727058759114391330034112995097110466422404729127720585493171998350855420551629263924056714733794964899208339320430158225727305757119090868379641810718386416565311919349261782159560453740591565049681202237730335378715816348873511278285187440025597064790386726940296636792413439761451462055403805770404494241384907648535749064863153547685534052310924105852948960291999439463582219694868740337780925643203566438151365800165324912192711299975107847232385010103861045221938085536358638845478752098849535587669303664086492943066217346551026017253246896495838047758821862021765787901841894958987694303556171991071148368485291416305825766117248650376796064050400766536042034794898661424560441948480304640770522546895596877530657803659472826310568820654302050028746760075001516027043569097244248881128548201499077020130892466106974202041699610978114097545933458195922250171740082264064500329626891933231143053494234934929519094962646221422817254939219934917361111834133090206078184661153323731524062017768449233140026348304548810677696024776287349356567095385238055130497396423627471048924598380787842659135465811336722637121388125403546977705729460949455717165309904257033830536770726754915786742855079125849613964696185956341064578722430886198382427787342040981433522199712754813519626544963455493277175554592495519664620298609605276027893325741851941355360433501361651845066169812527210228879453360923566980931461366661245235483782539847273603979394887619625597438859566728751535607127413741843482314310806864100795366723109713368496147703529192448404452190326415170103003055893647381217909251315680189684407839639815766470893894834197562518190635150914577653410670636631174594576336273759503142222865305386639746784980328119871367490748413146607316069427901236266221895005496735921274792744482974292426101654193684423396752735567429573860324373943672293524966077219606922110715860502432420783439840902414536844492894876561300797973637988789678153913745643716420173537192376991002400171405708789279511138784925168576045208165855056699200306183722413267378639790296782758435145927031476600202936056649769101074059736274989872050827663999217106731464727926214762218745984518693788034795331289444317296712432982776275341442106802034980151235513536880871010824442624373416505365395477679376673100981823224121967685642906245508948280747860479480518412842291613949264578151659801703588480890645006848067289866232115201034856455359360680747734690266108746464538644578814580354840260042881103327519539149842864126246739290427224745624040153254551860130642976434911515831826017934519224148768539803319845521053766554090996219468940413205667936898054728667722635810354232253005429446133302814956921534183804279771455198300425034983847756090567523414470071111111356093021449624419566415393522807235010184071947896616192826914208722003589735002216366188024322970835818205816293268775256648491080848038169431061874487204133759568766703483396783492967338086248004870864470509495421865533638420167076297884620819672243715497860129443490627160632246560185559651605366443767897109078360181750054363001028701879002199523759334944784463590631004084414171292725663751442848640227119845692917929605756610947571819169070754389345111584756035857492599644707074367546778436956137715054167630883540876332370757904186490371330256202525636565240696838748762877717171697286179870340931038449774890002397558238947971051096067773995821471742769976569439390537440761149227527381389794075573031890424020770568971734522820939523186946533368343392309086726209917506103718397401487750634892701860825078405038917851900934783082846462538765762270565945204831476255193510906961342691769778886315692557530805717649998280588452073611797669318943164570024553306032456317401717427385447963512430520272280726657052827844148283153512291787484432933980218404124722499723905321562763245178654402820371152001949159595485990883294332992348149735608399815879650788518076290757316300072012592087502037165431873829461996460419059861695394105909359287984593708387357285539778904964637159463000033052220681173912225616394389958067528042351843594328182351376023634406205226179928639031635322363825116346797163549389336271950112143453926906815090340274084642106776200346381994997969479604177885547724147332380402124007660986485165666404154663834077301845976386280982794013738438296505599771708116703264839103769206632037915844342325453475171528453345542059409061127649960766591814915630787596073846480809991263405737735811836377759382755054620740381717106530521760852742978807156250093370017036148670779043965367622683891277175799025109697002187291562495788363639698227814467509156168005986515573391132171707993490540446575545258657778882974027901592711144050094691639462672456904661329454286229754167770288132926466354578210471252867105556438344247278654889475392765031595662908981820557150522026304098267692548212805118616238516123325855964134576334238593101391434248765889138524956933375687798937059998602405121305720662833644107803142011727760323108346344260028182412595945940236476027978179021180599616639877520030577626852431639378031485842386437479558653518351306539844167223826633714791212121480845129989800902138589389584426325418575435756494945312345147563595466987365716277315128560527010556362832101575919160158762957860240874672698481673526676087891706436125403184791876302175539572148928017410714778287647221029606656792671631536831750664386621320043794280003741540876362399685206110716466167862637570830020731201762181283391768396658441654957058378492397028762471113772266105898871599849970669459307144893124245034433572474110303812524245199852737032293066767871576424056298976694628766460430815052526756458149835375648876840368160975479865320862450818427843230149640917406133617290933665636204299695427095457320777080381978125754978927139667492268115917703157667826892031387610838119221355530355000036595750085815776332019898709149354899088402325471818737650125972434675487179478326491496344158692514573197098922474499491152657683964871522169755339578401870327302692773622113783082975753953653359949323038888208813393955873041654006586039490335122297508222747866147182844592723563528972248132804868028181401186809376047865546158756561122853668134081666123341024429581283221061714210348287181610301790423322069747966209929318167724681500698404196689807921358601031151549156151888871031988973019809386953864093804647257869693279721031456347261984936153168820561987914979598433524143416961537503571681110953059224551600115080897038116656147235024707800287156285674499105633056408674450401834363617408665241162231111299813513397205260219453300854233761202703650952579854525179094882954828987244845704273671839014837172195272233341282100123122234474262075078853328217113733746707493109851932052362641967707112474075857688184344342194306875880718854680819135304301223882327298139886245548001737143360217431472426968943885591433592144911003488883805729606878313174473908115856450662428455134617165439498241647745125962814084649976416839957719318816689898629340402680980921411090043257054577290689640666854858430970632066730640376257071117623986204558489217620598114748461891898252669564202249920557808162651305200959891215440815997446309446274956958567483655711525011256004234420478618231228409452617714012673934376426692281869812568784080853585620087584898957994534960120696825928906046349720665548368162346026923066307515187838382681557815433202950148006826961204348633868822755662064121966514004661197682001309381440586741885019574004834684259659053122718795422763208009593336082321291046105774280566835172726011523009792069551012453571949667744976887679716162561354185158628875521746008386721690127364939737653861022419924912107075678956565530717938182886883618889355976851772826454942645255493873093080051732677405619647681081812994058376507864946494418247179910567119694711604144453313088431725097299669181429718396310312445439820360710589486236267806928261332466572918973831035646203324893666009721366084743477138923203268702134120543438604591750407635378634081954924335291177964225277038164376967540587874993711801562378900614905365736378724418545239831960519931100448798754865025704868208600411562439846623878368737971919885349638359890591372433065221595250897967937472760656296331352929632415351443606590439484295659278061084958233434288649553145197001475377026367772473341317293842308459745997176160429770501898116792695090167410721295403895483376170553989879109191143227294172571316748939751974343239463128662115443869670474166992709647211241938334065871885758349300306204462706202472181484043587576981160210218273541912626102084747841668206374001261202630684763273666200838848724769535590292734000449235486015036863979902579663173040231225452733907718525454260713809326387910652706748184637002414513149972794151982000174031274339525336970806682204394185441658407102805304572899412225650337530660798480363644457128261863373379773122287001176145343799543950790314520199247009101325498230811176979845921657551508679246804265222777797057956682816030754187874429117277034493557170049536996943887804208694156474641302015186664493577139319398275724737691280111249202938330406434912621108873189050094262861271740952600845138596688650914048202188552168355416020823321793159950291200995104509909025000880788395745253732309201822529858016221149667578654852562325700270402783485229813194500269569235008715976752394272859313619939967179785579251735558748606875976469681715374721928048692792547942067468818077088860207541935719858186762617365787013065356388262922963553378368610938968004245313910966934995235951319730437389386098889949647504635746843845090507525120033856027804332507092095298484580141420314782754457761347680048480995137361412437720310418859956992587804847375609416386839531981750854685583097231311804107649792874058953350802896434408271607207750364423583546249314188592119933411505854896932612831463145824297764169967568375323437511933472498780079432079265451777330954759137835207475371438433398966951176685698266678771684684914227360858122949388968933250295815614330215004801388718110380853583591158274379663543294775965903153555206351831028053968482941016613895231821020985993221803183266961653585984737847969274056749951533729926261856517964727293368081854487915867442391584841550897344077628528865173690378003768548804296362577621736874661098321588011432977977354134630452031882277363431187060273643895721837482388589581144709785243502520835691711356019194705053164004982842104599186369057997271035732663213766904130447921856806326818646992160303913870554891101509894720962521542358545819181629951176225353796920490875333687554130549238401130661699395151275270102611218412141837057319039498498442780114985252423361049429223117818165756331192398755275770101167675620821030599081933784935763437806964650025187046369883597422984370596259131664842719195537555766802969206247395270590521635424020212467591307157810764416261875088786213333136398412618822300107433201086760100273765858776684011506703506044539765339776105419663471230174980132092969547227016540658582092897399952077827021649833753187951936802890686830298960664495228674086373099518454063085346594501306805263896057702738444336725167490622141842574622173423166557006604707996034987614295475099657911049060148284395863172602145498104791286317379188019023808904179328152332527829182362662209158658473231417867813018158383758838840845616548552473958076016409143051028026678711291164997507400317312571303659639100871208250837691497971374610439085771897212972082822292259468657701953089427469421389516993950446712191518562078403837216644798988813658008441664367745680931336788610658015206307788283007236730525323050091639276791845179518632080326349253978010901349241320973634040527350668282183392258259992170352113780619057713799585282429782620609881130295923928337042507484436244017707523140632511123702332869806755151620286488331635544830252149410254617395103193047205635165165562053447346195143475061696207543624445419417869686648546502400276297888761318285635908332295665799384492059772724471386003728079475788141133010053801048910390227780546840349018957047740150633678879240208959254353331701277749850737931310412356308055457092545483051791065276580697487369099105253882036839315390799449839452834442309862747641987841365760650095404519283128712837154112008774917176745923855374140700859307015340818630220735708461759062684188714911196744943213489840873433577955977135057805029876555344664587574860530023029173571408444446073205403567257233868457536187078188128171442193913367702581780608406221252440428076460576982479331532237221240102847241429675838508174023255733902172160254037063445049938252053001550273233275454247591058362524346466018539768547629633126243466693833830427316213487591592308920324522624616059374717238482421928291321033338630144752888253344918595121499071442810128910622913881732735545367830177470980460441934300100060121912533533384250022463585969625585098148102518690499422355501438178219049402243858141669793556803854010956053228818598946339534217919620752760336418831596815285199182436720673378021670720372565056525381514985051290911748330981404193404291853446088997436835559240570170023536193957356778711020041783695537555455627260798626460918990738349616129104596582286610327670198147712049078580165715921563321456811061209632612841404662297051640664207295043793790386067658368561456566261838495824561447892134642578926730705876946335621401840697851265020981952936864252978843215518708240139471101190758986612631307136819037960023994781194970245144367658116590117982176668958034043968934132175969254172318547945394902485813571615201453604273831544552484600351393461501126689833160762078697355100144196942254557145684682550782658181747685320118289830364476560076259958784490534747376681604696293185839020368519648346794764611192418557617503062664208610879908372956864654213774063349928321345390178229681198461973514675823083194944673666380627904567153262620696108965546924729091597932580458092354273522832097639554576689219371850160056211095370281446452690983116526608461745579610163887731063755372415549290768011867138621054379186932226340727571531166922634734469654434051568684904327679708376938514250044172910658774747900218872825679473324483726801451535317568066349548335967330778928638072650612449946514617639157220691423762774412044969436356473370078248835704929797003515173505812526468991023249403655672362075672888467727103923666113657527059243522205486477737458064868688085469639789272395627452701379630413185564827466841172967579905700430337519622529164276128729405577169699133313739249444896584582923556888550688509566241996019279299856553960361663141722011837697169831117261713217780997116618773224542248735219261581450438061238270599259168250335267380053663226326770524284804107291232637367782351420227964622249690705837284488700977142937552497839150960724845652136586781907468984693225756482704257374025469813596566526172053797847632103645656748127873334689340152658922199368667234433415918537410542116782786994237473690173015407906720744291948718575438557803557501727191367565322689979666371972329292928964679429199319653492893760933214072155015169844725791968415744611971529457195932979902804277517133016189682096123934736904641574429795496542015781127045852259637911366739336338206207879368282156477943507340550517024799722175462157056159796990775229701948167734251181356353287602363852196156255889367282387197930653072318743824649069047997620019946048734551055402539591421817815885539656245771197531986041170516494091253085402036706855315681797625970728331817872454735892614218565177767344850770306446253716866534884023625798612656303428087409384248799172173036886635678873646697034310117188973263639644993842197327147353999972522149422011934460751367458198741038575626340683829637866898886610504414723256701479589152989291913421224977815211731610950965075068857320671962350914590971878151568687370298310452306671144855451146424605337372667439689816986009862683161425684725899884436315821768746787015681153843683327189704598055788612389564600506198940852951265922462656616340819802362164170989616942534457785143680566136115756803541990632869404314488542307607931781722444892505789943045192723323048281009240233916185395228961312960875300355655126886525708959194659363110593866297496346083762111285109159633959605519631544327671430914568661002398763563897694619675864318845688442355590410777905949885358003419574411801112689984737717768034180078924348591170938817091908212940304564122183706622888315354145133844655602539943380525120960819252978999739962806578106967766448198627128637696739042300294781907774111973066369670409405697886623178236443927261776389323544026367026998112506143813340711100115350612709791112377241854650067481569390389219213414559553133324179273188636532368208927059846280522877858854732277796226675145297114618824247512166184502630614319031110210431136067447728279488736385425659473689937310059082804552520434827441213907361545600253211927690447757631863956678633047412470083562948800732820097647489546132352163212651323790649726892698013254846876051734454390998000831377585603787095734425276685285583246180509734896269408191407444042118375096216485173329434465472478541497977969347513909399386620938293177522024545857648450409435657369933881058605325449797029151405859845064931390397311733171194590245880757139933325869461552003240005855243009721670761453339395011689142496266836156657302644617407029951120562092407825365268833089075474652441581475785251198053230279603380799935533233478962840562111016957504594986434060359075182626305856396384272777136169866044003467193385174691307196387471699897121684943170066588699425260646226317859158677364591015781934467373738868427643343985382502656723795683345087798988901005986205360913516742655458416882007162559806544101310441105208391233999414380380635251160638462032553839431915280606329884309054637453893527059478238737851493018052159941698975874616662166802435613999519953606617783200330019600576094897465559384729321533529546786836154443328857487516170861087225153927365396539885242430478351576784855585587660333218993290237487375644208068087844616869635872179312531812991376977062358672439410197657643661745904626065117394847289068373484897646838531533444328913972449476145025180831919640875765979916073511829166957082591782101085657794097264359531428557870050376013422638325500700531743651326605596566935378481876814736503814488576280011570589361094780985029850698827878785618878813619058448719723818903294919211685876932030325905965892774240663670111407690797139555863091589830050432328545277236152189188626099726265167352740613323360284789908089636623259631825361783431739715813685635447697503228102015627266043566090261063887196209034367716331631377650153878834492283262546058012662038816704443016773221538654800251798893514882985456811963663065970785972361684402332980565614768357001101223513053250757883895531655720599636072493342556467289832634025939627722023000404369992171993603976037036913484456649420252962008235080233561821406732229563436661765228927041960065642569446906468283230119152666074438537982260570333423999830159763125221165539649117210972615413731199925491765990919163192920145303119167378715128283417510037777070357901257693342746703495465143663805467685654468624059660961303123747368866825176283644353574660583157440033083470510668524431072018640158886075725550486255980909741973062888854536292305941877440774486214524187805288375922807935076431113472462587521980278532261493193195702755780414427259764957950592017092004839374040480124520854616650194972439047707021325024098633372629458986782564159406642890411975187366915121855504239402232080307205213084652025125489069594677714895565190013879438469311322080247301004033374577325991382911163684336958181721296893802728270214459573007566371743953753126805384432707643466447899555817271696507110911108962234297806958115793600256090026610299593239651830637951320158082721461232810775082368703843662863632340450396770816738208813753620629707539636596636364887578595452568139305595287141132207346972566270123538269422662994422163462362580392510235855216541462614821807913963828295489996935965711653871139473470718050726992776013207169156018169172548779287282807397361670737339315221788531480065674279317226415081649120741970336474520469500017751652876925287536575594253439755792095864140651109929059729189568005427586079826481471888761398221754870095015973258152156550522538077774827487727718128654277249884050028656510725857566928745317126691169261147613784045322813643387961211654660671453225759502182825007571626962855027319029405796453483428112230692090061370272742551857328506462659998335717657228885119785276219003447787563853045580849714785731673571021683470834749852310582370331389773100149398941898510749707951273605426254305755640872559690934318287164573933186512899247036789240101702890788443804926125229337534912771411817901081413125342102455134770885918880041292780890632893134592149927578796965430035792892695329646108037951928125613429508848259975019390753312333014960415988610686963720743224470510154328019807654232306803426294764904939540555752862423598100546947100625510853284960008959348732176768041434283460160692390017489152061759811481468332136351219730106878708297245225177939052218802960998109632355106083119760214626299099274334621359004716912987164700050728423654672365834444171886969516189764054381216499486335443644966776167870111402639460602667368092999234246029678811186043985373157374704583517474990699168180203510869507884133949170370571135590952911225926318080554973719668553070123153707582744475307650125310694983082317411954011442808097196528478267545894907843287915726935196001441054876924188622719171435668671218510361362537874402719836341569475164485348709172859914700612207432872239793371186448238656700054809333033592298472254926086208323070709713541624345501008928776326587465282998260576243155241854936694147148199968595210872735314262726727260150271716007161046431379122283972980240494361660417818848870854180337304385719453286966058003080296296265562913295286196927519235893319402131502863710576910747701821661839165258090532522470036374822002985544870518867242025823003918668192502780450904225447658294302907746452138226697439409598308170883462551225788975789320586733041915204030514665380922365300992032621636447742063933757750745363938649388970614799299680061614971386936973617149278490339445103732628380878630982036208026473237701904485703555412648416232045094512471279537520236825181610915415889141432684583310941150320220609130551498051847746970759420251595626314718139778011870370269022545451941786921248316465846719424000392621563985439591973810532574841782964572609117174335857470632986662225887931919848277050388963438139434883621306252519926427706343282778163517605799748872761808196278668659560748752625124580461423117304875814788904269036662944828414239537311178184695957033257069402267847581048438623940364581241414263689514017879927210896371911454752860224513584521822650868209397123883977794231242489917734746547448783583643627244801613222969997570405516516218388552710498588197100411142964235769543475677033684782302314144710669996469552120000775145951593453772279017494237087319761920155527935672434183548161938740871726513252142338002789504721740413000749542318590437435122715535579563672232063353794745225438651429849775904080371735294481651603414983406667958193546874372108379354225067402066416623548740558572726855716874480034908213329523163584778700071183802495543101678956716306826585663855212658565739174256028021696221024621064659832123903591409598937090526853358281901795843217629298730461495981217114931991944352024743254153891209115827679928183900685531490086120957415983256827982776195220435946699955962610390408408991165919243668242968099015113148577714557152439538528492374415422143581555808044876983427134783595453109260766636323937786632893242626510422773063373526733318293970242309724675120664817030097045600749299961186951644463265549656255811875180183475076796392335472314461778392704058740661361592217418606324890983275388830483572601125825800997770582100249137241069863332893920841005584758469924197176686515319470904856718147986017330165852327678862472775256977147439832420924636885949117846993271369265878712243058393520540146397121370623031787038205214098541547660446513108544496383545150059533655514663543265516769420261597857426533017991897359220994009821899458637272372056180666702394353089488183629341170875995887022119482157514507791168893044280649857982141700865994683885863018039764690194078149707585396892348096062172998351432274242437070594565191578014944511210974382927071515405676499710682424800685727736557167277370299567761300429744354789879552113139604155897125277412450964813180991883621311879716458022258321872692711945279911307791420137755202227639797291690995335401518367219873351786578153659103800139072398195683201155842848998959857109436229812444773391468712746776620416719123967061533216471903836317475868521533212237020135329976228478689550117017334406400543943926815355606884470481242940189591506538726032036298401386415574742919097989122816075848379962604279437557800965135646500382003681621393403256540082850911884727655496433107058572751468182924954790355673756412914404178977088945782064087457947011389811030606785552310293931188382369846233876173450400234836580882422860840979354854607036487194328842948901871269781995626001688157674615988631254357063704950247742315810200062802160612951278688998016518495037025487343087611496915668666469016952853682722966788976286358589902836125756223658835149919974468347371808563785670933941876613634003524576153667634743434900936490190912464691777756649875742524985571547029747813539405300371484211746565568328654666850708814496976948800717002011029989694563341025746335782258496773105617204382863822720381981989337909940275698669669201556107284040139126673148727730733058409614638211402098342319931302581866671701879486474242222954563824739536999193224245771231278594769221684034461476416552166309163241586303863338575896277262959726395100138786382473093327499343274295872194953836239029769284343556497603516346964204931671483672714734792489590759169236297464759024508184419764459151008701917983262784675913495813325420347434559444811333019146695301073290675196923937396152041870225994366984342357803390879108027607437986151374727353890048599002777324773342098948984698007183506987486167509340847170055657518849975634377884190761817891410241347566268609445203999814900071630560671439229636998980766127348040833915633796203509700415856732141907229090053549243128141955680285739376539151906604912748300422462995844092268654457296318495040396272247200216672200366549029625989812530556572957782879929686603922878060429806607698171524892907172157192554152971928505362752295841348359015197071369589407615928958918267725556709014855586770837057395763931510056734770640498307948809456518699445465779033359523219037769949960584777658821534814009408335855550805053600149721073462080303621568350511303828053620332712892214210163656845669351186361785254573331160441855246875377825405076633772900796153381392416233612100646784482179430291434691217198961386829468232166692864620020821846438283821267969372274792461559341096656088376445734720437892572909965752777777425389147943652489058883790297464853212048081846283125517358945739204259117796925484128453794563380202742815428013324335071819598690781166131116288677428530296435022632932156542187622666235984213107608549737431381465688409777821294114790927042519149460295445508219206808221089716026859163353682896209989253641145131579482012543430000949694260255266445243658345313255700979077149515812824657342736816497219966528063920491799294457306918712865174178294612604496770585819543220173433285354055793255779037038056929109933213583941187697549876837131809388870464264137578641478347878564621458073125644486030446774116863329957405046547516048037132770432622540756874107817719942481167089458036377542422466144051817330012792849915497094259586025090095078376701327649113325765884680828745503972833108795964592030049699581365340064559605184644011145002642445571063831211041736657368176601328516671008392716966804285772344263988953191230901955027956393302647621893947762113400018793258877111178972321906782020757009380255113164629194738066891764081789636632308575691859206646423539673905875470152622201816446990927068670718524738262417101046988146762691740949817215352448648401242229857896674075892750143610695191729578504771529549509278926394570586415861028878976047429317545910685946853536935710642764396795018565903913751200207418833027958381437865069459060885746250470280291964667087324072630138055635178465670691281774302815136517007425323023476049785665458605860677817723082694812590974243086321571081528627152656284659062887235198184896290852851563349564277366650341626429242387837696061469290995085977206211535795999396038922173274092173058532486340344864697664545122551605051620807232643068685330605273503908407033627700165833360533790683900595432627934879738559812622840553837611802302584365763264030910645032697178270896007192686155534655870639809944107886116508949257891412389163643266982754784855853894809545757631102766517483719198097066198735559972155589842484665865739173085259512331078296729270973276053799592166528733324872565356451034713265575071344938662682636079999064153256926996873544245923204507246416870151879992180385888895160744969529044518098901683934917481281286681451334316131665688667257726962398484560739579286381033121605109262358724514281495624248709537657835481111329863594250086462175577354055606776359573634501407864726320125050051833759040557830963016699625528845886863599586533018500383394317692699716179121690164209920160308816609955660637421273933410834228949083402383661234015148908666116465582009709369545636091454836792930799536776588022212726602564031957198254839021579048576320578048016382611532392684841984165190669603561189635854040906590739327194771039758781098832076485495437049243465246274211045594665918251883483473435347647332424439577252226659963524350547992310037902353429415533243893474979367010482348596862566805041304502928590062061092968647983162685228666220251954425675136511450209939030374517503473359616231658205192773159185470314945603758609211780327381344589879908407671017714447094933627884900519748180905724082285066113024280005948713864960658463742517665116760236274774241775201943376064896512800913825027862731423038062925745414786824840418678386941366495006706556329570459461793272500211363099903940180329952950753898397813225957284751173839355774194147094698400210848475080061516735581501520902876094115952155500519336869663798805730116373366917249523248122381403519443306471886164235706335503349954870682273082953629842789420284265780185619521221167233524474963659987382861860917874780075797809264518620387969203119319742341679264581203316404230860583531896934837915733922264242053261113875078680154800519917420661730423922162534359376476064177129003604262324878708282331822603941470316200225861693005124221122163332329031916766282473998102359625385978306355240064183333180261487115187777356853287994043889602101359684148158357175701170052090558225394420979118769452787521327222333287030479044544715984099454365766572551653027911724671995776813112453451598182817594291907378288076355380499082155614353679051935073322157175533077341452573652681973190720076155982689413201587182839846221818819629212436806705589012241835967876172114849694610019698229542696989815402004357507994210914161390542929663973274982718157209311363040055955702491903902668278799152403031540298055597328312080108115289703414254794444714858126328416287414078920617119919359552356070034247161823638639316604290417053006365037458699284915779225131477492320952077957149167442719052450253946832034465683409642934637228818646082968225983162781233034913926441234992874915041320230239113463839341292835833276794112562819149587199588085545564176135135744323906544024544955511643403221839798929983230265689258256740801567835441470426651784882576148874771281752505050655720097744350604460343332659571428745666179988138894197566259517102893832720184495968098772196968002083767371522155095018272940639453051971145393602846048548354058247455595909165177128177096716410579341979360975930048614399204809529626643013167303470901969127507831905119017487168742107035068472463093365253050461644728877241082020677351086502000519608343185470166656068097957388461759001131822504406649946563423411562622311861756375561616646801078397122147580752177588685183372852124742787555457911478143637345870964967611529198959374726383583123025690398435608022746296728400054075934400129636089091614764353296718376232805674243371619508652489755287127715953102397960393810650729493034487559384833803003796169896098197863360101064844795892046696619641317209018200413373571134542214087284969807058645507715263609631388297172523368240378850996982125875815676113711132583162486945642368793217067223979914248639657703345885139118833846685722820604192275197141782090057084423597510432491594650321530391823417482954777719159383477527661852046316845745600354719658823213034328289355942976050771371756133367523466025237668193982997604127887681831570596886780816193916580547999387352839588016710500600461291406488932676894148384397511324279177381604975360415731368448849925880289128066237232985003539489788539301743515143818668676392183072144653181626333590146258757531069525841777638325557454441650498182457914158650415821190417308339445752992317549521148670793963372634778163105740502282814228728833375763330500135075363962930111323777931149968076615125915366013364694581050466038070441179340056259529506210079997990201596403523108266280558729705538743583954710461795633347257963851842521407335518139706443708356646215172422953319056566218302192713290270258282074205885599064429981655784587555578417831215802804514116191024735345810392692184850210361709528625362727071532526819103292613579530227903513029772852408087373738766108728538215752255401687403594452608713585106371887089022937191526704042542021594878652059516400178916914949785537768700932301876712274702992731272354004006316124049476177552634829291456721723926708779964335471268454528092228167448734122353611322051956476271943440038991274972884004015984505625904088299950614892557355139051798622661766166785551369388771693786367650156536475977439271958321351613294201196292300175521826274562749520480027048566566883771052132322560496725045571190691491107977788482830748640432695041487555236232031400009881338188016487052458246473608010920612584440779250606417372095139504458931633013526991903537790986184577220205635645875215858699569821936346763694319489285261451389566202859379023363478423196896056503772547383425819339309140697737457814124896929072361290485223808407483412524149102697747327613190360132570783118539154621725589949638060693054398105240742313682525869857715017216143183819987072626223866674609615219044498859684703777407258961024788119680709924604859280469215539509330517503403566795247722671842372482517983332144561522438842251697175644583192299105221375612672996146558503206265485026238553367944212766467490321666312339754878076190620062825708755417138878670117219760916698950633084391432389707976974120914795349942276515416321440678534825351212011188585849287674382839197123275827189482506695996029824736826167552284131214057748475675206651296128758965944019380457074168137184254577388194780452316453484479832684173371276579518236859595411271277926090310460627003206932956337461340569055094259848390546333484098141242294703344047848634169137518908444715593829597475324147778521289528752345645119723679483412488352089890176385042978125713265196426229490477320637981937575418145424220514235764249976337398589605882289371676858762290766923132231203164876371385897663947403342872146061292579743455119443666519071593210541188696953867867438832532632130160284024529598411335058665770682708319314228989367030906240558043759693191699154177305581693052906087927671145042829126659052682708545237916074649785029457509914709126727957375131206348560436065772026823080580370521391510491653248751342082724382709149692175528793588040020797751648519789869618454721637534875226759937114255886247266821102285284842214735229866548703003724485769355444380620232289238375407964892315396128257376395161401222650678645938056265076891394924318430297287436247961903004933688582023684080507514679881950683579404289356477231499524740394891535708872084041630092316487209059265113419491097376420619150610284621103406888391652949521557728066978157172163064402913037008709126715672171416209926461027478031201837332676340677510345265496382619148105614463886484492486029026779223155122379806389404946588061262079194697492187978848743129872163076324954466244477423689459579283765193570654546628059961885281713070188823961642529642409367864458221014946627139924807574793892702177935931004374502753546173171895421188989169822797701360900245382560612455585076174295268160654721655455826675717884727080719711730723905462294980279334807447144087252408552435130089893505281818622435674877542615177205386730892778276463305922813146954942336271149067338123193539443356979500897038601118475254985268975898830155165242973118489671770854837179381890966204469207592379875601943639090496621793051635647774229486932141688296741612855357663400339550692807868440704621980450307683519305758311712057739142255757781420482071846363170523576440547116835482584003613773061520626013402101831991475260687068852628544446787537631987799995795246672734489102400794714603980784474821805760067694717198705244498787866665244732479390142305185543075377454809086061625550473904787814984660701560336081248433694808596377141218662996472556701452879911194701157570387857440409752759675601322044610345935613733374941280054907399676539704116560737472235917493023862248691392925077303490114793119648528586956031700895435602966635499686759674653040246538274007118453960991433716503288336686492375492584064523976739343732399389376551314937155086562178807001000491004448689167957724085259996632283560028004932378968889328697684093745172748263337681282163719022436810784663315406467033322991033420588298179815094404132264339124214636744392974756424154543539406881267306132954561641188473472587688219482118656002279421782847263424681114257661270291261181734961584067477332517809872661179513651941839395735488500633422282445657957189301603340659168632580203877904658088390490148305771418365569362744302854168545655453847558824178707868243132355592528840861121877189630525815027770985089294342909756213444103838959312132163205364703720748517712419383565124174298653307281195595547720957642757842328208694721970247162381283570646381596109907646967636423416055313315810548879939690227268864650979523341463590586323502220223749695681964103783069167227692579204991841059384471072050994626368830619222296426075566004878456830853440622834442145821448126389249080219931067260087857911513079177401209245741738561486502869149789217612805776222271895615389642518420873323170045309454740524483030278095062790421887660011767887877252316000942524520168051503264123043026391414494460737937064385921991578116027801640702023562142811599628008529907073756682521592878953434903941047181838736477562182851777437911657042035139369917740497981243158004704444746904647009122082722450920287941640685480600453924088112350974387325361279775124876578707751688623641102609969985444717531625104178719815887760599706033977352359877422331039679256417861637898340016123463282404482449057462484238854297525877721989421380551852293654160073246782242621923792967742381861382784428317854288026416925514658629743179563831431676641958894264466628596484684344228210424549206449185094507845874068843242995544377059334137047632409043821375744692883796121324931202609948091326594156550708440753250366104337357420804237496691889032818643264360895276031954883906851259063918403921140490981579459001393816376032630567951717166414925697476783721585617279689686832150356414081952693132768819993566440606710006191767423693984896751989188015135510082726234442127731293641130242252168589607026401609433200313505611086303393405221616483235762007136942742065680922446533564664318999476682384160126276027642952090857339504418198023223850970863000573737971660735642866945546302554759425219189380451211645606424669482138903949206709899937281309597696445232648159359491843242748222106846198204968111355240631374412332987399829891345470493243449375505773743619250437110228647972177590800690521953521285981024292519978444945851093328366589739820841459292283334089669367260490269559036093469414594345160969485674338125079197385038672350056112588595223247692360449737222820391049283194332726670604406555391909776972697672753657924106542892894816126865674981790562308266641320358858538911036383187629184178139280009287787491856481480528606987273823868231284852611500734995235434875183154848703418142283703838230124197867428831128875318746668344761315571428845350197125740242658135455486249017012773653298418893040340943998092361186375935532864627939237969661567206921959602048230890097470603024660276156786639132635864043950191862564323904591935341621032035377489875948281678186483948430971536697244202796084294666892917030630537446312679497557002926634341685047656308902277251370547617963991179888582096075417016003891311539366169296124725104160654883234948965581937959536910593500011632569865083810762797171701657399133538244277848213741534630443789421749553634848717017963928662067396217736533169454757323722277897965082922377363980071037674446694694855265091794786413337632275721966871612357629207997038810672965841237561875274739871024941129695168903954825495440272425913733148740866578411836478378362523923230480048810638824478920404495921869866011923686777633555547888092536331590560987482817198392148534715677224909878713797739986982036850377961361406256787523980154870137058837901055783425941887942647624565274384881153169869403442215256974197808170524970677605356363178730722570190825333837890610515888496693771818781624700437204135191208834072264893678664314791039542696194164422147359031858179042327740890761221962042932008001266914510925853654717746296131327061495865050678690935173788943802476144323207026862035409697618587672022578201050929432215271520630442082777657264410100943830626847315759155420325536289874839990585528243645476251520221205967195704947554712094312423491140930010714351036786279972242557247067099019802987494930135366270704796380498496490459929628386320389397161710655413874413800040928743049385485106736387359222471909182298194669064720299207039016378919026005225644675630548683687417764759796057302240590286640514995572473096409116707617895433095500309066349686844272741465895513245059785168287960011849906088830955860347052039998786736232019204530544495893763285066676812172775331891881663093252771211251816351291835345239205889900396530877141972062506612029561835657321641147642549172919524400131555112437407515732910030098534249727372511780279054282041348865744062806858138937777404174971362610603787249830804515815177970075491525970396269363857678429027314273250155172186762251699872300499914575765012752102357361701654916605365861494144456547298989187066714975251921497862665874988680930400176807995575580053939578966989524535721208417199360370279695807744808738799093202732621682947987475278059931044035075236472999373486667502548304653309514556459825608618785131631536199529870697565041235186060112836189219422224615480642058417370153827178468218006549511401530091231837022651844932744384067650367545852221892647455684296739679770072215952188466426554594057875712915194226996537401272294665889707038285157855669953195503610234051745160652048609153379885638708735799277319231530148463012774062875231719892703056693609912819391968007682432503837977626112056875931489751222185639832150991020783558902535712010448587576389550231469099175897281905202304117355093345260794020792808671565799916150699263362101995930428368510025703013341810394014022356395389972572425720044942267480759619101138101618808238860084015011886709663347777070561486941049158270346654149974335962980117771727890052075838387767701263543711420016079000784145644532706991266867608440808603405137854296384679343421946177104883537616771657042186644622362812085973842006652058036156143652734851702919099151474252956695323404231674653632657160899672764674292906307187753472760512756055108137368999488656947795989025699192038640655649721583921252202729568927241598245536110886000041501462637251342981328205035355491549288545830948007801915978808728493497988363217053352204667123991364612116804207872625177221859976024585675630589597243750777000845314361478034068456510008040104412079370209808469268642800271717361565046934985180598692205989853397810048585532634246337772042589435228728383689364734855429338108490132716927802155529908970298300431107408830996470021496469239927128730529252703300428116926915623730698275537594735211626598733821473901220557274720355599767654965786095605238401881663565577329475003209214830834221296446914886810912803488485505298192089020055669573673691731640147593359007667084384158023481757351876138984423906749289556884425642718156169454072147244682633877280200073613367775696906641331519974340882691489579479374513894158063699725945949647954505532839644668714387980586424451124013372824237772781617763166015241510693675723040200356489127783073773846151770157129218239164731623670969229338779448244104244362321067573380934793619297693424734368682008218773113312882658555170637328768093967436632981091393824973594807287877611053907946192976264444871963547624279572808122049615576579736724009106807028213216524468546329094239696851822718297974615185909675567335505100244264754375288474167760043315152541915671372884313690275567761262031224380620800543341208875442774487428778373749470238927550239804700426863754252293805228085572880831121189911282001455867430799824688167531341236011815263553063061408305354979666470652219425149751097708767818059016669590900438769050348543004572319553040597784012666446695805162209467565327174063375046840168064924823158331193071507251002884390661625468085040473215324702928093816069906548766114265331838508579246874657342998329167706216795981425635890961148351988992650710071979721040170860053505851988379445843502632682790166247262393029531509048564546164141667483070074936158646787399077999020172253116727511440104935503117664488685991267680162176808295602814472549722793697823928787754904905719348443107478233989671700559967391302094603247933963199929914151426334407758510984993518957377287399788791878498212396682781209948513089267257340179026828203388541309699112391529650234042007719966331224219898285211332564245597681834741658999025110338583928946843172402086946827977608207509326201162770154086130701518530316376100917292965710926839431339936105738245868073025599979062727089818841466066133724703769135281731534706973097575513594970910511130969368034483179238920226801930087108084373768787039886420490852115526315006260640874166911624028830866639120550357283632137329931940673459176489237469181766951200917310512222562989763269869451281862552954743227959860169477345717245577261906110921793048600970189634878162553400963509924357233954770426106043892057749671425296002159762474308034223633871485099650144764044674526610634809872271099697468073418023477885221737335612363987659785522171706141782086333646370225420869237927977431778687894153440197474739596019898385695905190960451765113565531140860223014025403606879885667047243424631267107646971168260942887139054024376050723787471309598588401233877368440313368675382454277022480394616619291133895775328222110208542655268208501982137029606984051151393280324324281379447181386434849331411034490209984424795716759136816494798680090652671763774928749554764708175742255598532960991498058555613891113774410475270286250882134740310767709418063574421125219377671858788654848659392518615169930768263730761048228409740162698567746760193656850161859348102335604845348306961239709329655689360073228446024732706289481403288275190481293209904850988443886107780131603997387610593285215048797664410780336456735075167235117216078317193733437868853109869447002787733559811318532509001437581518650050224152605959508956711692151297800443589846309356858836578948987838904631684757144388539105403190186637882999723947277674647250495931789182462030883184085639777875443912064806163344393971509596398183811567434639898595353232723368401268841934701550512856381147066863127012502641054741350320132422274002816613367946974169811477105543031246497600073157421935843896988608229397566572375493608278754872133607936264826354609661841484371149594339536714823240016605900003206293361253861734369557314701099722609299333321991214567194217051597674006786161476805555291408709529774886570374023538896073649379478706528033015425141792922433291317778982983409075072340520426571846338137949436790923337354596622629597791097274241990937494231872516756423802653215940230708483083244554402452610985461401245278934502674331580398507308887480349140516425456336118910665107601018154059981230764099649781686474062328139568673455277214331566028256569063095512361488379440603450886269671889510663539814497501287929257648748687601664213496936565486789050121316910438243014430284261233329509733539038743501450533492327033060596647346371849221267474803137674535233035088712585955639210611040945555774789764300921079176323741265206100775939485283249470652884055328578352647063395931328585613594560404050427086259281320714445101951059714743929439049670852188085051544815557656854878961324212195619418755751439589046091563335700965957602921241138399190777183263793828101635429265338070590461466701235858358924053367203395188281133609539041250207737801836177141151257021354033474806489420568232291961414289826132624411805662064691751469537031979841346591615962840416284610749135772155459942430836185978776036722991740187839456628750725523387005950381388146456218978118322349948501688615762356172394519251559519124058321026883772155092655290197255893820984025986547183290417107988554773969803827215638053269638790484713714323067640330409984569587871802007136390602828184204067606710309383124384848309341185319873895411390653341506805848241537833679122300446006974335628352660819162671643188984930435154833930304119653367448012301593599776374578743774824012500282459819950522122568015411089733624391780408713090598712103834413456359777208389605582314623836417727550419669253979703163125321385280359028862467237997403050467044807515290491542198554770384369900529760557500363571677541111405151960741344467327923864628875338632424529025930487176327665346319541953573281841239915475884899048376014553692228840281347672021860484139952798893911224771315388213097956592415987363663839683205169700557391742179632365304368978782333534006253746565830906482480985425381429891775860859374520685180029109247236818929123225321821992390594343784456059975442067813468093003320836122646736980309504845997770636663134947189823043743632117149721401190355127291808834680421443517402935549862253887613484297035850178399846757392139127203179194729770118919306501497705970821801187171769195103910690732244195031742473626364131146836624393766532548581206127578861972422913976591719754706492798317107843464870977032402825853835784730697677408510543345135891764098394538549897983823257776010245622861901082731401013308049086483257914880224693453931021670998173897706400545251833907851293396349808638942627196130479487440482411628111708444006264493458955459135709055735662038815763791235614870662129273594229317602633792501723954660672362034399458648815565930327312595185463461923617603826434963621471737682028247625140625322329580600204075651655161937706118380896206160722441310368965712081054504874473102200114296521254650195572230022509295025075180947574014630373252201763878226467335982184592813347473876477485200840638660995951095836705978360925465702108060967605071703266855059242481563855169439764946931487056547819721652655096376390800077722303487774725650848378696740004122342040346488313316717508711613731896338751825312940812268742236925143355788637390675364788270669582155856150848716752192364802383092103428593155288861395269434745812654349990878118633785822511532963455560088970646658029842098855851171441949230536061265563012786584099134840385710379877096219818569043621046171727249289133896996355888205430521812259748318952342264975323232831806567998550147149948380615231487995092737146467301705136026990412662141443229915774994348914652334220069153421392294324126681449987477289225722913918106170886622998651133900384624058916928142556895773193857594848586342963158806190586285813509116491387781380187752296743858469109209462946755637045663591356317120642948086573177592149636465845430357130116996178701668944640215546611973004802821307680475064403757275803507131114355789812316270729580807925048210427519560822800036871519090951896099396767578596327852410202876326959112037017191475477195678570699756466148251366770930690390916001861075790384748893190080136378909515470727918526890757333169192638750274872860470886075745848388856555849388659510671980617493053437295898551023648430560192339340422717187162556892215628222445880792041123622812384443924016049247917966014716676956980823754235174465439527059311547369019000749515013012420468448563457484172094469765259157794368134196023128674925971114769091917923685744896630819235435858723877177586923404461903429092307693534520017937075736990311791422440799384800207469578953922747135734122773973745803001935727859833562677059405576082102900132982444700406538417195413320278649440322697479952768246587224930822595028880154356570758508061644238048661772190096859238792826573577245987586790106460990820107435546343738300138450988910593916283046668610943102010842406941848406271866263781131453260570339753530774046441709161222990483489279415467675607735994457690419198897090909069556669382478245358358848051118928146700881713887870366782442545045538860346900940793957789035444185240974034926658997575211659325778065373335631665693009606891998101912182770343938780176245617933299797197212345118324844184249590206838266766935965389444313568989164483058482528652445065890945230023435317989110206231254777130983943527954133640309442949509323598373323668366889343682863133355733488085919667219798901461377289348856487201141789074665132270542667980147350057973907837511820342196497238914429102372115218464836722175913812029438966805147931996305826238230668113040522225951158978901234114655039525097407359622864543801163705850391444767040894182800533382331809769541698455129855027896402255598942807136736311950027838989105953063203135757379104432514058897889867248898152407674447488984999044391839057978389017013256626600312648549234324274193679083145895136789358589872235576662500995793832553677760381731857453825720791728635068088636191402362053440463777258527970039383333253883440845177851589692389277288896203946017445593097668922642271148140389141564791833814338026892823522795802149543479521541125170310543429269692931962140989566778752138772521525027598633394991812914089623420800443900469093590280761728900508312665371086505850240742413054256864880844918898832726396941731289051453757082878023410518392929494826365545204612556290371374610718276007017006459061919437495990123643406186467672930446575776345617936416893540516403979004813309725501582778341156188235886367504803611684269021015013182460466697732693732845161043520541884411933979330991893048749159028486836462152455826364624589173394567488169329041085619696604121972179643874090386415937089152777113906915847390186609042996094155450477005597672487790479348724729646757974557351921573916552775239473836924900072425585797720130317678437874699045111340182236745534942205483187908210596917153009515959032477121312949749996734353240709932899992089864135731728288882698455807963669687280158005500097892229444088700576970270654529290436543994763881534150545808315683246553940226408879836375623071315102283592264013490348444292150173400226759901454252277528299741190712779526437373612286524576221145873501781980432450080949123094454319375431379185091335693570577995570185115117417952262528581090897373746650647669620749883079992781500586520463421106476675665004153346357795577426578157732679741911804063337331443900550684719805406448839524081327824416729506703526557218330263447179071979827883397214098425159353094583109933488001067183843138070213884950140673736575522982254986074481908730101032975497369639900125217395902699644272082580114429329041799350798596182543766031083039008019663155146179975868926262964657384242871808463286797729007582966517814681746617712125797473831460885568628108312950819994766139203040153478443780268706989925521668482845182143009721375451983948616933221043209094565220822220390625626989813579915062117570933224329547441699765242426803987516654087068126364528530951912002447565294494264716243758185526854025994191317487309903852239844495651237582542389441428989925528937925728417582163359946969522834517482508149971376891965531471351397740719548380127056057854333417326148008512892084075556578676616930662143926762704196889392079861825902129188207689933075465846484087379995691831515964198008615942737427052830518629081167734195306326492896204819133606819688673932551231447170115385169020327459645204613670070322470058286641345021468068606375916130871012744935291480883605189062584742834152599706398067794790080583715650529867971898091080522660111715491954246220088551024922899605784317125128296487511930834270755073333548705616491587600875900821241851748874257186211598653623907445075594432936224958424493011623361595723106341228172801628068262019877251419734390981002153164364041664513535462145781527514970890938385600309320102977015624448547868392164969882156907206651589189869930120481320706400052638070112804847798174804929849386313108972907546219578396736812831519690430203992192571775046974365229694607240171223152874635420187468995103654610380197001569778770734879617258068400312480132413890577475176786919680486225313335841394448294447050418440393183153422709799898041298652233943066482248240499043396464402482305822218903399811075299992993018770682193200229373332010603535554624483481384826364089971493815424657513872950271603884155424046222608295745625377545582130042791691706633376564330913073760612879100734732985210679514644408083603782516542526410250753740298771140798401834888518191248014034399240036482615735988326597204237713396574583283286671199700566886527510751249109930906326058919342773323293675796769520818437803545143406290676251601028645604757887503447545408867785095992338533407749139466320417075691793476068278473084407320746394059509660994745727376919560381405307980532251163292789091768959095942172071991917655942955091306046550500786113156513595898604886034861992352335719182312849315598655014710675469331302819304237791515533614007976950040692163412875252502014238953538790212266679362789119557790167835178092104441363383537436802651086411046286370550021196975792364324264707804176379410266411988567584017319531117738248455459719471628228618518791536738243883932509828936017075532695504782856560563784742612515327348814231221593955714081028451969110961488560444179785321436084230435439643874365431460546978956626338693030164342102448823917717597288975469661650347802612669026859468420472359129678573954570097484316373311789379690313608579014722669146763016275553479792386948617855205835149806804140460792938640582326027970708137477883096109341246960620275945277955676045960520513401403689516520795248829109331512116155011257988564834304906096783165662378288335431911600740962212265183095641417657824821960500400566440511036469113444719601754125309376881175134547159339588013972195265283582088768376289850821329094687423615079143740120030410669853383011172629806428682226776575009186860159249517233924286101233006167350199871855533542284530391425900857091122909613591764291142149212230626934653727429562313397722282056497821422553449172611691029301134299279799866530059786825467649969652019229948526375455900307042173635247337817469790885530019961854261213102389078825676302304142411895831409202422019653761175332998317351848289896480345664953575674321507309960610125186240581060740183589512783674878084859168489505938774196027102522986259160581941073198013055619237915134207307708628894204193275874310732311630868889765776846214513835488180382327689024671967894205191594525680341336249174581808977959820929583804798693547479600797908540836192040946663414380219920156435217973808814343760760666962445855894156331153049976151589983225781409335275052560489329505465903235389465120916189573309332318617325888792486511345709258496298668697094193260003034533027264353861640191815717285415531526722360767988685059013454633393028561437639802601808820040119151986957143775554740775069927241690574653761116804528191606519744732024727736772742669765911480147533355954288282598622446307191891460878494872380009750509729972056749592647597535079119765517742110669603114934603941364433108003554474311823468401635496240259142502138470582999355939154604734236200913092864431563380871542862383126123145798260886599812805350784999782671277889130108626724438140640955276529033421009506447096598902311614136319864429862174440320831865049954944504519833131695343659117970120831182826646859657176063226022823505422090544572403374612938858773622765084880277811423351139900625226839671372631938171898380783959490361995760448366768874406125896657923332866627555791363656202216310978183161881717046580435980346690069570128108725842845410631185603163441650589717472772610764872396995098051798091579469463048988095105511485717886965064112457817018400757790557813045939379700696336473252154081394637038155645107785699715967814385035170558863133920116138728830051273080758877650369464134059878977235584175555627225404073944236634942300012325463993394194266993402233194984798419000338358474833379321070192283354974721774676072936851782599090334675676854268628782490864043252352292028536372665724213540326822937704270816616139325315208555195619244254597778289526987514333268070892744105640367142139281938261587115500816985405295512808296764955139259819761844181606827777269923547768435767048231507222006462051956315128985123127541687808812390462105594149766887262435511041721655102743656862847946830373175876643106902241909926913096272209752149890142415029107296273193488834112303003391757556127510347848611687435540479680336018984302518510711651171645289729936730046597256170959228764480671915873098372430936546983858481582666394863207640675408587076239718205202487177505341691791432407836486572489831626070065193026852311580617452889911023267843373197870527005137694404941481105013976064124607839960264774122913868971334565408994893512674705371104434576976870775822474978861020619061806723801103253234806801082329116239497885872337123345670441090465280419174602682483535574475549217881184834654190713203068887309224799862775001719306916083960597562984918297926184802137683402654301158907506974709614262506358023320921136476842451201003193652043371688312409828899949572544178212342317822471234839217842956811852936864913301811590006344840221730351177315666397096547863660126776392485569739075268747724488221086624110478590774991356815646579967679070001994672944663796942879283359674870350587555069593686471413453539355714477467730882805349707800615797464041627805279307659911253621437412710695733683561973099123013072919095840850799258789400133009646573841331752829139312303661363429690612448153503293487378297436727827413501787529103566071360133927163254162895125046123413252490491592811865719941521196767021229614398713291898751166361316548920914838576035389708345024130107263914407441855532216897502822030030578259133316516508240464857708485837985476747482897868641174098004769221985912088065260201539561358550690493101803286693599793206035895522839056591861895069678003503769309597159617765849033396263836263514456368412472026868112523668539739262772361556648129662332562727419132005135205470356946030549785339392094625864059482260956365912266392313889248906658016842991999976100026508103064817110231640395639488253492918724988657148585564548405497333648843089061708099013798140335152681840631180267284954686846231310418388522129033006351938231767875590738591003606483957251642094612985918415301054458422529613895851537421081568602171611425272080492077206961281020274206715221131458717974366538849405907586375155123810893292770935146307224593347173724096045015185899706038192388875494682525153123715446681847984692321529260482670944723187638087251384984382697370516305331317536567801616017509475246952947062637552425888447223566721328402963278653564386601858210585754945160782718084339169840946772241441332972558056849019271280766746754794790043215897570751662236118795332951821653518786779324561357198154448967700829605565030926921043923667917741014447049498780955664485333865758158089880188461966922244572706348446750743045916770698133794144073796363482063810806062231410824145170427032021523746292466973771086828170512363554855217677104426935561717165066277249074717555338514728424790226273477344133441452139738860002003986917192552095877444071598889457749270902838450417937612096711013453440201814766269464007598445244209330252927950106450372579569547261711156484345614035133992701620406595724460857996851447265870430969908082372099266167516559985436637180232725291861427508249250083308653974503775003907433307501265810309614936738545758221998491127669479738267608558915217463659232704166007756175742688959182075086205814059739752373196627702322872686601074754701064982425430528236014589898265784500568457429430865639922785592343177626252884713870324647045659104369249322798384844545703280799550680028479521355448464636549157388035074673222511439663042993232626709262995316688218270574901527086721636380282220493207434223832322057316974717009473114489940849246458097129656003692784421645872985116230498616823908118720755143528693214741845990086342468501761640710963325578276456774132222351070393343534290928337800615436249342980621303980020192532484372875297697269397130188402623346370521077044870162790825416780866248671397194702507333650947143909779496948746888885522004627127757499226809699315906441698802056916130802065817694434539232427572808963390805717358018834887326368116340865449803121086870572696985008862864884391362260725675954672833709929196893904365634931338458384538868820499765200476276447772922278835000416824203953622894466214655220032110598347570510420145272599859879696228639337073005172572912779199119790035711285313413401297266820886471848562292326503134627735688516911251799310598478394743402822974691028029800409505753970697925930591972238020790790720429419640531848607464103119241545652580950994120125580829076999785801829779521818870028602917417301070669967687643105378371360744448680198362629946933927828013703096175794806233480463898716802107178855763366789476903638834224192257699254146702237756494809924697003276350414496331748000257778481056810724948515997282850066726465409729680508542341202579983955475352234181422923705871833546184640556511558942612893527549334504487883534037435536809239404489027013649169874085569620069426439977863368184648335996962262951658105697959970229541231257613803236840180294529328321521362371296160589011632561772615125053026126121684622250028256390975546190954458094054687113351507144267113217507063733638649845018948065177728404505916021096429154222935749000144937073553418698143064813719024572251149879448068856311968685320194892279502862237327926237154814727092422085643424907083493535176689381393972143217878291850396416226302769105635326279953179111936880031777808623449331084088275691715817246193226774493033125942883073867681619075004958646335623582017310921145265746696662814688754484473699369411340645352208889632791905084500981625413645648366149336382494024370207188475476719351904855301695883102548433605468005879289783293191726999361691460090330634484573204657072976308188113143550883197463291626551979980267829594549896323904466461089515306742523141829848987204415498128126166623380595155455118045227725193115473471511919781454995095517106969025366708090606288463966765339231360891145131934895837667343213714993856715866174308284631262466924930017584242911409496889218409260400570755143261141823927117068397951202223175490794059244770549061766182316963067352375858928779966128444697539152697682488772111137078171668866780824445420833729962431506791844006647975080326717868972908639827398949204951739544392586070623822978159862641574384213477055557346624877440889726975445587750870720239861892297937505239421235605589931625766754960558166422348878840798439283806047855060682246715519884143749951718816387259924385504789447533369127912544440634681219180618741257176674300842112789416114682980241492713182908467850505620523684282060884452468259912942888387394981033376415886086755282790421271308811824688672927870655374803017276653172153414560820101706922976333082329232392264438864092563634358846885567617744983233264342464221157981295715417102080345103663204349177763655587528074458289356512740264576850055754855241066060799410117680865606958117919758293983906068695325812759336931334422472983059729991391681413193167807833112019268825960958155278902513600210897934495510403465323282111359287898346135032932890202018723060426840304698546459106411163916490234868647911918367230369614164309723137210906447942351695712251950058462346543885083653806438560117734154043601041667814662774839255692516381050900210623431394376446023569395122006843450381857294002278756869560692872743737845939959638867775326162113077028202017421610203544325056716695595011648037957880418114535335838034408386945722478812327351081246742790549657417031162940531274261059676327447584792451812557730819657922858520062990991877476942230303820573312972513217299996577107299831089607245888302051423150662419440860200832700484317723073599646047937022843936682659661660958745506599946590404196812051351283307197630051171882250647103720180144766845324002931670608040231077832758808098336128009593864318409506169986652610151849076140838908906573306935794420815049520432748727107041924333975480552428627891218307024803137760305867593019268222465205106827826978318719492576394605228442850402405372573759045523812236753880027520696779007922285672505158950689605632553825181876208321574777762761909050287580274370625098146436138239924503064866554361348813295575574089947825286937671944751029263209874461309780799842318379097497750977223712709269935325359412542333955038896636242539024954906562483919376566430275489171325390296626998162814067408096870462364355349185086881149659185973648667904316038063306177002482476374303057265536572500068540910989330351013606786781387211558998618710284317790189489961037153489042622021154514531032269823875788211638998456010101784426654218709769140003241022088875065751681559885740165411111875578866824020418768460935589391379390555721736932477107528705076549424744683490729865167506423533077008943997666039699572034917055699543298145041697402736914275157462315835915299868282815556668441046235858069223097429926155677725760487014275808522135875740185211838583833311013235148201330008855368722223007638769145095621563469555371297216989626759175311313671028817033992977990160472597373856105902916304390061438592061610424776799289246803081358122961403327869453761471299194492218526255313909220259913131774082416971813767178672407369764804331546677277037202227671996558837569447673838070006114489273668040392411424797033692674838765772306288150142604411774641382644473583748015924707020211063690155470254729157609821319925624144021993152586330649732444426917934780697628284788895868531121916151684287136351916083725334762385324768886723957083631795686447513157004171514443495831281630825677699231994881112908487493566237460440858816228769514807416776920774452071098512228584735251022743424851534282579360256311740794287094274776975952996523245403316045722400565468845954594132422621293376826644070481565638966292899318072330215265241351200334484423805786308309619558633885930649074568374895058998921745551703759180779313068345394143988334271796957476039721462255419757716503272544643090587185952550496865318395101803172173235087877293319737134083884633121932272809671705504310072730808092837251186431531985718955566030702508026087964524623926063492458512588482634818886889309163684735815161352455515831449788214708791198624708685587693764705075591075887852021668679799451968060763667479785353723537955915153803616877540895973738720555253496011863554914949455211529162561999023380215723088503453911621951324728456443661914665858049334431950823081643470022019209428159889636523613452049386998364284101771339142118452227808452987454215166874887948305622403170977604280437666455804891266208390898336814660350954872694016694821170427205384740833915699165484388278193180691794769334641724182432795515584544946998823799268940567265222051768091602580679773274088567722169787770912594520283446130791530319225242178022992707189525256503994295464532448556130252292192566265898313156368895387665444858256346639124593078086288965336339029133130452738702795527265915153747184489421317917267817012910664902326898602692699453744062569232122751021373932831324077149090890706581022305088217661511814868862042301663086088076560347758738969805934366401172180488570727645569605721751744967117808308231193619779113143668623068104304922975951159885375017801460420318096116893614910322784170590413597421868387709543408116189753050574392255439067044407068441795715718994366145093273686759322860399457625898592196485863867652007749871298634566312503249563766258907866362923248609491747732647160209877606888938433480518361951203057467941525849320175397342397890267735761668218423223193380478687849902933000037113423580066413566392340247450028200529775833679302769630643538466690443762326336544817679465381165574264339778946972362665793105175938618871452618089137070570790473465023088588577019604285357234173799787106195826961781806231257447592701155771537660050683347817427322601206561447562333034797724086235791825480100131889281127322684201225946867487992340201162403659008522296994706588529462383957949366587578626447154679366772885041247304896945582552004307467229325825302950186138835450160356725364306415830484488233164198240760136070711966686890757083765585492148516475487597512230855245791060329105590871338134154501163981798520334584211243158521018039942664276914350184322639475464875411697073300597960536307756082358772787527036236092004917555567648294572029023083863896689953606784482679820558239131240767405183936527170626188260345475897347923465476784858781403308207903104614024635564217066803516795852943319894935398962681332164227853446470287917723596497454214126610120911360095478167379525069893226226714038438361433079558282363945850484184308980141864334682238282196761658114743247882546064918964779273333151930640643390720008489212094461071301455396584902606338875962926593797207505293181619956079595919175756243196098751042962852752930602463077721864855818228336448194406954422035058733595418928702535533501675738051066142269785429729996658470606964706597705832100760597990571717911036952284557477913959798219175492912204450373888612868041365068299452054256165538513931654116969505548787891453144382883922732385192926151752089769331506058976967667077126327783658444377065764128771079499677238429817161106948789079652275602154503692263093841329317247111964038607057789729694269045475832794076743465758035289499638873351148107257237935171037319619519153994070658925879931398343455755731671190202069128482677959114758678945928476344503875244430671800156802368454793410157561874763932147787773019050422821807745959349206321644251506628457152422620927848517873505136387359369102716371270424329419813505793047185851271193532209760231146540428652452295019696765421263447046198023330243418691472832215738435327082487345532834242124160672906264947699948654789227035489508154135171366171246536073094977447137744618784052398242295374424767612147851167561186928496844492711035193937358857258538789593409916345279412571248382982795442381250057352780684967300719298582578746492479770681686813955049411011629844111949348492180115304505365736981070515415765822189215405249679267595465466588051727101125592371317657588856546587234927298845157351034264001764590143327574018865693014168310593597545467009247027891107051768381110089372103018794929893691013030958739911438376059768628134802359847746808769455619070603025370539588562733784614811156199915469718857320900938834849193711571645653075241533236862509977042652024316796883160777641241540304276101611543342887650474162311318046285581841872325425222634139021952918908136199907486444296521603050485316125496178764299578372724099451689839104973930004812361785933752640385746526794858699352729170821245776625146064566095037469445726529600906766783398564090969684106753128024792572114654002463372560110382379298254529165241295966473484589290092475012821991283545211826447234305756437358885600019894615340779632316523847339014705477902465171283754622818247334173095274754556544807211861689797717333900680305064229431098128889319289390603895943509061763318732812809563128096627269352114755410636693774288889249736983051905142928865641697325734246224768663230864513754787173879250717658507171968359851441845786577608530708592215312337020887055428484412674608646771754897781667682134835080734384268671217339012019885816249487385443884556269532446456503408917858143025908904446995137498788102286921986245143578248965116047976023397534422982780752080390505312409996137512988812212952868793367068958066390091262774690563513892540862824431910013495738266860749350355713604477611236415716898875654104958280631120165489440105709507673778787976110019950082147357707052397596693481812321590740031986011609091798020914895380712900296223845345727787250745923102990930832976168281375014715597654571926126320568656387805064457451900563488128493923327610414463752811688748505076933569918420333444458272042055899910113522711328925701173122870969286842031489266575385411294562049075493514502032067067747398622608803946717376257182208768888865600002325698432366303264664887021425727560898164779858242829454910227541413996471253732172077280334582281752120523323649925895089093391678855422653523435441327017053869467573657805995000165517943819596452491479322486974620365051489803168945337155336268832617883747415142956914378370894258016471880645533582801825871749128322815013674358477192894575462005852104289945595089849587385536874371606372200503209950449587475060681082382045393738935535367865403128408387519959435676376969100523831030409634703390967471860309414996545258977397519864353663495659684076679953398171732939085947174975216789192067664016666654059190995538338892083866100226288105197249795812569422029205827856699385092030126251502184469865972537966767979788152400275504046660563340947974887513072884830501879189887073967859529313030178651156429610088273672167884436332916857652633312613999098377861317713492437495114531113050478571700568134425382911742025141962862609817053299863806255308605039456857528751555634533914123981586759214978377510045204729970485832756369763021570285777968321953100782530639414995744784599708248419632060197886139930458934769223836396154312606019903768126974758324315429691550960280066962818429534469002501151988540435422973924878028403937906038684064817841992621680141235077880061711240545808093954654280722597483530107759653263849297378571765271018992884762107023637693549344675125394766381583991803165968066581000823400598664754906002866310687551809472765209880620887583565013211426355791636092390517429915106334303022675422224349708513266114445575909272939229186787094151504980273543010066031881312385345889984348146844083677440047976269532180112391033436704995997165271090127740402445117344938837056853996807380279345281908627895925113432621514951753851531271278092950768202502948378746821685152497070944313853539188036252845406908881163263566514823520637668430978354937324709214425226911356771380292187473157449189243820247690677821738795518682675092955748399424943323654656813604807568537030750922693200738622547643216124489265432589593881965651683477455118016854232391800672819356072617550647306142148877888475152932861851792238030772735036294012043488408773343683631167893850448999713625026103210131167403160837579458508251362063452392485530313837412574707333726382251477879299217032683512014220795586889534902620195277029660408381928784912815176722611905747197875082341936424758245144876610068230581912622074319122206933904974247610242112710733550442528698053418214295886059567482806176439816060111298351976241038931913911437527613402565764531910196468626383524402385331613833743654854301409417377514761941343350304253966598747448299478017126298355726476384093626500979936266635260989907523885789545290300828124253248992171641969004814302820037889133184785502518451156595637802254795975803028835000529392380924531579593101225242611832300823867335732093635119118683457539211959979837491802998964084273318225855766419884211248216999941037194972164723943885557279730238608915439533433519287349638307437484264282579274797128306804926878627048067652653725327757311400942805374686454723676287473876075935971510372917407283007208105992749407335314638225234554351608803418172862793177638038690167703006337937489108687783108699872795859690410223913887989681767972905223435992818096498461396116194101328677534407669230967357624632664545718488975643058301636834544365500309726210689836171084079787204897565831904600578888523628672690159543493878319909341522769975540443330098189671982976431687001313665010025237241767367215956028055349752333684513335434380703847516328458545084021575789256301815132716367779522961803414613481270350225668438388815284715199821619957801550235361466253912136039489397071141024281386915430925704775486353224043428835754167480805066387352196086301699278577408265335399058666545303580496460423350321847904136726274239603752126751352688886310443202149380014173897737526114916423703587195400502088907988477184975446466474099408563278953247993190947385561432345161498629834321914824682358177442110196644923324435347143019295300566436762610437517566509637057898490993659259331591325239614112999111599568427840603009471311500358289463021209934097530805135224672817496057231247271110168282713413426504345237828054085342079085874013712217406181355228610339946997085273949761932426383566107490147257875499893834353220374135194882007765808610288973566754367805568254284952765409809750886830916439272039915791875265981070927595565505405240688089618536390421085865494749130189300913924631702540545154629104898633485431757038063407979642790564500922516379863823179317184500171193360871517512752079823839939703320748990091735217575086436280417228567880415753464210280431707583720615978066450884485039826146783535427373314652304484554191205820491916103425868197006940719216072382303067900037515512688397836513453188788310563484758045845941051569491638704227806164075593278873166090306873106469237307343273615057457004284244655675443354670626247644649142950144385667159594460287777757978732556955800323090854863777387992614961097755480006686506774725863411853653485562709565455361870398784985950971612058168591155568349218459608172915026764692561065021863260322673663416099302124250529387252253312201185962771490036921020841113771281988648190662244716239245605031419317757551308939590166647444479090687024989360962776516421604851561138627657946132581041510179201056468991751309828573340895302574829413673005605988341924707236988787538637347788350043185304415755616892740929969294640640489173534134110248257445247807108378434845427248391714194421200274133688154380457010289310074464919103128175135207878127441142879716993639485358455286434134548565357662770151085213431406480364147091268586231372948418882292526201520624773942729217089141937267049307859513147232311021501536628500104714255296173629304323040321614286901580400257809079430062821759292352575934182500093580684728018662353494065446738088508861561298306122272917125144731119940379274883025404181386918050652378527562425058953066288956155282090270839782646513451098490767984753815181016660236645802442127635124850536161400027611723931466453034299784487701638585689731811835961080255303289975608516724965439288616481837746168076374840933328040740410805530214444694070624219572703477570878632509009104143956786843686239449974058990081633332425247899318750906645631754302668731059693045921333558987161190801633128846576221253576391998492645759625259264486630360181395554777581017414411369801567743206683870404811363085072671158482154899628997186271975362622000813399038305533125181831904344694726443451919893280331339711299690863842085930390744443445703226277793688980965149643153614278120333827306944319193412265139958683441495967865106053024340951093868191390123105424195341850737824282560256355441149773568374822277339684835239222827043059880093211631225144192120045335857506526252990808658293589623979710482213649213988376067279961699561094466251762375712296796865525297902801488585018718217306624709485207782784194848696864931252763466157863015647759332376571483458544242170723564496580120730663215817537633989785353579419828137719055969556336301434830712414588550649785266810097518974289827624391377751328855200120830527441488259033063867855524086179488871643280756648082259261560474994419009682587901209567836220661677931864020508742652811831124659756683854173787401958637442464520494739240223637080383548805527271603578581227730884144989249125633522772536492661106272465684590231459036609708123566751974865180059275915578679490533693606513045713924843711368134216523946466256891312892494208632932419271665257733151480797009894067745688030173780467123670905370380166893422591081754866545937651148098429638601097987466646576476676569533807201929103696648959895102866338009889589430749483303865090905631201739755241161254375920914114559055896866699852084138024787055484847028033809153292833860321875778849381863475089915484832493379539712165554882570992108434095678170035284661325425074191348287068956683087658646105729694292397313084640630056355303449619918469904044158178427661027291297046407818947136729995635502221824861294503328289730729585578715858031549718111929457755795379228167556880741374199791270847530851857665198477384201354203474131365779026574350844521151187264039559170545246234418339293806031108243036857151802734226302982361943828519919751707455207505836465938975030084254421206398916169809438741895011975266254226045377712819572960617071268829704400116764199021435707506139507785087477558807730845500311915946127324263090898357320676760459123616042238695058835950571694060835766810370284885197003383992359590277962646790035889538035801856236831610031907681670455797897545718302255073540895090497883992695643009271836747888178639808715866900273159799233793230561583725697378784791534930690349386295130589192337690957581204865331172701333460273944671777565087356365722078122346471490884366245096165821611476771103531693939516749565490977789739897434807923579875807982119551698054614066241013947685417403799602752348893028460060121103115864892685426852316871466757154147762784564682569575758512090176639514881615747346339141944982443186052021632375234773509363714880071179119689434313657746890766805584804322626881383589591525917316113161370438606732570350223891359995259446087372733683326710621895341921503006165295172333891534666284821731847352390086687671440706967967420664026366449897327885483469796781495833372132544730385259524988392659255045387370611425311684370538820155481936540461665450118729022431274429261304181485110949942008983341824781284020836676111280337681066127449390641378458618202725681944727561958805104771341788429872684275463963804347343654093258550501036727002197254198543168387623561470910480282152872902833726908526018402055207895884958987204347470878948069982408488165214302369509375678593549919251568329641552679682424154959737197724945209232030321151411848328480721790030551609417029940975877832267487013778820365490380092209108821445351694347372699364773080753111747743342119035374754669814579979089437531888171006104628305625662455777995189531018030585354657501696733176998067553053280817017938957815476447218761095661210491753751014213128285630969288592246528934981538626139170002713428675021054555185906790235992769417224888205402257209598707593436355318662214585977927519722144152546154401354029748916126129654508486294104650090671162767812380853571762335582066545143093694879436909813044164235882103236184725428860044798114074614083616339808439266150890747076496606011817643246295618818279940703069591551044079109611326474618549917405185592270628978512601284146824353275512202239413055802380616261710075772791751919747576295555945524197289797472098790957928039407058224091728791018876585349175710536204705296014691417513030273697780751584670091286827836010726604668548467379757407444861672487838965738120070120259770274194537823159051757740956574414711722507160563592383842902018602869897043363218348153876724793198961326633345484739498461852329579250074901412934202341491878688626261391644950780767048757326363858499756586682011417496899503613243905238158672900320046757069467847472884393900809189906350916030516406448208525794535409015746077010206450948013309774431859847158720312240422168320238890136520042803671058031590695929192359366179669219588920950437803003609193313477550024688364845285233981267897094574137093322926007384943513691607268456379287204936738739510197586997384609274989231530713335565745517776677408128224952055139942478096749696791417530424840764804508071857705817345441961044918022535404717209717385441498491555207250886402195223517789475718644460942441508157130289453953028660615201816728820077441252285207131559221108826801452712725653647504603192872321389726752526933240714474740507633366297487570325094323319395539053582686575137934172940663729914113878019400777217487370744644400409660762066212572614910930267675016227543924701884582918206223478574268514036552400580340578210315532573710676231658916351115988836392847714086193077098570507985767540331589416935307010394867158427926694348315406011994972663887348640916901006676988784878423169767984435771283699183339694666704474999108015374835611603602658290625993511406444884858798159367929932674822678272505093176909962897976159912454851244876928999945039845500721834394251668070438661888934500342820448594685682882952625002211838273837806276429332029025650539660459655228519797686305337571362508268381650115661124993075730841811325933488663753596483528961538743098086177442625328129781498343583331718239689581734685407599904870875685972098414585431074606560209920337500710943833667422550533157476367426042832450565610224783942302153115382723136386254471874545317793428593546131756867479282059767555806723951123433118420610538197104678583387674386951128143488426185766012044267313230252621013800235780281718920456793145722457761537814529015442828593105119289770981087414338417554524073910327786257765762031672468551233826270341322877766225859752584149144645393310420935219604195169543587019337072388351022204539003411164113634427036964711241668260210840294393004824663112247798103861181775736116112958152966274120592931962627218015122903718614776877398550293742667929978950756254957918571204238467385721305064124708549790104264679031489278858805453393067850874463692651549202517997380291549872693225623354275912054334302789242770736436487319603686922127037119095164325465937204639881226880823344349211377094212367833091577197941744541250457078455221566696239573615472595958218553782678353451478565001388576725710923583774270447775377060981833564446192915362068993220293001005815122930532385162467813115135664339995445442334755317248411294905697137590129086661214573195845976589752968691037085724763964997614983221778260499877045247635526984535706093467238867536309532463255515282412920802051355961424753660785258623779811548663399084200014717841593899212249233395065426210001177461614454058351706276604033580422817829057205188769002314662361208387090085296057792513254363983519492153986746127764910390946313283338299434340874086860784381012829246560049438824659641382985569442153727929542463446237092841445715762646940592176557795986766692499197874932678273399307586368693619023035754236073768346578709305461359278172841013390567561741479436476440319544068149775292961310017544733873038673743714930241091192868009483410643838504643254349754727161899336798917938998742699049763918797392419408486752802724168497065152525679549090371972278931750548613590777670238182856847037342330709412795699936434444288966590622654379153248267928024361778785737903784431113084654164033725240595096185193681145488314503960983403481909073412451780595217819509277473461609290979092629060329399681583972381334582619234154383610960473323310454802363146552706826307985128744893206143497947782951952782990254610366700775825031325375259329100631853833883173648520772925805561032825230053889711702584305131572248535449258300267343963175584776327055541756525746989230140520542604399783377446036843735518198959522521958050008278093685490991076767425253662163209615303587602073173207611545845350831847420283863501656118333067389572724070956852870538784228661287393695249379612244907785074192706996445968638791355088167607332136565005553285293370856810636591379202591066475497202797599315506284870581356750626205614207100836152045072679618858226923144544549677413248555182619757297839024124649060701349251480558789508651672809744542905291411751031428115733979534324099086967180185522096279573981818549784148935187671928023277452352965838714172348961985081086437268301787946723226769040074286813865872033101104430646445234099550097889472323724601192790097359674063565602179790759498462830119232126487674856412828311038784820738731921775908114656762282719050607003156120139211530470417655133309601989544176854057433503358776148340533105052432535451700228845083412707681984715614961769251823602936947972485340756225315264021169068543071114363897008385696231610062185683724932123920897409115527690807401313586477947392243687771796740844025909061991383445516325727816166157405665214376095654948223873054217505014139708187952172178789852368915672233747014797640538715560523719476148287515885413209199826590634481846212238349897131431385841871859917051115071492955103790341738019245729790453320721283533222248753662296308186042530140781370830154844412501023447793714348675879364152129227288213858597959162185424898811017197476100273372851522400881357197485154103666929089248778862601586835895144220483932882898392045296632611539714280025338319538245036883074133021982194714281383939742467433855223304966848588074346469031976605181128785061969028428387522809248080275586755704048022821939708499859539956318519512959281421504181822383682009078659128867554412322461686645302346581340968840190252534782488852181097381510643027295194780078121543200519649262341043523335419585383086499878859525195861587983535028913808439880372663953548009029423455867277102621538351238791961357087725418419689848008929761989671485448248771493773613955485575995048397511224602596246817678438409875353801636722770257516357738981922099123683316528519919824293088984593029463251633049453935207757415009912350006437219767478636387876995593285557224603623067593000056413835164519577678201395269463817825288414828454689117332033331949835285697874686151147293923041067709954732565009601797341042811942066522943756624648244223087421534555121401489488217837439198722290189229779640378425755943994338031533526090003258168759445146748088083760173226990971314654299557004840110778372515654099815041676276286274664166421161076237429608047080697603354567258616435132600719839177145727344356657564834529141089050893646247200484484381390515234227471008507954114607280327209566324327524504772009690851360655721875065969061676931979946146764644574151882958211307548599845584123252737599352081939542952611032472175328307247578308896569747216615570382491656618734022440877882542329404247948719750481486359991317741416333538700455080735228686596930252327423782170121837444080939399360108096035668818876432537756606769384700886456092466253948847637527386652768786675816996650987089414862818545750804536386313041306731561992413996592704119719532376705764216259636286212290762103635865309058466795576464781636837462624143691230624540837942969459156926325930065516062593187561812917998330419994887909338914032352979338137822183158787896786986622249898221311408891839088985417058920530835002954557007012118798312320235844322998381415633904008871768834147538939767889053309652944156013464756185875281844504432654016852016358388567918077621807210542145901788478062597466800552267811152229617918745636796469228678842101987232768661570285042380365590029500886475932960946445313264820983939917884998247243016315635296897367612923048735693391385275518804901716785696429952576370271126369763402997199238383263073913475939574206270432889488577887767740548719785147199473665542839871450504714075756506350549560597761340322641920982777826497399382859283633637058276399650438425139780767071746445804886294800478185903121353141734286286700293136034514658802617862374903384861608728182960684055550894650926628174148363293556951426792691904117883688596757447991173482922936967372425455406945482368015306246348149246594016837038765824870691612828628336310623926559169837361836064369792372822743270246490510070697065006925419016766495584263029092123125404550592076329875142709271887486336309876367956901651176664115466417849986183071557383354924268483748395004943631047994515791795167902049373898737573223833071981361138877788234466540102608532376118359898239529422516088210115589668214936278460170206524336089180076137550952631092741253692869302365367794419290777779889550579589928608905904134105945652370783234315611207935390337874779996199309560541580587561548553160923798209092281090750152159231326664074058325910482920244080220698950361055600372483813783501873293331546606515811446158162712399237917569204416319852033061169828477637868469405704389709882991018052991710490603641095649743328052993738502319176385259459898370474965958409430869749565543731211122135969332908772359654489869195266264018210548956619420761819057169945342112595761754126873737183632470728562002231528503117021965944144010665343938152265374860639399998418541015272516001957746881473061306455912880526348526168450407238760921768916142583462113760371040884257871558217815319488927615023851731277441532364183578651191263825640472521317804870920636895399320261818432001259550048906044228724086586823277571753331629259972953324519168526489008962697201182357290893412215855165112306118518957694601909151331093293118258467861144369145065362112531274639439635702740312058531331375502388418123385028083834443185645043555712536189956676728596892234788309554575521346318689262108670241579237791063150050175325080780900633862858147132319692569754109725171090158563472730212064749023397626114137226893741560758124362423357681205485071347001728889218874361826841238268345717747703543193169336299591815831572315651184588569494374020600953250392623889945250231393916472270436666554059012319036424259367201478788853386012106762935969696817550939174716073582576674145941847090719345326931711937931860115061618191245592500675909246824342231396650062203151137679682584521214474091678835399621120806489014749404314610424374383276992375308297053811085281899216101043684804485830583908248701420052649525614348732479567847373248356213553017805427144125012750604661433833736513656569383559170566517670965146825275634812268091212665364155799594699412969077817671581834876924894901339392928613241207581438442645774278931244640164642601792051815801641621687932242804562785151996751568255925852291203267639619092124032778592906027999709752564725734640486247832660539435061395233404326037641406073487080439534940279031560075484787477365027918910921476677692599330672136535095193417864373954109139859464387985188682352707213571148358369840696859929864640432834463793195152741108928381990734900994948967441074754164422041855355993086972047296744400793310854631484857906072004335505238073149712531561326241043239273766574510920827635386726317454406008988482378140568489767683793701185103961538872226350432688696186819048383309087213844846028960524279388151011504464393429569722297068087333066857063117993573394748371759033030050082449270724794027139053425028666590967057937631739577520606793890194150446224374258260958163917129727791170829738759527528416902801727275975220747032088441946019576551107379031266191964416835480269276853893527171631024043761848777824269415563116349773103382255507791694281064014433655795304031038393194510325313423856034410195973994655628100142382706174644596378879626137353690742229804666688879574266576818652351188657851191275275059939746636573578785615475110886015033525215137709691848149548284257742592018327183675443546164085298262223747399846871111408439116565553189832010396682294552191043019716381402982705944158305865190157448848189652356111460206287053535610699706342379984650627979347820315686891321717283289345364246717256573703487332190640702626694484111685871040005672541608843470562105609711141651155797131489744310401837872476409364234470663295627026020743264191754318148230691275054871229643386268477881138981171961028477142164140490715026101040059552151433557632439747571547042568258259198950477123698047107727797360330457664660903141645498344815261858188782381667991171325580788265341241493559823714155523284947551199702064347702309070414214598596076598108892398020295359068830533935467132013993862847659530052731847862456953270408252600430903845888263088279775093769139406453060440231902640870300187551141075973570170364934940726688060799360939519438605050649998877729359179504949185770224349517241861807263849092489966232304353591396725012344816329889129615888583936039646017144741321341195483775685306684155333258645788145042045546476938802134297641792036331827671193030624447829108107587466378824498887548819610068850038099923314066107845122496998122098836204389426635876657783176416287971496962472985133415227628236045186618223617859197007866025817849056966774640351177483011296138248190278186894508372105431927502801642321173224465617003301688085906548973337838047018834918330901879460639230710253627687580890965978546745085194166375409804644299583148901200207141370678459907398457654069488243406334774417291031393713733899082261019786933624012168554209050605339274647879800108644944948553502711997057108393513200364844766063930530040488474990704451900794056288158991691078619230370963319471821900521683772762055242792831968144837845579214988178455581268086104016283706459821167038728749374269308380911499648075334264846739658966643909776681421028178906135368387213441221449911088735650396450339716082332236859324125873628347670182740823387933047697964398466237929901331864537294174309962237492596582832734413432164762482597269626566592454767573180131262577064537623091879568853404936775576464323526452600895054140655439121837257051773985738356881458160216574360851302710200419930114984133530497435409952778317295028638922568998591298566803649704110657037932991408204397628144531007147087705816032216658953916072103765603400335226342038040056179474001687752966529942157998596336860316757609610478463638683014348416593191875626470666069898359665616721744369551123283778294427930072450663044494196387000534522990388862784389454771818867426543302256623191217858077459467221685395808726632050441810061857915522875651866735506676935050127991515900507751684448741686345029402647634989427011311580649622024983282769194198241314156491327943087454731974466741124500795841786336264901096678085838569696265271632809791628482406821709934060800369992127267760930347639175770479855900609286529074239146829589887362982339258417594390097912219703047870105809309379714512993239975670362776176495344393342312298083521663814419051490380118182608592617062164512204808649274836807221341072386443461070264841010223732297278489769302434480429699737799570999650622696519633406841892066266993835199523774532476685978897601561575687630784071273254999275785583307413631784100737921899785319459961348435187141707415759892807919612507519804431710846477709282749902668649733433356919739112280455215707982349497510689375742421895957282331362405427242141473417667607287984021964087659524778938535257331617764320685742899414258191082409345362638264191307341313436390150273305827452703421432040945818044772908161109893179489889874756184213540257736682068201667648374496524975547252745169397543222276260340062972292463275193857072147208280508389175054986047981135301978179195925791208753555161104507491170783060642890386173300920622893860946761547618632958490819475736141826916515838528141941022464981945033373382759598912694015892662600202110902721339150718204028756348191903768357450189269236551160580463672649710783647384127895500296872563136464239172833358969198668610249565784003564843466630947704426051987828350499105797884632351845886437986184076036482510377241965387609010719559807858265646854977102316578542499706032145647215070688365880623423053292438748190605993271432594143104060266641973428927412503177777024212650749180931154874743949843245487436375163880119134576919183991722797074652260131596303536421342228674738404606177161186461148788453790196242773603393664709522020585631299609009625568307732030266798147554964693507216678794889077504817584358061773482829022120285530176162907533570684502800442975169179017792448429064040344055547873969667273416431325250659719147283078373915092081357436078246406928348367734648814545364473182895516759956967143268537421556683870854717471219118723026420403909839751513799876647675400605701206936022796977618255907002096886257188059364220212546136732299899912159146055184118878459004255530325675041778354909092991844460973614699755286973335889744469333267234611897727091749450130767063755776324789790984617185008042140570908343077772821679566239054309851785001759033143961316327886694730027899757673126096127855254787150790697860772647692260961448941310210942115374896300870741113732195954859257634287807132741696518911072091529477545268065529589616659142173200146073823069384401648867623050249904611530048832909585076337628843220749496013982221729940333007401186955623653819896031781981734664824584887926970360010983606974918790944737870181023413547397444573701134461429613508658767383191952983907414111602775461382223397282182929468016156867045577008616818124637358932404611500373495326176780232019833448876150373317772014381418402235299667164350966831781132612760080364796976830176965773187048981898191640536891890290740205416899840992274701561806529385446037161572315165423936253012227448263583395914701370939826901651183682383873284790806963413592427911188330142396520271782575685149013397937420069467092444171908795017355984039292341242926829974515618375751417555616339039668778598936225644115386593406076465165443253848336061310390408527495932510017510441319193304373690326220458329578763581202794802631450770305191080843562207572822444474051564244388699606635926741360821010389037098073240232134496125744557827132802711483310249366922291868018976545332303343565901899042878589639599631794723078533073083762088548483462368320044228035668844969787795443043720487387740863514211031149821421570443629837009817776097965414095393242981214187038313935822361938304167327556245037324082313639267703455581257935500179759006892559280237706004072452405643051701618212910442564640344711960361197272169440535736206342924311321885816784027812882330889977305700511817464447075502918049041322027561704896090781024706593846916896846310376871376635937025453010082506534608302162118683208817382137165912858646884031270186231608457326487549215501393895990025409171228162145045328733918717248831357811452994836870735492414607639911883593087993961660256636487127142267348761823632350362052933339236473082631262689702547441681817861564099619330511656806562435871188061730871433067734446620611972891185608793878911133627467667503569030041142024676944963799697406657540060147728863750230525202508870593455580417302393682754432967609005584750896238802180083542470623281563905680320599583740112099801184574612274700137824591367405282015955478358585690647053894122083271277930185980506738503742461349000022383265256492026353873011488488572858211306452466085020720842446196831002522250681506229947783114888195232972012672211767444259099869924164601483062050045522084727574472314509286902946756434233811641669590929027884564003061694876456308382408484887805524215946122217052118416177317758721996175138123374239379954851629458462386776035850734128705526630365579316038585639528929308942133810026817316174793586996657768656909242103673613150674524736645682912831182100278913881058049739244993586996263973099043798685073196308069941946233614082513355488248322091059898172163292434363181674132795220356344228385089794944823681179403294178662632178377732751792996358115586211464826729591301603439340958000816311170619712361505129336730126595233332337241672824412126102020377481013721536511401314766547400077908380861318049646144511871697920346839675812715749335573610178023206415764747508983656275696963985219445540261551003107943924499682438603262134768621304767996683390431095315811620495102275624782275700443811727340763596672076413366990288997962994287928020310871873552653058867635470598252860397590477676347580628634079264566585129071586997585017611852040098556542941051214091483535928637712551436795898321936451373437980901791055561371342515116058728744291150341372757000491355918321580148136837118074804974288609045854361513390004935606627602749432566230865967044146358198072463899571022341321192405971339531106160186220042203178444452163776781568252757768778119449669037026049001429397869321393532669429392256080388612175857811787114703445406902183734785823789780314153895901742927235796845575371127285599284363082441789373187529956820885335249840311551918241482781651897623292560867236846692915802478323721376742303518877445244696406716086639832245642243309925696433071688618322635597740129325494250521607218516166990434250276982207630124085701888616588570652638823233634671859904748279905714706548254771306104450209097330994793050320279205137375613414349234820881454353623967034731048690869743768162078260544813889958450803883880258854735510446847134500032491815791994436301599698396358625518463223756325125725632824229703674304075033298631822259858252057767504884662000558686805444545241986026711370576180752595611556093466750896812127126314101044710473113197963102930869957480654580900005374397443141399393208557257548970193651139784077289164512123767591954085663345783750565374170738977150404594457307854075830507968651597218670623138878850692695863769227487217342936171648358111795795625767847477126005241962213046122242982185933198676694469923897743855708834856148729201820461287317604017103526701011672458623641568314008631454382964427809223340310223134798664881395176830748426492767930037776654937922461488779442768667817839212036279310401421900269076661600778171859502400050608002512246234442548977979790948723130324362944652030041290253759516276919224143868287833049254188926299722855051621883150037228908628335364504344859443204661902615761551146610897029506757582729769714993819865826376938304316665154935685469336078491685535095719090269923244932616455321066995273690803484487872831398803549349601921874943291972882075204415962897415286876149479234246100999770079979281633310293974233774644096631901364830104616949415741437881919856833723581308018707677443510632632943595716295764293168008015178995903979146596495842487481318253169526818155369893785306123118742457464276803974700721610519352406039660916825621889727746553236028971156403519598448087156038094796690631839718358937406147827035670206169878664985101139019534523797914620702973749701355354468983460954256517367658237476385335116486978688169642159008452047006195940572231327772119877997371036303780884172443820933835758336637337054111138641039609757321066674553028683642490670752875606526836857308559914302074827342012569561067865192858781385124413957737383235533759529132367629689247674690004505608644167071961827719001611562312194668059651211299895162880991753929581019972394494915707053358025362435648611177747203739485802697721539005361300705872982369741395047595562552158541747380700095156382404428234467315431040015109742807549926101462848536940346487345496681060558500759584369709202249539185479425753405841752669893027533868289074848421811599291304273972151879015301489431268500102232671352049553442297662443730475308031405763322521763285784330519948924903539069309827081344843792919409879923874487379882429683699497633868779628880387621462940336801621669276725606714052769526193333348532209698707597352387445200175190386662989042125502361174580157391498885863530888000761219197562029866360672551235120146260927664438173933216860938519665270761657103528747148126983811964544585280678076308819384248936847799201060602638911188121033586171688851035718633217332505316821242025040704803907050980833505319140890430847619834448763729902166935461748044285912614689452939927911274933027044485607486693420599082249529560957056081693213218004757861283980501886881535944234398196444356607623838455770369303692479013882150952429361850103751374664977261158636096344977285463579594690818385222478288277600568692893935690890771783299762191269991280058044891074084693389679263256601136308242953940304718143839544836555359692198617683102867748889450671092344464056491377729410818812632656385231377054939668836619145108360024448908779351429294615365176545050339227253540616736630439568884194752306616565404061310757222486282727247505441448842988505666673837694142762452606529352187153291255589742924762816127404219976195437299987706665941004243815809846725464140882904947544545751846844350328927635512057570749475822558884447003442881184890940333777774465091994370294074622495989282995195090831348130254059886210113471337979639622925764453706802969641205405955182169214583553642972110287351142626591027004258847682053083222650234562871082237951937741872528565874752174839728845435282167810799049592600481312337299217563499249621950992876730887921006056363662570016415788401875235944900826973575340748109441288494400667890508191848028083742373315761870749331112335908495898036895966239148744421347896270301703334374841146894295183168481817098404941670861579471540508655700353047599484608424704011428096620564756990496406762269908533603545067517590877223079550875961418025484093690454245597420709563552885292511066940516108717044667115944448281378561749393491518839803490608354585648241447983238369379063277248007596146582933587132268601650083802407609811527652994952326296005388935342526510793120296167772105579424144593576469967345705995893028058997490240206932375164956694329584464913558438957783824373363149932610810469727775097645287915055538110239175072764507421866597793961684949299986457380278776211883749425009342800329069103749796463874899817512325741417823443520543936699138740417082237275847532047236477639026063278920326791098858072962488563538736524586105596955220746397304808386625220046681503353929627810071953471737264269350861325508962612860829084916128053822784963751341024601334005571012520324841771696091303259141692686590362028924392514317126674354781062970388838010150835885568727010488240679567432109185308558283709603177481676419788595922106562358182684160867603650634702740491226420630257221465083177666045555614761229897286965784374890104863008269080467798769098583758817076365415534395550857502360973452302978877874315313609749885944453414223604907382735159342673480562781752272264310888484866919590528466773174863178669229703695859660750615172048119014474200308392166049683569764958642232024747695340996625358846467982214327758169870174505091649355184927631200678963657819687607605419004414548034117054691145027146718987338466437841096282249194479794548317436777535293152515619349820393703728699028795011378260004863425774197201592810182840797451519279555983519515720746718784879474940348268257049701808546282195309146278668080264369988121845448552282796536185596595402416483393355093149207116642583263182787482819614053131570642756912908229161041386008240594723770945120987364265990584400520203686997133390719888016960185252249597735004639612956800256185486966828391108656247873945944602467757356011230307778198882362196294415927807711037092810017308545478565602102960308939776591715915884878521758597420761928738589072919235824405154253819532341952849603039745047714358087276622507083333612725538643493918191339298057128470456510055047473660317432075778557398611495737395591661725991694945234131794425703616877201820568532024389065249440593924152971294266644864480062492727829573600910200410738524826975906544593988275886546308508853704384975784966705261403651065618265342472371215350687759551232219197210022850131492634715622233044757164615002131339015356119780561590002995096585228178793091762104946904459476524236235238984424727135476366944745891301179697911813567843165942337923435329210323985320565343635620282943782711662670431145260869108735478779607830986501933097546257775074138219658157648772671784918061499333885745946425833556673901920742262577202171644701990796024190712416714203878588132978968669250351443036601647056641792071149290823784355549451596633827511593700722998376431239644078816631610928812923206352023118477816042601201418311953975047701574510738016812568668941952845556439182463939458228651956102644459692595846127726581643749650519045683546252175834493467729815470848166034430534034087546204515945288007225953178677656596810975176236487731135645978797869414926055735476100090299709189166642471148725196271611361968270710141541400294977572393712013545994671957134682055344151145600936434572805156961986315479412057599804388093539585892864408179154537064311844865279949220120188126313893058249618127465969072368597333081119848241662671481516940805245526335017932958569816513771088953496101515082873299402030540642587941358921342162454776676607414645589426495673652970577068975343553815355088453637810286531456982069987262608012781522853223981855935113103511998091639633831114846418844710792693875938189495780608365415211345340632642253169367083499867331275305255446777178622279660312424137285827639518107430952488433235137925638027193064048664384167267744964510503883411952688683127113459962217482125973888044294063803647207636320547308134019423529294650026374817451315137319523053038429001920838634373441262851591148241770289913371363183151020153187028803024243926881687398063500997854453606763104389083238559890239373618558886558086824754126901150609743151824501036889045547430923507802561906482075826821335131660323515860263932538154053288248382174263114837905901983919976723615188546233455242581615452434461815730943696496881425680520920342977753112389638410987139481631710866824805229792768697509942289956565213855662441394890933561002458898709812049411759201915554248421248385470174846892398548249843238524934054916010471043422863512109500162362960629291220737490953454544635566986004257336909997961519201437516361220704898661009281980953247730429362014327507067348407768767302574629253336821541952001131000988523565473270829908668405771262812388363858374856565443645413230082948372576384980867173599625538967576584988855707584599891344840144534588107990646136451059565851716335720418323485853781512237628889057457994782822140510450789194248020141497484139353509644049746307626465552325550302796874836863059029731429926722957931176496178667149036270005252404556552022008323822702644328761952878615774771913995527979642178113943297784046510290541047100777521682519983078841178215394386538967856648104798658589857468748703980812634713178922129927220754006991390607583521712021279022613596251699103583640376952408850643353971854840892778196389221717288562167710297941510916595376852204902116399183249000136947760877218460356297973710539945445280053326134705416498304916721258319642616534218026487181965579127278841614326186488237063628699228859131517360196639953639346612106228796267054922781741614627533565982093261249349488135816278234748808483485940258081566989677364314076146304186407535453450559443682441199319687753899538454912298574321487151873642359519820317460555847914173653858803637970813660790748787200874210174112304376056768290680067165853871444987702615914814295546614904844439214900525884909172484733377791132791913584329481727156773921301643308570104924525412407084315312920271582187089026025575751252148840846150870963606592475926149585589779386653920904038524731051134365197614124363313096914597252060897897517190952904851809255310534506386652866688887264017029516451678070715376743736415205066744634054483439753832321722933495274350100455406218376333774403439404704055089783018387421201878835116237072326334273453966480369350656823807375997600130606389898444807338998086633396000805347838118527199207351598770471520751006997330257513948716783795384901955100059224005683525698332819184427749196904981651692092264864150634797078353958448709583593791851119130857607614343171049259784183316932234672640175840419334960226552574043395352111720354930026790729250691121381475155699070879833933601813925877036319887362336460621211916264939716904028062211971924205748394585797725910099938725011713297779118863494993206081889088779242243578597968097353055347563077709681448880365072292089660460754709204871669522424644985616962752742030936768039633008719664895887093677471859819249783826699627316312104007375672778053295130295357995887385341154278980738466289108901661024253094180996775684072855930881410417849511590039717422635895272452242792147176488658645329249040889999610458365806847245638250599635399051343774644876156343022757161209722462120736969646077570042954014578425268731447141300346026795465375481130553033376001626748524213996661612071044247168666602877275959481708419146863992713401496004920138445375677059962260291368360467483331116334757395522453927730143242563535396716686968959958241813454849419760457055388871912270051879063120819863719598903327018946980634405071907493391086648548786211539958634610077696954273337297769310007182730328509108550470316140149681847812514415410573321554507715430939219957079429576476187927954557143813367007326594013612152877289271983366454263945823709517410126527587908734022554047078912842408555372011032550733075788746622396105175197567021131620202280385896152274719374167221303424968421315175560714949246420184367243140544148987093375057131489195539432737661480498729946790943649606509407273435971309638703531933557349840105272548222472442670878097598800036599608832313314783226662402189928875447344969491498271333048464332236813228915755657985975019326119876840406403708286365271978085795199138737922490498219145975825858938083583342057855301900957233967981864250431026821324763956130787091227234196437903854852820018527240000879658674974757987731379300318935888455932456995637704470626966131687998543085815332030496621297284290995534286741468198723479652824871882285025636864331291390006553596190057640331367564867608568490565320678100357739336617252272275067465148431108244038055234225067819108979506395976030595309375953837070379211356189563869329029847475173937031549226424484886789149710040283956764808376011861085472432448464525005587125377807820624985000091005750908252168391401663325344558901891069351271920143916981965246106181162840695182474250566184946348155553406659512630230740947848773817578119805053299889670004305474787190181315461683206045456503347325388883071839344363498676435705153592194996384064041012765742830771180921233381073796457696093901104512049753908281610591306698258524657595462398190643950382037465830646283035310404160046365284876774930437981544297445198790051711650967295352474067784424580853814594379435633553686072024959159545302263491486841413141085759409484512317323475563206709398040134440629547290987675555307607273700456789986438283194763604412036517298667846492143749434533884760759660701097090332225001197530665382374729459789376459687623064692231227259848030772252482659351800706729163000094546947054968133552897648588769511233373196878011681001283415292091205784319308997819832635627651053825949316979503211301062597264320464557011613952986535385207057618018937746665830878093634704827044116899874163450860767229100837701293668738788545384500553111072524914853058321993314709915571303769720494755256276219992506449733192957648088800738172899680539896552871076487431033002860625581525660411877441349677933452120490225300091860020239038473498823444591850370107891522582856268606713124570884177325448538464038456644837015799794665638086524635089497406448343880392180271675272307569356168712113970021000759940889733084461991761483832852243241110064496411301665106724947094298373717600814778118012887137115223990473069569477033485019251017968910521159993878576782701911894640724247961398475598828766242043431364656462838346911663798808666793518946472796608889562094957130416595209043376210138283701580282030151996707580339000580585954165227610948854788875084261902979641001528861026990413309732450345793047683397933140879926537735962215488410605983888406165793359240433361216368987262748998818868064952218264720081815946592313736325158439134388956212349613026718694489407760966731194705119052611132040691456093376479340157678533713187769675598439430500189783875071197859336882008239628800100261749151172601971048809213819195382300392074155599416683339434587048210124618628085385003594024743149355208137546399062108308523265397001053300951003053048140972525324193693463467521589929833263448924689838727619382700209166885225807668839609660885189487793301656018973759190804003601589368782125027622704384140562067065451119680894273263758147619639761338929971465877891140213354166239393073058091899364610147095684128113363909352427615652577601867186427161068547396192880030970635847772490712867312696565366017290820648780676069362562580465450873369126322730394784200825996030230116050454631881030052900368039757186930733519058385124906828984486723882703156351023205367883531696213844920679495371777409480755281553476723984996647065985267156373355001606850492696661271147695157798594455700846304245657381751000818621761341627249673777088592517383464793692406590732495624524056758428283332541896709154796434986790634587129892551277067352441382981367397560000127406202551043916824548104479166516565746067144968751476476295342938618693116781873621167128754820162329518905567201567478375937912012086107658691650921399971922952573703017405127094680678990425468970025017275206158047763401753762662946612783613370311738929664548991265649105347531939672074700316558713180240989222803157556019275160275223237788897820774853990417275333137339959271673028458448596068388139930274218217604132565942334229999177100426095488638670207921319204990658312979645089206139213207466576413055638723105822169766374387833526878661473343079334159781824847274114380824843827042223478281877208138867853211541738666919108361834203067904894293681718275799142500172226098120160126008387459974559520016166355801707747733219110210527299698252180952533207111329700416062045804613960680924860715938732339906807124376550746008460414465068141589667761914228617921937414969807032082169225820499215543264542256321444067226824132711974597527684487079894573878260553101131948880825044632648259910339122455892932797659247797680025723885105537644366151986673560697258677084216262692913572262406857917475745799655639388875344987845442026672770667073135338393577834589912016063684880897124567549897036382636557278627513936919555626283307940624728382618330078984775061602372721508257592061438889203121049598297218125530044805129224473394031523091898574794400269483979676148724534466570839090009632685949655689858259199511045136626611177541167579784548029277999898565097302091595098277883004734433260454458453026514831915617623494634026736047915698424682019816854251548887861027744477470593002320957412068379603558859615975087844348305941145199189303083093980525072548302718971025767084496469938237876530843217897601366182181177410265369265624436405595888288492358074571655408234198495343126484947090613516944231724453703684730389384251661987400009757271256821221858273937286671847493469839505870194205433260882218653128520488524729509277657592019634337796349232520112219875994287447372624527627028296818039449377312283308410109693709054883331395180533318731258568650243059304981843950368286544711476619030553530639924168920401016629293320847773842456689340283222436488071884587996872101276528815298588519992539394684933216899350615952789832026820028455398331702442263691565817801923791094566523788667508254466209180354353615626393278588111710691106978124078307855042946709250040587077066812765481595191171761837233117938850938960571629580999344785149582850560548962591422651597324123901383441712987018095551673429042111898405867411158402116212775123331552056824577973032030071605702747975927061366719399316590536309862721590860992686680933247855289087121386166030489236200740302033879279374170730439931279850158760272889539160385734394636761257902064067607712734984976205785464848656929907397726299366991703572894546239003152925807885783838191935157244187512192099852717639843190267263873542776956647114205499859786206798917391838095055505251806252884668781650723588317871401231293228738239975470299600559849513599821055892453197799033386350120812470652248250616484846918233941944814887210699445120005002686018044503193146864807340752795838275314810973896944495277940263432551228835249630707837390343627219768882155460629166893252421047253181948840797705920772900969737283331760216460361927516024159184577537318563062109107334816314625627936002837552261225235504539447381451337689431988599845412046070695180629172129431051819207831460062941001283646837728077648624100953822136865395853075247208246115386050483547634732237183032706749291606032621194544002426824683433742900733493603243130844861702455392741977377985956645452193047608989126845350587364858034862815317252775579601691994314959823731089408921447013645091240760101738456276965866774511245820136740991575250356624836667998834373486718823244811541272006818989063294372743194071364705992111618544569343415234865776031683367301261894110944916654054437917279465092495138823160339496209663799407129164548617180043040776714211433574949571949330381805977867500455360858243381510443325581577152353801085712992295619993132009963386264075654796926136445971047205944039808443232397217920482396387255140979800876953608756488635378431845288916694686552450249403291045836126271743947085730098430703685860988096746298141812520717399497929581702410492896967877540913195267052294565969209107625219254637070431670883903903137097655277073242729249005585970541460175451847072308947985927336688873830834301172990870693212884366284630989409098850637075419052225967890480802176722197083592427386365970675761196864550502069649651547756747753941312351347402767788428113357402853202523788313234664146720322040125907753491141037263679967431921579776863886274985891539755936900439167562788606397460414155775768893042822565549735503233799918307415747163510841812154251067429022471732992588262455209593843472039300716098070716775164327889649843024754033193439851718638953228421537628130577338227990795438503410773002840835257157658034286543721361344683549527347186467500631024351643774751176647891339605871442869129193146304649783918221257793509045343679051626763761670266601498768316368483187338585078112931184375286202324344388402930082803499454584222955172859547064534694913299633973680647114885523496708906660371062249154188781067805971499781471138064989439332611716828791894021327575263621552214069494201906868743158104889192214108029395162882590249935076881789534708816076919935021010535740810034902165890196428541740581747565385568319167334510168727497374514594676386821295202447736751209215870138644631738557803157204381396074164470347367135337158581338084952915824171177051073357268072033477563597738579002718988417761167695106881756256650149931277379813665371343043401536143546824329079835512903127264768149855733566453358241975209471665731253112896204022002763299715212923200796818063612738415102366707392359993518012234803615432480913516025674572204944676666205319608690697029581041889628920918586258574335370585299905780002705294835241764538949675617782899103295506316352888123740026338552716234767758564126272746804133581629963722553473124321974598191943932775799361017105899432452700559761304984325483108052067564446658192885600428753396028870473237634628637849601438128580413293199636731055088687205238781348226026664812067043248757591867977738265023818283449454587134418985163596160483238922124174878474348029153752753602377126879897099965161019305014164424823440512276642143077154632952245274674878852289380521498434261872189356719104507557614516738847306421145357279611177347317762552396445109088382485649279298023512034144920027265038206302098162909838021468991129533650306107176014302955368474747339797545829204964887835322143024896300505978419790247050498274286992458252957560300509247025536300634358922584729913602242103617324242413214085240667565562756382249877444263675693663416243072568245253593060451991449231176896299965411594640892392682743571363507734275558718207778024980317099985423581329187386689985229858305964270178126991651329957948802186248145302095220769703081991715933347001742400391796370222794312433965522173759222841805160116159700957724419677380255098650046181982221115039981933646386693094276651872872221006225320004158297360995039196767239055297584067158247307196368085493240716893334592089209644411561553454553272780924307174617190463949405696686509103762306680649319472729616164415870959517382272983734588644445414908791250416728366225159984296446006968269376883923932503438049451970541433518909190863527018440959874616038409496675470969603766688994116784542611229558734808428382401035916643494293565684848656700501192624125299340910669235778586824114285662319044406532416771824910925890973726243241378815911855897598031390792292298619290643975390316047458419498342466883114734435646418670918282419163989260742187429295703287092138362696691937116865606147690270752344425544899295304970982940972119235186179449507060594026607875496154768054120951116923633033296036555520173703978642848209124932468169227758463871476766348415792674565888188261885641963612365496108884167873353117853161374552124756284669105786294123376889052524321832134485697476361315810685023600779198943152637593742045029853777978401784353279357354779194451768021381526731989486638919761658584177869965324589582446821541154852901151772450328070898963087051537861717307117517749873186213655464072195103033730585825414756269240101539067269514574669886094833264595584237755672823901648484154431939364044015285371234475624492255145008758784050095975708303547819591646027886889628098473550150933560188536464635959092695353372637769996662025134300044804707332350347224054512433207822049985039117735706256416165152306477637488806310040154299916784410909664660971424742896886353407519895815090575780231537911285491346145784536659862690906557244468316909281970863799565462700099901583203556504784092241199041232045402056141256274662037904474752843984827793828438477858709039719502619245276814521062873884127833288095869426773526827324546081869744577134824986811369150111952743330277878580668628833190945469374052525418194448372587280399384409250564234042306593106426858758029988463392225725114454474355240924240730650230615298907607613411902789992512071566916466995036491474421527780528328810507331367080695395819344776787324974603535302216723714313124116422606428959468654752056179265091156426921328474689893047911057636005410942508353495295449749154200908734598132551621996067017326789720081583338758065130995685354748827267213341548330890292027882239119824938432031429791656249242082748359267855356411292327530119976992669123964816939903836927630987384529577981460885056290496985061346042257331254580116815049868953779311594012102261731442530350701901741297035866694300532622989251518218998977536209043143453115587348801543168223068454042644563795286227361135110239222600313993018985948885214360709991195296206093487890636844908438309795601764321832886756981498726468276963720730117562174312002464670285647804868316492667144037859742088542930216564504138609570135635231220039151504736694521206464407826847062324411183007144900473414188349381265346209605211435099879724431674677473345498917749933782709227943503530837442622553338478693856844678257046049594953659237168376193261042971938648816795071924248836113733224603046368143399796700200260972195843967427929372336437295035495386998083386404613845429614826606948079646728275482964102767912595325677421854010673058881698564059311006957006646475794322564324189061909945436724949098893767572442670224700322618421149494172080002879230898195861468612765519654531934553388334223463500987861463782925841624560261325455624735817646078888765374027584071528864218084591549019336532961236750903238826288498302002817784036040656639171687681540101573541522814010376244814322688046587807895563126674016023196931711106966109547618840625345819629965066282762034724445440533139647819096691441044046805020447776862157717219587933984172044591242538865706123877500709315992588518650287943147903237991235815413566703287708282348325460022692913221861317047304427609106869826583643647019088422177620076524495251629594491574281434476175540480804502232317239262157464499391381669903583328102584738169254077713859687551640106562600811815322228454472366531260513042168317302428822370659220630133422116127146603933898865343091357156500955081858375761916071770013367503417762826550275166749702792115946514211825277468729694926008139623063874055636640238870903448926745024611797495132772642363824679145619690675470488158995960225921369850703785024712855533522924088787160924823603720226066575943746927252984374734328216601971817664632647702334181209281959746143512070313668961310463942070896907627452969426228032678977047318422350455152040703362995877932370150559722044434931723480703184371083632238506289946667010856595921005604911366077336725930319189456769269960330339595832035117131045556545444942962882405559749619271429994249761608043766973038594982105476885921726669189649510056050421877960439550871750557529382330830688780557947736966243695699159986529395372745007849905855621874809643278912811927145546958127051683332282172371880061146050097348721938734755564800917162812180820056541120650543659636091450981748659120953419357290787969110515908563415419585356267341860288646035733475567754919406538778025284835887548676739264257737139937398378191326455240266834899300820733939343008446505497690104746787503437386838349307200340272013856721807592077173763035296239660308250123361238683977285228981125771819816431081888683287744066602856440054777910144168702375291675668387637225119570269397508172523055374133127285235483843925481224960813789214247605123227663654475148114513591388824480105127096167719594595783285746285250639883911639139165943700918842889907296321549706487457330812108161425597144003428951250988893360017329259727994224876673500427099295387862365860734853613110535946525105272046300283599480247688096790600568917067471607780799246910608851802064326231250428466918674515875301404172386404353646124783808384082183095012917962670220864931851185839603925974623701044106154138323847593735680378984945227821820083548846155459026228269461559431943545750751281757390155737051792639029397300821062028684356714203430983422579626534248908083192526825034236696575175600754146956200270753883500276562629764087486300396122974300406109502237250692776840624301735281219972220960862386924051302608412775389018289855222876905738288049407837529581202376890297234936384791476194632161239217768782410454777082914507004479911691783393931407114572122322079945688047194813431218096664444310659385512988607868015870198136657948393836515593682972271930627793576386643798606803129537232460158401242622114767315753613074375126112490464604397191613991751815056017036751417063682829094967609754353957710699057416390599680784116207584218033883655024234854473551016433458528305308307079353163622760528203180450849068019467143763426365721336513597739004196445441494596077200806126241036845026963468119812244596195831002009816813732132409076123366401995149708192022829803733579284952118890821495803899501763881705017715021270750436169709759672283591368630996119466605373230072194993204195963246036917803202195757983792559615153384565999049784521561288699970248506807367994915894839251628212525631045352522243200713247823804311665073923116432248912821575830098616859570444608874657947635746642598853254649762904400882456866773274000269212813518994164691776795154286901533005473991579723217650702042142732272859447097830031731097540423036662833999798167279623935773608038527929153583763571859285114197753132276993312958716431822360033350418413988075026175363584572818214868960017834794182528001254730951629228712528389217154639743109124345881549022145580663204948571083425891055467667190267990885397285613168126876025233846050647058718752577844803710610235258687110719843541668034523345885597118763234360367433000259895941700657589837107233079043452829888941612849082752571703025720811032106035823293578813574907588343306229366271583696718790888798307804283100712962997512279862934546445551672709916989462508966588592630728521747319952320668930968723601953292981097580123044228945631249885326894867906475809958481736773517772489020724086468091468466365453866314319337821196737711440139653961815452785658635983048937033176638047752255345349567416100460797571369699900993948720167250980883005549526746723439944855032382861687907571099776045131795602318844682470599538987987863795129547527166975332725392352160146150123978196086220313534818192044153270136912503747089966264956079422371543551232205197336653765020118054345054562470160785414869609739133585491584023010052067067910909777532027134175828523705877834467239706578311877900169957775757666920140082858123581347548764659401261732882054132804376480829641801067797064884756985017930043598740703244898736096537958320556769815676860579541688353796026984901477210661555287536818909127203204688548290422865624418298758113312152641942130838513194295366342689175926102965393890064704619969634730688141029255067109158341426985910375583235520514741013898310867503672623196900360062702108335424053283600426685114379070080026339165803611971047656407872254735673029651650833575965621311584402781911781164101833085789215181687856956819205471126013103208790948154824659524184538051170015885890576402948035826605584836708498035854947791727993952939353930881129356483508876518121510202449496790058158927514075139790247043940307268881148558310018093209638086914375302376309732441526230363832884026427153771720228579597346207231417323297238521328942188046477301956228414674334203604614427594821878583137970669357182666029059566954177114992666457907105617022920229941228782986263888011692169074404195405178693479171135100246053434146082163714877821316368211051669481131273741219395115146665253456265210469493134650641282491180643559580892851710413024370758792973349225050851920056153126012764204090554791048558096519180095857925327760390776466983709157889071571212958004706803780141290013949273823512107602642929404108271267933571304069085946356492348426273448741653896867047204951361629221131104757771396026737743327775468701098249279122526199817637286205318702488707305877789214707629721100183547573210621492191018117815844846928594300273919081059580678885128363601209835372163318413936107848867666710835662329889934123343775289457229950325844504749669412600691971911877900588251499516715903680186347560774252844986779444264336111680992125750252860635779709409485788415703526197163115491996126446205396453642319423639800840882416686625488748583269514681942810096031989431989068818874326382270941156960467466770188433599188116076837863294150900365909517669986959881612373542494107218973785435575516068403534496743074657217745478524651910178335131963510492481896070538235800368816766863546497897201016569813481911935212237730861969904044133862612423260261869755972646792516261088876659849137824044614943670759448471748154849165983758267230427234099103021358737662231578813263242469857146643899393345205467746141002540768174551209247077636394464503368792650466249788017147588993831255456826016848950822243308391515574040131904847804169253556678028614065476223512412535768212640542978581667472281884659302869652950336162554324444791881629164516135961556970384784244957683908948942827802168999259283627545372709656017599260000118203642094374332010176707179193078483515359845013671384003992693695954923226675805414445646858576308178153848942045593185431731851068304381055723912100686019772423348535656280490408400568337078394139618800671051890360233163493434364981610136374614542909583613124374062041059876087876071781671350977072878776685117341238898249532141946636701364217460265736110753212204917398070720928938635343496356516567690775792646624567430514246919117838234859316042956659559260570374337465691195338485533514771779914841236342273588641033811056955746587473274998741723392086033866771495500871730286890733882315024894151123311260981449182650383776425957686505781108123811322511923389675474315314125194926363007191212419403410197714760904098514895982799079406862228849494520881678851293345963468754491925162832007039658553336700455267386802107074049918464891100989740612334043638441471405428272196674334865895864809627233395833252943992178129956171691909351764903083841749889254430179862373798919531137641266881602468083675513004669094995831037421910786779417453245746464547640993444201508164734629935491597870814957323515369343930776937477776821118082306193107995684480204097896513376902134842665608865428745446789352665501116408732767107371508611929992401736878197025291354306344564360005563463226910520180625108283607086576024922233164000349662831192964993305935019957299510966190028821836380706816065004181761659388470630362503226023309869229984461579066214652441775040450096837674656576221638998762928127418565696163389210795443089819344939608156704766701980604258847703101628943472045878382293378699465159313661446641522979985524708085385786943794285439620358377065405276212951884581154975853796968473112850085512855296761217697101063520930508480354627084028372407111874001641272796225456248709972929388206792177970999692716508988841724709354046147882390173795903655261433302292695858403697005929201029485775040288044995745345643732408543528455086704805725353359029477591507490679754572193080412661819190046667714718313815676129414959791730740984932644561337378528476484838025966292407729653613323445398410425638618739005916354728294953622158205891317873688246765084134176829079641429847648316562465111857079614325518235311916053915296385184799270480413832619966080375825832960144210285282372272808003978599428903239023384422146074106768841238248966798306537618627700681998402484692152867103574595718001731143494659827439199771682551673350555751792159638922889447429047427731729431426618412052499798871074129288098608901768805621873570248888336751449641098885543557175204147843619957455355068497965389403131842143860606754628222137360718008254066497023429221600092726938806777511275402089601371605877866617921596493016724629559245298977796685667395365251947904370431502976561410946448593922350478235175627863713626801287816976404667523427132961751460422961926001470373042666283223868218413877317676987254039326092083423645997884557740079016614955834014091168404545286457209590132246556946830781939134150029915656341186116476189388008591532297712925285920512550358875738302057996469667945045241960316031826437499970467525449616399531300832216348264684888755051167684677245904434843280887195445525942032972754367019965817964747912367563945194193529752463025623804666482733824794438198342755179577889235626896257239587034431014614095654233872282659695294112045755344852071503195529536188309358624438070508839677759949145830939253622796213183662684630541854441573089149334073587778518195904331350837942609124453743481905156282546019833092530911953090643920712617023833561224388628081658414512761024522329433831106469820251434247050594933259486021089985675175253874543651301094042589451197976485789737376991935365354494187020655259530635214845630816692061790972985180096886085824621857234063306977063112592711930307352747186776114141319727654267845056316743590162955916362421812965290118935347291035275376068765491239002831145896905094096010050188249859852607263408464367982631236468650130317932888506370813222764997731197434332748850961461854311252140082785910025590239894477746221507919591135376166779090210774028961866315534493840635470363731144268310691196298401016631698193008437710472306540691431384699422231555381740105626462239115187593445587414352777004061821382851782230258452635618547955594726742012395788961353923254939276394471688375613111235729715762794932310020083736156242548711989127307482725383311253264468878407394952995522713949075930404308010967360947719497211898146044275141948835988682890702699422818501171046932845532646939274193721818060724212826228810153196809045472706024969733471416635875207345034572089983343625461381705016853901417752938839288490616050035420630451794916747851115955704939988106629982312204519163922976510795452666765134870131647927370332827747957434177048187868493924550180392678454843787381713136878385085213453387318859727723891809272026918971657086821152514266106461372841066704162982429908692484639654763132520945164358632435688269174092128274986193222369622369589745857525587501356436863494828489488273740784636006307296911233818973495335262204915693211210191146775040020876434693066233742186913595669677565837679957272594373566313014445749986445741237335808803929897431549180693547132679294543831418088789577515360200295852353644942653102646778906556538004095734734174471481313478162323912152222265832401048120137107580004110694930174709737440708747190232297771600573801987421831811062529125950711427814968762184257893695786470195117484326582485083766764289590581873920938032336309037320767113498263311672007587032267786499414662528424777461801905421671860474937148974522296609084028662829651194992356957129108870663464459915026388221813038579647473678896260477064430589768762001768730657052535693500531643772336317456197134435720452504980425322919507554010380816427332262670703597199526438050626872235776492033966212856317560057837598346323270681237626492735216306787248796678524034359940018905545724632646204659866339751831453425111507939409076757761477366404691453460659285966678357249525106765197778638690207670592738682745971112573807150484415895946026471107730526811509809085464200240823661886779931732632058759892159892465459820079672530000424221929908190762087626965619031844234321437976397362809507462693362103436071749272106862856625118379204232266169486196826800446118163504728389932425101752179293944755622808559506482769894149060808826074096480011718789712034746798700844174443430805497722244643799457267915826909444745776067134210960738269843684059077633059529045389881303154534714713693893503522913112189382498285498872337092665770471404785724318025523992324009365329804801292134857949305228353404007504676650319804113532111347001324668780943585170099851687144037961289964292386222951130669390002722347197002520018478524160765186781638825004294383529460227471219790653918667074284370486070993321537715844502341079240168731223325877135513135429797360988738955960728359361130308177782786070863723331068138043880243382776496345157326097265543515148914121767551973717808659023569509549764315549274328182378822082747606191872784661647815195152158077285432258578070833075245029950609505851138510096937812611649937712466275674662749360300653327934282289651215943173800500903520146225975119191235724925705203618013793794953456631822246061219247605572268085021413086936354859624869669797938358002058655299842048877020264347165768640385352388662479060885183993155190385125497472443642308938049947572157561291048314410768368675830243741451904510924051273837004759604431768941578932775831312698591164220511289004986328749308583620829801678284059056885869665620992907604703166304478031226487390296961622429118468158411031266951944437556221102131598423252670102363175514875554490913966380930649135998189456688791736669475093225541051233409943224784630039127125406320794178253328953072260662231461618161186614994721885572695922711196698958146740830674442168246936710096418035993186573453982719152358511440415453753292315488892549548980994620019032726761793306837450225393411480053775446221531956905187323904359571261278705014860906659950288352558945050595400639195122399341296844723646636717005058219345347220013011202555588364755172279374501030381906306152435421132884431063923140414359108102551508912708106619667693962666592197470956104014505859512746499774315976081541403523731422613976285074517373463391373637811486829930885484983784291327646356677755664709472530067233073179200275393749975809747410747390830767082651629617477539630742120726282602972494807475790147928128060497192053490427157297826532861885244432780785757415877783105042360530602234801232784901660909670975152261860688318142523373504872433588551628907286183121510408434360143337359104479165579255367417532311349647666710663190287673880358298801250010357535581696396323501470254205294807332075630865033354792100383554213347198880583156750200773134205365813075756150393325431408852260308632634143133894366926862140860144466708721888895680282441316540351454397421261446190197103961130668038224187875304609417275006183755312534460065914751069506684353125711877129224426909430988020614909894190716093001095611641897528821865879809179928201379771210417094598561612180819592698063286251667006779736919410891456078485663573671975848905330290811162021188418102290107403509678281310298425914685015378682580849636013667040868422462552046621989823024803761454630466275234661137636340684573242678324174490301768571170794950160917798358424654506751870404428714295627780239734865055715605373961667978110427915076616646326830760989628399969596131779456576330393170264327605844244381665932766946743938615752775634316392087092190431282757272175105203120987922349532835217080015959194282322782822897479536790402435406276425988454746060848132776496572035712896085636455879670442486196081649041803017941037359733961491818473555269748143430617764513138212876466983913228471997229924717754141394181698835177808676056165904208748237575871372291198347648297718247268810359752642962048606954217704211252696296682807632439146653785604500203887378530474314015729732826822332596163243505277497316323424903065102386817136054103883732475422580207849837373412120531588165671757330000234317829922899589246585976876084247157155456692075075400819400628262930010516036356262521820652630236336601312982701319642254802115816905249605961273099009740238799356864299595376425796901881094406838862607952716490990309858983868811910101257930665613701337979967490432047656327979825043003509550366418302663288826914097001254127049159357507713502704033385233018740798886843439147870587483758913211388924114234245358645667335852950062542621839898089517322623126080689660979330350771538560031850900269974462527127854761132737122349182330677378634261101619305635115282020244266610331725269849193214973110634900036011425365543289837622378107010724724773148133951461982873581703250095600774438460515455530769535039057231985177352938030873275195036591617723988174833377429972322787561269506220278499708374608451780009859113670044067113095831421692280703154805799607446999608338421361137159060188955358541373555692608900379772587729881796785220262637851447290029194781600924988038060783822258109347231951143738104747345006072569848668793400708931402092084076958386716180221751477318636400942238991548517647359496182326494569015467339074535407268444854456338468084304525851340092680010269064146882664889659495472815194910804434685786426527307813346723071062873677931318403049818412130117454870464998075066566683006474446760572693800936925135154834608619947124503280718711004407762458714439882198671827512290863097184604263915844204033608096037282142639319260132983846852763714972530394289878859501844237447730795527593107374371972976143409841141498161745845751979489491741637404205437385331388542851624046331038104448068444303038815260078499263310259064012557124358240600056278367882316075193144786643221967024622750227862994434328827864221792850742353788601505005846954356021242307411860976916327062637474761931513217130171087482730613327543541833003139558462665428523352073890429436011307061649296730913795667779190210350979015073196939039400043902152052975249628676028296444288298977365804883435559698078645102512763326888933978007076053871774784517979451885098198930654553403588695916022379412394024935673593521434520954818993223326206733701494158681336361469345980558176397921686562805501994289576115936222861156451034847733375448187344653618703832631043834164773413328826637041280270778474068713944038714401164327905433264576350891257752458451481932870681229357181642446231064881885647521944465881891689183275314902194063095735685980842064350345902658861490771799665815329468939784497484560484317653215368120121083047544463187577000784819585194059380816089728350807069828430116222056937146631099459488434121770439586110318473088275226938965015202204870166232037651460723539271227598681258856192846340266041773726681752662436198012868115542419108780788156798636927891653344435387832679348815074854100227948170149008275628898921834695925288414669634406792991075934526646311698582998442978980548207833025423075941586745381778557641532261707534507494447844744262969134334658387045026107362525219023911997671798793576408953138962772389321795811537053254220655972105770006719183484330591481870282779837629183601925154213525248993440792869853011836393602172504322521606579956763888445641066630681965985113210809853107695150372608273268383795709508430225480183649811546338579394206839880505916650335858479943133880334604568220813386569598497040249952101265749755768372645360474039188289747076511725666441515327965525808358088210008537016163523764476535655862874062917608169312358078978251090452088962151335855970991732258468981004093890745941647680143370674318265348282418471784707863426100569450328447493626841333258698554539722106636807083438941334794218470765998218235597531256831405534798545152543569787041511364849141697451634671792462678916747359811199760120856933282807337193354435989470030292555675017647064156768399102844535904959833736930130085214511869483557545409064081833210120072456405290126710151427169420000468481464617174872145168901191342967714956931731972163837339234610310962215465083742442497558558036084498960144786546463954969486751157039254921826954135727492352400105441162357754808588562155960604630176618186008374266468854337054757788380537228646650371779961553841264723414923063594430385018286465085985524811333590994154473023221439665922140680567568560428372938015283317871938173151868351687700572236384685363910439584377409257583616342474782862875217644607220844894193722466812524223788769976865792287256956412963383098383214248522774463797796545819406575502518081788130013276935684417429540161275468803317451364763918081612038091650575949245420176683134427026890067123712407415833666110342110207654555066150668822057735023731357815994665610241264684046496076135149690112879861261348233268556092541123458865004829576525328347313751727374973731514255351271965756724413111856733081641868612403664876003545366210952638764449727590422607636775014189791324738180854584291818646408975386318525603419170664547262297878358507800058153899756488732699296699996332629317550934443217374664578639785442765875761073818188980482547073878065152472764251683091026012281654077982286987394291030557154340495918380279384503008998486477621604985824810622585021472078331861008694082397542884742431308837082904673499507068403879465062400272158586278306668848388033977675024629946161971763195969648482527390637675396302679287566651694103729650211363742820485231156337903676298706646604988480156440458209519850304269049426002840926084780234372900120204196678454192015630932703040780781514976960832700293018604530490502749208386783371265625050970915227708243056906550692708002918931475987946255527130196709884371848883049743931616751611440387436242844845885769821822406655897052610399389232467082483144300230133513816687519128764451790110055991269449279672379530400505004646980688266195216435082472138143894358591058689186981578386171030433351705004660262006380945690185440532977823807417242070750503898500538527831423101603908522624352557581310098294485679036458971651799873740563294945024172878846180749138861612792053015545692272192396288961097118641864835426789161954828758303350488463100016156372849583037031893487540671104908138386469085206825668916445479480379848901892625346960916973340304174832776910035456646323006400092334472504569081729402856859024124984899523841775407227226542972194438284415674292247866707149634086210008918075805040398644347946516022899338146968050538648184017398975718566299457952484371409427283317756725169042128211237219799263682918883415587449658433294396016615704740472908411847800908488376324439516639161207578036290300048207431476262599985877707858000495412853701396385869638884333852067637234353501021909261524659949445711185371103459020453173275059190088407633986828941195670830604267218849996973253483632352160251190405309859855348208097617981087219472608302355283894325172903557899867755795741219804913360045982673741766525436232319465850047934656317388598662214130007616265801918883887566116984139297815461369072941818638435074607176398502548843777972590163994733255964867903088517159881093619874619162074265428473842235841936023502390098784571785676796191769030761304528371990170686298948017797702476646779116912656732163134635024704183061545031799965746596790871059141267883484366851780957612703395682464125844853477775795270090603271335546953668453148230160815482904550259207034822948419127359915678394217579306519393626951958646880478553448676166327372524469160492320964015021004574927776116793863231214529040926144346073128025817337938726356093877573284548581028072404724567412568474024875040209636535883617481963455474748334661173626669548245494366835667368721135102925265512703729857751071929474210170386289247761957731552451309279479019312096094893633562392060729644922240374944504969051526143626329947374336558162687931542762493754706211670781710004209663584373716762826292132248879618701455012361372265478926345761842904828571182562761324325132935714066417798013395863942602859739933598316466966836322420019610590718800737453792163571061062853835655525530304559130562553717941395986083545378507198893623172170875750453520030821597449628708518277833990374334317027464729573758923382744377822084223122111532946057775296877170603839070832794612242093469853822655357141871437478384362083582595514343939076024127244078142514581027703338645612501930965456372358120916519419968694471246298755342880026765020747295741041492931908419395208514324035802259419934615525369659789105157042430887596129895861104274524470742649119247780690053266863309490315473327806958629287554558411175974118809092430499901923838273870302065529901993247858954567595198794629939812018446875590300600100743381799204871822859738786289881813005464578233548725739825781016677133421131346147799919384624082495832387855670703716262776642189414022721164328295762044514771016802868518060083060780946087271684912329084185832710592425221881123645419942056609139973630711898308986042865118128043545988513239607429904948810097870963185504884155043435170896256613259511316022800753655102987590825615247021085982432896025014985555049394351312955540194357936758543191677670256791098280239042140860137705190400405270256732870942306412586486538788955121538946478237617847720448072795064503765865981473580804526369862512951730602516422441670915901967751677799968743759692266549395806766411392335256537721477329709912570849393100948336538212493877034705763499972184192425092533314624378101136685718384167684454564294055215331547763259638115428666695628479858874688551587631693566590971126308757461928762676106424213136643800345671849858315056275402805952675855213073115462373520872275789466016195270462912058608768794334352471397294192647120551842782227514256851440786441665036555989681572910553009561406427444763998491500424068015152819364812699884797225374196113950184749625187797713148175547536763685052907514416259801066159679627042561662274118083038561934276874253020515094955927741545283537329916319518860891497422550872164025940120690901876869636979688904159591743142025258194354423005574005771085594124131753753501640523798550230819875411487737955351413792509746580719909925584550928142054308256968493933876899749058868262148261810790800896085003668474902177258797366845645700248104861954849574355101755056683205056444032043418018099079845807421373288127796279089759063999748940445914857022863052487977250235143571121691369506778779867000791764543949533856922964452883745562901943488986222066641069151593893622137047637899049350543793312869208931406357987409959271711945187501347929406690305001430628008005537968017891113668689296909555422386439147617194451484782019184136087407969128449522424689581241941389033187515348320824302392748616889643259914062851627337339113873110828353741332389280031632285210971898344804604909838867064092928468974509681532448416659441231238248644242856562184691066708120713382199059119918381408240194991224983834036428430539848172702895923879015000994379310312623653128078771199395658619400676553517807317553254827945633376666274300880723346261436020130629362629733399723086332843123432546978198344894088291724696026115608846659142748846134611298204566617605212553884526547586339993327751614305735876707101442482468004438375471988025713391749190502787398260466349582231637958304530858662135444476343526095635034821025894168473380705803334073458374392282100751247717572976166582790227192079618493387603501918461753511735542498265268907248486239548687764107739997679405107099260470985477468440546291306461343972132556749039220874677776259046083077482282790059853234220119727535186804275115552079403624322139714313741563172861808362395039652415431836522082106242983851911664844871694588418444836578017254600687729629919456805629186095959043782635829718906996119665532694057760578101962220658112601306092641392344643403666038128794749125186265186193944194172491009806176029750136221423461159048231225228954699620285494483348642522451004353135962949600638149106608004843920732502384261512027703888295520566563666617419543316668289240215991909411255448440950154766145917771027440882338685117485336742204414043226675007964165039736919913517380884462504255539263764953352364257088126510285421931977980927085037213645640766537538438763846316241233983711354023181431558270159301024604049189377229768624171824636219769110146931812204568204699162336289948084891988167959234600417803929377683617414644516987031766754737108157210264262246412353406676921187639527332254174401328565296666888468956833292561990346455442954246482013320154761202696568832407673387159851755826260930727639674340765369314900973772892662282269505703577213661798709273305695872648429027389983253721074700333365181679926715617655300199569905724843314730427794075841048595815299584940313629112825308670507548214270151556627122176292970187266719740931310442391434906803721982585567342341603068902580493612881678343040329627676034891123659085801794525193577299280097382881710493927021773722133942939407792902516162317052089623158417017873588269441337815315038129214132859405631871992347807668838390905576895750387239816303235425011577363309451544639253362463161128853201630185477823673752607497720494653056289536527843229649372771662360368763545524326976189136235273656992937977940198145852041186349941485513844915897363597609140390735805551353476667463599107502534159588824795633607031526712087097401854872263177136629234980639993140764559812137053973036275385950308251292115753718824396964381807738046758305828361364287326312514641326369323359854299185066738812814106523493542633985718351857320370560547095446600317396863967026222066430704207582180405011831210347010500838543397080331992230384215250154654927853235525941272523344022934829519442297233999930201136588537034342362233823066585999375022866630819105291417568627397006131948611986061925704593526647219712311494686702324665254816862598513051149356429008095541147072746236769916213950017904879985370930407097582348113480518530309484095968785825473016188078266896522873738102428456914626521101724899053185489462524193362929421936419084570100012707447010646307163866949887062573787661801741565232039837302481508174141930474592803705359274051018513202732834266788309369003954156207096946833079080172619630459887770829712672377708617068167541593326461521724967904590167956821569057868906900772998566897503973776510296922456050894355773570680546363249017027296397738475214910877873517905427977977068622101527402071731169030531848111480195129868910197314187913271278137995761401201394596282191021292842554008723030872974262031423697358221555349462740000095877750634297975408877754973337667749142710111614227959716184089336216234864923718334573029447884909146446664982430503563444611454990567679594597537160242129216219531337957637764769137603882178974701894228611488448532024204106509670322668522024591723441691487883657831352314902553579792834104387391983155483968215667815230976640570326084117803782300024811884718417580755934294052986872231738644341770428734120615340194463325477085109559966712452202919373561418037609248075207756143053947140820057159423283919370155135112240050233827013982946323196736899453704679859768236275356732807404634912341525679354791475061043851675907324051324513095923822520197308599174611871365643881018176409687569642041920493319912009899562451084413061662187208665584977672887715394442113762369364498220666452126143406599705145462648650612102755347532501967122829233063835646708969575392486396189622461443263092774297840348919057430073643875912941528893344804772928124451283720804922667117944732202086193713694250837294265503665823557448017812751495170714682352960618853666748977114692259982113736521288576842104464938813899000207334709453036883518383475880337418445677803065701558838452302895495088121940199848733086698140072004275534410780119477086672579877159000449970650861928379781392563740694481015908114699116578845049013240581035706192515590810019229728407004344859306789068214181043316136346434703749497676922158478736828446157973535164881756791101223686593248400385866237122851070620141212184202420592657197084491982643361828902835219868974660511491627500502232095272402229211927675534606977940400877039289708415799188489662519408104012064790677450232908436191432756821017490942311567021333179786045204628609479077108823934044061376951305418396771737497016081906367888526684029554235598434849760175218746636451621962826740322330574111837918275300392432542455790613905340868546319247408955374513221464338686593615836272662800448603645615545023620802541563693566603663336223268501315011174030572743269532537999192257800779570621794459152174475090488344129871022918423055948399133266402293142802513028386897718919794265100088308879769045899900471433241235111841177174473821358548661655218851452611607301356552612094704248778426385517024958489842107999586602823781553462852461405695805109831844861007937737717556353476001998984759051241921431607450648000581345409593086531181303143469942012181107141110390731743275322910235418967640318207273571983614695286667699286228457665479639310126315757768115192096504301904879614892510317897684251329586639779541119131412049273232671657001057326150270417595941683562475073739921007222295291153266923247794610360652712320944172836353247965825329743583760606744924007866489582955333582185984571683222862711977693670357318157014918444208604368152648260494414318269939666089733791982502583203969909545260829574826163435015492955128973837997447220448836588802791771951576876524978875710540337879096041384417714552804025048592214262968231161977769830187516144378877920188137904868017646403116824764936444661205370406813893130992183575628779432473691691785454578019235712056124053059041442670826687244219675167224223855953751483723888304441052713967526500061059184242727488184601785998864349584495867351087263776704881431062435714489116557192176474471314946661157409011894063537051480009457132464782208890248379117702495010704215020078604292587048216266292149028438230894165602539410185164614019226943184204365516876790726698955808913737417466531645195685271682523004144151165714341785055818948589603182067708755990504811498086936231217633999407502346143442547952300320275962558703615521495219961497543273317211675487020182650697308240044216721790862706091282872794551567842406333355119767897686539213945713811118959897599574421368269291790370932090445726625531340434224622084045206674133727432401646474475440771064013216797723720672688855614198953769347401504212878860900761356156355972966724134059865506681538507250673320320353911648525485975007844114285660344755925976549540843208616524541071729042740695786275108784978749913851877783271544588676987368093060448819714767615162348438365278607948648912952450608304556402370484188796035030503496108178634958173992483583113567927134451439812098189872928966278741281177733234260317050898279441273026825824368985539740360570776273014333169526743065350859054437852802168986098650923569726559579697895807984681093994372872547271861991120225044004246854660740429484397939371206157893818904944413125987585321883183360601997298054123664937272679421076832104710996629887778591261818240906359238127221376526965865203042790317387329301385831716674839118615165273745809468101185293415306550384998582573251686278044925715804047340857119739780304718810306881542862251280493176000622834870643758863428809275047115526805618603934705073340782014313278900707582775309675033238320589729020284277805278293764387503840268509049176515927197870203580283618921664143261266851206975860296107841001894357105226259557927465239490281053313032291903218319439853338806778495994052468626267163174440567497168611716540203568437877779333743593357704473620107443876708778871510398581504810734829137571384222383856017945756533357336319517105388521937130640783349524479142712260336069525240808580021359256360484046737157803776778045978301849429134085349382350094685770581366502610786530288413519550688204849493689872112886078238715868282291831151124900516541100273293675473471174274215571356537226814528203893852856282077800087797313434762250691037030740946828066817619197953933781901968270131737946353086843695031689511992840687663096970524773386539085085231857929085184863536242158581071505773590936994751216078031633630850582009193264060868466411689485708451220266965066858295480483701013554892200683906536166069022636927184279350874569759676217377602987947323689029532839459196606501314805627975853958155396722711254160835532659684577537140546932614851081580824422929027769912749887132255542201867487691703695449604823017013665289209058027822844182750840770268227855689683697549615485058222447946797433915214712420132912428278965173012031457723918377691699151175916914971026552077028737988429642957205433774051212499380199376599261621897505882327871651683920791085843503944130215626272656667778869178581417136895948189521820706292057153889858955996477854769649106497507735458672222107257694854345043347469603179145649360841382816217408242744273047792879891265930870073090648315382146167140415180956043719965164396962318421719172959984701093625907489607133537784991654182881295683863057804538957143877045474986041170257680922179849785448870137681818646599057002759286118340556323924929832581205447030608370199290005997182767756702249574798561788321399958577643541936995025074315860196228129761765686147506215590937175612834973268148833846135186004027419887354515983445033442539534048170281075142443372619981441314568935500464090600310324406706571529653863744863636411926241184823789014576930837129868962389891744303414909015701886904033919914794380013896551501417562526925310062276739676614348836905640408200617953920179921889079327533771928499358140404424933214253972412318911878448334736209504922495240934777157111395347535109678845319677161576315122199805969502468812123891326090004186176749279328712881014755065404172381604999357672411354127501555762131283077857526356262071960765037133937005722027221478601419815238183463126754626513293745535504927814746252761464917716557732434943754769292208953459079698397026011472305255352577792908585165428526219783836458424949869373020952773261979424906561914506135098389934561999616110197171095610871754935572851695784615432561882468190452384636234511837764953391401112432565676625872986355215493961716978714635866720411474650793063814522628848334928937617787358668591942569941499879121392624594003627621739790885344461841435156656119566533469187583319640185803129190301915242186557932782430522006539052618419949571387584530049251661402984556874022904220514863560325075589406205127965350768219493739705603483801616982457512043253755655102079993378336792742155561625187801268658647291662152507725567960079797790859245380290972509173073317699458730197635890123466304716157450975284936123708376362457195746551955037815341430846006779010365820588281164732454325643573317308090288321535481947271950199208625879934029735978282786729388645440569096239109143913814792745513322885374189435048955817536353218381969386729622360912436421801607995312515861012301862463251997549123131718296723098959884730788492026861236222255406299749560021745678189429973533146616160706175476776429360695367624319861764690562628202095750348484083795242307779156640996952461108666327158380476427962487744861529703911118965666640019934462779343897140184186166199263956938223111620169335953913897551268323377977333163883414228662817847075874428298925802375671552619869944991890421537075770944155290270446683340495469342516572532571527049706734449622334384960706508398539742546995908205001101103962350923058808382261893890222413655106204553985096718722920402418777743679656722359787340142978119618953910403572966765177614159100407807334299673770634719176994179534503268031782171420551064898931013020973455666296036423509370415170866185917299611149825343335699372551041745162946891084581906520820237660313975157549942484869403077816925467494568294442249207483368523877266520590761751113576742500745570644218105539226534101739474914670439201080448531553589651198321191643211450043862297793014585679558383464456114489827881813622632655711846394481049521349452263910603116982306848504991236920121920570128876416979507263421740317709966778531947543826444043024466473332266861869724490748716313637747570181805675685399970710343974951532754135666569404761031163464794397221089115862629662304434743868963951905501143378458590194832804202430571832330485993233646857864362912463216408884728618626559948041331482483724027809607993190410972425240660472964769266421587007868179975943346855196591262130256027120935801549110873024024178638563668213873985538531007181095489794799656241770334565460064977822816928902594642735384821970626828262043348356950395825319886926523365673025363179236830991993732644606648735736180075773893951356635521864333590899889455256269994401028680235046064451399588565835822222894453620887255041646866136241446372862952857207115667716178653660840814323213095475521044019883386207862034325615326129060322993814641614780853919144498509155227993095140099441446635313665869616977475930764255647413308867724739484905151355074712541921014440362696978098363934792734987729107371909514312264212041959144068545556475568044703739710284272784652674070161694277917264637770570363442181878593378799746979489608833170126344954524083000276553356979112032678549744214195097407035112108287743799173953419466338335205856574120171820539698119250253962950467568949019769805849755265726823193726746578000732720861926239790066351304135213413664720871705578926198960271156521216837513085404962470566555591274403510394804140178230638087862624958408571445757886672910162943800249000249540792000359599738504870663346687497766278956958630628999983355857714242917218777485983600270211466772775664615379582320702276892062125433764359159794779319955242897186768954365659826970026871457406628538626316297586694626628199013522941887031940306066866965396578953713473236306696447900549769109195462036904840425293174990506484919563047450198365492475123009827779649562556929440991591176313987457989209197416825670301899186523603822220883285964288640698686785676637270354030662925397973728330272116513213181846776443510492520060770336911734535842706908618479271604872892148174574149833467747097429003998717939107255377599757232984043719261788609439352477425130674975380538685781931569563086710835337338589215950723190811884795510732435682682166849063987261884349707026617109742682839222308092422526080798538068522860731425170395611163452086419223581167240811422929970338372038616004183535575061532273832965868586643026656173171515700173163965700284635583075551890689212801065461824776337742153457984632457225559334567072393072422653810516565048166257227839100334637387638832026176975636268299325694736731805829535433685087753893034197253387632041756976924671650069528232212047288938849712825573677430255938484837225426179002619474534486997659936769973301001870733805760337383283062293859442740688414149307452425193316867228794830305521113091950502405218212790552528406351636135359194179360597867070318001134050418818331117431787066279693241880262434798747411141690416540181612247279825788468375844379378618250578939035964146994676147701440054318709318730397283669689041951342635729659447655462009361541775612965311818371897204798130087154415801528791730492066814482319600537817270658590363400217006452934389924017311399609085152777567585837137353976384882541418330738431396912719767052023570300734827989142773522731326653850537765962598142391560782930880318963749980311206782376719410865489054929344167623928190848116366558645589046705910113704130320153514599337820501269080430865988146466785434844986390600882523240623443512123052520905945952498403427230133634260999069714309569405555880168344386020870434891352109174727582773243150837561829353199765688778990784335457183650177770093905472853782455572709681685949144233063245017011894481833100169989381638238262401324090446271891991143146988688195998228324924232801447342419058546409744381773544641463494876477324738859999991123471858529837744029611529460640189581671012611714470505449503345899814390917218598492214358418902432746921249263063091929153010137314796969751188013603678164034836830375917921971782532131709572578751869653650201060786468511926464564180710899814347161061690092368972788265326838516351038633344807319668544544037108724048390676985158814675158531637820267443066251051749727350755543575875211094385642421267784538696947217087586534978869573192211792765582247399340272132071449376030456507756393239004136280214914827607938813675931259147014469048769441819865781903659217092621583456780488860125588060221926695111275587281590228664240924211620443642389166419310986428454802540038572994490980546287080817387611588265132088695790737120435234301385789454462648917443381541483921270064090451788673086409826837321946452846693571159323385575921630930551107708548025175756072400992832913758967017539385488315058204954399316160096916682236885580611443662839395570138868566026425609072976798929255935261303678464270682319829059862229799162602288717266265561489427293332197867297754595802758831616338557320868476714872121818982832850681407237097449433579003018230143832488274698890371419686615805476360692124872061042411622588781665507346117057324404652507053204411129893106402858707744697596052833969088175291963210820437165514899613008283495704252358864624800404133685962748840160597677641882510844322304914314119665599925393524494486314458081940336142023968032791006143368281326635136972551824053346350989938657320517337786311928615277194376154405060905382352824236968198603360604843027040515720042472440970264135444228176601336436977944092811625848196770705961780965928439031205907346035847274741413091672416329164821774718920765700598345424161755806922417877974089464241088041140475176669362971620192391668276515567705064995554740836345798033955006402468309772325573154719986051948542777785022587737674328236612061326172283591181445598493968960872506059862971501744194041622575053217912255035933500730170337360950243043014576386655759601721264543123361640760497554406016752817865460090299886400489410038435129912620974537093635345541953401871225813145453768259206082962841786809485732295296991717534197352851089546914678443894048279285581656148241330527924329687313448687371687655502667210489071389393025469109328159491518291249115567863957401614691249712048686632023177254337855468432455562857576918129422149608196101075633906336906628859193815256501858598006614507022826940934581177708628091450626915890826984708966458606387035618724368653180153171250030955074440741325709315449383859134905235250612773831441452573148600655222425545907792469276895488951639295079530251106384395303893849756031213617723736358896903854795484259200638281222506522274413246874929696025191063372166275835934331321248951700488686142908155025664212335285239189283515183765157459979355900408741675793544341816583637728026751963430718494795357809112919265803671661287095751224637640653945489816377647299640291799085818491939489473414257693097972211041872244474519739556105002939670039646024367661003075794157048343660240366184501014227823026873166510701682724078043465564724338716071034889847443941877559339288699684315789329959564102544070210621192570589247525851686998932125050252762798942485578927943561265983701335347085664789550056169510986427279133143045792676227621622937444886819955561207211973235616203067511164161470998415025155918875729038421074598685968039536447500840502580159919212226631292474922548329141816211356335369001863658144040528835673537207055426912137038277447375157160934529132743844927630841768828064147748391329857265962435946215618936158699902663357783604853176355962035103700965940597094508093351108142555148894744065188918153727406789686856789554416151291216159946688155282796007341726075153007792957571793864821614073119209932305919086634214461869491587679297569556723869844777945574223986652289987818014464668938644925435952940455419006011073833644847394166656099704197069282965873705924703369709503056640183870784793901175724798786052613514614539573473436283389868934506816449501222838864608506495651971112101121688984991244470885448253463356050334558880127607931517306572669838016557164870410223543520725356408796789330219180217078035259675288797026910513451754813873352384686909872442644057244417176229402625683506273418026460024831124517247205337486947551024359734574979054263082972039859644096908925848713377364429447969658569083187670625030940853085144239430987847293713826944357535596801705693244135608041651192195539074563075569168273400075771506415274469748795734105312137388872345495512309734108055011816944667013992333944765698292476705210891024463313574829647718123299107892662354443660557012259312675340947944211623030286918288088828876017016259313839509721165220875241332559610100215856860591140679459748856518591292721043631104976353261974382213133948402614075258793345463084212765871874890120430500238409654837030986614288830072430101185438505707334396207637846022206647399998207903480266991270002320450515075272060829213198210013621840849110398413938801266647971742084469246122994952771019904635301678506083237066659259461784155072404976129819553962643717275766963816007800619299711022711896138391048963615940915714100816122092123004508850303939085101946249306237693436024632391511268163032395456167980922892630775256091109977101057851734633393901866664031822889251030987264657983896193991183724610070412682227903561858258497007222270917690125018792439301969923309218470582035785137490499700414651367929255006622689523929747547938542781042151942335139592045493692902538334806058547287012474268229445687053527890857882037855495813468885992674675817348413684391958522919552324153452186707958980900316325390365118519922630450344177877744951202080607838677433815246593376683988707802391519731835171960477443755757676168913812121188289641136358961252960147444654949580733174760746287247622609014060568086662469443912518232955683833296764800767880560000119931605790587227277391176202560399733033598953203240958636290292374273049395794123742383702805335338915428042768504447641942448539664462430480304447039920278679113532485086791483815610680395513298896115447012512269652349680073385844519491932001166023097964514704408812549149488341036288036870815604481955748492239985477236494415662754130495977319531060175207589810775959182731965879923063917237556994334192137605416368855200735124669216257649456036320231563844978657405963333909982178170030767495690628932831269082435720552098004860937841313970361318769954044344540610062195997903958349341268989598510321098319675638245472767818879934273456395438683098241365967373448480577945923622175794385289002863071977778743095418158099978706375838482796500780830375521589096754627481649741906931115004062358607275058098119613247700774994898450839309955870534685153292066160593903038009628891908966277958947720797468356714593939767182834247779515107737888591652716973077297688387313532488546295684244428873138972205089637092116445961727959687869046800083261930470626486451764479153717645220874714321400605378363463069979049240926391484438707976164697321123003640656030075212987677433667911728170716360911573208715989388074323418729111085312398452062143037721189009201336525735551134273356982471148912433063416653116727218617291463096376719794592438755572026923858196865918332043286321124307519882787306812700826487481894791345386273359048633856335390598310298344192013988651133578708781461251563797049033800041933774445629569032917612867671745628987139365731796527378787035155037547056110132962812371557052255075896160213756836822682125529809311902576929891003603236537654526628941612872564063811920125699983198258253087224779079200264994627963624470092124846823400469356421561537289498463691900264629483684568540672916336367199713121210964428717243757024355236512801054081211116144766863195232860323981775406947765752381764475013663138604310942359643815141004418893506615311281895996209230019998825870460065133677544844409987612585602589104119969024027601107686739558999316712901042293828035994027360112442554312766169849490445409240020578037973292709397927361432067254582232246035283798395201869039666600842123066035344156261871368798411992713718315365619341450542619111520196046471220529376766271810640900509289723780474411742280062296013337674590449697834347076707935022399642525306481443558343329500039308539313719977208139066148319855840761109897006405573752078830605681085965324949781253141062374014599104665350442036274307457169518061990121364093768613965584731173637062016407890491794917208127636050504463735105356962694047795800275372789292651737442053547755958742874553233717159931382023993970290877935059776723658565828447141046743724859229190528676702894017160953851978106673264721753764842359797273334009747508018396552069335222402684889018949937606875012442250674294622871979346150173009100135168180808123839824322729497754929044611973975625370470890371289975530406242629624332013073358234050737690853911459619890835529782579680652089281733575501722102969407074634759885505426588097855137944704343649475388016356195697288632523988836776332502444348145185031113583627881487376223452108693556285072723730116211595972832781726290227027721992341104525866879009241147827207643919686684225209368894308950761700120117554580838826708958469860425789138272022963673326183474192699320093146020522523135036291227580343546238255111938769098797191884786200385707631279530164876471846433369987370915697054890147101886009864161770747760542886309116547205771070401634678456692077525210131443665768531372736607872247833196151590254920176937511902843877525391072227548834824286281916204858776641622711165495441642671847368338727399520142899363911614573212962238204130964165254010504694092981375517682112346235292894127092047186331374364171084294881107204564578307694395212467444463737720598951263947308924459102253593834011439352569726987461248809818809029593503164735238579138197318848482789373540479072295998658574971350960013987193427308804777861847459087413094462331495830548862278992200057785393477577737860493442566322749569132286343399120723581118347801079349794557777413352718241629327626945015037680681826584841914471219961492982490342245278682826794818231558003483419479549963743249264388262516251850054276021441714791442193650331983465643731386451460577375243113424086442751633764583339002053858474846118896507643442575103698144903749438330624200092191901177581749811918536460235974429685620068475932472254989280916245611752517687962951445265758016110238278104362170279834997143198094418022414398120590436606575746643420092690954716434626789090686297044793496631137376394552950220722427503845097104908324711563269732480798178406414001845476520461857419995519285804461359487441278805968718695938250532575587798508217296202720974901496096574819274417878022950331233198572270242269186058927326442644601085446676955602375927502986347344068958778290050764442953897614867045432874468199147519476717359727669288383861920390043656918501967880645607546903746176789006180731580581758819436676753652320786911762867071748572450418293806971200891642932272934751603413164125583947384184357172769376883216416848335520054829923311145764086801139990184632607861915052809491949464150043441217568683613949078921048496930273626583970197229466978217530715858081638727643264872625382723582629608506006046754687109490741216363996274041180335495620753128721122465026145735300402622218492171502484856323227466620510029752739915107745893350902636517302774058218099157870406099070074666299195055081224622215638531691081285204900668990332417506105487822187381137601425892180943298046672010796851095050214156022312671376540025727705350146093130653910904483000179261603591524878979928262267082647026939144764736466772025908494727559904335473769130331715998516377829563625442625356859068572628115476317822990546805300000575580313318039995606677372429395970661505359391556729876894232445566083099049433965628320683721633503613258812025014638964745438311234130429938409558212897262262602404933647730094781821578821529506855902509944303231725779443486060481138093636223318316254786929746211512226464407332463291854618846018495752291979159826382909186621328279682829006323987858533578840664440108865869163431843634098719573553572996916046717368543451383973501935123324771453614330367828951210721197565179704569306278816956664568834806905707763351391903973028622304208931016789270086298964081482629296919767138600644584876145925771767909842237757514009504439787781234720054206369654581183416552847116312275971093631818792888659451062484823674949394403958601354704883980115791539944360317292209974376966110047815961715691654629918218412760108842401763391665507180778866974862626446296096885398822902496505694193422856920940861741007618286320922558551230468244825219451368158380920018208872472499655375146159910988163555568629751801375886457085538921641089488714961813313597096090225927565395802534609249570071771594998887001370213609661612299250422015297239180783405546675747192447941030686768782316526380723551957702805598747958589767957273427976819061069717254480362729312110865136922526044719602096191816868183616225909693988689636143608370241709191429573925670465242753367265165294082802635876423051854412995547951977563463859867832356340612280428408772233245711902412938603187411215525654414040936020191688056017334238249391023678550336688768246021676783637187321833187933375243036412384740084064925712339745104361622468772527561457780389768545208825253766105246327088511380989760376279764553694942034893862616545904106502509128786405284620123945568172784535683040026179120162226502611854653650909582391947582214893379801057863094138622190106133477267695216518697282210739205770831691614187582415224552880707603112554134014348037128088342028666777080424890063934945477553687714639464832428773772685294352308126940258249148517672983639962533319596914442954367653659105008481094820624675198983662627020304527210271611817762939244356015969177842435067013284097529734148469457568259870500736376803139983901430948160701168785114396862782250255491517457785122810977160834982168225575742817331255822967521533424383557212049194968418484003940730518711883359356583114079421936984660666933602241084276393632847283934267873687334357853730665332985105334958333375293200689884733193485357431796880295372905612476625685151686464106929644615394290360270108047763027599175559280851973405532342168335088273343152707565021579874191452189054528181242467327387053498806621284550039078756831256186783415665376280073553575509162065296581151369286613856217210692923669169850983237393431628202078756961004245089199482519060841007510502457570047873617750473540645789994921914446670472260504049882335131719852739531279488776845649132535507022112813551824862927904079372168959335438925219668163145671325069383836347650983430733330947131154417766351303413402523914159245627183631338261161215483475115101560409586265198694603628018804457359790099000519080227053059015649981082317853851083383285525989533173974710855625359669738457377007757890194194673337310598486245014385244669134812270458094294955372616504011091182229485877848565290890383040522660839942775146107503212604398489250622556505796377861831406126017620547475753106020738710619601259560964221023051929762718865239490618014010551793995030702005246496737955729831803293114054456100363241515288545825044175176801923067076505257735632037452702331362987214790867455869287687400774704408472204879743233111433660542108254496981071220650899990917165483761548421363110008266456863645247783151939762433773562617289091765773501714423290676046572045481361441134206474534593436667940986348331652954888416170258447968987690102994662820581810965722942177517623350364325819751251223564727559302028046604122741722719727407963804101869413227449883302916984886645085823956344399847377751342842160221986278782589016682553301318760992081961110765186073416970735095319470899578067658399677312208924402540179009028441450845667489454111773225825928651863937405424708031993706270434119197633948194193175385138552897175814191680875904493382275947392204740820960549677516067330580312911638571048713739805116445387573355416850641516529402625006380509029543954729076633315244024794139017580873470038190300701259734295998768353322366822384735430249465974341018728258525669691591512535577761886739670993553849699264773893702795167983471775524635468030388595299189925245728226257859325315976444266926551075023777793693201769277656398761677392562842702238998338288451368108844523670973097362555461370457525769102318985643718169095881858990517010220938901327898863460356609048942203889462905478109519999080462499115671881806987788204377368812130058893518802725301208363713297842136681793616002544980457229427485136637105496006209665352526302923552942794720757427220375686596255127353063585411919011081166281617245435891560276893780016422627796270091408878469140958006750938605392768472672669923799171912144073037849107522663542162362891959890051355053078674847757660373992339837848378181692553686702580906711971716162429276423897841222837383801810992323154070347404297551295416130988274627293566539261810453292147061059677382982758865614289428348483581002491067045824695643636384204228710033104566866008377563807966075975377003805153780490227725154192858584989786948859456930887924554176320930590031795573195772722704269596783013077638797474574384875952248525781907816453441999364513458103452158684638392433680410152305559668371125398382594212184760540591546337499183291767163498136037359381352526889835252804542836160643294797004307942752499620002204476240015684922938423969749586163125988706687846489421243604799573684231489245483856632407892262206851870982743445382695722957639784809915238844304647143244412486317673534425515097856941564396988762995898298094471334178003648735139864924248290047913949107619478080876859466471703097616602554224946785210512025460389372588506997629442386155396080649720047270028146902051479724411723971196782188154290443140818890741211643073025198425507460772928212988676142652196642737041394145793527840910070884430520520160251493772339044545165602836889480296363662488838466599720405998295094181811727009992199663821590280576457009583225826698662374176230033426345758072540255158660648779864011499371953137262218551777149258170298710437582279067880255971804378441516618079211582935026913142169189666782713539284166845451183975572604136875882620424805952437756101523978599377967815273490646749936974967696676622658005725169402356212846902432944219947625516265189670613389997578043802870568193083360319065389721807673633455673084226421599650507761414133428538123812701540202707499332245758514741492671144652204344405358334028309053688995374312024526803026186983285000473231943354388183196411590887410604808447510469295953626055090202765777370344970975589235424729846055495712454934825243584036176949254253579777815798282419157975784846017561259085788032023896330199410525049601228590919227082424816712328190577142086478535422587144323764113796422956556971663485527693209795497917295331848216781535595968629555064853040947949237105319470463959551045050161002438080705853935037966562986628998569061414231180693413878350586625522772725107482691261890442355224219723395991069306791684755242822855270708609117253002780223007481334822519427276651420078060260224819131671572614754634863476250940889599378092257018092297127214163642755027942679674660265756683376408511773149304007732108679819912346958143702809557405260982779911840272230034623054823516288242737251100291794246198993795872747507192204318157289607277183404358954193428931956040298113633434978886361321527042463077119856654291904077360242448736668669411680552430915715155942526235837790381575916919242177479967074758553080239833850569303725320996043900608419116583252800841524150437285936941027911105053582709923372146783817369501948815773689798336371818729076951196663796386004370167954140895289398524726848668784622786175805180486309487474753405206220626134090589876180990571280972083520923871394214699236711581919368504344388736741840311346275505672360104274520688977729960945098310667493683949025465559172720576754120575012116644734831726856139226879229104352731634353737051732198345578725406012504603284184665537211776142020641955837196442585694873702655018648206906203688764207556372949402394746505481706882224696017721301689068172845781944902231546513922553048955966969651555480700069235112165931364941755513496302810581878447782442626949283984090191873253762963230854751253840811576974474459893405933949325966043485467429568558828477706548311909492053133585268265348049100407924575103354805993519386642937579043268942579602115216184435731249769411200757767992175281455745386586446829874558241497622345613571161220656826831530267672067004904951513374587222546567983471185687501121459311940405825548620178325809532692849615331104736569326514590097325887819700603056805853178423070444233629395975964986217588483041701421384432730315347045345155858719928672811668271003005642293250942666933357092234500075644380178015108468178953621095376032867195354434027897781898758570241746965641144641470132645231766770303603593612962330721213346147235887322360987047761633709586886197000705954754572087761082278382112646481215004957204384928874121371047988908994737081734025475133166380823176450905170155294458618944249325888303653930315870882443142406635505129890485091566456400233738410448889144435436755705514526192177226587921364205302171501503350945694067152306399603150119864792020360616969143436203322117825700181182275409741413136017083395673451764385171887698663653763386270265858776034081815653855096012585292230722425905221663360603512957435751672218010726413641667522746628936487919039505977563535423875715973789997565597498574655004903778533166207956322405111790679482309883813814795788530164216618218311901276909342794379950859046830240650365316988282052863424906929876531210723451827897048100514080679405915036296984288304834085751093410055462136267998793460712171448815000540311243153846289100106585457910050706833983468469389405905864534911213878522449924832526542666975950621393417391650471779807072080105818772276248661674240309523684864878624863987860680273098623435984355815076883090610822418718637229938072081393776659816676934555640196301149103723163124340330215966244715761166909950802804727832306639678640831296675101525312141285177917755896243870000786550975732462450871164087380477686974968763005958965538596950868058277670928370737245815697118960587124583165067820474611388216133184790954407333249701112166946947040586654410105507716815254222983657910729773118032261539191172436202029424597234150620954869085007474197818406899812465324852379848891806783028126996155870993559456565167356914675617969797628482214803108318537376113142605882724513484842458500042704426329024885052883464310512605816475200443649582844754122968830270325600406456939230448061710531195606040347532294351414703963628676773741676209155055281191965833215410702433252863713614591891650696284956260108627618345525118850819649302116099139346343967397759631206137932391087765791601913028310175298484635345620230691912613309884021851889842584039912955500080514827439689214683879531179413142665153098087464257935673904069254491940220358942964972288143413709791025800430624148924672940810935501814630776029215382761108149842959581137519730096035133316931813893989182346446172260469904544628750461935498104207620338106754135519740013370524057310289390767921242804348008679250403999581964374890077434881728979969829696748068402387083415132234954698381913862102188603796693300297842245427363971879080617196082616129657067586247017135971983006727983990457774182917815684503050164139688129098545281891633550111595184456823317882954187519642996455036915541418266247070726245547471840039911526885534071886831624179697446596766043674147652384386547240086246539300228814145080280341768647661976622752132634249269623909730086144615637442925757727477127452946659989995594692292831885960483607562934991759312940784457583814699840503423100997542851904367792037019102633038617912666035384089331967812434440200270144377856308614518300386117692392122017161337792166418730284722715462970935053010915171998296683270555358383103320881306255768946186676734178541361019070120931141114728287496884879044527834962228003384402625456772394144743585452706328140990303354812518656390169707031146320297158426005297884859211039573770807455321167749418009292848523391747346600505670399198349720219351409850576709587843335553561863756884763138544425258637887987817785333030302499262122231934789510199858773504933043432319596927236986561262341193984770548452589704303942587536585689716682640480472733603347319996683759371388743537023636634588859979197232247152851169321628105858071482439603967834803122140009537581739936540987798372343390767179432066007589805270536137447731418830658185899695743959836173446792812110262786093299536571480212590515105638257738320431260750338011749033043801360233524016729890377703865849823630197014127097772291039714169354734469615637056145603646259604845788787325523207018521283337764160172341267059486798942884794855435230432731781756483565468556330440027911476291262697431052887243183819409480744627571760393092345146297434558570147392408960108486070538623858083314874619601446401143292445715295520817462355222828011227255208339618217006841871439299485910759394634162300383418125069701784018034339177801628711623547602267405294653664473567253257257101157595454144683839045681717267793967773354345910926151459762434618958935163617396712506829946656409759672553197574917665236598492700880188215529193145802692966591490517977218188807224606605432321241101877601531287274628001111105388516271790261275489513085899460129102590861791070367003538503213898791508057456379292136364819072102838500887392365294113810174946199362870333407481655637539727002044625156138520983588603095286844212025899992327697294119868905241044639369856066928087462516119280642891895853582207729451367819792551487240904323853221272789479016865109604996018727196608367193534515685991308342142488928335553189594610478844960853489831567269000513713064840231333039849996425324035538591599461572274648517323987262087400845140524647095402130069400402509120699563303762395913615500354792379942190620586836578362138314638644568218674327340391332772744845018350265924155608967765313162215702758571822000838650640906995547376975330612628727288884685955600256114755844247543332462960529042247256746220077853588421509255046560727231115255569011812643160606847887036649619545286795681660874808703870600535235137097238783889975996657765771341858209695454080131309477472295133992127967357821486932664511575914601981930349444817122583596851318553199979289352537700558851923610815431915870125439188157291691419697438685647211196552433787747758817366390172816314197735957306748370721863297630225761303511642072667461292770421341117551589183727778793564427727265764003283948211314523310415565477919946976468401819265367345692098910918268504849875837248914274552001359303503179746482429138880562093610099494073485314639174554836141265255619414203109408544597397491219667337757009045224448657190730388598986079309894032596529562145205125895433025732160173529710863742724733929302223615881010961517540476976042135322511959570312432133928300288537858231193827056013975383466955688194148569928722689944718476279305896094192324315044176146169404670177511397320922583346951197573376414064721446305474566775022312086793698936757702670409300540898570477463442917150434945775462571527850315468683153630848284944673774454320040456576395612849946597773892511135644169467752302883454416322531599285171438583091092333233239726667978443433008430457376878355317978016994002951269311343267004680903300235271725130150316872656976140067335488903846024564477186629384256629322000452173502895629322564079685649326592451932986106473111857941135481609069324665202858984838917785601772243272342281366961251745130053715032090849650293479126196503486731974310668665812919466107239610283925525762185406213159570908042976705509851019712511295973063424036960776451393991212908396574008130317035611937542379159473607587078819834246189540627485778994928031527863923758872533596106183422250299416253762364727329015071963848451293255860992957199017500603748812396675185338413241452138067796714376597844377562939214023441220665411599668749153000706012820185350315426317823432070263326382743617367989406495626471203645265752908844119344474011683376522284032489690938203489512100486276484298850745014388251989452632539632595512408996102549614838303546468311526987094534918477461950579020990198427950388744600602783717735053716851591773892888808942612454893823680175351115193530559575161861810045582996759275110431253436934386404007700753783872723625748245083356290701179267154980592488472993149378165638558390237168887947779693107480058575415835378123678432582964958338484935543461111094240069684008515030724101710882623958915324417651992205091608393448167053056379892978412508511797760586647064239295683973205319360923518188394713003353220661256414049335698552743151087618581335269758506897680130682909424266498672926776781500439706621526690566456121020624855229649405341157398502210507143902218969835449007966813881905567349967378737749459651501988849952446835887082406666528252893600173882991841970935728134178271367300366332815457407108674868256456399717503847440896072045660408831160324600606798542764064039070838523776416585593966358008491522707034157258598266725037587499146236171517256109677614161239756588678781417878891483740139036298602153715228418634433844164069040499217957789288456733276218053843493842551391886154503612389464410773614550408668632180343611213826715803395224778721322262300213468662704864246751947225925285876312814656423261951911405947028944182102986370492163951663196009451394801808549026073621051332836036501844242973133025353148536372620978984591240560729646010564975321715030835006058252885685428174426903162703917630403358433207743234329754858515839531314524419425945797273496263678471664532502338269773269019298385085761333150127568527746765088225646559204439935234045446189339841287095463387375875525165166929601063243489556317141912622776324750469932291884153593546870274015892333689475104105248012736900528662630749914164040290928671047694177334438592106679801303982213657177838031561231084018162478633589035293627554250408679158733368200324233534927749557375232500134670118473691987749110234253395980629258432256639847724429436592595605653164781787812192300583074881333378433124090547244364344326623645074841838839623061869120512409887852820393833387732258120022919309252431920304036710533190806084967272480695621524355376362703500186201232560008824071525982871484085088561401984241127165637460926942903238370252479195814230010802468433054873662936702621735125719190133511748214837957030973895513328092332191472950181258477577079859765057406698018088574272167244485582964462308633376362570962982152841761637797238291142780000798275963527925640797179866685451231076805786851912771057454400767091748862506424958330850753981498436036363746698185196166995763508666643938592632947724159196306496358115676126870491015762828410820930968756383136980359969887978557652264016579143577899179953455998645596832118668270582911347878826235393687859484209583009083087513129300093131620769382875765282719099063302819291283756050768057761421564841752273909522220614778820280271097288346047050817380740850706213350079960702632821076409475657684078569686497430639423313931376892367472431321721511170852027212738942629629609509669251258537379470922853752746541817847582667337000763379208125797634704699442558242061544922507846079884621490241782065393963240797318460619131180677986356692989589490939461924690486762993234000674332083034241128462026848427495073876989342487429577828107077918770890698401890154304729310366888795035451811860465339922472432284344383274707040830566390425037398350252779870051316882207308475232729769426690374679934373010814383168576773655097791706812058992283812047802636489497787946723114496166348064185676111887665482141198122095649702600365776987243313510648117141829735374040718109582877477298176981533092767829404439864194685805063161722405852046716913795814554287551754483997017755674594307591567062892141690300986570347712271673359060570233301766718447348226689142839591089016657549218096977985694548997773697067858614940056160145875016082418566481259143080697012683839498714716157442349006385252251565136884961453938461706173638693170136396513696259070852016238164255702555350442257137567843356715628158336219565904889042270854404699720504585874873894947937480050901719737019073952978785021577041463779327492698446936903231688005588585788026553556647667006226891898288279364166289576881150929568593412772528615845819794102058454216385974978823869842251619532028368674143363921814269959546326150724715615235229436728899041288791002035304123970088654930581810435808230895454548903495981167551241072408768126088769342673586077285237777138313229232337754045039743987366288857362445690760648426984711893974605390998528320627267415069224630426711091773349159553288683835957422935489381106791770208481438287462430015396819569481218097415658098200317535623925509586373940225600014115954428802657222219143016573948132390410918407023370493213194652630000799905314757275307912695342930132297399490230976543587651411498521713437312533965450712493040897956880489899482429411053840858085554564228623088430017307591184370487690916990687493380796127491092591555748297794061922055624921818828919032250843077331916905043943978007366258112065675589375620440413008279665213774795705441383616756015461302300263173079247446233632741995410333127196921281483363727345677075986525211734374777077402311698406032697907413887991769639316899615897940039767069858599422957742529392196539733244112008559612909544498930874757392419954288466467420675173401250900275453669579751826023640743590984604191493130611760126812246740782448143753170644954354468506405468576941682242753605205730291411711138101106573153662397653298597547792814083557564261702563150451372728542815615271312671023341059081073381273614265438125177122940228488826419794563933364091316608372184140498630391369039439428576061758343032340294889096457824782029806623414437788741148199650315994987239571472427841138543999959935773294838136720679996096087370636670470781542914411568356145544664242761436946065829821344490386441836530380510554178561440165117984076973290975497618798659664082575123098422078062058283836475313579251135006582742165597489449497747845158576266475027232417180298042475107291298951085554379861863644046673963437321269955027217905017521542495779973932422937201232376427280775384428350503338548423942192797198625840788914762793500583329993142589822403763403828083909342874704823493461187820676077750836821091252741074075908570056550636093901671072237339042236990041625365721568792731929551782542539992968307472752808749787741210701957664453529458953790021075126576649634967589893737346538668541521827796696940743463613726662069203631034702587578754084522881517466973539070845649544446808559239259208166579451599304256971698008674416394284519833690080420177862378941085604282590426147028780551506310163927951614016345776014217584122977285719093357010827754787710726814075283402911647336655076488986265616482885846934479619271335802808036455459552797863731502128303129879676937310611911143116668746694543361958009324947827313363897137306484851282844090683218348051273501351187301865984618218363632601532849027727588721017028140059725813538832462833221042178169463459762156884477121637378769565916241295643268420040850214054168493654175125771108264742196154152072312935400986234972384639071064823749110656908182579157789116191129082578175796725568567667427442251757010332133760203012760635905552579809054316277674492112232934711279716121769810493125519758283773593184422518021242502648265507847094957944121580063664507827297111348194133455272395876790028849925020181313351252837427330023878225496632179586686536233867211395292177967494710372043282028520206235245201980514011983033096575372250594378505415037548432683130774060027356247145711163039813477692052117032050851693015108714843678624475660657258715074368605159678113225946800003806286925762926136298451114280237464105013882872049963055669607886239168674951657317562501906606446884474759211875161292993299606715168007040238361309166544919297710831414604896706969557923369300151891789658457943386778383847228431766019195144299071547369712765299890747182955434011137117642156488144230078612316495653842122451030207631865420277870333729422128066350045668467201715891058366042887357210702165551510991476995522884410015199786994022955340737582813514788507926267108047544144521380572657902770387331248301575872239406719943499015489257183197118654802515357881908142941528870258405700976499738363615739259157753499186901811131046086812362064440221741031211573619043371189080503016410598064349563946816649518933898453499064338915540137944548647986728828078469217996742488910442737126579752448069959678741351104487600409579393041112575506220778957605762606135536588347704852675857218961999333975925194390682475596609753208380697926931574007362908413209704991478242876261089215814075918878781121087317752105784061464756775090826333674047135443419558012557899223310647104854473211697451454554409273545050285049919239786492910149503409677815044225790858833437106771336381151019512664988380293871201693020433037397090640474103472871016781880582154366678376833118896368630240172079033458097993161094083060597352762087310918192676799125764014532132165703430928343205000776419982703273280750621839945199526888365012154889951560218430783028097158506220783171401840693392566387007685186904367579859209596855455628444672190743360164282102233190792762183299554021755126275128515448396036628084580202755972551863475604717862485891643793324867772468280467238837191322404374863400141258144619525517247580818135395687569039290457136680234961456211597366711043888996218849609571193288626403534792147083211516330861410334792650926776526342396464640857782438069579710917475579626380209983566217605781455238712642875672316180789938894344225212812761664917256103557915761234594019662529678858178514006354832592610604804947504320634692416887887928104414973073021945791175372983667120229660489391238078193983421986348799301940411775630299306750126673819816370090871205886466259973443958974239621611414278708433409215276371043964767162047028077399936009184122828568942454422132267276773807294993619325667992403291637310025658894680665243652604268085256012865024875764488317435593867047034323217851914981728026592630955279579615394923509700967625025144915104402229916001149289430452616795802028879635606655405075536031160790501989065398808200233615713550752752863050973581792342255901619338030885175385821411790173172640309945751535026790810476334487732795515579574453672237515083032359433972516735644293574190102341482332902753350791711468210521884904281486519880939965202667489599240502231953985960510126149181126923511355793522741442599772392184373704502258911881510571366327303853114012442181804416027596404895535372592676390552906075922841622775254724887559820890203154013571382340213525984390993519809791786435452270756779244270705567793379439346681875142358084004420650247627800562191564365258542293634339905108502735932092791916439196792067206120386803993342282460461743516781623747391173747692641506598453782798540926958340272408973884881977069244369450439949076663490435223454522762301252269887215657717291694792539262252579599201951337183240068373134173670324377342673735560066036041929183429164276055199283204422869551947946938514116248528691223964277426414616686385594385202208894009724831281340816050376433422836004690876245397004882504222118858723673536092621351432578837069571731467266045845359062249086127052713140699452663588671137183062820338252197513229446300694783415091928735726105199326428349733027172035551081954005125161324497052390205050992724666662925152029797370716571538943523415463102483467266801399245548712324470807863798838215574137719293696847012584800872001843306792496595026501673968120404279549192584681519549734698175674659895821851121146919158770037786740398225351839493904552965614192003821507028144413815076333584979405575970897380732898357418894408956095678584480625447205639745187568289954265911205322716552865957312475324610907387385785906737620531312656240081014452285925890707927563503370654234995786417039179197536739295516587928569601722263684902884816159416096725802990310180755321907033399196755447511377489838560078404891057541471010554849642146765641006924823830396530422120545616343104075210274900553144772316831110517696803166159133727538253418300308967209929886212950090143393330913712832722575363014574473500812137638490914476330918142800100340747068442883057157818718234933702463609065790562641282304137642249866847454632114732972461642318600616770354169616124149233095587051108400431207356998561328603739842169679426764996636995218623225608820676550523853081336963622695853826734051953409769254085380161827916138432177645413490584328226213331239000353341435820373139152891379744031893246544495210931344085837786137230689794868933970104462042608428232616911822036539227894818690629115021037618353795671201736271660243652107439695290513336769746397677378812846389775845747144892710257202856290176667777263573448501674439224220822238050036751026186450927795854869092999923617921752484165692383843411031594828249791241221363841609581244651697625885428727739420103212199470590451922293594862307454348362198039758880544600108695054102522806392882150049920235473060910150460815589869104264815940363473598960236501104011604137652296708192687313969322916349334281395418906024014026790970877647930023153924161790415196922189081120552740928165231755922049049924155390607877444696354031769504928089185383752015441846083616014064699820427846488446962862806607743840623022639706243322313328304090791598849161609347638295913434691668787863946987433534047372230533645371755317272095166107397741473179352852713298711417818493397210235529777467533505954263913301535917366696649506815638571258423082235686590933093206248977215933695196393589846855620818233730384168585407267888114789805907894041159999377219159116810466723927930178261841132545096150323484304032501111589244137165449036932960919124110083526203650599559664387165482352454631331817951489991060656612061015206451590641262491123394654903029114973921441682976956111797052880068538769782406177022045154891769136911622932744782151986180175285195618839046106964021385191203150073631231443780376576325793053650379253682519906543658043103822458034620019169592374029936745581211627035996315097655657167926065346586291038346720937894774231081134113244354025534925805364991663300685532996210311727611003531506955772725952800780435546894852717278965240149924318428834461647465634197093640544402550497337931961773927950979207316785791144724425258853010598295435111671965223425159736856560224422763358636070658668209977261275546017829031768675180400637497891725488944240345844164064623208081491239268905394271112703258356298370521566988093643569921888114028106386570275280897345361961236458469486621138852822395097852094398275994488991537064910267687546410878169906432423041037583231752785001801734245593931705018203630605473617929724115055543518773655426455347554007089661499658221218554796135729232532128569819383431597689401340688504376750839075507549025163217881441255273888788477844252814575814796920480398793999067193470504071504942859462584525822144954832400314982882009353295386689302248642925028396694355807628710187489141631399746996932870549625904409467333964182289423202922998964741522306094293702731135375495629240034198165109599884327791597233022596933446563662984187343958082606993700388589617818134129150251644193573582935889199461331291856563119788512697822893270828298686969206115909340538430628085483843115867594107745562573109590218936634235737009915977000488896944332287653501509355438619677473412835242788523016005101603614796031652980867243061702337656887460835477795822737074158988544299286220515409471833103874439898491734911226483590872680566312878814481811625735605253343197133728792450170921546447894252478770128826799073379798472891924524211464222852574192880451339605306583172001398959331241699656117844344962214164323794550717691377952192006200890113393032278778698956327805362927356079645204286425831222253693365850902358065188312568030708994769198599403518805716210195003933193438439100465494378846575839795860800643809167193989974737538294076327882516206922713626120884158444264966709762158108937165446103755432890361767818355037188609040139699914554350634572710493575474064435616821762321114547298726414647256228138433772271111235484668878260710500680701787411597854894489075667292734479632119085398421936119407690967406894981141751919835695205726433215836412650555606347269224943364344984219377890410011729350383700500743487319557598753231018147442180622377415181804409726737966071918395900282400977426055917982092987964991325359193783574398672517999774457736097766012804707387500842214594456147920754780530303322424858375759537045104882889634778325322206252341041529598381729640131245584903357027810966942799924698154568030359149041238660753262727589974109607213069630074899088599010410942123533470208214815383513450971542797618964721140517070673479941131175113807636588561433279270276569101094576043610849787922743066873573631882809723588872667972922619171396395796349547029386383001663246093541514966084165067957923149992598876895738456396559850838392954024545934639844406731817049774802335185258715001901346901473569879925893403100621404817629713390662422292747245271938707063303598031220203583109775689500545495414522504550403119146152043662358902809121326943445929047345947556569074661666101249227636911903806752078233804889627746172419878719040422477078929954696220113683901939387122518507168027658596701763405612270681836297548858625295269419853540598819502912651896462952414917645450559646526345233705483507181019210839358957939723262358150668691583918448127439957500965565421904873325159430637196586596547165848465578150218746039460240586953801083960614799339771999512934526717694592512415487721873598273179957998653037269649739212998121476176107132536907357663291725970651683425055213628475159726663373739237177905116702679580576199384377207071056423791173054700201750757326736345967432573569969424953136748606370533350816309915664815588351715966989801399991075681938502557754045505243393923946042855990715962851290987614369587413189778710527543546702296886767820872024840217515003176591812751603419448849227308646012824485107206581137950230259914138681724909597345634106774902615769859517594395990124426418786245810612664865429507412002565446723507583474710065370401414106039153662839495251332919803293850667463726796445598582533635783297741753214947549879795529070889697529712141895206647166195020770923229030037635407192150118277437269773198914376490088984746285785089200712561310051049474527958262682800851067673843405617495721916627224696461669396617973366443263362123154241762260573486992104597559641487514607441305656429729974640565790003654656933835359821344330045639216965539983231182526576427536058639817742179710052429479240425909554696383357690106645390602822951567592734759120111905965697041788126516363816951272771267669497381857673855107009967359012015353675426337743268653305189930329209720015270187966233619556433808447025219322129594942721197571646340210091304899002733716159102493493202879235291143780215000188046499679983008978669543735773229326714668280394994287865479879469981996232117989437473229945739322616378000861900725744443462655594633096190188772777721699112598337681150612393613206033655684027682697264940283629277043766426898018103961935487792391530195584153657717975353592173160666793360535598792931506752052995943970349501006354288323913986958674391310363226786495305269152258782905348915099449017635806040802796380427946402176253576711307025447013008374271235436186912297245578462996180636304820135397921820709316633366121122496948771267359506256333118112477913394036364829979683598112795304541290065012471276622125629712143367866872262120079615842459843804228724832179109646861086479683128109898512149648647825236218860785929641018308734426533507508656944235175365476142895391087190200197339170046745711205358618429414784179932478605800671395100932005474317783669567503551523632539559268260508449425285364686987159618194843891829404231840484359122547538779078857568644102798972695318116751721373513511311874635833053362450689834232647451852166925474399410545760743566922747942258790373898770604652588381695887384671895729204967248540300972755761085293603709358164891066335190131161019318229741182562218888517872945521859922438423797648811587985505000837270447260098693970002780536185029409067441545132665886896116349215615007385934239233479678115891708431712107012113224157039492502365856524032987946848267070993940407269290739635649243501843290696324495175784393351243179772057548987256812230794204364631089972674632979971748346929992016493602473992529695561087364385146007417515449344404365818361120909429303254155202638885468264260277251418388886064049063010526860234255209986474824078273887533551668575979287648767706905281227009418058405888738799857340518039783074744458471830069619506253532619416241315176308078556910033927018831818357935082512522892943186245149100646859111792116425689456221232191074555946512958236763946720235797631551052022922092814273995381068656802233573560044301376188892832999137722260972845691252804583338384693650436388298476780306968178858922758129659899933664333911212667852351644086182019342302264276921669848390685296575151245663979993964795804343691715474952802151887027677604206018449437559941455873390126362864908849386239800322821451985106261985460391761121509470311874907272279202008748303868389549460026891657308430460410855301261917442028208133090235604847560670238060363287704764437384222790206568053859176804485523369469924954151464047284189873470864109111022550967822700240392131521173454278063063413347155732331181878295764203233012343079290020026960525773311052112828684765650727006635122686345410924997794971019646329067753107592722583995795056194047454282191798629719520317973031024266731323011860861252664094933455003138951564671869109351465022878519183798577363160199615468192629537724434952631584525084187597392285684813721270912967448685435196902198987806324025012495988377934959692670758074784722455817003259628255936649848808350557756696662057702057651268841655480560477989022772601643936425352816712103914674517337525201871019769133921343497306621295742813844541521071729532416137050248247489168105801143100795993301183290029665140815736273656697053042178787624431638346962398346393448142695634102481749251039384788546353343951767239787228433547829192229338091392636693215928540172749023458172108210824987340147096702464951263331239173136667647109050324023582414641253109946119467570695069211612454154920609314689625244719714207359796483643143908396690214996380684808979495480335475390659572203639770277576213751007283364792476909602288033922604743566641147966819995456215848755946443114978137459462097563882008393585925354875348764421131747519854127787099846130727948132394912914637812141585550990585294289027357850166625862356652773083551144903362556677318979658009301423249517190224263671177117632286865721586388477430368351497799535473064814644563618347648152004507992983948417024431104972348723840713521421075298011973925581484639932387383768736965456858264931630432261406054788404443726959798177638891932968224636890700199751952152808560485068696483385494802907471434909097693376333595545899383693807232686263460407390055855964562115129349942447985438987000501030702356985403651336673783536827703821916658244312204667951905731056734371353281820617133205154836650004307638008818310660573285083903390529319701194096590093568617896228039164030171052951348735365109856668196951081165350853443537894582790948813696057313644812531420834462459469215258920033220577624616890012824341757854056441599685449615544118594412168613322932529960363614800571022121703743634535078854582772138579518472080963805409109159599805458414951640234907664507808169492792659511680190763717459199461727076694621766078404167957168213196084601054552463781767828883729895221406279564634726358764934950097064775457695734349233752442312961211263540749169015588466266148158024380200688412558048303897409315761918622144836704187194526569181050947691328358315681630076799729425835360486787600280074258549213813172875548595529592812597888775704963398785178993422132637089662583742250080712322883577688388054397890723681927574424783064595958773369079347134367331063638866976413809942097215193212279566285413354174093043433392348321312346512580047367358152185398149216003982889452372281625845653133045903197197610571295898245665891720334888356016137698622048228156003193510725829668131563030377338522779730970317651496566629472220368926610944517270269830725917245417197407455233727990101195841809406428839324624112550219245172723676494766648017572915688032929523158420617311846504741559127199817661816899250100519158733345067447094410940720604706667880297571655609174172630890480517831962115169802527821596344535064946613381805069102775391271946251405749993160539010482000019517629974862487562811613254098717272520222689457712534283420182314921757360785447224291884140321313048581430440147469262178881040605603423673673966001168755236875473393484827754043637509032142046520140108506916861672714998805853830199432632632635244076660262942891422858755676791733741236203126557169314789507185898618354194104381682273134904448064235928556628309538657421494204437842030899464832745448143422485878261642138638944280929795807494679117890442242388086522882137641746547309682563240639983237073688648808215880395042844730530865329166990508797554639553245247917354530103261230061578490961889312555004666876290748346011504110067188938522003309385455359991670114656229964260681352011246407350444294440617209064662756436693526242153002510096115753968982053623221984740640703269587816141424695028818355525030643954606593508796558039996058269450529448792249157139715095767730617741734012877869031687000050551688033509660295190626084627874844604158236270215327735502181127416176015461497423287602339561073119351193011934517776165908180915547687663523668450339457049453980857318759007474534915572275833094273057480515603990818687479858697960120640496852732560023063868084031697931094722884358240084664381807959564640323767264408024788442205980038736828375754145803053755195273141201972976474575938884376507981285550689967231776777199800497409554783126582054367830804221015170055078258611323445782030501109783966602251644296749922722843014292100051204036093872536092255289093178987630522029296056638448066849920589014729001997450256543933598783941642604369907953239891385599278278729439484794527560820602759370599563548946140199467217827426269495842509113342733439054032936276897700266216913135987207036847652704261963106508683347855724067015288849735674396756755330637095655810171004360809058847749758864560283934343928722343520261979248566003454338801638270574081653116653561421092142506700774513915197315180410674234231174085767900706993645192761687413236982133588828317633204106185930229071218948783252326536616985885083113402738301790134253224522437065095375101567628633027092109891248887859206013662285793972808176061283776105118931105968171306705950077391265848022871333113831090865876407055440536453105192126288543550678735847555366827161383820794148265842474568286581684882995846774360250866920913238725919668990246253117748178082670617782312137064424973208247412789968315882289205481473886497975118941718331700281127150484886948388186658921124229906838214858225253741943524717866769446245603938818984148352483516214917085088790594304603546174118348417380191071478953546711165284041764967997112525019660927779066297229412834172484481378415912745063913469621216173486522002341403272559383218966858381792394274275449057594822968933315163324462870578143510058415043621270847536833608762657959780318348556334935006681401046675220101650217471242501301554522100652939434041554919434202797343479062325094613600566674412716989199362793459032289315058310402370390407783960025997078603135141057421401694599269082336447549188307638425273564094245357528492806276624329672840125169308611147939395908664530707629397487448536911717999760554225418985116691955355015038269084392990768202928828665830466603776511903624057105288778066165658244054147188436072735176853342473566639373081201004495734133543011828731502770086863004469702538305208699323594063858987590757783243070645686777137066721916816374003737495195542202526376463632855603276585839135124280123774358865243613298903680160720199464558612189037150264706250650990797477609945144741429189863422517702971776555672351106271242310874782647836703878321257526306268294523600477015435280376999794838036014353849711859512113958260475504402560618642424131329474352968363471394565486502799289838452873916521901705378489689125338078244126414809417710280674288055152023777142649574633019148723765328691643763212976988231954395653497327838107979779835641645476990317838593900889408591942894629997508687167000478576211526577383681753336149044790394889105165945486348322266416270938809287179218998575214709809684875056592032131390938307850124444767050686042239127747942236924248352057063506053412210517849502206625066101705172953492103218449577923961261377837747459932477491841243161743197296697024096298586683002358205355357657002649779624560806724983890618702903998585770083158947630387067315373553472125742669009277009648123874538031351411244838464650588055202614676108030675571005715459373402096234120490152038486316046761420257908478286414867413010426532444217327093263205797107545575238156237281342516520264049424087487233325469936597736499413840981427219175786254497224656582808665260717636041209058665347471891660207332166219125208960316392039960950175292245377831927522597941224659240204503313651525785732611557956118837050454820020765266295287027019129101524347766819761776723600870594279557539691561063257027570213416135687265208450885247562684291469456250967558290244932526645530096956811129621094614896773757160077317696802389639296402576501631580006190830557955399735932642071525376954084987335916336309349198633110580241456371794002490237099880125019687258163446085985249611285536513846175595023112364747308285101149696135860420338004913641200695715210635372925180928510596690134808953251579884086667876170713375573281320019106623230033290836486049293549735621021392459518567141135773478638774170119181801226272678623644797671222613723347173138312634031210698883384648090053089994563340439122969867852265688964915004112569909329795090750751371738419563121317518771101078109117463323747436074572188105919891456150349122336953715791378795095485441028283978880904674683022640625634584231031590195518861042418435966608702755668400983543270626719016827815324586464385371213821871775539006911049273770606081522853287036673469790395316819717233557129478753829586239464030088399722579829108172435198992122013865297104931794437691198845551937847264138531981002834428400786514001613013105176057753634234031117164641914703646508190300471008924101650356660918452666529199382679152652348112775265398457917799195952760641121110418506894720092982575040677457152637768065366502364500101632938675620080902250788225483481623214886166007513850503374987879802034980224651838595084105509057040278794570491920399741703977415133684507587287771237420033309832251903747781086403155138930538418751217010530238164642348914596637995352691253810348172087202506725842190182649427390496755532041449220309684190695676774327905092898766633986306124480209715353120925340218415355736656043426973559396048306491342781551622765602396680425742203049644128478098318983894262748714767292572681797682931855361892974348001789106606236099612923767648053506283172589971698271225870719924653621724515202943012899894562983575865973833029726835676207093766593009426459571291741683484608600333478438514673721966670185373083377148071425074115993990675988284746103686899943598737149684641384821976581849913040484989503764995276503684567636629709971120149271823788707325721692785618844540845305690290464150460917875247862573962685026691566984302427687817271385249567797997584362576743368712248966122098264853089568215060813635082927324768482730411515008895563584739694596589883017442017802496471293290454043081453928253071510928666333397014423569277404921636819531801232949915116064923703144405756380855056299447658875659749286189018328740584975142232513411638098053855231848193702894762250759768898953699404963711245214309967909834726016591277639053940430954523823682932829074402550510154436055285797012475501819620602949011894674584808760143298199435511627459081553990017913917553301521138176567099349717579605423691151495496442061752579410929249349064473060894121107411824338162387893605971799260811640129989721304913380295219287422685323426746407607911911327191788141316497064994580143391570747652753637838441174604523382130028502056048207084288859931126810025687770812547643069010910257151478413404298913894982131637123897901360466791744515474679092620704335013054137590729809399183104562411226354942666249377385732086379626181213705025863999511546396232657614569508540356904866777850358080711482794412679416667671413845020430767542030165024691115157386663449309007165649039845112265302448260219492639985854061867409934856204211624918647198220676483905866096373542218144589822808936198890852022705154016845983776760541419679587187728108047594900260446588443250785464388153700274833006044624295982276718038867654439060154385827289951354056115122099110639430190912787317586880026932372436509270597549494278935996546561347188435054942130793649838452540173255454839408638705421188163213037716612779562522445754589729968240026767542873380874640267713897854793194464725407066600114838725592201655764754609560660448800338673823483960124793160516037926035916935838660297721455643860243052885446127728679835817486672536544121820721400222649220128818979242207712844541173426652984974171745397991101462367068990028066079734536763136197607388802905294002719119306134663625570307717513066278762247875547229055617566630133383671897667586090447232509183535129540191549873073169321021564339008190021069646312967420029009405694945653094347010816746065945399018018306759432457450779844979419874096959880200752292991475332291595825024138905601281591691277311935845114509350919988401342446255335321383834373398108526282860091462055501175036461888644023336082028597512805361270246773975392050516646488876922154000833077166117041091734667291780282156831602735086021009711584346722657190816835673871436348891263612477050452553014908333854949573350277550352743351922574438037784325804634019004980842770745735725252592980385222608381982485725972786592383302821182132420529901666805286305129966040529626443027692196832977651798915583354144007254741989202597518180079205450893271675534883855009392075938133826513980307342896780834089395433713726307930757653534250726239416193498990062377253513459510790806265780143282105748321413333831717539779643436761540737790048111092525923516178474106079924192810778192663843967288033938741476228881028503058011661451022987957454569643271056444138476415993774547138250379088219718938233262718479621665292299564239390624280059431652638173546425660915848491634184300281267411846932777869019284324210108275634901883178876743290457429101961049056107494349983752036751072201281125497812974459389981954676707609683915178538445918249284553319411576287056080985663575276912676502957941408125889498364442665765511460974439213120723300211166450404775855989253222387024154572998144613026641334443042937438193141464634300398536561163509462069031140504523124949785580566399352376237561717773084345679867294919527033443246380914058621143530066473481997732057672782455304072140958430573056934904879688087842563487073921636465656254486069901871893662641653509095948990621390234928919374919167961513915799418817222111724329053374389544694837201335121853939095455420406607899069547041865630512609122319151676510500008985779039120696887938961627159171126127123533835564932849391548733330016248100420637552970046975074971077786949944350603624725333250275154801926191665635477054868442024463791418142999960978137321660321686147634076164563517570471236320535836086603281869313548366546430551827896933683383441294330307936623146320213787757160327490301138831880240184181091380708854879380244770825687371842492091698413954851187378865154591217837757263830335519200395969077323568263496013835792378482897127747599132473408464689701385131322436370779478628762045909951028909594830576606449270588465456159080206903962825277747037056020107940915482240263921390109777894161011821456128273065297218238916080585870487455786844123649751380036532118615860784393834643236225437171592828678724503868081084151960663424667001359552999886389796846267059095789535028148708027031268669726282383260886784950923064340136471636004689716960082989426178685736405985226975920405719727449162419353514843070955235088023680648898501050864238882289415507099787348180204161320678411544454990191565271142659303579262860142543573307387318469290397460311481258005440534769412201212876860152608093240729865773128560056717707472537651215702484451425423744497257085603776567364686914957556057941366563116452311488214668764527046865714447544396754972977177275142648121194917269114117072916725212069819423355661346899146739251049769018497699629789600687698317743008051174338798364378762567563509606554767206545661705232610883844722016264515904746063002368952806742462398713183742652133082748786301398874156825111946825646788841303417454099508758854371027727990186811134927604148858670982893285850881411001078183928591251966373378123260160770795287345713278272785680125167069568730870410337092855202835151706172728230667025096174943532421515248574171039266835766913798959034808223065594791706300579179347932300739570670387177829077767926541167504567559782842112065848841801775089091624049264352698978225749630323650726264259070027541497188101190884595067314452248246704416351055304967755325566948676036399863590992690963561980168985301127959800009997329620692532956163753547702916971192831975994864939669886449556842212160107354113795624723160640397026921015955601165337767625563557790543729531700170909512089646549220035482575653068884802567599907668043736700887343372658292152124359800631912590049985932635092032682384903455155133293328665606441136960689783155637118902173511133225960884410521646835645835866383606989470456778276440396344348058262749715478742142823397611668680590357959183445624584491405987698060248244369177565810468932601119148111932718040983367664082235895879925448115188829481897455471775793700619134789985330901814230362046236529621657082788206869993948504376442238004946042296474323746667804580794377349077113204760598301301891720308386524564968218328810603556427653067822201190286612177514369248680034546930863681822049417309429525967129703866088896565521296160601718851760441479484220076184217666150390670418717078028980774622079148706476055396117342349032195722190154753493607395082418451366317500652241765778652055775938037229272529768312488977567647837432885245298187990443318225744579066205614634567460519285338364058139207402790857258329325625065066555839860307964494523182151480615109546640688590857333699738086389605591551420101969461455466762403986915536828120064736916487343289387541839057181959490029979619186075794085519429664161193839021991481967185743437976921748809678890630552766871401808820322730896483085450747380495808399087670131747011245923653390371036991784411730968696111835729589243384507704290426090271991370824188042349314401601910696710687574000540101563594961282497419129043601920301850027604295137955149606933816167559047652311629955487700052822779771839202657809233853145989244598179189308031387696398379157981212754897213851088038040486131472625178601780194319134774067170961123591811869531231320955669528543117894834244594051823172988483891086555813980869770512226201207780058545226836126834410154738658921367804692487861501621313929816032809858591111487041792955030566791040464846398221091855895131172801352127010158294031054954513390506757186923002011322111576664475914787810512859332488621104198095458150869691033958723580070459112536429342182427047528972677069269272173256387194690907919610040344437167573639866341392852531465210504222668247109032088536145711440219104393488225781909412026532833209609457822662645227716098190900428494291388536224688944538831817695086882159365377113147920935807659287699846166253010631381689050070134341633863005932704770761039428709828388084896645531833430316524956375379055482021873605168374642362240918102014558977768152972454967828068829743872600002519443828827399747724633307096075776504868433327860497633359115495841475982742347320249773582864171110704264886511335127182813275806350536780734507190504828503732094838588417496215042832252843158452545488582731641391427955159379232656618253680585194148643444738056050907299506011134385524436499504511711657137188351006817672521265139498992140206492807873970061962913914222416951923876970012344329122402810963343938083343715622553430948646256028004195419019961430109640704071598263242906371624286211800225508214192704486969333668673576180428753753193061822017752393116095760581215092442886347054508359287489334683300600046800607076450091180908232363177746942821665319174841363719986813289852573867519152795561259006655294228618308392324249051654017034914266792481442613070115062926000683977192507278130409093221701663482808472123041374639949377211887261156974517307961691690401805606763782268760231268608224044835338321508006361719656196647282547101549094632575239997885248014535546854808213427140200742660679039068139241215995460123689768496368005382460717271431764281022443824568744279687330578769206738594851558983233479746138682761323819002405416418846620213368042954397002738770889271416991518235647440341970247835093940056600522626500904020293097131224541472979616807906273704640908594525405355021597361575989768792107770728049559288183643915134526787816658826414854769074634826971727836524534776357567973144581513280554552107823250589426229533693921679497621521741839414621378304535800756088219882967187476438655457912355156718287083390194811179806728605773111887740677070238339315980237995320637743356156811546564535598816416188747213111602115218909112983356538869934459028813286077722542530876797997338378837268925889312775955993043337469064491844144191481150661558724096851992524849775382432039767167504671954757199147488501689555571681412709473240496154125666459937873858771703350673676581946278502216078437822558582833783629701455220791160989428798650457056438948987999475579300224472866632697906033274550446986290749594423103461917612450511382686431810354320195723833711194734947633906069883612821045020921890601665267327947541939862833477778002303883723462421836938414654804929108066068171405566909663855281738785323373795432717925310792041738821747336236237603377831709660503317668373029810028348777849554104662736724116797046535330269401639049287927884070697412676207423579340577599170419160373656928440022450906793230074117874973499253446671347005335094797705869108470808199664230600132888794241507011925360422856142009559445147119417812373984854731977823138493312326427570502914095950435992145035958543373449606675462397994785980234516081103454159682055009322164098187058328766251608793155826945470995261836521565657987794668610521908029793726335853726143794428188195521237099625020221160265152046097087889714777046896068703088638117030742831174834412558274816283109752517477518437583999536054150191894989111489636566870881807452456228589135195525391729709160039369953701769346285065976134749981144954143790723612355163336431604245999477469711716859149304153460216693663048145567625958800779460942258225054641659096369170093315469671087104346071092137469980679138636398188260801152035450062370106899762754018887911261904138339486193423639027942059576923325317844889914707837037788683149400948198420267464557970658141641972514384756342362951514856570638068647490439304364977200253212164435189080978217624685571035365362383436818275817260769138829609232306529433625345314103666998373623227887783745904595297158013388996733626604490903813358758450079148089247961834441242146391245524288137462300890826966787804489199089949546226547460467475655146434544583770106956521514844885664250111658963168240847086888947305683762904809050380134279171323262984174552433454154963544447260007048082348600984001843441747531328758707051573670837564327102954994048558091342071553986663308431035347450863640572939612949589218460307897420818307484787260419025901765046112367141072355547010902990941780323850888364237770048647239295172643555811381152259713915180898396411231652954890458575867586200086043606694604531336228225536646236680216058863854302425270049585306111569584226376801347025478000452624643119084429859948797476328770770523823601051556400817297507555268146339892198378444759447799853026502276185009168027192133891767351238972464470578713649612508679754191193054416279568272106189647859450998959488375713144377491846920526960725724174563015696977015597169229527903325056812135163317892639410177397749805304497077625879539411790727159232209454493200930220590180084548132729552146945520690156650408521508948849538120522672489569344994041334964252499276410239625347403750053623468953638384197607753454336961386299014044373892465202758072921276025495491667973284283115072396170151288240358319791701790974410334200472815918134400848274462123085745137526325610880008669942251734786386621923820959067551284189521519678316998303596969245332674027301949761429165557135716883602992678357189945396555177324368787582435321221074135876121649745343206292396796450642129593176173033947573494013056886447766878496505316336246112071716272582657428725791497744787322329131455209095152154369253716991998730779451528549103194866283998355289170028608359102635651781504402460273123799930072187077862456032405302172909552606106004993849252648066384837482054597388661892543440601464107640864193523929677968222469707557817910631084957606897221841137733859187727120524067610565032399836249242338013279573141736753546367145711710375188045804736326846202104549396005428328366730142461958199526903198492063374357976685662400388816134612129521841008308735589433981571040331110309874536872288377405806987713719778136520459959352655900800949907483278213240612635279805031731246667422926784873105631062033750262010737339850122981245353000122558342410550764467099504277924461131312415852336237788177201888332600645831481848354431597533686263170022161713006749436380173925162840150972271725249980473858371928063137922225572761615435558072739429933469748794571126086098427478580978117069585791659964465929876497338245918710926107085931364663073854594269375913082658420780547793597168606020582853241476955791950737957010109870825157805031502908433636387004440003345299411675948343012078974892791359164383132915722761885701178471899275793931652096921057380143854170177148844488716313372464652122046894417544400403392665934122301874272948975920918240333800738594355533376828044237859482370926614815724487143209237232248235859249379344177414246858964298485872588690022134356088823915923276147446338516834530337351145227086869677707212641853449589598784168727062076324428232597693254760574810990971709091930436046506205171123116882986449080801412520659167674340243443314547960877458048208294737468114210159646044998218346271364816522248622301773074480430521349457298514321272615939868331142853528858830773108615225430403738147086446254146984460744149566467115019424365488347964120194451678947302255570623446218729254279641131434469221845765900736261140628099665052612241347461165580110310036212823575939707805959481508025803011230622507318626040021699236487022436455282196449815408887075876601516974577496424559535371690523125455670300495918777741126096884561994043004809382517380144271153886693934031360510207976648725158611696146581307624935336669205419106891316463661825015657282047121029322138219310106631886236460019522333623497144598378573726844069970010347621552776138347445817493836995415181195837872175916975783252440567017177216858191151414441274716111446219217948952444894577375300809175011115218317385366257932180185328877665017388079651094077960185825553792244095377077061359773679380186585963979918748351780488564569315212739733950065080933446184873671719413644544722915260048487154961661577540386656201531547158918598567522999932203412085577631942377597044505531636652999625226977419604819044777490678786983313157060885802382058182002975587139828760205361288220504673963416926795573154673130530703498486888214290495865490533598949065840195510357079571215897231859186222852850482403291102950578005034729845409767707772704524458063456866023669899730360835032023911516198977378358144172828532671438522777891634944249921708740396175613108417355283671963449157004108499816775013552222468180138459245090677849228781761638789138222824972050955745674172783173314298639159995540436288602703956564732607666886872375844336352453177243921209841259591927530599158361735460240768011871791009313839698693876819967309212305241809385573770066153436821463371599114796314082893598865849125524925033757124571211718148570473773079261450597975847179407844429566874949054654442311068629446980049130165095942448901328728304661281597877355970034124750341084426199609173666964571829420670565655906039935792454133705312586839343245085111324045568475660050038571148421984821546079425083350351399682299426838424815900909750185475764743743132682735139825353698575745862229907620295874922284125820695474766129926132269845263888378104590003391271739478056711077989106544355989393395273430644917076112405149879034919980694384778556235173795084169123082191449845135864384915731548347722912957799558473478028499036111690128012617308517384512737617045262576116825520027897179357428185001850854089609183848918126645050827971533435737688731774239361229791454198002270616071781633620806157212566936606791000284292907361710397208178616377902847768895672320959098782448268392054971896516465839835770026451296396419106183497477650321510591548233550539118497927502396977490507972434026804056454989726496950078829352758346771260134737435390065244033517663134161047166864221581228694178422495421651550384885367102396531389120096016162218487730444676322923189771050108675981436372324798792685300203607807901104664093283696578839897856470345032324054201729174498406775015440303651627517317966221290114936377958077522136024605168335827163921702029954942961927360055756184505361277982351669862293393066435326258335207199834002146564230997347953556251666069803115717632232640924326056735491053187887184937172453753083249577953488415876262009017674175805079590933474357868115724940673360517178871077066622762303252620063646661247778121279225235406372595006690772456125586873866583727748827142212430783418817311464218478517815801815943984072382822745599344797004171431451029616675116552142202519422078050510767344838564318171402335873199325114772717683023302274246554367465772140322365148539173609748933165313123489613852678318513996431931368410089162422733436477472254755144174267984443869061124124258424349633255592506768365550269853652438988984087681429810702208675625971360603427348534040798748560298344708220492558419866353227796510642214260484224834768323147127398608473593336468689558018667662258238223193944100478859528656884198814632666988944581412366593509542091806495204293450287273921600442048784237739185046992625212872155803559618672123359993542097034111148695107764576230610164840452589153460416475567027361439028606976677721938970421337026078108002655596205020689839963703873616432230670025487025371529563375824245631495608982440485177929676957391787703993877589614682552578024854251993731199692448496401609368363219771090665781442708573587972646704746564166683739033136525940702629264002159453033763900546620995738434003587841263817244064224121640353197060500929127288244038634325611264904779449622243557199660638638899244942184804389178610536519883241558313047617451635464724366386638900737347621259391594206779776497620828028436461661272335540414258977423137439018460355089215023526928118759880339330295353780428699554060600893973898586409432676699045764980016794311103569890273474427855482575538168922399979836745998674237869320328283478107506235565065909889026140045832871083425460104717577940692885894270348652836895833451960462147246597432984582886002170539115687401664693783517451693331966876917223363579690488895767047312593040799007701807523556097594346546201990033404135369583249796567859337786704154850082656662143160463602386968634215433368761033179122814690817673161291100878680011613276539178601081709420017827078779006405085160755910585681752417767760093210050599588966259245882913500702268228041139740600717397590522723587564562618988069435091960425535235042562208587846773355156587406941520691234562228376602032833856842541487555759882234382572747057345560553552924535943192300237721514858748156534895168073358937036984822170935077931818497745647749742211280036611979695870029162568780293761608814437947808534981092413821961922840890083787923391732630189635424368490782315763662651054365608468786684185398606816237762340452118961196482472398126631724270659900890347525715436107760887578671591617277946883041093789859228425101869754907934700394985619687237155827817886936743500327834789515360324362187511552593674465149728887584290228007743951714772884597591868204418872403121350602970534795076298572477787041271438752542157268244776397720058949793173521563201525305598250357123311474662082481159708475371746384790161510506427074985735823148335706003258431785350641125146507816119007972878533690350867657875826447728668796934437782060234848631557598988977162767637397041933926349658585883755709071333137807442091687702622434359171631039590727362185813691063143223418519282357739721124561284243602594034216132153148083454047022718300537495106500246156181403432420370971064728092484817739627957361524118935180265575553321091792523544431885246618815369044345019109765655021774084169620484212820472909978890128817535372635247949489866162972602279952683270413387359595409202183159552703235247971937347091094101093151294799765948151056682882172884107227272689051402074299656997337457764235244257627464365148975687617797216230811568457941156164620528398176255590507203880970175430952862878542529815515756753319082637101299672363970000991935373866415583226099919665737312345051009083382747607533067605660965824365951167946623121199765729300964917394781151271104444311670575181082250193751920630302629574158458569263727694399316079416285244250492080189001095100338440600595120515969474154201287429649066016796828400677583058845314059079205193176883168512692072918192680654465937882621141831387345244600048966793597262007322749781047365956255427017040078512003221862505016110407060181590211258862845802015786575437292167397372845255734282570397531295835207458082395171480002928658901297708380930783231315575551585933814122523184194050691180772456640670993040756135056841702745212429346513031154465016811622783857915840338319865907548936988281105427746200839136544151826591125420640528366801284677844690160653098100779256650178478306541526842379456944076547793620073608395626608374209684644965625662118993443778739445173000013165303272451734489504882476610354977252664373817982274996693713722713129294153036776454470691914153574994262055794685219296387046310875948917021652622007455222100166123542097123062003935683639388030631373920998938375726710984391791099226772071050819682880172961839106765999296769796889713294427143018609029701506787493338453180190554118444900466087681865659039005992639412299133273554150891072053966998718407300921705143509109124759388824544657861510135580301831406936936340873938700266726107896498248855030938192424864484697817942920912197695713272777172201803144537087021778624549599306329689329027494573179042339564693433580336863242897163493584420074632227570894180352342410920669342889951899506910201129699607380010198474498264696565490842658537367148044314514491738827515697230497172624338857023976547560016465710457281423182553083890181655898807665166667801273674855047752342261092266804289519397767679302538270130714086634420573465965650363776685631227453662219784170556659565614812972553706448473016062952014293067773517508422621676047007113566493770714885641479835081514763539829038625759554662993727545570284696801178794175240091130952852171663181270749081416454632700341844158957500514582369007464660314817588894781457133996213933580067535081408510024571689935902010910453072153210232461499748111077143575415277908773244362005655467307434132891533137926670788949408510541293342822717092813175906595356802395473890859717974792494437683182968039067386379316595651424374037442376410983734676947114983221767576277279440212597435018204484955960533929546396636374836515903085331094580463099112703936049963682830634915418494946324619328332626786197383965511851242553416429403508173806061530555872516573395818090369842739566959526133096332346683542344958995652833905646599112670361921622575969598232740612373344689004391289702658096929384322135751494564099292095178424483320668344801619651701477752114333809496976213437641434685097890205730221937430724299392490364153120589727513517216993934653501188192898662105965076225807072140213926728386566014161894071897819971411384182947118947101941865413331383412850277674235435998081298878668476678680669433051838594780912928996298296036395486563016911199171650953812005416619300674833514027462640947078431182219071805108690675154404552815745208260811621515977156698866920899923840306905739680044089455725991080600148050575538003190496109215865440136760841513594597440914107936984696338308354476513186616766199388454480067574405267103728994566064819403465690283827857417175861178533121781700008904228583191031760256835220878802813151450020280123879965741853396257193232131960685682510576911465558425886200905761631949612506474805672349343615960263940381653603287745162973196092120387474038835285541754621581504861575178840236328433487068175492872081844917260818811304423430919107812555563443714220220524577533030948171713816174752581229359370000091082842089993980618279002125783078910732425642029628610780455439112272331889107926855346494492554599645778878002454920292686727070326131431128501183514530491679628228943433683271424972536318137044460335003981513230872530892495967642471883083140739417965784910289984657951319424520600461599017383059960650263827247391150964223535110808572771972239029172943173698762543514586155743895462608633816810182146686670723854481625178606316134099214560215271360194384476412407111309705255464035811336448215019283891928366077676913334094007492627442277231026961592033762566068682235994991675471239510816095595556440343152011409186856890612719810214035778795150506415809370303860465704039551347619477993695380918871600399959121325004445859722534745484077216206544208436054059184474273761402156841967258267142360425126388457732136678524117198264469828744315906597436515510172098600643755929634654336975500951842580688069990724001162973752936070536064247122778642011742950261650735280021130516998038296018461540909480905903338096032591378719399770243083896316500062837205604329014247209427562616099252740401237207252502205127757335538960032322535382901368418012949005336139482843740962032729333423588400033141748066790499287758697573097206835333811957497477404070922318487287136691614068379604508478743735257957039679400732922573648385290222819391897640073821524792510723767991356976210477347216721369347804066110737482008138745532811881686618399793983199216467741830964850622502365932654748513898426144622581464993666844510973784768879630403268008911020442130343030153134685174465698143041047965300756082688600790609890021373582888273854208035896149790991557127279983291272244018138930884982668714622968394899928360540232799881902972151696919215162100567391732283465625599264451339156176362245069509513653510435816879984366296832993425556795909128409207486352537852815179710003549379596456179555006506056263563162531561915542048631375281903085798935160179517765485753541376429862021640547753057351545216505072608416247489951087129303579053287490438785696544236383832621810850613912166010174647618962823983893238982097485843172287772047062465853396184261149069716184906667898374029480278297403259454948416927737612166791452728879929450539194320823508818114334479909784140724176544862478503838734731680451545548582893915130637915423809646708172984087947888679094072160277381350002953807878923297542945342772843415120613998212363293966442965625115882527119993222879694553394497862007074741041885998160965031117336451780730797988086107491746505977539713883396145877919794389500960743709463852453669266577366321514786855237474882139098406195561079009123108794967094533624449804459661210517412568141908651031288188932191102717018695574755238963152926047736394695279422303207341851075354098159258183149212840305065566767657955479019629524057027179723123816885560639599832095747229164538279515307122237665712719208403633185573370217964279133976102464388984057044688373175170917554187403518485085501943892952627166067393963706580269994820913083295891439498866116781837116554872384981819494635776390770913601125036559846642837192372499933087018752650255716849102904484494900454140858084648784221267490282997264611194545278167784750668972198743277436199382768300540268054069396167980655700277201345685159280603622614119493992223440127506941463723356288073356637133208744731233016900990023684961416874865692560413626739125541765228169638496228377294345667144796979183556966855093612424206528110703198373098561030054553100876414508851968838870592747257755560098645618177691115000603524687822287586357399958074198040048734511022090559693287940750131177344107374132075143030315554696810020238019814819716824988126040306415282551526274227236688441803777416735636641843991470902499544033375765438221787411919527697570572304641232639323253033192963253123138011574456751408308788636337140778504799869596475829112363947422113474701913847171509535421152792657133214719581943645846657193550571007574357731855815750480006187164475016258867491202202786709406829447175137687275804127317281929265643840632798442490419195587130413288639770497059902104517915729497369656060398033383435499207220761323576671347725832168804108642055492686262905396776190881400609959980920687144405335593640303359304838374475246853375196179190683743079901812360868627350592087904265132023455418128620922487902941577392172909285567635970736195885269543404903983971118316331542209214569978105196179480993418373581205406921826635102568241761699890772085355375700234585790217089506682476646311475232560545376803547191398911272064573616973374185148985523614049113322352388044531526672075350314856136558009991299147750850343695537247893427374583178914877483639418772818350955901370193666552008682641707247313246411198321760427333740892304928177842953071746955411449820530960143872259728151232036055872816777940885784946892902778110624201716577652361613375318386567095425051665793075628666309644251942586131470710072055377608877853200413725781816273202459897265798138849571957421287642618635041123885516060780144558009047638650303735974519834990816119400838189765923363969570389748365223842287842425833944056915612667378565624623422772481015473458053263947007796941532993906222995597006083888926191378291775169178460255322648848563413469489689241201147796776702741106005958474103441464875387071957467605994548063381285100584867940623116964841074805617510728636121253691418260858876319545886088845599462123632657375600926178915299098462422253252454355451585638746770318979038832142382957960387762462392095945057977940047048857195113204873610963581189839072334364402878639634728536206331151725937380251273992341970181095858885649351580443227950363081131436958211592000086901786771222303423867448487829370079252477420861838242143855014049710509466903649835944935643342374649197729810170690710804649335462739734638661896986462046874345862242394828748587481887514543585395577494119580524351298682694872993654017313017237294623155693254132533841229688242344367045918129435866244928040189768776405769872735512876215522793120861331561849229668259093401045724564072980329839652117016583924620352499287886323560991364494278677901735566083421098893656307630008745590910245530700392400172896674189130101918811623408953580984272435803911281708943812875655798893282513259754964666753254558040625200161071792739992944448106476463285345214291013457663821500310988099810466429914818567083442803943514898867523096140672320970136399589916418943208667227692448162640766574023811683748224220392115889919200200043367602813413489992766984594867792045480313328619350465476567904884479833182750401596918241789903611830776459325002697786019639222362613642494689222441616554824827673793325894886862968372864401046323479030295441943949573132999476622067830278430952896327602370292868849954007028627714780856606043020318973943865517845652045057124127270226660716270545301678257847855481336736207991661940713383775901648810593425232161121212618613039142443704210143005082807576169085002548450828473977076328656490319717747844961095803012579298894905847422414899438355967908484562062606373293784725543457262163862006351671161495735270908330130096319811386497671758459895406638583833852804506082465480841116473439495847073323739797665422478833909673106948426638648983813643915333494057230615960917670113950450612046450282252070833813654978546996858259583624844417217144844522304997601434085480376273021531735064442094256806974275387527812903962679563543856205112404277207765384078042067284765786410452244823695960777795185125150665212766839235808023603693073957916740593897049425090221738597505823221499209420279008965951206209810651261914870345283263581741464039039891709210233294299545750578338413164783375777092635695070340043223313435109967181752043968920254572368657732701129503700697483719798826939192636278749403982364573504711694957886066624356435408011739794389637909251780295991722352928643937607062158992981107714124230214987468100198155400959811134179432562482095809944272605479393419616887975096117829879213262914050226841800029825248339497211786827539889653992269066064582840275151912239576274733151679453271337247130004676344965788463521915462327555581192038755754735356387644826233368532942685302873732184786128131915053839684665593094174131986704072135428798250915566048985059100018882975939698131238712530733602903062419941282291917139735755841379735763872632734319147823822795133229186021233485870237904402617941875383972058410858836147932405323501271101168773908330411036191058714335793934900489081148405599661914036895473101259712536296820208780034378184226728084453506816397668789938293687607075582892404682548041831409625400866533860081899378470321013566155286827613105447736640937969492819212719492848016810387473695757486046755127810090219475617764316843250046622441513583952797111431181600625975170969870434872519395686990213927308035224174498701188597175076589206903235402837885539619641751119640210660369978959624139975020921660621019817948088769906454054836510395814965675031438295106475821825427955372695472432252886406083535429828333866525255632245612649577408203086613939332814708797983757000214307557937858052123316057825606894065357811757786092240631690829203374333473891564715039271145006873605357167368782675188655190299572300246839909097929985290433732554170630116141428487682008990392930602388268787861957836715287728343226931192006568240649351145861837748588400269521397630080383840146045599803999881017153408878492372875931024792056742511150720336804569750042735811366084393710029034091994476347820189278355112953197061131186635869977561901300503344083665227678818852397041389217158821092695749005567064074307890486781406775281068667454321064660626554549277148363640294826244619743593261004263557307811399222104543261154471607194314481182290844703471093649542849536192458112866212645944787173988908217570219630614427302810468859715232433530578608802059259577633357108081354279156640346714486550846695680846287474531395254248224223069661380119939383275535129071050450304627549932063166763176146073153568010148829304546692359494260013613303690337570149978923816269284631972666857431722052864225562851915442820503748289855135356705026003006566249387862671793399317918793087477708497222862127293914357178050489710623265275136697546879598874203684560608338368385435005732836833810059004790272995763138101538924162652683364959057255622191365495019447634994279617323126907606840098459595091390567674638609093428448409518206012184451050774326355816463524211071084693718553644189614317602868133039561440435453385286760519149832331048165769229913864009854740872112326100749738270062428067148892701010835835801938363077714947184973743951616750722895842980839134610754244206012881291499553897211706030978647666686086123823013503471386193438526993546325085850998914718668993167090450533820224244896331970385561091683479893998459147351468225322211662790115897834496092315938729665075947540449751762385563698678722347522961292601301592654618059823421006078122627196335845547505811838321155298337677232898526260526484821510470916473868808681353365121417966028889561665165514931659930712169364373190140808759185734541896150919099108280348892972306170845658087087366096746860162691634319342342104553410745880917496324288188414742237548884644746757972302704123603265131323902572106368413488248260315099705643208726933298602766852319646327444677415685478735524746867681731613596728802985247038668469963476807428846506727584869680769486696895651469229065392101343090663719032984057722456905220837745517991138432506712551881425679045864843519870471569919089239790726806345206303840060285687947155141294200804828535782789569658948689150658960431953170256861082983383001790776601534888679654746431290687727505775657916722739179014349646253483253748238008479466385717506936014946427487609384358731775428302662441509639200756576477453320244230713058034557531304088841038086927739108703800307870057233415288444530313760040182525342065408396379523041654464562419120086294871729052329276669749377893593437591854079703727492452433458907864152458738295795145949123943880695673311512935890915842409132176708748462584764501616284489709111985908319060586934429126845824967074626847464942314712402474336931851809233481483930672286041940152516640678725646529599974421521415219584772738825496493324291740833593432369780069759334698792257151378646127084208233330853414369439980033198262297783005212597974308865292976702810138256681850261462726745514833477587269507231923525132472398168631030445239464388471087911991519778582450632496892998253172755865710360841492541949598216243174056668493732163013931239852409205555242560962853846081528009215404895932584600815565170922168366766162942098714645687863670735419163200995066173041399232027891594430940270574865639714736379426618606876447777402792637252207512801182510172812601800156282521926975996409795875014506257210070270692592092974471244974216779775956893275384888245907205598683866828704161162217476477492325088979663785687450950083321755639220553647539775270084515827447327387593866300815017405646072602267471451880381729842082149576202078603276915691628398802003878802058258644643408660289398383068001842539871503374480501703889961555875031690086216595678330754779296112874850969189584607136487344286874329924216998962711374149620784566965396617772209144183330543120176878720213200269908225519785205716253514337097645081994989117836856877652099914680051126265347620103774648408850187015626403531476814860303216143036457008907505143381371639247353442794812525001403957693093159686529287162569401039369945458271354048959744472817367438058190469190838085183404734591954193042757513788647933789582410571357785161152493048807297574449934084593622925950499219489565743048369481520934816492755165830498669780059427989526151584071269879734550756454995711068900362865551844372643842415338645570045386234783918865122388098854103543738771723035596010544837735921336398811731625997780114715406839603932061061839201610081354073403219410168727929002795831596378808251162316014886211408448058778038970231765902736109649912009474905254598929114743509275710808408367547525049009772909261508875900682745845699484499255910017585961927849758993680919713708449738407534946508172984463363589372716320069677191609710988852503642198153268007280149323333114242925697568842595844519152195645522939979700625344372262069991862011925691351671856768829848372097853761003587541312454115479042924578817773097817543875674291712068639527670421656070815598557559179456400619335195905554121488974230841805647163759614741595558460765717865120219463560044826172186331311900329765676739981446359504251346972501928656645791824236694502365175761864934919191790567596302815254567555946973906370174489420586175390164035690070210295656688834732832896612877660195331863630308577157764760016213541502910559244745576009161671995406075968316183996969674663547499825001423999215021695484914978695491955708879596309958597560985092924391906360938936308270267613129574475004109545994198803793308817934177108191203604022138305523084989497010325316481165948888420812833192135150520666165666550200466309325496853035150240316003733622277279171175657074759266691488280619617648510711328846315661608160234583296876194133842828514380530615521389166316246590102646610677965247684483199467160991976888929084613163358558800334375409509906563647411481496257895242619581614295702250658219995494126763750132710092449201185307918441788124127588627291651872556359088012463258510331438974803538030560548199763122549194448090266978412887552856021434413655484758985647283106813228842727335126417383626579146674636490127688009690215925734694962919346970417751410078090076452046573915877299871823601745069221456120837542254995826061816711097174892155980044538138316063671580032480112076477405245956339051243754395663551119158763772093025511847100640201763353783534728675716977476556841192105329122210794496531847615279189713879064301335720941131156985607060109430731589262891281874254427660541962023168169787784712893386574332103628864773592729920577495292074679278480564480322847201654763707967054420810375446570432346687504508618078447993549355422118390021714120751317537722898693807506443709914114993629579276022320494337470015485833540346547658312340278710750885147204417664740392144747764319547493007661416147751801639642885618218075416818885002819856981196898410405409634403468999598797314337780353258338073630632752286616940902428306222445143488855799530476009958122879750185049568496233105701951997960747279972724260425850074402445729982413000589865292009973211920728044797795437135733099408156334877721898686166227091520786877810278760524730994812697167094434561597729637976418704758230237658338812782027528361323655931760019643221345605799733148593616895014054881824143839903429565653661603153499582299368133685759093509354657491049300431570121271574936348201886465557243889511420402549048912898155552914610659297024225816914264347193663369761005351390813785505762425940998893102226368148133630932568162322310704205277128776910279588770598788328898946212388337019155159192274562785498334655747235338181787212167833385450623054905713108726917633863145762662061071464421347009436515333410172511686355446210579206162486578243439647311192055308456053428449075462965089133063321165416867264386577574736985630998860204384733617508372861700736268862374768887113202654385459966681984368209983933912816467263711997517181356491242572944201665193899778223939320185602201656800422449441195958899604619031079692594718078086072351750501498591951819391254247070461129060919726736682252303412074905496529041704724762357197544513851856803613409661566619770607407049770157080700453008540235511670856080478672499575412229687150263967034225786450901976853736441910177890256836105511354733501569274988284726553704417334839241261173057889390414559150941318762190165950476531135937636002756254274470706327408245626196527232794458130752086081676742366820063624039498101931751928474519360689268107512099652384383234281934947506960916213833175615472648628059170746876959041367806771849388778858692957922522852679274192876147507103897203073279371071010398623747413091467150140573065378651251036832535067839646604075954565359395467619774722140980530641448452609498373712022508657294859085811321458219053087690773132290469158932384682759769715214700865779859426204070181846284055390826040749624198435933794342335590416167218485620586043844711424984923145205785330707523352116024866291415623737579706311767588874438004163876690389795924221650748859301922758008989336424430413199182766353284170331998742135786360611191952674478041258820951936360128709273775175880212596664916198623099062720806300827612942612078846876770400908703575144728338556342565364825053458867556164497801797470157386924478929694196521614600772579697542766396439926744885747489794472183634936682913625535787682786019722871281487059037544507157765884940902162435780986351342139054626026578440662549038690445470608285296526823875457479695416741305023085458336536442102446537437046579483389420901449825275954480213007461999019738490832500211023675049972167349442654052218181223305711162535400232921921149847216055874311547460566332346925888079221853673420093298365310325955541556739853969887154690098711917373786285909040454508143475196526433862798946032796893498931510522516386808918224461230384605804865483231977567207483707035733233848748960755893429015276083916015002802680812625802428971170979889519047845149487517414752522231551115180670574016783340269644188820366344916973429241012138312960922934664364457776122735715816116699361905109310080514283339913435480940354959665011555100432659997731682046063977012216032003691324160140274031113008158450889744958500576175185757853533651793610115130275164844795505006345752151404738330674462034681863247883169908601855461722307112172421957328237052938894484856222281963483478758894278201942740392733753550317933283280724853362105819960940251812407302775156587019689641963165409197998074523530655369335945689714956780567181346512981211844009686579581950100046780782124951492029581008257770925231067569751901390059502194204161695520288441348498770082004821450020049453584857016090161466083395373366559520453270177645548504870623253506412708404460511061569835536315126130946278239022001143184152651317710972769772202942981237639536424073660059611312124144010594066572107078134180166887322243964496504157239095989301979535820809326095018300647995009056409210499551105504050531624297000768641977944872770984102435017691075797649691663579528520706209569915338907105053420110251345773451633574009002334521402389420044554218136560388922180534716123290280230661766135998066320506954250773077667222492100873119469292728644828785627283030650332694534778047079638485509285841827353811587276108984698431272566075712508249011087541548882334492965828322598265514199581405517891984292457090917547665650037063524915431506265609685899622400027053359410295849787957560610292052951543477754805991416332256097587956497446677104194022664594888372238990552507699478243218805642640724861508154455529351535474494606773615232678063978893869384816096572050883118861547208171587587604466714172278113336905958908590661344153016072021408988081573205683699641916209660852697776311700200575868651623582688705780977981111498003951044356532289608069899493185568211910917194564684991436042236279073463910411860227042295280375513450461724268109101532287199514925909830041657029038649710288539651067127331494614831546551651680738507250280076674341293278374595825723123304236630526333159577018961028166921927058858609423084651706067682526428800846417663417384820104349415197226050005443496343718000298867253154239427255308514491601484376350776342454376916166916924070757706336868191626961063194473804033080904158223097439317174934759668604150209261343813682311439506086359933616610839212093569017909315826943795656992864312801407459997195539836513070702872220959622654666232740602432422418257447363013784148047305416917030210743175232047584860051860699193752213594932401030758458953742628802086830744221124914174364040490013066230583509622896026418217342120294294626640703669981272414794144095702337639027096073774345129226927510892646612189947562352929281340965526667018902983695249856504161853573479897625705045277857291780352394499622379946030087831734786224208847474101156776600867966446302977538700587618790181710330280464067915576839583121891974408370836564268590568631411281627285837880620483576035548878438934969365886169556435369493142224300664424543752159084912114361998916253902323496993693685116577256834786111878113774469365220103926842248904409766104278240429343935806466156203511618009043944679741256807188013827682726702180745253940341077372248723925860088722977220756813234378188519068122886455737060350461857512888722959418424102388129170222282241246967390941848412753855950521678483476020942845174358540392896167549473370699578637638045251095091153410097791272086314081330448671930047135206945416800519498985572955836431322021234876420041498253425567477135012746030648872180504932618395294257667727741584889024531066902202492851590394438820309411693632681654264083670679706246481827790480231617929251990422503874253777263381654079670046844656714187256515496568576960922373845304289029140063367080938442791540285041727587462918333121732656518315251265580030386265290601263166657780294329735613869327311548595539834260539147729087784282447952500675454341146109010422576978141240487098770565804937099577188128238721297084670980183025150100606212821550067401162687762090395525644596108310959904231427379578612659411150060674990457891250901336223693318087228756050333708675549068445951445279570389746222919306604682308291988245877363469487304668231217536580481117780745734937872809163300580017578008144344015301234372669416601232511033882463335862582664731809301091971501901459723565802960524750101618717783645206386028319056851796947252805037112377280409489760228983500985063762523063808466876694508109237568670621499006093798331894245077875254033529531779313463609480587873120673191871106024032538777519440988837835218105749286982685517829184872529394965886168617939379543062086124036733365981934203090691498085127750042277160640697767690545066153172129295051644655098664002679377676944103616255330175362044076894457494900801756008709476934555287884954293791943547788162917767199052012528557626904718825047710974436614056646501434440038235043365800853433038374025713676469702187172101606932895922465487260636736446519852119386859974474841929979976805659802450915062066360446500476525067505080889610736243378489810288426871786328581101191861969713041387835099156758920584709847426018428895182276192016949090903009589267664185073343713341224998119392671863988233023581082972136774117141893458977482588839470102843801537873210331788251179555111655454549358616082948915935610260990404801996947243065265767454195416362463136550503389350372040344116054566654428195564990185376117407130162921972836305051093905416637358025160658050179422918899021144753671650928000002930221288014741422096408855740103946160062037935728271868034914710980591998230125784912420691333829810047127890595116834119047149264740953846801378544293114225615522094273265940514584961159015817002927115656719593051096309371205733796024170831973685800626144595397297507656084942085144855842988147143027779198071878191378827451640833430881401211322004014128382317950588285319990227417511454382165679052101165395671586438606627779599603570354019281464456774133453883132675123830648108591963157411762262731142147539135751442215022205086479021772505462077412468603458036174799161696731347104448639831206600196140333811660162580997662220233615207425865024347479980945537915829700841949467941278073233965280208673038959768110273633716491146483589278584007628872160424912234049467267528461459952133382796077832122881515143357863082800522678887971516417290198064666577706551572131544724404521689357872020572472762605753620220661426823013851391525104715454746338904489558678382417715915622030005053345143730108320497008214127229857803778254868319847796544654133281590712650988250843927142785046777741410069231958963085400572600105101899553658443783537943814636961473999578953792801846925463470802507077810521177780927049081010870654405928599561592948025232217921297301533232166536557749404614036076183674769793774020615148508635520846003221466318555416055212641786024315440279089737677751592821460855230288677407629641585744662759508991052492677132987052557784195086112372527831733120177349679760806817766731886145362893230383313175314629769665858606591015755619242578980719930127523204273494046015360645114765875130580874931937396366275055700692183929299708751445903464859368704600588878568623754565889415290281841509442133362068020084646987509119835501542139654966686413743980177205845452113526866745679510485806462185598345575531922557457945261660632374220107455792766136122158096414502158687192409025895542598098253980186842784832960843816520548280752308475591992988835557399927311788816081869864110092559916389653485279753421279829825958304411417132122722182778455522251032202457273584859074828071419431255343363454300729142670875382527526174386133326756971065516364775243120338798771406961650232857238723921091478508662430298734668172291980360153753149605890811959854731320107955168497340989501568793721413287686948552195115626211847104596766929148386334374527950778015651264416344612725845248643326174339966176862363707240007254322050542825566003582211546417170587469465352392532341672170526533427668116352639406904040934217004488884317162575034932002945550194099063945746656061211255200555353596672931474392941422981369220617371915316012672542735051423284950165467651992667211315269816905153644163952277536082426744354668707653189500870700191010781805115525472563326488345065445535349170252432029565380596474834205248487212689386545735823390798156100017439642238954158419975173432978052867283290094731245537336522581738570271635076921955748626512657296706563570924893386275505821435083408821321121672320119195920857328707673848893870326520188012994236439319001415728606759526283508856113418368528122956974516433159255265037926396629996329190309747351837097394638657869935173542177855063337630194190977766653111840400321223547869093722542528352153775879108718104482751310701356289027822734295861227382166580167541233584746815224698111499036094667990750592732615214832422412400104532742306733345817560311544759451948841354657595488163199865635807276500673830069411585858458731661666612726409185294121970897844964320395316206304877479282129273367599688889571537471865897925852387938720877879645830990214858490593696173101369886817546352538444935216505729102455862629792421589607138146911968669679725550634729001385360395401245510359331929554517231844869803602129789344651618565487814482271902343402692240498758206940705044519635462902847916460956508216218501890363139433731289024574029963166420468232084033645740557391101772537251182077805271726504888053791227177467492945980262857681213948079746421499648381543036151310132902478684816460744093556571381052075919278725391244320156046579123325359993402542682764691669146188404279688959872506041923536304557160081831537595271685384191020537469215419382656582296295019492707972816135791229429395846613865413630510136471355795044865104939426601161052763576189792756458614273060784356386660037131207839031571896251603756254180237966931639422846701028234163880532965528165807214805687718492417757152185537943704567426863762773756555714197284390110464472562166692047710822542213514533959161061388748115826700074066636973929462452204404035814847219968729931949620351411493564137086324509696076529366534936498477018126204637401759387769739373509524331283083715880873344657086008043093197174918720279817695180955502238015290009369402509231796569358447847620697002347449666203630718911201297678908474055256891397484928641035670551255765753227397037472984457108694494885006590749271509035043782717418750053028753365421472432223664740598162001455318321033186488005138249187532131201932755992177261962838635755394325322557929830830464205251281860400679330288521686362144069459359843711371163438436079418188404014741702173516219505277502503193089928137464725643430540620431444594458327484794363288059246957568739363510605963010896026122729287704154151224782516883565705415125779335300921940615122321463653840661230740677657875168304063494318057123228580091269902426425296263601948564190039712665183912388778143224286885138584155769124418501529877905907539684494713528595651712146112105933464663058817139326897459837221981557267263079098883018972158964386197894476143015876351614115340187780560596621779794995753035069628516801733408002638759836240689434998635660310386130634884546671849237016638494058623040662141057535435105104341905837053674129411375709064120796760645574674318588654367542721261038429137789821124091981943599490563627621640967817708796810994585822561834809342334435318366329289646059974440394525932485815682250779163543438178651926994196145785994139131013876086257949163197751046077564016305537835826341392879532956273979512867397259569963288678985580910395164290801439270307845632874712899453660748938500404696303831185562978784462108152817448660777535061193586070634708065600925279329441188995879579581776511456475285406788056301603466981792057375933250068669963106394046386182350840688506524804869652269474755992548856029568164342601180001338267090630469890567308054429626115858446369604900619100187315439907038637874766821694171649119266746833857836228345181294854722246054528802711632857823431496181695972905633955742914675246794266542145445568512448345212770540203599702664362468381781384657509007229636700954233847499779367167684031797885557055239985133528345468132777147810645447612492548045656434981913261363401620731926901615887206041258597637189021315682222592856842981423801436312091916464032658209061305823081304140359495028902894994274534789130541332445817514178589655233834894192320903539433974624604878008198941697306972918514084087573250600723919682582303973032872211096115871040313541242509316538705261445705804210758174743681631266663209535130992567587865980824242138540809552362907730389504259864695630052997569226352571080146785311693931377554126870930194187485201591786116038669439994231589605521034283313166662739575315584469414930680662795890148387025849529406897989856691143127714660921053043007165880882177302312079985008822983594366681935392104451597488367209948518700731660108021057993594380782584097174874265816718976415284791644853998410232015470935020660016879071352471947617177517361482536918030921777774020519181959932923561767529373116824830696875555583249313174678838898330493888129153484003394833537114862711034364128114047131547810947476932281507452770973576986306729327452786002450177528486549293355314021862864340021810870065440231795665562724472251259192200334763624369466663910942228382415597739947733640919956497913077536934548915225793594789007856863614533245693074852116895733807483400653347678856991046821665113012559020522999690601379300100103952637341253526590665067286644472281133247812483041642456698361479385000196357880292637646277143378233386187651934123082450791988394100035705779727522761730224020714725440763888009457841307584079015225674837776841648245322702557408729656877917012243505910801649956797329782848311990566745481953077785322040931752640219141550971603002771645534112773861532566590007280833258639351135783729267926560033180058099396844675452929120364606223611046661611812002259848370470820468411687775530385785521090807131154105299192654313133336793765321814594308842892169233488665262930393562853985480847343835843305856510899461248355593819097958133399004157125274315118317285032426778892468491675216435749820584903027133227274391070506052424653438341112460920676564269755633904727324721283186117219212155315718646151064723063329442708105822258260142722470736555531640323281225196512405986578878978697297835712482843716852232537023488293846615532091692743234614001659888742234792017209224883368390390613997318784372711437211417654170212891265763932059211057481121408013182557944435835601537864228361582269002984673403715808845496621145409631592404500048384994352488540974887219148890952195579162182686086780235671309318880203182686232433697517585911687620890977285363070601584878158286939968141695851980840687405572742530557335462445705263047871192879312046742951409116002410327797439989240714413991744510265874023947217334001123278652251797608687117206763574565175740735583733609604352363626406063737919176861453061989489748710400852671160486080091016599508886072862947915954207904719001815014655913889704772579053653085916406859859775308605491578136326603824628895234178693763030567504511646760283938736915372400217136251244702206822287810978408846986519289465354793499949235800760070057902804642998268111226646852069058146263316804086655892228100858162205284040665229373368985373170203709810513220001195348396744393876999545533092816495329516756437213755289558438072000499770582662540652978823236767172956137095693707649363544917076296278320265227301399719704542987446091846661942346570677129416256673692806479576416748022382897122872472611518666226501071225871545948975198785312957600866842756043510483621877105772888423289320367563355649211324804546588075392256420708808005829690050202428220742318274764068384677549575405312303932042971476695972275325622711367260092629927051169389831055646984538511000677955671136451763148988556698907281561042651269136287684712505698904441346531549460854957741884347373779402605810513436487379898876536745330087711119673450150282023257907221121152204503701165624224853459179383979476469826353542018125780724511091099745091220169364247521397356906402109446460325714295791610429500835526757892825327899133529211390891899534058040897704495366311248654611325345677405449090222235757221418606545283171938785367608487041922522900535547528064455550684039828715100960076975738119061045508015406388051825748475707144057715048572085668310492217423305646932717506088724128055312511628243390061137466006440210389735872227960662553326993872639305923294832547427956493501818599229670255852216073691969225497802280769629992583745394536787800393646200811722859221724901185742978130269863842879287451497442607810921746880934851570394807014658237696220243038715616401446164780065136553481856894209528809398175724648111842196337587535093041684708483437868839692088711428444840535446029114673171501654832159466496040653600560638988495746210452350806340476230005395255946983642241306031260081100770902947887514556505413541028256072372471685064065305090196334844745367854149203719277910956514735179756004217670635318681328776210145452023527561595392084935701625413523527835985577127780924257011783181111718132103601090058012901957512816849196903540382763708113723026703899541409245124608139844228461744768903575489312539587305468608127112431253491760641263888549156891928841489063885842620319285702506458937984799698458756735518725179857132150833869326702600951395605815830342702237343901811865408662123808257217355736255273029201274473697212439865132946053984624811138759018745550342031060680375064379386778704130465036903630336286497267541152692481294873449603547650242848969618790269207045483515737082014767068103709966979043512915290259837513688187346379699796543995358522017282123182344285574384482745387076069804501466735614003602575072611511377182158868177171226056455464819993918782197645216111863901612405828111355138319415273287254729347437128202443478725411071830535150524841102748777486067610841965409417127206329749563824954103039419632932110090588856272214711052044028636053002803360671758945595718604488371016702475591788938570171849407392194650110940170734197558798959513007549793332089859295034995990616397692845991818088753895451514031456469853698737022864249864880821786604989110749112852273470824626282297805877703843277804755519290942489344298182280739405118450616548485833802565144552388938905222009504067847391879025008142685138016293017263551291450819481389344434979935726680312210354071332433807758012117748792396048132052056273534559662645792601490732916741196657620820253501350493418246734701320264370093044471704251335285295950023312600043330176785291764885231389270158795143952834840869486560381935332580278108997562952956960894555877134575236636570887803222609515047202356230150126602304104519808012512453296005113328875821306348210189662512468500653859933735232578025918277530440256571229208191023166872611058845950587156663934258459598591298072483711322409924556119972258936730103820454520818838501878252492561452985266012927490608505333740394728640678738648238941444670734770554661724287356519230318855595715567134322520394990542249041757114163546353998541716236905920579384668571667531136597947483500177274687214365031936092022303435103492950258005678006894247163258451488555459392984204395586809057654333405172559165723231790031631838192431664721206138859383057732461068065228609956331505594524385290268799544813640356714453934208217574875106576491986354652907607751892915233193233946643627438461293278042770864362824206040324734226856938818029567745155750055734889847026228348789624931731724439537133805041637680418096309473051866733685720991440936638238973313333051102987287173270527542014658056914943303103528908715973453445902652686794515139021751658030145458303209267708999074380210416460583326321658457210295444734322637005410728512215339428766328960653623747538354180138743036242189483097195986306848790615002705346094519325793256589051147670187926391969293056304262462337315660578981805793419038524801382850322677989839718033740062815264915647225658972934054843834052127763597588354022555720412819987151089952056406876275720049025604921243485103835688812981838213225491401828284762339816629379648500481598882350214731353137257484324355098559115356205618870524628687861443796955962913628720716630892457123141179538989071511324149354530858019473698053358872603832633268500305734280792321927502318394168259321254829129994894207085487469846816431634081027493923235495168287186074498556870853273952514100796860398435884238514948156916127319119950625056042437569877472859775150459553657662446494960056133734682202735712071701930014408441285589850017938357303043613256220672187652528029555128138556714534501928392542382842412761919419472963742419714507725299904597035326064813795767408176117279395619473937312263239760029015804949187061112056085401594892563374681610716535616806524748606557751547246606829462867537006732349656295733059260636752332614047431443252944160149055255454989023494997139464532112594162160003268724905266747185876851442986172426832319936827681741063150171216374249464979665196167536878080791798578082659111545950527653337906637319114722046158442857182595142912723744273722665357158378777856383153995666569885594828277368265955178530584645535978213047851810556492930414891651175734678001071103652518904958191759080776164776284813402319454711936216718503131798958503071351154710574705419206122799627936385403578571120156220914710705342527607398384067043920087900972626288044842161155421521509141965146640795117905163426229745079540084696721264518249982569903909680390676453217995035424878118583005953207192241120407110403239129650005789973214756490787319462792775685971172330166386065514608924991868455600520404633188986771817512685364594681818118732892671405582175752003293086994421963346154303372152189657115750414864561410020009661631831854120751007989086981489867623933102347929895828525123416564159466365018280121536696945851205325128743021817694407469795340677603747308618262366286584911194313398451478101129202897447800353151215731032928756697892645398746884487710484233735525297788331387442460296190453475485617829136085884356303344714631176793856823187085209262559954781802237916449068307271732416524129418187844819334584880171532954291850431072484182046634748538142075313902464928257830904641383124011646071320640926054787068349334233922884946521746132756495875092214676488998984723818377424045137626027205846430806846315951058869126104601256816852570630621839706264856259259231332233979146061052545134622063868360652396052005908299355044983208164163240439116429323716049646276969879384899763403630442517886994971572765004629623786463038115828901041490075128254404136742328743601809283459928432535025863580043846504520928952558444424488385990787074335533470350870090447066251662933096393339665161613188010133496358541521569382222169996639384237740734516139625457584786163267646173101677435754168929314019989177292041073711085758288334015643504003125454269107628989412442974963341919437027967479524604942988050608169225133328867473100443321278933694869955006307730413476018727870488359575506676947454603395796096447836893710201941908709100302050548475084153061085972202541084071437740232747919456267455584046504358879953722083422727055211626463946394298171798959553237701663799338999263209842121711332789009849608638312993876280551298176306177643373665963623021383446217102484747112220693363616252125387585317067758711914400192847358971822770119917886798882771099584525484341378936290942657164598250174805189736305563651701808687478401526917210018067076193371272569133437786842789997627041270051720057632288332295480808319020232957311574025626225237590099111853699481507407335096097274980469248309943453458180215904363841646529085772415993517780809752061945565295878609524230495748246426334101021061890980068215935106058810553724124605532282505070802799766895689634543142331361344997728279826182118183203006882605400634307147635733580029301593034968194702058721795879801408592179002724841170406154522863327326496062112470349710390068231402498553056285834964085048931954475920384781269116514748597938655648873734238414385223598508461457570608803768402803723775511932311354780212490840623918729514658475979357341825348115469535380578062631439282069508120520725371316076420106072183610777967794747974479399346389412415490116540113236142615188730313341574516573903703927324168038450485620055408160805548220265493249996365290857194859480917006573938543453927632681921725509334946724246524188401510627036942834284319794128313667491870303560029208751315856082357572955985683621109445429262585072935647284636861062115443542692965569339255155393935522434765747178033441467645177900807644415784794932262475099800677201196490489301079364161285421683438631445122992425774330752805929102804290855960100419535839249801080488137998544274427558070982082472294904066252118948019471327506574825553508606477013911349312074094386543777923921530604142732772371570547048251246127227234467109656858110050279418611575613781189162332129062411734434822308302543931425279148422560563505760911441201954415135163841735283281315818040871493793673036107611144101501338496695412715076451013505336993070870197247995827572930818381623696140641201366136044053932894296561496676531383330713179887006223017681214577110369411832066516842613823162166421868254837210155687394991295456693748648774184426479994261557412720793722215341947118791720155181353039909004802078389481342042517262324239877438128268079066814405472811349373508093911380770212984122307712045783488540807719493716661318914659254867653649524755199667017369216165460732921872389843217519017201034754610852057671425479872069763933962278414939252332507303115440976598202533285318326725828200825855032112952948299875019706013216906176773025437465109222567677205434178295819918586944136712771557592842376612743348718670502108048533214016770697324426238203606334299482021486671715748175262732497436339258127782144544882061459801720362993361941040785568426672792172319816880154045552778648509809023115203020069632035859289627590416759296696713642196007348283911232688609068357334707024839866620110016850951146481660793850297504855129891109821846122311194522964213032757262859415257408409356370852398239240743083133781782077704069901793573163751001404497900790353636077571179751780303237065690623988079410642216190185430362103771816515116235533966500514466322933361083493813802499388951914339901121608476846744352220238468607402538782089898019373643860308258643323236069486045930814859185579837440447651838133258137320249275749633827064740359451543878890880275989183600693908027788530369865085976255554001246999828884231809492114920650330727697120730105163369149241336517465815879325271114274062876788727824470890616244765837606363934212006681208609184319545734632363551719446885283363117918118046445430045699083862261604671826282029163493342839666405183864481914035451462702082911347154455761006429307669636379631638636985351602445253528422323160612242784613886261031781214430325711522444856676651773308020663859000383611627824223984584997393839844271723975597791203994173195746991907107558166194615115144848919868548280019119906823027430569261244857888614550505337192379156556095453310560133306429200988202367772404162358999591535492415608878342885501559932871456722280585532840046628840221442476499542147015285413539634182033772519727991960488683483750012108028679937229046795863334366768202892246160376172586743059365032037690350183024675828907311450899923408411795417072414093740550099540759438429637470672717564070377830997471997267822096103772722693475488323891003105702159624301578173085330482244498229989638220350312216166270777958796158978281066608663260206681299806284388401809521021821122213098164986799035127501173229182132693017419655530574216536096153345907886427839582636773655979738395464109843915518666558854227082895518543213730155596365049602987621498382878353791078349625783119602368649264132384970917805059949395295206295930518284391986709294139336569746598587016205294195101584541068459289244274176497376184091405352260735660746151080774956112461896034740423899143535527590550886097466695668238547452755297612680095470628974835364584687274783920507086132054059743259874514879068949879073670791194637137564216783755209513134666768435849592181665342068023903917771444737673705457715182980909020224706092819574286122011896706446813697742117405107429391829470863662826927041993846736005603138161912503261143884291773080967757959523355134706727073496422573120155715016306477689757410156039291015746213376818710577788246421439003411078561518820730187551194387036212152093973208891115836215783277716943443475846558615849599485605425471132633707276021570456047658065578791338514164086309855294920199333276181186687119679357411254105937448524083322384096367605639989904554872700052942407651929932556950340216508135881312626455835425771627482275782072962136849625474300075837914779738824121487521221160859602954182818029157878006236996487850856593055511115179814534531957167908612240736087503635974187635119219907776820044482132262925037202308209425397989398875602591687850732686371764585323528293032244311552407385226134773088403849696053832059365759989008033910777068708855468318572676420563497958398462904689483711397858635870279266456460536588286882106083877496163155738629087623943478728110142027747951344369073218137796359917386058343712097982945679538927472981205004143117844992035465524457094881195584323445047428663759772325711658117396969374536549247468077784845980229162536961091107388110308581968798068642486838482259416451792916581534871436034826470819000469670953451073460322071283809399227282480842661542166393670581479301441965763195631866414485902237856072080782886610772052892196599128732277572375743696804818313978576599229309084788179838390758901816971744795592617468046499007456621574682873980139096463464911458512781523799435383384779493004469311306946417649005562227924265379033089361679485249527749735949511904777639513104599730104008569801391425830979608819012820592525718289471043400742858653969995691789333829796735588792882540514700075269293215495364023163980580673122908554880810480473183615395022176817525443937194960146744940863288460499492015961852205532177618000910674218363307227052385958661352117492013002247034161226164733193097690167536934223699548472934820086393130251520055600772692628104000318421183918270992349206124625266474142761821371480360600528833245282784044708672071100670937272714950328507099084983707259350820950312049458306797804100279679290593614557288560014174050287392365201500418892420668792454681833093226970619562226462899653496939881426149409154051408145916607289234458077411982313004272538946906283981308084876030782850319277624950544922751494476376681971912642137206653969947749693699692445676288838383590814740714891895526439813962541405580566142564910158932043141805888955759508669861390473825496922523015353331324643375845107905031068120785975200429919772273996135426973858976624446774533206198555681673576164029504198077221931621864345490688059373430544919357553243384248886283828829949765690705651432373709020557143823014484259278361334124377321567772608700369154323894817467509755114076993134218224997262952281972342715226194835688800149835788681635421573295231088449493696375622242927407022594258075961259260111143154818622575316728944633626545455563723119913726504189393964521701339684101143916410021125039910791274069858269009332952596977648644924129918540988732074179577602678035928014104623260492264107488463120768156182911046056732023831991452182191243727550246836451202175816680352811241385962678944922547881471018399468568726527968017163060949844410448405200904226293147209108754924273863279399479919335886174530826291532481110859941983888578487354214972595596071748680923754864830077965860102614297454029686651640444871717766596069277480094068693448599613863152902314397871422028829313119033799792789030566066243860390633364479198781067275776272233876990765057435106845678486489090246744434043310518421289244305427082980150434616835299681287193188717144902855546354924491453150327936621896373250367591049158772804848313602253827834018200761263259298066263741117719607314168675702703573537349509183745064707195914406093570259782269896720957389521312609969974190689727750192053527299851294328833756964457260196983695337430032570462480472054585123068159777611973317292363450951607642560597241456115284048558908161270366784251910931802703947004475375802040472009557701489448364550940688363566665014841461393583771675528530183066967462112637425733685019262129876106636298415033094225992145642870357481652424883288350592864886397975268917376077600358154108393050609749973227002933357278913223337768490986738719486611195370842609650610615485251883637662847170008920942715107022834028792422978232262803133536135388222574291846021678630172352532255065211367562555476887391080502698765685568366724921131339566367077017603095991869862321413585106278350894811679953540331765551848011486246792490370663432869708900634737818661672324794593694973156030398801960403638246039713868103847511065427590108882141311186921262640515631042197574727148753936908143761916090894304704142498640555097067749536250893966496801223920622106962794110446032633920580531325662230976761174568840579192733096480915279259918086552350063155326486990244771513939931573893817289593691564711958492414162513530940260720581439153261121293573273074912212354256793790044699659450345546517697793062294567038943049350904637838955134415444950819844903723971636415626960103669063089759574411034872269997354391725764841712605616184045391515603742885582644575238577096929149937786089243418252556587116137170179645449918132747926012042649361872242724916452707901691944823272971881553015314702086785379913311668127392373044693559132633734035212064185636624959823030609657996362338008033561232143680783966982084358918612300149865095874125654623666495830637735089607377040717156702277023641692414229333417383904684444747114823259797665390749639338115749012972326978029170640063101992074879281273737844905960524946093513886718354744971223962956615819048018911841168984955189182099999442782093997008882807705076888031586739672716527811935441258783540813363728204097311990013134622404667858743104473946651938581324219405159769349109508091478210727463023215295040767913498853702160264219659250979485785484881565356713654962188836384378354279138746260426868805804652412262690708809744095895630862970645174350055630389952580180810579381212966819459582843841844404598097096216292529133599043600854369923008108669327451614955907590888789095085557885105970478431661031239265148431840304897078399223502478913517262531683688315783870609109739742444660497151005073790813457652320710822774108851936513171389234393349538487448405026870110758993397841877758867931632856573348385447812821468406587577457262765410849251516478793934180701121977465416015923920939828159427202772156137542453407286135561178397971094359525419186366067848524584264161911441997196911950984193904252772150932153219879402468634128388111064869724242716556600260255290715639578862807916677332874621020264560572460204251705633843400039454530894761980118193531609177034078225281212166377964739397876640168628023029496417578195106974931072162820213661474783454930995833753354497688986020670198759892464373861344867751681760956263844901219699008010403896841888124304364393649248085434815577960287211488827366617517597636106083536792221230269327676231875512562316071378823862740373356508435830616525939302816816355985156928462310922283404366316890132788202114076836232579349114721261880833419602962392009330485574475372477908105920866656345848425487100998401833817626574734149384712946211610911237083936719336282905634194868874416201425198060615779543194783877730292287901498845775105759213893043870178430786053015473792171125719005389682684623823611635358874287008597739916671581096331635770710676036554168091488078254193782607648217232480424465409348010403974436735345492367279972200369652699797527976519103609431750194081339344602334682502584070004140616772996595325571687107783109599815766802796445856605265994647641300915285571994896134011215658065645708663964333342040929156632886391070615186433205524602879284839658763985429790751164221997432847889327717874560784593111776673105512428850911697376452222555524176523227058712173179164886538073511792399985343822786303943358042695087845090962721689994516401650711229324831934598438768305027979151179320691323787964355552735459285657829074080813926377523896446575177688390154605885352518028232876238998631572480536798205901542433964313877064820179832001747933333398308860718308801060671149529818741034886615897146508815731159765868124209215906632747650504810838275397221211086823448134915111295821462672353707813779625742206894133325488760940344291541021868579653919443043372041651682990042974430955412968175620068104189107932000894625067899066075488023103691319437983329227789669857395282078911763679325133523396335304261588688533708197752698638922873979245728828490327817956678620848334231022684391227600371760022082049967449350760844876486288366354311156928298445108355839153310597829754555199942481554849100208284954769743043800740383126607209270040789029246247602867250402127500898154014265503238277717769298259130532755244474105050333838055523632739172300074745752106901495894210513173084225312575254079381856382545907761117875602471370288345279382506942334657549909938014176013108636379513348150317790407132307572578841397941100070431993017445747217178915373733679407046393249246678900258828821093368176640340108430085037327790864464585664928555508570619293689416760701523372949703380320648644494734034125284427850603693352134565385007715365130797215693707918322322463207646279026008566725763148275001779503008827472957847997443951279082103975569255958799320654361201575431541838905519564952259891026766059993444447495591566075075406439420613214184131966859809265980934405675645681316325546790936625360539866210000524025897431167117422524805949081166745356131439656688241322238720196158115390725594190735814151083693665036465049769513770705105302392850502456876978595995558333656548617133173133454556985988566492622966993012995337434027611799705884288796958060494339801142134543403560762278475327835834729453098937804177037614074232724250395794643957222461082782433144035198898606094815374476262906218603018085418671093573630405202250356683997670590944653161969488388038114394266615525410220170386733735747419800886037382479435473303113985403479718090367038764594965996285461801998309892831885295494253919477106138535425646950415527530589328831211174815240226348600406535020400220658416529134016747564920526636332607269671677593249435088678189468103529634006862072426709479570729219062197190414772490822848641750585632139423517787485068153992247772130025299024147746373649287092587025343728090116331127474528823293939614865573320845449063374522182810579241186546935521205790118720097169293810257537599952176401768924378629398058941746707011438981811595655742228102272950461788006002826358239567564489946761469172963256002774242911627115235815985288035734271398917644953221927999171664418121395632637412223741224017339885170461612291479225136134426716619254040680995154714052848014205487171553821024394545522439214074486729497424262606819125114280784751643106711469512488163714759256787785061730835322687161144415495624961318239801039136236084314451862302621928863085863022412515228583367512743215070991755016323505854863566171218177176047313020306562733204871825460114989623209976198202845043975966112393365752726951712906145876459784419509050754894244953511236944256589527400377435111356713322948390698561334973806396958684099607049966867959624048244983803419829072182803094827444340014235980516416837028866620563178826813523191382548919625549726394307911483161458565374841493891250829043674793971210571235369272455436615335085143887398390997564970873353402348860559833604133085270575832298272430643375539017688256761580250950493313026357328287829035787211043352408778699922922897805653327415802399737976008800679370941074068820313178658749028152620620754824751506667874046056595818873953769363805343580795022618093932362724678571427216711549136746997445895166038369390756479391593547716478223155538076246004462724847873079154063719793586934860502960549220503958109014109714434238336226743407481502448079534208844821569192493799976842371037792036129355134693904891298406119475873237985895244886785262532165002050235061256254498429219288869348979605819278560211214922909761328560658772486029075226917803694219957235416201343200557687347467860362791473976285010270602104870741124276212494437375242371981278588420550016431721551988710732835170766249237226535059345274273565558794282297254546154145289730871363669332281921981025730780370476771530589445215580154111637114866142479296181986410420940811331359095669968638651532072261923605707542430345252213644168842162115623619048669347050199202764067338531772545328614057751857651912054212492669835354303166226224033573153716708794750841883541950113661406804399416039650146461571430867305342111711409955491627324592707809059593510919642518398601677222141677625272935590479313357102616653792641958387627744565347144426524488369643180382072380664784095780699019717284386744252633347081118471882509409163469526543892213045444979774731167927325643691682343033094975871261826874000049257218250985870563158385449169946149783557711971473384189370188712502786021251456508186744335719197707160501315710240538720821267667188705415328718029017402946748238654779794561970657025476996668433199461937564782134516314149345813055276089814697921034540551018782487216475055337966180780397113074386514158301026772964408398581139097710474148662248767513607437782394717627862653553543926428881739193318294557799940479515129085321797021174982750074910241984584710632463851034557540016920043792152773603393728401909027241218568779971911810637471824661693812409696642204321926835857557756097045566777156505067030511893658485560033767646441184858540599178809677290204174874667870847136110725068604103087376224982293855633808807705307956617516672338313086609142580111129609390313932397562723192853104858301085519045334580631474973108964348794359081025349986421301811866432495106509250879140202103261465529188108480233472732142250392074094836960529285147790631959473795777428669143834248862183903830202972542960852275240113880703635687758612157747084692551698710031520405741590408090624985478080678312255142130890353180193891382416378265520126162127463034218760874656778842632527751303924055606471346556288312405161948750423857043587238406331521529156324129696951342950661274662692681995728798742169138332482705591534306974004629655802643431510997441103550150817323443107367163727085974490862858436218768400134459246935325006589325538946922700105293191678212577087290297766094536752955508859272305301499065527693044979016289124893405182960761761278911153721005464311852285063819109868041289252022617512321303357083413591767634354012095633744795878724163999459394804963582111310509342094970312121675070101785148806249231041632539688090104843539273816040849356574086490817728269125697750203334992093912643727110765197956826610733766131028341768957011250343914109526715460580125529048295759517475007287428410760516517764907782013426759649103245586175257126615075335812458931173741049418616908021782604071418035155508678935097926967334832817578304917847232502315263720540106101847365881030298295624256057167616684799603829282446373129473421060956552973817271824366437566904905942774871413946820767467780097566494454913094667217908392602765561950683257672204511943033548383356273985936591303721695756254436340018552614331701952917550876123573413780153133303544037526506740420018950147003080185749669251770098792530441580102289036589209675780401277635696971331320471299357168864266374923429672032109344049058239168376871072368013433840651151014157847359571795215506239252658362964401637647098622036692345962857416469666097021795585183418254348169767699066222690789773139398963925226206043919505789870800819179774366254253480538347538502259071227997898517936174776215710176944150878995358344195775542995670926562642708817124410756673788159488607966609821731777770561938884328066389161749716521428549098922390902334621849855710490900490427122700368696875148582207720037425115908318476186628136036700447591403645059489123592399826771370328938566966821017054007154576178884943593261408661798794261709188395241667087650284806996440163520808426725264987778151033193363170974003302711439649798377680234082576461153400101228320232241301170974549554078788670888057474696544409980177195953171682158607594339418939806339447943403456871437822852075237380751444331516158267463977330934484037146468314707494232220384681884835022421507701791546994386098832667554974488920436562439244434184947578958367069736991621028697592017625499397012169766861286704973854665597140844534089191055191741028405411111027445531947737593334864176434489519559109911775287772787864701732758418056775507660724583952262018698874017751454406838029308151991656614996773180290859285319063878680328542908174241711272463231061685494906979744666172866191640769660917401935644732402992994004166551427439967257059824720217445762670047482481797458553620592218358357266410215281742605312264188072894850667673475040081437278931910467999897475349825394000229015408777521451359892101343136122130297892914764670821032968265235134570659128547525933392686233209575676891675043893962517217318704463394296532474286617733775489333635282703490357412521298477326439178506148679811432308947002806030248331503667278544947634216428689769820674222315579360813359338042562489071940462924045670336584474010921282803914636616286854643242268495290434907912403153041788799385736347339155370814348904015224764327820463395890177381956587367399908337926813278841575574037883011959948227700455754874224458995774658753798285485183909820919143986701218003869404526304907334983484045740262523770763131762161059997447656916834042687643354958327809462406034077993074841057806387569627297258173682166189723197444075740350868487091799774250123345204078053725130506905883359249672557591193187382839445475680706186794640929352545529850111884195944134101484720899135960625278165397425000931492478570832632216940364167880648862095578936821698023847507120556093755370992902626179573952709201660853351698359544991144971053824337671226566120019519736287127396336500211473500829474926465590027608558007162621030072526067307302713119585098313571556234087142572336549102318042132452349128298010756117161330975757400342085145936051289646388895552779374394172505682980644598034369585357926983277780024074952901518815916995539016321155726001984549169119461087455305112115094201935846077255496272557686111984140647635544755676191004675375647286088156579970034377224070482096005464169346756193381591453745659287357026951246422410326716575175946256086385153122633463469816050693774064473638340345715528498735602566926709612203840860206995853651510053607838187957921470201463884268501370459244777212091309296078441847975410443173440340122780346433457313041073614069145416113582290965387470111210033264895985659542733242343951505787212816099372820254188874691866927602001273121095450839493607954350819622154064897793904031827030022280080099993855802772084819968770373996031849039267826959769929990515227017707488451732155623976244918180262951229264653557942059212755805652934571509736436938619622436819304448376972695496647931135164032967974562669514178641350621268105312420350198908451141834664328056245225269211858296733401398064829664220884714593766911248147662131704857414089312184632964358655719459280082774139024321939274693057508111092268377807421026404003591592067156652368084666401128407297247506816818883135927844829432550320797387581917243052213156524407424653148035465537361229698094414677757702735480604944646383826596938249959014526448529162314276407840643391303108864069793954563197087491692627763462445294707349235823084636152752143397786045499867071467817562510014598329520310459419766492655445345877037420471406092041236157510427910901776319067124832511079157575284889762352751425053274522931230128551354633772149568829900956355185610087728508790553012867104135134917428859281013213541636548022335497952444298908029892635025346558055361038703747719724404353454889431978568992037006503944990809870762977326599641032209581818278966811588682555955617017077267053008478370595133860111440469748674718341667173258149672585525576792391947937532176988656006466481695628960104340818959460111997290323353990109871526786779189858200610856176879325024195693171176065681068334115382485191452455627250276600869260738197687342359789556534403264969159252451767819902587663887370246149418249774200756363744232993464634530180888181676007027860217663207726815923807155640004122713616556353673292571641198773786708236467651548380983756327561999804962582494493109974595306798496488930481901620409716043453035269101346984624934037081610019023897586237078499098073837563698286655911773702319837495095512434778923918273797611606348321651651158462911035625499083589469088305708828302352156493443511690726512740175491934393482548653491470396510859343640146965450919718868248658387573693892989847203325013678887658003183060267581071091440879296809584498588853159081636802594055262418014693495743876688019565375002865990196493992349956247296932726012266239910066377024642833630402623583685404518694380856566508272084548322516025548727248016351649792091403300952980571980835527987428085214414786950376134489413696007902409002810630288162396227252881030933041279173862840056480785320492444569418314142680328818561163999501563777757489663283695485270935134896561395817774539670947249869253317496526956624042917723248399100172763478951879652767355528476189495740229936814031538115528939876230093047478170200819124982930345469238584321977146785181465711719847309326377284087776143078943571873919814324566469166994841049879272504887821982108765162550999876215165904297969096177282565527268435930839312340044723918513265433917401011504322103192285451348776949420473805500168331989747464607093252451777449337507317075546836343748359220073289308325434683597600446767607006906562748516221603592738458970479671021602298034838110875595899513304076320692212133404472276810823583579680954639686621946250627510904690989829966337988431585452864480588047270426115289946006185780745710447653777033889408737657522922420181143838619205927450345063247748539123570536881597132930614887148430920047456561169599108040408246800430015735932871749557685667890532883375507115361321144603866174780338600559766277610267413740737645625833756729739827274486850736557435349966837257475108786691919946902746215227838850474316089152822689895964189792195126491539037568490061014709326264150572548094699772111595824263785728612935908617053736645843008496450309601052594348848639308517425718844740945059768603969899889365529005026022442286791612189535625931939797074348504778287530782902075880709154622203041392267874622650052869804439756527611053595224371076191171032173819142704316937762979215274290289691218933865900496577767444627637773464573648485513933459091026548236377855492587092912839373074383934151391100894324737979643766308707000042319312577487508701923267054200426024742990739323043166658535394879826645468399909736582343871658775919171885272653959669766063060107418115036585049848163989520552705022790271110364052163357964307507385382592047308010011793918440121308769695305607224792916327243062226692604972484788704237645489584028885545236050269949351145746314138273418571815775423543711215441006264055777735394816834324248786336532966733465139757594936196354697619951328581014944312095784965436805118373188228821237772323334923267547909810299929509036299457125996961825023561558538413734821785665092605582377375768432335584522250184435030169341112723675691278749447256031712127728902622104482510267820708703126869679766400634645008451050204392712939929169588529450761715498969185734650567445348984856141760612578790293041368025877436662041866535414470586189539822190441562163255064013482005600602273382331323262020781363342552862675366624236288987428227839268507771367567975658897370059241568447321992796089531001153868302638387090758406413096257113052842097369765862985981011244867915781248304802658597454093931178649610411990536783917482752174753112681854849541152297224473025981271913317646742853430085901872430609561466262795226889149112509366863079654626442975165386232212196945815848747087378601766692728081893703767046898158531159856913245917415525079079732668909670163492366036031893321811838260163336459302202019520439696232326089418679828192247483654954791059092427689554081630597864203754405992766510383924947619247606900931376078753394526697425650150442096660303901003276157600034395877783035803006570272331310473300379464130789593638967421509754312691912878846460520929971260628405291553841192918626332642924227545531787555795833100360615665686321563264078579693789117199894616252910920407843225005026190706306697518316736546105187686168615229151564836230705527885652787159965840290709374122458429019757018080214538150844154892063882288151745395060987068745812932416705043028739830888724989431385855827431751791939678371581994557536012942876424288273667172066879969766117563381944749822090107208377516165951787193957541391824458164373012889950227777872440019850789431589027597646590943621642400733008560185406366693531927573774938867414777493635393540327410946256968661869558283335957053800100198155062596578454353649363215080911752884769616911704992599590803478045001195495999378346875173463535562671900594219243598293253445620092992156877349242656191071349970769023961664821105231282822908988018087642866166491563515345080207277442891492821682639819008308898098313106125873800808889528800222008224229467549430215678390843595960301290245501368435309708716719352636892746736267432785032766579134464513616526995088942917610246986848868897077527250496022754648791777554487461365526358081116761499098138200252773576467570306325300835067136779595899183672785953336214508640936211685902885038727285070738245015308207493317464890414291721395188902423729083347014505813178079577195156106282730667617814399640003730325650964329706301631313680811745227438132514612890943796801125726221638229978133675247418199338422984971742213226609300532558645962378789299487125707563102162481397353525097049679753245058894463962028454073643137471883833909499639356129886308960693843817176671921001882230201616153504930508350225086771439818263639382799328487553603650879384800370872485496018164266078985515092446598348590816270942166775005404962117781546688573846766402437858861248901939385649514377732341762480558162278995379007471201470163830814613561599864792403712744736338517517758438616185016423902472842466926063578783507482790204605276840539343238621154828076242845402600427022676155548216652942162492643191542225421748219857618467257980603991860464036188484781566942818866172856854858079976381390674667865660625741655970059266218369497968426951901371535129418511936054977321490629046399411519066107045760941739846738623269220208067605094596838408191966250713026171400510995834773487136663189690333144531924438353618621198979917510643216915595316624817913199999921029731306797507200431723372380227656010242331551762248664225387593522019348465124702636172900102798581212911640751807059474406804894380786800289404147046362249661569610198026712061427450417504483813586457061599423167364338871708321292941759506836878066145815197671183109470180260058129292972544630182036375518675951398037667932309644911204374287831008400289725793715664860872411819860764759934935977260339124286915368290810773643706537750937399102234442488325802296158180122643314329271981202036624021507365228911260321792766476423702216865443983765059140470428914420409496068819256036265231830124780939550106618719471367022768794963683229927589468185313030011060417229970627553837610439626352531776125115082480055799889948026803162799510803104355226266776637682338386609740783034052967060317759289428576293143258494409751053661208699400540992125614191805869605008744756707235454489836126854753179328858960961127600497202015402385803005093084659668813228214243033007929364929636049586115573725675972986353859384749585712596102610828322370887047074825814012249892756324529792396093908637839020029542312920705561638504110391921092826022693237434898483181796861609867979418488799355310080582954900605379671149562599479068022849252198039465632586415117426661448148453704786625661675972122572550891382720574055086566185195581435177991594159409027213860104423047691194346374819545972992551519381796467979066403884522253253453628993789026261936194157164669438526923655275305264374173294038828945845091438478839195309190579097846427080383870310194135869198781861844419338379063903439938365149772628264903090062860968746002505407030377971345271947542841098341129744617515860440755378098150247271163288876781077945777510492774880644385833724013234393545712571291282409468288914593873252629869191988425299054673349786361722926084515598011953598893153534391700535473484853731143233111456236608704651481075077387461688343408587254905540358321082836680127219935093962862510609269438783441245213741059845994855386212874807235538439068294976768795471839625062957574980288854300617409145038333948840033857369870122810578232861731136442851768537268224684097481768630439281176403908525922341855497921025304463895926686798052845346654672874632309674945889979375212696200770482248126988067632736696330393053629427796660616147839436079552256917594231096150050187138594688610056333169290917041300124531491636952230694101905803685397566885085633398047716470296573774089962199031768724826130108182533575789011011986673450996083413513750483107939382333019273572372228341340066463838178744135105231468237922295968693442822506816635638006161056512197086266732789308182643881855718499061052429019314965797539927689121728525312409524905843543149646794921406182781741938237111255904538818662152109453289082272946328295501559513355634372675264632370703934517355528912280622865026303237341544397876393740850345614410188719230251323736981535088361706847292918140076606041794454298258339994365283074813103752180813220799768818707124273932368630534771237931748276503158782448347135794975230381786599670551246068988955715784054155861581791456633794806869498505935172136974918598205562685334885343117545476856375115768016571096740751639061836440927657468904861411137333640658828793162079669878658173520939943052842939847819308731594073495427279060284750750659891339957197477403122173879505464067641743412790377392208233597860129889937993527134178621633772519227205311144282366840244259450237836814254285003142105883902605451534284768778368321790668293149097168188134905882121512325155191368314808778797413008106465374722026228307039156279684092731754401412573935489321432864067985021952151729994690453360827556306220099368007324075644089447151353060973160691383217932544792140834841824323956074619763641499172932176542324989654101720920280165275687337790555668299824395356030111307628984528020327002201453518691384554943227854771075238157896584381990377392727507873826223220448502777358998396150093456256882170115766735498219040599156065297465781142302084513619304262300303653773142630793205336955271526863899908237874681842542956991522440178653686467591126429817047463861497137639559746289120891960778854032714791075101594932594672930292212986633438019591111779656687405438799633811326494993694439970574241034959568360199212662422335597475816717138108810196571826174063965256658183196032190263988191055062679643069791838429427853607813568551461410083267414557602007014318595115288302711618116470995673390534349598224391368215845651666122945686814056616711822768433274710045031089893198153033107371810360983733309251653825709656683067345917150680675216393717253168881471234060143492283857410234529418978679299068915744546100291730555698420495092579614302143479009241562566691617249101273580461062332358553541950889222907455624325031819633500955276790414933481533431513972323283387491065100436109567410669953983582323227576187010207960233489253883255116402057840900965072727218636113018661131574710627863623937276379161674640605550792235092095832208841060271911600129685410596460645696877072180321419467195202227037628262640387735808263523675741739030991983997456535324016155501292704385707083438723593041110404822950543774612491644821773467313381907191417394315233012410996884520024316314941842292036221804368576268789246292626361279891655212272392288451511508766260028430436216049998073257725269396526595480087530305390896217285306181027067299708113248037420464014859710481033826649991604185779393434200875732344838687899708959858938955266411428720432000355609321080126964178742202859827899862099720273240936614230300323943436481281136337957783794759698838930877772353004633963008861675414236274196925436715643415129947080812196859512255571197390370155287754361989700839407919109958293930545038236589719951368544012596244190080491685994633977765022528043997160317551966157553358426174516290248218895414049437910229726725235582404178136149285840132430092634826761861637119904866890293988040095894722317664803267938756188540967325756177571109707728039817171979031717567285696339487086465613310961480721514291232876533820265610295085894122138076616483759710263150143608429554106199260797987078250031350090874346143773551363954106940522435809537650638666092318654538867397744890860183694611365691100852321381908105616966424055887432874419311354466789718828422343874612254916244426151237384148232207726100537233573685224929426377154100083098627564835759702334116971793459493654677576022979783075955254390896601914154234669841799586852800247899085128345430735917199338075101961559574865083139066293895292754869081138282109818194062442928769667913831042525261317647247510018150211682546861632132982830985734727014716724946950007248992514378029405636325129459039151280368307560828559764342621474262862086732477553387960212745960281946803830555980158369728692344337876064575074816387733307909631525847465258002941235340759529523608094981784038110306985224578293833585441510426880317252101896519358888522770323379167168478899001547234263273082041401381273865643841038055433157327742540794767026047145153871903715534111536113520776447697841735290905106876501990842639482023433846874497563585992446548794475558947455271299356613098167558208829276189119981280292057090346848305078361061388247946375141793694728418296511416546126046442108059615644226285504198801056666658954712682116988525126836909701239004513114559247766564779673736090596317167662500908739128563604899108396797930994562701029213179643709268153094191905222282059886817635458300470289823234666340121856373374193936303096214484066261185569996595245465560184467110549200028862682569771356688947954196457689328596426329355517479088383171181017840869855656262323795829704268105497720296425864970060911461048343249628974820452146837137627212067958465884310766963356802895248696702565878100678485999836807543819653040924419114597158237812985923109414076896570190559358806432402218108428584857992563397602170716437701438408507911996522727330658535542722293036526372603604144740691216078236232165992644951656372087402852945693942753689207304020443446802845907172773598171717292200120741467126342799280107938464839111491937704705758382003199839931541135461225848783367316027458984555453884109435330668868193444558579856326943331669722915455348635383932623551174523216072610266434796603081781833604851714505862692014866203824669335022451034274706636010601982684844439667302783617916564452241485626792393660161244389215277090726410589115511382789964733975622991815605223745685328690204523434032449852609349936967756245353097225668209006846408281416399838861410338140375697332674933943115355037427835433547628842903950900565050504653236713012650508443478833050215305160060061287899782900106843940723586194060464199190173217459205740038034780885591296125752445991776653602884589833859368266771051773754364802009387120092073352174768347687223722156687520673898229003323989546748955680631344227780616939918255685037733175067048368604514251044486078004815969953823239458024960432436183486133995138851171308481378494488138484928412661917079495518826760124938490766051941479376239853432507526563093592759795470357386451812739944603569618720926360498309506049843974596179268823599417708159346054968522013703826352719635014373979774295283796145033481202679321323685983599911656488205293405394444419589932998713226342411755875438260785218321763866222789521206601798926112169108913328357943146552993779428767425179133299881216825920549874745595067599625398639832328710147489441901997713787718376894408507122738807705826245521577170466456768516405388165332452423431582990276453568970946837851915012817890790405132235521984076298988224597747014574897981196530540525805512320262711831204814528306742210684147021452164229891898489231583870271972346744753803681845597906177188264865451441087990420449024681130289578392878534333242246504661519099401568680927654838765755576642780428506601043470261631620599809868317519499911784815310978299643845389258101502326124204017370303353147776491489506309077842813714084352000215602008585314010881811332576292986988763174087566086443154969334112299884238456494417710087472831568730319525210977495297855703365812767459454236556329534084959363878012537802381050042987160632706664833726923415981760253022708152561495424943085683878567966597019658450714964174209610679881871096458193053251917690465284796663872722534244952198759526665021516246713739921178472021965341721039285929894815950827232102579256948002376213349086677046461695796662642693994279727530729204852713395797788723762466862196578385352073545677440483830751011856313850076149548373826270863600327463605609965436552749273015345161207869343379121926354926114695591444037050634968988975547825368641607921590801502774566252697012116948922458017073918034192415459300861606953437625017725947985564238800249019417467528365626666365273648166211106677789634920960702296473732909782519974768046250960730999129969639711889647583750583117503755932894849972813787620100072987298132557640345780062232718050083100209154959599530731843254821657995374111081812481875891921644166090769008790508480991388590505805228734199287525653757325381285059656862892284801686451577515510437369874970440806735862283842900345560220783480900939160891443589473333076025695837203654393768701365501779786652493336667758759040408989914386708748886791494600122055510000021328716209903104848336430592752203938234782370382911250225096759905632809981554259396451596662426068908098917169608004951639324744341510977770052797166833565924472041676166958173381327764058339082492850551072467503580662096963850142146065049708372415980212674158755109172471295102624272728634478147146168475942951347148848119168161930669918558262997661161314295647239091271948207345141610739776295802564090712631255400380114636140129831194797817823201663628986750321272089123921929724605028351808641946979975195219880846339129874457411543514918425800091408776822067621135450430694806861894975709579367885536191443153793129319654766702703432634007544583030834366557073983695595866491305238952074824073961092724390140567883857305750217705425139581515547976551952826345764059648255953138495037324376133979932781163003622784444020825264538387310361381761703420659229114508975207134863329182942220967818889029025748813826408440404716386882824411130467386777726244468783113664704133277619809610618052672310205170551620612387138754613542419746390924154472591062274553804108528120615606858442301260902987551770265912409636351368397611463879285268341128194820400231971478336098740627106340529943275229887850870064431246652457445896467676504911215364780675710620693352916230419981964193511134055715532011156283951052670482456201396498702261206437127649998634020254767469629438503042619933165938048610230130986933340626796255131464436508510813720835239922251682776998227569484982031324773314138309394942640786744858409498739083293902495580265971274024275731296495623037934974791740973636626328459556014586262533918539494214361131586240785577402974692570279162864626336470292674227640977553832648872276184717007946055398470726444938393023342886661182032142551271580281163114408438277296969331799322615686961520025986378760081363594914467306014151180590091248994256786264237055467999271010410325140413086646837702485343796788416815853398254328653256486633972076166899732593523963213823635230401854732087678619083414036011522102849746913488282167715121266798092860561833528128894486054128079197086809914667209601567392893951099333357192035233242845105660968121755870738202319550623473667635018156115989284765893703633888843704822933011379071089469659606861046284504197912986796567550051835751139857839113683384736710001940704282860990494121594996849463537563686772666192034372481906171970994687696928109310660986305137499888175914433347770428645305615319517610217486230018381688305204903251828993360690874715507523032486699356981559650949967816144714241039823804429675020712122107173908848823311450469678097049083084701158542966889359623068349099138533540210793774782328250909980551041066161532950065596300725712582644325088292287597801160641534790700530840909272317035165443171420258204981734129760111377865175668303848029759658221010830667114670487567612662632128726449892416710343593587092318096415115597858011875172846594668393104741214369908407462065318995323778870912652939088152991701044151134430524866928911908699343916540949005999072033622790749727535317603680972020140974696451004295769148328653091081124256227599888483348743728239730100195244464310811244819729126126170662732559332272865195348577092566868003435578691977727550056706343149849747139211094028779033693051643014279682419926722986884419851326002893346639079418578601670146843761889213942962983842531780481918923562223543860038356261892361367837865878677131682034138623508587789516261286889180295314294945747206918366711963138156969465837277754007929510614010376431666466353879881840388884245847462431244444245451371498905126736356320946200616915213591817262990419899164247858485911499125187776029251957179443489647199848603763278404189593663774639806109019943100206352372498006736814694160543745236297532862980957293633567234855294000717230711181502385374329422301915240465658911864809527770643376459706258987305659837245401814683063710718596674831286059627692060665072118875509035441328083027107861732664064444646217836463551772396231134054170049079520253288932831142119506390401943955170605446278600088159248749961706386729195238047139441073933554786312052807669062745792600096813137373520263494303691246139173431044126648174091646222208161728937451266789111286211643044986545397722460725588340702088438025020589551915575209715032878450529248506827226957615170865081323196315557354372806632424809393218105540159549738576435443970496389601478656221912544654213957607901110637442550473579772206883789928008671267596931803831930542577278636838518727612282757523271228244669042232394501213596374851970272379410415610920027726209750290386742630399767602251743163641417904162653614939775948625351411379037381348234623555423226764654057368308504930744770974646623102034975860169053732489602212552612809412117340774837090490744926382722686819616664957847481160645535428133548931186615290516941283247912597177269979273618589688719852879202358483410902368660097198014967838398658076493519775179927859544080593677987472035622045208147413088391506074532956534307333147102337690660344007306051779348711891582728320165134100872716164975480157078349579385155564460554820761065213240797107638608876886873209808995959738780156815655408922039502688156650425719713025674367553924924006697814526622640829517453266891142622817540175047552553189159582684080655135261715660344025443846233835030365381766772491726853707739698512868090309249223698059454224653149468990384444471737623715250251439494918439460762919732756168534295658925919781248774222704194915440879269678870589549732162486323571709455535856735465882069122892413674102702197448043944778719020041159172073144292131710537656023640788535316224887242011253031283836385784284835069904254747022819967530495293997262396791400394261320036026313579095265047761744193281612582914566981233853001237117672859887640884238399391006383163912184566901997579770263312427011121129514785609900943646833975792369571344346946698181140911695657329173686479785612493049001577349323980729696186003614496395907012776856877556694147187995882214320701638830789273307299624143252166847021820283727905789251947835990198005153201853830514836481969133279095460063791999412244973947720441915769352956206897457620582708371980847938314283147006139038751044811792741482112331764692096546731190788771288743970090297020154361365197972059918260188499522869510711117583166362705517060163055630582862635002115215138807900561805761239474902116697019534897967708726115593171728767961419818895310239910188551835422403697142160801548810567385189366599980751657411664275977101946161454812807012698885797281100059788182287886629174691107478424619343576102706746824032706423457069337754817836298093162528534211917009172766432969248651451473311667568600310583184513016541234454194158527262318816528169991792321828532647930536205227901680793662089441786484855700313095997311738619310647656980014858034910935049810117904776692416472973293602021399297114547445707427703176853372622871625466321850381216308510311648070226530331924530006512884562021091436358738873733187947167051908631925306898843278866883635674071416573000351323786789864179835009930291228202272382363327773326082219386076821781640985252652920878754151580916875805915038736108137666876448834730682383110737616602445205880227434058900852521825336342971264885284699673968613680454224332271842118349493416390692203985157732764994017761453675254386781683659141420764287306713380463784674207692173741311549235825729268626345073475350233184532675238537842017811273626958616352927693467671243489914481833173504692921617666134343411093370970231890717665172395152806699216264276745063614149409797323839405224005665576809390714190520368426931288438043798127317046010756629499146102914387373585081014506684523148237646962437872521891963555202581319217045451165570155128863855957046931482484634515246353595530722641267979145913293887610484142840260671734529573886056079363334727828834628679482650162575964236017676323406892601539058770446800966329408637970346172171870439338295486873200883029118609863391806259605868694775965369252493819846014634503382870651896654685387318728861050305074170026078674792485878137981295968608915452357719740264460862507643989906397414680901126703421372879393548018350763978545028585446937753739270823646159922037180027735987439950961586901667252983232903618824934982951539433402767961822447951484385886481039306839870437741533188776101876392649955579763587981597231131684649766160046310414377611687467757263910645487773623305583917047804151745666023073606859560791284812770512999680887964911291452959307261893858291473396296106682258975507318486779201640972166392081675061790593056396439211853042700556667044767507097216761124185100099245893612861204709137143968210913850126486174810154627632320281162568218562139775502946383663061813412724154763787797586871105615089709503090936673197904499152373747023732414533186225268628182318161577592181114828405662690972907074662817758041414328236331233337067105141662179668689361751364408516934374056545894776033431087439111655683723653565692202076609885716186953196435106072934661511551053790899779492382523232276933813936920054279118020702648245688930182594181637628248233344287935777393493675446249169150626908648204290333380377684206287303272225034053922484357517273395046810698365828108232686547559262736215905841512991137056175074789006764189249809891490494128661471073429357228438802263014040510860776413075907624037277225977775577089573275675667387419310727611098607234094640259421024860736909074238879004235637293939103564956772798759525223288186485965366230263982533399733118209791348221528073819285974290260019445188060656671016073383789547371173308960099417802280803865966519094903413747663164725089890321814691141890374722645023329490044399749259361850391901800091021417730452859860948098494531949920044667164272681646760370976856443333696971405745124596591221643680086516883731996845373158383425687475590300978924720706800491632157312751709867995779137976829757819244410742098137394604580438475541116663580165208719786014785383812135818710888442630403880057614046581983039000290375814117381235591753684366563813715584697053991823636232754924308846182504781999869412395493804240743399285708162127441676982900862052584648698540335668357134014218522492116234885175451421659314392340309164257447457512925789858542470966012129538222729982369855744655619755177962778480842432962980761269537987920806982741056081410755916504430030298629233147333454836257760084725364490094975234323536860323030027785989088103479334565638240478253494416651587777378571348330954524766663357855653917346021611953488802152800948905845727779160228833809434587355944189796809013350817236485480244370379512648173058415788889645564254721035245532883803758893065376907163637879233699146550492365365966419779763782511491424278915562593733215123562057783945987015168187734458229619601967310270937211381873931058526364918232839037667877366582462353773012472014754096125412439535305384701971895836630904035549627291630579192014290063592781815089103583235125398449508418071988016468544476239421012188326706027404558385948691382630267201990572048751608673374435670815610989517283465652806986329219171833132084329106732661821960402702968259263367714624544475453728140195123098038078766581678614952653236898620797029995088642052494312785169762404719072158066882207300105555938405710037502224594808936655129581721320517827199121201306595269407574543778252310241547340763278481045176871289015969843337046091246581379209705607446274645604149960541892397026319993364421354983957511462430632395643318185180805889947241163050374007360844715252482466400120866431544478204103167138241799126462084996019998575997109140473005516367473966534506447919739675789931032428655675173715353519852628973976266553131306228273711732447759690968686355684932324108452995938208805846002102685297992836342501954330802453941237655021595262799513511599746751648006459350932865665174261506783015908512426758759065826656436092627199256991811844085467337285678192903383898984502554082603550022198340239391053375159904136805762702876660475588345678206278457198176682600396723334864986304404211061646502418212962221154317466632779446793585786483802745722117594368682777141770826912492799032111461455589172193082495320856620013399255989309643076771385964233419236309756642849980690272124912751143994149955410636271194052547025507135831759221502872736686246687583233540784553533594459138813865846817657540672033781418941533790952534190574952570995610951493472704121472241444192416307911491283410550875663546449296024385518356025764500453227539087615634240699545217567329434527098658784267866990457887901283266580708911114581046695791021884421330431851455571868820592951876366941007190056958657553709440036053786862569809931448113083093075947582295379651783444149432005869853931555896421677678792462681509719121296201873988993430980634109020724659434716159531440723213141766765645262293826366446945982245370113030178770210901881872934663796963305218714926583494065441093417974135613396517446071881539506399971385512988498374328221420974013716603493780195274058514375961341182812087223915223305096415437105400230505678980426398521252417297964659853481949807323116875318588278361146521630491825060251265778133315969900167428949976108329346008014955340374992208510538416388057042803612084527148864661422556395180162168312520802170493824839420576770847903660026722412400255096649070828425127181846282301448937625976650217716770745313854054508816569846307441202530814743160378446481002962330672911140159058785343091817549241638259951122969083714169046440455755665113151260129033715218635680063039923095046897058650055761334636838991801334829058039325315583261257104319326312065693094699651676217922918941998146991247154797307527704000928931413038579330572105102349134089867017205560423710893589371839672204510555500672551874651316834903446187824312483010770558671670533347348779000745867297046432111760080970586907673257526567840480231623513600980850493920517163118721599696579674816882396045784106098869998301342111171581423932681684556285116021604557873084068273160338158525851132003972741756400813632476122073754827533014377674762288725122422515288741081082817592468167265826989505835476290556135595324668810635392598116463515977150333968469671146843827246555724447159687912273759141216675508498547859602114073888053197813372382079103345147996583979344387207810097423998215248971790532580378612913295353808852614629464222521089818337583302553863155693937436887453449456724183526884811682852495845816979564567876859758310210823758143975858678766481868964005038222885274644850193866524491519061149327114738696955156958553972915904614952189632891375624865060657109744476064385948568328107988511570310872948929502135230074015763891205443059720676221755090639978027292403355792160166056826233730707250006164678419517764859333755777172998614487843737842981462788952658518399679303172775386811791488155599659388533935885754877498320294433216236779586858607607670326048250580999454981679431140671817019111638161826574431172803567745887816873863976167049842521330874343974109678198272300585917656759372000964991871865878201366475725774189315203029332512711037896650799597863609806849562075142472430303095025046027575082716512095820003491622944279821704585736377674786701556201852380444609746517369725728301403015297740163229380930260907162731904434035186174818496743157778343921553669636402164950700727728586105124657570301371181452944809929455781331870705867631517400168315170788788555800847732167055754992993347604222292123378365678405267626730554142730471095140356147969818103620922104428129502942278090831930859382679780431576138860807281567308470785291312991342788693886977098454238922240323780735937917965633302192816667299674301319373582067312185162657139518701319174469398504028800288042992664322036072229859758194524155836268088533597527376762671228548825319028163922993623096789040945842264777911845430298146052453814694099515101253341549256328284627694413847465675089370883490547725071109148007283365272907531856131993644115016703398733787905440875315027826831915213154896891918674591447005670292233155645856638615093593556453789152590759577792758512727660625930635005324610763025118035410512938032466949550121500709813162201915362383257032545358148228634776095550783766042049306438044670488197726259540067142586604879618095594400738322091113648067079448975986115122993300505102063339835032586731407049605488422789174490022509252470918739437135671416393163121529700921130448699290503293576064275170648357413881359572446026740240476736791234593874124747783051318446863506967412196204380395049754606479565755672115292506700089719145618389006522114523767003628640878663881195659856984797398929261672341016438132874865173033906922262781556166905424443635441164056602843400662351291631811804085680024539839104687394063756248957179887653265115522092563990305648884294639394663272851219662043839176340350393109072700513077270150843778741703964762010679064353197004096320241774655629438777892837152064267583109347521989444698320883752954379780047324225479564471919008328129973075232923627868039229739747416610124373069922225715378712079663596270043102592774762062602088507665056175958063137602319177741862389558177827922103427877718791039514599828261611064588462961611801728950350958923744350669849140219389691120207394711638839139803155499793840673705786165181649487777868783991742660057422415077687470313233329969571393199432297305889343466623508559617886468886361811111807539798646751132016252857646485483456856027870861612430462325618715210836779140836455877627802332282337419009725641688108048750895034936817833473362691325483820541486721466659437605455474910658044004405423446221695354631426541773183371440882782276267073674688970679576260570123692390959179878847144900034301775621104257174585683350735288981633059663700232822205837140494681002636157482975399937186179941591315915663106155104718478114975678854531036973328662391666642181024739963869792410815007732041433721829784639808277180114729536305620423592722281030973863947290964015541079521180668567525511312655959460639868924629479847976102500814873458034184643547240189725524460477149381501131105252220411777113883686335417809014816879513485246173960617269100123132079668153361947576900900268496375556693147974392785775014756639049879983980279287126578564027422576298536641108075799911395192095538094733523190886373015897849401414002670605655262716905847613298752358536265799851862132764577241712576281793705997910664409119292177803911748885140996779424027118070471823453385079931762546312808076561624977754392014651325662554389249062808882779418149738184451317932194109292545671489926022285102802909942151300948434834084383435417518704716424694107145311649351549054793714949626477726324490493979503758473962805474907835107592454726626256737357134396200609328894941342279030095768150906055680288612234732493972941739554484740503562807654488181101532097143342427503243012782136709476973117625882738696795569672277554834771559567053496466180601751962238867297645716082450448580101543748069162315590715273976372209612006165931764828762324789270187082925537121635689121231899565846245415980506786558716126437418935618308618076372409256833491687477338716816442599778270249291858030808132119406490630102797784753284634756967734139739439701117763044994213444441218844993353202506691576089635741100421978412963674183446249531688796697847794118136352957139570768701456474702354367950173732493960593182715997027819580364016496173073987390539970668664080720362199556328973468745079178213130517923931639055497020631555124043259184392572033825437541306005630752703020466069742233662474933892649780506785591801282233564298596718686521349200403939579863266284698190293961212286706662649571915515417299744824305744417954126792711715554368019126345155003196953218207503649623053941694365827220173011089422456826642756067805324361174200649597287700434936083359263723316490937091142585333729499701283262042299368733574264440379305015508259290379644081888021552711035562870229188041531991846075154382129875947122925564968051180208860014906328210030878846975128945397015437879497934021235596936771487747740342240522449639779595599021313050479533976752434319026424950857044872162633027861765296974792910224375174659096113439858386858616007770147561398646011221875001175049111377248292922090810545445163580329036917042577786325398678375081127996271920759504398377699243091802679004903922079137291362617874533043753959235110566603423031619616600626500062302490311358007706893078354346718799266121819078709959449191063557456115649793223690833705467498049615875793421519540903903961017458804788085324009036460145087471126078983301694650303615658890646028355758022981911417327427567244611852140203895013416918008659949980054853371517269714209375894638665864767243994219643663991227448592661281249913330520600281368096118044128340205275428971633671317396781729844851807654481683695914228498517093209784939652570517424711240358402177889946025500876382838829923067202051937416535228457083333760839001035699443282460053955052302314775587297047179237275105311664470904788048929403222007173929203293796863117682106222706637156513137898950731079555821614813364272293085906704113954357866037221424831225928961901588012271278099750552903544773721789051500884022692335967395246269400332723672730981647724476339981563193228897082698343368775678633269710846509124940096883319332904673286603683095803673034346323779761776004475543301616070041736315581626266492015335075976613168392556873946283184146816215716238717194569850372805142557162921078859444704118348270645342481468256397643107972811621176356061127524949760292854399183668615501775715469741745471925341949277851487453164850869872595253297158867487819849371866360514641517607250241215623052413716131381404387354056454264531427692020138370863184983478409268259228682521966590249441834142817872337260523167888722184398854591404955878904103829809083223027496731974122884668085273973481548662928379971196172198732860722148687298741169902170311998365120141535409332130519394302674547053449105382798841819000884866561752048974177463438254792175838183225157474450542168078343448289383724535555028151975520259503739528495527508937009449180572968447413887577407140395622497599422781481964050862471219132939478721121671791909046405521756077085240978325108042794509158928708741533993230362150392530741235518837376790528150541254004231583341247306944461816914057598206296452006728196073600251143789061040839544200540019891398774733915545054239492951537875551938834274132972639281893108864434954872518399054045005024715688631405800107767360599384853976498102514211147553395578163279878166773717599836585277691390609006603558919241263919080147500597883558224758532459518531538709265132143062528617381945444222791006527831332029178827705180319286134193616793606317222422846709740831534090190713149667288733234039593604350039912315136416892892134736442438251006210470212217119677360318176256180491560363508310425087409233689714997418550891025123775380856133758925052942339476534558392104602004454456461120432033924002810593159882827711601410781015176035483797358088618767910543550858198670532928180943882078552176283785176174271218847613146944788791370321283144969264041872431258246668789558927091818457355339735124398118440729434663015688142334456100231657635406771064327867148863960419216293033073311265787897672759733692750619655226767808809953507722988102269498341735436378441029553804659862941808559336916666185145820996497622488035455048029984680136401454469033104287280812908532939916526778144239590903305428208377134383444300494204124970216450465544725516268170061005892885384587350992689939267656216261955052399311109322693687663373172545077084528985755554719581636029016875428902015429110437553229510368838707626644736306104010497358580454595817431385304383265490161406699303892397482997597586898310315970122148324440874840201497199805403978115331913575204696260243898926880874119782337892301613037115131026480380432672291889180700572314274690546989286800219349157953152297591858585609728189185056428355144181707324762562696661346370524709477095868332827451986436815831030704557570246384055312520089577554951677276886117408289314794929802060424680098077121463689040377297688325170928674005843962222874503470462738148407234357655833485957712461560004304341734615986555258076197343797572949178146176106287323051977139034052831396016367880252632391229544669847697904055615817339639495059684977081841353615280762305253220918332305555495610804254514913905065668376062756489960069451689755817491343511646211323968125489420631583929466673358442288188453186055902129696711557890203401840807483066148487688847885802691428257170402653719356950426265495321415467629891870360977720987247580679205638607959600701498548927362289701109796811483364049106375676413522703277120374129718605950674588192825433147935326135533893938311987279006206057792025144254803491962481976796561764850112889792886663478436902274435128101520571829113685063499161303409869011807016804838114302069716224240683236838285948352825618356466530365923039783715465223966911687501126015342567874226917777929435702375453142146167885664830030396501427267887032816307289531666626952909439940328897581170247492284847496162984797196299768745637440985193634833101933616653876727601763870028750351172007841780873859758863343812688435201833614983695289582568923381285962542326816154952511252040278864560464137395165274656189377985269756441991528178717231842263428192336354879472585772540796452846022973563754136021469726288928293561430054324713902367025256964774591253460578380537586871495698874235200804416077609057713102740871831725561122784648934642747007205496071368008748835661979546819823802578457234167931417323386412786026009234362910477906238304812329815689799161472920540453743943329104587819661796008557382185920204383347008445125199243291198630264041546654230683946984972597186964478963001874537280834617993150382998771254609015230937788782042675049042759154288896257025679073947710363663596463490931512490835318562389592833270514678213569336708983944472766505200629261843292313704839214237927203121938358364793721732248279900016168334870603795776750218158449819454962624487085905249131267917882022016207587382133473111939615046831882200691255939272560800660616862023151381612909636055856227903032550083959509831132800148127950637222799541431938965783568224637904261037817483523201201591152027356302171509040176456912189463465006088393725282014207079498978147542975670920824864289509151735063727138058044906506177212599943998910061729202623208169649583645898613966050537043777425722587773406215441794091683032479023198959269074016020852195773210023909584033966891738506094937299972821309100911187949272883898907649339295512399246515089761076010521473323820868529136940350431636161647443458009458738772681968323625266533978456449087690715678972572656196451027143847446614920063793776994639618567831422040681546334903442432213484213878877699772952315907871629905920723239901948447597465312077045544773967165451923565690104678098962069979369213113625064058064666063524099018819377510809865552692998149459370188184599196220742953630529567044550479448028853589991775888026184625387025200609013607253709317812126010388009761499701088090253759308956047437610345015413846220087364898759795652373107665757934758512260490493497273907853508727699042327008027003459632630728420750055329792995258725504622325923408293083246845466919613893429872038579791734955091071300397790584154587431286101238140110181158004196864414806449523822581190514260061471117250670310464895423091038422543094512155597199809944668152395569519348266679724868838007173842956752203455700656471796071685324190220958810295307767773655269630487973503060901918910037365601641618136057107702020026490787940660399852534652195558066106491117727787751961075131324368794318955079425869208171525453603107792312463728458574458910573342954461358010007127801762272607668435245576941968899259694413598879059025675579659242385934179910285825449342526657086377234641256525195191976827745264652756668796857041431630838388561466576971001564617368796003743941908386541029176651045961088714431255293979554138517676855992213977230335796563032737363423752060331938017184767269476577691254100125234493961444702183221336817694184328537980063766845170264943744349904405110940950432639065518123748632248872379978081613180090114087756828498817937260173501054891989719915412206478220828564440334831975568606271054646931703422941905833027929152126542338586931440455398431035732202296827138588528094427938540077670159070389072361397156449357566341076799229152144159069629931666913007949957918845006030018877596100818068894046460465688618587826672411974374519845170665178767878110194122936053731388792395388363033794962025813751435531166623829338572949809378219411414523066997072981872351619078794941179092936419015274106014621829951619883564780392358544123541328562355786281938473749980615253863595817494860903561068546496180914940371890071066443581209301522510485595914702416616894940399223619316381118083141559046829952696702195680604456690558600788807966048048754047221349295741378888105349757306440846149705263084293480085733349441855156120913880348743753321188601518280815910217882385498619595760586618735130993531001046707708617392563231075023974968878634794250794994957414516085489799351668897202825611410311520289258102990481965401422794313118405383882067468289388981220561485223810562031970730972019737748568626682402461132347878688829931486666077526280302811565269334475234728734596141185221950556759956636270621003341378481754341899012255922829615369204990432711150948967565123236978779955294425424975772665791138492604500001908558343330534690736015019227116907985766449968484105817350070233896681372724391466004687182277273347467451507195439111643804288245921111273095682721841467705759189665773550693444633847544558021776076572093548476165894590829333496349362232297087944881179406529919216683040258544363639347533480476466200713693956467879750656506622308752809258530412334207960311282936791543839168078639788153075435361627975942215356017707865623895108130834224589856094878404174862509860959305009335836833065108240935210926917414696138364921889193065877629441253593442035751641567912343674597772416414577702885327603086700009174218930397437808902154513526829033904102507243019265007058444827013180570334952237770353523850295249013526885213650889424841037510253095449898356496492953076191259491308861297304409915154810867110616691949998817967279045484408739103625360223149809798159611411142926131418541104873344716279209171386254729320103894461174322888000314788849996421195440714599846112515713907012833240843765964868326312111133745565963210202496693404463140540452201435628878286657726349218656510414602465989303687177391321481904045797029413830190018414834660828573693941472879308191115752235710144369052725400106658781583892417187432229050002797511411931811413165055199255687609718992376039253571240477784097282737144728890086799242823344263543201370381323761519530155287586955923868500675539714424533136548056290828728267821008949571802652689759929929349907615668137473182480742940251524307140264615422629946712888753319691788872934319640919474615196349898079487260351052168735392372316739928439989330558396973478558120151705185244232118664807161297470831343352091586834349760473321562838054916043660298135392288261968543918747709013302223072143211523608002167967497060241015152103724107104518776511515996324870836819388528883100541347989006385261505696854496310461897908091815970598832157612660628131728672734348196530321971078353145235700958206303680698221680152225147179250402897577386801969079380191471248497416970499456296213024322101459621232676647511940172964214786733721885252040615448312546534788774730005847882036824222415712882878580158348238086382225002335340562995718435548055276560178468497620851335320095109699293742239200602255185066567513368890101807583370031558817294550275872716416985662200367585188624065255027187653657252599285573002082950967471759435253154010081244831880437710898010856890826541222596034815230754015260094310947126732224524589269341845090040755176814726596556362598568802945709245505697092637777254858108947668585490387514246990174841460811858994349705482295905260918339670748090282924565002901722209006538151872333707362080109471102993612519213850249754086715212424300079282790141426826349614756339994783320379427550449141015431016426757715908984700918328269538825273076759441909157201157014058576515766047471801266972960278325041455681553297188434129579736767644776248409367881421590298168010695809873928916072171316232975786689714167325851171073702354971794128794467580620389176733631599307070060618172790436611239428061497194769970662108780044114064259411225052214717009830300554616130495327911182352722256302167037341548867726128758550055488191782164715118551125065077533637349280806385716976217988174413111242332385240994436473235262482194730432001129677706974537855149251955697472232165043821959274140383511649996519511030785682182709119146372869233838858437035217365342302063854019323240115180325690854989785871245674652157453635343873440728853726423338225017230051047212067346504564943731398499664752077436779817659628206140626729062745780661321464488125267215250268491359010556040309105282395886404287795498903096647474781409490470646146586254023965624390511855154375162283948977764909850287720455580085626266300700067630257329630220855605400725425968742878946522405360600494776711939618071538155075300699938447703423602101640302638834778390794031668617151390161755860263273595037756420094656545465136831895725827398087229301146320784957899426942310978363190827104588928691356599377775225165208400664437079041564339649384813488095886641508396844054078090885629841347270200676157944848277631822504076102393000793534971167245180258778070138227358793533388570998037833947244773546125996853096392100549531864147253708963934779622910484605170862880443339395578433338867588068537355730755827977143805466937520641868096552620400262144533417205581995546296628526638430827535976646217691720049093478980121417543251393451758365065309284194015485120990501580238685667657073532435275810485615498421372854207642278134464471667795688999625338825877288479124124609021550851297683132777195037374617691260018410979048829452879125710913489751253874402116557328479628342936629840848313011316640514176315433457491911573156022856129324843409186733736582022344506786136571317836188353206619337200969044523552986122584409277113484899092042239205229102497755968333395731565826023281209605692790316920291270290397219623456110501195047634683898376366076862491349836669811960732233342285218884977762254911065781548302027275294391418046550715217944256158351795116990167128971663681134101237838519413109015759903526692407879071245058619417283433095946579033558587714465130555112551344624679571576826527304879007346645811721392609322224581921259581451668304788113070009523561568738408632617739452685351415866837767232607447748509954496311990075892961065564412746658607234999730729395404773721721887075449211248676698736918385387411937896918352679735506701392652224035849324565083335870992519295928705947628869596939971969611441261847214142731102859860160572150271284062812279037323315396574563011612651866614629930444222057405995867601026436571109217544239138322808111651863085434308879868387630172454923407932627244251025997295089828050036284148396827199282284617935089901601977858215900508154508356532880072853809942178926237096037034186992206002076443237077514746665768631566929631456333368228798326806607624091681300744849849509542535554525147699846750165207805372174965930286925308006622130711372240882607043129804762835980284911669540586278770537669876858916000906218666879167679376708643535284615752376935134376277299067537938751290867744076978430702686393810901733665166019304115989738152214906810748406815796044788903422244069519549962625088621085783380232956434726433062036536901022601886812148303223932100231175796312637360803569646618287900414824534904538368638488181530223635444559128404384821138552965899461758988538648630026249588835169637392765800002949487935996480479513993484854594234653700999041376230824107471197951321411191684597555696002055761389760676109134779717706266901317969417365161220683340432189452724415025302445604927757612339324071908336025908618124787295363278248285960270052197363232137037800377809421827773610885920957145171549070827218141546292897370910568717342555644612802202773823745180620561228298994538606623781160056095541275393199488247642412026291941216057023792553643655111893573755503876958972680697333684896244937127092094559707434773004816034671113519763406310920364311023469032353189785368962120535906024158585441032502187580270858475508149881071195706400368691344591932229715950964479627257861600162758187103221904658432726289956316727733833481106232150376962425289046578933930047397585593860605085445755171780150069784713226945135614808898345895904681395119056756982293054205828263599431444781577965705465055256148168931646660959472050392017848440459217409739624085206589789429778772697843927310538021822896381356970050826072758217370558713954485080532687872607377431118014617131841138233233846101852249407771091196493464484355587795419527320770798747842899930060771354737669603927870482705655822889624193090139464405322116853896029670339783599542921975475725889010421917135677928899237051464016358131480234424184260686867172180993793907524563678524496334470253429259150922418110324490750458555010445754710398321098026675477509394258208263899481167061669910960791829172105820293618847514457717173002930654873953525122243756714562204873648193222172551385353792922824135581106527338690721771960842152414712701762018980941980800387520305924137256244383294359968837562943691011300426091553865175147924800435119378126674493639807356514541189906183842639474062767927852646548906957888965197193474362038422867988481326863190113216948963804683656845339168493382222610531448269214065866198170270925763141132762177941779151919243851694953374003412665476830396777446904319614125237280329044472907918473843014261871385139976669765894955130807651900897669999968759251591086222698721878181027291998488779647586539340835110244351278041113261991650387359872785290442670771305351024063482298989386312371917029232651646705540013407410220586186047541510245318858920360776397962068254461664089883717626762974695265059038737521551948731320601033654843434219411163125178130205353475893087116962274850004284383261046150758556295367190970611212117348116919229736435896729991779569890493931383801284773734106088084959008371051002156988108684718509373583149577719239767777458952138883345812928138555572890381343402975285005572210112540557004454754857357106582593662595637299443726885517293901881698697832624950548268828229327629271027386240855725086777528332253590583662377204911338851421426256911453417276987646664366644221634570086847706504135214504462238259903194855418451669080738735771577323377896960219966080710159370318399539471888168457729769269659075984127957184607000299088046697105204448445560363164853647869868779392896450547649247705237844990151438977794556049748966641502505694152122250383450500676894261351494057531872329830041358580441620276866213471823492398616327702802572425809963798365214683124540321176636653558237178813063826531873297125713167963709287852635059219007429969559845972353409751770537285812931377600317111621110917617308861954608202786489818218684579869623220824695736095078200035937271078021689477670719741014820620170245213750179090835171947983775450887218999102706567692722371062801056036389500518035894970606938644001096963517234690205893888088282608548086961407651049260506123097992704083876585004911240595106561879816129173807032395865151381128740786330507599475670735524561896229926026218827156172354766526997858915672226923887695210591682664986791550194111041112536524806137294423070210864438538188578680574732458103510350055472283606178942961631320231944550843046972240107947333683737712654117446329071372732493887628202279514792631601819111725369803240352634267855333770986571211725608999639745326478637780220222378940358953583898432594062896266372930786562155421833658749696164493444539597724434972507304359653550520190718947584490429599271202921595176642399383996987129096960853671669398602699959731628910068185047637781611954270729422902090385818855534133747753285456158862104475951636868526773564170824162485028857401143241198872443988931607184289894923541449892100655381140065582392149303415791258825207202088683766937289588411834966124624862414883460516719022312253059920193704250214911097584739835673345008355766415152520555837347273531102925156456325055102500852532367365478153370029848801573199640953488927766773633593988667179459227965270604890271170421708085824685734067420442112969437668161903516656646287243640024986765700367886226919782444489125250843120271039455477019321011489583057963942275431160417593668132758114947940048248678804510155197450635063018328278444379169059569150143412774341125134042273170295191057402864249830966121858267487507498965886764372840552770022778025396247172559583692015864468891017282989764746483710369819480799877300472536360484644918485491682406643003087028896210174597693997044793933548744845256873844493046289151203562070027044062494329529334304554997010811778545384720783205697396804381127472067711910413397732651642459461931069673651822378367733107137762444933274471346307043352700385103980185610688359028738820499607824269912966233598651057142711148061384140680916911949917291373010085069977287054055433563765383777014770895248300375078057355551131076345404812341826804296647782106977432973525459623744321986901671729370000399676117113106565703044763559742504614784142735012940086839407975964201873040458729385065334950310592179391623145047934079950823876454684764766118822302210928641167490091498677129123252459021196910644796586213403458504740760682868731806643640778779974973983908440053793334274128882654788683044674878046293599390165195993378742431676740069636532350811808036299794201647177915227262771100574090027999540210078236615688042597208266120022721664122179058098027264896601853969958428368362563029797132323083530940721823738721852107725479657910475108968772321814255964738134696618902069250831786481268228052549423810020598164148874861696905730025468468633504263190118280539263780171607904335181223985829577876303777766196711180727933662190275983475126126843023186890696125251194189214508605798663676531125332150593630879427647008806292777783402141669429971573286537084287607207145314344029858249566980995482377226760556881542701723575805800921187502465390634501320432227927379065183702725347816048737252059747211634559611758661705247583926502790741506334477790070988852028283217489697455785909628914810054663862904141394875095117046606376783904076791730161414504910313368379491567603557799244646353095529185389445755334105927246279016246949270113479694599327000422268324334680085229059708702542294395672417490848374505509104940394488663501771041848977129764529286514767358204434296343556100185019087767322999622416126323525280071554703214355318537673417986152529785354420444664033792476761757208080610746957631503340701981723744668108014227720318432177625623162273260907267678500283058523943363608808322226274786080270844504896962528011414313269592436631176712111537605747047494748566692798649669240230144840739524050141002925282066240882399481915192080112486392820109639135170930046636794707177218429908647630705712862256035645337825688973187547847339273946140523389239180387543402121193268322372731216785300722463632098689657576236746360986120555061327091127904348914844603389678531767313668639283385044629531514574831940846009195664213542879547277962288670069429993564464826961004812072185000359949793249483679767849041140432196059203238973294293054527266648163054821022680569830612241023543374511120830319673827582448342389571666787070244004330808949748755970313905771838719118374305519208491746850406310266037349979649755892346473617457000182451575855524742276896512985316780351543381411905661512478092117121940724242788536244213521709087294884307641173481667807042710389833494551111741452636284168657780959079511185952622161621788134482207917170250532451349533471760342493625439048341706506422643084875363353577326524824137129667868067992065239756908159831317069877679472555935811404968795230516999450188539754041713150156105407317698913526225340703031826973330495593636373606503870144096980813069831430565424446261367046711239510678215791410973376951780764993026114041599782206585166289717951889934974802277271958480986756604082389214937717577676167312747641416830654388219013248349441800100569505550785236156160443579352266730079173020769506339796003740778051981326456572874329546428670287957810345074484358023211539587592385588657480296276694980435085740199507930146100007454550488466700673294919359176003518570314612233071102672900683326339287570478776026563624518534729832930725509611532426317961167117493235693191020795960860612573897162055891999667990409784629105573224692203581869895237699504196811018550004514366680765825716949933950474738337074321248995109523358226386677523683559237780922039894902460455937522382076958399681388164161310427585477017871513522072058958101101924654808928514837074303612675198170223140995902256087955744846299794085084455430319003476385852535331987251170301580795831767493950056296819130904317883082536709473235386963176526178455247175224074118200352017584815005523985849673453911899550662078663111595946103806182048902736225452539618173934548625852997559348893435409561885269665870757837627837614982423323738850922554870778966457399523711460890436375237752652285649522327968986007501613618683789938018487932109208466396167785839825704343296589154428315556742718577659968444897200158803599381156278399793815363084053472026606163005953035765065393024052766082419656504931904212806799184581344348064864579824751478522281456002050101450780142230359682794816844338742124832302930322942882323783210214239854464464050098769207561363459185269550519928041437191846738413626567238891827407953896921347806542604550906851913008465574305531744688371766448449111253967068572020499430171213006260613772064382039168137689886718057180399507557539401664306938433695195069173707245841117802546978082606294772148285634923098027232146819120878965005323451293172045195521774593885441232671524320362592617433807923374087266623451863570178382010017237052994157383327615346261170298961214297532544049477652640948511775803102811988777331463284248693831420154372541964487465092697023033474057037671355520890004186448605231912178467777266166358348334255383177745312234874992737758338685518105101089279530945924328446400425215418569408961299450121513154282562453972638334095971209662846504959992095841504281896279859050405378231083058177437110588390844271623402613499564654867684242670568104530482610309607010146679906218039759323130619717174658988544798675727404889102957346977918113403994140536680206170334103874930506085681319132263929789732953641305026438622658872864189234326005223135622433900612195131787845712206259390304490308016644960328246706413028243258775471683398765833652521130990338194358300333303763379895968071027363202705657568471856084974327908835267811763388277267669918761294212091824045706350525991461217437253113904483006063537843891698148760227155972509391838270815737358586244497200571532487492076222148695136933682735343677171462379971058630097987968151406872059194230594366065730247249650976294414918239583378675905661365033939822084240776138344984370770467367632918492204437831159067719379564582092201783735255873638512300627541123395351774838090231294248095478668670536057835927353461298693436505637168586672797845528711362715722658315978027164966398505357518391583288961448667058890515563780847066008714342899786408918647495722576211314399072218497735914646985810851671742327564438116391776085577341779285039502790545192629779556026388597047131736683996813702195971219134284748072361023382675800321349659254717099785576514059275576078200243291356101730677382848121956938802193285324208767279596749913054111142789645943377787528513341193675362057504747021589546874823499170918555791668460451416273585996178388185030796367922987706597903630805201398598434727081121306334354297669611518975017475134252648856425125250151816745179101490672858008441632518186268371788688526262375856305854562896136722819824560732595645143388475764333099083231906962368932160571155711812483340577470410172530963034924739218407463096544468991809863708561935457996111454082509069554128384139682765525792393556441740012142751760448376630477242084380284508930192981736011646064698131952029994717961656240223671976110106610545615728756294945716950221474696674347266751638765679765080526742564086258215050304607971472386592131953125348216850597473159810397838755443784144356180657519385399082512828111927454394480070918897417003290593552185166980010494611254067651435120558284476615935781790594461015810591008516824787929510143435497678102747547656223801409516453903922322842359255607459614829325360093627422253294911798096919976420877570397454655678242241042674561702176901615581019056422780644305188515656937614176551996092242962053206486653586141271900689494598217015749693183566358148628325741103728980229382896038544677011746496114586509718325899419147262294713701432053294236957618286068329264341617090380349710143369055166896532490889231091233404784423916882752788952178937801213782835574153454030628514071317357742305448905379143309541167518039036565220577960105347574276316925196191072618650360192655026414213058743751716239104205441775180347219516323903900288621187985954219525013413095852469174728959717697503404619686160106505164631475364755186255802760528718779457266750148004644125171820341805855852612450926076791718269305501458471915508244778113354478260629110263621561629876432887831785375880822939685496466040674604993419995901312915735537618253705226541984081951240298781651239832599533158185741995873238191808974789640807027958145312774532012170068587466070912959803217843285307321128471267995638985326350793419108611235826501699330190461443440196813683878684731781344778456580934090583579734398665700863323905038324597615442868109226234536527491017414979384511950296206330899547025177893750865557948196787906274579887531170691474233078620363394129865082129364787639214646110128246340726737568119683312818925941884910356348718820551957866220496744872571258843428692943325847523906714230111048088043780447906798898382758244942108806241750494338900828196336372363013577887412676566780728184951722260713300200617747833593370427891436604744173245025576282473777725590761692896856892667853642085656792873016244049437765064501149114277499047077931294537673366736528693587924793720891645254852220978510957853379645841199814552007138026731308694548288572979073151957116853720781611683296546254983759426831980571775841589071933307369876514297180507532147354361148681290305959827417552309354536112415904084701277886798706776667532871996781795627886785188616352820859016785746090324900661398299920850600841366793449217856997886745500253943046885548971172981748345682468140807306238777817726463480603069291016404512974947541616903326379134270526347307887049947838187765808700587362773002430042542223761326482307227436471255229459307938879511666569217355564504004770484851945124446424242884775378331185770660669156642059461657925827289247345963369658834596346071997535970996566648139723300589459980029473354424099969803524205609672084657165497283246930466509665789553387423956459781281813489195234383475918731873013485540003766504672357185670208046371919195409250439328642012466288588461662690930076855217264588317659961396626979182524793477183083134857752327829869679198520377287525124767887175330695335524545048382762778202438312651141986391348464748834298459225565840676163511840929882331839673078789492286750979142103453123853495472782524458761007647917057167042705063246644702187610057384316550070934228437979413641220630858887469176900728665804978365460983414480501027082545604220552860060876687194807798468945525061635558529714046846342265836589441079923682712454315932752218612889229509857819937938288102191579773358757502486803497742579106101483988453148841800730578930564642812165355232632419767277795195790733503801918782195412436753215632599574041068311099545078732794843935603000045185831449343943233425417558910901989159664151963854890359223957738951186922783396622128756650042380402742681683440343733484600798283253358237233237344885518846891116287809885022107018074042731063141825887436930952207230259476671462082240386151691738023912481086750094845501179988777003502589244821874076729781315386990667589098396993864784397419059106251502642956419506082255336060382683148472822762467282465242534738665650134945441763805535791181748196076457803585006407812279846928558149014785546705939083378752862489501322202261716157669985007093017299342632644263386857305257732203221285187757847600211361828515960887042674653377486535926749070058769153578542985572910613553104545871922895922382509944826862624216792013319263884822538339834804827375651744674080118223780127568779103810536110900943037495414273030269192527716357826336026183038860573440461859556866608051294918206872610114725659925439810033473243896435107137651717610415732278825364409694950580123343155924693249674689458592566728195540050960269953622442615811672791016012254578377366193540525516039359284271687403391896281560095457438859787196255653513151177784601264562956375790250764042806401293559327835639842473414706464384855086563470971025417100666478199251719158485836648299116810052203696984327557039399097548030637210609870294553336955486485463142413241973854503953045623371544518105732532891357934124930944590885806857996672089927907275189874312940580410940792232985192371563107489380479783510987728856580932965233755890752935269953630223611100731954837104698529118017457438883888228390312627502624545246993124125695248725627094897229716793619104219521385738969300843635945889083865350118279202433208299698529685523895398904321103703827689135683863367233424847723177808898891109109556642027314436477252115301239787707377783854767773463793470221233967086743152314142952826305759890372520319522189601559438071540239614037718160457819126842889795003304069370023734932594946018601797316317222604357042700267086161006340453127103707376959942444870970747548817113714785288359106524580368037225346692802304517153970655357787371555781182934908582472033440342437291028863503949639762959329763458177562544628505073090500532276078385908210972430307575223112148168662662664910577091743053154115183834316414642241214318546096959089842568173176611298007141549878077465837858509840647256523840838327075932091392856912634798847491099505952372820813482606824655774826346732562002551223878077046117370712447039167774393788311868240612842357954819667790797439151265080410701112458545533152779864503866759720411304360002501004227750218504724448367015528311919520004292703595759533356179772745732548660622472427112111036441477225239939519607636979673236555126142039198338109217152969142432199565817179427659904080542670919933646310378631829617221118978992175286496908401677096334956704947099650250611548506969006588567433048892185602050002996941739872893329875850944476500736715091096765095022273912262842487615448929768759670385084822019855525406341546490110913263814013811514786466548508452063199737572231059801345396039688962933451843637706969263735839590386239059206096768736826439263653148571996672604800973282281264604653203206707451819837329886502982652758198161315773612185935047630508887753136593128719443870788577776521899906483286873577930866810248895060085347999319730098041489738642874951532936103699181903855214569909081552892138422396399263354876770314449945740347244300197267103696691711114671494840288980781529356856688776618772485922188043896825631285083118009195252849294619473394399502735926243485596899237620862764368522252877987691888424773865589767816707615009895521382415333026520496329992151754489633678338070366089212424358630321643966885790943461575781006008762375685043643786571436357357176511235713505469344788097034539065480141506845028246557003247137967015311925211687045750580736824921190685203849934578879575948085988279625268220710326093748135690720562605773113262718196088940590716770206660240855281037655965597653675779256791941110501463420101601884061653878484770614462044998309741415338417602254242669953780366412410361936743195009730536885959929755581655437263208954546182346523398824927618462512925563145087110829446181391216702374587311794987956441457710795204241883859549510728625056673117725246342881241078681776705093865003509626825382435710694894599727493683502184966941562974262253773971000454133738354241157510958308616013326795018837278949692827665906063310878598628755186198181674287694072342847242999297305522020572498777447970046083926384902731030803979265611446791974059321097957231015645833403798441331574610540381457822986516217639876362995660090541101595376370677355958343926057636617889415784598626789487557084087010242397993722685439758167059544069388719009275305269889899842257550726601224482963049089369600096061910056638922828818833730777173587759329237525462844264591392890954854650179175141186831765516997012974459145603901109795849678203761344071492945240238312257489210258803656698512865893896709103426263466046119181258871063687851978675653375113408166349789156704889087144020004336128096330560142592477600794493185885777971889478113914168354008635722508081066158724776628069248238903191854054291957790180244370604992689595185097242636112219734671102104418734677398323245693611645904057096058778238452084379286801674544019415021938743157147300212147689790244758302257185249760412017212139917635322785441131454647786669181234864595514844903131371855787511882730828351913950418183322692284281048541810171038500205026972394498480293632174353860888840996990195575135806069803295211797224450314850554538435037268145839026964232689008374323204460195512990074172478256039763584451171885573704030358344716823441004925659894211850344520615185320355344351327313956699177640677755936226472742465150321416415539845338481767708834566008317629839645613040995537676327913358425164517090906983519207241641588842740082642347049540244052517542595865943637381313201276856044275935232093893232643300368315662645224240098379729426915830197331269751856629652143714615668667351639428640797538566099010752182090970610408506405240028844713061913681038794855163885374512082891771133840531768036415054571943405157866031758456549574314516438368897495079390770811908971272773540253868471404801494607817856072314312607887885913001638425615373006206091565851270065716884690961128077596881047797047142246015562761972516747639183931344280460936280874978856436693093102850963069264131052280370322346507977976491826550366817488550590251179035932678089048045170996870426878739721307409018107628521259180311801670182336080840045402080776607596362594503956746440570626382882433997045164878212279385912296893345213000269396857641011951843225899895586145294483703067840551523195067936086918461081710409978869184233278086544841679482790548680737159227790915428528416508916680553772325384399757113093362037552569588624891125481021165233381912700739838502120252140584365557822300678098829697741215565729851594644372666181581082459644294010785488351894132327955266724166573901961489036139377331699792731730511964357189262289935663202820131367682594461618716803692502808243666418032476215938620231745331393816414858951844247123739271394985014256036717760076498068938177624529084007127634149839001415537191503377222252304805715055213115595185186270182051172076216821782407239250964036074852783817699393004890365610637237322701451978926270402137311830054829717306583523079403037930618587817821711013031637238042677089018510049632079538096866268116306974218277028566609357724087493066192469595730080004942850773861123487214884079210221725050539052129948355651580962423621355155770906248410074075837848270830538330264719410801610266701228948843206167750768231516378524651899895405149063375426159542161531252805809671622672989577620948143957474276778051419390205142872378195561576476123040047446077706831750840270689040151624162166091407853339627533723518330814107466393668864900882787558153511296916639494694555532678665582833095554007638585631665511682807643503032765624502149119416874792166285489808211470682743029772808966706908213300478530055193679612259092230195944220797983033916055548996640305498758171988670475029890288646719383651412356320890826081493580187289997514878648112306288259445877327995763067022609112156470893097287128546061043099488706008445684222795481638764405455740353006906180342036319309468124915322709208055500541656774659410417339304016527339749058534866236661815520844716462536735895696528821767689028595964992245076547346401100496471033148689198341035907340623787817991233903261251148776425829479742791872046391247815112513008905584637159839502146837763891554831293042213978146528671541102551067538725086696222909946141215966607082060986436118793757686724408769894572384377501367876602116079819091052351492627355912367207445741454305139607598821971504321059099072690838949327432836889522907055683777197188470479339451807013741485453191983789393257276135573440331984620125431260491246231625864097777976115159965366376574919933361628475622104255771612042685574079312693341237914233732919296715802883156882359912941928538192169316716499714555807984106794797097854828630811886056631922005628406677615917459953311248758301214217576471897403668789455765602773662383697680274369262518778128977495407832543167187821164796652308039960833011212753352336946242496028409825667266506173376644251768839113683024104971255280955063920951836652787176427279942232338078282676858589948975864580073674030068649134207974324758522844637216735622636346789811515173443533445882995331134608611996957260837005508993439487034662456389272393001531440862240771354148627523236873293747342899863294464079208371128870100987532284740733264618328090132802946914901453611560818825754512727965173821950112697499126698746339548218900160279446709302554370482845571518784004023258293847962129191066834445404736184777167990927166832295805016752962574698951163767818761519625791464689772650971159412937749384637742730145642985721570064519908988923687811292000170813370155439863024732278882645890930491269294570290796969305693503260556571038195287857107908700810888572598478518467015995627867489366129894054149049362666995684901376385600199244997577961790639815608407217237595552432973745345415097206867718191733110477587299719761155527823871545276215607041221866439865794558467662533880174544418049825685771757076384011530731467430339678589040658012353307866808554957269469735808191522943010348534866096725386122103418849813185781021024589811779598880644345231986783947242728055262304896545569782539520107774802498581487448158093289833124255689519742908990295552287864729064029980198573602991666690140213839354446541559221938438734565153950412397610198363925814147470641484407443794651363374750826089304491446153722698299959253286555547662074324610544532081683556019110762792837787780807008806407301279114130514810891359994054510082932722085460181337360600464865142614569013084430420459748046756965049288429806322462334025384621505796621489073911361476035846779149999534877886421603513020099265101300823792059751394112935741667959161634538986345257994065944449017129738402862185154407711905529018914476409416616873671079349205022352617259977865576840125222947561061831235891660378283571709077052765087174296414177544666903746929367644705395688351076702406159222459241921747725844643609178515939527940519043367312828557317830589069382623535641910416159414122553907274716740790926746498992681625878533293298481836601511512065695420918481131265941356739882476318599929665845835924008114332032029158949078590689859766288224994516692799328893662961278200324678673228165263707268632239932165114967783205623064747050722366372562009718905853650385744984243351962854846233312609869176827534302945147416139549742176568551482331234713090966825488098821136296025216347272245959908718675905796826420228096865912349565618843841489696084373244438261083678757385029756888006696182103936806082670597459967985692279355990871152217116099071055006810048037547097327104925612612240635373938500562702762713670118069638618950352856364284433278401432646144050031742070071120583807180074628134441976403611297472616186921701731410890874805174548465061102708195020490156846825719023010659012161496226231143712963625736179102808401821347633341470100356110224111674278401458848172101584938501420183724251454997794618098941325838808770171093619272287011992199074562934608146322254961937123727333263792867456368707425446052169832713902257992925486344970555107665236756007265811421506633840618707176527886597935493836905900961028179523531715987782003005335141187532132753683998658853267665714269192678050884816475003101759192253785264598924338594070511913770060133663602235096560166832894233036391739330287812537108911802321736575085021750378771398484637481199023265322631233140557501654253565332495997595961135755800995609555470088162763025953124154131266089150424117786845319543246625142279808778188680970232645170598543066487516904034786643898359927790682290968083294184319730580158674048639835626711950046713540747284677699038745523460211184250956050155354546477783133762443654722597284019365623334207304196725543496799690034037350084141681252067807382697334190653855446957780710356153131655021981868166224820056112149562581239160349131617018547836148051899399149315961739923912746622928877421720617736277542330304441170356666718693354229221316139928740998995615463054742980931883118823290764333210139914866886664283619124196844501906370670343567401528432240092949873828789176815811062432706879949714464087107251263587828693577821319451724836966906125119346592909206107475777876111067482208628138625485946494603180066330553640455001293791288621949458707880858187795128962995790775746195221958683956079046592579883987909182001470820848096461417301624770027464524170979527941441321153463095972136850739120896208104937295143779949027659934363331613206238665884864726578736704317871375653336173436588787982721716615957955630341557081905395573957857142168937414461816818965637580360589320878992607091519884495659868017487005348663022525057086351075290262106502629744883996970906965572418055742855470021307482143986408155738403310479118732973455170736988305599619831524986448188750507671549580242741852038063205434901497675616833472511407045848993113198871489175152577414643767613584798085222455534280849800883104107286515620194830325585331900706051317500007407250040881229524187892939192703081618735010078557842718437725059846543695334553640897291830177003665643669812349819732524177629718566745268436966735088096293761542580467505937974335580763890953005493363548336640445904267548622443553669336794259402844518604105937381582332980968659210645237846759533936572916252661571111364628691139222252866022465998831379004717859848288032512677669161830858351941407118074437961923501613345778664215818413461112705253428365657583699940304624786903342921883402671754677662849201765024815448778395812428089908731952390147074682951854766301335035771767874508936701716879799119073359434271032075877541162813658485887438571642558907751136051910659332258525992359553726643727530899621989828372584459149242022177466896088667044372097459051798955212873576112588684194689902556110686836298600153399808095757096126276349979274465104564237991918950349973509616403524280400908624722255595411605740748957528424884973030018664521670568912247348468742864218894021784047832573360468159733110637126227037507014768180417654603145856142232486956918392983541798859289484849306266317767715252518257124192479430455502629987190923493212516500520922199120913213306098450550726029222418130808909667904140317492850579224383506745847164516558740530970089301650664783453774059199022475597035643110295649961890735633238987740926290065688780658933741776259530059679159046021076150345296811322572842461636800984164162714535926325269965201415886603875309156948309529403224078345224697570652671749115953450491979627446942325867377953278529349482763256823212664362290977809888500426342266827161741409790743448613759602858392894154888165821895259127369314969226610768015322039558579426174713398831888217481041606185873412403911558143875625075549285233349886524044885604294413665595663029162777513387829828883756948474225588582174980094959054985895578036011558550069009628812600331909800934504594182013400603799416302636661996568398882537238601434989457508907837787922521363070030376619039472743288281275564475576994090817571401984692442338764300674013804608723378833778103580745564497097117574609913700860190203781263402611033946369590872210223788023508127501163381771542876198540595964699178449202155481189482812219399330791586518170378721848421234043626238352912205380099143334431936856288975402489118889962049603191752947463866274676442771650687519478164829370618047872977302925721785452530934796467226242283790257296081850106459742710470713513194280823721710804881338642068438018651629025762776620244718244412312490007804325987855872076007543561873720395482627238185153816312054056183672115943517289634727617085336586767638898360212858653757499291995138134588074644997995532712899905052496559763052691173681097012127358709990183019534620800874437991977126195924386026900829432333010149021777886803527499875416150763849049079509074340468057203830492451687612502034584163378246253646365563697520664118525653029528145933634901631961792173750591070655423390112293738845611819229358169235877345569206522506190741756274897697124479371237952868769827218620636419499053173160250786172106073511874783370106009671413040892344217284601535692131606884706453635903037308366090910573944129931212178387789584666335308977585147959709411801472740181582176781001597086464172108911379828244414391383161389515335078231158630588999925803290921354532626970988862946041315427186809251338474226445389457662813171188583856719283978244673498204958753807810547048623251583821777296235910063252430372684859010417179165367812038356259517529741390459888445729332292060512399460439764485845717823315654347526941523712705093410698050940574064957989146155900735353357792073466535908631608274271719981650290305501894105187565433445626512240487082160269401877930539215758893420609010027035985655340456738905155070372618858249186544890237168131811206641044372755104406977809750982337032453080028616872219295046014143204853156025433282936040755551283013943574775305317705919941704838595244516649689664273058048070201302929134653611621615328417715772461966004223624912213178480196486879205748658264473367787522506667830032399328619275830693749699423224567802034880535933385639718057796999047308597794094743625286510292567849884235125216622946506080418268797234942814120865248150906328554732654190977027556068260343903800364750027675159562107651526793774396932225168166501344609620513516112905980864317767111568301058402944379972637371915907600629112393135030261050945106343753929754186289243764399290584308277098544969066654521361079439592826606365768021949151002695287720420414789485749475603241534976048907665825230447824812779800669384253336400107412704651753904347080231115362602441217147640889423875098138567450380075280677337278305973108017925753983797301820769107140952406233831627215428533875434883812402824244941517322902861686964979877089602242393887996562643995670720203978912341480351442551338656830732061352106090947206859775166795248671304882522039414719160049981867363585098646711246692780774251054369088617452019295790550059338493540774707366986818670230195867881726592904151160742104874934782824738527916581224890233786138682488719818014880388016960954168047021611919321836337840897506442553151974067270398956969999880325770441498145330944300696053084187402194869181406424986384234539551953223525411945583649409892421339340628077474931625635818163723733787195021348742423291881675314091886953402009475178363138646502175848527169191479621961630960990537410666332306667717464596497667843239233507456647022547499118303900767892443707358854067036828995555459166842055939426921551421340960371778080726586625421231057548271394380905582123848597791805957132032630413698368848456994858874316772004556444740569087364638381004163430149060629450545040623585612331747717958772593160531612143794615229276442001002336729128399589805169704504637423614606025260771279951949989624478793945025280506416222718863068697113019769121379021430274229125194554782233157448656118089176504946693777738190304997703563410352920621932447009393797083816065833161220474627879618497623512623645585620804064953797690411236263690190233576957199274819663261523980227149022779092962712462236649214998123680508507442579494246892985847747502215862900601372942396645634941423874141723549712512396284650853767624741011027008514006809304433235835918831587776254279159651147298393935460672512729204896107620097640470473976244898954088971807484362486842429557859974173301651267995468279499347352623488648672161965363534116210270612965738414647429242512708846695247339401379472131573396411800880113644820020224751324352736361363783916574414984959532336232160773232426367956297778965359899343369976667854794909947528589170460124916954067292069820390556416549687538503965178811320490044256968115462123223696650394819498229870957933982107726242569345298489363304965266966202137173585952959306168695571589469713537665950014717073676411251462504357850001620061255188545358150693417764359624672490199288512891208104951815918389892660745024773493864936133446879571028383789023178764028556748307816394431873628895699884429341639923854526570955489776506130759302015545839463189620301972709844675285116315885173733129990309229032504212457589961672185224214734154093789948560586638547963817045987961371420896515715393665704086079805344320982244131258451706498666458812824045549439266845119985346259394697443408257200465078293043753322803353050876929323700937146938008300394454286223710071738874085709176994909633194004515211180405759364704609134814609910151925392806958488305327355311281796694568971654416372797155671927719277501867702638397921814655369645009662307388343611757939663084072014629432157136424139180585392539420181801474395922689028193229705701543286823456007731858800198349364040190615414988351132650664236954419710029741671667214176362716295801072550402586830129706809581462728235272459315772809950531836277700857925613831047119305301234177535466641084085231922454449853939055202914237023481626041219439596738189426408152910991565373795167942503695950706660366253381451850494819133499014606905883152668944268283968223833760890642816673845986561522525333346541297768423210803415527485934606563280436283403326638903074875721666157213734627216298160193575493928138774075129959346818217921111753238879547051056326013034401544267541293290512126489225296319386265130995468665060098540117329034495123830413672134664437245842360085518014222410344513655326087029423879911381916807616772770323971616071099964942362922907616359503189014343092556116885047468180717745607570360274237590331301089194447986785042264793934951253113532079835610825022423289961027291432557876877932083925540660647848867284929090179103995359921156569919603638012871871564499817655300914718559753610941896694806721184489520331794612167485210820724803774088785498801080869325117636658782428654471643003215087059652722029580806304310722732154105269443489832253145736167894829152572321085299802466764749105300023214034457257981304362928303328065740168337453276997441099691137741759440794578764068337730858788227282201587229184003792237162122376766087491403394603457157336695228490259204466655711477136498246657411476719851473166193505443896958590543876841209546214657421384266723362306181445813144453393542009447335156581033915580666063935104699342204531350014350766547999013357622406797921751257043032374108857334596000668344795776629812839038529306951107836406661860278603418136796285433635952875269411658240238674054105935773154959351195738891921530218936385434519228554793912551490446181036914828847675037091710165009146864963674936341069663657340795951412811452028440367577426437409625296450287627901544237281474535719864432388466876616419536947663497669496062071775013305151230555660315930499885488353631688951984067220768236603913931383741301476340904674890147411248700811900633675485887720380962235611494795864621292406566439196759192311200859411419298982938684513261190701364240466906590025579732832542515237743528992858608975567693376583211915312960646689264135958461809084144429729395599958736227118302036012164024240776521974602223645817269766407310122855635680468182537821367374442111241090001932802192920930654222272778615965439300254908645741705868129355095382985176431760764824881431936575554911016565319563188027468618323248009459745399038184226423379864755662703034553949476905615815165762036249004400592533289029207323295069776047238277960023132600047120783672428032565462636673741557670274178538825939241635100140261657240934322806791082023269761471973340867379807324361904706240675401041559101593535724931260748608327738303000918307694617187152057313941909124504640122353129910594361777037275919246972826257165234912649619694073330829104350271391728844505080345779275763230057317971069831342872683382472320366528222076889476429602735001348220249926122146813487240413682397184712343651456064997667070676379889254661308015343650173434949698421101000002336861988654840183547254539495579341913532821201727192607060770350022341911224488866635681942260132566322346484818998837132641498282253473325489044493588756741193074052611984060611987125683562085596700855197227647480373687254901793918524752712317825669688472952068756224631986490456478289137985473783852076298231799802780358374880909305523655354872330718657461341369836232187716984492637617302430166021746429814043673961962643497405665049381965614405331127388453572875600565422015962728306332121414347456059533296556206880926717291467577758092441124327104241678141226948202057946652945392636683314444757672256216342822183663477655411195440700199876527382683423763242473911624649347836459142835930971282960063059333373133555219887285539074834623592542512582059183451715597583987246511447127850654376717168338113540871460045961998049836404964108622168060089319628075240636609176525065031815602174674389224160812209214690970065231137556652771002085587158882767976411994898958557577633989816326097516527606161026565224925148752654428188551070606474692920835536541819098174883620065251258782721057690544528120740263578225388070104811025522335719483918872949744820757992270806599810320300099217510781654236121001298778392440432955973587656531838640448816786076739268961579426830451384381626790599909578211395097803002153533543332254436114858109032249661194748050582518236465787193508214410348146296882421759229215280215399472045643745675831872914906006600985265968513586842162428200427906834867887382283819422358782114223119532487512784559037018410332570057435329724886865275771622986341598525032916149914122582179180503265749930869863084682719509237803636013012429519451077033642790038626813389819204621592375550424294534560337368365479797207840963899492044592650003254614030809304953890935021295646453774760481064950096633566333924701613770072462410110517054802312021433429200576390807837912961739782019443847724129592220656529709467802056311883816622367985138694031663735751593597448276320547188864026644065908610461051300833136547658239235242390435776981218910937517222683496624572152096766980359894681793220327049386230874102035478507462123078752488451038420931005804899118542354043178874405461847794074666848332260703742096056533130150598508219663591554502561102382439229308470919717238488812431369612902925334898570358253910776611856526262134409580942072061666420445480592025142472427546541783792104090487402784608896677028144771344596588171484181823429387681209763967040248842734874924209929659220289562470328648237714991437778512746945924216776091044709207072042140085287709565774297552199394545771653418800694312699732292064554153497408327790017397161972816811805641078037274551746862493069791285885980045495543954064823669246034874394120513944706060673867135408439694576182492217851006633700308882329830882006644114311696588135662043863522238556963522227571917263558460578596356678620633548678930471931610649852470894069376730346638279267455674947586610001514887296414557052634067236703151173426415067757404993491904541184035890407378440664731738644008510987897124870228118023883615846603217993324145690122087604390983983657624126301498482769028779227926145297562044623760306747585598887170946020728171862787973036711839342492975156753104012959698495998983337022453749261045597232810050412888883980449647653675456868908570327314256842718914555244554223013226872308118465098921981389261821317952642062907555374572332424424916031071886690706812233845983257521009294219255341463669200959395166582972063469685889861454098420288031712142881688844483552265846616771841543896206521011806546638698612662759307364757292479881736051156124539871548989701946334911201055563613937263078085319188310743926438195716196116155920006923413694228976344659233851088767714581053472899813132587986927269633713457339428121381260508148063562298070420510949027124274669772515111728764022997499591292078217853900301426582728829293026568744764260315005576771297425244459420260505977221447511746229675047206073073366301357705116160070353185374308494110542580973921578207784231302084842445055558663608370304238395081483568124050349202961271634072315992147005099668052081711669305431446254419906102649382002625831187191194676732590873074911317613813094199733850211292288630735827959454747691561787035114405767985715589483677290417538106548010176610254760049544096964914236284208725940799124980524225904636689914797959386603818541202558215382561276840005319120860371148213118573572048787367458309691156549975764133940746923129309489172879875342464075748262332561844956590354273775264601937202568594640230506655237183625420605251532828304161233589770519112152745822693557560177574698555929617157367090760963718048013633452761610306894158477079852667304777883507929765209931935654342357858055593811827458432255395550598761530628976893150132886435886199918674672149060098662464618294710829274960539491806857214858857839072017374170384184475775143977433648365935111589816156232199012072300837745461798806861737352563050405292422557776875828476942646935796105734958348122832679128832556289773188420145053331615453477921429016085834586894555863705747395164505360210562285222909490567391009360084010843806397672151421241116601154152605181726732142376127778159927853778029276627466850112628151888190386211660458676634131519217046385226495068812882191220874633422053981523924693377922053405076000808285255273145742449568528970676219839825999079609610616356863039691101690454093937004439501601811165309521692463032182471988550215258518197753240061671560841671370098907223760248011673132572002893874632631856317237468987452098603169924682175749827468512540824135282573779145758400916631530618868946689390467952810674987064196563702723596721003466145497911899618871046575020070675169819814239176413550269731617620918723610060632815949551076090186360599505090795555687356289234671795868583357540617010506902501661267578186453493646351239834667662926437729888529844733034041120208113452746116905909636103583864848796312669098385127691600841939887527601900133725244901445230836603771792719065513582079481037552648435280189917079161759632869506775113400302853373304763860218142553135693023068886081682302834721552309515425323627598610377627900041546411544341698003139644221740263281610289412131704973098346725653448196754413558201137962533288613408350014211824811069131661893491872051509485435212045198872480393415143086893676930113998569684398378304812984227389763036253448449102038678652834254386618516605762271652050055560528627906913050242941955920196565729250797043228759158609131712511107743850730863671174195262001698523140284005307300244276543562930374120217524549058576952952327070448854019820657277965400329896328642389156782219780353380588503061483999221803966004754030091184969604826734568184085794421386572907465290372711839587382667733652239885292649313366962580465070886383270347041916224413147109285342377162229351949026318778332370356166986003443070734267112218021951862606014433748101096159224977117034630154827719019318819236889993829821981666675883577168316659001382666316379083651702823901908968584994337334978762114010552793482739504769021923409206899164218518719473369425601367318063042778574945179964022586480120476790077882443379119895706350135828655504233070958052509337755946276063626454282503734343860000485883188420029465155199829493305651798018653599013067241216602755308918449408995866882945024893296666709809136810165724464020990786382098140237605471112416394729990897994189736348348697710924791833713808248226783363046823022948708969049279603658664109100722895671244074412416309837262827573191209002982195830201014726285624916404171835322620338033062614329149955724118486325260854913597348717280677683902815564480277890633280080046233989727539603658683375647311321189154262919606303312884226073687807434360904851935476870285868429819034866205118112182407014346292077206627745201076302060346767659375594017111470560587172982000469931867228347062977954193523625614218730329800056828937405472017511562778421475025177331491070345051021979789643021310046609428265788578511210654438340668404270583300980749365695670507515920143105419859068323953677795843872205268395749663779171900591171696045244073936762838331497991637077180403703682811853824292063861465785164555064552429284837322188335151913057654630053109662386927068563159146870104138712533898535909348438074359920281393739684436061101841656511500232012295119221125287314723831433972937936549733529420082698897150407512587942319844405235321663529292569162389863890203330231841754114680787456666556513852948787515607911095898818513353327036435343822784677368170487262212622738152102028333603269070527933282919391552512184422363004173402633887398710043421286229527990482695183719798232305123971564514386216540419916852923259899071170943908664222014174859917423918940054769434715509028224074853625856089846894243493179694079556947808245380524213498288351865015142058009332090169319981114057343765126544546046243569121695967473296096589485848948040081196916419606932130435476854893206894369764696660131321118967038274111598010691583995394241221934985628167320228517515943894937727220213501447561560700903425651933986901305920934040677095901655048342117498820047781970268305822029608858012453354661275972414064922848429540578816222432375546646362873023544012498008476296585813974203103344802501444699319524655442394289721589190017904460406996601354649623497703097521539354363700205308584732579458782261604921328193611033538484837761789122474023502340557442618939396834048619319942270860920839001026829584386690397782483320976908111671597668946842187162366299812205054867664808378055115856579462448987923710986945158506330635121873172497111401077423732012474298205644046713460623129616222273117065962861900536720834388079154522132534323866300358693538967260856404962846195236427626055166490079455537135006579556183614300076314081981791954720079673673770343894394820244544459341189167310566166798103585286504572646713763245376306575609978934884784618154609374764810738517049545444037533023305854584024459396302906241406068355480520873805991343001255963806429636246544671159476047996662142336883163002818887439060760045208056558605254614690819651309619049738223917699758806376648634811457923321675590770754132088234042983741379451102726106587321678427489755016993271360163506893346869516400199992551318986622128124535526972954300265051609348032473743643025404547178412794394373732345567957496549527727734428143213315165421832773524201610326176497823736624780056556844533985186596891784017703749397714841014479017339813859563229878146472843125452098619984753735192008398940931072966377449877314895507723493166042697815762104405808233333671983282671425632835065515799344609477603717887788151426658121093934968450144352119897228714884895513925707322327611342977281569737854552114866353220294569653414184312936695799263827709384197738064672282669367082861360808267834518545952395743345976625198396544235228970911518032798507840346809549864101904222276145846660698121114079982881144414267198104250093301175195110247073977670692883314957921856890136290780562388063298612581874213307937323373192401388067508718293701002405668674538326392902571507163588118151985900422166615798990891186115466176312023798151170406545640514798195804969049204288413528079478402847474915246261866508353305984934985427099408711591923519179247717218028459104943071391174535245053747847333394482891457653790393109549102390931980086550456055595574181418708149511076145800128170872731268109665791626345920054120687023133556179796820607288022787889912880157282951136993744188828255482067425655847206190732602788714698929512676966574539566156050918402319593505074411388044976158722757665640214772553671793566491718361058140800495911725796322978058547801270903668053937484911481492483933535782339193877230299099468671378712224183572642015977380734452627513079287883717514898415918458009096070463862345390020693167984791179769957674182722369442025211613618869440835835976362369264638948640429701115472730151557783474517480863725002535826237042235233778003502980344697763584450737761822112429573619724431226214360932076795709959291130524176762864889659068534816934313691067321974543784132081501247541468027116665334087456069842903902360223343506257324575139844841390349396088026311883698943631398738669465543657058246056695203354486128199371843574676197362165009697036134357637703937130954350247858918975292963624798835882768319137000997127203553806033556080818094758450180806460569896367332629270961108149912286242200661108529313794434961493554890891757966007367825172694345488225438718797946755481965574750234725448679897119941147716258466016549006553534403779216690828063673753687186817289857155643049577290416092053815533168566033649373552021362715255110074334238345304612568581914031233969427372236074319025601983271741702174164391638700468075153983123702174266796328453364216352880206245928243977029183854316927604062441719732257119756432808291141461274722939607042608501855434127819568744849796427869385381292236132389546646038207773012126154912189956844021883907070428307552646056137004286997490379876817188888750098323375089793636921798477506836031173531055035253698208637545463147052903680027020398361298877197128435192801957560191759809624460738216298614612850119846040028196666424632784836278159296047721680300227819805200326259504753640383541022044922314959907130912588345547417065760239033591878781929887149315247494518430523629446246206046123612310991399919980847179324191391171907770928466318849330911864694224691702018623611043667994779995076996342838256896137656059521597764332533205161135170366672543052878073522093035552727469890406276430262864939926057342989696094320302836829521263590796959607998170460263129837702585254244608723039116427938200087053183128928334975693033141792929757169985277523611409065903907132585617204764076346991525260215369936676580359894251756979943613390002019094765685984124480121492704246799689453704880643906918039318547646877169361553054497818174969051587501095149938092990885898815969728707844089089066683162099193790210579005988216851265451651991596347882579084068879501183593767093133338910527712753579003070621731968026038415625071801978977731434793757693996772969137516178477537133718251632441258614804065565370871837343822222168302357049841214023375763689003682040215381218557336744640967077260529882662081179535055641999440058919615848797510504141836343686236333872051861838227084139229536684844714105752462090121268493372364147373081302454838849432452380598742529494038561523199389593769049751989811464721666124768454285258806955207729068641789307502315486798919046588376634310275310935607623368020791566439655254070663562852034067203710292623460537400605508305788565560199297250627023632353900449864554511126064688407536849010867554397267088355445880148982733297264906302178532866123109787641919811761718598292560660675242136021220252377211849805938541102159493393590406132488481536927326614838370535271959792252408049399975990208091090627567197670020583162878854684593307024236666662761831756698145342871769396481117887149097249042754290072937910309781644409958938127646770499627850278534251768022498270847795614955988571281868850405727766247442611479521160239113761942031579657757005519621365985817725091130850859635934957907582112931174105873459486120428917886926683862334998589083213412100753096436055466340767608419052216309536152360075071656931340631615658624819496006425753924647226548185192152238370156603430239644961884801456161562689191957017585688810181644850067212158598196733434806691452094336608971493642809600452281276037184945354276644064796711229924493995338725536370407519286820454776918272769308042778505439666969527607657322726706460358886785778302843509072818318959870482508189950564429852819178711247264133533290355726793929490099083040212901219001046001802932995717512211289392159681228668300957805989398481280157536730793508782650277559989475436756966022568197426597417433448862586742274221432026919227129471009473604640649480556376501636884017309144286665913385381563332481477764205283359799006192787597991454181247943221199380245172674857100389772520676833567687977269899649534858428307964669664523819612781259847080626230952883764151722183342228865487890378390576079834210438033392624939070628816837824340328301599897031848975205621000412605915868347581664459230925760023927169810449154776976662484191685884199957256230384345131582966780354845196964676551070063487737848282038355562163837376450124157005453804258354415718247955001569820592456597238556826649433261374102808747978733802432889832872613913072925650944386750790904468839946306567281889236771124951731533225419876543706888783314716580697804883809777928649718985640231315334268401913400481291197070293906591918331999613968500550109164191028538908345601197122255464225255404184093037590303832032751612062712233785473079485067301046098628404848002527688625054118389912358421038307698885867860452399091939099567203034512396091926462110121306764958086267936993682366449056629886794989899555133059226060551874666749124610605540933885954234303167346814519020933564287904663533655154756325567086803844547657754707372994667230130625297099755576540058574879251676045328924553947760708377843293468599536994971030458239911503106995013109282821209791634464005521178999099287810795309048723992301122380065307009093747485434573757878107196508889327433925999129553434070462994828653538735966276480859642338158685772796903074897405214249031017003237013440097914471898691870667401545251975050512696467430335658963181027293451864708844349648846376103032009863127053034609540758677812834153741448502880999017280009818565720662690881257678813261986044298569437170229192883251975896325417147380395916053271147853162846142942479970905964327658303442298032673252971823114962217296071389983255181105116778439889683858235630329420960549689291738340539086332377187845487385323582196836825498969133730227893181142699227843915309244930121756248321665368456793328538106839410847254824806193275709000388513720644675787013871806200033260665998897950321758262344160547506854650631781340334266197890334904606836464621484315497699956712540011458595132803954489254282075686421033622763862739221671919041301302454344314654111949363988180924928344210025694298548683461245144911033051813455767964634336151712077292003475188571927071886514931643791141388544702380373393371506827138228932650516275559279424439256491542002558776261688662562378709298258001633511566256686747609644515354832915377296530790879730376902656127921594080037977895600895114879883739172036711870445253001023636206039414560270912341868675106337284639218943121852240910426282579070443817697915024429384900417715504713729710911033175385011496997344269344263452829604435448851715274104597661890090298394348715647640291602824204271263546790921466338048879741679828475973908269945496342917192775478151819677903867121250533787110755638547725083261089957669325887199172836947630140783089148100701022339141050865935934404196323527136246364822991030153557085243896539752205376304075494554642454541172165661267228126144536186785776870254519403099192240840601350982016539889046712129544867887885125190391896648460307976756427120300323567512050510489350642826115973947338111362202080537230063063758453911831615148007986914603266423173522912226536281900591096063629436617859433409633054711599045771280106931642898204991140163096555959132797062778207617552481517228701063105552498790714887220763007077493378077181256017781728030088088007979589283981282334316509234911844867938257143842531239190552313074161006616050421502883489027527521019132007735834546352051696211521559608884380339185212347023423550543046129837770163941174189362788391984189857443611251216831315058106436846857548318587822737579554025233060481006038407824369523466483296325574305907263757856628398219751557974899826779852688718862966014587709587825125996492247284394048789684877535568401033553774148439605073340595381848209528833066504478695224561293665779417814015396188363056008920519506407148898502358875730259592529460717352559101325704850824008565285307220376129535933781458373241388040107445470353471162460149673797320937307218469752723419169265359891544797199052101562184069281206795425672098009163682591271105381104945467387418074050513711562574132835285272966992490813694675426081979195879785258557408549016009953404983543646159719096851676439656935706568980553167476236122258466413120657868816734122537407574614003631087143907184100834534556440294475888246657557556911066262193150170834293397500056748236667397825877195277727840067462345358487559660888246390854993325128974243314728829716390788503733023987803678677630980239295167237569128075468506471596775037435658513979515963426570151945885881783025456772287968376993961304341897403578374734266293134298308715999264513278463701831474927405387499951660750177910775104901338396727126639145698492214161692788032722111993942945427079287002371682514578675853276280334471758463421611652605299207717500901089330407823488306062093498923549325205217343490154341708741411354014486043641767468871204408018702540691569864872644385269587855097203444527944650683118082871846387347834804512323473934606191366353013647763071357539205730443447616565552410621758171530738167431328519088746201119138898003017357334644913133545345809211405066447369238000747896675303227967665224734474162390039600612286567644781250153596889220892448503030930123486277874969076604174779260733808601950465072792203336700189944498170034604985718600422594146972895202211480780992257285373661936535653719665530326284510154644163603902092552540509705379573783133988536070375427244344860200887972058355701908611820982308505768292991144025223430080291223279135711146314421478816613683119077701545600935643833605707956478920603083121746377596944636570917786331528825138816863587536696797866824726224103134657220634559391710292844634041001094116194502417570460491365509189213585453158572734748642216547167499386540772843831024779922844637821134920987281905632367891976031703520136400273505427132551048096180642811225916120045888453828618251199002748511221879094791957414402095682693713865383734429243645301553518812370607902032860895485238965373121831191272420391738429247148483311329924603505322943913888031474855297984754147376479855895172751324935322931680142890868890264479950149155586968502674073980019351785518735741445322861116839319739473276036968041809989941367574641907965542106548522669778514878538549532978534610922453996951473904327282242205015590110741500013587846623531291197713990106288665661854766518696042261668019341362253109891686398210648282663455380132611471349828535372889604090556010238521338258934753432487532111342425443077913681273373154479791401942827454260202330997764611738825855053050566309389729399200475789759418121401506516643903333335648918024531558386056728431132394649898339686905293538957918756236093119446840755479804065731621523267063956469515723239542283297490825392363068876854704860296070813821794755884719915710178894924932958081898649110211553362703021876785817038287783593041050529814675836695972125040704253548851460643205099906673921700828801266996923696949667934876925885826062263118016227826229888364515866042138420145201670474113439162814462526544819902204553785288700915401583681377922992171779280947298092517328948144313540494933462197006745573944189044094798019953330078389933785976718686197295746040963218072511217028278881740766998477723898585858460163139881265558101289789385248650691463330288366761885109246505387611377469702431745349141719754040051073059961584533763984963210588872415101229975009849750130723905096099468017624644682102861882287465519652794708985223595724875174805891778661521971948819048035035531341094776476835926216277459815590763327805862659356210950664413302684095397405056337857600736178249898626269060638918802556474643819209309678373312860922398115183424418975635580965695621490202840620393628804604669706787257451050750503708680218503950314509275485450189754782172284417811595596674824509727582174309023224820705890989516723195160298388325140663282081825369221927111707196903383163426835924171434996120593199279168610398407629057184650186325961548873393279179087921788952473844998396758428881313083475313292949976986293832356719123456079296251761970094191702605614817382197825601603081793886531852389153814917124718011230574575851898451590137783715861048005596007958757987902891635431728003669959598240073074458604611164106301396846613705618536732213212880889819024652048568888857336078758421534814450756015173176706099636121027501914731306226612482348763014839008627560862193383438175519653980874698567761431887294104479149886313712817702541445557788303118846866215269286197783264647576621573254620443077483907327610569903643966522352594370491927046976464740552253299399677031037215840394592345046691584418151519378477710935518093202162128842685366466674406399651015365831464121595339566195061705422803489240796375749570290519788446876024271466641967383881222904053124001262525169378053805468439110456356952043472944438462093728142330949691631387225576382369448620828573664196227817894792403777236153611906083056106288469883850669347055982839583648682785755623617243094097092187674387726984559965568641829311522819254755894848542728418593390392353080290429408727536118153436523927394004838547058278301356882217268846021765782044417089964166834361139137425203192318479096204149320087342616608418575659962289572393776776688151595684473812524399967821615217790804248301121999264161067474044798715225591393665263361155896188143249769997744761183813993388530718815329251331870983632521261232852520227840483046033962787435831559887292640938632176285481158724156898467889533376206803405773987195443775125865084552828430674392950699444710282976491020640109606792736005447033767940027643488637062947057975849980992346859466833634665670910558366926272217731039586715873368513527756402939365246238300692652206828867783634858014746253475744992234716650225209210607493012912991038059723128073457491559196324981318125364307687843276356285973179853472624448363075757210772821612738995684501244943915604002428677848747457395265908293114761469358927606378487162373348743511793805327981006381240343820973376741249190135440138137822032965254953490991623984110378503986485286214014258067326549818596137791714252807379903002847111969701239918204604266516278514732162804000202646071898291360939612440267459524240251173494990889599071525217239877625280578891197456304401980889328530885682901109538838097629004941622212319006730950794375854513545400188300468966687216048062773896697147686290170659891099765529778298331792497600391408378916174734810505031249302636743798533647731214623732588173590302070289252110860545538611385838970473697135540577278807119971453289830709624927096351998061900027095200154587627959010869490695962664123945221147888430122435563686751568928486472509812169866714761993142411240109542618713683913904763165414498557737278352904586596347353268230183981804087908075236970415887025086380180514298432811396369689429820313797414716581875448401715815992104065974339051104823978204359835100848029149253983829693790703472580143832704697530653854669297035244786884642695116553433274195510820733884123171989959003834870602182833506940915609394172956585878485436518246508688849543057849284316049747625004221853895318377612838577597426047052267387079249623111586101738402203806989263087973629625030156246072530285945010722605400860562476640778985942479274841272874766145651091587533667357093448288592457455918168295778951733110049869651853200304628487565801086747058571766885589855531382273701777773348339307121267614019327626189354506656071840743407725542686093172941166027370980728341735616058151249175472604390876831714609513745114264870712124767359978385897264184848269592239166450589724643078696511028478087181239853710744067775988933980592486351788777025401600116104825397492205971877446639232316049699066076986769031509136193038759564253435002025432431611701639396515127798089107969559737783508115441102227537543478257364568262854279590947491655114147091503158264444334297113648925951314487198710326289401973394305959321316215964359499672458866142711127962190913205822999031019204870488609020682945245579519845176244209781771699785378032626076878102692909494716213921572691100773427990449930020960671908761173663712715906361868429780109363767219903916701485165345055396929742332875172435769608486966757280732045005612949338957496776085008967912901069705250223445828575778080094885439868632763467226514156916966343641620386345983616723130908124327113043906308505172227698017637746688857510673983701011526702840157286847186047294295833070166717144659790711841530149636836799718576139501447830583966938280302376382667085350437576886812231796839043478553703938972040069144077946920510315835484097567837165336165419936496803156051989456288979730556914728459214929274665837472067433201132905657857281317406165819240274112950732652780836655569138832710524621451759429077739623415647627017139975778837449322845981411828283031276712516175329401871036724624498474978151505126766884664388815875241934616886294077624895339521211692235986235313274578768660664723843572060796535666981986851266864482324660540680803501137761412011761047939279930480854289684059601224942158972472251002286854405174285049523874457552389322823991709880864655314547282708396356983120732010831379905214199646754156356101156017406450052823368263560302120349693464501910530349945338226026834255374280552274214876991678862939942260242495982943141068427063273642936666697100257160625581388421589627485082013681403642688587295076913054665741345116006284352598222464107060779221349950292628212107206716248586818651762857758978477439964664383528225140618892980728120676747773835169817204933780236703915665880946441760473981874459586244628597708959845932068048338150384475148757068924520052371156934887571228585792607537042641971140377523910642037094494451887430709426465421227691031320614865159050776930500141270141785346403574445064173564564407469568177974353441340807264963538383763064896893221143403318048141190710640629569129610293823910049063465785245917819385633726791121412972164620622575522963553228451999610506564297027576763856461825040047510762576081290144573165282874586057122076339640674750704711308976060731691565920562790245324325275684771697305708855590578917658347661536790634793631450344268262585504895082020290621204604474382313517250888719771971046617171986972921399049524256466945486399320332622080771193307063087292708284833384595508896047460561544385440829398036220352580761767864122164238741823826441027605960853040680915331730330655539543351411040775215990779449162913948112041402907496011193282951132216504675663645796220533431310570507188912425281197862272122464683936002201019348459955542138301220115500331363150721919098194228493908733935263464912322239315622589829495206667325952453058701070491061499031688218024062117725512167796650722141272499022611858978136473512680570792222089415096191701633063560065625981400451049243367903722010140445307857685253554308928635466527255947357643832641925155629393942795953847575068831060074223514950267703326735623501819722486609639520551104024087456218614100579089385432279366681479521830983166509305953696310127526128743107801929154920850862609128481521914193199889749245144546622499250266644989480518269949816998497448381602389142391641421288373481371345399659500657320906623887733539001713835926625468853148953122567821133890183518031278359376066730403455606718104778656113866108580875697886766435791744829113821026793025260875454244199981921089380795252807233374958165126297517381283025487328256559269014792873729061805416137339425447673112367970210750809452231788107545976618908862341053083211509858199465389683770451773456383914602915307855532662353401520083022417193057218575094694520107987011670766766478611561812426726634097395462166962231973666746786402424135578536538943737535198272498545512152390099947208213018797065877559198131561774853841807322232418357833075905120190506727119130256516659909182404569738629239101855267677568997327187824597786054228354405999550936105708485630035188710757954674616902675077400670977743616115097393958575147557035464451094355390862654903250758242048148349616070644204155619123553095999259308264143552188054507819970476280872158595131670328062310307963824489122034064170229659551408012700748386184646636316474013176903691969408943942651978269822366892390162732187354093332829661649345628942303986543004355210540183587565865050427249985254813770748489204980447901822610903926405328305122331383992157257635248287763080038749287450602947693173964277465735457477392751515333698867876289534130602845717595183740710330195521947616296789640439135781042718029336465639898472900049508959498628437113586405397518889975514921745353641625895347155162957039337677228854766702746065475095316533808633858451804991857873829008124681145906177913721568392444090564073062149132703871363179102837849094104424019859017041569072875521103778618741515833165484200588587332891444291380951424001037553897741442550199450913414734245251937505958065908726962844890290247744460162141409901064046498161233147174002780814656504617392893974537594583861859872605646580480970835560231752969983454286926141211669351226715889069285681487359326036899608685006622736121387276476768611690406844865011101918974811157965895567293172649465648227406696841606652116204526885162405495659590998496162882607672593158656997166293874228464665025536420631804079536974056696271114868711727079332236644770875049940149386943176771664418146457401352090142521258238368450392191082950024928442725684220406379034586201205655345877798108749097061754241645311250016301095516771632462514866346743497391502417028251343917773354918158221157804832461924292412711030042530705406313664777680329463943163443774073911721878922871222662898456872207925536413757078413796042590349135059402800916279387293735808099767439629690643994224950640991691081548412244035035977865272544463616088904669083839951194388147088890541739070473759582881892726413056178408074210194684458174029519870151546817609158567190659138051556703950921155667134268474950460944159204834591107923766327036844185039355523642467069432078379110138269325693626903503109153563792681269120316363930635799585803617194848375923916762784959400294039564732245437171575119606125130276221305320103759007205818792130929054629997030912530540632358460864005825399641143931020093551483822013072139248157236315280714159156240389236849390570114375884764247822577429826947305242941025346131473072505033744555460046621549041587711389331187460496705880319894590915112855131930603913039452164405063277364657002863534067132116521526275449890291280836264075013589807439829141861785510581949789301628641791943378870365060013128972048422043308240282032402566027621812968193572189941317839997429981410736083036272438173675149649666052337224171879238886173482976890847845132146700874890628847002454052322968931306399728768163420419007427998780236972797933967853792536624836976730462514816083242547553065204975126693991630329692804716972735643655715730174294731571401528504268244534438067733970294427877631788111082855759164570675070338129952566192008919405718145757456126419503913262617817202480827275905511129785046350239374203349964408563081597010693679073139613789104333515787294013419614501152016642939156552172676180237763467916314869146661651164193553215578161209823534497483373074409039211484339937922555564026417557605491532969483741554657429137448284450407131996018126943716519089311964587042906988847272959424242267413295808489994678468727757846498029719681843081491141067812526028079910386258134091321685047289234102373234047455815196510564114303526101602670391425634970472257893088929701354974066196227377856349178858385602577150110469336477761311988159046117543416497126204555550513899973533739321935047946664678426651473429243990003721183474838910597257984266389894028391650845795062595546270680309577552147642947919690020194270716631725930019108920183051022943041617155767282224993395244683852893240440587921822813043483822099484582551937025087307548139247008198497613546608027485104281720284206979579588765046486727579365551526343172528979984670163887894230654585760598628907695453589019939976024221416513545915964159129803717871275862895045276129786539254920625531680628753216114203782775452452547463041609422640470422604324183851604164718141302109141229871194926811787361010484817980670902518877689394038549982020942906878776645956373406949391494380961828388092462817860628173384891906908591854907113920950464697562374954749303887607707308003795289277766061426039685321468867073068628235870196807451417147621014091348703259357111911723106759624710506291284803073757087232176924967153868226334984024684722830503568095127599148327160096486221727176958543282072361467087691618581950000863607806992512014077551614131634767702091557139732470289427126460980609050432484396266848549493481564020373639300216500302130915324025795405447936805412498872529092737649018809158658980992058677662131313687947409714265331997601780538847560125249530518304524563665599604454428328449231829988451248684824969312605014050726263336782142317908579545168760786724731989512196229389270426353376041326719119698882532068812686503567644326384885666678219898189161250378674976120447495205599282369692567793184853693185654340483743461143544372678886414504052237884127943288176811786269109266830485844071647569974160384742643099373246232885949722524599598085639720497357249806708731065327184018185664900825104398008662157186250823609262568470983021138928608833855718478951458862527476232221004471755091993322398403794222877805625325785021335751659949575650828849820403742204849812664348187923100005138863244425131966123070354767342051879969951578328698887092947990513102515679783778687961807183743723885171086309964389070522593530384555887828857268223378021112271094708047129477160752973041801697993116598050632882185415425997597725313427658795722264434131062473374311558174440693357814640961951398107247533069646108322723676564872361811856270043297838040702762671970496143832962714282252850651897241117487098212903174687744476934208373214402307574144067778854760414024629484233698730913847095261427548285064799689466687580341647633495795437342866541031044076982004102605612830059621958699147684732842963378773412407535570259066026331799332095377226406577456229205784471964747180968037494262838959059103542557806506223747759251593493125729815887209458112191501190797356712764073052280852456124157557205245896585090415557946900866028661116380892081473160312280224794987576620596611463766515153249146642980788544702175566616623920470301718575995248321333555753115264326513543860343412402959424686563338577566471565777053141115276671856601480070755666222927120189677564044777946888485835551497591441530309032895045373985338817831918766736411571857612836722771230245502851835898713853102942664477605578621645012595247069908234300044752994771866866840615905851352244562840720895859572487213723126876680214295575225936610209550764873003597298382836410605524832156884845301148606896511565715903333964170857157058831877575885290881366175763783370039678898503088259106906412194236100626922139546414556692708508184034839548814788090266837193552313963351022859238397640716179233827395040073049609361363925928529884208052137860504617075055186519786873591015121310244831756955629627554873520812381359186497160596976098516422692058882626282139252628408810768413547401091937715696934117619591094455728116729235069671216416189383123404330523787835603957305066238451768342348243117010716062091565978409790397191040752482232804938279034803972764951572577614508006355312978218845179278510275918579296414831293999382738259434970057904644466377559022235043914104332332426372832487573494905668825305581417486249705051523270015057145650587622941861093001880406175807218995952141211041732161294664301954678899013778240038757734035874191283575710074495697190203101358368557133007546577519532052777930069697805035298573758028745236139865456921364398538910366498437861249869887473424124575085551581786993922820385422703303999635181688666494557855134074152784145936509607198395528407594945634960703454273409934695031744938004709534149791063930666690052163363977966819246318052333207835581432527086130057976214999859425366779964959197624252945965113052012157892883132674055668315426675845731616923638721333285502860800516972746187460058715387681951844076385792627361468222223680848164060003590026338858500117430573465063986619219065146158378843263046754478894248529908187893499359111522232930533923944723484793824216457771940389849929245111498472790242857592978041512028475135339006656964799664344715710559590481683715414789416153470287048126904953576616370257726648542459557557917839752830269200541649167018902759695780224882924736762436885774331643792566685333755039742332294767450597368083492697194370606852080580196193882430979227593619341021900522864971390999824543416831132873447849564881105212099184136338653860045711424804195039359019782167896957359040096762264158178493907383333113360469711742038625618614341435614966358342409364238599611021827292222029433288905236410291759331233327534158775581225547090918344228535024676442458870084580469039169909159187563932575200772071959837836122839523556111973582428590834531031683987768106086633886257501825669187479211693705094340452164968180673907618087295636835908484742768806640528770339200520399349392897654294459083718347376260420638199229356045216811807653816725947513010661138985285286027928994706745227369156801588775449621624030668631146419959177616893941689244039021810903348871481837313938497640636344575688760816433468123609137446142771297999419274083836940302918273728249475342926504298677084516825006068473144364189758440802889519285781411048367050909906611298067344269878908815482816204679939988773252350919079632902388271507567051321841476461171912855160096053403592791339835615745170842002417127155150371116276256015432857799675038067622440214743491357964833733116514764435283744858898120432992341809795908455481719750743312028894532515066070135036303642878745089704504002413452624025050116390001240587835145721367585482596650057997937367631385864361134099996002882790135919573110201162987074214719595068280421216666707420427564466085550801236973243183557135442171366438633338701754527100383440992364619532618978109650456125201867139176386516790848947537402528338567493347791489128855407346877866705477098149545350345941562723155740708651118576751108971478908358199015087559154736634639167423690020740783945703773094816750700140030088725569741799389276556952985942098924457908245621383635750326850678248074822064479745263928759247687566758631054631274804347564331252128450825822372099119976531633012368427206618527750578184472439505633485652166639603175067857619238775519656272673136465731783367829701634519166529493746987812208197965772014163123371513477618304358761817225256948936734949757921661048745782516473669525875024430453805803573451182148622344717426187300614403831575575784884544416629331395945395924975164131765946146422621464461099882196966731602882058006296768784419470826395377974468257427756586408117897017582509234327704314573788901926970993711633392579025924379854741736686674790212166136987172430250420162957929117692040086198930442496506992513452940240273410691180884892768504846859489750125325984380054853810515307613848173929465785838664950873990009372833686066239049267785433459881313498610255108660808545269028784182996458694381672729127059842309391716203257177661189207665771853287232171828366980130955611001800632126893647528344451526394792248865861668729085862773268030337305823839728303938120698613693338851088507367625799865629348250591295203593625519253081269748375952496179997403540447031176439615814366899013009096068925616850400252660096799217046267529337451762722365194003161058699449549312252937216222789967396946836132194934260881019200353968833926434247076439332076400422365484587367261537796808557391453460456051315184753217670079929381667183000847038699100615920360525244000659247308569393341135663174836390518669342207415467810804657558822646013715282089048741671105896289029332559549759550276045999164701023642733698195476967487697680570778121953055730320523577647385477376998330470907112657801434341433951945110155188658510507209448901913012240004525712859187749065968587628818815814539161183115197371144680384016248274975100234775977674671854872437970439247597027515517804845425841891912961605744818964431452978369517290641322247167721128893058330790788090729865933744575621863992887837490109412415915401892964896471733841784074139480320132844138069547702930520941977821710593296339512467734377332435026396038194724154391795986715917352739323762266485881435021459038295340868461481313013774442389056713862597109912281813978303019672550382625478067481889021734051068450382196513025721887322314434763997691783109931418426427743116495980584357468579836337807979183553251194523030959522445680996586947766778964521108349916033625336643797304642848013429714041388091120524872963461191079139897039275752487269955516154314982405604935611234186385421972057310774274100359023079136816847080583876101694252493286882073646280189279463170798650437610719574048450141637153774289539878444103520885960311477358159448478345151578771105198652858427499718122167018512754435386450000308285791596128011696267025592340134992593155919632086371732391940009365794895632551357619034451618513272108725007209635119583476680933218393755810198913352299538925273914942047351991554300715341011201359055821487798149690820520956023463602542715219818460114573886874249468846590157863491798420073176284434986683213069357503119613831915217880309091079631555197852390127280226396814504709763565109320548485370196005215937307676724658127583572068362863419679245197986584087275875421788207581174029039397737213042631328405868597104976480129060878878153419740866724707172341177303778668418977851136550735447510967840076871346426820190714584266288061087627095115858640856392890313785844183644412234987235269317327941601417501124621873963432768650382581624601051281799977381117188501021710797256762043097954566583035333300177941086587176308930192702636047697087521826291623425113888595267798099425432540989644568648942323521876477069427296053148510853211159421321774214110132061866740468796126762420352724163386285070257736468599387641003037449412149862064672694935726323307272937208133042706113438632471356882741147720409726184395679963648880976846641221083164137472342003277572966423547189429074828151002505800509691630181955772073364295431808939318559316944349572977047917923146305259740113910314907395764608015347144368559308384639176123786393881801483692689213019860216456873565094267254663334337987620536753484394016654810810854582107728852534099958863509446485093648054140557735519405552512577934235009685492559741203327165492678504819451978977004121015683001007249074226453111616937411800337585628292322658048194439612525741783405569025990371918972198268970145363483462916099771516375333641400598053575263359241721318922362477079633997875832460726475399380487383674356756085408352565502572201500521627279596773312157487437521181303733683308198713393140277339252104915441280037832674316739190189502699617579852178395556471302365779271060143403051523018820955490496063850649321056933870397874145861037442541697789311689262924109908925532703741020625691326339231867656182674611388936265271469428728319129455173091434807376024783007128213531278228867714145712544301786542909511436202315957119240921778188505818549106616975482671219144086080298012803149605151238904976403662027295585787068615865429428063111292541003626721244549651663149759527429791705358958676694054331542248632387594749033536165445646120387849142968598807257858658484901371960238203138093949593256721772998912133297955206149504442448653889830278131478514213646566819527060746169153651401087310786469773304247791146371430884969080638314807387253258078444787677827597406873338163901567863765193998217932298589507516454112602928634709612983235457175154910823273589715509577413323168581509901026610476433442742570872372613943683674194169562990026059382584347604886288587198410807828581752102314947665255306030574214346558266808368834735553810420600351466450276417073082063327185099820988592073976164646150412751257931813568364829020525844033494613136649812814106936280696120301315432694377097325396944160557071662927984011331159352385115110962602617124622838573513036088235483665685064709243307371620092191866120063878783468717448566853498758867125171903607634867456447979839780667056987887212548485040546033984392886580645516336308388833216980411059684062423319557884550425887163609357369640718211386927093130059123636155327120080287771416945493130729966594883647557842112895275383975801958458221055343832238938053046335340965021805498554494518326383655187673089414547115928079226130900442622384239404924101996615737450860321702690283051031675066585639658083474548487506607039985402071768134777859395019883022649474802987470401973369321558778795941783067762525001353261261733411879223787010779324716869150283029678925581920649121276538732781206900054555637745567338311032461458805129279468626135363538301764015107899076917093441844856632023993455990895526950244176131199277563616498527659568988048639499933825851522495357345106552519406149141379611424386520488646938033426078415372748295796764068852296100662744193684232210212395839379847140114374659996896841561917481208463394886150479874079942569965476092406377175642427227408694360996114986355429932304806441808352936046872913650877234725192692582212651293329818678694781847530576324218800239581255129007660651753352431772959741823109583600893541656357375453864631432403305193385595142041942124423490875790958571800346510727552786745323220888713232583768595325664360147344669292951650587884570516882106223069548022911349086903384756136059799980996581493929707140772853257398630111629693811497167675976398401434916788613586378249705280716237748551584325308871727058897496557600666064832430788674757352841639544476277234895181316316432022434610979474577724518466475472017552601454737460569679956040631672156754099769434017723988902870484888368593521284909932572685816161308080483835603547621488878842944906875172993762149464967108977533061420091577632081368010151853143384569998156731558931908041085225486690045756092537862730781910022641269356590120420096702850101144433088534683742288281935700148340443510559363915191055313786297729040290958179296415651723135843799856861022560617758767167663949496313409491542509513180010437843464615860032926260410660008642024151293999819982517338984532526456736503606258713969777133903158738028290641952360968058333680747286146991911488179680994044792807771031727227303537517248605406625535775874119475627438699845650930476246461779672460677334389071899622810304209208120594482386039036406938092300482053600673878890042840170091777907766472156867193539209113246303850031913664932767379372528315926828029524291476944749524178513480207475206814784124952319511267070451983245300894656631553874935610009965490874879718010641258330744886292615596127783095020766447773790921380320865456911605767560483703740725091924019799459245932982926553405664817668559762974590217998587812142212163066527656172936235972044102907887194293863076576245581454823352940269344929836013583601847225969494812334972223179097766523281065577518438029628204352171846270763526242054098430711931964752261815500523250429381119255642976311567406917353035532384617176283810684115836424212980673939222169758881933006852134968767236148213682021295269589337935084575146164340892022780484744211453551771263311746395040179392824810161040550061308946884724339306801384257613616703718095515469544698019948264629234708702436886373688845411064436156748386486580055386981043623405403987668548153654526523182315446825939672089692602703646798974699136243747284381373477051321504846689205944237563097838371074275686974081340969475321162949101935896621801011610227338453782240847994789528973336793898106168538037283219311528377057004089866835196733488202012898588837399691911537021834787446653081001982013240047470898374597732861201792155065853930798698160057461288566309135780391610356095512391507330975062844764345896711106440370440993282837938401752052003842191033734780361355902207210248446853927599211303345919979076040208492447229834054842170355630886498602356203500441286753559290477556914713432651466036152488997147556524674191146929410081196419320512061161590513749839105089909470372069295356684507369409270747448227629345289555646383756167705542263848865290518641443863715528285790325990178142833016120908219546388677491331084427605732087988165081076235626139072135118699992279797602136717307637288597395037665280964002251476097422807556429639844452016545198893119908444827280229850300744027831250322599671895095307065977709562053018797235774225502709670089237763714215024356603081345738134468981537413231790270411911127446104544611889727858686696809976153849785316194727276652479471457767584559068192990658291780620741515351644780333828000182682807458957581051406818400585098637443172431008930771453435542265583626910895361305578932298427953657209108833747584434744399703015397049640612747035764551077483573818239609112777657272757163759884578994082507483122704078202410575429264909229170543174618568016972031854043865103433202554688966514480795615198062698740925056703969612035470510985577106541434157261970273544175663083076971546482459497819861667064933012208308619948763959948685028636556184363314675186413954857139255579522842880494628665514562956586029876397118511891943539263791405698476578366235856571318061320336301058878166169120780499551686814498910959119610738758528848674963950385625960830500820765110790325463756153449769232418013461151256500411551954100281723313684545527648216882151507642003895451663763619024012319634721090183269232366011581473559996396365645139347396785672829184792034065321312301291490027098577537432143586798644371225381196939883010941020665907250823944627674932280953638893034436271070399221073829915364439119514926060088021562553976268291077025147932299685386369093388527012020054148564733371127088677538979848409495286735432862778924120146216892814380326381856043277188162059180687774523979828517241213818419065058385825278409847773791205005348905741560300368810802008667028786339159710593665488464156935880665608455445804972781600390648596751085203053749861153614538880780583275729072679784715381679360542151258563312222540959099050453607860871983584336984060347390328209700632681302593994276774716385947942611785881335939330886487761932739021563042023516629257029903826221508697697999668843245529109650854750929663338399178554400964534865427075521088577836864471395547571399445159860588841735106777201256168306395212619344691438778318854092532815588319482055542907210813592520685021562334260152680505020665232113703492701675816706554974206487187672444481468749681671950654479800562928209129160095662716898146484707736244164505773366141138268266113592175247742521390780529624667815314120144164708337852511836488119321209108293843905666022694615634029396302238315213632875094696220018089190793178618426536742428446999084823122401625624762419005451186296086613958522912534035963637272557005407020087613028527463186445031861214200348123151374473700865531161796482126115736723696486000401818304045583306407964837517742778877702380566926840064837295148759010833023493812813355879569455697402738101702199441301960471081098864193299941818776715953247395256175012588898075712974912971585833849437735776421259082179543946917115982614259641289876946804654419702135739672871647649445753724415160173640989299496809052689875428157537968223419041353620417877866376123245353413557207519395887716678233411639329773921019732535164189100875240699936866817290364611119859790025467028491717230839278655395368878436672669286017735712685666388945944254651017596769942610628834117850624915783798599457624329555247855636716705375726843547681533469699793463372766192372351123799262731154437762873058082134216855090534436861719778721965277078935931717543959265659524734628140588905520539820172010438935755109371843619738133243229296209857396842565034343119995059522478844912659377449710885474311112421954193305589650869574249474527912447286826549896886019016143980313861778209647308033919836622777044842114494846562367576041688946152107329257113689148509570064455996947757880510682385799792074611312688728040869503517754727152061169311363690257948803626431707093756519135240400104883840505603787980855458645362535344260087230766313438680218043572406558092691551425997623386682870354478513488244503690606402645815912399480908863922710865644070382859945805869315406615598472267498898613200537257431779939447396398941802689754672779222951829121875705557586204720915029281183135159363534277651728276186870464614145946770912435030083317539344971086527070751379530080620659707801230936855493370780801884175002757279258455102912383716754049175320983813894179113132807114353213299416427851489266550958865202253239458630466710466766367505130087588776234038191032117771848535187951602351260365428334824386459263591505941969384897497312384563818301029388849957769977403820357273408232209346957456298557935120886739482202449345509056463794148802413421308065081915894176290578377531665054802399660383941692432693434091033808744694710998048033111456447601771596157030488089927825153575073024649820547436926795080469434109000727116523170393101546469345951480248834498688907276990663144640885272537675208008610144596550215044068415400132853081320669723235496862350444526564234653367285430431468542450260772929998675940716910189107086449626420809204348556523892760737596726324725876219200496184450698750292507484440992253810737588183206399571560436601390436550231405024987774774743604805058923188419533461910160643761326261107892461721802888691823697152292842704771411635245535831913067610783658332052752750451934126381132746664054219515025569763951098285868491779861845251325521193569867767947935958652370245387030053964947256528531485032834173802175542927580273891392276043813177282870036607385862443528010138059086785425276320785617289463969702056771793201907812593602598148225681453875321792914329932806683515809738618098597192963464237010403947978246974564726046954356131464572801700285587920017468954734327386489052112297319944061490478001526997751840796847149466634980550929946993167367985760761611508983840288811364850853115888600369254683755268396897169329239070372923268212383375472822040764090827110150264784032541766458925036043145201908355699309390011933044200283822654908591508843129121843351743066894487959176864472858541947554674985515168286090721800178334968535064645370426275883902713367767458542418633604726357929045615713207761778013026976541519167960231451941154823397927678431354452972055620823334227759460210800924346447976470791990787916213974251232934014161003320795922234184815822799744776026288054092487663402409498720308396716570320653314920313285270787698014938020933476039745754681594074697055719856338404234777087115630918297717911088887363039904302852383265809243328267240125329077865296809754477473461145758069053372164187329433828773184919934438044485729462817556221509592309495792490342890895991754246608123865261654870131522133115893924463601344656020956540959679193509538042073644543355445099373884329002036111066484891469926997061070319658476290691819606408653033448210846535899418105274871692216003263950398239589488962881209274449398583023050171080445498714619837118700198986339103008898281672849488857940783734845151855295070572891404081064588779133675420148652586726454573171998923355693693082406340681809106494972610365970964022091352111592513201673488729594127037719887184356630974285421954566671421794991362445969750767150256546165923762017934509066341815236152050242774176048650100512082661765534950007746911025726849396820579938032930207001481552564717674947907694212390945450742212081446440404932615658138600660951841643874104979750982560843553890142229963666734765136405284601375865165119491396452841535374363820245239001229612405136110965633150440481547717432480344263597010088523905908444211235523238577590808258057192160457849351229667567076196713641783462091507073113886132814554415140982352867865160420006485524398858822082881814882460375419942889630950770068072659501719680983498860958368776448886178785561586289563347139459225397180710527396548808685223323615725888345116479375492460946291573165234070975032459028108692739078461979386837679051042387730336155445872146981602842149792339067122451220404952753747303199798087100168101049586101408893282562011922981291195128435060892450608831205679703025502052850880927997732554906968461008294658867009620096556273888962366968617734214510995108669725704170368063300634306740660011260438027969701912529416825994118390019489626871101907664168467049202903362049404971621783757358898019193160679915198758990371094177510657221892902617841514448160733222502753246107703708763481139413104577842465960473205774308172636921818285669152052610999290308710619727657143264288057102072747338458402106304423298300912639700751419768429290449282727024731000694335832314757145201497618495277062202573969418381329678029288708427370722587275916520326646983523190823053925393592546133263400189701775844636482456487678291898973189029039260137165375245174154579380680878616617972466191048810526695990639767485168574858873490886132284848575955120361244970646228083098779407221554840718815624212217658987939670064515119347472690346045307556686998290021373662490814012119111036395459236727833722506566539568787170113438667852171700350342086482303718058422254556605352844121176716261155965264860984399094290318488732685104761410508015535502389348187967754114955292693491271413401276886123363405996682855357095408834812137186997975060199579479845608203456443957905546955654641173321439338054132129771776740565590228981752829133961697576271973808872855512031096891294812629194637003854249997970270103489616984331326155798782761183352809368769866037947424397341254170348648959993870842446122579012895559941731298853755374917445202958427053285037034487757797564847774598643233851640955055034229265970701124516250193168643366003007116505981599167126057380422697304574248958746418217424791647161087801193113326748619008402575798333397923389869382022880237104946342380761702371515302056341024511461543105740061092800342005318532791127148427684832334180190017202116735633020142446114737005996269609114655970673475763915646098849964371481702731700518689894892495567323916988742730202691452708993047584784113100515109072426989079216689877643235190141276963600665917355514907005349960412892853911544866217396538652651716358512761973412316752036857428371535579819443780763241935723634743566273098944553646978732131423479645746129587532047015092261989186039642065614569340650329177602501798792920826239617346401884756545733245456151991132502662058148773829467380587101580198969936735093608947107729719067090717331823573536426373405819505839661232861182695777634072799233572725777850477537718563119326076632211919346977335683610408993622037936823961788626216882599139175413221308020970117190117861886067902346267404418510442009866204762397089116886170883797428452509827617340523682997225028913777486167344061305645331888423038875032614429410178329092978270744037778679984755685366615728691067986161186975723528453839022367376263850987799940955997985941586966582799670904600159958193688136681780077968370697018420482558344035725030273249767559134525476143137546005716137644224094034884863465752847776914826254174083926497843165378144989298041080272888904607309322243767228640288195388218238416089301738615996009792798682172214991687304121411248688864761242063925343117301184079962358564400804712906890470131100562142354107324880593085164504762147065561492527820381795485483690669724423676680978453673939673297698071745378567241812919744203771468401995725708675511639250180899941516205707226042526158778717970331953882895765554403957093194525671140323878209689541351233014568643489546098490841273104706807501738225036326224817834854944394658035327393624291637427776948735926685962695227301334348601953739815182978791159504466934847794133752723734277163594043664180041419501654116340687922566727292778739312626104538821521271116858932062522556416939659492105476951215663797402166331578746843823304240959383178094927782347924205729700050097196189035549863320352796484092001575159112358620821405246463696046798496818853929761828739790416298845356127076412368311435520959755702490176101069094969775714685458040210364783864306989430071899078700332674338946743920898274326829913265299943327046491526289578878269384252035494167987705006559561751375618356677803138033385958741437811608357199447462993229810009893935385014247646701638517182238746542466951998803059213270782184672654515773941774548671273733964278528360083633034086237931870369569876486626446929538159792943487649899549706319050707906838282713445457480304802427763760242700371984383136241486016501616778495410811885987203727690628000855259722218032821691346460836236090027668441083568708955701028550826496700691562548070850394707474081725353486453662976871874450493794822172940725353466473352566328739972154436782395089126032582639388892066614405552768482104411200507511665998469929029970439145579068459401889523768291754329616575784491108772633520993939487964950143105732188634231302161832189167394113852677745585282177790511706260062074891479977847076129732509267062419029735114019883434779039218192441730321790025187338906794455324088436149051565056523863292027854551776052744727474441336561271282450715783770433611357412526271981445033100190610524724466554008776987490122856330510323314869192163846035798956006449732367358865477335893436221401957388543301093818320787387091790188407282961820037836348482744460870036828432750528543237527981061353190149627028597786761192348657556378034151870757334404342137923802290849750821548562239283578329463641137218491804648324478270574942232714503694452714431565778246153402433641375806653388370329421025642210088618495616046261463134125238513032427850375603581009013621799691307803896880247741296222696440457041179986208357692537927106549050635977381532283356967433320384527519573728178244630954752813602934395188304073939452980623325050229064497026702867842686424168946450619698383184646091082216298010844818383890909104792286248585657048665450854015980017811394391631080333169915834964381199107331381025539129697552636573013528966292211607812981114522851311190624366624856966591980175167136083526773967777929218340842586924932649773365297407415657282286479528234078480635133750925396270875017172529648081954284592299136013380129857250988916203600332756912194369611108083905227532482412898299474983902167125395531404955859946784914141981593624513873944107632900934717238965484021224146967281081345269494345620563799228618085650118416651667800206074893181638132407560329164292690751943395814807631115592164015999391644152125841261398597669578134241042527928779320539751065680339207795117575686320077050113070537930638580619535055483848611654257429586221114334180962963201482097393164096619435562988091193106467046098952411239895458756398311132783638082353253169588058662238388485048370067939631620583833210417715604620200634575136195599848073563563747771019183327738460027177735507700748680036530047827251586440729979874298598017535789972522995963601808508733737067726328414037497251165563031699404574246862025320227309724702163988768803019105064582311098311699974981309266980316959403362372131064250238751220021370145880206622614560447803155457644618560426505299531109084861833350139099827269963120492315280127938395779983544058910792904007121994660316317883170713301879574623679207489543563366618235387774069447058317034341928494239612376131124344682621221474579080070750541752530841421100674168595494031833282490975974351706086633291959613221371907223431788408243984305521621776163733192663501336101968525532546087844663714953424814084440498457797866041971662042303071915974066050852676277881637447279356076017407901207860386073820676165750858449732989758799634570226295008445087031111007175174710029219128704383675943234677149282096852887850429489347625193444960331160640384721384119997059980882612592168334443400616664576061815543276784351563286041677382833112993577908848515242647933058657790294290104395600193585389090534729900403792050543484960331442970760748899157126323416853293952927259287759216202748068758373940833442436587326844159958518204177229231845618067305479322697514368419165557168252420329819648292550239168152256580527259918160667011746945099329054028169352785494352096078581475699124197041415610638285779913806745708344006366246926493193988755228829756202037076631026909712939667053926096703057924376203779978499776638430933225131956378442103597572744650761605717733302871829346417527274980541952996041903061764440797290380389794932280831904675284569259253209146668975471284666989432814690223124942371189889056780038513340230421055115051857596591602995616958795111709525234561899713921855152082519432649746455977045838464103012366164596183148928967558503413350088214907723006268549372527471776779533402789304704654558254369765147264647700652884899947219100475717268017908738024914175607694859734773009091147308029737731291700446785963701234785570762996540722578192334736545168528601520544060529614254619998827029506954140073555203082071074863667977240942187412813364775670652219833067058396479039226700974637962433304081650637664999980991790862489538379580390852420871797904346334747678043252670980655210789985451904917242993822148172231554988343573140560022298216164865752588357188738874130776753475027872386577829553750389659899323348492325072798015376173981798019105485961820638934779799189414833702801036047822881513641655611763916565526384077457763250717321926262648563670286387043949907854619635943300883667354644071817641598168977663640642518610702391690001162107728246632788998858950201273918889127625117684135774645689471099944602504157449670298395013232693534346955731202535388205627586361211265507619053499241843745593649142255083927984987302045437387346576955733107803054813245270094448304140758996767129759779479091474951152918582356711552986555381376086040163028339278581686461429164452641499239080017102831072926105039489276060217395276346198533097615964517973267739198313964572706701975136627346287988393939008193610653841352130211594588172642118081247781812126059944938436452650599799741901452949402977040803017326289002905231308899832894531537077496359809908286744784599915986925078867478040554244689610128940393456813640148096660243332911880870714943408991418197934218777565250049363727072760683801466602223372186520892524275378574161171002288342846852877555587714186851164838280109871656790737671459763829529902758820783009353151457166402675752408832996291910035956777622570391492187330660670116993618577636602152855499372858088085937248017533646532513812659167906496581029217620132265662179159974412508777448962684044194829731455076045934230806330837354909244102580970230419601125771903588751659831127369020555029301338149737276028903069963950522778473658115253261010744248183150185911239346682208182222041484630382675412911550473406549778105727319751962845181621031193692112828424356162528294097793515262697236364084270457689947464726679121990748029874747072774154514814638567901247196979198831142019214029497544911953275777217304790673102097943873157279550147434703616465816767210559920857506052396161853901205792509918350168185487645505869853926234640388156366011796054178685154822615662843058274130969362317834842996826907220605999792019135313051779830903397801595533264042428624745661645461488935146456981809540321343850240361911643076213115374140382000413337359892347226269757724558838228571712703037680663478405718788412596380914245086885302107223529034772811740645996139572768427469147039918106719723590636760734809130193558835148953429703695378870664656731938823500742316257172267762870303120961986889412704484372329287210233693505837941165641370057705698341376080037886678174294252757787242795809693790707885156169541090503069683422657939709261290318956728784081234658419225311794991619605289914752687536678976299362769153583081742741899333081166017819251750004344289871234035745938369430057292681874186179899546847641993927501892405013949662028590211028639161737922467509826617631432173385853797483131994306669696867443166015455423175363416391828324426323282237928063889821893549511801664390000364527692731934840502835890957039820798673193114408071436962073728942850340021223748429625066163219814985051181519784698273405277685849182145536056358046103397373311803131481531841742754475811191844915765408646687798505378488444043771939548987711304639090334708352077707699972586348272506241987212833413620022975707591401879347941266618278972016855814225876814761982742836715362688697107307483554203330180574746069255428075114900410187671727138564772498105521797506327404810665630574261094719298823299125030522746618957340723470670235017566335065627498649528216794245222590018266411762411437212434977092970398498691065266273811722500934210385172953580152216456589948053682384977102030647784940707568196800039225868431176502547640290588740541883697390552821300661159232446865683165465419922084447846475228314388432534323228236647275875495196222560309482736846110513153830269188089185224137520386553109686387346585996323214997313696405148745079997167324852058735997492528263494514672055489490690796564783949497116777191255827008316069108726172789164629614314737148388573464096440950798565084946236801785835494346556043376633111313540192098671533228563976219042837874472349095453419550314907955254423399656097391681926059395033068482506319855190493465647829925000994397673094245707599180464023782958420596139677533919408504337329156171652864045081923832403517841874624289831042865813443079765140767217589256400425632235610997947472619137456241496933702921021713589643454102923052598784078177318086762909355152717466949262625897211670247828901553318185208875684980582786734933358314279867905563272935081812707332807736215863221094647943029945934939528409066300415464320159279769892270789068348174962734341402972179198662499287342309238225861556870344553826326799454557272790169776958891222775290027575297494588610333602566404724921077219123740295129203277031555970600708670605805685020538306576757562545887608588229400702872241186420305724274757189331509223659282431022000907494520853415338737065159447867526463929481048871522739827202027249439528707792644902435898393559529705543208206570543105068563718080598801056041725374327682173399530687380415663791480747269814180606368083802310006740134038687824877876334301231533316390104666851096643678533574316007792055785385237803689284990291955934501114749995996637913513354221501177446261048232954843353928006089999397395649029760344419758382362975168181181566624190248239817578828722897574751598035550361637375623860632412175758030355436585999265336351194883870252530990951042440171347140328575881509674918554238072971858844419220599722310427594786227171205350091837984415613411498604437255192385378471641570616904723072587595029231625400527565476555815135089626000710879009742168769700619728388946837432748958050413833286986743971591160529340672806898215632575988880443066282058082776520631668332402828953664161756128123338118557814626327367298878659917206205839851182542773972406925148357571371084543508556991190140092745709566450649805775075633210696197454344671768874417128518444098402075627546751293331249511824953187934691922465013283173909143271870840010945397833902263544760080963201456198626706320285284194847607616198371732431481820035796448601827755769416336852923983673427464299944634096083890373846868667836957584717891523812469297257924935831591250888060168724666915568224783858255637241335440516304746010325865194106811468907716565592844490884043247538701577845216209117987717569306703114143068414737980319801585539441768005734605088814291622542123223165821379565437795583644893862817649031209963045823177688658436702065036560987370244666400791675150676075566068580507114443376686182135633254099526064468697165729519325805188674262764010136682448110257076301829937964343558644489040237660920563078901414692862305355534324981574918704218896439175402441987502444475551754031184473219731195414545183866771799093365651054881992386348214878525174647246704225441299922505869233850132757189456075500622540850279838714772623829434556604035920327480363319368658611982027624364088380522728319847275462452646873578037888659948217397954770716943840015959211697326939111756776057554298682161881239575951001952419198093862394389383741863802441164557342228722864048409045254426248379131440867654859792206992275516881914876057913020346018668587141484661785075474624778186329434223034167141472121039473049415903076528748807117445035127595948700214655507279457990388138244221427560965466570504265097785677666813036326124594259249640291925004178668005148652105769104005610480132600504219958662297481760983723189233639823563022664332655087899942271524942419698204930196922877074641081054951921476132061451257426614042536037651722576147614234693464701431657274252665083038303613596126493581308635549876749562111696998118325458766040913389263763170564504501730704597629647691373986436316597946618946897056615782552593861425772330434363856513060730612488820380041714909995478602889795173559237016062330288305911940088729952469692868799831283311488907163991837641602011152001867381150365975351939471440157651778596567183303023577029413589166786722060337919503997160767706564378928450303504075865990511448625545753340048225018747780883733873811112776526550846622463745043716083359048525355512584840791650745192747906235134668090476373476264192391192702004348430600110642545061355140834485199616405569270444137397788012050777280387160191824478836110596664505293881363692322744806540794563794614204470535680794671496446849607391291667208906285828652544155466315952020966749271189240021903054328715296814941110140298825838671803428058328315682319805749753960246680287826862657301659138355614422978859727931596306880774818737398413109728105802235501998785583714704327707260638601952488521660314924736510414698625647149872129084924562691869499241147006485884856258825562583685474439606029291199113513639985477232053591765402256049552737966689774058358037309628855081352877020927629077446781747387308751661172087366488867427302217862059806407994108178188138202427034096727517533710112376264267700190034373886331478423091155549502626788152818532940888153211627662211309642142434311836148409535643368082341759676735684082460392938276024165656025319803738054898180010683841889756577470969370803255576712477307189575851519974455670209228504586272703966532669482351446661975530185092590155038483669560666867328115882390091554249817068736768521475743904009589938518943179283991771183125530822325790477966965245250045337539570648676484335646905257674872781539060457287246568972534144055441259124301912857349893101233159485971502936122601689835434788675576857155338453607491575399253973614805292054056447574038438847384229478054574159265576637082267030759069090087116804709841165913701632539171078715297276852663863842193643498442272461652679984107535123008327008494200826697508209153380131354389407999366687228420591390618663799273298207431773564885932658068696745158254265769082278708178261837100286213445208300108632271355451919608856237572639118591607613553489980280216943118589580694128473600950542447415818637336867788666109749909009348977065397517924011877668926481769117565134588484743593061961221564736924340434737597609288371660896297215208996774742588264366647703373719855146913920357650366273116914983335374851680032279205362010653751850836659965762779720762252628287585369964880817283910982927974592893465258996635458615301265632182352180095549906880082562148088311528281236771529922747215522821518624724369487503870417789243807705201236269788465029550103901731685739120161042883265589617666038927237040991472092830138968719967299331925298457854686381332657930051270483469900177486480387778415886426997629312638389433273705686651572359280880069505595150088797360564102059367949831405568362232413034565845758811073598294101971615227763405892417799486096051149069533874016052397326596527955307797832985509047820727780615381039750721696334002444371528838222855840137959942910917864318382050709150167543366910154690622571381657382693654113278348204800769110991563128930535834174393925195354916742861849426287725970975153586397637357665256699297787121243533126981475862579716817174057902832640450180309024635157760421945263090631093129039573329096750420866603939741941304098926488242483194920769354309225193271905770797099803745351885194783735300429272112758652557016633222080745480750206329720828743683653149656009953100294812272906902973903465805631783523894723883404619928804526961306909595267110816664274666011497740770233548844281798072104877641946837110873381089375667565259911698307094302796573025051365209270301503988571408377654780057455067694888618517662848094356615939147396380691109193043297118536071415372605784414153303732546582742173308964217925452297459823977396972151024903793767055491581961488980818129549358122213472829808393838586876314090162958466704777634661551683520813211794346613743609985788721575610124049039844098579982644158821202062378930072585072415683844216106472863391933107063634901505881114288022734323964955674311456225727077871359876805255624415836622547900935676281925664520782375462306266083384809397479412606102345526586134293809917056712150001047187626825300589963512133973274591926832908873166549887176033738168587259529418638585869655201907527581719159473320332257218221442531033790657038571993245356516333762095671595708763893617614558300934391063713560373865035279706770306369080731720226159614818691005134067218204873077423546464029639414172489089920050015991081742389779318390643716853446063129075708346747359870494235651330821655523813573921330987008916532854904179993710368261670145777935895119502267176507929273834366484605212265258111935319215358656024701709002282415775196748258691628725704117555448590711278142124312085620408559211219831429200698711811946720796341442787654090680920202965110078740968287822098617871763128053743483009161792951851784014055404889387160041482041450392429740292884498116964230685311830901457251958300507005225343895960766586042507027007564756568931908350916420335812954927846870517130441132095172221375633214214496374956404988680278099235477396419062023856443430173466624612285926852267669309082825153670327604988797061543444623932842242862391071321269360312538849395166312243480331163221404607233959525707178978539607401289632441502446548718189784731212407163259581820068795734390723925828109088948195291690477717108937402569566816215173290745036547983796807383399606311203939948149231233164000549306244540770901012277191083988993903748535690524832239143763992066646711672259670375262861877442004770898592309679360561645589583966771003981072727408401441322596291002057294238937352375951016524705627305227493104025312829677219856917814416206189943615362169178995284157432797860972414313709918792563213465970400881459556728644224141650077790920739053951271325989458117554629021267040596672363015978151693598253153251283920931189717318105314202580349969217089106798939048544666808007250258674441990094367660354964555020651278931047193806506298752186618282463117604207916715840270313986983850076164527790057626438142942938857308581690016256062617630941693976427453723024035331065513464840390087137850721264468035284071828942232237224319157934834608519543404936972134070235805022364837123881084035858538940761480468280156252178253361435935787410276344879187314320972503016477649200650403553401407655880827161593507765504830506102776462321364806576484260596539119222179694379188946375784727469780550944437691349035219627276311496222027319955408427084108906616695870741546593687860786784000657598167757328492914015189869005824856794082906482028742885112960349386235189839893632703479103966858238492886601472149559904234794203916743673605290956536728025443227409551822980068589641647478978816611572900193611477351572965550915575855300430812375323647514405897934090705807281191538973230547075219127461187782172287003412655386673357914671217829499647666246748965860008603170792320861257507896031403526681707982068983720085244767450828764602308799698487767946349943827247677679382248146009912265350915379070651653672806356430901690923542081198865694031964042336613779324947083104196356285955303317503756739017270510213527672060898247953333381486882319326526993423793463956142042281738768647430521143315850798575539971048854786289615890798828172608658522425235612812730454745000215087349915950107404261654974822954173371958725325067514625367435646004522737540303142481585789233328081918769317439086453394246441682228057477381373075994456832804240169626775021984330408440291797963981738426243788653095702917256855162242382472841814652702263433916431425695432757838840623234579044935525282310402801532719182382671604566713551902493917703415040070231177534636896906518687867180144001001087357412243766526844519857988695890895274358412117836804693907983846534359017066086862583897363722694200348686902909879358544403849715993494374680494722839692858312723515320157917837125616306088678443480204871667056769155001481660093394259197184593338328406577564651663740001670966125168440379974729233795694256232992264711774302298637961216347682745325824707432836800663995422876837719186814661423894538945696571285621193831493727560819704120470621998777534391077314187752716432702679943957968085346657729317200287518267033320305976388643241838614214986949244845062386532040191986715498960860672874590914652842654341975650434039352049074472347977377993457107254579318156825673767563375076094239880679836568863877294780244091917243310377262550824736584626921605951794263817763952299191879983252667045105818133935640870680384804369414273383966081673725926945890855343955792092636993880072346472672783512447768738811534993054884959604065283370914452269005463917578750494298200048982986412267922702953360942593987645313907041995573791232529499300874916992534517361279254628417418491213115944008110190076541708434245664777924828912881725233302274057263202360082852831209559852201311964191981418551562951686872762946684792933415886208817889529630587665679465104080360605057451936420171260893621828070931620342666147633293912698347861542846236523148299585166529181950210974718369241315329440016716859448357671138496771732689155081110608561844293373172793248856528353830758660195156348299541816704081636974782496434178167301732776106413724656328076022096849858752442318473769621640900611632302183145940869564751127503017356156675070311509576389213146524262283271893899778228025374310164642804522394047605273842986654900591074476570160796319923189711884967338267018293537382227816555620113768007787064942938065137512401305918366433962156631220456628814107539918522450139758603217323650752166792664080457327396872391895522847529404152233267940768137236402479711656392495478599944610297771367460472369959447552966594205305556764042193282332187585945820028002096403016693761718407151984452793125032990481714241237291765979756617027689315606230583064490509962674121004398888121585825214040225082429753458609914374457403794957197456385829519422102133182495105380622185118136869110087465921673410643663270775818556584150759765837128175354123110430194380194562789910232712052967657832086461436229660827746331392501806206178502676222947570674729400919858181349872151713799249977231357672505745040994774987757128804228881477616293179299953011966144345101924957653703215222060384479310489241074722610517709142554573927300816362472418928237138561763075251967973808610351643891031059524584044809227060339822000377451862461799623131951073656417641570795949985401028975706546983902262297374175276696837352250219527307617977077504819746324164692302867755399133001899388475092247917503036882007896944979461507140026698276968872170989084402359002188898148842603777333145098529879898857468484774444601677112972806797728408528069676406341341621724124966488054556106986973953473994173329065176973690480290397819087078605612630411839814777606868480922821148362672299346451952819766433347561882141991780005444664216609910793173728837754986072648260043585773379383250142142784567653276855039815275295459383178457579179775073847427798406775866764449828895307756069896298777815116886475053999723294099041365084469984927034656156151972152253877941368874041638702250743845947073106969449006086742664572942155139833103221433309728035097775539493078995003548405322858690446391019783805386991938153516883969561547143356082398213396965229063632428724227444510563177470402522671509237557230511783950107613427792224046836698965251580980602920525404992560629613600253967445067776086248028484270471343370758656314546016395542640786267087718468346049305187207839512188736102764064635550730385762833570855586335678574370103832490984092187579806077204020180032568549330493757526654638616647426328667540558499271433992458538090739131856846123939892754997198143262628957278767492126028543870272864655228527220298298740264083741190777543827491304987992455616170032928072022522426717014310946705530859975415106898478418666605300004459356472052223230431377304731658514273414428399854015219744595640000714137339643825373466943902168365601752250456313718234907136279204916056680706141305435009823769384979116795395737147562354209699942061167009745889059840422420121761295152372891836666144630296729325383429589525783621939484002025048652821485038124752266038217925793263832655589724424874195535607124018017589326723533641952227442750414521829328417803008475093055253652108884772932253307689393042645587284531176311667867070805196116103316510851128758224163331945496910564636201129444941790100362283350838626534705734077719344887158334794341260059445691335639976680213372544980241765857722330831848837159309974375941248020156643961384571171554885596042930014035434534296834893113855258895052218230571629011677309697678534758830250710291143658408383818431492898706611189258328847405840806249779509260552737567972371872378449317745334817575131262964373430058418967455241682200265733346278603767294761143181655122320979101011386224855267533598318197140095807958067379106016689638755910396127391872461646627623075937120985268060505604066842948502254600841035796074945412867897215515194720932303238439307346455363183635025880461191945823871484469566773606344610779536562094145275355574803806196292089565891389619264201605174317201980939452513157687070833504135357803195570712670236890296339628429375478747442735544124088800753257937003396143331644596164768476333331342807764130242963236875678927588316037016760775380066889851385798834939767811794385972433105581343551882770773303283300962996878388883438038183156194818092258198190912215415841702558309285421597880150853895852344376176461548664814455648150313464348129520395390846577855072965006573669896681356207459982178450118851075430880396219548811192304643593145504541024048583114526053156148202433911843561441300950013085713169724190559840873903381725022917459815420247387719218474876029573536805635283854031034214679696830237407084390612518194974475817613876854933810168826819889912749939153601097109272576905564023453052962629223499044498868660073151951880287774957085009775318967119928231479051102968950085380308943308764449227485491136760475068611734557749897154893564281268511456833352592630576591402965674363521421864112124734605597863431602721802998461496969593800475972780363759197090976709594255798951788977394316676332016016700004596677060254294007323574867674140318851786066568307219596933904593728231732723669489862143057558522028622680423348917645949171073405549732286321523388809130990750989399401233892594048468682119315441198989793362802397000161183476351664798052727392343375839163450131862194574117264246338748507428651259635359553255082245314466090760057240450969224794660740229152723591216641571662586106640446474456413830683053077684911696940821448368976508583811555110486389509108134294860015639731087924448518046166494378841991985744847857094574240648570697454519923412768830252444887449825446090076587183108672340086527214567957245402087779929948858850981698763385295758027988044074540437651930297884832853044246690216984701828823752323248921573566411059066675563413002654599727041677737721510649484920057455885796465144845252765036537840481401576715039933067289044938233905610252417952987443141774126663192735807414253388575929004277915279668154539454410406611013913128137918176722800802847089467486159705083463964678057235570768995755444721464669954797629723993931725682620141343216833551112634353303502229711953122127404259007116849757368292219307021719067156684900500632764800317503622225585394422966677471033502812718086746009752820108846529366252963110505391442059348551574127115479060430283002408186054778591602023062210582991979896270906932561161097264614637014718456510825305811863379401778923476716620656659658246044265019134540292134263983799334529858137009466044943615243154962800185617567409813741776063837680718953820659527131449399031802762099287456863157474848021604372757775149474966655379595510130434210820709990024875624036070644742688321273244268929493822468809019239066613023658163590144680767549780392385763059555564702226997766201762850556109687069792224119698094148829962936196983131353232964599138039436772986496620661040885782931447301664940000047524526091353825658908481869918600292401186626538046814596040905882676255497096943642294746121865302468915255001676091163318552146039672765393962522118593063305319198330374607766070870352386330477171646217659460133009989467312413069816356104345307469340546055906540812260980758041046162029818519981267112880392738659882060249833345774556104603200517304506340028800163351160296491405415433551987970329635794499770044503232473376384709398197788139613197652240090975525330839808834701496910048480291415246663731137298822554166397327120488487014029512742366803860262825568655096038601836812361127852692988977274641196536858133222536832289847643477563679683144867276556138424358242509349789814642182086850742422742474294969031814730921729062894186439059907867499397622281854150220622531463825596702280073388393034897833365514670999609244469805728695448495289367521745766592236437433072585504010205132543554991813608771612256878809573071348646031467725699056671597549930007065612278235633109769679640038196472184322018870072846891467844619885155913735828917831904662919625496061414969074982324018291645519985959519990438549376475170355191746839177777542347818273400360876114096921605069361294759908744193992561292563448562855148772469394445847164717333869543499946405311986050397255253692980699983528096353701531949308528617449923335698876749146127799026696117839657074029429687372999688547939679813763480466514403596269334883328323904074824720441122655204682042548377806058988745927746296872918543724777125671883256627299964552644555329115462071303921206983815926668715790614500258726111429248024749873473392225887753837948733971985342436805182048885184611653370554459665758279367180790334000017282784669400782752144015954459446070430339796984482004506716331841280553198448173142681447881868524986503542611535241129515427618414734647192641453587238980329229273036306655052619477416594098949614666404827284637208718848436503302977940357227304884414284445994833793289854773289454300942339508829262213743365226289695144329043264969239346834967896554492751056205650378318025899040834949614268023397142365909843020314555870819122245065908944077379655609131381400277384409730839212043886975498485012135176782611504378057585718197517371732777521962252601926246406316785602266170977343489856516651512706868469231070514850351614726447309772422186537911209836167160490912410242520479951560860685640492847564661040234512191915255671559838399810507670625558983993454020181535918883933075364708817416964629204757180130165413404710651232330855729651726989576688400069109160942720186261868069274164244946829306076882260948406188550080241931307137600710162041930830321938867385322051814002096750415089471660217654053637263845974734702903501102214037618865509624121059919135040627068148678080865932631453717663194244104624592874712648365836804123285735520399704271055228911899597750690994801500753610776326125843324071108395989261973426304115098786893777982155981843273978309036885474114213785334705357677347670539315184507197933105150656717256314241451449420928220073852873130991931155185424464739358417489727939804982551205635487181437812270685552511999354289958120292563126309088278001614047763731557461754283453042513467266381543425239314520487039202688824301113079752393090406986204317253814864856638308512927703735880403724409427072682720082467717687448450203034177832998149839138296301756962475538140306226091093858224285029740183728925413647135661835589636131437644019122593669471389682341929917637118358211303707727506298440250051146167029041932082344051604096678980499048524047880334124821235438250774623878720144274797237139716507804542978009316390710229316663817155986963865121561367379559022249346115308995166379928816913123561668286394508094782329191617095647083268207970304059377180872826077872257035636924130266268836185956683084835887397739979131581615469489726955628645808906883215486517746093840173721513941149608832385924242684447110733080208496948516025233413477149905452345749261150412916651120706619977758379545956958821522802719238036373179933884201950939796249260193670132549650358697275460987705671993107487412610388106947172375028579466476714721077166430094736403094313769907556761512167817432109149722067100666592609492259960759344984871355645993062401928590747315907918013829415012329337363053701394124984194695120377935328707802292030534027716276994401884514153606528755141430398182102229712129869847459761951696133056157074634111015163743686279512960687705434725296978898333773869721868915061538065210154710460447214750758915718307076196740286394400004957193343126390726593803231866124927116782217896813836930867058094402924298224734442168463306217013312867421455090849237407930048545301467659600124112612092867976789665910998077487060770274640357655965592056759792055140930650270245575943666086688175457936579443515138319821666906751799746175495193979544569479087083741210294684869087837052425545603560190366778525988053887716278062691012796756421852459898342707352817781345506206453818146055548061392332370601492892420824791356861972531463575506019592657629579876117147857852292229311592403668532208352721208727747639888816640480575053587185971016676883762660672175304214421895119149905993716986565917948815560573102277395434359619259677542803708847071221149545487493247363497007052661602253002664537870861716966151021286303849228309265086087425175227658832578635707837287754996289324739829052620655297716784032926625860472318175561847331846072036496225015640190508201074350794138050652687706818286575217183179345525430550182243707087633705174620203730373640980568738261563019187589658841233629487906646027629391323357730424502728260831970506958687889043350404280445166399040538290603160865510000048827558119516614323213236164633044845738184989736908722952788890831850872963854921123444786788852797476920575248428331903047444660196504323639959031480996071543019357860209385158564605241918637694424093916951963401093471466737355843223672252893158378973629198086755171594608848397581621028662815283486034063158621518913202636441870485966938372649386054453159158859512171351109588036645180237092522582421207698262416165818538525658590703175644669444546999792346362100926280831249776538480187998467822083530759348985145511036371446828330627770629874220535537792883392381220783323960063848394505526757444425940660107396635842974156624247050093118248905381231403406174431473545584649621455508210713710893765266067619633056027424271803157450770744024012108982584500867269087169055679074167600411060760970111796886081910156895657928289438275607503974932117447374574766413813607510040230001290749439641547321404556786591668789637031377762097015375814312077414911477510672259697504299002938157472148798911155688938931841763393766942369005310730016694649635135856526575307233504347125931061358960413350315625404991687164612560964439104814846053041548106196178318708264783638482471003827305716470266223452872459537660572073746659811496283892919462324311472286093052653097278285161992905658553081966809066897308550161876660323945091997902973573722185740921006849537813311063294829476904871857800411120767184847640856210312530250311456202112601970172765346922628750890119617673603995085535384650614119741073934519231476437284895717561773182892842586527472246241926936965099400733383183313694648536704021852300458475046871097971065015415711121116305092924821636172129479112159870495171559941211485581928476632633690678116114647516853530076765688125668280658479352922717045975454565792631049452049486902984244304623940712228807359919784769119695583528633844445438668459608540182323358372021881726373558160454630766497175464999743342874594668496807333186020766040230355775899120640508946132744520588023119658219489605133519158432654958461469369648917756537198222333681761101354821023325595676749334755493109839677109706330691895689031976939277266012625798015048184211239600122529478255707279804983745824606447984769418270158104606511414478387118751598117276456562417309184714308866466718384611433613292137808370690409757493700398199484643398063570084457554501018388019239745580008484619662455158499669283364014237687213127946810293293441027610627693893682335299806804190885445373157151414507575563264194565348491192102316406374802171340637142160765380213162796719553029460539599016216787127081091299762917638085254841291593244464782690365684223870516393915319343539431950235056089429435929115013107590622177901919022848738084941919079260708733283031112382149104257341024620402350114064613416846950804090475023165169854206741045535622126418575335192486352723835669545697327266147606447748900729719666825599035929277482858601585957515667036567974167495853256940673756569407659209933729444817084614697468186012264103257848325179953436356184128610744857933515353076483194047467337848168958926047006531615374360618277627269883209824038219875654533866824207263540100354648627539304491033464521149386346830776110754504839469076318607288241860669685091107875940172694617881792880706709785015526796466397208045742675292972378525175662251806999948757451632074252464554911510295071492115507580007652849347294215689764556061014926081425567319301634735148184087623884861329191304846293015927888099290820672109834977102262404725368118560316783471901953202372636927535718850906293089465888353037973700892785422016129558527094425811117152788929415840157060410513982881438754983463045438922257870014501979413675582957944823353183691237858086641834398129309859010915746647489212139425928099801052122028717364127395819723341047746193169113026694648013187088054233915898553296222677068700190462760859579312069434118571777415001357655432717745289056438018120772101259491590570169782199695318510679076203177616287277305150490086670999495874456880863249307152808064200349353051092607123221089412676481469459856027938634537244908270658158833062713373927216397790567510055196407670355372218803030704313738688698717215496270595508273686951881732050645464281603353821741149315178637227082890217564307837531094866433765246367742998989847669740249129401782850921970085801265064984546384591753213286739272746240922510021290504945358664174610181840653932143784047434864061978082916211806999183091635041349443278441399528935599802841520098437949573005725500707465143223104852032854089063699570381258550943700909151557243761791630109800505943585574123223214523250136018382310377182940562872246375432130710211425575945836039230313342590285971957642205667285431847421491598491306976859484308675195098466810987562877663884645029791661054307735529285421984969631559685245567523114546404394616821998187437029200478504322471936226364771384425021399668761885764675694326723030550561266309562417867617672897887671030349241910188925195330161051006079218828929585595540157672221494694629836486485394373774596918187525891445258020411171388600589152170207833620221917730729884270277724926352620231764822001936646079035318122328984635533441441392412145439238512954556809025175836815353608655097175958595108594742681648000051686358936398368605958377939508069354910415969762575115286433923550353247063975242596792940458412360883793591372319506193331329120047063695790577703501443064329726583685383221079386863728472448964483706303852465184185387256376853815415384206766957176947066356306320277191475311671591898264913348956651078322537161430986519525950684514351005595202226059865166680175604436669315245500513320996229300168011549215600197180673461000796985619531547314426068249740083587356358675213127437015747783106460025231165729213508481592573397772667168979912387783943623651412139092955094165338395169915363599252948527674645337861627814093025045220746312137263110780868423377425501857194168825063363762352484638481292424619386077596465172680589331382272953967524164568452498055857908100980889253912475407368307798749399637583042206978537043441094551160719982853271337183736038718892856138628449053150642221830725335463303768009669928164291646459238230427233309271398624277203263669297375445630252185852703428150794766432658398217903695328757504727286827667483366219244925609401455648292107628742540206193964803969072483026193884219549910523647777765495357206625823801334359382637289748496785273747865012760768306444878327578288059603182581343218667289045079545530156397071697626046853345643102565605782131571991948923072266969590680533689706507631480906296318284793543739279018862976430039874757539690035190474236391894762109505424527823395300100711052337064140370308897210119549901642093221357682397572518037019879490224655444262759767722765014630960872105009472363890117376925453057900940275414577207037246492715093641285778230458890635232295786147934628586167054590550744319695134368387227169463219103049290370443077849667618574495674150916053440456317206897325388678465965734653709011522802515031255864183657215952276389276255228958385130576883511990332132788177910451670025426070159177102822096498965103845142242558187117808368445579246390083382612405898846681800311383433530308347899910315797099847567432855680459475616173375628840346932483555728310245080097020301924935500886392442700538175978967259810610152217440939623806887102569199947142350652621681812481224288853294453661227509829983727015700011845083908259516674580834032207131880186495389397067372492185678858349884602672510060894018575483438147751336482313369907671875169412258529705954499230741626455883199508397610255635211331605542792426468251185082862784011557399106563852398425118972103619020044110110301682811395658715329224412851549157946925120335770517639936695399460532646714217253890439812438270200306933414443591681459398883671837623974681440195275369297089139330342567102295842708211124363889074552311102829270955714926408193931877893841861184235062138715170939186837530016006608353080545962929772170946308513103468467734342429883689526799480210606440157600240399490153056793663300995717555621846674080499396989171260315678758085312567086117447062574882920139603704129915415796964736783607180901433578808128013911083178831533018511132906847990381931051157496435558528689733697180305170358134770612368902898618068067013199975699046262994646455593574799730197766268208135157885216758744699430157329475587056318232752377811330431728828606551490140979837961600708658841971108528278056719940822019214677014882335915481802752808058012546508144881540829294940653877727123444308783338518338427022619373544011907174795978340672728750691529345500126798530580078210890282082303526868301274287779153557021486679544793108091638761093834669885210121467647978902831982918064708555251822014705722748300609846125803075361626491626308987171806430519901203339285846373632458021587927661765135253943861998928453622327690311645559693989292050589225509999574864255102304573922275576745290593072438142470348494353546151434404372748426898258073763832882541891868169507499464038718937713736319553888218799433638525740878758893914675630241617862480378055056958352060306675227550511891729233645807987450710083419614729597074867450443661653068195840227679487300852613762722279999522038062247195898485126642027576473712496593907643851987313977462283261035317790211176224729300302427278913003492384542510579898526984581575730784642383674572017831109727002458331285412867521316009960780264750204760191854876224777924022240805791623816728491595052212103285541261988503112260984299518206468098253652965857459148278406879029269614436923701054357617386063424112216866410750584653367059696249387854470888350864378634414059103329229853797289086385626144708351952120476821131658643498638776265993158367813621709768331569537680393714209995457969964369083747600642241352541053104634509955779932351129995530429053899731964822701262037458890610585508245313458233369295526952780726981481892856604000303260121243797978692904816293698397285126709446505742355371400057321520919784487963050780032610754419667010024402471900249609168397299367754596584094699575325095487916559902269166398613734616919162251484022777803387219332993866107503014248061100233956990317231481233061838089506109075552320634849722394817783310789819986284202884583443146107183469810558312403325643091934518809782153150737920084707294775096464858079160300165318309058450596907038831940593001199934875569172727002154688615424670944529740604724741633523589020139038599667832736907413068964186392866570104659217479030631687968283943943076082639894020567388723414554514823725800777792823254255307883330112719489758378250085356679934187989530044612301580774596762680501437190059852376158150381661329408474449867011847303961718732134407920002135622467998401736810705406796319747382043019165483767918550795361287026737778232069732207970925524335756738021470616113094531165191914498685593736508641019053791817369436464144341906160746665536888706684971940297993842198803163957176845860177105448324503853282421549379102122339010730474302191035237880634050120205089898828909233777465009269198788933168069848135583457056199979573707180767003954682517608211133272801108343145918584296306018760416517801235935486436056168734910759236309238897985165484507823518042360715378237002245898985887338982198862833833168688459565096281054289677002749500200895103029981252517657259427227045132601663748476220652566857417551943823453925567005126149154183447542249636490944906481788931049170608666796538703274579978719664756161762829835713044882298069429351941923038413132794083158231200530022453759062570770398607499806857765761206215720570913698679515712142492130901833267218335363003637520780159904192024886356965799505915453183078621135970065179655058829361719819174066732626217020151640716567089478785566269565683646048913487752890653161352918353778312978604980360214322120258877004070442697570986403692819229314241122462807942814232964069190199525111983048182462040013694326392000980963077381751903456694364769525334315645758127107836491337573614103385695400049249195381010574078363453341901628677282940992093136540477483545572856970018237496882575123833752083479005377544135240477729541069424587621006611496158277757405513784796001727765913700688913545058426548792025851311981778943823518519610473874242904380302828708881327671066133558218464723502191789614381379917640497167557870446645351107375565207906068228908263363110900470907138482862400953164181597657869105635330646444195815362392765187902396063622704361867435668712143962680091366262309968994504972280745375785234218072240397196030987213816464562813706892051153384343632867123637914089321241455610101412967897275368635440446679149554557404066011001996479233181085571397977357478951387555549868112943490294103649908574624055771337324733310995490911601677094764942474661966275211139490778839628719643667126467301049055149278575180131476075343287314922466320515589343870265509754853896866466150645003441299711041369170479052611264579177708127083308933786699708926861750710525793768722033565868898378242526106884372308824064025803143692519556425589665165454765841840138783779529796423202420836099437123257718694478410125353029107609746278053178288138563308180351761571940825197418802309123028640477822668241919082158832673011248831132256065434477379878332314978769637064469046662420379074117004270425548645325658815280416320359348075329523607159528896470891870507017503609011370214881253273472391753415114009776814626915440452299648738143890500991264258246330664026389108287576151304349882107121738334461028418893727287200913154902490261132955950220407289667911590505173586636161059315069856309095889735316925403083591235045332590474825484566037528740506930110291744098790329607426081786288554479693890398553106996840069608061355492207980661887796640930072003898354345425002544260090275126326416550605493809152356627339288091195624858181913850077593656734218774719724815713449214245190740148423026838012567283443710653211985681390936474942128552860727621601126619726597599345577781253724154860343825156365414311960916519600352873528825896359958057953560315797472951650235005401909495467307054537030041502797787561154317890005043233709255582721332977698980388018456963653615295458956251779765314640281986378957566580288274347082792162262438185281288463408211318501212214717027944867049028521030604328923436966953405475406892180177237167850455881059725676789736066947422704185592241845436617476541946569273808860629973335616622008995447357053962241990820138070799101794488780776868646079592210102577383455160801741384416549418904899907882316682378912771660790874761162116202728296336114006368157812120870518711777907601227829196912649404336180825049362922342697944566091779579020305410901903970334884364180550427949906561933871159889430012979781801394449745288274267754584924754484236805476031785975193845612368278483632621370745494099965929697787132633002238593646156273124422681317791367605055391935083636349009517159026406803210157701348508880935790980734557912325978340412735609419609479974236917214038366322921226367034620861447953967815582458709059917731118807990557389888894187727408687937112680195414554775167994447895399337862203217448689164050880847692844990023083534953556089723727440055031207994894065523535607097317229651207084199179967098478095538568571868856552061194770702043821520985994770448601838264355151251861190225006676830058293661171060731818603937027965454335037719927496766135310355696395904874645916090069524563677227683000549148574130746392314389142617695627003700207190175849257490239154868337013493151178281868192356406950643069193211613441319804332961705281474313502394954820254604402590460562211050469040824531891114884029037281614275108427241420420350550368941122476559209330200959325923663816424780571428677466255499610382756074069853591702048902976641233360770393894065162863240026430753451771070571455560551779187013812988601263237589727070370107166484650438590927084377438818942871223635821864741151163002635407213106663049098352265222711265221423121914768596787942304256948989601463952112015374995080068406539784915900839343861485084006340058898367434965780786929976346833276846626091811785373133817460813522340172371745721551681812801893841479203335548977880561857206696190859824840944926118578529078873799342904217225128630592805723559902483462823934024117223537678906437338412756177485253183248735364952982428420552653460526342141950359794244895547595639873661363527627148892753485434289987500934254296356725728635276614273024737037775199187651990205215808815943047880110353511533780438875139375944120521803585296918114452734966258872827642556145862002076484845128555370684837016854387015491192678573530854048780871832791126648163851902097680313101341817598677812680934871234692415875537393538707127870140714060796940880504375014816048066639171367921397050663602829014715156567556222265257148180725524552383665646333922372140314546191654928445555378205691770014354169694719736034284925034536692126670545322912202954687050338769881316112293667035041363138493600918736309557344228605368347394844485730066049713796094550916040917736325092520951253389166599173736069738267473392638688751714781322517372941733785629769833502042051639962795549744416947071354482861307818627074091549688992116683548225543907294244509275074029953363308716073991504715071602511499499194301702370129545711803493147198517768135438452588506778235458115138354950509037079007337454433929229200854324013966937692380700078781526376049471749522067170233046396604961760864393251248733555985423380042562019121902764989417956062849460322471687054917358654906731926174509836194697866097283157804219173988012562984735757507797303803456216043003376672721572184227652638997244055372535966785049433916044543372080605699541128401541790820765373818204248700354239859238097338824236177572688703835412847714883622710199798786930117456490896098488978809104886191425804403156102325604518116717229693340741456082594399523450635669093888933749688690111226518914678764896981802280520197427315697545528379158753274759065718498938880660794772905462646865737803340254395901390001847065881942288808789655950447827014724936881541106425062930182168870882485703788764402896575320345127205106884214349807815591948105232544121245170898047283573159960295141491038416602798944558063638475406635785891816348867790661744286005300430295489765216263803387457765844886378388172678088774873320467243621456885300617464726624300351314139494263946988910230477720709874721228102887554770908600964968681086532540113923207738883939827425511940683477323859033720534761031502491044611249658614442262548961527652464370672784482775995227747570554835183648739969840221735407052585849929826553237244647584143218573955553244205112243877807990721810187295443444382991604029541606504291371892917557624926569974705623349942962168433948444340943826093232832951423463361938931188227096775269401311586822288058010429224032794442384407458961035314292155157453620823890665717557947720078469451212087442781510518757241302093285947918057623031012903669066109257183215704881823662986612533319232543617158204576061952584566482592390398851220798295563052588047017577489617139635966773529813486115403823989130650662405849913394684918502212251768888049459448454796433746647330048169768267451139520048081745861968021409390755575029120339075257760746492780133497096079644436298217827380834494657534434193031063786150947804257014105518226733323846782698933070557723447755170349659788968070798834025585316896863149762130189700996772934552102223412404326875185608756876538540159562603613204315225257086134948612685353268403687190706216195346666284787285642429864038259096025382930674887961506796393607253820067621665247280790519124823681787635097917887189707565114281218485291341279880106866549232263918702538739381024633432603055135159278464329650575306587158951396665889860325770377020699721253441533762041308956133977063270661226310939183282125935077499088355184081863954717609227631094606070997779721268751378748426131238573672048135170043854072166872777235121422525403157824731581735809771092424542103938018686736748311409709248717149768128522764452673900157419407057478653614264242684825587572542926994813532205595499698388245957904745993506456096846849979441042051067762095173937599607203497712326017037430670405005221026393001384896207225241129538322118041535546480598755194402234144088574909800791476575064540606067669254069703343990300951555749415506215544316711900383910052133908438165006961070841518621602551428258695592887803104875072119715157556592720078409591849127888623420111874606824931061219765089366967087446460562152889601882253067350671837578573470840463254384065705869955739782153932174718891075110875883243031086248563608899848990976776887679820051685958016282859865478942970851269998947273565768809138846117268740825899220091800621647587236189305024952634175451317670664889831771937866765534441190031800654006762738153795849963702308174571201243105059255042679054113155426519558960707687163266727789978318173639776359550951147400792355271057228350344948900527148977837432917741362846171562230535079643002483122591990533854301653495614804224194542145336179117766691090603810561450578144163706274192547961783188207645831613712362509138469231537248188247809597988649355747177952540916057412295141018374410970604265542621200066804391116778725298175863277221591426705511167888629877039703861665568772892501850073062728052959855637531775193554330481590934497765042422971329913410618204323900671288393679301626547175817541436762285900430858997398622927537209969740189841370739895911229696144285883437886258102599869053592397090644007299782432307259081094423817310613018107459246750181778790841615482829071953015924281226308420252557539598693780034239824215340362766267610488370935856548656504386777981216574168469379438254301610239209894054483405999824485647954701837577756821527917037023463110543206631815452957305255988172974544010907279549160428985107466190538687221944764593922412357689309591044518783743261857117760993167844155576021330203912302945021524028446428560448253177706698639165140956591524111241414269997033224418840621726535694619447273515931798322010371405607170444567383849972727066716648367030873684664853126406503122467648379799379555847226441551527105245681021639876077601480575764263562765281346833169848972706583074256903759734314446585793375352969489654861043005227131927941978605714593608528471913546878125168101169010660995801918779056128092793755416713766018412024930051451046690006646829028490061382281562096524854730845275689586841375259741003875311238059374006960393822416994885855880607415185827494905519325139639975548848763581116995203380741788625885994559590509767298512095035367000732911018562763469141706828930260441524065685145953079328981755344250625037729321936173434378466106137749408094933510142526728694900683541016386280335411390860021555982024184022308089529094685964834695998298729640613032563260337517777112097627791290969805541613593759319967870533883956846921295310403250239329289427547153761796254000765050470590766195807703265252473652984167387991728343659000732233969295232099904969892367001403490300303525227837156849864128562044700623891711138908627192907587814688864372173003492089020348146982888879791836879386270557050215530492416391009880588137227774008067325475261493977723268832109550116051836589035739841577796015964746965002347482101587494211533532044949233783190068250495371253793571945413556407179710204181130397063834104898022352083936369715244706460585177509185349244033111895289011556316301507802987103661772854657302491822876258351949772542939669264617065262101028991410378190145974010756692832546740759699082602630943760639578293984360744614581415117046477178327380786196764265330822272728150706260730649337444701948243581562573351660749617220541067766571503597440681469457857074217591703298892684163086963099378838579841060269710895219972614159205496640618908305075176973346099630370900932036272497368652458840381085194925104902028012176473399163610100404909837248230579184498666687496171623724388462490868963452469211559906755222594308074636026462759416896231407939592067084866495640206780537571599316808807905819006328900755243334121560445082421395007555181176533304151231476572733308383559505908368830513460579674730174502369106638256739093200018799072226948562305423501957715050165211842040468420197929200732506255603113550094464432920088089997035073104144047279235915030549619669191669237099415543207953333340320661262387470872240048742020069238540792325271824792281103747604345384505794944226346014105934126397717302600342426590905059007249317649599600767741157540036191200118328487136671709626715028126326110834278573521134272894637284474752080437658598387562359073897944735309785796862754691688975966745350233966693725626627851591932246227951167879297434736446230344514865054068210890178344613699713916444250771679228205466121594322310676337162865135190542755720984147158254231165363876535633352258837050658697556852211305448133694058850097013753751716919567801437543306540138584502693480671327285026183383634943720179412053662705951317507300549547184975073493566083610421614802302364793076891083524387437854164691412501330555244569643525352104866356320367392069248807481787122190611644155389661251496356480247240136906511592418449720555200233540643691425241169600224114875536744903849360843012355796865727320078121247090445194228606611034640574571959924246590384316090170550549274672006447469559739752312105615589836438000777355274665549750389590049385501047021042724716359337150571115503959486170989064497455235921134608570194125404738055122637071639320578851279533001511671673911878063122264879302947493381346164968924624099831856260755677855876188397689855058707307994114630907416201480482780830572361464830820500197539805995186555290614156634549365543175151431633439488539448254178834138244001872708661979590840242749849386197048863462964550730580650535104078344127689914945315186079266735665524678048434142325951260423856964078016213618791970016298309676722679277307249412313712927717576696784409283759372902539623972010957359183176438254582195397972962651832418400503521911740629406822719187739400093872263823363376157714526173326502827687500824809388684327334953296447429351820200004211881703004450420767415392613263835785509465091570707414085545443270788647788281186072062044929958033835282008472937929693371079452204606051483444704803126699706178235916782816015436553045359482599609093140444178143466916631976877405909821830522008490215767470139949004493515047791482632536967577639763162768162176165610101361547061755294070703623639760359830709024696942566879677729308234440760896747406746040101955815124670447335752853974987249720341654004639504348093924883461054112214688118781459596937043095217192217136731513532779932482504098921254214661026175151009178455826133751086328724728005294714768620731918036299818315125444891579239816213869874214696760959144065247610305706040471347639212535140144979589764818555133603396734881795367440522065477346099679179313297973397750598357692881717189940644937637433472346987516776104971007757435208972355242720479337042965243945885977207179457631801791402160952989090099640810703597732722405463532325219718369359335092286301976809002041191861432369279474394252252927664178032169640260160737200321328981835829552164705109294772225909905550302081178803066033520338725682904504150761576853221058818143249017924614619110625363983972671786121550692312789786506856628740309020390830799898049006085877223081823471874932759630324920148585379356800241913983262607231310696686311670986638232331159290497867039980763767218355681067809721696910073480050169445427077212416649183682678064122429225050638109353744993674116980525119923194454766669280804157924662328226286911170383509540912880094684641580618528251720089280504193306200319853150088130681110531998509989376138067729404923447111894582709956641014622739713996225522282710136321896307170714494715796541338083150733480955011824886059676227501234505817106945187335559160477952061622713146682221872521190472708629865333245912394198033251891162642102994306440353584109636218698043519846475917043276083179557668092493355980599859720239907918151211715789055128063507209005535982609848729202382230791149824056272770188308281624643854022759401725667427100674784890379229616932342793467416328375598938464617833601482154066479151915906011184118316554245217671549293692629597985372490011823396062184578535739053124375149752100082040271296686146635600557307647430806046776683113021475156170780824616041574969888447442771847687850500587756806174254287309422395184660997014826201780985941553636993560037576623236571815876468085252898347800204126250651628771609215747005959456885311729032170834999245599514268494016768476977633883057448777518755962804153077397780876997586827571814002498189461954549088624542321216532005734116597624013876192188441707545428038824268112335147390703710518400275160742747375151362008014467058969183197463335433438681970078547983252322744165662757038612154673834132344215190834833069952753880584290570876875547339120676930386679687433623207442007925515401062133380069454034076285820998697183574582701877843445952804114217473706352926800116617215117658003017869841526712884262935040248531000628208177511852520517433504723090784630845614943252782413954839539484836584176711939253565177837910939826843653255504843149698390226888016103798882408235276045940889270766852582856086252998353324891514473311030186703374699036957727052268782956188601087609820579115356568643689573126597984606610250324688653731614237897648124514042299478629546726504421222966536347432231137920758781625737639447460898804076750453617572933810507839841885354816062642968464277581786246903838282231411755739771795444793231754436745804525245753487047599829587655869114453332221147694879031631329437821492658990501025743164458036088178977418405544379444699897356924475666660837479229547726524976931710870126401278616424589753634587846513472777244460783817923982165115027286423801487351960701515964344139953550553241599937609214091399497257618042687626337946724994908612365481531971475877273688644251107733055369525042961499802025278756108268309849561130516178943383035371481965199965106251357291953272247652765874500817495521609408720387151009313609062083836637332239358955856526568073877461339241153504231728525023645364939899540948552583271101666063041481921600738096658677846352328410915334995662123726300203734955165932722947373308074395839409530387501120004864461727445401191073444088819255598480853655362459734054253056118949545312423906403503926793687461940346638517121217013984115783172651203518803891481712582090779389029109198943873199470949004744370360305979602613686479430034746955628285138257538458285368896393566127660791065708351181975526449617581320463274835072753073526791832281468018556473222625528670832622032798457270198291773308650043171795135827632690650221461079867139528264417182082351363085447016964567091024536689398673925078060074639120644152314418912986818762517141625790554958542176301859339945213573167855880230480040564485406374167196723662228710566730637608768723826326203668226255973471884961556832464520073616370194779017081644827968723569533815473807291304607633346956048930501536270245400040797911432378291531297217556355248994436950890563928381515252354401394241394159727438683663498557309320878600171497601968852958494120153408604460904250934695730404267862098493841780971211264318066642620354124288260540232327472281770148800742292184233024585438046291826571327628916592159210673083243319245849012654740415170179635637223577352896019834469632224404953479708414518955687625055851805260394947579947556342141238972810710695278701398752435104302673885899592128232788050054670294535784461475137078039588186729489675308841876864743997781044891431109412177329296494724363530933330871876707933770165927467392835414162516915130044109893664322621203194768885208947500792074132119809034867609009427560084943364209805708533705931147170437130044233362848572658326481920113486137656760796226016003035203145177458311690766398417750667106539797399822198239633998342402539698370919981067295505812513264448120018354162479259596467416578646473601250043421201003774456550468213676461906606663703933625662644171144844956964301548151627822578417180689926471244305757168025985989913800888735131625567520342827169001242943116226189303675681040072167944475695271659916611864145262443623166503968565684255242046577986489892228342233148719886537254783786775496766037282593220424412196536661510518465803032175397092864541353227365185595142007631846828945564858042052689544072760298510027547067042915276130754370063133835155811889162091858533970127415959633758093505539748177733449023360754327449375347835809893701793994573437491262279156855378858369764097941482597358640878715771887537840668481045892439921459678762727943272884840087480093648138520344803600777720345167544685145581812697984035903076073822542829506682768924618761894987291532210238712795138248712245712875047935549674118325483138908700586557913961509499490391240776679900314018192084806621314480792526715119726559030392152646309210877256126160579297427607338735561191376879219215075752313608228207595403398809670381874587824885668404365251011514279906054565873755906759790966652679764676372584488537301025613671126191164085284344231449815991689569840571612600650754503102418997007667927329208430623957841220013281139734769690194843088776211440258992794025508633265297131037780425144552692768194460411657693337204684866857380022367957410044134512079785824224252697511480245384656769080405934977020009140221953401910910943615729594397860940068752687418128853320921839295315391397235079569125886264410164336380982075723279991366876463716501709672238366312396231594484617658313075528572162515009455364259781654263194501012730966595216757383952473882611644307290361286926740260746185578891294030336485004983991904986873040030275989062428764569948542620018225521174423489398683109390247408065130605892958273980914745685667437209509546789321503829691283436518469739150438528058312123933185037735682741728112383800598465743496821467100609065555506804961793794462624705619868896810008447850680812180279056426753929125048755110953633811801067618858075807004810376206120351110534347318786758342772141560483593259711656642956437838933154350830198851206751325170668393712987886744826148139261146402936072486216444457277585614173954857365028504827372487792385010361749045624686368310710765965777339963628761021525168495020422784494268350684591041139309325847568061278199016853609929526765707893669959105402179515413184494450389878480854117884082755507780557554020112349490218703784464773315235505979993691463931373630807994332618602574171277100755797969949803376921797492846529116000848511161222220329195712800297357797081165329454483176928971228660030826513733239842837461744985448414951357832015952034024603551667413042237126426942704332353803932966363562123528852452261653722941473027127867198881875719033992449489750879076325233486230569310324407021227022337214147644708804471880604830013252860771621764093654092088076590826212618620881448952294586891759900931583538001982643914645445907227383299557843463756531125008765213703487727153847407951249379491953327541633233997307379462393111309126314538216496387171278633568377954268232636501570568584775272581783112179472933759363300639938041644041592505771100239252289183669172803829542520952576244884520256575003828990496310136976492312659832562660470074094083368470087397221733163908903184161804515227535044426314354441477534598056006487735905666612302609733510317143012221917650662859327758911491976092588247095936850785521034392881346483974924223690670478445788663435576836412303335064947949489775912717636694022450366866191558901365596960160792716376759390584886403020560853892333093824738233932564602143602955305936628342649360556142236296128490273128062331593334672861185288993678207730358737418286966289071416439045248415464111414613690244919069505498512326103732023933923793820318577455169257457832242967689922326144877344664379776231957207908187602862169470484737199688434386281568698234813061845460918077093490706031756984823492043872043954090035888027289233040002452251586599243983042750063803662949519975021951804353604651535619331421566471705155000201627582546581611265048184824528352917604456631243747399713258480572936884861547587295233016623313062137374181818376338519126753795632450669169748741168788319741404396952203672612814934452763011719033401306061723691890249065577506615483012599767369266640687869059296347937005537284926713044412635219783611778969485385159168907034727678392805406378583144012983043234595646752839861642077645901304791581703282938574701942769694885021838548228172446098133987055813945461376808462023775847801928011478277771499479143911754243568919327164914146038648115852777833556261881564338328394256636102963539312243414272442247107890110762520241312336184026082519041036337559749215244529893527746990876131019200484451452350546169266975512434292762654469190266409204721870123505538187615289609985421817577156991231446901072616773884511408434568977170577425756334473538949958093011983002781446033143179136359601157519948223463639659234231123425934849922196037589626389098938473979124640113144111383594853096458851475398697277850648716256264634238569174077844473349787590669270464652683624400036619813634236120988821377970729146086551298694113703611747154024828852902567160539976114514247281047342309498283417333042972159102445612443104055905169266430374323542653080915633630041603053275234896933858149952418203219834601993672842751432051002901867719525418888288619266424938409942204264258219675644880156122988580507498412600213759604023027972373060802351156461475259091328006532634382944679348765924489191323346350755904838281871017183864471393383112679108517744525607973689161092157866801446257922606464820346843449162979732177033949279793470995945440995910612829942964722060461539506677791521556836727092037686762219913289756274066795571468683997086481801369083664471263133114515956423277794652252173395975302743143385379698974592753325467979564280922251386166098340840565651179320677683122749902418026954188371587066098249995860935537726170538137709481650506903628688327603113741883853464578818933452939607597961285970737403715025122030233838881359672691463793321128440406326550704540897410259468401349412622566695257310927542186350864416742619444641212772926975958718510504136803267031595919729241467242529204767236774138832696336339366666996813464875998829800801716048368082382576770804356960564402444422546893901085307371317864796502233871182442049237862731367019934400030719821293503572030827239517644743513299791724514096662848038586913080645144425562388411450937121136849309479224984880893538665631817334783266360577234931601820488461705429367122425902161144312332175917411133970685257537832018738449377442727363685866863425485149598526528366524531618331182950735962645037912822421221817740921133397274531994348765787456077701596591396134294484038269359758726742778065022711887735136692655603635408472330796412163612821872661532324560357769586119432924914601667640054020054830802182336924175780815771203135653599602089670277557686993594353229656631229454985484998641595073113913320762136502618771762576435690135935368556908710816913923817092317854420310448606602420184245289422132690097354472772980400544401372716983673228096287323178953263438783381131946635454554331682530712958695334960199736529668550705351047891538690958993256512998311939860597648059681439808173961925487158168887632115265466553878095615378727727101880775738314964432937533152562396283752396663223275378066986626007359045845743937609049322013077698169334428425250585528301929862378776656209024361901739032065647995439185778525938072138979095454348250578329877869346811012067114421371593889413994719098598678959652977720217598523598416450120664456541462976911234533606490270725650834182076366462121214847689436960638191462879241362847538929978943241770237323978195319259376979352808060095020169953551982771108920594500445613838378978286324112170541255526291534049810233998009538356411699015770526775783086276414562630899234641171446463799768569776425271784010278370691320688849996237595347629917211544629501383393624062047353541266030445705445831767234361378046369712900379930286277965195018566941198893429056114039531148046558556143314253282103869172304770491733699226402296063490233411272502513850838093921646529716424399733831826739775552331467714991683312535824230182167459759527335572833974645843181691425698998528174374949257435533185032520099432677620437112396210730823495680819548127093540187972267410163508542521313012951206312722920177706133194809249872785653931084529943154259089338944555510549345357528979906260471942432975275402303055796622036111611701182688494221032910535973427714797685214098753647120354493216071102019403535963832642610958744838889723374134418269272171172810597887718147683141871241503578733906623601198686766357339417523947794148524320490686878229933321484025072367652419985558303910931048013419953252792090417480541002660562931663798851416116991943712085364261405460069282274060925246605570102869444296570195014394181252233556977730405886272120272866725733540197827094943264802853844751819075693430379909130003975423989925892459429366888620086744163104871746803600894559480286291606714454885201703899474780975075489375306729586948875163622483884328037673208744277018085020478096896612185952457758111413202014986569148944159140311465566241392641579516078887604424467592314381486764203452944302102820298375741126218923176983322420490939718638572662031121306521620679879678677588285487539200975131766690061546928324310156904121801667367952412463483615380718366794016062651551005639376700311020246483514205901434437941427406454471919712236949797256872471379760260061782072307337559859632009569274949939481975713506649260550591212201806848293693771718544764023221455592702158517570854256815619142661714495140488010151280140132122230072626683134146941123426203562591672144351053613367429095485193043721302446971149296912399931386368428888291591934451348725549742058666266521360146546240381312753672782148150234289446589553728043195559149526223937548519233283393671851575344687412859465703636609163229067246287711083148346151475995085779262949290735470103127461389066772490218782463287594161255752487573473295840286356939395951641749739702492646900636605713282551508093743554879201283910972484564179601797741784952482477739415424832076861788482312852981633897756877414029808117824459975699545159120642094865805901049171640320896822375467541502301113322507990457226287675344742415058018719798862492376570863936016475018308682642425505782289518152127148830149082485924067604610835031068448452416192170331546478872766720309065570546882343397708114107146067108512992148904704622266018195981562135920574844983173807871585498593629972870552560092812731263931210030228974792251926264697904619033679512405019258281944648337388749699257011820076178515963757160764544606925118984927072719549358111830355065433479372596225970246834305130670090704476678880315412921454549714071101998920328914307664851389076952262028473579910396877049573382601082834205615574425961352027425962400477391344361047061718943017766682898994760280802137610924009807495866603452696303853662807638029143038081998653301255330572219395124530119454608405883698064108260934597971454470255867576631541636317345620260095963434661005689544373836196135250764154161646828225488749152687740067709148445927293896141102104920996816833884911739018466395249186104501812930530698243026525956584945619924316953076468518930103049774644887958273051119285189848722840355189244807374787963435444239274398735463382257431963978932821410282462246807754212975010385115409876128144695091349738233115461772743226554954301265239182163936816037041722965776180189619298465745509176236904731830725730275306322941922062972430741485529899206504073332884122965531509867530919825182675028555956464911587266385368621118622921308409731910563554035745336052202595858928317096475277641505945183326544030545218260079773926697613588213817079647524979599288627477071229454059071155516116763974731171623207212137044119102968740981127521895808553356497706238425500344604205821415312263232903737952693322438673607818856415974129775322047293029686365104586584666838243333946448892636444769075771795442956573959054567611478002937078981640248690742960708406948257257515281712227203053562264311523543092185101386469607191947739221940144938824843119706890465777057681195754865722406699135942997836869669990573169935515832057616369791953962983304005191370049398986468932169385097821957225372030448820437215486899480395954769494695567368963606584969786361379102817537769677891933562351013743578463462217151579022732772357080941026843505831537588827300632981744028748039006512247341566466626176450369058381263259284717530854985377453256707892732107772451320008840058619517165457831775378939410884023881492829061836276743285465372193880305342571818174772841333125967587807834001925489056202578006404465478193287069625234995454799566030810067953230993297608875824484986172364131470439720191133096331225940949341242481407287411805218612263724490515452297420629171554516243572422030894695735103383705530723961473606088027107637408610951836999317493732457939449174198209979291403064284760264548409052349492599253704406054384016870275108017598244088784369704386941622975075147733112287745154707133901552376999710090549349029810328176432093700248156146766115808949848684347011605972554344861048735241862255360208287947101301701471440642152126991971753021424492509000036720750639421056524618545835812452290983899900125245894981842034642847553632721461355285033189529464869499290733506531486354661688246532091666385423933510231932942560528880484183843691776956904617833829837260114667694167154343575499301608596871781822359210974694762743438041388930897873669632373603622837309114058722295231646642572276028165289549531799159602998022499959026611874690277558028512228168327121031803940524072227830126890624980826160938699886678094300034739430763238267976217721090542727279261079970320409622964541058564217716607055586370875754305162013135505789467268851966304092394801359613882343804508192284291582079881881773409598235712467932370469334893791763450823638852248143147715865884972205881965842807618668422081927015228450692781426773004375991919895506109498501967993981985447319812283834575517118394840599230099227559702045817828947026140187915316327521032414787556279741670482915075208888646871287905762974075100560512718241374088159409614389422175484616712761535991969899034114979512312586203658509724404380122648158098242035433070851533778082476171957489158069440007816189768637974141817002158783393191016549305050409075516084698620305947434843010398502826775482699070538613292997775891633130988772202725204971018721805198692491670622193352938774606810362566756916005797996110868288673925321117280741634974202527589486614988890448078472567808029022098288031999002737139315628032220960587042579687933462543553470764938370040148466471019668936314502761105285948882586261400305096823215794711931505443041704782950186534735816675169148800335628603192138425736504537781562569817095208069481707392036979797931609782688776393684204277347237368574684325380690393108548309697653484605760620774742268737557482478912968003769531277272701243681300575945396829142111470880202064214919482831699047384040947646520538043085950395673171764551975211427178581155337649533185785672078394239731786340595514824097169463678287220412072167492943871961825670438806289873246831827616050453508924140327451266760875642465699781702426520436933464821932412278794487097033166864338253012616927962075370048915512254027483814989165745343010748054895446913880041291902210844732555132349781528704738142673520893875563392340319351292048458132871364071479910828045024805773131708529895957681362505176508971564694176491606757489036475631316991013397295596968227109016609737338936993013045273405545590782551271955800876776282416302544990941320128255019074908171078246758017584262175359612741365693384425133003995270509375583544637832285057901542732625144481660269793950476335729500682256075701340826915141125654010937782204081671866285792085843161265545970710242369437451061044240460232301341573124363327333591707861177854409527548511278881861783099948274122590394800937468275212072559957923788950989707712875790529435069904927733938519796091271353048828708492587059583915187927202331025531226341139831050846722931175544667907762551681179293636401413427133315629171893810586534894899380527356476173792217474274300286972264421444197841321564696161941115826368817802955065594941988334589738412223627029878376222089888836436005911733945171754035036033075422797186903408330430483854477693470199636390514679792037254239918553548410780996837159797012991709484396295267400338369753910849549164435815790955786849685706577008211283459166343739372231071291912704203114160468018688846189676560712210556926720043234871175593875467025295225214001175558780234615223823567778386501621127728254166885001295365257243302392575058058209811871665538480417735869730106437223138168581255633949873590193486489888576066588914680650592364799416123099085790122419619365067082605017880905937311074999904059967836021895502886916683367235236178493981017221778084208582007969371490589512695923012926914772759588036065626037946032506689280455669118937986133392464125520994615174795080482647964074700872913058245400511822211607663436732540046980445172673639234027122564541176521941619014611757435813877116407254098225443920025592137636557409373002017237692772962825658434719502404227056763939861334580709028005682322755145055962354710208299875619874331853092101518432739553199644259453730868082914044691635977466398034542955441075869600164424382845304693155322809662871324033887292455440129098767049578697753816937751308926070059553695635131176448782566269436613328902410015922380048880607345727456058975847614393537565767203071140033373868753191920014719887492260779003323492728401524865266512764668743853351732168740380955680611018466224542987110516109533059587992117531789871146742506121332516748510589727002159199602017088106201691756223176211689652006526129680921889753035308724680002579929869981380282202597968929795857261520258929237806151765087065975788259228473143189190404669331147576247191803376181517846421025773931535507416336532882432811870146717943534793856099274420880059878684372767690599716858948869039647180898275830793221334185975528160056160437006673610338813779041487376603060098977384896614876091573864795923768081656597998479269234926872834302875552039589732127218390349329301877050699667660832787999161232017382427922679001972672563408966784732939274135788573411406136718391630691382754590442400045263592027070000949270153888583835777894584864048476338624602494611641981281612347701521132856057141909474347528344909177493961329210464154456325822703045778231441710054799455163879457576384439434987656099214161447670440300691590321883177266378980109773702910482031154144387289539252940104234888638474525879462695827845940334320250240772190298945498783137346034133712546372718760774126209625098564113027919013107450043426691673745307126178640450311705903211370397502766699581959153540558005043073567298882815065777327094356784357811231934966001703740739278134982769704125447301544005552736468771225073932494572449477678712480810795358431445551573151277418782661038301803534651166900635231019173971627108021270353093866305346772013514331159074338536613930510572294947979579883087306951364001082388262182533001528682773854369829192524167954605001461292397624962066181900014697498854826735687757683872408169130045693098852157857221692321799294403934304991423138609739145128209292498529352435852765397278036698330596889950352772856158179113840764140408748118712459307717409100725742572188368402933942620339650100714498310449320062690424138698550715474376533882645274119639253219428229453683696544276097544034348641622822366440751569713721008808140399648022593921995576612400116067984745865536002280051481170236042988600629761518610204045469153076091388018390990945139596353822192806410498854154450353794384884822053637993200084837887034187756862060446394966007150414488778581506333562243392427834420512599080950946144209867708763835167411966990074864709070904320823936392391126616503420171157509899743970030062412660306509147450358527450706519793019372613951520149918878846776749471472334856020356549588086830445436108065616496023274901326521358664798991768668811265599428949236944941187967016790855950632258576234747698291256424669704586557601137080378200096148928798240962855291351496139115220583222301865483801175539074621517087473319999152874591824291270486815475983447906815289394200769323425524868299904859214264595212305288162855070653395689293131658024169964517850515587955029308729783458075732116307281418229537528568731617348273986699692444703207912284258067936654814185131724504959943816102739668458471899367226838345416621818556209768143219367519783296268618490044007560709426435136191529098854852807609973179088198068470315387246439526230798853058860658156286741918138917484979338596764449706753042637610954128022183226240953741036198029566207633185616319636377971355511870899269778711157033583735935807054847238579225947188076865161555683283121611387318602807675073685888962504712776163236967818510543927693167088837285306564983648327150545475396191977913290087046926188692047674547161999440021276639603289372740411803838622746336761378241283797756867420002364674885630505765073048865335697245739520698757551922801911988348880632714815592505663927204926278147023583546301663285541638020765222144464069639418445027099896662089044695920690520809534433421552426553990932935950139489572066321472055343992908106458583611188644765381754467552800201651609405062436491175971831281615839288287735614548203892626067381256460707589392336252983345278273138444658256968695825903296481224304525420775907124676818634184670934316619678694817093876773786880299621846353488933978276433307725687785253196473215334896743637376857101507539561132077162718943077859773571210201745212970375938546188543639800177868178311879539838926823766470289317342126717620904260477911561001154690883523783041426612507283312512453939902527129125144193298972681294997148819769716591632381619452091993416292818614487034706831838232899864468731926535461872036846901410443531959866039970346781481296240876121179198302942042794771379897443316445583998921636306877206128553357518659729018034184165952582130804392698029523651561454234379446736885353174275769225055261373474055938620072866619078077797936109552851652880803128467191507101078635669441946869266235944677660925193600812264953249185648928939700651963714618990911200129659603101443103095585294545914813197766833989578470664348119793976000314230727838993291003526384585071045890296081399336933137853009581791475369032452448233535512070355753295182682190234886639321585100350995711818099102822392754374166916801080724093298386627111521120418752031085565330262410938063984596172552669720281987233487411695327267063495866487813184186387159409363787066626826117314956748522770588328840870103344241029381089087727764477287189780358388089033070188065975788651248734353833568913628908268981535986903704377251561020603924850625848792266043253485435097372090866838587019438925957019350980019849452119158771382720689720600663595176323258713254520049448760941409204896665723740624845416107927776104332845269304301361602347554968697629891261512332009630516236264637049635978330278037176613929344314096110689805969207630074353257302102433578600876630546432593909976560743018591267620542425175852568583827450993088315646969419823307036032893557318287235033987362648426044289576824222492501211957909960994868474112755302570634596584298994070754108820544783859931751775918471811402116338483832759442271077228367055181646001393519937479598175154782886676376466217948554867135112975507946634822680142352535137159559311977131891831001838321501222484654558590369552129335822659732322036619531764811865530960441105728967941990257878157016805553605190656409039287029175408096969380550153715475943672126025753410935056257427142386113863350973683171156294855026266349185155699693891907413490468260890267445697572171294688721697473451216847848677658560734491088053055843365325594701440720275038538178327292388665753332049740416496439382202848134757211779733194947260998632224057149046547635689583671554878643528863258500030830267845952310306042513038894449401315400562833800457666168920084793006545526465839356126650314501039161299505998426803399337170773535449795334897533314117774940430529157643146704086844186131902339121485158813837929191269111714829203680430769481644270292474600379984586095152795395685568732953326762225367101109167671161823643882862617409033930690971877667830048849249335587075004874584325175576261720926659552162697703352674635767178571326549404680929945965019874360999166130525226527837835341928959573325554985420715131596462472289257619637577982960985227139545334242089413566596120499745227564109565057142460550716170937404662523798149470570127467745400196448425452493331140783372626164260720676292440821926287924884939264254436694840173530047979599930789231203667149498072495716519910547457949333042424739521244398495264844081217561535136917670152288589509269925212590669445159731375862697524843016123896324556338935096985160282061286374070120233318417510271237988030257480472481855187625311020480692900315391873421624307883821804401820522549190087980861206770103893325631583970876708091159065981093368188147529513199307683262863435068140569697133210449968243092984140421937578406845837790979954645844318953280889622898082649063366012129856806578360944632394793194221698368573720158041522017446872558253101110502924336758642131147799294032037993624867162177378024013096357954186988636590193676411632235006629910054802385770357623045132169083788759226838930378694737270418759552888254448110964140311647080796206854617893524883106571105657076592169036225069892804580181742591575611778223058832906292089822515834372532550920700758708788859898360845289871707910068474612588297031959972757108136787062818590325491301572094879521456872093061156394468721254624647598979931063573570166123574095748652358768968845221467046862417846380649759865854573207988044816347835857800334389838255625330096911561592961327104078428107188782968930373785948922808490315390316476571517700365452987647098889905490705817163995570820876660962519170318340710528333675864225518529077511993529315479546299884533428279783861035482611265636090189143983122346408902556931142318483905593988310205415137069552251649213415334057843264419845953027411095596605303238741839427214663032135150991888539399412498675956210131339769915019519572238416772349055108534126371300648690901636811915009622535625445276006838338306041513312722568287360273534163230098091614795645312610149548113172081650973566404708101396700786967551653772998641109776734048654679646443848878662606924544066316655185782659759505602978544674957333938515733315416785586641740932571812386592095144823775659386850919136453997503227146732030495697526776245931118607100542256516193689223653071931047595538030994137601745701759405459219041408873792479782961989305223399088137277269278044327265757426934179180174264872293750898172957015913529197406108674429080792594625632103019865025563807755807661088656421213672237648738971958937528851449230252475902597435438679101683737959530274069553231060133672519111515279274391495075905771243500202238822510802281206792488939028409361027490668917001151519277345795142203309005266021299288847336904687816412084053654378917175855704163168829935807598966016881593230582006235306818597749761817857830140111487040339333223642118930125424682431818832178728980740106181831171837684295665717722868592908352686008348005047248791967390537888826118179140422081730598749130546602868761431456324202508599879731072630045076109010032452453222142038251522716860494698609319305407046415154686452711645715167923796729271005825759948952124134025384369205370741712088781821526432793717223111242390246476065897976792818306001437407800275115127782472368606074549521472177286545529951683113972044990150854981515209932472228095435600097773004668581298214587064500011021145690873588130039053257210946598898715007920868457304163168136944715060935620315308663130934411275655541057235964248860824262064473362186817177856479023418690200480191096974434297779127482184785222075460949221832387686497425434677653756184628065551928365433745905506211772943240740873571095953864835781659457040283140349002829785847957358722637745919638098412870157103441246854646935500694765361667674866746280337518965716170251219730296090251530830767631819224106700685825771669331163226777633359310780143010500847255087885037731556967739035164008201243348953431005538664561508086771457078127198052879341417504229620599864697665563797944521553499689777079967644092257124805499710506753409931620978242753323240085904306767938475974843845475207982499961262042258389221781756063038850453053772490126651747365525488608345503445305667119152206458187600439473178084106954357634152933075095605605765193990479115138758590361175859992030642664712244329417086782217521819178045559478983599296376587455634563071441764560957987412064048031755661458861595126135655824329302233142497741163864178406132326647014372879896470337461235601696208717922494037366600659437543079487915802040047586897632521846778470364064720147660998226847935102811797045519603196168998986161576394058884412231378245541255815021274585064205040384381223405797880675852841300168119729558220172561527639468313248373541301509920130620550920023593027764749152665707483373421874254438038887924442490266189568631564863309592260539190791298239565641691306508325170150182656488293306437488933990223867888836501735353295171624137525289979013634911086136807511695116700144521329769411977135403275888975466309215791443193168621188105155616502830334447587593951913206792236468812304907179152594254900904846506185197796052680650357560374161214346362669230449486930283213893613582137997377570518773604075761778194903271982606877329182707184728366013904381762363749749540444059843443639476768172381284187082035613981391336844887060026991319905085561256315330102583675771032490289721259999358953184938967837630689405002833633868350722643576448197531119657286530506054552878979499539141594229583395708041937416351547987773655981680565519899381184229668698459816915586412593979376873246843737511207795662558313309199651338721081224532275667723838649729487887014576883235849455865945885449021410163081798008902522327714621132793394071493588261456537054669713459917158662284219280391078291468333667032338819553567428603265996402251641309328967927372734358446034299162439100182261668208536667189809102781390672044082441848555833890240509654722994868030217165186216584710744031640777263805047875642146573306771302080479947569177385925761868152959940082776014492098063236236300737750452160975279804749696658021038429954945685424349794993161710247436633976573620710084599290815559970537039848907275284390472322098686728968050977303052620465639931833118494857752175668692860314847466188698581085697404691493016593851471356086655706909529776896383766132267198449867473842441281463290017466161942810091648984536763094806877541174663271350129576767941583252373395385321289491553741463827488503563098197081454240141547462645060595606194978900071830536679617485500711708813522302506873435312301627411766231622654390450154574068683169967062531766772705907830648431464815029258601155687535394752584062514587531203415638468955992008254669598712634168942512740547756847355301710095212811797006327149577301150147148244084024006522428641832166748929227015041807318505848520791110344965631164840788782559203038675564962061430840728954598162632230831494679923312940488973028045164569642423148321325630828001367661038350993322406829428214270985668836768139101724578799094613672398209197101899241092217137177179682859467788565654128790183482787594742749441507191513392084944737336667434502693408680714301034885872677519322749178392593876984288394017773002988533437326653541127182042659259444405726157886898183949204439683657192867412638889543236243330361301687490084314496959384300592687256909324344160024308289812859536912182572967911910718360349259707419678700177754239237882845902092243229613999466305286790671375621602638634472253462533082765165162705176004764952450422085485493436972989290603652542799316634077856248884455960501096515532226395588347974613577152620823190105686609107749160774217884949084790508732358345332540505621510513929809761847078645672030214244574746813380821135159025481254496586047798391357107821191938452824461957745435938750871654539777634909119606499718045517761173037973241794298132529738816893778715304131078208719682204991510362814577079257906379957685313720373134409786841669239401012716850802234514682967035915388177713011472541318095957217568363257413566080871414320905214861083290676911786359748909629456857252783150175297139171604178721345883819325109787579254367305376459752337668520970439476320842598458821527725813024342904348332694757879374543337229412878625610134995025648777638695018989814922931414176243258648572958632499446275544709642876768274722074075072328934116246970005040155808398735889095091497520690553887042691156534091486038712693452932727727885092123102094032637430413558821469792349106466955909861234348363161698877581298492708851386315467705240116785501272884753237281039461306474590884684982872318507739130254918491272792461141087886562801545665690942009965557689777973983687159257410842039408819586455160823131128802850826472737795192342369138825899289948360818536692492458350579595521834997183510996325791048586907626705791629605999590491731943483802212337005464088921598980158996382326517824069960296739737056781792041415781891269921655658245238993429718124001737158700833625703897242618290562582297250602465370652171842200416102685918029455769304538559343599849721716827704439220534970442409989164481441901632660573837394041511733294151883126594335295916435104409453459935143043820207007321537653130334734669537801630518319973031038933757843366252503193264942571311396421367820033606137273849226225978487092280422070502445709043022606946285288008761692666859281404067763625010171547063162546942177186407315905949761729113828038639586815507396690794533927402694301636099087563339754489806585235312195527853923814835301977888532425652363078204870836501442007037465651366414176530024743564565135641663075919901759081028606266530277148729601938687140315085706661935776678352264680262859875199224611924296824886562927406764999762719078240229046982163234096493872106843619337405510469072408194638559050409378249659333940153168653073416876248440445535158392196702672132809375215187125157373712373399375640699173045182391702223419642172635593712414797393414154175024881358436381843143156195342480462083646787552271730364606756424908224316904414748321473454972144801109190279453830828630589914789882768858044585181812283697350597433137710438930623856565055805954229469007901623124989720475979144726074540212694748346469360929982263982043880618576785188105407830188928345468085512771239870537323223489268643779701570664676623938554755680536269820447766309514392055971219843220397280057533722088746902442825488758444115954636097161364988298063043534907686858241349230357740078617614115874475309827370790854837676167114078207768772267928363662950584204015739105999349357349053585054516426815547071772597991550779229936031481229474484009544786630214905582893190685605193425519995285522274988527560584780649974469098015149803756677773251299811509025458718285714665193713192339654334977673233739753112935410523694637149840056124776650385506562032519756350182678300040290401847933850665703647241235251564724310575739520679711449229187507516009844948056142812653351181449040621389647863695838746461578519512381633552534061925890888026760957611806546184131137306708761807907705832927080916098264602833379994715480188528117429037666055773747317588151584574822441132160591131436107171393828795859580609588290899759058852631811605006483720040727020316694082421771357613299578562902893165886605336500630491924347691386041262157377785067689944815136823629418504130193965567961787960791996337504593722347256328579334351512730829191054095751682248370656570325983428315247895461660041274698422919916408523098303391268219520226765253111501595281009059572273956339751262589985599015127422943491505115581696865393698167887828348898427985418587140785750961421002636081051356832036477586986462847738543629578857078621985546415892592144415215271632978639424699158116416095097546851103510244817486477186260673574213989755347550879326012306591324568275005075034977089318221809489643982512600423133995996343131617734273186000789570881880810112487559868820556774002805273728446038496483128319546505340715212616439842926253340767045137980762282820333633540975604894176172264433876616498824090108738256503931736144416225505688462590447783901931300124932006635553075925942745876973118833207806643253685224493089222104857957095955264738536980401921377628016531782904292266543119234725059699422019485915659447645250055371024405319413516369589980747513346252559805341489133615651953779643731394196596582750730701932562919888813083420527144382005504940261299659546009895759494304367423362727368856548986625243109148591406403129611130596581016898710101440439403452910021057223392414703363392346501453229777826983258305496582482375033568581330722339088219597919607253470450757505287447931263902408886776066736152115726836526492077078656244090086743444898654960775168997451011985856991465268790521621463820991345411468201260331793670173855120883589260185489181142524019361034146580839511959714474244818966841331095719958365208836403944207185036750266571719648390032681882282717682756949128961131183062575716714768426488538092213273922729423035993671470314186020286137090114221049876116083938019052250209298778705192115444596370987430996877882674578026312739758491200030626030972263880127261036708418245799754989505516379788281202889667925778910316357859352899943572946936842680643926825954906069075572985751485251148460356458369196308281644116435142252383198497291073287498712004451348666194613672460307138931900957702800551052507644081971782541863612482448694191892538070812382463731782180763251767233328856691185428708310388992606305708888331438211494973591961696865790863554213644628646191033376905109104728154494218494628729339581597924152376389878455786351433910043805290803448989909896712789590731938044770868132655237416550816590945047088469791760240667018462481074505569724905350456075848776983886806579292732498635566357218194322899634186123290716886408271025042497124293326164192174811078837581019517718222908220730244597901471526446902015041120665159465599294582850663650784333611696131893719573236548766090014865134561377734117666907468004550040644866190393213339721129563926293318144534244765927275570520742260293627088663769506257142622599855643170730858368048811439885389306574850626242563626821936665092518930018492899575813459849946981604349932245917839352476426679698193728635961177282399363069591580936913049573098911387785747102765245641182889103546695636919815566365995859967574108459057945216850094741617433750312006601524271334177037509497542041318608112393814993356838513242304907230638160395047085316068814769683786113872752638056800919433433047635131833796072798009254126755458051981796922600628042757915683091203604518296573181122263178172496069588628498688006678285026543336772877361842408698063961483809328950569927417219879560104609438162927259366297608820707374753758202821483140604089299232712302523436346933579303855805312091888057621100661085401434440774952252589584162919519473491617358920955610751876494970301331595577990283241167113345955547128480166491199493812979688021426280256704042032099789254486460432184770689544834169288998918653912227595204387825596001625243785822365777593108306260185491260285797221804785363786163193884168089759556198171092529543328016446316077455256704111284724686119990059004818298278845563384725157855554303924215121243926084080291351293630503761078434351277271440286702272640446430051515391758316388154097240985155677412998691818929696090275889378255153103222622832347160680776629661131247979697474968937424037610726083747938864540845605611773511431558185401485676984911731562972483508211740224124581887798352984898570729533750158777469981765903071290379000067029607314254095991138832169062019790532991701743122669778142247636145563021053746116851865089768890864676267362386487692319791393866358881053303150833604714845671358499322991066604328368580319236234786767405303904056811675049621146183641446970897066439586145789595851085949479217199596403284207599533153907166068799422677776915573616533059267841782822641574776434907112273062155113313822844442731068982825945826682425805472532308565894692260369188816367891069365884692495384440036315124342002307555633865963431237755149437829321175237564453163341247359921057248949752648603790115185287871649965284938160249276865585874355302411468606340460124602478676789957020837902072911739571578931981562927670090740358526987854479624059757142047219168216472907689375499923092118975597315173765897484791541089426515549572267748958614410510605607133830529110191548658471222696675034816580933573359847873287856510584373525203059000316548828882789996715868183643020466773453590841476439346435059223911144907056185381950522870016780866721776062089686829076001700414217116905964040797806694056858172793257058927743025802786991562047995536252256006165682795205050443675861631453294406982929721375182396813955217709253999500907354472729605027727414759635554158687159813990330407055017476112582430399200415183936609232335266779583870970963517383667074961895457337789181531860677620496843930034282858184532764080008583933021551666702898659134095090877017091113982251233758345229553600894814510595410383821170960674055135223079504820348093412784817862640963683660225194950166657312614155964485995751120238592926245344487582362012348535006116402189162951350192354852415322273038648645945931821087323042407515272971125901940812487592896910673425276252953735810576069804017464549172515930332232110424203514623949878842176505760057622564477340685747867087107854550727422190304311334054590842757445203781116804475999321097582016215954714012493852033310957872045356789375898753736350595607309831720029237860635507906133818824400721880474691766771552721279939337653463378505054103380408308450986136971710606420564150406832372944588648272654063301242100935542645671978393169442893876937602528145004154960130108383044458906415236714987425508921263152389326329730127682622577265998696239993607436557398135199033179963249490306970294918049595775672172289221221476693233713580041258900266443204308579140020534018837324852462041332452154247505979525508454855019933533843821292827776732131213414460056691047942135000187636148078921462050304654244679014677680159088414286958795037098197229865527215403678638675918131668143971248202015279794730749814542332507622228981267081110672529046266102887939295060633984064752470206457841798707357681644463905349898841044885373932616883781025204380569130773705502501637454085363091006928507740870343575353317433198155643567072860438114848181687483684754474834652556313053222965508469604713769038987682814658914756470120513355279903920973536525641238761081196366576719837807715955479678679685592060155510383098241285808442717118345969393722349804348628492233620691389462213825892576472037300591951764710884722316134467120133314619744764921131999288633578858720027683087560290419103611099488579987523936292384423909075960963225704764331375340055548319616082370322106353828317174331072468457678339610106279592846933597351477142485404209195452236578365302550440873358479558645876172706242100902934252254015895869526002226660152451242267945024048135035091509828961302194376970397186297219077515243433257851798839303667583623940292602399950369440057622655277841247324778570642351524623493085695229924069082284028248991203312860739595051562280535296956711123934665940727175328511101359069982522814869449754728726374239666681904775254332779927797392056463535257008158759780443872636637411857907769224351422814831699396199725424482466564402046189782932947293728677782376930604009142642283286318782673036008918731517453197454239700156437695655751945844216847929218111659472720788435162818443445309914922010073414678409873080839924949561413202784577135534316246454541190962409561492476046729671367340186978485699047254812720366927942613699328497617770825678178097858166790819003549326267855931973999348703765804790483718860870760763405188651387012784849888815547877323841930335381572717357990245831331546164961265005261109808525088791310977775682161544652174407365100809093583501177864269485145159592162496429936156201738991046061311816459946991826728585833949378911721526660094113149958947889558879967692978676475583667853060283072128385465380368084759445186131174279992665646805992511766596543414098149604462605483050737369428116890441455861275679484988830888357961939514517196997699523909962825610068084072195716170524269786156097467345563941002893965860425736379703491872939530535398405692805265682547388158816891380779320378003411271363636238419161449610087186731416801109598869997095756480855288096457208164730236128542869571100887801218235123273369355195128751853914421295940796214304766079003089563968832869647359452358174124519630009486782895558330966906211411912472046942276845999568046785949493712787861090709082605490988270090469166567431547537775710668288560333733472226985523557941830921346925295860655109847717886442660367445409584173690527309210595769491401873477915489516809550861629964039112045405369337356623215398845609918349372389726682587779262837669918994952657621508724141070682274509973821536614629495468513616469793950758932930850098213225477784466446365487392326679512321287458881860999428061520049862092292586841208129093679397737074009705642326902393253173412694094871845741640976853895858027899074809620925433422500895391849706268936527996289146157921978091432992661968829088017394225255331941958676231396172071892757921682358324061810014025916217068500535152286719386218250655177309233499694055517147149603517805279251673468768120544155593298280563062102554476601342660468318773846054685992979402631359787416968256769833859352001042626555764749605255507931831181035692966360997965537307884411031140817811140627042066016524543642446246939447291822271478776864916001461506661871777223141377749736224398418258827040450580081383544625930675492131588555450502290963649821138467205515610580888189497607178391527467711680652062498756389999338998763091605859614649076352333261779261685627564890729489908541766796733507125280684639769763949227324933576600737188492340068143083376238734318602534952118104773320739935491724922505633108051273831164095202234638582029082534420580928735469785515735978070554648759390838584615586716606571393540452856621314312914847515615098236369246861634589393167087628790423883724694444469882766933207201781459013627343554083787420843736708553954291843977006256904657326692346792716092271105410954440014097849682704801456477232884684677552127405745246656822335430353344847734662971962180289732876906450588829335626749520238191727934639592051425092246909785244633764598316927503314513618804754909434759388239906754291521267815207427358687615610577031234456706823065899637595538498579865033843920540619822206776279202814983212771949026310019883869675621782283833728479118913714110296217989522123531092306411976066488339531901275317604791629900831797704406773530550747576637776514574460120765041772214365628850179268890715831932751384002103702870918182735741241806201321456155669175390790421294553468687231537012767899184369868853129784362859464647576698224429172816051530592604874685129833094688635271804894651289162946230601774553476531997835140796127383349544863770477221337999952010312996102624496094970931034918609380150766288768541443839320173760516055692937257779177967031448152447772912922824247119369121728687792279820440118463803219635161349113188779490657571415888802521895109801390309602057496130447357173206193770257485902988043724386771627028698245820447187327542896761797831495424870524745054209961263942384866779334775807291160614858499632193123256977580012555358060617223947097876197831905589403863791903657634251177135527773704036572670758349278441381318145881964139742049801456229810016270201259498283832950574628312132693573994042365191518020830225072819094605427959422196132187603877517651043604298875126508738128622941336890274720351468393221056691104407385888959951125450087395055902933267361469853872525259709107619944500683997074922572897353634542995367492502387213540938961893856324303852119524902223080217689964956577518173470377389201935472562029316002316440433354211741020516289264898869761108590922455990632259967620218164456678357909888623626883109855832852000386229542048476719785608436915256775196537506628160110065237622786789190706292382093239606193779715919045515292571226730653051042523748288724000806145070976124232157025239502774441418882494676901257355029936677215382282534385886828038000305122246425280026872682555867140882628122028629360369864501386792739866267469368997163029595644765513425313799420377066979367387104249520233680355167228320845883229152831440784308546250095942604116379244567881012478104039324312247170528741200639596509263589885698245254804067824870397191478703815073801748052785170823673514120121865004013010124954917787085732613169334634310507611156210188141480544269004429530042838550120472652446330586871550530128735745980012823787448318748367474452493682247179602843084426720868152582566764974721878474665396423177060591958433286472488917919836665133670636575493808698943611425237162258356287131507365111735495347113718500926726088356371341099061373339951244626101185459682706085134328257237924210351145420064612541428624987767942716062703596141420518095974590743951349485877797256638402156802222009537398792150516307203336318077915734512670153111849609093141434861284671064161687827025323834710037512438432840245962404014186031603687323402929705164688256268128507611698806754216072671528067403238614428706961672491861993662114657817236825367283202079860980410809955053362916682517893346542991349694211282847991813356519582951281922606817361586577029881114786315004934431819040677329940536006593246247004626652614359547662537766915678928604358551354133592814963995272346709984041798155006420055953120899312827469420971960862182215622878592070158307329672114755790238054878689900744450690761365199714570098447681818956226343309637499338191831235896934118172350636605641288611779614615511040534697776686220093090414925408054756494388903560790387780836914704255377513375047279798822108098970296752061865160075608009137239060172061442351705298052365271075509749749694924025911906800456442346249408749929900468662226320165814095110598457828856546691816896157255931072504538891803023733094387972305028480224334712734764741753849807024506237010102351609351231033909644292404261216028537370767839124909481405651500664478791687827232217827474035970407432200956402803658444805908327366175498274296627126868513816966767046468968962005649991447651662114215869808611112333963313850907176853844129592376012178773240292814119612160896909481307663102072395491489978187694444863133506226942788990707954895504935797647996560886910412643524650509743039689505941546121209899550212243994643613989321692403556487211982732323621201408406688200055986136860306190127937803286258089309306219434688083467003987930503584921178790846954689654473383732692861515447271288945951268231116344830466921825562808632111157886888087423780042928924974556016428600354145799181195023850153112120248013807224675250619130036867609801297203449788415086400595770221154856853795354009100154410675822402057870351268063971858626234486051271037314129019172351141950068134800404976861195428002929263882679164724331365548830785237015992990261425598828455423939368764525798295463794723161232141283053768790646107786436197635414096114782773414324979875974508703645578122634394331345614487242759109696174174873845363416409762028487876455771675172868954794473694587903785959619650700648083328215883683747103963285907119678861299489498510823546828735165056199938400885366573535346311503908078062687527506699657437365905524702688417190213453586227060050461203717178033170810138948771234214980814562741772741230720552143521893151735863135515472139858560875508863269609390084470116080883875989048208365302533822766414533453173056198811495082727132051181255356195253654298169638424900949716933642212104308794098377726808544191975617283824442061064413805060542354573392053011038554427902299455770113370801008389931403667011162945847402272081571133172229026132098177761515916005211230848758037236836493431770774474743040352358113759339530228587794370922685338745308485163179940747474202007247578400757442552401990646400617555094995325587328506846855240270142715288175927543210404578968278282345590598800335929721334446339709432718615969704971183770259353129710105775000401311071391866714875650020354551113309839825899879265923323000702787310220643628533532328761838652234887222575591116404474183952016035628101662779052300546774275891532350917294067403045587394267408916213450918797852677507779872104392542384986726430114535406188162826604291222293641060759313544205432692580052629601638869078434658964197835762648131347470199661130790012377441821333476697623451490251127813801932819677509345268684716800606774099195711540086489271343076810985427718110776481680242630342603353656116424522967053896239822847201822039084141318251724140797357969678449988442895095217800427691247247804681063784086156332838139274768799716114266107945828637693762668563445781733423619971922743418744999365779224302479666560279459904026325871446045362724704479314114116415426047559638182220449643832589919814998330740485868189628361135786531612353635507120960064102580415460459209616081680313327072867170915014161375613851699814821404599168026352987324265722873536886057399448963665967379548649451889957289086469678927746301705812752125384361870616406990669625181261270156524461314888433007283563648479454792530769165792537237852263289560575834300124458018140205497968437553688015226323825242490820388214574030956082645566989493512688615884247439395831726502950587508938613128415678164039554276168035939579858341473119883331167869523728850833217171956336329298339651732050975077147542508536322677573988916064892133512050519878125659198998811274205801324766928079767826410355895024056426377236418728509182243588047681983718219530827564352066999302912613545784206382043654618029916858274099899645338460730215896136540843104349516456083377702712504191786475239607639459819839116545025654546644375612499146773184568988296388862947351934914703135793768552412844906676815472286197525465695060674226364930188849487762612830629014042821252568864497856129360045253103092639414658075297904651718570116807835095506172840104155758231306211801214394241392543881586939195399910921351971560651434491530839715116510779586912814335926289078295794823324917567417890996215923497061159977616157686028570113950250142312773407741827947462275974517783044294935617136540256038251681147153490520608076731923818534732018819695376133400595734369047755824042871686193195591535329958066699650134632528683419784514229724821710519308020403081886812092601761666993134254783126516079408908716640072324346741409992749613662618193925571470063794489488694149048631504292205490551751670161027990131521209382806114846275065901431463447175503145274202623744221289801294584862324164107178112796909270127155470179903205080050514500811919510961753815715621658709571305682825687572721287619974968994686355115960242004658310444167894466807025981268828942603469417968710056898205797830162499408295637721616980180073625996737679678214419089462116664788406254240402534962101507451443546105282515627256233195809241230790866754247910589492181980439684779816549927862891275735631213552981782458084041090396399154008211784066251605461107396651657072275053496823581569316867509858000561769341805980685853822126937585049222084371054085738963803905234440052645656264937780792271307069736049400991923826278374257658804381182923087727638392916500167161009789809163449331217760822061294306492651908871380140385124370843046528781977149844801568567476439429349155349155848239493748437387751730734014145063633033430932407952088415068415236101976830907268291874791568376284714640411494419600253224197747464243204613014494632180408845876576565497670997692934839822689720011461049529022050725322588088095476295013831906865781078837135946674076726814326073992775625064472861282320756633296772205951086709907627942896546125789519861505687655029410460555294270827026950965920461436872274214444657556330874622536958656472281750187729224316469260973161620368962459739879882211429607553427557468361370059674271559469300745069019091382689732936600240184277420589361822444670821520091929838197277350066234831746154016599457080945934924902723279584891002134092078533388952920579796603211083520027350839931698997231500948067392923691639514645669560134463940907222022031226463836272441585083536858787535837845244820740359862789472613988206336514420829906060803318968884262338816886501496907567052951558411066267266709344609579670039623099386479356203373372679845510482703046715283547646136641311604805857719282939544984969195230222699750481843289680264064299983819366246818242610681733911584568556191619147976631820164834585068282439212122838114948717246076417810705381765518045084982256613912744945780774412257239881905775359316344269897256087008521176120513012978623785621047657894408617920187150870900317767249519391108340921617115671193458269267999280208867743495677312632166465529579784480814326873981883124426944152298997335968809743326451554572661643930223252382008021429478778785748097780670532195232547024619500807167963662649495366803133238993703609434110855260400704687666784268105015271532513267545288271322071920631551088438551557431385317948746888466270730663705714778372498935995335961127017727018420068042909943571725691984847825408770681475894777293655148573041894141966156988179425949012559009439363543221125872425237459462797093860277156593093601075114293428956512228633716443077823382129166974807933667141720962920776502021979302097186255306656467776877234338921724767479575590464532197555172089220816986368649021707152909655434618823376050742803904412393692520375032956047897469623212414039063181846638926955835421744837019055960124173457057655081558745332502167710649778034080132383982690888986091768470717166516555239284382216996335633642502063477712575405458921632037697771199868181518892040379592853424766098459797498818814089650590787986182718197530309725447550028490799900555579070892377362767777865554738622183608889973260743330730126214417871321408499604326561389109439549081912627701235777721235677890453652458252450597428098697373327533037592269321559951085815293468822664104615368640371830624904393364488951223193176230436212628734533824280452553015596914257930814070267857387115294496569993781560664642992042790305475670557674471869365683882099604971238014940430123660973588793182985696897240240842210752224811992326992796302346159919616273719379580173432607709684803315429757598651256150695092421267196068553834064862182576719557616447163016638862153778350665228023016871846649004320514237978124122183499704336018695493848804229073357594693901901690410963105265046332654183066394580188400623563551881664332074305343518545212545654088150349164932824998055488499414848518393274809210941818329731740468911702625321645026122676217311291414182431941140516820484235006448299850505234904503258934424416235818370673046789243400691454806063247184612187994602107693558477599809277862624002555306340752181821553968834604815962182743112511201058368064105709938785834710472979582292761715419138160604473224447062594956717549800531674901602512406953665770311564910574857706405614714360140320867488005839596604028605592774008382433270226448958708883374933564102802848351434446173092655924624873575573173708190594165269495965709609985488396538451265123683218434415324603875905320436030457413522381040259583797154487170492868975012675240533160131200936694451706546944847373627053549201020266269109379403128563320913595342461180858330835545350849614844535115581716245453636660906604743101334109995902964217398114064571135173752241446414077451870484503293179805318439156236970741865214033765130006950327619543772969267281452722142567454405806520160606104372065613998301857538510769666144682234636274904073570337320430153624875642356139102102869337333524460899310653427826442722880868582295693322880177260349874581147472770831014397040420029702956400245695440500591711893191405336433563950479236144733565560278447458632057714170771788190406027719583313317158245832281260127051073269351419189649639872268883430420769848725786761646322794907406566941932845550467485105100165772099768561548606602326982990884969381507071615932021034970862598470387545984364529137905058477089708294727742194435724501962439611603482470626727370869025030782259690292163094641368063982282636698227367398169554875669634768929348764813839001992398750770696849471579576297063474762131576237355864336767329050530711227613072341532856158058328917538959669025078708170744220723243629672951283224662482222704207699464676000041326179719736464986606555003944216590080752199503766047529051793330498002657750317408374577562233552618294030706950494587327337288100232266349896098566646062962804185147804655921375735479557872254597896943809581210062288878759451411213438226515412727085079328573838917158262444650236523526302029352485129696189100725843850356354346854160527734778277841233483499046134004844282174489594674117068985481018218716802050697496504705876073690023042586238190377709482139145692835232313303082456231950082363857184442250172030926409319874266534188116821409325732451968479418294698480410439890165956382464242584517057702130056445493245370822222559093147101510112331794358694329017472756575258773614881354274801925858450222797458554556961309275391464922272706568404596440423611211583381555196449414526264914906590137506248128576642256557309197655246353404374121208691585410977686619898065285383495262412232583662922316044954334360064906130087462208453003164959905873829167291789073930666821211863030311985246432665926083397067043719083937918431930281925310144035689499693897973523533425789252449135400523006242937395460868765425140931553690074515994590187816002388974797984625557836546604641647585455983966760910385061741025493648871499949452449514136871953095182901173461233060422202390795848004018178956724209763829518330595073040878469323496048919198294277238206636061141124869689143384453016170811343351127906264306615883392572875615331567473099991291276527604487821748820152758304681976191391080388878564974847728829739270861383395955743515379557541284962304854118398659255999675195701696211802927892558185162331606411763812787945929108188552823753770001365632460482712824738119034777795052122241863292405620533677209603160857323897152512481183776116644931666769986146977146940755148372141376655639511020010645457769076688913249562655645233646867974752092538716059207492789367635738789062905948017117131754145275921074362286555034291875334223940656365225978575398103065775961588120949064351159246511084334373919305165638025033868611381907048715968000122599139263413515810365534962421256064875724895426700490208446835939516195001777419852323083455534692011203724144697466321187971581490116690129638488953009034824134363575150307977826978083992487260631358619096022336748119621320424968678388076397755121088595719302483613742940514214216225942266757842822616283201560214140895642419585361671195304836810944507886267209363022407808563967048738216251070716271932924990647556458875673852075967595125039089100251871964646719556056226916821261265860750561602480051037372442250541856815670962454195177307822128592677094914600990531474750955901133823125316716503072605009639344595337346555280373580388108042459231912395678042981432386616676892240802853312536007664820595320229363534866377291788345467445376440922660176211609395370556689462558745314143616133460647263432746456303135885993465896915777021146734825489461551441577053418691285204841137055889778455112856435304911144060455419664896724231933513372758278267048449879225993802290252722941689430586626457767472486695437627607016635595283659541390310721928150450496786224869553382048810659783836624658100637496671875290739229350204797031723185057859113852173120029139343680720941590796068701649025803628323160957242928914303036576081319678825104002173914745554929967620631495038637607501914004705740438951948411737045949820287594869820878532153727285414311203991856775418672681597169244465985792178698332274709499945026920429175753416443458217779521240171608314532026453518096040202737939342962775814980910518723400633724759881182559513776817143639120074560127576769472044042317975961681752971972907929455846575567304412342937497293408188734500620691482222424240580433030550758842374458431622086190949134371927337735577852404534808688464150456742432878478703627949560312193975057784025118935062918249025632679675466658682587970258756866020304261513736448499363288633163064655882816048249331076587535676991450790141518724164624218794363621509120059294073818338218918928202096859255882203498683958235253840464022669834124114533119433331481003676847480276890107990488255646918583987919211218712662324273526877671385329856478154542211451059940964974288131306005031163620040074955580318196091541075935790160862283902701249195075100408347848938865862808405633038127200504723922102137942607505523865426748239631498105900972441464409959104965505834068388072700776316218789900872327947034050517626082472511847150276870286906540946686982637843913386032079649649884526091050086391772187197703046843277450347213355842723493481686634658206166244741923903485291027951097501739585870332081832480621070675758574854295028182535631515968744595887928144114043711338368092282243298488927031029427184903625595963470317001618048057124783074491179035000756431350075966588062089751243146198492004886296403380179911717622361511309934991060864499960545111751029072760867820206042145016091306279389310398327050111184041970045695236033748168713289061779175583597373701335390167767886201060574591781099100384786681038981657579610764858082721193571342957626922096006794535242632145553997585285675245776087753175100124441831255065307094231832560750184068406445936121469329331006089333539706677904666593349446785722226389509827679667605745425800351789751150334186108797837860115520051432560446382586073532655143530777440181536793002303507623957494206540106638921038678294605691147411752355059690583731351312755964405875783230786578514830219786824776583035440818880153637858939255341572998877242348723182466293602463907524239742072458810404542069274724384773896045116943690773747575911288312516370410242600254400552506231163722139179626060605674840494336777182641717888653792127326659524000387906214440481169662948626829478454181485951916062134121620291546454423874749968473247364498308396710861139662387329214452587991810224911606671576272645042035909721771564377526128836218364573892955600997128001602942606992399485748476796288432541616825922098234059448319064330204845306828751882682938952747371855952517335663078181655102364013901451473555681433733861647937206007637071868172848854470620024253310928212846761129123547659366500930843867880394298724036357666000475036143154017964900722812898523355187025978895959909560332777764185740567945054221191389429745847045779627228837397759750888140823175374085205076619088129456584517900416212567901127065340856528206869506006946306038703172066130776903898972926714873222339888700378977077492001221069058577685630261073703799753576569157466253567548446622371754697428766822202088367332076962120319810128112381313165940497878587438240351822040882999892147187935171562115592230473746343922918622400181290407374605493116796650055571077908358557575521037012467950393138280379629235519902105835596328367019781281792573352481047177855610847990772014694107732698299074453768705564070994736659510534385046816366849900130638457235467281932047505387718333391875390909728428698961455243001116406131588232579713390178666334482341024535966685543071506450239522557203774954080011151359337112251721837685449062832949917658769784285587106043685339645897790282035004977738890537178875982433417440095878055268907552830720371227597451443011615722483284204044229100363121199470210650380338626827253599416237928786925212981398373780792725471204629516627087744565317886035320856495925443097110101729241951360230309454543289043613618391300074272674373612628108119897422099639902555258993837816199259250558680762974793872921589511916015069236061199724116632639685784296103339201264985503797493567637420893998676113324916999872485984628362200041689918580044149245709711427069252320061907970564390117951170620371770791394567195572131794466576208008984107432884870736515904467223204057484671060283417506009135562892111350047128160886427575513395435071501912909604571392332383683767202849438314865087323524157638278659556591529080531655326878853176073928520163202192891706836469973857790319145347111059935815636318710811378549569219505365010679968263928025650289728968045959911108709833262430450939563807901450668398249721753876886187049584054261566425872539345423312899038584615531454367866047196281345297276627230460351925602219628753301337788480840648442355973994276015118438284413129469650229884603175091773169467793803959630843731818012799056606735415610824910146469715369102721157215534665607087574200650883284634156626717680890279222312334721180777060174280627211289843272984138846037914796340884825607766942499460077274323232010280515423729935974864804418128788299001561716351656182190773284700677220479375397541195255321280977341049645001479335550243481089088487454854632476859053938005003914382875768349188685512069006390842022072675833449534859876730944321633530978347997241334268302100981076009753518138260687332807442620957499233835422657978296629598968385549814339599229119660209176404711563768697389897081477516237747298051989165914372576732963259181648611610542817145316698120847661058385936770529470589568021538121675876159182666547634089361543134219955003364941250198806200252823816908262695293434586515689386934291315539327094642711438082608892669212809127932982873632947220831301003336968039472344560779844173147440380480003632149247506026107947519174555518015640027459066865351637852920425558492999470720332579872975616940052237918001671957662465567959604714329169657338924246938622870781270649359455471109283164355712845632764944657689097498769040644051703006960981220638723455824790077844935210555882136600777021080866386010134917062238208357908550772933128694616502128301130999903140217545722561637497046638167534996931605302375846515990330804318688586315068155130097685982586652210635542170287596084578234892540212905002701169613473369799687607724103436255044422782851025024495673906385150523708698329588604066614852129262492217283144957582324383411850532261623925749724566907594462716973934105221539765844640311110265342172636200584064683581541947610207046347869345596187451007792880027292509024270766627346343420445901564921052202114020570278686289953572245631856402655311182888860414916058480082692011468292930117325836125487979375702071641652109992209439134036660417162440343992219878177989453281450477747187039590461496110037662699393959585595328631299592370351196952876039339427210233216462871788995636083145890662859483814288337782759494975314754156343189104622313064411874387382791346508001631643287086652782072411423234846653238125202090300688206443602030185219075196256322391649804589816352242660458462532275265866332038416273738977432908158567820467448651624504094357566122695040680732918562468926344261329367860287349114536328333663743957018666249127330336946778487420082101713877541801315364980934663877274665422021345302663133608645128705356932700843551598868273349715341732551029646667923217888694027871056658805928114537559802496403625027962779000562233663999060982453595330094840316417709155432965630933243578974820823514653399858297122452043998480993014157900896299629937336093482863634904244819244999788639351155079869656837514491532864141820695930179688739989078412556695682706345059371873537050286488210435221467687586467379524415488111635327005997444828951001838198167465420998076245178977896955420246696137816820546787005916257699875499441880245941782411789651989086077037194152536278665758172127721500805564270012872676258762838081345429305573977667851700533548765836860751986637312160806192198058327400484560415905566422064287447182603118352520871506087733076974947472847755432225354549439787808083095060054584087013833827771589713705408882980089952954562594045013794603713513683077626961505153202329352647117519643463285563570913015586842099774704064525596593750653925259812684850249812015055987201142841769864577785870699804782985209379141967794191715612663546694269864027300548665119005786711278183700496234070814235282294828808802214136100427336641645399538425225535871480827228534010998177742326818977617732815717025455379894230786975706870525956674978506729325459041603197846494366362525561535221465670916468949545482754122435686389246288847754801618247527405206214816658300284508850113848617991865676009379600115966791470309785131119003112226631122405794951129750629315550359736672097912488400580092703940908472198696037823636645142496391647555045019182634762143256602056021941654484527770663672825265675228930506300097816302166650865071093190373017453674666544165563043091697326626731790154178521794995642378172418985079743399854025408551160447747009999066354648729659868561619796271443647596331926358335844696990403459518471711201434063718383683448491541446706904506702217274164479419844444219646262328708774468240090716511783951529944736440878669480697915497297939240289688265679970960629195194210644028061072318863518555524102289944469195030336219412759994609274258316613285775297434256876904225525314016321643333219058237525711387448195212533031044816505325346550895636273282583499387160364793896202598898236173176100016753112388174669495174907116972429907948831730412512555145782872608141312436087508156027978239001255020176804554610514454910343789488710951277410077981998349732576873654249346084443226528663893355410345653542182534582473569347456792549012251638027611118970311301106775112708192277231332809017838067559035924998621296210569305862201624684897484760022010399711287960319485896891693150788747528130246901305032410842863546891279932670155939757509509454422031921361234978481727401622525141674186096522822556673450375425835301048409455905089829975893790456237233702239151059048451099256244949846676690983740427526161866127749584682718903290667546822132266411772856355536323110695148497567911223314235752144826028342135849841044689509538888210939712055961877229773295294928784815741535740489423263532582742221126308338344922528257404521003184577374065848016063601975330664719752779735773922428692418403318298919299242714692585837002975416411325502643812862352582161983927996997386209317145854471365146439424243963595933169558293765680787991110700590479280487992475018504273629527676733242569986330738026163862040655952529757601675509472917076671370219973100427833257101039763505522184261898561931389095565498848914230160456749082973825501461750065614068638575704164342653763475661820681404951949727482920610876269049598700737705625203720469709776733126482726420621401320609600473914358393914193937124607245006471648640088759111800545943607108840361945034913225705758547619085141927696801395495188364174565422523702801316336164577686651883922246141826216657311281568157114232947259004750138786440848686288312176969916204100438822299736749572026648501159415108210265713457440963661327396397855010266142039696956265871854608059349364145053330114258650304019061536531496593715827922894414767658754722918200144262130109208844722758881919946500317831787870804887643017384002573303295153625753384621621263200903823789344752599889215436982474001189022290946868363098297719351906412979652671605628389528000340289468638840992464361241208898692036521595421500922537447791617747188158623200546252248368129402291637228311842239731573711000640051690699579489383953676514434916293124481008049017497291569238460247583006356048125504435477769293829846301953921737381060538102679293839177103175622114641019895929881451975679684477875290134564932648746602919775919914040630147205738043157317957226447303732448647873253606094512138033090872028585133692681233052480927858349337537047076001226247659990243140562260604409613839656391398613790666899166695397495248157128552228414780014015687115771528817031637834697748814994574965672521038028404579782960188563633777125116166762919777888554164398657135476990955339343055302771034268220238422251504092025913109567930030511573482701662925728828451646091452197133458154908702105269109097755082829908899220433427927503066321057921382135851893670281192555877963725634384141456121255856096421463815451489392063774723952474691420943700924942864953156006078821391945306452787168084394290054111672139663512132617259757976733479081665712689147787673510957524934919586701517806744360847037076541019725955542858119877115768801316346290628379304562533886956126550326014022615509926527066887808547518742966968695058241514194794702735307799750175350383048698681069093670837978026653430617600966839388137866485100541187943148605137147872150698666148543295133467213800949473792195156462494010109980688915573887397785243436151232519294686124600689286197165075836882260598828417618340736076797775003399754803342676305335306825247940262832744796294217518277809612387649908488663942968228918055626431391938686692148410595925269004169511482797696818518639998535767297361717755693285458377629446103165597199069151905495426911060736217362184088992169166710731154286938646791266211987300651991319981525162167345602881878966104564545251136794894151233901213247196348765756305973480975101807773917444061777393987627710205359663010680985340236091822523003903834235359558399227925576951328086377852721786837380321273608955219602746202283984756831214846545888126826363303504210419672806061660948627701697001271420619086045322190430580761229275240702633299533823848466681622184356299665231932791055552122784911371303616947291180304483586586528282362156524699196047901620694276180455846404441982087166038128077277086911463515046166474112129372838547665665517268980008442622648261556764654991582422316804608269861190776157957694265039321838987884990007093165624180379671884649386681782771961178630702236995681081885023442695346597385108875200532742274726591147211112036094476951611434620753856381514165377820413932160475101357226647762214290006840180687552107556162624705479458001097186701221676908459907267698472786455602480348511484401974456152197591022918661754466673298512392979880344466226448848523898630119518724187608430403254572860590568758823270882995574803551056795586145866879707559099141902870249137720848165291602253933597999554429186013686582452501154935943565412721004412453557707589824624741943992071854560805456350424123201804966820333885631315984698109768656492321877171853689054610144569952100881598001836166174286681952925453594012536570582453540057583462035505714655939325578212137192468121133131524602755175035348371901697179861171519875956228122968387508134914586794450612061056397979441969653841542874172386336826032889426025443813935482107867086769608902756151085925433912405027624556641149396256521271359165967371073809452527021979494791479343547216788204314285491506599997781932843791361336664228779097496438990775699045524256765525972060442717410047558183855965743521527600088105936392984491558079070356089925991645319495635148294291164814395171343982493819058905393403288211372855153980654615651100183910666148754038625373231561984151313149582570515021341961115395683555731148248390264043412379297818442157776017664360944385951059874505733456305096839672343642006934743678371956098000116636509706952556324724559792572802305330498097150926989577379542365794702434790382989796125992474960021711025354949100811496814398273096623635409183101589600201941972880971666936176258260903632902950797279356830040917459115715429032343244974741242836500294916722676236240726685851452838859729399290376403441154714830258665576424910056763435397504710452695326200596196364563436853840985982100553588018129723893394170471940690572418669150441044272167798623103427448967163244139733081732600041428996330302696684310137272438883505252027999473461055470940096145512952493336662094404469906496752031422788629829135899457522455500773282629832627166404492511337072605979074316422424081506512145909136160583661533403005009227809526138189055674049849850717143773337794362436548692137842439399088508314405402570892830267708817440249888990338071118229148986583768395172653585547184937934859325925378451178747115143721615704242563795738293820581968346723180413664404547478378410185279017083257221181777269814040544108180454321956501689118506862132429932682858240776824880075019943362613180049166045408624133508611542063227884104106812848198688366030424286532375264512275438335716241120459986894690363182856421286223346930840469395909061456297486059656584126755292861463198124869526387534905989587451864300067280209782275689746815428018559669378548711885533670207581936825243380363204530812394890248463298639985189297562183712370293752646538442146697664145819108284215777588998453825882841115961993291395503406500345528978332764933208988237756114465126237639195154958473074316253020164009883388201118183336814353130003362291237368494158918502796546866312583780216340374525001439506684494222533261424607862898520896037439611178421698464658488778765036781317298706819073530193370727169975594532970286083449304412566899137665378117502553141036313894926096051731938407947559497329024673196103929355918733307478256128549576589019657920470422857895662116440502194658630520289154000926036748583280634229748459722787202504922494316666136275912683771507919274977458576034723915081923944763846625176230189629481006606949377960001228694194464215130761327506380815513410478570126382443975269215477357506226465853084780472633424645124878246236377867555400345891760132488932500793018060894903347636809835288701891857591303444414347479502498994319801077138423934562533747008822009983236607521655826497459212413434763984673247975342921279095085439972776669628025130975614627931408888171667977230038441534953502728178794545845766828218816251831048918414211275648275282383704386443430411291805196531404489463337090968211945888456549278147881037739136858934903886820005756281222162297051515981051271098328776941043894909362507177349883595581438899278048197545935588549488862964636422300742694440610920930877804393756815209361058067135083058592537451980340784095991414522562935111739877569618104786895449944171551406364281589876057551428481213514498804442974261078958001312457042769056496039879575587985103068760003285386223522989962190877907764323996348496070803195848620346045014306987072176650134959845402722305874187041548753057691431819348802861307904236100491327877470489120521977493062109700094872192300602830528288884816508760092801503374158602271564008761142480585116343331416332004891073162448025168643439198724804001044757824760137310097213477706650087355998161018944049876522062012360584686161711414086672707328358072670339781763777071430570179634759419609232004065491481331643594762213777277245103980457901126090669507852231596344485453966196612055414733750962196126846690336349172885547754027368145689446583259749819447568176925905373645529381230764015553163802003158541451322704677003882499795380799241223494184237837301881366378993965736990213185583633807545491336323068986625136657472527629746954139439915179172203912840657498492070232808034545356644260557443772474397692694726985557312438341598458214766489189106730370311589809082145285376220265275990348668543680009499444447098109259990796717889973706951914126804897856408889329892187003661036528125910573672629958564108514124910376410038334797439425425033890243928903457563391511346709808583399326021833137624624283611143039067094723834877243910692559622419876527785082583977284833895744785568653121889710995056750312522377100721922112799988943087403234156831383943770979900168373196622932913868443726207630644885985617275116523800548389090490724370502446975542216353222998738051542603206208903648949106272847594125484201637695450091239410100251618699131860690872919211599594432653727883780007562314903969702318608525382041689042976135260354558223940865136896642170534352055491628208251601076160671972732994416957319936103269930527022623648218925488143935110844251225047563580088321934999375199452674027323497367444402583002438962213365698244646117014116845540078644541217182399940129128828453592879062817934295335170672864051048717564546256022472211296171660385342350517951400293465445513501988414479896000090202501586294554357485880191500563890207438238981473787363003382995841332788596021185460171290012038679193568781575511578171689351402060100859676102435943835030370554515693438831646794534429870857227466631276307043320480866101345384730413526488738640216265582632435143252680188821464136337064904271467807246021970845400959408042597221346695028024909571962616777778512683059660128064819700676629902057635873582046394903690456619478746667818600881226210502887684517293786488399016396476560155224226114152407978220668733840181856087569783522680628988588120004032727623938833703562503568405062438836956633302195092659846810489999146211573780311357993162409196632938724607150909074613719379366176367560621603140087767795793290917965209112505433320036988060980982401094987193605692013796815208228449841439522190679702697860487259493411062141138746530465827483065662432893964070795019131198868116809596572895537134725330321774956530228506883667275973857027808897056566810485389428116852904823754960836551066511961210569192581934384984905504323833433525692376445461072523400600247271356397631649827282833703629074874832373854275086058062319423775135251560283851650290142085485085811075659835832719054506937386202447014460807672911394314629163912596694427627667709305207609782460613053357102343828799478710562463951255083264331029895348237092385004402879774521075067031756476467917281267800664259524208965521621955408238890307828221907019403466011977199521241551289548047402214727402663559456915221271775369434252783493995796160174440909194092560580847902453766448872838271461722209476282174576253610501242607380557687745664766061809971139732048868960893002299754933209469719836022191230086679664098394288522636615301840550524396678232001599691135538891326662082351512196421575472232122899124632265329312748424010142069806366388446782476446219361573557180547539233380929835689483293301617166644849404077368750064153317899327326980369061280566848503767654980577592599179874254898470614125036993911536957641669561511070242443093385962212128017375271711092268164224944015744570643846578270254026634614407961545723194814870705314334292123925994743533205924450932745770689337914602436523884298031252838908909405955199967085432261216582190078360597840293298549112151406517460096003391274823642333774756314547511570878392904468566417740060694565773181072334127608494357489796942076012305222583509580267661589964576576751827991371395444625928459436030193008283614065846904895649667308383379527850071137312581287152580983753527018627734984664724700179011105052234418007712722275163731263280187253983653145013089723594381106526001189696216961844558500534311321024023967121441695849469130176705914079815409622479756855233583784105292242142847017878801333374511534932576563937184381411716581310515979962996475753836530374148548768512208300605435182210684154590879817134661347310706945275175072551360092506434612314204271396976541195743559313705428132108448723030371688460003709948699975575211570563479439917893475350590433563273118414434818337776328019390699400179338258561388928367227335405607263110390336458522631522663936297332394128117776477242006806623078694782203449392118741352089741192328951504899363501851346358783240460990848228727040478660934006764268117450590079272796648398158815952204093944791735838084548231657575876906158264026516774258415889655631999292313317227055256431913806986219192577798015420409242679257663240727009468001446827388680969213565629145196096389818676582325173702743204064385100511401293719235208416982708421395876883195530925295624034438700180731385328837239874681235441462236447837648297891819409656489233403631492742485577653488405256547428240316362909028896765011013126542944264136860429456309808535087639725932352334825645578831842503596541825688052558434404562486749509240436446182289695761315044377270253002256911498819565399656843052405282531397282000299823004738864272093833387711730037406189561005759206199907438517337010999774576830384552193980482188434074943735156520532651301748138655247153201888431606433564189753874158234525648399552051454094524308541773668504448968648325621390570030875097238479309133692005556110328235007130389422322131206304831923563137549191225561076478760462936604451063236098438353414675443177399491538457770753020625256399724747167073319149306187676287721144590895327746348791492667785157012310007913592905328391910011773775516475586323134794196293570754113405416299791314921786721356239116547862498511937123327160757170553990359086478776054643398606908728508143575934793525953271045506284629219992988474952509011951346738256965214183892997546679623744341949414477742140880803717934073891503668623375848989233065610406084179838468931864752078355888016467127057849293095834842092263123147658387528103978814371964281905101934377228387412714704806060141891459475059976350591642489620479355606616187870704947280686198740688686578937955498769160252106744266734203493780419765132151124376581874704324660628021547063703165223922348331621627163139151043657314434087635086159682272075359140575308993133691118005387366365829818076722236888033304402344181334737185925671455229766048411763358450059689052050954749329420664047119337378689051889880793612612717402545340092957236161623114103274645581534613612533214699033047764574457838774884924171636705971945790950465427293756086626358667248092781018189627817690167438274939459944882022494027518860456785767426412200490790657552942317842150967578456955362583648511389624942262853831028189234583833399309434187956733655119499997768484415778643987046903877433641874389461042675110632764989870496997781360481280469732759350837117934858464050974537185782565989182567813534989163659820950712404433838350951499446084809696956116406265500788580211447746788848275486745849927229260809727443415402069707485274229142489545544076513474319166736311482378636820818310666946629652541594967906785810205159727164430887811066595879734456369363686655451426727451238114618798471406931678372083670609864266634681727813394227270978697887881511901483840986219920880577188093294938232033641613867862701003362248320296787197067164419064553968529348601849776929606625553853163143553098642301399932536680184812908529057688352115396211470630650360099315317964796642092776529232486837361580728252370473037805825875531734029518444316603127868066273534651791367933714836307948398804593929308555542214626328471949938115338176437236328956408827597141241619063540675188105676507668660460749204753811093355477091928371543772214798327071257220493798903855468876537687573217966482950504818650965647859178319058098523524950124550609598257791335991405359148753828946005945229838793768925680518844996020011111896218885782147174723853305965100913929793837391958488231315953221706639611154025665303713508155196932691087131248772301092837092182987726210372065191174883353868518155376730036982065295474692543137798403843601791921212768179019285309201101603526152181466933131438180457996837818859251405903549386919083195290647304298453116752232340955585045339210742337994250713319536555456849257843830565200282670753786871117782523233333166410908880834929520513764207876558711452511932362364885843063124148468893843267009215569723123063074373013339655879683348759978529760201525908299361234620015233311548051921670521744841118674042048866478051750830150736773354262803148641209154427319223479361381374479372745520101940995954246549911433864411952298238192976369783050060345234882034659852202307067204029619247951685317198095581062134034932789860880678842610895632511664921255634831524206233113462518453825682521583664396955836349346902852718596474629445517368845524238058550023134325853580803972527949691214146419163296749217153907004987865691760491991170434294200525013626762153121977865043932478585796764690353019144117423077254550068102529429461313438431850924256050794816171095975415783873630129144801631243726513598039696358945948678177466860049455803038978266979460389269341397817616410791522758066345600225336232704795898184033116016427711096087484186377658787641606286168010121721627781362630687352121829753706051993236108391940368154907950175009363198404453590463387338380425722226877430787727346530086701320495860946180066898677143634842251687531645504804059172641240179547059074657784851135502784614204939104186516881079848400123453259251452922968982552719160436557137399188014535411544376556677522578616632349481741338244450788096643536810041894546027028892591056167486167048598378173282674865309803708979558389786179841530082508787724538448619884333715127845621389361753798788978294632369513098378471341584473805540776909789634614623080031899885664945311012851710197694506829776789286822104606722586943797216857078212551014210535817685490215496063736643769946019425846424430204935465786976837818713223652671483606047490721659714590505870330122805603917873820691796038128082737318009944311582382724948566916994521137895039851672741477048362007642943551118958655217970392048280467415460166958364878667476506418883676083733773334260260136167759194310693577047828367539078554268751129310093080289626755837963039776841691065789569530777284857912691043167491779292538082359928518122397294014039160378377637127784660700647561999397513420427103647760288311149273422097007244229522952499699077211253319303233824754738915330473502816707921417420940556206889459820924223962458975760959145475612497844598165769093319102756301661522124263888065016385787927741578667424002697615988918191184466860792051140491542955804954763273347542975859868014283619788189890185670468736614591144579638707481409610303628161264031632625247848451657442122871216321080377521319053585477986268358047524301708110580505732096974292767210874997206990257798962469605117943287117163363239492863330290749263669958950690912268818962715635468979601841873737124954720332315397361646736175988847482832648872270166099201643663591022693589991815223407279908686748976596659040987878570755353417448647571139444702308988827988960249184112061919836185974848064529768162349609073459961280976822170971429918479256747908786933486873330001097565882382916909830276885116148865208339604296215533332057701522422136469066351711974041728437471175388157529736946119771829710317041110236417345786157932575206664712811970870837179361759762596712278582831597664914467768038321777797947986907642662814544943103389980994714420750998816903997509521611333821648429835826646935854134741831180928164115241872687734933955338439157031041195369743085519417247576854632326782034619687897948631541902504550316011687846679481353481347733818925125151936460191600384698845497790225118024226352261512861294425233469439086194850335460668939691441463590083141170115623609279101196242649761686309487781129715363266081478336026772507143327061852979759422860149940818459696103734560863681403185988636869924769190556866936021258395648770386073564467971833486591883914021790474026588965008195868103262974851686700065814754205943578181203842819053089935014448040415569455605016228650367103867636036051199777274348382089592321517653018175137191205563298858657322909379192764722882227597346463431728855112557305038510740060652342357613038737092315171045382279535255287716893635929327364731219744330482748214349080676807794085399855107695983141861770421523261842005487591354567291801721786283552822445373467554399817734285681677682543055463236006759630062186789023442531977019084094157384364684111909915990196051892545509311368038038982677476923281122782206208534111838344405092690336841950070447722022377106924857770611443627655725293818206000693177162406846844556060095886128735286125815080430757129219792890284964156813262523599552205240891982947525344353876982282298479106739279740071188028466945096833168179998193010874067586355997963340592348699084405944343146105679553828027735099059867147485220031760093507977906154520291929041005851327591285880451759542628236746915401623956547295197172276490356256541619278912698656621289890030868478979996384758339655370987398813995165037864853749373946734768221549419019196347700693605167062178764734637145240412427534350914434258958697687706794037589026705935752503951353302085963286665569791238085742762371049476168629958710232502570254235650913577122788845359227464615267204678126346744232790529324498933675980579598569612849717771193373681111375991414241011366557455884733965507052030573588060409863064219261521006473721763666622656786413444450191047740192732616889022542998583228002704548762933756206903888179134552907154988248654240103848561559786248082261446357478796268167754520621314520503678132281441002263074783791560294459506112252597250082516977468862354481194368500678234966377747765448942496625494476879317908634357965916217989557487338778462945666697689665328774755278185329220992897969264221553940753530551974541485654212933350338945522056773626354396922858009984214781862537059738450167284633024075334716969262564685466189710997340768233486952176427857402848704503357967512040459639271948941520395510967749197678416850381585449054880305812453962239542110348657797362898724021784568029917276508760205722269899012674423985363685041496694244947109437392329655525372338036237192694798384651060825647860418477393545207890085063332447178994392484784973041306323099461729700861614138620221036316906018276207927137482596961996465342255121066157306586907625953300965752069388597925077859125841884666344716444059148143169212729797252831954598878995985623468118454892467286216037281357475275735704255425048576060251098993643431675830220714097779086393846752614518288088961553921617642207944281693055748874268388335171785331544851989429434924782416784493833235584670666686999283423261739276603047879646487013335605155955052852941728396312292378822809481896333860234678070334774065395295510071120931176502656198142553682651380292738035846341549479872468638632111694598691778791816228367180795067991980417773461272701492982392954772202743599339385145512925950001898226865307350817627352680872586624272646448069269891306105320467507104742036654813456190622996482320157009754068586402771311444729999230063039431840519890681947204115557394245434743152242644071826871688644067078976090960006167014312891103492825014382500704833448985881738134993607873222287729553189616923110200412610415366137927319011280234859083298650035431617691606037110125341664461183300396345669935174403705187525071714632754757700450901481041499033774785520224415731419330803615284675907051689955190151038556455722420651257334975096906981053876349422642487255175390230018360850959407096048839852049415319781228801115905871409761930597405453919874647276767462649271867754651609083209747078712197608227268607893436111183408162597462355064951656778539622603715871138056808902337651993802758860703493221320944374778756662956855548301848063202431129492390736896564291264206391506599670537924209483747295698158894344490800130404459309203813290109752282488126066980509690475674726318584417688173607765370813054164619430745527332138930482274090019072612604057333516324895498695676566646230580008026857392448578248911677296615257826215758568818160731428483194203048237496563696134784993791307985521812886523947712747044131229900670643827163148181731714668811811018540716177670190463665197053728515554727043583312964167169498976720384770766404227558372582024558112279449495181749045365471917496451802101867302677027075909125927579506444392677590515800614244928244459901858222372174180306027878072974454742726479078816827776632903037231858448573213541231460974275247045935789788443695729040173848489847990663661560799232744044163028054921363504818111390960302091055898642726102267589652556889669525265827085153920194096564646984510202083468134225739186283602585307834041309953606643664346236548477638336798693580570309760008693493514115010508086151277292006019924013305949075744593667316739830963275241711787888860016248867272795028504949977127043708084534910880635146989633877742509369985667442827895726303604238085802154690444226320979108390279586987024739607448727143201955835156477872638596714336762969145484832680746166526208243646068540055921579294642891590933791227469393566125635371847447499572099518025985936729151039675398687148110089113035679777519053893096678029010465491862816985775715549124371623386569727591474872547348429724949094216551173069438126485683396098475574808915984913487694751581952558215405894637321896748610985868546202556820646315304651563081150852319498855518041316502320003653026022544909573063880921711532166382347042846203602108522728198348253833466827674185220079383473391220047063132953318195416098838492981413353401745728168517027913181441450912076817003453477655223423994837009519274973045141136031931168222392265808348667244587253046067872835768684289328151634772506851375128112185834504956001652338155910199555384198913863929003338147577417638352368449210503605053896381908245764755702682106068473761332810383503038324868388302683249726544157304201994300585088768127100485191740420174818661925137365060187160326301327304201119374370360749621272707621827043842053960458865483568323621434346514779984629093476440715784043773774276108411467671925556006320069796892612835540413768402155329739661831091405623141200848251208613432870539621979345601338797316015822548263423240715383224734946195561994712764431371605811124856443032656058672514873851647966016132176128851782358044686534710678810721000970800217696620916297948310590697190499209728249156418356893052762560851664864718255101945517628349586168813700521731226017275312999690564191218449463552123774025236021858824679984094030513347685165980422082138647658485112950612716171874721813888018048223402619835291925279284347377467026220917047825324732553047157157218799493815863162899320403249500964675749978384069516762673964678080715710495398475753338504627510557906142177606232692583719326548674545888221613691506742654890725714152599111970952205996666009270088102547940384026683732604763775382953606500772001870897938411385240256665953362987561480898999668498717380253686904545618342991578101213971954016943706263105934786293947209524542074125924537716248745329053154555311354400051938676670497575255531746686878861517471251651862311884339781574980412940508864855273119527091542359051036339057675185772613953837960418792590117042706348103554861983906972271113442816849362224303015809056453062400476157412081460497123590512870478982574815599064778600856761426202857277513182322996189119571658985615575045606847626119351821997354937421649159405888863877718357609184511844046162379898967340722321633272188312087735068526708314626604093847727762463439183008397075640896241501038267510247668284256114724414894344164820181082235295639809031878531177659517065249923049390024486540657400520154689623959269581784698719408805047118338958840112091061718158040593663808323088035478138815887072813425486441986461240809822602096029575991013491492218439865395233414861618383665217411642138548445668484451362651378865177977063430416332068109590115857963673376155710810637682353488957356191796871521804574524988148204264497787090126653332707280234569871098862989736437367640927199843062151269249382885170546353186843381966591105485403405345030623533122713157019758866814029878848965705446885359518423676355700314341468836377898733007100666135158877460700074448492772554795311295779040974466162218925142647833373023405447273150249853083212565923314182706085399719925395467104465523433258684711185152315816202361579969065710900279706785386751290381051986207569154914371107895247233085294611558763161627282690429643460893374409494207877114385526833070616979889071789805878266976192815314562299546961667779333912529481010414344791860985026934715535672531847253278043672345856229161575357862792531379294197239918546715171232001163851944556035710788386798398018863175995126795080610730010699323823653135916572688431075615703835937452845202006219260912383730109707962919904603849697475569187642359426960524306588104529927020402991170135614549381538293788978531585540459079428756160048229609620842110037616944569822665808220393769932254011761788075351131313312579978348913383915996901461795475310526139378688794700593280141486098677736115311254566905048129329321459903904858881095470904683489828140799682663952849184467158201140051721223626253168707362635331195659345490132676981555069109248725345523068166565800230612413981292274320724955011864484117492380242459856950956156655804460125245221173316236446591547903791112576342888917936520516418365141410787158695592693546227739049089434825894291140928710462059267940358794033427595786890626983562381689466213140289186249951833541961469079393572541817738343986238564743220285240497340738730263250461108927310260931797615617083412903116687100667090697625339419008330585007201052829761538620316543054430769351485742503303705980934767563731728253609894176920330752373853192556764248960990305508398632231013551155985691697592185985424060081868145364076343989609741908750794582050632479105766664896316244037147026316939024505605088020393510356837224200478148574542345849034128975371071392981132811410959600123069407863341555450581186535348308536116635332816980790857561133173844131161059812889424075126801361235194844916215721886379664707847392169433534992859789613682288787808735423404626953357427834363136438868551785881274771318571245733813547075142411182453772973502877449386562355330433896514044805051482625549290993705450776788841213586914607377867836012823727675516783246120128670078790628811551070892021693284202962061377847888767140266726803346213182533567179459417796741440540765563799537480389999879811375181247108371809918092185657191992329663808979208033362788981461163514306435165132454718415167077536204330896349663754410110913373399459822195962348600663145219244151109473389127187646605765766485235168570152724346430895873108384539068844378826509257289062534413278284730833606454830450627933877503216665720452025405526644476882735623883189925904639269094493829462044964068571170439696413103531800489896017251030946116262453916106683216519346851605117994484005608536693818507988315625267541611585389586175246419184075925201998045933622293861313136472267266522136009275472300475671765854729244197402802159480805350846259695251747484424765513165718423136743195893796099046368957160977850021781317731716108507052867703256440128048345440334813976437519217049305821288587753874437378673868417435853337977064508092309781642159258330109886585228411978774478290310976944412132608214671800974987376522986556481888382608718644750987024729952612331719042981232212443801371505578458301575194940488321608358367443681463480425929857522258214727102589372771621921640434946420699895085776390963719533500553242578709375927819419706772521140693901592876173358774376948072469933120727089151538093947819860982771971403831934075840635189769357177121970136947480800883971976648604082611843911849571405374002975551060769150774764750776793603125262680177421888553494762209400231023500858493870127679358716195748070233713680865197638634710423059232668603683835819248632508128752245364191423687916325453762031209826237728062738836606593512883460144676515202403480762321236149322369765832625858701242432716728681509066129152773193222878773405925525358622613685053880063199941101584541664598097372027642125015443715644911146997794503219306303804866238558046528685432654837435406777364667731172499825143698440423600889640804827395846313818184870892232326395469987929196633673745833184606166889758711758922281468732172937779635046013705464635816987880257870968684325207462259322050261178971360651452686777261626758368233240171120243080537876916523652330611915541261229061943942621979477010628145293673707917512703200474444955610200666110272682669066909457832806282679313340053725911572757114434529474293173227933583012320377271594851057357299523224256316688091258705660144033343031044504779138131438793274353502148057901819786775962431267415665677536266056687851816300384332418470365134731486417585569402337468297164498535007582452692290711004375972316077482572688622727866267950983519376948440970907967345019510418201275993256561979888767802674912208329297104824010542231134915563387229788806839853764950334975059865519121883421508351835356563148785771229009966579457987556490341320847148959145213177573806027377962294671088811239178684495617457987998804699094350539123531554213719546119056717906270601830488362645234602231660846226034244715074125493073624037675683971713600875810675202602285412468797580579067812382975001174249529641676309267198695875807415458818559413574671361547139095177601969858459971497105768177495312103045037558796545864789798862564177329762646349707843883129494969766832756482886549383123254341026470506444722378973614720263853086584006438925396654399728386292588067874686529413508813449624796092011657269648691629398134858441510861616182809994343616630782065105834261741077641471661362352290760077381023513835999937079169849097650647801321892293991498378259443531294098953687284873087164029362168785791809802731127221017001973457063033030224209129593863778240630708940370956845160830800606834918991232573607156908429610220639197069858940118701065883948443147304742837083606873988894000710543103945810832796796384697118402882849641139521440865326646515315759727544355264060225625517074927413941803270971765229288102347008509313808682673362051076474906873060459054341848644369665181222037348906480611940117439297483822333819422995801396881837955978831795318626430466695752260853446702283294053567032241140820912667217074922870946862597963701515080180695049748665670628763933646477531553305634774973937104471425514115399843903677961688882378049192733558759491030482257473168249041837485181246097607791318624223927988430109008462348946491024083475579057528595931062874732676574881619410192727678605181500766941019747352705364496779072463328527456207059653470401801085076986629598796901019156871713472448784646696457647525758799640658834919640491703555171244464916712001764024348855009969470093153482841317314221053531329271811969437963887422882368110391076395373797335907118943194715641935957540581749733892124783672376018497982733666005373554074742275287714163899715875992635843151658827484370884271763190620992272709850774997470936032403584109472635385213467854193368981764414859125486214669955872643540268356395236377897274064305993722783007145452162328528490349762369284864596595047917153709648960672016619829374910664066599631007068713825439490290051530730915296884802701098658399055907341846715770101028721114310084840067401153897930164544848337173220403160178952966787536486567779023892343279458637273062884669180122712020775918024057814124579548675676144253194148337629451461505340582646587088471027517067269688303229685895317862303256028114202011916070392434645194921138105821007239980724246898566639629228163685130501419939836767012324630397293541137641538460956864444058706136290022463924964408719448443764076391966214749370222256850748391146967866036465873092411473424603646449758624310425902575998237396701967196890375884181913491390825464617816720896972335577885785935913027403324751739591157884712447620725300953353196512880369195483950194265812761946725515260520987071624362507616419116570350182240600921309310917453847367375351901541187044808254268100429998007173989067413925089736984946377761567063254208134823332514680772974418291085716201177318280487216345720013462804421695212527864738820175347665695172508521701716015201194179583960784539995764168476096677325548663409082069577202846944431176736949757392542155953813222003305822821453249978501541424427081466894137865752123125079980288793954708126841633320392649137631151941202763865422957866751373865133477979208057524927397026038735652491509415304081630148554996366145468453157470082399830903305618608345162100349051030923167062971121176799079247097491571277974938658649085037331683349555528329333384982253381263625928894810299157744465815617068725472459956747009920448330805017305704619449031657745219457709529218436725989004189820057837383016396047573380374907378610670396932356651623177261869625623207982499849488943344706724718916271504565976090168303064440461963357878545967796176474714098658394684346796554197856306033841824005997531708134154315617288921240748076187598283846783090373963259014094374097305319034254620445310422645140952061043856300252068689072872726740968394275175190602777538322588707786536342425113247490159765115272538823097435105257651382177366949317372946175627837775520260174408811952593521296797172313632766324055910056027820688025057699335318673621564967807459949508123089227014196881261947513288086250995127789400854888356666299043869055073279829264030450726077000394069035276063184025097316873592156124105391863394878630499716161902977286899708497808129806657385486270586782753229578716576495686984610365512410462416527533261015726637249908103381605340225311247705054019900903762989946697887733105579512764605151550875831633111882335334372456981617253610295617408942099001599412026690308954663269445705614878349496760397146677116430898612366950340798223635442938525471768999813060917998535364044722587220405118137455834353377370926646134422487209887661214043413431091498323120702903409966044704274809886650598002808712655249471745930903817520786272182436559874287892050457496928036639376921302056053108491441968285812474009057309895458586584150174186016372225406727657643341379863579891716414003160139975164962349226025722427247194159096305601303775045477457871291057415521351971145766932075862066308824462644044596503340522549982044587700076440270614932986767466173175116354060831167436940304535223941107295423487625020360405343686958443413548740953600469151048874520453452137018088164845657414655361468768793573098429986577935889846661555985884454414105550066500870779743652024517420379134365546914900756585546526015206312210984333781083988069626274978256868858394049679106446512114455000447424168013986140131243662979542384417126946483658737963224295520607212655904955226911332274725616859039000331673912407859567770298495163662973286610486110697105598618467740794933492425337968636563659633923620968652663033467122048400531659847820812185458305890918679219696553667674900878517577232189943737321612126598379370462912237788863694379963528052495374843032326887995996298870791760850556495662893382584965479864425563551166894069137007499848104168548105019730595315386629004682671163720556290938013643172500679371087272520363459887986710262144059569287584408466820866267785405872424359623740453808988714941943537545127937976657320950343693118782339246087146944534219411404099870195733650430891599995936893176806225696114001752681750553935018119327643375685164218761009738706169786660845976051009194199305218686611003492013435111910888682201699480520936145839162944462738930747628854462021771577426839503750036006326205623790960462812983252888884870574975228225936155100920767609923515721039215121535573406864579479349520679505044802927275391969249669275256557057246094347684380393868248760725813155174727363928621070519145074219592416854961768479935358468802119397512983522754369822647167871455256604241531599222948945988333289931976662009406940649759961100823158092179966032341183386521826381097152569848381296725454630252315690982672848861980652524001560183227733759762720250498573302706559406117844550262303794056420652522255293545369020464715069288744277534724086956465112841038313420902204246807304055219384550649961292479952644226249524274666322558163910471132623971581988645833331110647796768016443608732340656941934932955168594318159062005903262138599349350326679934996489425852215155158165523869938160925021021746349947496836984214068376087143937528124461271571567111932437366301979058961605642722026260954401162523127761774657587628179800380210535507724666601603758973787856416375680944898047389366679227929852391361398865472011302906405867806037805947241433251948613483320605367120430398377781449406956126028622951222618043997640630170574865249502235510261507417888350229815739186026075400731834100153967014232163875583068223649996554516335886055172351906171731971377514781434593840803396412104144447109094471683647273116443581194273998716896840936832574923896508447907385306851687316028348511587243186609489146013658869613834176922217306975264888800559962023200136825845750137800411927027209912412570153458846080572279712810601439075757304609575782141466497344404278855509260587875950325931264671829206653322528110035492557513773276058334396600233419419224603297953122079128652131328264908507476062872643241627136996016338648347587229888514450113068397673563228225382971734527656350635698064840341740118080975134810456763306124314740576797943863734500318557448456650615056467978953719671671430115914922808885021913010882602929673222357626534681471938550449095007154566330409713354774779058729232676730774539411991729858763660490646863949415587997523131152898261109176184192706901001060489260768509740905173985387903784268821363791186250503925774359095623713619788781076767304216388970198856758809601098113653427257331448582140121239544169353895282243235115509420637589251662352843739459760596752916364363756220940868232581801831051625208152510593781447459193578274763406592288916942252656662619896036541025498074066119331438282476860863807051666564460771582746802723032131206493923830299758763458116081812287168806513362795173993188174291432744444864720235009354446386488399655505814061343191478884985558695218389941853368555388855418583512127769459991788051380053690337609423715462207362179037667963205353139584905865814604180384592757904620762542429427701061027582183390790650550251043160171780162655740377940785854316640576648677883094496564841221245155657807666525744612446766092083723294514664157652147536478199705762247308272823666876930286742736351654161904669406553374135705543776007403607561586460619025018326457800113285334120192569183215346975102713613014553173084952383075696999404635811644405629300553162784601209648771087855333126604407298336126370934016993324442629043317471026401700694452108843124399995290138066061005965258371977936172146234422133275947161559714557893041827276754619891443837935385076567595666858299663256813996765198174894082856332387209958462301716426771063259717048587366936391091365292231760432454720994667222829062995097007371415086921161169905079316103457793506708334780732896097189496549786165635725271803680072602032983722628600872507079519939596659412146633798952841264305800312146952881692795315959807190034883290665369306893409716377958376470751393415075150482934489036244091743419920728969401187853208605065185889575610268159010258542126312542238583500509883112663559309415843324270344696847421620345631352863527021281272852865375363865735486317166071545515283698162701450063049168143877823220156715459219822658331789297792615546863852506840851638397339328276100660073752388978774680710270083704137310650839704194246874504790487865833903466287001349652092073812389466445749922724356288573816584296315110663648322422942211064318843185294784935867717918254567132357211272636547979324831965310376780573443541525674887402828725843899351537411375963877011136198017706812454318859437529350630393254769263424705415808514890516971019277065268749492251212380653597202678518415012477043762429548216754626078627152937305572188892242080095603235764933884732416312895190523993701470458337574294129765016575031983178505672981351259725654611850046709056613427848206734840243131730331443869770222243140395943711460748913632942766140596992886823789587690318315781292330855620265370637021941618041338156075922908204135748929545083509334094677280228455933897939797135217542922071946762888330023667389117271865319589955265828166107841179163128810218142179763283183923004724055584062622623474624896046709874784836621278635919406962126236428754046406705064756767230612573060611078866255576711658994826819154463305674097721752831748317847304515597067372732174162902226011310750741249274294640505753224167839491520825677062319003402774803457357392685139894283587511106291231547348481374105804567293711929474549074658598586054485638844030305863597849888698240605755834950261550122159624171672065302694512444482936080773562953965690424624176264199219071172944537893631048667515826083209814012535278960056590474143952724546389738383160056360818646774830991653960086062341517891677324848137000418941207857325177270622463577122461663857501084657225720265341119847610704610382648000937139349478125522653079761993921328880417435546372302351389721470717670276868840866635082911328212262564116246274350854070099261414248354053243433819314814731619400526570903618446512811491400273152505072708599532419937273161474364081556837857043971651704878203312043824884343862188487631178849415417047708769565429030932649753823361783923670670306050675600147396373172027690976159448314820373287253186400661690511962095456150719483984995753527512091433926314270297598302954296459067749424025180449908296628837303182333726479167176023209193426973048919388134515634859465154735039391522864894163713338824166153240014325035359229363049274410366950225849802927361743699476217708247660868711951916758000711595335944583837871301949903846769823201335769907200705065938095870868236259400069286336720133609412410940298909015542218964513146025902549093851968888600771336248103661045617163951860465705987065947871154370715674160666371550179173968106949794348633070231398404038300718560318198867102088036777953916302151227735393654289535099858618132144258924668208784225088977515114816706334640909145565871978431491042877718687356358026119268219541646687459729418520091955125860900435429290996029092487361519461709213225745090683445419576325568634942382552310661728139861758080581677312936552797877471185461185082879127042679843543210656927440800017032809841995534572858271130207255110668028317097428372451591908067769517796532955382267140327935927673752260370177259899492643892047517681921486139017680498067263055701175231526004530622809269129944528988319639936230367826779647659122863343575048651463703085064674952828288558851928264045671082287863342327919049390824141792867206910089241138789828358281965911971059802029424798907291114633685375861333768876711092739288118603841671394981404253127535115834897850376604491934829158462913328831620317045165289249845425345875580062794433442274264228592251023248794760199558561697405622851012218348007356907980593318059354254459758662466223352722277044113590830996570859525206784937374766991542677439619570908221454235815796505384120742557208332419757480783438258882774886456506090049499152400778251672438423332334110929214938261776772223854029792185747723260562516093696485194196451408462115811730194930433419406373705126017967213028677955101849675286556152459477587755295054822155077796991522144853302662699338904983696609055488755543703569968069185184020479781277959493313175861832040459289355835581561703241391932077183425868024950541305820722954630130729036281056376867309586112560664435297242069601085555388093747769998315946661226136550845025654185495800911143231586818972392806785114160711181871893808640881946491927295546822893156544333845452906706032990856901986536572284412520952063747626083698478336107657777404723345754969559421201575940538281745249963457942136444179651590998464503510655040742185956417879480121558518380021089126767497323047848795056701240966393607274647045963945138314630938788802932190656977097733950395159634122701602895154765144123598011989561995802370522272785685763491708558798509954925228553440543318917544769640809514029388349917756526712929913120943150347527823078259861760677143508269759083735563338129479350481408080024644381527342134588830662197371760961170503723255629946706539113363758523345159806638846000268493958227935018486895078582993258326644922893841376803008016186493390712965039811764137336436190666553483108112048603915195631478445329813593587119957979824352219319599588097846552345478985138733854286193026319778874213384034232882604397215708216113506241676167047331441953275669608574306123683254157458320682399749444563536541848244727861816613234411661691617593328163197847254153157523809608222502316349697246010385089405147614813383726999376648779875104339630151125353980362973330865696392412222200059954940228482378870448802866496110942328195693531435825152153297430518313699647734856477565540544821473881385560563411794388851587204555289649768283002424693276495317387853536770166853191501573987496321772184265209874101743346971189745788154534075950163909761005603435672254856521906942763639477038784898471544364161713961253878029456420702022754090002346228688765262401776987354041953621480066947229277143929683511202607339904327553840775277970011938094394753120275729843420283046363702981203012042903543078444123548020386759835680184379218680286451586432965181100533202804351482100303547683824586157090562855064448120604668372418649305587397145790103075471856261940237670245445320003269778126251490153844268224182403624050403432210785121568932408339234909706616964065961982744331972756617004318430927890618656194120844441363149632026615202285245649153904853019026539033474774172700706838648174467230763597232061605736037493666861522059682759580512603170872586314182495308072575250178561744381659011950801317592848085922524967720273707725908704524886158524840294895488126010865156319884934056011420516320441465720319872171528371347259116913862292501252206381031257492407755254123674113154565213076905326161004658378128883377833341976906707480821743404012760465210571423771967701779326329438539488431824945248106735050321355355962443897998416785307616668623390433614507569584948766310773025182750567041216853938570825192442109742382062299854110428904618723893767346919972457567246914437536870868134912279026427176167217276564636533925451226592442513759058932365940527888165834307699397574054248328387182238558938801762972667167427713134204562944727053128427893209585121689693706631110586411380208562517586463364218496046502945026828121895934338535063408036415380764060164806247759265316744949567904548228163024054560250906052299671580077934195906482663398612321294600076368169393850927073122738167415549643981739842262985469987718932556152139067731363683821031203558026318881830318420533121396524802397839100853792294217983090839547807013670972729465893353900378999456166346414721963074500176439187256127612430207694430146408252439448714075453731696337422682219026684003506355654555168751751100516094625703743596683286639130944705782723298037951767323729617369381878118795794978800511536722247806766849740609022073471958922966664866373343240557791755722954945073294917966615527184364558255044370532484056710796657442059410697554866345200660803698120289342551026470338441455621855614876670356277683495468007182474402653557141470422951174902761697292144276817493078401338380393953560939051134887465617051073472302738956290872628175619233740031961346129541732436324299596939468294448704161848880029713585444463286763730313991882241068702631727818477609538562259829720288752390363986678332268877451474909193577154933985858162438031004799922797679087531150433652967179950766617858160833275026860946018409079198878982923247592098155841830563130961790643273407716877566912166057117061640331463982970606670207604645292049130858348649376674969442584481988971548576421988823688718447118474066172599534952480906220326617504713535519590044134302617834358727125399820897711834052308169299091516918681042557167400625335569421202470627993642645768027859825258175907194801783205347332659179521843249848201278937587881555576033854568421894452515742666320525508268890863758793518435284780082732292840341812046178097595849744964704975324326385865333407362166729151981485923032972656889345660795927146936717750093208703987611166642053485819927661416833608274057323883708121853972111667609608562860995434463909364462823530097526759329998581196874246433882300352494460184471037817970945845218717587681511484304591288857644717803747744112933013151513681781527980325762136426683279611707544837523325997721764595160909978787249742194971134947176932592650737809878003403861671989481844002162014462342301595146901307766424688692170355776878763655497790444130601686408588522420963402550634040402160050625682431813270019126797045006996347281965863687289310528821035975986128772175638259206512522977742490207154535525165796505343287727231543287219432309325192602292941420826768392086045761532087142534811810922448280894856118235245336956489216034804659465564376385565777630584149299615586424640067445629829796803420072561146001923510867226526725244344542324135967973845250561576599639226277433015736669764872155238025528862231005662690738201317034399396637086642012334998395379783843266447341707949621285682810057001824310594047535755472247489324271161671783215360302114374187546133632480424584353868229655835001267186912510542370416324390194123893241014518827421909296835909846206992528693918364082617273164068833021651104953303970598990068453128004935708337767437152191406253936978049920380131425417130130249749342907623793379029657413861575435752142058351095838937467141030769002705926744382148440394553501611917735099949640571841394376992422097161114988870789732687511201336536263557151921839571320638408853938257752863643270879682457674568695435122121867015787548668022360063656718142711163550416305282719697637474885230453742439962137196487114582080551455908769745995824020256685203416007406558118640400102952232839106233591441712870297276024172692553387022552596494201991076157872026207515748740045172722904612062153953812776045234792402544495683550632486698363904298694084645856950146716129023698107617503293178086672717443462291940590649138237424609257188154330394893788041978315175501368213493076244931143061665621452838657906901649410866783345209873562002976930688163864683242241173944018074659208305175728512156212893034212481611111952122676256706582174192946274187777989327404570658454020427296561914847004740522965544922109817329542755850199146674452964753322200782857764562162379842125265993638660259219503998622398720402366908726555478617351840604591601342217826344363975785782466197471082339904227097793173013948738723824504227923717449882730441259618055505398059225851600098671504545982279738326543471742033607138173862983273198710405484726769797040255104490729183167189426427995760048611203793771933800761952272381757183977830019274817506518137538258835207248243907458291097226352516657291024265086817915187868745173539272178042593416120452269681150388884516710139326223261353582719849548355705988251694980997053979198844467602466076866292183459260012073329173784739715411934049513942862765355275162621209662220103158845996040609142383702404486801416153385121019337852308855566882765329811251448055844923726685828258842906489181924394978091019151941263004119247655620382279655347513957949837076192283440412641357064913130660337997447082763586645446017147098673678563310377666366461863584111349130124787587693736194108757543760927230818589159921971545461392241681930132718270988478095529847632502210268364646293738028006805251631279939158419013549072793205057311140365390701435185669809743346526650828552128169032164919074218787269765667773703826379713449729392270456315048717067807201372382920730770867622693903109545299990180133970130000173358442831914738779112874318638151672555124641518757183386150518535363266928787204988902482064956118324075975257867664938932386721154440421485773734159839193234493223323006477612007538499782435556820826317592204987231407112262632365476527665406290550616024819043264716632406423191323014985514292199141169005632037023316164108943741200244782729915300648920476216083311173835320156008814355012245183604971155820378519095761715698107188499990680707529727187888414702183772629822481050884171386762520688474538912736348025720368986376607918315693432803532025675270765617334342817798483972920810406745873621464052750207605919389217170348370930489321088389399883135283049446467855022743767311353161068744564777390365785828940907269322485565782299127975696525446488340105323304073848246316028943376647997461354513733917607433423958124698194840508867850356096102585223860050871980179678417464474051510769009038743538360979312715976257836421915719645140056376401238874922279202013936028356418066408180830431057006618251023896667189945964579877068930918975169211376321967912495202592364310608222000050128424789231789012717351828836655385801017691345119375425367298394323830131516919947897576124868126512564293493123764362544203105523292292738672237782809941343609775247176417225521548349948348657994435633404309021042233640988986799337012229518221269554841985593484577514317062123149806216313919615746482205894132815174152839014656156688077067394587977698830335265852235768489168903102812260896543184978457692718141290354692847247513405594773993022067159323253687984382918242389076354864953708228461073750790802360670907295123249190846492109794101300033857430060137824261746897237184453355091772156540431826876281629691051204749177015179028821653145997822444704041555451985017389163866494808651685659835886560753270633446787487317526448686519264678488303998552810456227635310090256400246761748288727756278118091452084048331298194620543578813667801284467600746844707460515984964526078107931495741351586417222150469322473810174815272140726845158661620525553003884036748133511179780494581610259460503536778212625155544677893360309362446801316829692908345572354771816724845028806610517611098357902683082770785981540288572035124455816447883956157583178444451439709695504993112658646691594995781901510624385285769699923624423984323092952790052697834251311683161344910938359559580742852175656217692433007846320335195759866583650113940245742280843254754335923003589626392369100260442294792825067028212490407275495198551021192844577475261428745018977237439316543769892186905266912429396370764664038960418490554255289199026656843604758511689602737283340581481349602940315605346261512616093149681979387107729344495162446648242856445945164116572373377855879735201808516332789365903740560920496881675538257986923564523525322966002751165354283070333872690145626471831476041389714471521547392767131235421792253202312191995584273820913873721580234825344001558808122979319995704828034635345387414849560312272954251175040074857180895385312145263565484453491488444908944176129393271355231052944300386750948189160436907116476988469009091010840704060134128285258874351415306219126360805757989766781832078265575271039769376619134276650342018256721002438091139589185404430787281376997781449045789914202823152431806446971316882617747726683457341621037713858617002895045351782813354555367695767218077099299244251604636575193469575115197004784982097006433241790375013033175650446504621945099318234216342710135739315101770639890754437578322931763865059711517281005146487049825666994872272100608707497079540838276686013976396546272369137626956602686750248294375438377400624387616184071629914713785346831769024597038569002054331840856479191363339043530454749986817638352004924720878195225074065270991018343939330163528094577933602125796911329438898252166469295449910024929584884819388099590718087810976684706292780439149144453285987237192401045313455948364106232354950784817830830521223468899584121366502180206795840444320206804554871072848718963309889034641998506959839912897907593479569422753611860573292439112266881203793090745132483212800276859384283708755673662858550592365944169028108482032509240806067828297188012521277993782818830750216893922279196580855574149014822892160646311871419064128704867822283722650918819261307394657906760626578805307000815631210036027289982974679253834672261988228040827012371398396170509001033289218128777710584875132208464619074507176628509583287439634747274106753572295727432852402801431149787118839018004338467589561331332051207512935869678754929434122593072738718160340270502726272718426757836078535722319730610531262410631853493593962139122709046255373781400597994264277064446546288448983232306024957147505204598162639785974577472952627998802382976209751624257538691862883581978045627151613412654159342700764416213328604498562806358388492322805317327932365414252020954062923115315015956188127684445603907123077112870147719186633671312091450430748847690978248023372466541967755849003517904972045288001561431552651705774478401218058354080879368537545344742032060166374399910516733223532225811684690817568939401536312390511225445315952748857072572207149752409530857897163012119990452501707944567287201509640118715213739608707039618791054374682957623133282553585551512044023196399549444265386168758336879173986412884503532268010057287427288743669237418785625345943346198933140366379774949327491054121156223931200012821197301642964614664397977171537731655556277905034327383139314766214101988392451605039942802458141805374336973905748321807910905924702839945369509163378496973447908237538038124339523058273597677501041216764614265620887382950033781444711773821987673253791025946778073048223783176949451121706018748238692943679378027146150391158392324430794028874064775958377750094012228712828530259124672373732938130412963397197998596043653178312780459584343348905088103461842625802878395200463043201501514441242933082936590052701236073408680791110662757682869401741232664802917268582407982859442935465904811791142691879827411289324817510663677644686475764450101697735377671159153730449177604279208219815490345896380410236686579789669859514338881557533189946532026144689451849844462677948936892072036215395377470847721314670549907401045787086743019470731476966606268476295016209641466904403597726641071327346134484704545625385141199656668107178180102371355982797898218072571445169632050176295517816824633111979609708472049507962067872623186443428542591446298696321394614637746917201677631056397699519385491187632882972246247023863095325227737612808559599356822627500697737491570255201035001549714526071191758166824157370602719191690112361605867182601722685689694296444379856194179004569982648124024289893019179593739164606031738274890315816222503515688950615277891660841958284479897387054015847759689534435250328211098664973369949453189120949958139714201554522686686419700229108852417558637995410332385328312694258151704349338262724706823914195123402859747080664880431839231778928245873124799695616244721625798357720679041972442898252060040460562919382771205650056170795414358349552453372569213524726354074803272899753290322763657176752003583289394822756299251189001648610577805892373710670925496667617657866790346682142226750836738227723076792254826668907770019165227668885572092068177650044921675475958783214678840053123713118762248344051070241533941949767482115501691608945635416906114557810603092554385736844182047313121990461391135994777259559917866349509073826439776936733607613579704472308668129971597446504821956730824787272011217322193151688993297876850706643755984530438146658767942540530362255717961949950964963829140789716716047364024860382768996924260034883626259024948362742611294085687522164201018614535408970335744560563405092170940101484010194494290208902295971800809694185976949535861411123981452056787566880800340679914879224574610477801073044244392727760063284425150617646243617608551244377664372229420236701315855872257814764522007402463094032808528867098851932678147343910206819228128965357495770413916045478688135206930853935363114071182894885199510044951921722116659896159214541404131620163489159449015633065958423541403298028627913378986664968161677286886073995823978265054107223689293427920575103275103959756998983193010334202919260022101057380370866720465135806524888518120758859093774550295070881287336467145387941264687157229880773599231129237970368677828935544693996437294083225123804139220577938342434563653797648756185961064148243770251242838033183572250882470441188715174277569566634537337524575310697540796494702883441051761270500778552846601938426169989590823841968192408073989300224892618662904857759131776721910464849287625867769029416766716772835285594415773143844422429519579598782853994109142637107066607726664498378557367275712671694301373102061864079519836687176076134864026818322187912207493395074042561163042571496837550357526916095160561736589432628419420448176409801073780345485185568607906072351538610911535313685706813401058093451722529066579988084723387425392181953370958459039483517838769194888272748698648584649955208636715211765369810986953501124184759287257554975218115004943058797957771543507684089002644797061612234691618316106559074156819112654232122576762895995630149174003947078208732025206483495276574073030203722098503212428533728410216178015850150798190738535990975953888714157903923903766181177806296761881937452424482088454841031152935551864461801309771564737975677869732523359967586695467178866056620916057013178892648323934116585831904411073038655798966712272131986836278116151889787383693073509471262651323991837836880784198141775312688478504257164016817354408613626280368023430217645502308223416421834741650864031828039048499083519690667682232508837483114706143389286149193280295646680526394531027490556338491912160234197635309634604551755769568222898775640407016522557951012946023569873782492745406775913124521870103023033474072102675043345233435544246759151886130763751207594901673496864355975128337027844769806665564399765623941760813078130686536924996390593781155924164700541719872658764271426791866007895718990701754012457541218691840078887514561976990474342053021974698078956133223194244734059510634118989256000739727628855282765069259894611517296302899727421217796753462694922841819166667676136615590369461885065904499917897152612372368481044673300611420759959606187715309783458399235765019680461991522576647513647796064542403319465383190471079698590755242276497693371841784319825593244634574382880590681867955200698205989478472278754643229636214343843250595459425076812001763872800653913504207484150827650250477323640925651845546265905046945963407009075642144075263269561937269788216312407618946011400200067243992880780903445727778395729884793575511207090958549485723411382130573627435693192897144296117337828193694093527019994614320004635419886442863254984201661673775457212027498002705817853725083824579075324837020335220251247082512937783830705234228170002913423235631754512480410654162347436683378811990875983959491337678579034367329036278247285131066721443626889103860158162974648570343008271846973940897218942287090927764265469334070652793832248839088740404307586724371469918934981377347694601543358185083762915749391189444742761069887358203215877828656415025794777906713385770749649686172730639362078507173360127175631969361428313669711245382204036848087473891470019117394027989468867579919831822221663784681213318114393516214909322448102816967997342807690256306772733581861745050386174913936773245505011800383872203447765205001065384515910016524916898336304066635636074179051261420700826847729165650360799137224840449563147528728608715699676471583400154652302428510332923868964982715664590311174010070878120054374273860809825157072930996071373198985951920525715959986987277764385620279074589865943521969747317793646046812754367044232402091256947770175994926937217991071399519475376092073515660314754259032339378556228368265394684549695839517587820203740909253765795657627069894099248055712120958529443050949893388723828962743087115494011798305853159854384214860401584566331274669375267713853242019924052565731381044359936565020247764465011532902540069757417051986641623848087037149774970829102388218077556677332873148316573958837747528249379096086111729337482660471275998114005950008070477418080425365992137220664905645093999588831300370970157394121269788128243335335448472317399211221696056916915545129487399999244814025088615936573494984425136723888590826815401376850490966989179975829021341037613702419944949463433602581435988848683671571712669782278855220747704014325304473567208176848939149527375179473981009411584953518156253427667787743784247313817833637943687233313766162336781341855163268125092912191642819791268796827568206812457366817962781428032603736628667145310346903389232742696129854200311696282007608175956042845898839330555284757105580532513254146818199052419125655083986157936130234761102097148075016033708869811212929760566109475478045657135587088064453557880081971297279338711095742150968454394809056859915063046719399993309584508117891605660247428369932361808179041971538766419622142848461697454583181643887720019585172086235862174079730722055037330512165224706824934297550087507479282219882472921011353592351015832207153632778174287253164687746087328957355649168539535866905628050736117744602169537859537128571114489936875434132209785857417552814297873788234907198445274827217427124350146932218468521888496037583564216725160935218664607664538574606929059030498857604965450365091953758471721840104753166140515415826756979090978564328565146105178068152462083692759286498707742385565964181776459814409518670245820807304976884078075878797734644968283264896717390841977797893469323042066135005705932713291082862622971979846522019647806209056359570872796987729222130277396994282320744650488330717735992106111822120533338796205228622111034550132764780070910768588839534863381260095773929738305677315432345951865225444982754393611793828140909406664640109070862491783949158629151079255127217488874497326432985558827870801077091684123489341229577811564131381175116799211883247644940493631088539715106600478552594881287167158150843497326416661310518650665985712013984921322283668914030119431033218632782569578767553002788711908813877359199318685488961954948844528648685755584689166514861775414051939489049245395892840094330853125926440142358114841681608098305407241941048996440825618953791089491880915794594018753564751209925238632266765199768805080269430734507077988992293750450750457747970158846457500792820785217218878135860666874587011549704297239360055207345354704053912873933257033384039830367231676183052473889755578652264127514614391125448484926819186546129451293576404368704805743908331208917190104858989679167329177893951276045395850273305176898328586350432434963274361963765233626506931131971147626206422430699373782892584066606349183524750519683938850894769519881866257528805899078983374775432029088776784791534613419126779017259494204569209900369739294138231618805191939020620076819924433065898273263258090630972064991400114261166176661547627689701321904775959750266467031778759008547744830748346255208325727352840960075967635967325935201363683105142917738087414753494766493787233605025173678175095890563029447891618703369560546792048581412692840451674981358227044687743181445433266988167862709805603924971260871435475557672780558863721641188729378268913404523670453258217649655117682159173289712335201804198031320560669848934206636659352100572424643101514199711217388381946886465749007597624160923182558003323262706959891228729696775643102615008195358858896361086513472377981504808528419423495783687724482528413340030117864024680165808955795930121750394012605421343062267255590636100948430271275413057792427120409266556772261920916063895098299013613471646885359696280313199214066428310266893879443659871153743673826386299523585518060589901238191779807064512891539646736965326480019534488184171677309394622650487976463021386513609274801134355217378952111314409871096073176781388714401178342202181194927696903689541941295206721151021180758041977339708737223365492040520142271300152295172891659284078083276436389038066081099812933340004713777830806601601827329353165930142296672632490548255361933951116200075635812524549340316352115162548610239975047498558306493461001584719981472521119346994580452819835681375864450369773688878954111802433124447844875293815119754016642901114160320976834350962541063047973003567201365735968193538267509761124872070308557663648621270046193426058140871940825679290742414790072674681506781292619833538994288978225765039516837194276322258389298374394986201318248386134044965393340694730413572313389297675794001714007134004690428299274855524642190850541705548349983087628260435509127124452178273432704010636395783696001325315885843390770465423516245807389535178722447709572989747057262313001582656457618576791739520364459053165435607305645958225311161227036297679667006029055173348851791906515166650342000702977544681153595304425204515242898776118590503070471410491258299874725968706001184407837859008970203244275886119099483027632052436399097801040915031939849643701658214126811007716088468285287507271345278286996904147020487799267476123447887362693955015705132102341100757339630203981686488126400476751603581308498140635441469333050266960137421981203656581597574536339253477629087731780109922695119578832246343454550420538699995928544770142951022897107590052144291125469594604567973422126686401761956127924599841468220164930747894471907327845031480386907103227519428020268317395613351168107836187883077738517038308736655817622267517054417614896440624147235470360951648171162835100376964173347228932247557519371406560632981867472338792747336892272732632722461862358251813005945185768457656868321264530204200575860453451222031611317638898824329592955090431525963094051445378899219254829021287203538995497783051918407504670731128633820366226906024560296729458100699999303421245415291919721360915382146609437444015824068317965080142172906897506617129879140553353019474796272563082439255702690922018538332104102138995998493621652625785191058390701603616616864145381222916134904059144999387210744860947782777991854661652979080218143956597972902516540599880887812866508625147562740130185763091302052160635154705228804571421574252359606331440715487217990441865423209649495707925206711260580844426582087041624555622339073053308671626624305188057163224707324927567305874073807709062603547363648273015925263953156626280019341978889680049422848107867619205687532779543357930293405712977752921974440320750392879594480557074579075147997599010552675973552968827831613095557355348291367739250669729329421273243624349581033143794474218692560495044665809669451653039865377154231674863928059063081344522708400010732141361436137393495492487287437072605834006130147450637837437433117337951279092211598212958766133359183902954323122447751579488131372412940313300458134541127553842007628920279181847530264275605334467966117480225017297924577239200498180932256278334494423344938043260379516924161331964334206011668010327873184893003934183121075584032791869548902612509961062703500315705710091497763361342659677620902730475792157406360004394098587843828255412088083771468316563702313903678374957867359988107670315155191882248673553083637989555753952986460494045630133617385767005541215861943760043329972811592468406176429936542165394345511054372773867980278461800204573961944609286352661908421612213992552222032466681430968568262766953629642576532529674218871525260670852595742286507121529699566665539692055145041944296700086640537765666974512154635831067907057339946133941345002212157241244135424141983078868546271788933579942954027068899140862797752888828515431656567322630761890422624860168767667965561958619756520718026842563261513670572704421333770880336981797097343547263539436873206399835725286782179278201607187831328142666117767230561061773662739659943474825868063063039176100770827805842823446728960047357162209958006994603509750452009433503830630375572430557739952013561727456864449498051753523431565767420506877630135322229929024213557164310666111874125112760510119227160146218009222063094906119790574127982610177792431761014892569123794705696185833395413291239983132166668954175294877782557080872772718677688394390264929618792368739750920489568557621476815588545387551286834166542855489292233694703633914446935454464571739932706911174164378568776403657032833493538588712462620562409474993371387041055475244349577681159231057124968170936941835840588706741363968501350133974300928628384360401720074774032275295394618619870805373857445784476490093907538831808577393341730171109029400389085123961139349595147023104698977494460145885382464662981789642374849831441989969589915937186504317498580031202152881648874895418698916667914684276691652749320661811857535002202899063441951937836308743606287712766891325049215495125580007032985489334521860852126382066584353116507359812244435789004800820203018005969145716990521214943327096725591652721182555498295528457031654299544426665930849660179281274345260752979084226733976002075589578896260503137674976239989474797001651880914952861153594775492482893599785843477515262013628026125046958498535012608217084323633028131408675022109684979954184839399255393205376807680558915014560667874425648755780673050112927675895820629667146759356303112812081302374625667202561708113117404755383379023072571937557441045185411942884149494884672519805230350685391930572701395775410774319017333911207459284784537040442625663551119646174377578615144676027802780062819456901401590536729430633639686265370974144359013898955175669934030764051215031990720104362803267302062725574910584168768094514501719998966716781518307614161021548085476732276032720727050604293085212575253163561004032900490376145026159403236856878938673939752557720253701518590761842840706549683372485813679211050204802187479448994907640766461229402998388717498408247860937948970533693928711807284885044263923134151723197125118414830102238169440321334751558473581212509647591215672303014322520399739214755583794377222236662071807824125887452787009541935788617248098186299011057400191440297834825491645666904538293524095601469270413182746606497283112995035835155135896597340868441055626809573259914297762591088615416634980358251747741508420486426372372900809797168186322784086390961866106709348521197356995319492260650116240062712863434377741946208060804288370762041598969676730737708692518510409371227777067894280771064086084619326992147028370894922145406171856055461370610321309770121251921614618443552304207489963047514629394686376212501965807905985609000185153389161929472801917689670601962699109872113784795935074478150428419619401648176841661856949496888494423413843893808369776743618731865079933026482626539390441582841253891241292550575050017526087866317670621035577298149324729134063460615538212069143531040848409654239476312005974471923073817087137679271358679052672098545308741266994583996091881274374823775965188980244183236161774291697775068016589795928650798929676030096265818318490167081397333115806915497970587711231577562540231218203052095806640964842468424641285235646429518452172741816591485838429310277578825170841797111191425513254952456619122564596487309301510777657904589529384754153845677205085627633925690357035844448410861708005951230531363113408500933342388499610571085829514149770485960101471216138248794980613733962495886563149372302229055017550613192568968195796812156307282155352735952731065849594145253329252591483158609324888367126503847722645430579792078083350351780756185345110053278095167702809682370324215162581403900919210942954415060164546447490414904827652321155489780768111382353692623761674102141190386634106981831109895322063919138030497181338537240564313135015930078778360350575172328640294355041832655829614379580026330452414949091017650267218539533720473398433397370217942184730472339371489171044579626310694687527971325485476630677254269210248170196150450050545626728375840476184493058489868306285907048868218071540538894361457894427121223571163803181345476605572837059823784852625967816278888956110571379541467529913089766727953529750191888726442556852859469660685452848568685546079771223911343059338449478351542067403009415129266665708642048084091803362425470144792264935553240291633145697044063795705120917063865154017868163094586847309380496323416768992774587083587027687219697857282696920544490207509793860913454843072803297582581292150917904566084112698805095659009840038626592977167583301814290551786806589534580837004285732189584536437134156676251868434983217403309009863071582917992780537473363875219563756847364475662232403214373894964374702643313930333089538983138252437396444162407270834026003837267552214861734335777850993123614575784951086720168063141895545440020976538542484986909726882137674733994787586062322947738967992771100153567903623483310957729888053001852721151368882722896000232987070360485910152220584527323200445031048657067185362967184121816616456526327176501982109752781069009290662339617218331625231390637259342647637509133148861827901064215186518454703633673987307389677617982663678985265513789258494201531908802386925889814398168443270159975877805633679824432026700125819107575284860849053608447280630086068992266075558627766320515717781942390165619248454701763336703024465252324018130525329498806778626711640249587239972610760860622405861751518912821800086728539844560770479032575290540320088107289076134786097014234676976990639259205305262049889316456803817630459537413541413499410212171792341973710496272730453014084975777549122652109993589289152742673990552205706935793682103351823869188387006325807556865916990555959295104005272766505877895585285814771135405742355527269585084415563223305505363249826082682674567123586083948191720559599664143757360691336150730828642985643463294755100464127263540506672975899922599534349393144915850625786601600786320473952091923188049437298394347155104021806258174478100647312516688528779289980169209412654556956479086452331251757323775195722221906708329015059762560080768042502713060797452065004643568386526088504281294833363576133315427405190300985358584522351887584631634365753142894689322250032581976422556940926233177258685911234165520507195633743620921491900412966332228227671548111878328190757302182036117007912701814110354721256746734254834591106927102535544969716551321669141152193070306121525429320855377905578869772793451467464674958193402571003529507908336415219156206092890393764901887845977036629137400516729269298747306663840328423218692840808124235901374861158923923450450990332966988560836464021234142444432503868341613325839674783114276662286450035314471575663114162090436649312508620159016465787532867927192350465834273879584643863853457991456491859092167594679672762784623346480198469399129928473796145793353242999360848721867726501677048262667680752510973455658371298306350486628287635586803215747927050264064194573735687194895276418161101453492128428879948239757380152403486607190250127115281566069508941665100297764380541479856911684300049644393186820342257028275793628618623183361366007599045114393767151755798044980751695178993363478393266336911404492698215210300702050702459460916160767438635726846634237795848824472130618125552315372725411228740553723742545429261617308932836103357037340820720492148426385440254533896214813882968287113986477244636901822272845043253006823485461573287062962401293853169843850825383132564175228488430064403540831651632303749704200887191916421947135020183484050101242493781103143618764572087390099432737111476735848127598292180051521905414830778008771012744096862225923325757099256716893964611947547090724942077224070086341032568641830280224884386421438716203693856648963956919220673555978255235596928487846397520976235487454441409764046199909071883463057334705716697548189502922401950019668543587239241078289536842059351853548958813446719729316894777741755645304021792281085431588791002987739327495112366410126605411664859153684660994047723943491657056784405280247597533308775249511365223613494234173188151679421737712171473547785233883038569829389494906768640464718632659147975309626713351695940831517528082439425276978121987346842535887136932057351878943123029160064613704564185752368542093052084634925496342911563966259473519168978269801558591024479078711350243595557949512586301078551465118566559561519577229179192191845062117453534268258896166711661803205303976698230806506424603710467387908063796939180338664046975438052787040040874867446501512379610131012816610903082973510260988166673875974047241187601683628346313221643765563097216062457152358030053807983658733097935595860050011908014589901427566456934894460469701162034145017946992881555623348566413956646118790509656284910310476185617293645645061946904810680492597846089539211764329436371605865244385429422810536030299456591093640735528434031533465781425612501054826621913191152472346900707009966794050135166007987237743372439467149140637268424658039776075792212186959917097093994546361468003158697284126869648244327771521939426408341604937888129239547154970889799556165317857886395277886667190049519368390710857697638082953585561621483688871932408775799902281170944225938775241193779966677548007843823942231552019422497334704915910973939998669025903298829068046735343629740814178052646074584886342617778451712929217976764532549104834352459850230478013473702592606875847054409233011257120768956549306155377434258064162360029023224799326543655209685013757041503084000192447097013966557576551101313631128854559475948623401563036633438782851254539743728986905407021978925858534186617370997852905811635588260589911539484193074410614101482282369299871580798479224260807619669479744672762222004557011716571028753522962688883815264319651710496381816663374113275571276799037903080344551718425764018705786228265359212787808089395494004262675640507298010889487612945574038848318994202705913222466446729449075647388078941189681700901479903842499849803271870769644826378149061476312527047405283512233800153498925261305727859620123399962915492264002079011896012058456617780427868224936120934830551999369949438864515840987761101364897858683212971112070274601544484075230633948675983739250988031999280781395656105574591057941904070964330432995018034991822111198470839145613209803331007951239102625152986174455308253851634193897908357915073642238499724324033203806641680671664660687222190949082205902759818816820876762980639620075441344623979628066211958607659736777776789929667255627488705504690216456340561910593917966425004640747690959100753555066812128981834496804849569537045433148199424803077635793405430064665764659778814059198352203934419532007025401050352257738092210649497738724842401034009286221281411253149214502195100244699473555261243210287317455684731088784080466620568471282580234828624780084875645804254817223453922636324394909478652404248417546526528929939274948970161217084099843553045108921589361232264891244206293442858300696304291017964713251685733319806387209558503507555408603619657154301653679114093748343635973259031743057781366876525498322432507309561806564564697791735218905213120859156285808403308699562364937840851031021299194469925372780637618571813283994691607767568398262211683966108433639004541472020703877338223411116954189110311876286800011392752784194571640365463002912483049743052236531256526414703743730945223882261744485840449981062279730137715638644108586039629696285278466259877642251344792247141743584018849069007982185031891047214196678779614921345986101282867529373609037749644651926499595146647713542818410712203720275965924468839523966515500476170449351476161826024771880665228190508291624346664429143753295127079275270200049254154272459859405331135827533628173375935960849267921539284968622241744309755836748474935794937030932716533970028568109592967069509340572768460772093422686049078328644215592978884341967588702748441042425837985619375238038869139929855473952953866907837717379130998475984219264986295252989117942772628490811428734436897198363292871976190639848443991386551062199459747718405197922142384839967849012457734437863063254161746212451663111621642360899514352340405453910351619417381645947957761670589599328054546539754511025403735186233572272050236948324941139347260005520300259975087546143301508331637765219071452480445614470467259707221645545182886182495446129453005578327008556862470288554550794984328565093515494183508617421686099286484235757309911809899574358519425095024981184437295493475271821897360651749162049078860162561600217798670084121405652811533570938392690720748349688476048537267567358628003116589230829106475123357631485572881874152890295472315637291436365335754057076617812600264048244762014667819064659755372592347950533402116478552804374449252983460271513649478661212334166748486067950895350344812917597438831770514588780837831447982023046055520793263472350436531123789118936199790784935133718565037306768386728378731450191425258736357985724735349657488551114183740411517480863965330960670719852660226936650842552886303265576885052677348898039219127754202557421380522392994990178587987108092418795268385619479234437405115501516801164576040434056526346547066559121000580660559220052788139585892573618832778292358767308282463415211302534234871979043051371023719236848219691623143503469514843907223831517052232442856696163280630095023166897985244126646828700435277055413380235218401975214934245245420489003553196832118384079270029046150698554249539963040650108577739585792591151112735444010955598493701825662293548802428950928158682796423886762477483360854711585255770086272608198323095573021930379777497042198205745760394094015321144785271078282770602382260103235002633514029680648649771557606626287260798689085231802983702271061806935887539724058666086476144179618157359968335850866670417996103431458273448216078822576457996986579314698006225530341744915831764664427150586606098388791659022623955357349073078561306275922091639695563290192168021565612287966147212574983896007225230879628822446283149031627611169402528029241720764450247194944863784147669019095354069425518958997826005134629136985685070505839178224792448844477111231921261723199671128112105454652539608216667555759569099871187195472886331486681488278456645122870441731886238820430006366106117504711661184004503907254160470829489245129908906733180068463598991286713744016497055209356872037322567514018279514128295346910231238518729671551769228950242291199443283961705074335320621523705752345487031292240967608561115862930687636112155556393967262358700996128288815877705720954405491242560738441445958128717196305363547563128179434883022266511347483064306687854797556423576605041744824015907050061313358023217642082461597651068960573572948817957349677340520655112565373879624455426147069648521824210403198378073809670779039194450206456985220460850782728191973006231896817655098858418551844331672948454374712387548951959249936524521679408929482343529052250633683602098633317132290941929083722551886309454436245514656917364283755077390529600935407293613472572668805551807956184644953436407181634640074590883197648125316371912140078175124223212789536045706496857849809058483312070467325822097692238769140686785627888670535300045211472454625895204398915285671905180157798961657514388515947211475681609518439743460373486289154153180735838487066648172240777143282347611361007384256936633606716546452180434266921045296823766668940992443647723660877325870203847414953216691398804065665195716064171253820740135700292784182694138960727042779055186791580286096902560157473774809990762869814275724456316230868867260256944510221810838354209457370737636628057106917833972342293932676553964627441512957226276394773518182810130290709890127082576586604380913332415750385557989217233569774508835105278073656181143982318378340483933809189950070495649597868698526699494595903012524385558465945023244747835036030552261867234214224730411367423004313590749243051190721477991850469313652593650400547715348324914213486836887303492820874948542486480497334275847685738548696747646254164407376684665581468101894500499125807304420817329887511944728361118011955287129904868797342617290091121708067632742515487892699751040591789608809517988731123478956442545644269496558986191763082816029843305204024643841278392087643705425039641906460458940870089377913148208552789082461585621199091701716559583604211230926756517438865505852949463541939576010801319468434433992394909235277207004463817048580107811473903292250998688537521236598214826854170469841037179549485690416258312362415660609581319381303215379585302517548493498605761756499535819790246599380098306748586184617753347509910772520827101340068019555077849012409029845240942770312998136503611780456315037272255104248938759209799560034463180553369125849184883860808613763814673187793652524875252881833298804553027388576678753919758575443765894290597725557264535457476195541449739068369161856665017160492206152536286344036745987760256101313232184220768483347774449327477512840536014497817562244592352881791612607113988467636779649842129121517000112486944371386748755311484654391228567748685965058563987177921593752981894807728586822459554677931358152743714179343498268225719851236924293622139781845136095343350910251949241700795073479385793892666128953012488305795006951010525156462369245733635883556221265030246606245679622226922871186095299912884156043901991609318095143319095898469349596252842956489707021790501466912032936834163391304749780814637282903219272264044479127217367818980003813604432388507787960239951944679407652605083131595373553917861974735988097932566182071939669809055829528261833318393126196503280355160860825596514338712719890604362161503525626673388552998444049525999108127582047712506479652130734132549212216271408014713525890814822226092792450552826164627988423896726707678966920775501887168193495509710660429844226092048367956640450797948033915534869598649163633015396704047346495684948298749688990920261464514004219934356930902455092029543448723948661887489421864136755144679150571396765363649655293412414641075941586753889423459131300434277847709861769353808934540982086865736636015611170208217610456993792977326581944775036036825441348970713957408560536569127253836570018871709753706139207794733446343909825704614279697907583337635148683757929085823675442433572522134208197459737819950064332665848512699162975784514587503988032700855919115393390805308626130467929300085720785200254037206386836076171567196120855850893378573569448103189636454442529080338803832241733170642101438918260459335418473066038212387879284447767948414561679856681599100102290832627824354068773101820084411009993918847828774415620740065708808135938408560437726851383875200842680176921351253968036944396022111839545957573193599691989684339129864773606551344083088899594684809862216191643563233570552898604937627046252895165268653953883671121626106708546946253935042189043104659824230584319794719206618661476957772809333787360042360771533863061048181605563644270823843450497804587096482504876080343985247133679310809018067796223553673417645217374456424849829068251334511844108267091085753325665360057373831783019690117354190734628556826197895558659189717871409619910799581298058340871296676842959894823228117774278558251253185022555486301137102622624082647202729489950627268185324849171232561820464878912606971710138094135853889787907361079516162221539401851924249506171659402209602301176032469801093603800126267358791593940059723600529988213671612467327962065468925237354393434639007628023870326868536485938203317304301308567655724303796863486501634107364821267906529463022757903189190352125520352593575068574391970617155448333359609569589286645431579745614351978686191250980100399231732094730016496946854775223222053541817897698127276884160647601844821135233397380215613052612818653359734882748433682647428138851879954509651952014393392989535928302319127630403568923022513781527572993234878727414302078594738294923294900914939083348971891970828767098861943291952655204878897237883976754951049914501931935062636880452367665357153034474780595554614358020953209690958979979611878323117285914344393992117310571062354124916809740919234655542171328942848179427906410056960886703488800343025661316641318134544241678366399536481936272428529687264768208946248075058458353699378956728629071341690059143357812329512799458642506789086272632081565154616765684437960375375263285408892314164249319702313358659374345884367446321168800324188636837713881255714055151313697391171843683995651975290253989575741776282915482708832156303884745069125073898208644800773766661448798077679656224965057021334926119553202622286368469072275870717906377295045037529020663857344435374543342741090807806566890636155062205786502488803143075153006243658965330473093170299234041696008321810469434168094802733493745462979323379965047714396647757152817493375241594453610028951758739317539704485028692984327288973165961871764367695753086790613305845368136823647018446214827404578508958467388133274760793503497730825883783480466341823912552557066720412167623429339876774670237039868263603498523477447913933613544527292701576053948259016002363832833379983228111373689599414161488240452356473315983145939354237140770974993956722918684487231434356045820105249988823724698950126778963098696184094837943914844933819975051130551817616105386444846838014508720130183329130179531893540800898691496290061749231354975830208742047158176551555435283000195014665589130594279998665589454837005125492196504525044717748549623271323954722190974242344790597613276639055160088066517522363261983933529333256395335268394583235653513819717158377443052835887375679079740861427099283847197301827475038892045466156930923137154865340981462077653000407853720383986158316776466436785135934994135805697231617094237279773121661384923245207266536272222035814594197862909189987223207838953706983219409251991106935236334359898676804969854212451441795923294366263348472940334314265159925485229671803422139927033913328413567918129707270083550234453171713112617928710516298156990757723880331335960483494894990621976981855753269442418256376704355180799180387209014620877109748660885568984712476844400618606600219494143488053135205856103293013183483332696450819647928756396330312918330597614625960197699648916533114992174988235383006125708183225056363127057539996544698312064419066989484431750032258475988512375597103310142128365483969371029310672610233165466902923793238493112928403492295349618974332429831007920029431710167474750869558672033318335650152445093314393454849543968072540211422922470355205725003367396606262671812607382308413736998771598080505621323502991018956917675965265882143440816963723805931600190190942648906917086954252243206166538133111453134205940486304037277648214267847626411027010456667221929093404121144244928586075379434651636716110423430757197870343617683681599313008499454168124798883575299515979056300065590262139576382884840324729196669643285038949200307446908211043335826053497891560901985821665123704128297269152174299244971145540354556440957960550439567296984001878844521862602766974366579041965233194607040036028349907395791743943062016079928664242549754460072815819594243207059621886391428902022353061091783171979587861126066478094825124603261795767467459716282662021161379189381601203123093473383823550415845986029077756751838846282808705008127754844798718162181101919601399448737126507909750505221130542742018656790825535311007070743391821821179499910271212817320587274745594354705121823062343242755117215371287874962329004616879798670577008047629426149621365532048282501393443210104998787668920444582752569457865263461018526045401944886387752844348726842041234721449288448002597413594302881106170750523554032707129372454358517808481047880167975111642576458681409151265981638679816268491057483199399935253246714478963714004715712335425292686117408930440045369159746441336297437874711947017714820311248044418903417469705097665563257550269555229750111224221468103130737767158768713629798175519915478848115494437503739488895686170836292057748722856385001329981933017980613345558507046536129153489870692082682876533427491187604300726391032394751531351062362207725608957147118932733272459634159939002047656240961842949802955811887488720724740899904636988469038769975666082058514453574172720125518194047972259518893887379563293400727609883674224298234603866436157490122775054156715230614467030645455279098070321134731268077581090054867619366474247730034604933584971054379560369480401394380222654672745505014463842335809802114785370279567067970714696992324880426177587823484214822627562947044218165318216916621005400648914273799997277508151367201855237917994651697428583202959264426165432523392382359777170717821059006553951454563195690946290647612812878501982239607769452810303073653007205666989148176755455872532179042615593970389566900414326097752161522245869636334232534225727095493230094360543645066481754524020176807316923993467703569768062112264556725610198042126580477939839751674930540362928452931085956017385424604034539020793834974689378054925861419491189995526392105252237735002075676405805958127170036533665916956368521394739127733005305262374973442804771386504105954189423759979070607859213773484052993838807471735555796794192091967499852706748397501281405734675694227013765160049675644034317294411947230975188475605706477688309586353691976936655210798183397835493328023197583680755503222478106186118643731904379108170511532863551917981243986660473367848973030717699810269668006183126198543465421367782334002364577454737623545380170186557475058350721844721990015501397756269152392934471628223656991528687863631009102745825564259234983461244804060608534669429823489681099429010432560725200225266483441843459568645923866772581198331964680426689028599853742172349678401145379591160492491862993026738575024101643394754729379971404817781912933385852404713787489223895738232831031280885467904016249032499407456669622130064079134543594129765822014178093078810305862647048436225039377800330258260638420358703730321822231193066074940575997085941446874898119450891951120302271091428202391803913402519604432017547950377748520067446277861396529203780994542515221362544703836344532791537657881475066099885250858947826899174459652259344731809678044406782665378529043542408732367401116821039832657938834173948843267871815841015636343474660838127031888760603259950292866171658176951744998615415412661494396598653135723992785580539164675480161117038335532340612240361691693142149896578465608605775847315919605936323671301558485594664373020240328875779132027442469374940046499907580250844836554857384371290808052715540603763417772383940850558115803459658157926554045442593419168789809633604363660221757416218865063443356418269611864784201989660173855316039037400823703768639813016451445235356852526369720012688762011529380688775793841149926120008352113579339850391711411530120876997639415930998145281298097654429752947632529742372416089507535414155293804915214171317464184638922376119332606931058421283701371044312911009286861301700033760457913398450238439694767564483190868529372758231787012155076577773009417243119292978707785763099616483675821514740625175961402762258776034859217274790844785677817265386190955296017594030551310142608553641850446864365721891026053370135686386646087029575984269974407094813951955284680403163612368543605939095883808156303705534444624352083351705483502969690961786931472753414809180640804551277058785425035219829101865541349795279322389232840766334642573109407443881663842594326543700983694685778208475685995290894041143386887213482511520621711366062766749841138501930151333153605908217057628076598506941547713335622778796962452894842550851575267620148237726132871239861424986754624822994640645874425900216957840442034445020782471302816366163498972343773553187337522487108192527745566579340520441737620445261763581551803403308799034639281836253260430724524984391734218866401872929128931359562855474735119524847362244381420783355171654913084022158650273706997970676926361637947197475680505564132353170511920600285415073355179332746975021673070048393010397108718005845582743309622187560031529910630774687871500501064038849109770444633575352381451567584056204226121360455231021596462555239575681560003286416436070793161369703921266614716942964050408735543758246285893613740443818251555439430043939295648875133756136687635183027662524413046568434883014633823484590163320173511980453051300162798657672635648656219660415869402429834450600549368167544321543560599982262573357626419508998125101745162045546788749335966113947200191008341829961326704561336508959973285937428119165740421677314375317080233895086452405877973095226604866353839423952281264787834074218112451393765626140073603054244423549838283370189873082983021404034575350188229379199995630189248948153090404786388937704435920074783923612986892568026118570583444007571861753896800486260184923047509513347475091970632036813439175396118299926331570609365377828770978604070247390865401121491074027818933767975932576688339551226543067304762753827350302036940304872511327907393265638118156469560181282060064235969493519159734193392995377507663863558818227507067652553330717475675319955089996218781741998969129517246076859868060184755830492337041042729867159538247554436364747089187171187939383156522202926795503109264461434037845260946879149552483794808883947469993835882716663623982109878388737986337757205386748491217995061670930341599782355318668504906887660482979855960867966761840421256656083067575341224791340398345975732436852345876295941847811170896910050241705632660692759869070598575418956361822479740289099330757777264764331930200347535392892469124263392700258913884832104500140230106194179468912174009227499992488778290454758137679897013871411811250279766813868782212621186485994913927457810314445177878244022378417720611197427234534036566114508151253847297365081289807363997362106578698505483066552698607769888262776818721932922871012351573386115504324230789249084828415487589463679088174135716538670790736896524441577969136839655840863291647981206745988921361956267476839143309713829672529924719277499085841256248826518238530277068057159196982302714532108220115535666122839877260780733354062676363182225980421563453316413857117040642382151180869333672711121203571838082790388493317914523037102366480410041082620636767679817686608216371954124714368384751885704624059704113232600204193574386672195047311535865745136769505675671175653135156329807978421173512638100135910859523079514713142856925624145163477073340462118152489163597653499836086003845814762128781073512704793396583119685305170978755109904494765238398524361249625539876182503098695750605818337623110891127675673936861497178432095885285591663687006415728992744795431775735645685808899186804731704369835947810128698574734456603637150720007146799027491284003641808418810560233457519525946480643362615421305424260659622306185967833357890766396613264022612246551768667993987878645645942322276241514467160921544621805175223639619880906927072881833204525741770992935143885824829682956042288290314340292112965581076737834726494585261102146078023305637593789206689073145693029653946171297645927073533455436876566667926626050768887087237507224649045289762009364116558757304699263767841579703274218267834670116050551716936465015782918446806954603042280239509667950138936250928834565718873975344853657991638768806927578829202199499772734882969914972368291767331423399397849023298832518803088061629551017571460257509594546998641116684818592031439207382998094971043555437720748066634399741622517344197802253694593099721583676353049730700291685635789509539206455797046578892117771563332422401205517329550907211461882313879751824323554637893566843476851758790902312536154892710382333748484704633797172846624270082176602327945554784357681542298249063285566839653593608067617929398993327253018553226538485609891006268568340972366113147283229284955041929817812545721415739679058351405417082292835666041009605386219451943639936951637457384000470007675433050891467164252917110446091434594778743778078873955599395570815226432104480697033805309397922874000953470379753435008347928587085995107646073736287899795793887745597269490688530758101544614193423868652983871749003930972738599873560596904613735630169496575757267216663008209603595297787636885069519824035712222895611934309341766992591542991577535449831691398215342655695038452374036137533339412372534730314366533706977164047436180143419676755343228866654837494790990580917523296289764742034436084123741785005241704143853424036374700863491273699617184037503236412934272040550489974847044828043648724892262844574636129538816840843223029574029559727403734142496121458978924244390803782257830624604714648589015349719681926815812155803098443350550397494815886271832779121435163050426139198414269452558528806329749118576898565640588469623967526768829323831308828253267219338599935347380045614425899097510945256608925881897898637218883574750636615245362561562234851360405255508123883055173576088786305144191180222759007789088482796304828358547017538990006168831799431291858185592481396429169135688073241697057359709289704005439607999853509639144081407642171790007837765596609750144677811683496930843625380125026845659861379031202903385742676977812314454112475467010290233112242466910377561133994245820814596179472580905275023128252377234144970514836746179720388928481574539344155220777157415483381957088477851487560202161803289407263577163858614540309470930941227003638786113457200675707785314280276913493021400201729729998369452057474187882867622726883128697692126999623393702048280221442595641318490632331012866122007137326217703861380084841947792423302603071212359368142604001775721811780505409039881047761262331730405933817476015515306614465689936650104692562678054462473770366864670570407327022245238107657751294073060919810468170231771581469648820269743328199845369255511067529351130355124964582163458300573304629476076838964629707857209901514540164109160166354977344028918718041680988271897060400297565858376501818842647224140231716030745597474899577540289803299025151637801709215342767452784757404367038111470651441290763441224278609752038512449076971095035844126876428013474236678368166819375437850973334244603342955519560961030666075919636972846198529941255048349847168430891065832151505144956922134300626156940636671837418961806482047519099886668037107468998720597183168894324053008380474008803360711488725246121769469786730708731471684404380378481524667350958867397846944599002847786244077964757356998274897559354579978956658611812794253675157785390276640444753448170361872437464911337447292087577816357255145263671595989910004266752332165629696889030865773040297249578721474514819477310965157490120006828788476408628218053951160840549837601899336344500956256148645901023291032019868173116871714557706536042496826793368201029304509533134694277133090251736141474694758726691800090503053445970970191633820122065340455905252433351476733441930030242479750670669522575799322536885600459538062062484703894130182640689357638229058811667998007041880752308578136127129948485924128408488947012282620864900092586790166986395119540214202889184950508858158388824126985813682101630208667088592716519724292032423513720622789603981783718169841682769594456783175420500153022127876464107383506754847781696557610201247885821542960986523863329501113169701452257010477766302513516044419700730556094321515896397617207426456420640917437619373066673490248484385291012242054075030371162664962179649616882466017673301367053341492941445308546242556921499473140202647730619240936888493142991636134506346013987413323098409014990641280650369016178934794608890525810907741240069943756826089017818571486384691571849671789896110813251271264042273035406769919389206789236923093408112996296781177256642959211488053622493158458158545229493032319215303471442292627507125673015694957019603810077171624695502827410503639144989171176428729035829729585206247159388484638113425318903256693613572385848119799252910277596554210862434854209305552441205469440536468150227707068278059342760863682524679207008067289221097010943843268232527303458831538371748174983589838927195798696616296360576555564083439662197945930568231208468479548772415426362520838083385975723404930278737634630560672275372653537686033242342503434518332973671442845489615409979140367920156604047120307309021482707941414176918184189431315108583367085470362002339072203222965031219169547100056629795086198223810268937980156876963539233001255220875980901189193842530314065427092584477718247092610914645452761353639575957286009500301208751669862919380554094492388596049604103485309650129973640727032013973660988770208642075795253809696133257587086773696527492984987846521430917649043993739159783591581926926375485120606200912824825132124090127910060584919296796332391957171934397046575328026362722440781327872048452937472459074862876008980079919401901441961432827932999958836961231706440006307587777834539657502282539286414509960149141113077064043375368093919015780541395950569912875835960707171515568152745561685360067237344938146503907967332699131641289682327058265754718421665551624355499361346522044356951063782650072894663731243470276990368088549640428728005870404927139290789225062411052184546386513508290538288935957909021578529780749083779413746071858548767899138996280750096995755706018977570546057138631803853393016154706712490729255554889388473216020278559689375831292655607307330513817160053968149954842703083262592266787651121701570959859410448610850556038208293329055223127861288699790378723640263381005646198827801265101526637932015949402001933541075839368847698098980659156524853189368398163306705613492095660783932194785589121182803347298752403560041967824848200747361650919698391752281279470491513190775005257027599460958923487990003680778483143273556054933855463780139557690164869803890444510315819072486653727831636050376395094980437227679745039904848053994484054945013156971540492587419611683591728548135199329611215383558709225922417199864797954620118884463713874257195443014638291183068966730182546182734522374747898298002033392081513134740312174150323656297813285985185866252784859562237206194109123507672570585110953491189928955538962916345016680679497664850244128074274156012126695316609635513368544830995211242858997790554954472996897356016783224448032215462578377169634611304088409430080104994363102422569729978755975685199315753593819258076478547065294916650069299639037553021897963772679631088694879446807983531177104086158243473879477303756416450153701427698615016654294379973557176792103814497689022236568755068336297678797622583462311601480261575871051100025921710445819637178543773234229961879594432850638524530440716822056028681249799823239939210521871588418725173904480706108553834164853759197290913071591645692203941954791167569505743212558796607684518187473576208553172740421184116638229996115047791475517346131174808675185004743056039937098632079098567488557988462909500365975212073886661406610174860776045518345365994750245821262086306219745385135829920905400812465658520682495649395978059414451453059741539938946161901120025680888575805711839511331870266377731348094904922182884456218051994034618580536145638836572662626412237727449141816325188719513266639536513693457181903953510440693046197744022312323761930372761846742259910910883976089849557370536586708287451331109406178962591766557765477997672284809100715023962932537909351514971267021539523113323965623554742131714486491005350224755690913613185587218266977445108676223201534995043462053880555526627448821040529796010870088592784501425061827069643830247737013355595332657314285167442413117011519648159917623408007593640591004999433384030935871568271860927486077051151400225232198101783918580703412317085141219409998889945533190139306598173049737214589326726069294890845286778384950264751321267398532393653815288448770192210926985173635827227828252633416123446662856165913178167166321373739909491812790568246413071779144724275846245393067659055244319033384960763584751642664212546803030921290830554250106462378861228377652790016375047691414147988424687214798590950051288183876337778282970172715398917435981485044934872892329334748198193449745043579059237698348077660735366397889799530636705331252015830943364794975825998381890649309025509096959731994196091556827109778595168420517038716025465551169973339963922841716124212818367033037215482253361585436711902845577150130793013960820098032166388815078242656352763552512382987435491201726958474554792635081643089093507105617684495685617421008833411974100154527856345521367465819251787330284649833706560017911236834679361615534901339519225048311336618007566780282009401010011659541434761836921746555599863468685444945375552539609685457170709661222341760334962272543915323722745187783876028522413288280673031296724604302939575244827739590539604007732443720212022427308620967170969376536483890538625539157443523932128462616734199623840148683477504776083002032081575152324081470439756663011387195803801557895002833105039555978585691098502202743716884412861143945994956198363613455876572032615808942799913645226831489682307385296132174961517801482647758611402248665994418474302807102897155758837779788151649841325274009115988576467125968165322095844155014857408024983365710101941599955452339360797235646667234562376279239366144548988138715845481171492951433997874558706960703636954001133490720274994503508338695598965393411066292436381704062419141891079149472767720590304263807537283573770100617362730395520650818079653159099980779985219099193664179460869529926852956084070952519294676246984112727493127357033628694962614054814936507349656263934599652049252727271885920573330933481229078767487635214095812601697716827899775120111431192978873357585010265667761330828837706958688940059441758723606522116355864905047657927280574163804255426508090011129475883716827526587309408108742128194229831917750342337861506912323123633708272521293120766180202617506759977910428016475751856419651601922361983108733070594204055113453671815528264642152970850294222786805907238833510229749783193271304260802438700490802327663598973771148265713280618433898602702224760620271393300931734523558655933256031925052894423836552863920935752832436972298766737336491180412298936217110705167021115015634220752559249861344800106737085889195233721260813107640042793658766238786195488491460553747287926129598621244010486006229702341580242662903646571767999951568747048463666024794589538582756095387145561027786414210156156074994064865518644851970722983288858930138066629601044480164486174058928669447641021684929532357585763352277759552657805998952719132205792760736683679686297997616774667644258941124721717059368109987827927453715404457590967054111064293766689965715879996314394115945030721688186094676228169976889920888701061953968946545347752769242646104070373314772466012354186145367570582261721329786169437676118965621189414840736884699285069535049142669897295815941966031518155625690455378553587837742025176198511877066013858104373641719817064114956928123573090902774860229935077736043782687271965923666305363159925464053611445182319679162527341755564833796490235007372041343006838383550878495145721445578014296138287706818678936299875631371039476822773573258048298622080421916781226121968618651092654261828706035102641517245083160487060339299525572053611846354296972595217137615771041212618425348542834154356323188680309633681470735976508023151881994907639979833371137012040095932238596160030000396817966392336586453986803524695398320729312035248996584176455926300119802576572409114119217139749412135740131477411088450837186327565097233304085377440525540800859456318660300308751396390993082545207704883320558870159766061931351902803381328676518964437559019554279915996145818123249884902344630515232738241649067637920480357542705831634661955623525748424275494382391201631302309616677936133555999205225507179986921302059796241703147475675747262470085629904377385228413430396270951031210839742468434527489738233241322746995965651828666335363465876286949332838299826657206348382369210146655650238121278349388709479026957756015497170938245717996531074253350964711204445622837528878648537687137343887321540674240783696730808471915754462707022123997328721320605796100956799360587249729498097808970220238466496456576711169025296620066588093258223695169138432522459600974652684692776227868931273620559481056398496983083648699454593482030555071724846948458199949669099236362070076578642737944960552052818512456827699441993711743316686429054566063500695907809788811014289643423560490437282261969023099063067333667022649589988023628275981824317614422553969546163692070639439636058469865692125680605636516024310244972709630184681030463402854874091378367210021915749000881884031580432366316928455626737961587878218996745606793784301254267419094612429016074039699916111678803461928118163811296539544719386002498975475760417689982991155804611445334150619705388487240032054292622685800598272286862176390514448654507874148323974126095151209709309314954549589287090446660950810342173611692540895144538880551159069285862271213434052224601489938459964512070622037429933071428770709314063745248406286927098579711055381170757774514401260680939438373225496245784030909134787479024277172057663927901716895756476326906571752173315140414438900739008974094859361048886710861999199028544506844808083417087044800552250961197209649447582793439072655728670036031634828874280331330509806046687974637866875488682571806007371598999139999269032975819842461799026423833964549049617179837590615055842943577964260014784232929710915618846962419993504732757016821534780010268995914992140889254474183345514951638727765334103003152757683034022310327189382449675877289220007686809843615649058382982484041000085887526500269381445435540489663098495195904400991379499866055781767464298711431854541047705480863909713777302501594324808675628017984652902201681881018289705823756522218992052041214403024535741411914692021251062511449299084864965070315386737564857468549734183945341668279068749477453075615689134433954008478092307223326662311701289912834363149990568256233204030016169472551452647013659002155980315072026024747218840402565209519769069259429354186437569641536293629723346419962071191194603463686725175483585395175777063756397838188820618500525116331439817685311564172872184238835368893420591883618303430243182047109461119716649596372362805067110364821485919342396135021805179353054179694654846173202797077069533852930548424382728898105376191403652262614252571286713942051122616715329029743652805171821538917334903358569246575275759231871243912328066751685234921173503786860664486072693735363562863279241575378965812054901654555696161057480019577297583425477754640570487727844034673505435464861709425696361092414902094089764588931683552702079780771049079772843031234788222910329213660620926517025539367273249750030899107691144621378605007560289079528423700774777871741473269221197561783881838688510371362263260234106146323247932813696047211700778659270292521987964075129872999449750270490973120033911411585606738147003608057432512795855179983823566823541386490572764995119203037524234988403779351692687603761117504757266770076043299255014288272589525652286627779954803889509326335348385258593389271622293282417595977679200873692195408870697424700584530002936389749126015682044241322020615370070310300717711719440661863351320648119204591966684605592273696502906157471279432799583297283723092646342118136667127365790149407577231913406592731902509683738600012050730969151971389285223915243271574195210078212000373630456359227908680404874553226259579855137831988827991671547492932890411670851668738486632339366123047541405291192155939225715470876584924629040822310353445135221524342911387776527082454871994185723809471078350186362116509479113068784247962085564595766073582804743083232275167791119689475864580689361476037748538035805655752533322703470431610504732447688874634246907428107638438506907806888024969560169102079662754947768971976128993186143189840283277674059895385108008932543076986690044315935392976152513685234711120068466854170453473129217589149237975171132187437111786122640042669457065908997023773920614527762733818481056003421056457103872737848097993043405168900575997093861828372594936703706811543990034212802991129602866101882320759789092949574194084107816529248763434461598224804060258152255967714662370206022015747005585238614867881902197586181037244747548833926151148740574247870074492161090825957095290466999360612548314937592637744234322416464986668197383247742986513816585614561857687923435530447543001332521315024308627830948447572276564771271253025733133563152548273763472208390309170682001997900180811795618031120968590024270121887745677817175743585284851612093741697475742120720134688586045651335128913217702459268311139420168980787327157719823957001147309793055739599500210071093843513695983601222220425182131202365936342935895752574441937441520206218108113333377869085066800751957162299750581487847756480411007681567609469263788079616393887274073168415434710002646299110721271049357658687324765383737088330085176973502223798683060301848611061087316715701793553720667608870190014960993671963349719293190695788708579201515079065888874483916590786769641112059525521067832160384929589573988849296289178647053821037125868921161429263185949441925325111049522957444654654181811695059090483539753256995978166295092069275175406529345683685493639518396779778272187528986231999891578464987143583035635388491675086922868247316935699559796318055918777609225193763982182831634458607303369778384563472043759233149428717387215591664406373682004786737071135008138195071909380076324360556669515575059953892793671337928279026443838092775994927416868095266114357623775371110018544343327319837188391788683502265900520705383042796439812143879634308175292110076854929957353776028165162505116350227918439639800624821634173275403851230635686369294307324599098969776025928714932445304691762268524686709833107823126007514391138250281961545014144934362605808645421365877971489593481550002888880610601560465900217045181496330921138034206287742453559988258645233692652840938563037950938653487363124150162315803558539114015943996690806066260784094833876286702642817097055966638771861206217055301216161579486048479368429350192472238167640581854858611724145895611266522386360164816987787105802740272460839782205432965868841401523354583561872779110666350507911485616487661114985920289728770592210832611308145898560643483149695339630382801060172290789094768981986517749458083971198679289044112642212702420156961969186962971875522723785715993236370101741511024185264862269056090736334826843279277323554325026026093989578332543215573919738608223262083817146798436967047061978688938602761133357108269450774162497603091162852760648456713216122090092030643591601000916862558054644397292564581733429564089046850882298844694793798232898161865013035720954266725831682439340114105482417051357173642901963848450050557137311582822999234361490051570770600869747056134329859829519169979463724507993072515248836256038770036272251060205840051091020226877708327567647412034493862111133509161258609063464375797552477120783151703442935880692601655601201801037192106594569085053022212980788089474926253513485220251877722711974207762482033350784217066339711433605456193471577690029932191085013837195882088030300385187988363735354187378090925750116851290640729570437461029261746505449590520860751777409118075846380517711419151919221150789608123376347166211792325725532379568852405211193973823265371951636825048926238208449811849147011912585491734613994892217344381277492842219965788257235681666074650185059012310106921847682206152078012621019065187281868834629156982137947995571544818637529359110607251766544198303786347376158000432485904839392514458108102903155236588926074456136746996179777031591600510697551165430937170846281655102194889043654635308504993976141541433286659157848751379637330718969244873805341313157158028735222369394297398611664048383807731505536048023097949337477593327231148716962538754193686439387704943176711011056652447851476000806162196369668965664146188894077675705830968332512250986780588286279350086643172456328416546905625678719838286621847622377308184956829205098674348325932804783281224429881306639326073809852239927155503334567766373262962370811012784340056751433041268235616208278193255597512903342218324007361493265226297960225203283511764761386269228090059990249809718991002769171812447705004921400252863218616598796667008549445637102664507452717720956486357932962124561835013023190178398901717427264974951159816734642940839578846348235134248794616702393668991119247070955483015964910519331569590579344848341617017139445683629787602925088735379379451572137359398804900667647148047300046945908151237415559899801664554108312652568975929293590272165581373496084608439674759758218022070023965993849133642841605541877529785236817978384150648006150995137954951182143431622874106499300738198976505875140531369834649919175625991976123218413090852401825844128223214240376807209778335403963175963293226220062432880988021809062906277774091259029707767401078915729948232749106382577189563143420187875571814183280950865961724649107697423321359919121385728085983654836939018811606691141591980469838067288988412630494055904594955028209726222510658898372963000111364849330981084154636498809700270856004265197548045739166700220736928747414091963968869455050341436368839769352424951921174038017295827171093964430160464022642425341812357168320884699089402441904635174489560006629427266655852296430144865112864930049168034468899402826375158116291421807045897702134698046893063798890272792960435145286305562868353257433160659153035499395573687289101672755206613571298871989661065482838133777101454615704066693513087385154931333965320387064140042761103220986869980594248059278899244945538315561532222894527949469225397763583509303743393808022543235234442271058364425973246339419324724559835154913883914020322686535915833493145318297696243873804711410500441011038912361787525883675818654678050608975607795668467105688461886482001549412682982398363283007055013230713950636598126120204873504693269035237581274822050131564832410865423516038096923280427807057280294770924158368288653732177649236478147109993082210429572678037233694626425227010526413607058438115748781649023817580171803763299795089885720185123412782467566886421302081216621069852958457824757689838344478656666645455703215249991243032369284508781386190579363645480284416928863312971538946601378443198487791467581056242404535320995081909137963548613675590060883303755213066587350491218888211655403406600052744763027661109808734165305521285767731088589420616651252950931197578303046284089355296877230477006175297459238544628599400387955275226122560694437651611229221052338857615112722727841131202162071395683380589905668999985533630576529783415265149114221284915694742363275277825157393921681022020771500879307455330549570937961834979379205874425968284431769632451467513927372889008373702934002087590937098183215404877165776340169573102143773173757134780105721051671810239495550869406256329543889543249501513852757546199144732237429025096217797364134823061479907193160183034836385851968742700859137160188099547103626281828966173262053852483950228418214238612682531552448994431947122039586430965966596431652598663019807136180998815993643023952510302174135181510402541973990277132758127786787412543061802175967205661053565136244619371174647205934670165500335267388850466785707890185773763594443742334483183099363784248868833365239252801561652940918823389079940133736694284110830408898825698413658023343720859261645593348088662221559053647966419097889627753475082104484133944619337792880796367159335211560747069160904263224235274658539697601682114657070347897146335029391267380675390764543437224500865618268091184849552916791233587720927976196204747387723035545486564735486078111489762914637211203453850440306962910330795158167755608848558400560097239628286638499023871516831922774781286936138602031035412197459578475129586584030565459934608514354755515706362140528679629293073864244570171993470286554011565737624429117215886223813687427027818282844993632716820294438994833350587327945396307078919329834675340702466323062254436908574801755737523559321675862954617231855530082880275468066975434321011448450397030257351831656518244702109786553251861268826406362022061020290307788117261493564932667084963348037207387700252727057950568811181010063047920159899976785265713088599525832059118033189455639472583473184951551058312977004806797554525940708125079579625013425795861803387523012650635865973230920122345952650748421250743093008331009264555123690539852564211055049450267640355017725985522091285673672116336338822428761542862067701397564315279761595624668312292891103247059761741076777677402918116813992401853128876007852199783393999922528780250797923518481965258958346931991502659053583085833176491173698236188150775821978371753696397870594957749913075100352898195094371716966875589527964106670044854985106892434946336219958633451684246664326940437179942197101333743013354526865665594359514872754334762189029841983202126791948330714058315051556011061595048750543253753432678609155272725950747881897848197414862397526276015492061227582392401933558306636177735339378252284601190965941580653992742806356727243693820762092496393804864862619243774639259384033428393299182102589420875349349639275009432151058858235928275564650884515288499645840422451835171538452857712929153615075302026876625250766641465337533941598261173061593385954922309557612232285688463880250048046885681174601629008358540653578566123259864638122448325334293592632808179912766766722116151443330341312379944922296196255565713892655733584429093800502978946101518086776562110197012873019861258125470580831479170832638713732697981941633163511908434309929611770355264026326460013937830263700483084510651418793909191619149858347014954142712311631240597638246497346247889784424126956486571438608776668919437705442565470549928450457613141436122279662718971869008410001217331759120640830296138654806967269845963750404477662770545197885878022076254594218729999844209782852143224705286092963558186765419854030812735275556017923599979918582186488789429567308544939829882344185001980636741428395778904330876545533308986483564602872014403624100576731437831624700710772146775637989038370931199417857631190723066338808385306692834282576654389516438322127471516517074189199369875413218333471747872117699920563742810040505927896518394106005576832065513322917695243578645019470360038403237964762460641299130440462077690329063933610279682343711601240078235314754767984584463710887942665303997204707686230764524689531537919692670891286359170474512514041603119587334053842989341539667312042807845266944162438287504593727184771373483730226300800548251526044546102773236979419411304274698678667496990223493267480237828878098645286134644218053059732906599773037399378605033208571528923893250750231756060259262885365078186055182554367533371200725717283044774865248519153643042901308997801597997260382610978962452986835749340695857231638920220706737591511417329485505457498008444535013616006126724679307664470821872725062014401130816848551685138138836887195664659173727616506407801146426838090369183422265236174039761571199623690434353878653536863334280233439455745629443058973302348753096705340906273133888379753527791479256678285430707728665238974035679929109221823566269825792769450783233730816793804251063988791113459615213336189527117919540875985117357824381887108585610957246506737078003599446779941381089249559341278807615643690080477785077097073369820478602479534373538821234590135401812879564196775250806199723286874972891629487188779465518538591922809477480606748174999939576651917180204738356692867593596435256348124320021987864796013531426904985603170730198846232864060650703134887941813282089498170415239127756396501148410725639401828624614668139613555491611865615572763969293920343176362411990054755284676258547819423898199277293584329382774568691382716479971567151997592123548955548262855477827552038808763248102356450173464524004925753348595625803977730534018717688848981436504007523397369555280713297618444932725747396337675904202589652148424330620900401674330448724814158877338542924295476173293486260104293600984655541724869264215942734947057328503667380724837829242725695001177286789197433450242462482688485397570934378703935968766311140677049863843819623174017317093729430296413744863465480823133703456966443183930687822318817902591400242519813718810731021772372225651350098635442582238076735556060807731769718085754967854072073670247753522724378843986958542907445131608665057794952979408111855792660681344671221829166331802140839036696195720206276843682195884908748719069087085849647545338376092801406762366661066509196715267203532479231877618232212858668930532804328727431891534931686101161353002383720727824093331169200642182503166953828859347073652339966526267687218016265509794866723976366379171462662324316030478355176152302562543211346900678502251621670236744830669591923365595153936717752663482369120952390579298910101341404957445737488581031246850225110077021523719628793641681181601453161130252369541821418536157596744533920798765230266477220749894785310416759241818872857531060684187740144513269577003725867961629583211053052096992559769403214662571463421343665359093470130052688486656385482727729631295053810966868190809016727694634943522288082684559435845903327549420187782684366799581977117274416485028325465767639447171731011561307501099350225341835396351875127600087434364920891474712757552115539681086081787271524590588283344936893328759875017406614582919409420560181939004492990194134799863735967445518499735359977142869363506379881800969379326880358451476816611887472175868819144293210443844639773880699371980713523081376397825287245874815508459321571183847742189788295597329588358573429684180415299796364238077336598557167376820465802847962254946213368542246760380976842463316676503807703681160082896687788057099137678204666957777954897641467657271443265237614483533044347404927885971480614365682967167691141335169969118464760588723230722770322864629068041543236022471409329478845409319124991363305295601500232711863492480264782423635131039959467502058262775116429598965242813036193506524197898152108261762451383672555045737710402495584230081221648601106742780155950780507475575369452165743247812195583996013461534940322686338577640563984946457205076821482895113614084869092959880577076607829471331993392900234216202502645856640700410079272862048656578695067401880417104514494735553796719208813093079154580687003211279866510935828102276448423860760927787337791930358782260035061890574365121571670125027609355918973966866788218320113141106971491985975822708610182537607455569465235400868007613033326157104006191674874903631637951412193806288626055366327229869728074825342943851288115457328272142539630183287044119043698868415376720362401309796582525604839834859577051006583787185535000612826032862398718127688317295819612480489872853968885904241610056824213387854585948968104561500783417343550775722076219140090147628000369426799928917836528752895610640479344225537889113241866738749358202739994161630374224584823575049410505962137699773853309274414895179784591042020628479813535059874797150290576778484375298963747780675641072783991243356991402836686562902314639532189991990146720395465320407575323068239193781205988341956500933468473918967031821658825907948542597620745515731307841106272915049525013904975146860747090794189164212648808141064520274175252529563356616019358385006135955855699795850389890397783851116301591301338446490434639639681793566666245170825407146476836490089044240965608177826656722831550145889560246721884798255811138378205709461449119027385796427065298612035667734222041447410129333584404417682984326800404405468257515186819560196588937960394165426333035157880290511386637819667389137387118761031566660545364468307485104815706749515839837817996353375314218300297729588127139918768597709995571368490266921564512780400109826276660163408438828111086928168195271035167637638748985994869954851718318792652180680395715344407520718311897681064927820365087368896809068180828417412344587231184865424205933840330964557485394123338334995340876507155625508593490573838618302454944702367245347865426463189039641394602542596209461740640674635247494068652245272470657628061231160031920287854554892246846495772220614436392115571748885359755530111735427160098290229164828783652683418191895366968349092167001192433135262173152778537056938175977870430956198396451448602965040809536339042352158691681989081637164830918305330372658981234062558691552424407635841577438059421426210126145862801571487906849026556020370773415429026160581730399276493130628528802268060302734961359715953181205662520668865612402246200412594588348460601065169934215093735536308138359950291932238674479415806427224869847490353095677791187723894075051918299101582404846599739658796502612639345021140958466804073622972314150258290576142908272706558067958622187126172158431794146611803104549605489574967317540667765486902759925833230897585892446711206824756423749690736492363645132852085552670574991420610253278481938998026370747519328512661896604321080449288315947464058706602823357432949029281045222623688714404992317903980882182321639405243282420297243246025060991419182945790062662568553094609449059034522154739751944721778625112696480828874291497218236829751009435124416550802612879292638915586013003119871667594862531628447817260751117085400097797348537848139894837227540268872660876915080190329553647639875939401296964630420094171066494756730389580059149438373086770742967732209252077803464032183360408836781654525049729524726060478691228806864336450397624020697230004523453289608870522683911273971280404281484367305151786222547452935262739563101711340458332785773506309116360957448921037366913884685883874148176240082789472776612352090934819769760385738740826530363093203275116030159180114106285060340120113206328390363578222101658659460239391175416586456629452092528328878200183849628766641094502710777828601367629172991667447256368997329994638269431254746847292942306058307594198248613115062675143863831123037209593145762958170237789140845083308887564306435498929208900429211370850352132466515418105845873242821601701929147439376404660516752428761393928188969303226721178832790557542078465398980969176145618387196968304164657881020728237175200332329165482626880234529962251786381546917861846782053728611154509220561104663763296615276788713266228231374240396194085483081166682486546820398245426338677675827420014002811876153832146887020843611278097396508152025713761267871566640334232300563455983885453518078312077343570022315875413838151374402752070996742179381156016897160255954639188311587493417354591978733635468564508150534223356125842572192102978180299488700798041706106406648433284214794233410135913625292578426005401334392607087155794201182043949614182936334422313853083274498978635228557143091830718355821924166765023096058659476915744850668005572504092701664355998519812310571335997481324254880962625648340980403825071568763036102298688319875872980676211446714277650611627388767996472720488731322834155947327219650912980113299118426818515719309520306337022447388362249129547608031520925162152716684758180572799231062555435778195110173818862091271215998003840821616687649924908341615400857629257075744007342572101313786485770866253587296410745596235047687929668438799982978000677419959624705588226440169625716505120230510999695646168269071180950636383435974068851730717096182686003982905397607822700267251454681316802634063542673570616322628604047319021124118099398333814422782822220358490665182541797687766954561209419516506983756375896963860263161345882344851826303857454549899582717030466501296301181333685330204912561127380281174485845428501197965698773446280339234602631152265622918879113165949894529122148491574797569518578504916652567983738731615137196932795258209532316399380592482667941052720239543731025892556558209029985924702638432893555176216014781913604524987109985285272501493225349216486269097451312857907879454044053287655980385285513831304593228223495571877582096469082301402383822612938821931505333916580178908237275198248848228863777549937531184254716553727931085445372177742578680776625964643757033101528162869279483419595664419459225774621052100513449215761856170052238286802724174674262228953299750001883030447697481158331614333498451599653526195017673065129673538716356790028938909110215281367463162212160931605385867581358582338362431091408643749106040846632095813725640914976318101763742386056991016052748401603210316697518577331963772816681194168136652767158952369278462202684136316306599315625051481708912386666863556986463497043614494199649680998827921242141397296485970782671970304344495663908732790533089335947909954085261407116591048281081109641077992771743250902027471291213641562637970013135717123841610718416907053645145473865518667902468119777132730535097821105877602972564451987702373628046362675844129123060807258394677790161490725555645042314731577770443204921166848813979941154744918185134945921996566653337358881426623262879660220115138305604674264174273917098946370972016673484909437378426171889918319356384578441854015292416210478128390399264469052679800062479656195775357767759055846186465963796379209691212691455905984442044547392984749660996104101792184669694509945380844062126247445266591159757866649573977798847270132574720041607056150456978576544640488294031452571922413630726341534900630809134082558111888416254499746440798111673274958346007891761070906996333614402391824167922108879936861423391056024663352440153879549901898671548978682117821541766668547082105367060398724610317596971081239535068093255974398620572642875804381983086617857838151870918413233370090170984196004420481743979417998896117308218401805435771609995244756853661849210710514721237676141694537088864607039858795101982445822768481631988891423464805884783651345548725111763590081087649773001515885980238927718110541070016521641792954031188613958720547135201214587198856364900009757935783990528207405773070560060709613790569006234637681726992993818946845136225963177663465659342184503168435832693556744956180583326980264825025620407635372034935859877726284671923063759035879644896876218121051009610064326545194657065082141850677341284259692199393689588248981527341207601349920667701318290563679236231609339572836812997148544907615332529784019491391602668786741560065998113236943285081873576129434143741992511754720362715979256915166495731578588048617130547088824549554944368513713449925763837889312294524840007585572211249639193545708705771178127000996046817164746705322419473031918067480588749609247574870234685837878391352158365885697606956662458227236419586549168473370550444137156967771805248300545680739889148747692588007720523418037048845852206371622044494281571678760678971234238369998019854386224124971467332115096691812768840340711817585801800003627755463790912016192058723001411066639582442018325731568479228803739704092937136582078569105402758612378389973634777106810349566907674108702959042975226988908283816595771987427086896582363160038578909130742525760970034441754880165289345204153037419789717807562991959494652753154389592274550398181907532168750507999530422051182462954772246773651066540379119795282447547887544229527199166328777122117519110940104926424271053477439860912345843236422890567869952604771579850191289189558408290673200017315561198247137986012194537957049601400428355465986129885966131311374552997212792495256271162109189723815047530013722388709046606973015350272936402240327006545440307239537736446762049224995999021305103448494038687405160522327248795854324077141343388402734559356339004109228728989920628591187818838195602015312326035527525858849349273242243126827548199085648923119092603304764814287280504416066794084712919146948463441117563173829672659492136405457079274312630931380984940540237134699251647881587104908412245569762899832690922989180914404251172334303218050779017159548640237131117608766285557922528430553519764699075614477777041047295382025026058672281921545772591728854109968702976010187708065989082577235853223484095403547350599430727776659961330926679634179634766998201535886927545426045716562693288521290495085204073572130486503393631643857371937503257886849899968792389190070258173793478346176262208295883719269796393747271972712765874189040670832778979839475193825842102875208562007999954589853047389673304577200077128801500976670272664364034855393494264888342134385682654998478262322878244811097449448244976387711389088053395067763487862181109240722955716826568323827930531750389238354660543517576041368994349672909875828444675866306089288878658459229438207787241113294483102260539854737716944794828666446322003793796945664078013208150335256727122225731760239976351482579216528008491606047016981807877555030107945212093541932023005524785773400127088289563280519392000337376539936411226243485602491743122851563230933587499511399037680977544731099451689176463361750044193094942313886062244645309758436306369316041694667222016014506055631412315844332838199816195573965274383064521017048903830843998038442096216945524511710331369742043235976398677939855925928328832624084430253389832409138013746960351335938140277994517920294008440974421098981364595751371110055671399594281645218665519719238190392935230968339682714222388503930929466693563764218711944187241552043503387492053550031074643464355852736099049372381062412460599335302674232982209386061661093324056213653049037842850762003946044707631536744299742103900051251433851552301644433730524050611280346336348284367055771544288579011780283304469146360504866257037050189155897421379484307884166275831629496578000703975037283859513779390203279053664864609705187005711340144218947893259150705879183636820545598282793994882709889460635168902379962066885208964787612263196279408360750512901620458018758354731203426083893964972523454461355355096080806564298912140717423886501089787522916545963471091858656756611225614004802011337441324364795676678801308085326010725642204594726553381570130937965251547886832893533504981368089180003467205115857796619802050613374877769587173474705231284574924096259266184188644954014461284727251674781235022232147801275379015019177885200274791713959995431300775166932150123561558783847424395629095887654918126194535548079275198201710498962647874511061067537194947946579057148723036883319946356983365345421944167315684002791017101573898375571233811141903578524283196698931003992056908975911875705540646554123989099294555158638750704124330238849863311568177724979124855834926043417495945104643225677076719956601988506571755834681908161167504387844765556041453038547992246789472258688440365032281600905974165058644682880256471289483471430512022622236789759537046366839146911050465428960056574166809748336826294949259338111856732604385178644913758938318873499268749955163660068749594249660346954545702731124804407371407264331004087683219288059985583924398527922892917604191909578727219456587839704464802905396130450743931774835036087906173915679220079095663234499357359188447588728855133914789733884566286606519995275627178820974634948609736184674060035476671551223491679389616990629943189472399347401444581104597856505264898802062989063363467309678717976909809740465857209070656399788786099391159909259018499145347603206063109721091175003601962719193949281924018392397936688170676441960363461444155410377435764853763526754373676504167347092806830794094572500868765632089068141612661251701132386142927950639110399772713563202334819245126293318268759546037325524684701346301069243981408552396086914406895227220973111088349683112250795362710155112852842308524741012150417737639128513949661503886664795524778775591202951007981146537081338334878873808890062547830844043823156173810508024542909886045144882928852143664822475087612320383646225165577440754843732018317155957302129175508201099391849110623185491187139630147787912069279077047522961351242607584271253636872747251547566179984161336947599637695967625456250656196408085303829292174414801318178678255611673655879147950862629990715098171432940807331831067162990352352274481604786886406704681194336736458426583590873114152857636166979533030568020669342416442982291900860951361077803468338963520528791859771574009572664251083914500773802097599969893048852952598888491236214810918612965183968570116117595503989295602408748552185399721084974812857887183615754339611106276946806372591786983767205827752659984166341004768632380534661148871144851284904885802107706863221322104790064976092872005677035701751320708615648025224865786731920333253690389151706235332341783207737221352241877967906310275913430605960964421108251975428113310464011374975555952948670023761184440569643351615450221139500220945843566077713831246101623076151428973809554187136875211264418707352652498970787635650452920589459522963035498386769603777557762246731039015008538841223797717377164178300252935330329682130107043701792874607742955377922158185171175884182623802240439793829319451698893685009777212955105847717076160445243842294540678001257772493209429171159958463614245655838710777304637452120063041362119241828168107186941656911640364771262338485077309543371685206519545424274230671261737047768778768839292331621502627638749696084095044720780986842243454292101674234799791331974197026840499613368801197709878040311053567315730427499145147771912673599483879952229836237546027351768738627038399242139573483409954775610194414597559253174349063218136906589992411949579674198679936399338388249252898081214013408123491949046446016422440678103725890492032481641260232316970787995528356095714916103519753468521064298344211434397292440876172182039199386957398110126651753149384083679497099095211999635010912959126639850657178595087365345666576205435205698780258140568210609735196573101482160595197492207377322563053673654957104650288179001260362545503646232072849218445102035387420443355626166854629046553627151095884315398471526266984481778034489488143452646410433108084992730477736214089812756979092335288994867194693978173480949041127816513651135955314576147505017486857260889688673420264769192757541064726636551831638166623528335400285481175350505051427292373422774373094862337412267513469471342678242151840957961422670601939883022549409044048595809797576539568865863720928067646815165329203612479978892488446209023522949687746418836094207601720934058732706173969035697580360421419360555714685915267378778567553744200382929270419787902834536304240641074370883033216774430392340302164977830812472951327542033245632003072084851808469240385257048276561756989192800115854958733077453163816420946232211773102950650596510143463657835289660659254656016886598658522594661146019461576286694627563313734473471280235991277382778421671940071030630508712158197992980827966442653540334802751890634465670198955302724511186131991374177105536484131504747879463013534927607470374832373345060646291226516943192697035639880989682604522922965807904029314443279123270099263413106084097718239566525896262874168398431719283791940261185065736495055741467536950278478423811662946033152794251830402623157431943104238293080628872297180536873387078261716337428307628764119636670466854330792379950370819975581833724725185102448886524298058498164031710723986829700202414977065790204489334263489838053363931771955351346205104845037404202539587812875719060019145420262330853234933167000378122247941359886273860068568357556976345109904024448233704807141632240609459000638439610764586873445284052099812522509824356355604578726256656575227912094992909090094463190126270700941481213505032289217148314532157426509883279013286462092125385752589208525324487537881025435684207514060050808000949837262718184932935013706148009790840019394156005910434017851647269397790188779400183003147493562174417031973922234651783133264298637880400409819490439250278252158064788823266587031567563984322381836207944696757485386974027027368174475609933449565337123404386023375500137781645257070629076144744093890489762205567228036540205954639918681707416749661916040145760493858834122900898700360791786669660341717330727722124679403892568454444509837543447605966732746276482449932977446664527699505696911131827714613580835657946845703455881644683273227135149014084965558711255851792541861980341744150271516090733654692237216708547294207648736948985088540345785951249909989086136789428582145828618691204862580238710167681629038536122292671859154209451566557150946688406870580542591439191933203663111195802268035626871866516128421586815941417287192666076617458687011570767537080443877992914637049745228723516629919471943483277920198871088537812900351693557095600703450625933418632814714803947604682914716559766943492120271106139120643601764795417426751717012863022971000644299079378937998865110573664569030897750633839785712531607676317608553753201941684457719537311274945347006412442650846405338002645759635497759454806746605936912385979933909846401846729324398823886598076276248402176548958615027300411686296384366033068987136299599107633633247118770983929897451237321681996509498733276801355193637206269954253164679466479682005271885552720307614688621344268195467650756606109573421859301641884526328562858029642036085383459182004267757349896839153843690165017944903943808505126580711832047128346896331210076152071524587770005192144851654476140841649946381926434618039961173995080723381414014857702035080090225844689904009409284243342776762011052768444710707122083349266768390046451451767108705578748166548964901899559553822095380267515113410865000639662860260408934234521676149136758437858009950723977893999814854703477601347289869161050584087702622907496395647380406178675475132608073798358955522940688902300507748845761685864880818540656136686583281503873012630126630215056355938714059725270137536423467132514571351945635333131483951076990087181179894171285147284301016926814524979082659700982236431277152013080655307443042739616618119530672733797083873444518356992340055197263484995025122607889098821147843823367949729301791467537427077427606026322603526934042550584383835640371886767190262519388126244498594981774589045701334340442270418844653902763861475808749483295130550779612495938104062118674914529498204478578315914906915239381190657892303638493448044740911687440182043573905385581582242633874591911548958476549648288569608451337258241097906707079721081450299763535834052183001462810514907402632004337965954716488993932973701502164033908471320110010690949438058684256735795991591258402142816528121304533233806002465691422623565178949988094165725996759349962586072278471914673791639865180136551552109406076021045853620913339682700302011295342661780656600587744021645996416589850631066597312386660170193026250053304976352887451447655435186900378009516185640470459300233485907062799125041868646487295365014731128514174461961049940776881113754842990856702920471742482322075775910496880707436605971341158369239021050724807432310955396967541475596078956795153710120856777843435006388793658974676684349834234931164587542012079828059561577449451448686537762683520846835945215603542273751594091964368910474862276028224215182361738943885600895380271389227508287812902160539627171509839712199757160381131109681083198910789736882026728589049508572481865178100921966950125094293349820768337494926294305215619791398582531953183604153318137339515453090206620492478749979107400144727165331659436185781852204397110926340656850724406005337162143265727866821295357294211619259874267873350151251780400685584241270426560674631053535177203299530427858895970710007444850359103330196646836268311786551233415443310471000817057724231112816178312692830979194294389991018730737504926882050630197701272180569879420167859146218026793244284096413110692376390277176539829314321468819609164942354672188976428908549482610173086751938317829990675294986514784547049138824963969343314469097329152176991611968106466083739712090687179669893976301640855665063213725811312539720517951378158505146314266674255704300820533904031173569261600084230756303767693422870212213033056408887955552195927276070722925204280526354979747391941577549896165028330157856684016539054982854167687507972280959187524714712045019554285839826762289091471845372764062992799029593796951260124998156900775287287435456342207139129311677858291898348349954201561154715329159184234188462211312801422451503847982297712023460189858897255315083620841012606946788420157133099618900225368017930070250458704489060780069217975324281752360105116422437423476029188959178917537239750955204657427544037927815173575196843622632630180656836591647546910021678150635609589486911675622444570611715193516933737340743308209835542119816974407719498241443616180189880725844902828343627455337290829841331060664060217397562935792031972502187641945783121036195910264570813816373351552936405018466422943881304378003011636282860472554986392786168766675759212247061455855872067349739197254881434849299443628504133138711121903483594485039434951706086366306729424046968315343777284005060489915476725345148291769682329459159803065956179599900688737504617740961118428958661337844966171214522262013164778938468656928503050944026971472593226256050499359790446763697307098468666181460025412258966600079885304078015152781617015553978932316165540315650921374539263563239890261103027018343169096811583618074801581524094757569944281368820694052110634117651437742810544963943627221531808111732624237976187378732130029958460763090534299783330704668128356818673590747450923267621638394349117069687920332691747877556334268756121793489668143407051802219521798920798883458015366618740240415825970122167961339402404560727735778486476844843790644291857293545587965702238688480538672938238444262564732814014550161261409785315016963767825770682058553658769233327148640617345815443649174042773930807768961325205508019784240686539682924472497116583831239388332798736683697548388449548366961568495648172783059478634872326736046891607928000366032911355230868567775762071556625611033685823538234097436668606009939992834696471751742415611135105887434340678060363026410801557189614823042511237915680438928531090424568655721779559098000853736889367491781419239499172875914520987701752613857178658700004585811631359039167138335550142364783935528376353948290469097744345358440815983503651286390511039556139966340271447257913349517040892218798399637074675588804557297955268660381557359061846676144487352980571644536755669419879012457408514635985934549698493897407206649675313726347142130664940334340181742380273017640136183013594434671779101882839078583545592385973404261173292517667281734106959202749378934206723559508801767936594002265919732152295560255975714154496678236020329399403539601401302482855544890996538966352023117730193307239161055794284238403846290002776520200434480734376464786596592502219164080712401554817798399228213113053582889243553037538749655618074076305721074346686751228203236918922914804946787022647251439852715295635669028705974288887362789153617588284748314677379355391917984201344823693448162395375661912567625313033117142567425097569813499456259065769768851798583108541204029043629832196033965650903782553470332611799171990877447898583587885167926457750719188309889097659159750291089509113858555845811348432529813008312777846613208506825274206959005563605991841950063624460099623722521857239363914271174757037445793502990980083906433137098879745768994637008966162687901573003059048887837308947045017786690894465939464359931035141182770896950219566490335536535950011977402062466905652250888109605241440607785018760964087987455366002892251053972790847768448448704229806404083328574722868431453670538492678742280887097908178558657794391280238488494961071732383963301424679318094487228424336360847825820215533968114566863644397631944333843574678776867564707626300529918829178810603318174347668612547572149861407695103371559532504563855717989942359155176572804043923636881254101417609252521888837350315433463578132775283836600510431646170464927598274970097606443223920097962932021853877742581998749729217706634635288634590465538175502023130622270358951346233343394487724581135097070460896111144052992195456626806664522695935865700607036671348592930927657243073904327873287121484453405306266766272579492963397988659826853302218186554689194333740135452299102757893008760543486574991946540288337405554586539309197184791076473011124072889964923620182470452830209317756593048549045917634605297553013192998021375687929961432810443933104318704773426839403990009059627211459850328452457177082084583125464093908261132472994625177490276465799669070192571539360788618988560182250348675076189338082912502098222222814236143519769510323833454443918655039662323616738827346906082581453308976883027086687621479692112614008863204039904545331031282660872344858113353381424986918906158679989887362598536384787543254954546776917044465962016541278744136147006726434752118340590466610859469759884886731336300040852933270997465900968736158054957370793402497619530388525939736402220188504616578477047465998396411360838459978863764413158745324605497568158788705972945114887700733418638255745116537493088191637096277839460845195966179127759041146321495221301918442833472059550727082869864781475779394634026213266552967856759185799508764068286427141253407462920116083482949411307361828643221964199449968386805073183527656979838642338705907540550856530567113644660295289452724952326476104456774699837561096012975270943521391746217593576367873481499695864905681768013937764331781072541297414906410438012066583175687364296688724158069567012720756844460206957344929366825593836654435341014023638085521137692359147495636876886755790580374456837193780556218529956450053625270855631722168848914588462029401854518206265892535046157076901851117561511104345322515555781529649107736840528142692467422889151545211275643808326372626086938909536422752994403266626834948099300528269348758539407247511256342075055464933390010063547109852324652651564636529554824441312133054652054628135075167897864238536773496390314634101946944254918815816819996493164144483610052663486995082064227920431279885487874329651607334773770850266040171108619793355170858671511919050030481139916012493297782620269086563270123432891299203603204827423115706731638782952573583709645844483883253532733317581679220660067161604026403739089436856125994850318985461417857354693677313586759615275413801482176980186079156472188271868806425291066510380085610444633150793699826733748005361327916343744341380549191981475473064484977099552331503548532792505662564434454365797751756586737957647707658157491712540746929029119259436913412241156970037104071877571051362526696989771711883376946537116991411177525535745863681034495975900201335438187739805706102722975011052320371750313577610670024193228456825381183970074286465463238960669878894476723956625282665033171155787700764769845442999444193676634970766039048903217037068398539234694944589113698079885911190829078323668319872778893655491810545926798054160338119315199364909841340504838675008818685827967419785870718488873308666019795055839526353366970826029689595661165804825281167550954102503542465633517263076553136156768911120078559450925417747514352372287297506112276222359481140558534695516571069607112503499141380752386251529812158423746926900905993718407858897187675053800155273003338195385456188139874375162785539210692880603335070582581625277276409021569689373165634635213582434052103738477146684942712111660584224155079367618841340962677346993142013107457073046538411028594351466585496601102475553995847710926611268579739620167790077383885029961815756266323901721310733144982469105220692246127706063129743318386026576701221169903826417115603216980342524992480832828665665344965060450662151259259049071149620284310355992053348348348195510041636243956532466560312289227747099967480906773595989385031604723176378728339401678005811271101615697914570178139912661361390145027969088493501273621458543923848106052614252433400376487995011720385606679537900676993718136731413892128891978628279752495726491712510955294501515315877414386935755917911293256291561435774615218656520360221565309249587795061660773110737308728637191500911326319488169090823930907827092637348186177355884629498915658052031754666292597205654192449686633075829021966935567476297970905492505844055455369966789937699719628625581871524150823784162149585981013701771359094721072296881748414918114474857874237049050515519407909719030119833623736907775165835456263787414752804826496131160152495338736224546549644618736247664016450768642969749599527571550640167233810168011822194560148658184428129772462340747791545891496266282034975560410715925322980738978278928468932326239755631539394232069019151323346633266910836929210377061390630942113078294135716450492748230776121149246558087735321437679543315441420366478222022273694646095779753738367338112011166649163519961330188734720919737025654861150245683933268832086200732660091839025882593039755466226606550179955844387906454197338823735098300797529880089837107520814472405470213469415911292153961766250629315069151590762350055403562803871635075798817132801112901560470245727564207885835001301567067240044206308956123162216645095552830462426643265121770694661225909151832699725087185375207296379120961768448905995296541306476131105289064034382696201102038347339916319739873216057004954616441410216465808239483916556910072798160884093554246548944912646950416674214277963408179225496442141160073145539308710597842738446837285165322207556408474045282446657850700814182879697200551776689341844074052879286796717179210093856731771434028530341829777619489099003718216329683600406847662684735578062954377648819785368242002900178554492220542310847924076349689526978279710733182446904456344758343794646428549699086175127691774795107182548501192143706897293944590506041430800737305162277035466839448653180122804977164254899355176162782335982997826085554381430036158931355821762764595806628790177335091128070912492390049216662225986251919917964692893003839497077778058437290116098950295364330042025134714918035708824602315821273556637080729500478974509770345358486796004441730450915407530051546887711938598584562654035070188923653946706047320952645147325330000567096602823384489833196937352701764205507522893779176052442514045133231436978044307578586188066038239190794402350095206983521773220890046758541410442655167221655379883535219504680673776859829921748725184203684161627710060711304373688946584361940232415366435164236489469785119624569168756008952001249038769555955685957468892305014460398063725907455583734900415331831857562826299232458616733861367172036702847442669120555977672585334254059975816713840868077794160001151395647607204632891790452484687802090691169069377791745278475635204427230355429486743218704444524952132452528115064441606367771411925981200409814340436675545931868231377348748390810042802724917726971516213998897430802359086848006261186777146190358842023433806115496696983308871531432719163111792157778744938871628229957090936550801882301515918833473147457782879384683074052180203678096423271883415180267377278439761840015027522196707457871571649608656088311738798887733527343070005331457808444391395197952863809077682252675910110647676462799256312930812580199822796545756239248461862929906006969174029838520362701874210772466574111128929101035897473689927988536182698104384219927485170874334466227850733731440722209648464661106895764370253359576340576263798511184022813172348939205397702041180539662782899542430913812919170713138866488086158879410722950417762378021783004278760722927329307851135797329858754033175375683871025940077188469680057350956912210997054740073809656518222408812170891698789034866662909306029576274568045463141885360548222828407700405079693860509883455171240873640900734635189739990739145344542575296084844432546219358293493336092528893590153183965776317606209047839296214363585671690092524677945515555230964447841913616840996841039056678640116910593390821449425655121457150023895395703537317756807238134204836476274348184634056281849204086316414668802348314926450736129858543654798687314927112404878309289716777163561262158227414278686677888514660729278930157097494451166649477135846982625435044906473528382504552932219887622782054569504873672382725544273408791018474122545105960099361619658900339439945642405090641161402461318967988361242007666039997538099406503253685418077254254180255446496857452648969648502446353567886651399695593099710460107724474878774445362643446696396216539289125920102419009604322082032954426480023345890315551864120141203746653164219542909491274446440746321176006782541289911668917873427141411192744388623952966387538114978531399352085314702033313817603612713385511336168583575574998297242284904756268394616205618231335097490338846230459696473599802663186116153617795243500748856412813189420373735522343212351943068878880183173070849087767524986828928442913925313144852082460498743845405180531431817731567291483428431244472806857337981203313631284871658856605557902155095342328327002078744281672289147843359809292126402179571574847033726924693227602467710966565633078855918389465789452335668282956753337630511672242281535952208323334823456668601452239612859503546460585082037851918708015579566791224888047827679280779951821784639039371066497264636120626729413011743728457689181399079545681282296656307603046897270895471728619995061795106108283473128738693468065662495342755021525572082384439444448212830031358588443386903677478347654535663270703776519074533364789952200004170197547348643808209424212039742531592509531876533349316302617101173563019834862123647610396977743098780048027434296728804455255829304465655471006888802536427299390176422188028177730151385463438093978340985987933966159608056996538807698288489725292830350323816337783915161958455505717193458151849351628992409689742548797962770862117397409173724468141341533435170502239266950577359881078361779084557819541026265904056494064581185964902235027139015242977049649538753642641385286234299001625176654171151610138656331529035586339135483209940255700830465897560661195058929655431300875239065826594690010416112563376362419371622550545154907898590466722915181501852023061382070646890098493088623244706358083886700245691404550677863147264191561325472306203537000960028416890096723755656008868317857459334296231237064416228682856728461678270813324253632616867414336772499186900766802289698544964172576579216360460609137251817415775672303403979909564045109278081675109907152580395854122710963194233022112642106301353048395495088749104320776782190510719638569378774611034815927148502811922413135892297053304816877140003297872118535667448178443235501913184540316830110983887608256233609137510074637426879876171159377072922529602139167866971471541145316751444213888180418837857346995922511291148712073613297366432721067589651131290469241480822279497979517930928212504342660531623396081581991942263575763450008230126951023394005617852437490129463880877130879865284711542369404905125788768046239731393725140640966118503292306773743053203643382936065799456655966518953619837447983417198490918624777407826062977692330720902553985210250771737923051767491734208242774297529309617255890003973240474875159666190296026711322430677708025254980579535056764518426681748750009708411873291070486730803075658991578577192712748747695923754497565676462883433869687586778093086863875160248057856315167919612799421185486970626660328552751883808046478001038397117148362331373418675834763644259717392924759297024787559434649646343077040034510862551722676766737228763306712895370842344776167411587774892283412804236255571808223284027123744679162024429722283029301782558860358709082075480024083189188188877991994838172234891541117147473258061356680144729957066442184675646187922705140285872242653576699585880125924485519954189651104099781678364287031983820208031833058512642405474831272114658866487710501178669982138413389633337462541080827998076446385546079927085589102686534618832275029933146973438573857961576352415821586251645839422260184322759566865713774317181217337423001859549960137019818571339501028174412357633939012482192110086931610907761483623528668126568659074545848394934173395709892044598023431175460081880030630843850563206692465304932391360450176187212014151303471676163057778574815714910277543009641623253843717355266818661707302860629283495445522175251377843473561105824050109059330119800202936221099041085343513222886418697257910390684677624450557889920131258804444069748505614625467133547110437866373614770760149985881689637517175224296117462645472197475110690046548371218869133814399412881514092029507377786879283763020826165729435855264215356361592260215869701894833192514061334613708219828103165585738261082909608954624696032435011832303064199147817186242720213353091719842047002292012693050281598301162591996508041531039016683495905425807654847605244888123031366444954762419346319452348845977771289127912017151134251104254276900445172445615427440396756597938654728269739742887090758147419865552272312456145041378617468833833735740809418341858259040136890399014621719878683118843142927923973017085019616930242062406923116630587333858354061595629027504041755175606999230523233300851926218847894452476647261841015474694003505960745328837104496778319178484981434090226102277764356991500517504507388260835320920976015639149598303767488263679641049482620592475317110319356482790500574852720623325520760555381346824377785010610911199398542276976904926870868985316804928357163055161244203523460614943940240282135276815462584152675662698044243264487116853742244642677249327966699703961794087870414212405068684044240753658841025194295085169403232495001541587794118688698234374939730297841174596362886341735708201050873572497498914003516527305364164645368286815620959727333105764497593297911763655292879074992387547516394998356101105312094923724212072859507492999031206772085161558802036596650785776021058307695242624532081210077387805810584490676377481269962469595479222590128400732579588001143428129744536325725915659287582033481778547004242963190948851002583065338045897220915628640375357218875991999125009567567182944278356300576079771922440469926613849528501938838142205658981110272692824847947230609134531083653301155315068891948442423782654721709317413232055456177031561228712271988276893419641716256599614216984148790619622000730996942135355125334351052891888711649054363501890889483821737017312699921956680259676041874363144076793756955043354379624182746610001940498244425668022516264173610483084428157287157053813563005847086840905619303417735230927469907517259013050418082554798291876207421657096195509872947402190258844229994475279907435805499620389952227466784778572791541307945041877057435127399006385084531488125847883167044988147523769454545269503452468235913099176134794167046839004644800430132044274423622618356522911089583422192505744181744754176094238945252497118195320104345244282811995432740830759004127533137672184786030756512915422201136852495009400175374635880349331976192363677513662750921590298227832080515983959210078790579859738796709670086686900841276889417908514630450203685094731069049264173251477584127423040871143360190688981429674867742272872511522906874633090965063938127853846843624999041212473775524101430324739936664430299095392860973757861129645464866037904136823588229875583486235419770184812706337754719783330315234723783080181275934067983091403684087588641683869462343149223339425158069973248232095471684448122788659822146847105887177844630358050015994250562529243261464037673252702852178581085606123285294157294674081318546304623302938959853539690482764515890015718801788093733160471243015849847425004296839261760732535057118645648451890977924766238440050021428438708916573629090705610144549026453178613937926956368220548256377727237523565343171993447022303956719862807862555846744882913337732503891893605992006068115756647249034342484534748008540298109322630248717191056610432093904378960145970660546858324781993177093423425081707901517471591351779733723283110488015472588314630421160559638222630533687523736545416257764486186724586729801216722690962196891158956383958024972770463907818956478539659539897326969009853513453562173595800420399355856980962483110088447427492652584482975126173342713436497442765870924958723084481109774385372510507534496715860881290455336892056741900046305061281157144425823945614427628414730021583400259918187156964309131318912304146583229416069457749010194497426965396965028226064975206350993903179639077560994852080485495296433587115310614395898549744846509537016276345619705873062189978459700892120990666033545042930324935558092706450869038688250695403876689732250058746265253467443573290108647953629545132089853103154091738278444820541325117156741894328058045474518773450085175227087748537470149587764903573856801737645253641489538354459821102295342103501235441177037420004266918435373859770319107523140330274239728185791062210435181979165686554758316284724267276345542458503422850547119682184251966775388742040572911943740188676170791529631593214805167548025949098715895601552965786756084402564029638440593280121266574111728285963071685182513207135315312367593593871192689376402583427674408256171995369950526530630780010714483656656383785826015523121623109076973793903877393263981129054981669981767409897204460614801281333819782891625547618725836852895038908493374215711083497136202891768066489823234858791213195518727734592277132397171025207837476255957162060886000613946020170570756533477384436614344251999065614050673135886302782568423835075180336535650805462395937561119781731347649123727392492257409040252390098840027011481993474804046398178188321961345898194233961029111869664440466670253737197394890610385588108804167332567281406427082393079237196271911515223486841889100813599744603088802946762705665964207621998730139470801630877687246478099346733056867171113384593439011765705722970219237649185627457310190925838535818336127987989705454487806279015333775830812790359529019832437264607182775862190374378114097357412266262760439038926864199564626118543200637522913793053687113215229417656076584734023854094375138258393142113335081882059903397559340316261678404251216765043763128218822005185463261604489771912411275290614154409437108254585897252537843279144387929963349344005263545504044856914803451143910811097931202892754983354509735684832220235472253014915344812299844483248335971323665063390231784373231949405822485035471241412589295464232397210113846690990446287676114396834256505139783791100311600301240629591697111367264200961917990174141012457558294190056201906455425515556923952362165142371826729795013905514169098049344511650312372519032670833144765216369926862917273163914941413331399378839286091512891262358118373945254091908905682986122592569076751442859143515265180233254377820301937747074754301934081158263960375892791335300397185856786933116490315690848789635045194436514200358651936409688525439523711922085531715025061280458467772040806938396346594989089056788728857391276720093473806059624361788866874055559995418194311878866646296158696248632371150740351239273227787746584985935307110962776082385540915371136642854348866120910712795498927294288413330495701496920101323043085500804155399726300784281060185651936681166979371066704947014032372254929999493446249727355571049516750696934833159261477070411925601034047971992334533999114645671959738020015550497157373482417649552883560797869660428066792811619169899594563896376194929692144034891824407584395295680613884324994686450169727871173325853329267104222097770700250036377810908857147483057742847747695930697539743622269515359964926915412087759422898467545768279648596731031099341518205500422325836040376719139513352598748471454163866863185592063494560607542379129269393286325618977256482215388479436261114425281969972403937812382094873099761478594231351388255369659683643053600874252953636157417682411253401087232218677788309673114027138401486925918191905847230143342034966538097397739031008717376110302382469902381197068176171895916339056471632452718367095697275196896357183576315404370208622598808706810436690450765345895462321773507837074199075820064920446614358911384493354950807766330874158114111468209387655266626966123225247907436733330503513568360432705157044742650304159676358931479543066492584689614500374591793143923679425206242393628477540704677185651017013458232893122194825890235838957761233905551498680185602930695529110240919900406883004347163942978288129258651689037496261218759310639086909557181562972392634628924969992947299312117896509363262778827473980433454304870706552305397732760510667865788393536906989454687629898850248980884013655406504478755854885449019676652858383765788859638062057037027995577239889227276695001411002672045815235087667773804345704921882729708555912188885542795651306295240923748211675123088120166406079389039884429159071484144121487080655561788536120932660805193495909984074709960291108994404345591075049135960921316487880450865982398331839523814907534259729255617904111845505823510164245067468010260430190687247153688362753426032104931691484031708487651677344304800289048390667317026631767103308102242486906061182272336353824420427352757689089157839064740645386798450222510159052319767988226594454042305719770521215491434529648831138156797099320063412057817754634496186419661750571902116834519864163210667964659904195380987462436050709325572975138228062944405934102375250509772141631076685140745251162995441984448900186525756115093530099321838597922308555846953772604789340675514678725882289725096467535123499772748567238613365811527143863789364381535558297998217109611253782815977465827998836689219941861701467533593928984747849111432464896580541330027903237925940950429687661862572808564445189335612283094378757816191644291843974645753098519217221964619625753313492414122755219346590150600083570185555486693363722211738655500190842151518612139909514263109267000316676801757722883014263483810242744137406716853324938062540242708339977032610724706227592045435485752935284074141945600136783636081365498893687651228180659062623844179343442141212993210382813681265372169843613157300974992273794417753711744300710446416158580722039173293135889704201616301040051051456142262130344516424604371676185428386659266649304746483279874535317977965886339678865449524984182288663028791002348242780129356769332066039296843823409939718989626100491061509889304256203885659353347815207528898929227341452543710833136176872759094630177144381330119330094529542901700655106305241054975538539138665724930469426431544792616286628940124585856306162150677032773154745574687618351393205795719082961610568893813267104624244023805439220553365646962541032716701231647083943288939719703543800175285584175534161411377607818316238470633645872523097167038749037114784433893951044805090656070435786341212467256870527109484375741524388177011519638106099853777227700584463867100361629366288526853680087384964663978764406329489866731774071851727903096750313746819476374252715362171057259195093477906860394159544222235647853361210406471116821590878233560827672534320798502504193890289982931798949038553212629374302312195870492795912423000337118467434220993691312764295000222642016750142389577907973772118987125509738019123704906067430350642975558023407055172571375508377188678136925795735623932234858392191789163347790747653971612708834693452040803500695158938207729156331623817368373808205086769635235367244351599473045083718553973585180014160309229571940565850340300996327760421333775168036913936028986561044072957024330808007690849756946456902844186907900120627799860164613771490865744379623079336604067109611327769466940283177908457884251762793915668875507105617873624032278996579385144038217180386314968475731083777593005964266164664137567561313460156287435851007930274791294966988644669293164952457762312824480189365164072624247395068507309888373561811995316736238037704011297575725448735887261541445845301101152091817729252275827680022861479106131435368074798007434282232618998773076786060722872227511365799485212796196334668457047995393847669402726093484387400755229737847352467179463551179898489853802871086383980243207555251087008767722181245784715842185815212507754141660594485737010758584079142066980241722017378075307371788463669081167709777251208750267427020620252332458783566082689166278390566575087800109251533870518113155343689418951209604805596003471143328419909553706833240559213619591623894615099199266841846999297166695916437646801712166068452379378007047694538700607582211640591994611190134782629240158436676745050361726628337432005343674441105785225938212824530297767391306712050077502729514099334611418042030874735996204071165406849911261545830005677930425384756838406390028776016276666063578942900552430050682215037139633030776509896456414668670260706279316980607972003466375622659101641273647530820895317930916808210352152961540201925972668876915438787359930144940435816192663079039431797681559224389464793392837902748289088278331175837470050190219996727956591178607751712529251235150106783596787521606147397780328348540533546913155208151984212124500109928882046800649236326761322825137334786961978063906902645929830952053579584300569345395681729508848370981487476107218283353752775158108037416888212137704153090886032033509904441056258151664118726318854237779454120817246920752694359597206343159951785165014665099808026801314365101854522230839039898776368072233450630558895123434784250934045606530763632530243435910314875712886909516105241613450690496974468545163770762837039109828066547587136083494161192397810840244339617704582757156638316055130255372893447305640219439216309396179960580117339994510719790278424810865159494442422043311334347841394601520980143379936453006809275019232765497295600804772356072333611761116546023257005989603285588363316099775665600281275118991853294526954204153890566103669239800087887127720282560578843295787922269031550005808956273338923543492523015570517188429997624047667739608843489373466346767887356394921702468130584618004775242617063829197705895112002109173078366934472533745585190474556742281843473090018549050118181573202787465904069723217940918225125347602089694744981525091466610165476577232792176461550527191109826186051617598367623757407622436864522790892317454130824623294514364585187663252810266617577394481202630788376609625898422093291351304254756342484038220950117988774872569720145057660206098294426124834152321059623025745802817814827495037177497402414587535783175672688144503241582591522493692566179942506611203752691076183463699673906784482617012109291586982462862386633290710005204597345513124226334168566014094031929517546914556793391927636507269322470794242824926036122319945394393334476699000763907464394311308811235123885754376666918391533209856288365099064136274491520095796274987812101146916807022617466124352647749421168329519348743759857412257802419949705363879217710221861733274285726523910385464217908822996731417934547899406828899360684239693299383291253517516120110029556619730522978125568829502496933216931469527390924976030705202494050194043031229348718285725147340165522611367996683959214679256810878642904245759233312516737486528308419758776241289552013934819846253146577879577474947468279981274240541976775213514678800359112426558176406731542298865747092305540404875881760639045503756645652436277972145074583148796297779972502370719554291952349077808866960683315069381693267333492264462758734970674363524570597218234854344232778070667315813355928868469808107147997579089596238342343380957396205333043482797696604535925890897577255136337836531282381263435560725765834123063894061939305731001521363179785174338437440885563915576838370264903696712468434741956343282278727801784064677834433401032484632281859299769918091853529838337609938806728491373940921437134606259459389442649105274016445100150704675819217213104263058402049801750018768539873081499811022729302895882718956432327677731409031168114347083241283016852010118790797540971494284187083649431610672722684200750876259019249283095158611706919063886365869350228243993755800742875494004613024526171799867000049953539613157478558488416161017475107883614230812324378943018419499213900599615190817109045819071480970771150118145663454439984044695591112966225771565019320524690511518612144353551876904482037125703059548453540006184802970463844422869970781419709552021798805558413451008590993998837420882092639777367281350955543802527685872275752349816604869117232005154232792330228281326456020629888170347684225583073613852225491082527402957342198013073928191392248152112404742654099358863044392695735263452494631923317415617497019512168849113121751356547322446277990738358140145339394726605982926200166204688455756365509982982858361742427918811445799393519477117603434399627678328706697372210375531569352251051722953047805379909745664807902619152874761349143498116872320356959806361295372085809249647143405431161542249764746241577216448659433760604791888820564754119469484657886865923216607815565275564724389532005910104026067286817381822872653317398257325910169409258940263455175911221374348870356692071904329947886770485707738214391822920710811388398448812707462586639693800993650581228162686268715823418333165567620148544111967459741586596356094922138513302238003496050682239438447009691337991343859529117338245783077652376815815902440363706815388312011979372867295467841232476280397912420770536905941750271594517864437529097533954232699596925528544657920421948938717303907023846713446824832481152433370894183664983225202194355717935997528145211838405261443838154516743443276786542273022409214917971199829591729259545226963171550267875535494926234788095215035335753189428251958976424573800317373635913981900006195374368548346109567905906798061384967801474768161358881550299901956898207208261987220489820131583568833258435265115916203611191612995939174393189078894827362050109192231197413923031543906788233549693301495468690063112149816016528722176117410617816675726900915646283671487689302148478474635488102459676195128317550142031895803900844717037660357761140554350174921585591791011368138132165757264379819721041804303205577566604503934207703263615869695565406908114941688461755021414976581261709446457291724993252143022844563007083164021151507530400708460009756399887981670333724168278931657167377261432700603251476523787724172373273132035041044939244313586396246806045162151841944646752109021591569159107991278500570780292331627758650064660572129733777357534428732847959779849593668465722897367312847478880203544627288782912554335708788170052932995562153007237400694669484913858436089626123539725220676038545432911409437345607391910559227956774822636417615189088214334493000878800668313357516341201342178221867878962735274846085765306094795882042333177272124816085628835448360327968825653974199066754397854662609948459036539707023328346731301157586543956090881733729439710354656022305827776506710217553154446903192686295160367496348849116214606543891830353311292877203378180513382807174100688769135874772918337566084955691401462278137363723548476139832574037345859284950416934588530570233545164989113283308421827395766006381702615495203644708949928680756788103470095719104009985115556128760615133905570469133059312012125023530280436383735817818027501064152216542372057231703101504001202828040993431958339452345359279073476195736551241985732414516267566062135135812761822232500976143697488579805002727391606686791149765888332635546352446484711137579791012875341760110177793687388535258312484219800627129735814589011382502386962073637609557305687653413903809913641878949555011872729424668517705085109188034332571354717877940829780029049055313829715644798171351478023354470221128756200986945279590228231136800059705376102453603495077823362253425760816135425852799656086487527865212354231337592768477610227370299639655119698927999013009172515021515257815605017872583513955041098845037869693913338123431957436909082508409908990606850294746709475262062784875721311721861561707830196713412206655056120401633118301024887374044893954491192653637299462598902483458669043409231867089335814220713671078318819315560216765575863830682010824054123870450344208188074872113360994625534965247389636112515219347981270729105162883381208050360236557581562745281555552315418956307289271634710126394215505859100180818667489709525225405283651606212442234384159531589526511927190588260495444442264607493474190098781183572865474387250269350916136550721375140129575993529523713847117843280895262295798301752983933011796894036109380768431938532327812564107571713392702252867226542670301286984033785177418391615889857193880404359730826240958135596346285303391008636466040561180168113393218809257826286273431868078266184806443449901920898958561469048464288713082260595291480836102760419400307617916461556569912517451870687750908383758661269213644497035095462732827330479311378800309552851634338763019683960832285345946001510283171929412441480967304177249654008202847613835761049696264158856315009572241538131853176470716961610065424969625046713582268714882793361416962327714580416716580949506598475930291605296530729323267051486242305087439396686069800793380394096494782034716517167760589731909950066490125053738186640292581577802426214962340192980715316412075035993243878542567633892379579958267609443917491980583658822754438677851218897125175819134442955743096701382062903968476341874421779329236934367146879093401067245650116319011346440462009006054017195288672243569825306918669598978496335170745085994145633680419069210855772457082758976277636050381212984581342045691344686514991618225357142431080322335983400365688643592566224231499486356961739038817035080639486359010688032841798080415139355723363794740860362413856010702844456238490397380925143259879676556096432912902073564058594849968252797200086047766235533696076479446832911784056002562380257442988778411668766009960639305535735885003512583771625883999711205681263314807597067785002767202130631870327448461062455546792257728951162625526210193109834751779283462892126715152965932907041306921282285804834117971397840353645028620501671846223353597289989647761942117660826521331610126986572498705697458556339700947233227910445883247751645172864193969199898197705023127217365708187898477535727051465995644778353866239377539837402107867004493260899232057500003328473830655635616901481456111894165679102493862672178347999337808972123804725247883585520388134693725077040515299391141169670841944860431986848930103477913892364522983361456930119326395903322936280395491411303841020025706532690431064363703986036015972393924903450536511935448948906867804849943798696977183150741962630500717306009618165927663554159820222453128734542352581212296071662271715901252480009724206308532853518431214082441731375477071708015560729366243233351047981191186148994066800611655613602234831071699154587761531247665348608