Rainbow.exe

Template:A persona template made by Cy

**Warning**: This Articles Contains: **GOD**

*"Let's **FINISH** it"*

> - Rainbow.exe encounter Scootaloo
>
>

"*You, have, been, warned, Goodbye.*"

> - Rainbow.exe
>
>

Rainbow.exe is a titular main antagonist of Rainbow.exe

She is a exe variant of Rainbow Dash.

## Battle Stats:

Wins : 18866720303948146739891639328338178655482830446690050233895807677749773560982483146366350251160030212866220470891724028286536564054239891062351638878673349682120144673324976448013233311009420251058175160970697619161382722905933972800102187182336142255247223638292995230397422479216345377373881413891739077632955978799347438003326563570812481539507091080222882880205504269679306744590802820339055441278054291360628603230520719704240871219978012154317820481963064261265399364417610885137392529708130335954051604091832229646638942297797065106585000532196308224352859544236942612927538387340441004073822085219825733992997137908044405851332803967035515667377435244018866670092047894892586906411603131554296345315231344977523850704429827145404904516038759318284529141050633190097718516781200837414759712225917033799380878627420769016679529403825441534252045437222153081618897124244332146718475770629890733609790964940602865970576573463764488687449623104693803562028368801353762701708848430826078752237668253699853657170907030322742795643812331210680977936646563466194014508208427346990887505526516161864277015753878957536150182376539704466653584110566312986132134635269424543305266811076822249964185483078633605774106514070995484821655853187748288485820022999907425284177062005855462642076394261119679238068597082436513124268017045983587316670974958305181874940513408048049850975049536887569058718592778941931634512234813373868096481053354481945788613735435976340743609036751369390186540517928907068568256106631750578539145076742999994326534441211371409020313090191640171463471438602807408944938629648732441139044519612333473631894068496485423797647022695718149984876820955441721350944934735222453319740882917194780262165538566218396332792124871823243651752024085051270265491284383236155309833710250130440212874593967991058343751239027648228261521706924591054016007399558416292375972764688440070535067631221469331898288787206903420869479215129223083726320822312682936501432223419664011729122438423169231137111278522204655069081591032752317211144669543258875984816087598653844561041278503800145731646210074114441071931445514581894371676796316137227923339237782146204270744217228392102325447970365339895945683187973666263729995447026646860027788899194347901155283382248772979969213738553914863817981519660458939447852687890920513724032497286005728222994747994201972347880205011490886913486636125354906561605873515062390973187545570841984480603532173607968741128244161262297594178947480588263669579648531809764472721052708738767893649273148816824559137831185785875860442449132837887615940284096459411349725000643429847442335462566039415701041707934554124282005683159727181387375048425319790285592558983410093851214564248644509394479051837336587532443875485677276491246124677935954441160030584733192493299808676452267388252019104033572233817351790678752321200644064591300654263032785586074082830176447155993585792999108777158408955494162688144445441737970203024157461093064025013516865090840001867421141771125560062948264537394381242039372406077888579518713689812961602510917180337133642609540055215310097840353175853339810491536386766598981207374016085897373887051955664387649596895769352357098081899166205175660252223049395123181031927122670025816206474062550346227732994468127550399718376998581636541711200617429788368238445238779887669304779343967349245551739149258074600850725269300900373927039670456851578229046600171077958571670160633447592883473176882955757249470149074847635413952982674539509433019412373744325391737511463465578319515662013720392441483205926642833436446330064230048047272508203842518877127731377145733786342565948449099341168470012879942788321272335797863827044640610993174731971470468863747916371191450755544352667890850687912767183904234876747611528077447686906852439533449971105701327214786073264793292271184608848803635972579983090598164871732943766901690114340120876555025127873881285401772075939885764892231845783483443882385459443859547523915741189542172393141717326517105013616411838082217029060980469508618851531706945141514143513393675062861673052057784291634026980141084401810922040685103179111543317435164647164546448303706746809535207475607074236481692303505843217119769022812898693475084024727663265150921910723105150453268462572949232565834246054730943290560736509081484511309354763883629197205912068910363949244554471607572691959417993746396548090765931305535334539214219477454702482166385615951144081028573918900986109773292870083609947332126148633906117893141813249476842878533639949988918053790476913608298235031198995477102382140158963851040508996340198910001599233830162553372974465992462819692222134927262921567688779209995152717845507230087240493711005017724366172522065147620538240218608484393581191034200432746478819432356251023794683041740579193019051003984003526940868007307213331380202331353287780353133746336257594789538251868774264828413705215375434175045992560530916480825551133010967299046138116782307835337596525160858515475088779053197496664121035778097644428748139510894598051087172271468065441446245998035953748997285065118125946962669940565752365717163882949857252798705692714948163327868915073060136414727135851063429431157312385747555494619286710599007878960319197609173998972324927726029831484880146586977367523302218183372035497443046033866519246684041980439429861492799620270957054221065365444303378125830002510347180997075825389433997224021097662846648910635058716940886858584143255318675182901773456414160648634879999582617193050528950613063872360477129724854860729334213622889070511870776604981230548002871294963547473193394594007369333699601644940945531009093879119714813043304906744347432871462386994538913590203858627149624545941989123507460008253153501598620213405151251186880922675529841301440820179680547639762785753775461430757136801516827389929517687840777687511394492832361638198199039276369661955220002317590805439683511426881536890059024545722414776328813464235449475599296216565972193608802351307184470745963549681490496728419701908370422311910726107870006801089744542070130331834513520979148339317235939153149689135802900915737210707916590769624493198524263678506920552499932903450211273564209656121912581777012363823881930723348857447170912711609092012216900459029332067089691725672689008054843212567277112400634921897665293670269602510929804529259420436890055727586893092769007316986242738135190236783072868090054385177744291668661777858662738408132280673401852982628518433636902374455482248710991496148330074994747529301905994976552838148617235047282950361539215536313114320724815376025427954980221897869530951678880847481445183025562043765038380914237129516603669426190546200714190841980555709900930498022366898566415672968232446245179434824166153553343544323046210120163694195596202782967547798083480292610440121742092172898910316737118300940954430272163185896686502347507593853651298062222404276510170896957489798382256178286056929509642430962645611446385333858000786981306287765071977779682759806398142836008282571644684164960599387903277853861992908417802496180213015919847319947284439141726163318319850617737574138136944273313984608997826572875710277591592563546013383167250267914602751608808657340449838504056903015706106771072507407785856900054351071177557752046952793052533627725945618295501014519364575013525810333142369139245308634367706329439490557170697142258605085725487368634218684153534201464982425895801050020082531534295798582464393285600071398277359816924005595896385947297487708286824227559876353765464520447634682927810298810123955563341153580914927125383364680322637324710835704190150426740590347031984545004243786413808192557416581706113276129574119014008700421946375543677009490888618625078111691475587656517296229698999916081642183988377617820667072828605327859440394991242381602528702114067974959854358224120555055387353311302936151493547295484357606213136599164124059136402503656082812421133926965332294433077158985095362613171410771700188102201529314592064855443811537383136731641965285748984745439499378389575895704391847637134321744960273744083012366331375872327617968623845727848124377751600237865390634089608729168113215087603033067923183674093338419995055346156374565139274206845837714035105971949883552668433606421745025656481446989014167983757169384099468173048434239237547655802761957428376841758090155876476311944303123595781594119826104992299461625063461722478315225876206157076693597396761048518521033865251925004967065363974468751030295305498851985558395156401624792165130805228105694624407285597791905788406445336526610116231945866682637235476967087064371726675401981571185452474215443016445425025772618470509691018093353968433921133246730727767166289067496836505963418847403338242026135109655989507335401315072695373038882008057589565796145865362864606994265433473199238151066346590864067448422909424439062106231833711622257066474915104171196939192303574638391060382551524240310500990301401462409309101942664405432572260848544975048474923582599617871309677205268604845673609422280242538370417769749125136812659302607505838805077187791088324445821111645167368691232287182672146209665020611353936652277065232811715760900966537497301095906230328726510265403583302420312115420692701984984527927094068086508835996362716824480106410191350689517999815887301917145687090975417768659328516956545543129941186985669398854535942815101599972938389610382240538679307450598432758028901965651025351788658262019114100818719643941998274939849840055801530063936222611745030186824001129331307955977238511672480549663883464051773586026595960010041943489449940974750624056775668804189548585302695598472256843023559998398103408924239952207821820452371028641450581935512722778950314427806982807604977063467194352075727575432537700842805104381336641396430978786772670375997939508379434814200675534760082879041975885224243393663068694183574007391924806002730349157316235987256569760330805046756912681890322421181062064296335331638931508738312424878479316923245601338657162602418756064862761627529902168572751645131761608242683757470177759094348047654573744149274964740941502532147981005349116636247885386165760088976751996415427357133867214999102656911435009835631134537712650604104122081006493385849466711655909026247688294517889147326145608432321375624965447175725274273825408056056877309519148515188813791199877252422438106495147809696435527192585037047338513339781885904041769101295890022985398132416095834934480782954048460536122664994131313454158216481946630725908302138564073272629536453350685280852934351745104757796332184813344633298669100640820931723416333512638601574712498236696822924073167142103095925243423688637561849552998669130215671185700675868243128097974586790867328292177651085101742570652117166457564803977331814660156253085434528847219376832670597803715131457853091774558339055159719794791482770727165013810679611132285252059973473458439541959063797019114758693789467410921268422262538918199203997315319960034478612647334419401095477707945571967131131957862334948336046275437851621641782556195412707353790961961533227334672677481947910385256185687206420121707750647189094967357042198057392542969730423556273390205331767628596442732777782224560411314887662395995931892779461982831073798057191771628712528524593818598856949391899583293125674531921458373627381718307411771722901050588844595631168411615245568273411711817179908655309432907001209029243367533866502569117478476697855157677757985650584305789935638192838002319375167472681780006326336581772646681882577564709542122036440990444073844000650093606862154393899519024097021253413953615373225297667732996609410927155182097407180369984797755086472232821602604997139374121522904737725246240714263219308820588561499116338195213143418206041439074015708806583548309596505972978534797008425174667362489427481720029483711706957081852525685748314690176929513736615192532083895428989768288791085150613811470139725754913500066729794048607215506113710108711517373008186562647134998545104344144865067002567908094180244690320485060203786863107737616428162414522621366456681587752852232296620086811906667025475675295404132635901212715730345941281917347815746696674181033736721319387513266151329757902684551027869774717705389187429069137103544288686082594856514039128478584876507783945130432096782728971905451075863359199617570759607540898980582000627603056892342765545453423430688221168367026061242138177287426659259686745190445108457555257807674238188088711914528265359754585954617571973555468743197266350058754919986574817973469701887911625572066424323085100494391708049037950537179730921098665927242590373915463717947791895377648187664208796307712803998383829025564634740937113416084453948492152016227311195049000613540693063164365396877748787227280243152669746302077072746968138753695916825171499953597904228425361136398656418896462099383260996125111506171636758318774237941789992918211496904279764376519793625178451606231367172696288342489739535452178446422592183883626889848890058095590956412717560436186817775155329453945785917125179158573268718591158971763437822368331765457046139030375383351561593247520513558289468665153404439360676080726634689879228737185306732180817810451934702915413760909584055559945376840990360727687826892997254553684573569709016355189510732956898599613085415057216056752915364622138654725832348986430739835569379661213267183027904211164851294488352933545881016423549373298355989826352793294781357382479653271835492687102636113222507452473218283439126429806659526325234847017880329430762011147851648926414918217845863004095778781538792749341037040883114471970126512861772446772589948927900379018176158970359671865556131114050555431949789288514963504220066878957515620180485887835460765734776825283204979139100314204699433868912491618646855288981664277428542226185138681606792280459496953201146922000293496003163247436530475793837710458693795770412967156275890327201994985265443760325696433927732289788644245393156663207977614545731101649039847549133848098090411764689842517924897681131909056391595169573787662253696111316956987854274601065315671704622277423748583531333794175546725196445881199440700968389755494806304672659473949674942351229200629053942007390359603509659654096900706184477942743838005629174585404214956750849091666265891252937616253685134437833600649492951879643877926139864328850207263156807510692046669247256450612493597785914022094907019276093160126816067708281955482947010971862152023175599763325271146029311514544850154547829884649098248199275487400973484481778380599553724296814760186024793154259189205530119507383079455437616507148665291873452393996049636617864471618296525688416486829471547305620180933332687244626605411440114090553081378090799262095580202170608602917258687007751407965233145688077121817384745904426031730666850573456414922148347612257406034172152558629918564551243297713092426009236838404829556986786323640980045143767329069584947261280144649118938756638045628842753740230889310639043751830358640304344259241608541952799893468218977179094621956163394115672742095897607087656342297688948059586216802426466740074123338008346617422721103500680386345595158992938193755179699411519276406849951220960661801152026543913855139519951473025867326503958707954044307528179623667043464536075113999650026195126741156858133844530376206272385792941453090737156736873435506454165869445157714768338433615023678403976274741289457955221610305369437087435945038674625288802075432014811959797644291706789530385101078908673612736369797289913736921033152970279731779958025771753263211637617930381509428793484321939034203149189404087114178707573240216510772782252281483518278288998200230656352345691167636368637458001491141718245802530619084932085863900761875739139459231875388451052579886643231935058239572711396157010941088483249408519255763618190888024694336954170892009560485901378594813330898373571494901179511756135659799653425763673545407589208130090806201482760650490621074582102496526774914486698745347125595713664574295024114912149982005098569381791098011630532739399283459132759374187463101700837393483710769105053392325222117968567787973183970321439643405484231242459784575230515435897153798178318302460732360321455850526918476511931656927986864072210572219831636784233206986613620400876543051487546342270101657296985254070352243459933083403068122972094823167607944313291299276358604270646341637797761425683176718554982482044026129587900317020464101862109697978023202533034945476543669122307453000929138739758714240639804816631928848862321612113776377088513670622226563292312372255814758796194169890828804306363248442889218489191086683216350613373696068002063094547901883103381460156377998970127125611250455671774167092150414704848911622974879383742710154707839424278685083334182022082604061846756895469672676980583998226297021533536144188432216000967978327361082174646147430273804721014932996731409939810257308009320463040930736708594317840966357943617474466065093178987321542336941348530312955281581779034743968762137936748219624681942895162460482705847050720404308650685784164642896069629884246981402271305071522095269186653579605948836845611683754864475572658245368614389823558641289143389045683645577348670795762065125870965264408374990899087970465740632456388715848451348376572715970583301735476236280131313765338074438578004571677456499869639511550548999484835946185510307377510504927572258521734705861671912656403686539422841914489957368707102044511767270854772987783784523710668213593906177917861518131762932362254207244779991038301875852819507398148442072176989380474761646266728694790080359245691301657935790216283452893087991811718082135454294763688388332625097621397465155006564676291391781564453124141168299575131535124168210164874506448784583173375617946588659263011454425533985942069245017950080888036842087417160231903719342210574747049796193049251916122088726124314063691343825041674472373905280076622677822628786561141291065236012701244520068837044422429456931253292845538970074962741888344828446225245981719467644798175087455684032222139997090709619124972334666819392988553193617315363398083502206757804321101699153181820151963338762147497348727141144895878059446413590885240619355584412613497292253514241253122465115479338660587199759565431504920667615643102586373674261902885094141319125421193032676408910745500101205543016548029922409425130045355765519648023139382572801156665437589195254837281541636695369605894798721284058750388671528468232342607962164670749185964810274438449610854468835489018894469628599911147859978442259079411470274709116032592292171255699278785809676839076128944847127700594966766067848791016951298076431790004404795540983732771452534960979212824180949323261943446136212921814394688683421237790845982638654410498790431633094594885034959337917306741069721607088027672528188578292114098158897920406994626318909573376304421959029530207271003482180370791127296022314921979916487530579012903469440272873468501987623732174848914410151196048018682050911498502207418762704137385524092444472227242600172640345825721553154376413996447026712819988083509804451724862174739347241495541027790049595746158305262647085414260621471011637514899929811506700238748806482276428911254770243196674446239469429862772207975234288660094780028422702971627623672527459614326515159659645709201788887736321686662140508477450516580414248625961142755946648280373169931516604457172695168862816159630916024691683514815869276064798101338039839412805672288405972813425700667054356227318153684609257222943915609477652196136955055788349477426195475994327064615866149128301690108463842681513922016872550966813679389253367259357851122568974653412221386603033481558936728882173462920767590031239619880325761131211522907657237554292649492001252377233789321297573416992257855643651210787689253380830454098240518165845799775212060572787681681505910093729391264210184775886012294830028048111444040141995945979495648586190048841646383781209709896577971635172023257002141669013891557912129218937469592196140636679531715207001712214307517479122213163013402680227775081002857039960130624530853046740835320595795564605798301145357855807952389860498671237967607494414135590499147515084571341414188611624420922837520975067350449012752688865483175945127984120024470252697084373199233579270392637182272445968643774741107309680212783162402091898864374974462433212312528720823839144987506898717077644207222072637281981618972982520146666513873457943914017085775778208843007557435377190607638138148910632176144307735599771021066395274139299849731693487683118333289067512965466889436460752835216892359972336867470922480400177547112014620605296246239647988806903720760738365331035911859918901295641195928269798899802476069662976333470886844018966584452254516436889359879020932084875000013202601115078487920927759941881681179617531051473654542791937512458970073356804436570579786643357827010322993156273596653574058055959553235401860711683399066077062447351824998035206342792900845180618161015016905807927441477210852080412823781516617566287449057323134119600566797749953412461742447897088359715524547397513738155735028822633496985802333386507675949325002652780grave712849957536908846653855137148183485340998525773604891289205707040190544427661789350963928586306948680405297487988116911795762982701231814623210933947223734666768153244336663890822256294739858458049206369198323079434182559892570437164596477314567230180822766991231229707121172028187952981402111725378176591929364069260806506687367600597814507759239957666389383374409872266955268034783334398310422119046524945518022603307274662751001067759183851699660786767764654835270778662099580438186958923283554866412126645716655866264662798293400478771789930323218791451331675893400488359717251483157003444125046867721455160039300067258920862095855097956743580067622865899058023327289596161805233397452106779955521723631216220714396129292210633726584943188037302601513362509668374845217663277852953003968716427798836399448273024637747414751998406712988364792325064755825646534588841594754576951018808462348030850451880800615805812747109447894027305776853679187299434066455980982672016855888994154624918654041199732445982634820561232397277027059116488630465095341260127016072422404343632068773009459729217390750845227016910864868326029751646153308301298442183162063102951158939318522338254952819257286775753818793373922556387278782641481666375043396114105369514003761865713654582271610450659111305969966417174774240954368385071840039165705816212407278932751544390129775146935911879031545524737301740057860529285676496310893635996347765925872077760674485412851185061351422728281643945953744886969911800344190216141672329320361932382076769521932268757147993546435567294159341674163195509232939112079671186903690586055272208639366852384759132884585276709951219854649794154935511080033514737193317189651911253254486050172187466476655651143891159761525012028436100465772225836731858451566076215883410365075784498333668347444566532599439809080604295787205516773402617756861759682453703714072881892705821506337629926902157152335235292528188620836307629025249107503507959504837710257814784967911mistake4502367101522137337045413562887673904608218453960061476332123881070068656086188363746920966450285947334870490647000601627085011602412682448317026790479600581514914707310904147922740745598444869525230107787467397173359056328758735728772023901348992491042950573682629674242258509605457123012553372046282118902664078242799389408419895461945471101372035618258167366800150865651012165906991020491078384518488860888485684001504246940539246194813251852849080947466934842488150656056236416777995173437150014376492289263165341231210922204098407931622837431586268827531979857489646732552794383952907611415876675930589055000119066264242172330234628787127514810925928834943215341516060042065616969604327912302873774188227021414768680173281578108911417878165803854348379310249941452166408976267340770680773739913211856136645503004451660496215460658267805292435245160623344134476341890347054955878530271261995757558099485086700633079103310584878006070422075646432719261446917339947466396647311406042696795237967270495972616679169261143668358174373980179752729833796713076279454113939224859091377077983975924370212728446721839697765890669298058337468242699515729749046280678357000049115689348773073319853016176447942360966199833586809956469047779119511714526147509979978066970238712566416895747453111319343843675223533593495194181581180396757245043080226799559023933182152738845981009792800221447089706498359009603257140733827677916745983173738701913815231513065823114382891036793098259934034905312719107701556650101057745085407312991478193551073938309799694121161973793334171410103969415541174393170128092728735784684776612471115872912596837203848168851520673622939830811329830513280942669398528698851816072469917955292414957930038853758194623968322752949213130343921033354727539266398198251991470601535801154580766678013252942095635275686753051332048860265667804391502697457060172540763198170862483708651671035655731872432324261474533103168607169556772393872939559419836114125408361826948777562177693371242362552981073498443949497332637027851290706085895213677365235312198734331328485736314386613946406140086383205039541947542248188967688864248650621412194536249758930088959015654253523836331902240228278733368884549791220943664540931089270419968514886999153064287238271624746237681578367313386458563119012653611458197779934351500007489678841145622458427511441129326797467991088169356835083940425010814749340232000148789653294475635078956309478869655373823366415932460745892020405213269448527646060311856921473107921928066459468574237309992998340566929172987129725698175089225940372360407723374775109639306102441513969284344868341627953428890089654957473372960409904906473808618399410001874838201952626184462100261724733639988161075305256064935167873828128776874188949136000487321345240230104228774655739621371056549257468145546888556129338985225381632506689643182604970286712647510613458724132635444491188941795238790000284619520322795548051751212064545999070649432671829651672597602832479236870040243056224269552704818385555051302294339342692692176327488616451775312873003251140644708342625925125831718699116177741734336177095853038962054414689313703322804793684582773187849060090674991013640304087716421754246618554739131222704557335706124905160708287207695210256408915733865015131750083294558390839176369927516953161638013850331913713355325565998297024933007886792768957409685528371224715017135296015398903299027634982245864354834689333906099035481811258268431359179138420352693138674845842907043887655882310858579210950117923624467856886189915876530527918428409443735549272010497484258133137863613455038154094862014838981409841223588788959835016094286970691976261633100981798371340930763169127438039456650717973046665920990105910412653409673644309570250429179718363725696788044847531374390487773105799008124414188063852561485097707936701023808280784269206128387710983004132732348780815202147093591289156323128739659210154254323703476463287354345311170511323954414631737789622066984921499420075535553038383881458842607593784185575238267513949823215053294564642652795643552660483994997525331497504681691730783856233928407287810125044150905617890361466300834603712213584649694120992155469976328610132422105719429819853332910634731758707816598561429301669797856836755518387711722118149865805401023988369645684092938505506984496547212281728314203499017391000576161402471683118268434476006982656954377106446360569940112259074827074436494407651377782724950396801741201232585330944196266634244082374345277279927165643246356658102245412845267356057604054351646540865606708241878941162922269612704462064236090914105393675347868677259511627754518716833973534532957498616227852408654821467854428257024030631589241637039131467396457279893178074634962704366295603865824951279515124011586211667621776363437765047477825950417442035318586572994337209626467417098131637790556719982542566708601934085194258196249439890075626723752378240405317698996506362117635302118051210832301043642422845364416200888359735309737340129994639392278767002726761097323341826314135247592035732299441673052393347580709087549420200423157839461997010527631225402227657108570538643339061557618646597844403567750393035012413777729358372475312171086191977667098938656361359322014982885072092839993762776270380386463217110006061772941680380972492670533131625234284295485499707825098534522629797037264524255753913305175831035317892212404372980368799980450233504191719546863612027827197216309044011308644805966647234624993140652109102110766986524743594978072394603519466938991349875650221965004657802496555501091822444135526569044043845011184957787257635164399814610598404404624172739903302694845196867026495629763122590881204805586583811525534145695466248762539606333813625147770701505823822446430865092319561656140639035205257083605161629832463243227295870076631603689993998179235462189702763575664613672764174098575059656352961419904452573126911422118199432604959585085732839384192489222736072593601860607531256031667173866853010419292780817164667270422029486121877224182429376778249214092614879184897954602934555979587182056653984705437869320513489958140817512367328175745836353178867575670601174854864248242893963827632993017035472165338420446958837476073573637179837040801028564958994891496178240538638826128030972708616441707673748168982318072893179315095470081348958370222610116288965364954229070682241958259556548183688740721579513941095617107915504991157864717987198847647066706466247536321699107822854926271011030605087744842200402279689835667969147138555523354877762986540005980654791884166520642716640353801976100767069482951214094001139391414582793113882441110717479510958706531666121503043933258343125104104355114985606913799813021218616791845163483643622401681374407227783801875374627000414631723714149963690134340058496327994123697767726406584140401946208221477566078442701864794578966235557067748114656472831164645014660939942838316509726011083150060788284965667327879422759987999709504044364186944244314782634597281945048961578227165103343238282880559975985665187490360415100810285560383413731182234138670253355417954663222395417581002161872626176940820633676656872116181147049162361556775988575632323572932992734331939659818282420215933993110127875385876314834519095908440546412342704862002804555248552161227412623497633267703576813544320530168974711364783075293187136425310622447082317274512955362408583215959488490320794485283946689475014530230651095282500334519781435057884796007698022970440614243026893949169146636347953720326266728545330544478880502004706010716863705607521863103652376530117654418208456521436255668829619559682143882956181849832357849475769219104850842769716711587456703493441455841577693662636741251100170952068945462310942293703636779091937543884213797582262434881912088705914707282789935575023914520164876794102249666424291032905554042864425764412714878392582556611189749673247061989532127973606722493303099053578792471731244668939952924855837353399406772830001604453679188953826114038003456687795953611189034396428853736610135589459319515012428585603456915614115595262825764798555336247542423079658909175478441091644971942986046845854448982841141054622779010820141013822680643523215629767230574406235273749355248040994917692624755842953331847993870742778570366003159299903232133298501120226048243157157271716112119013019224099532601918254115355585410611837705398171915319510980476311675106188743019200147818157137656649048240417082360196806431869546381412794456263186822437712499734487519585015674815507683144457946755728136552354549887875170648571146752622657194070154786082913881171928237146805638572270458387230036677175533915669965395607606189982716730822691652086609301324880644046751585606767346994645220885035279017952050392659486869276306631893571130874111254568347843517751908453870612138504583092253852071347331346781098122128562772029006358636086212390202320269551077961938854203917659509558834700237190622039193346628959284279433478671829431142305729419215697773565525093383347186466781321731857656940843784877178265366464066762314340232035147326704232689492060703339740651707290829342393974588608905453768800293234909666102472169850435202450724414307568019664839625581130295994736457650470471840520539790672845718117636510717104023450470010369428224724315596701225703969693955670890936667331624892272743715058508874163825465570973256261908110715717643638540400429340163409013895786825848652476744136769793982251010383418828011878920768924951325004527681578291706401044910329650739154872815855307500156785477983969816430935708015590504260404131618081358720704827205707766483882816460601163177945727109622681285784766434378179232286600569763280860312748057009980291183308502457170945848876249763934329074736832716670573198923492824579738195060107368528616211589811180082095065355869695508157470334579872924219559148209068381967863204488713373397995833207585274885060994114471765975146444588147485223836279361477594199570432913491834720621704970625755933931384283197536391578111124032874645410019433048724267691829821604039197832579918174108002422311756309739549486516657123585547096601787571069110014659001307628861887220598846949732777561867270590013216756371904500509057596578941099662518925992449851251160588784521535555283300704286499012078160987402045520405863969696686800688211770356822527148756776192044243909510717860531197693100178340717580006756070948941643679980849659960679251740704935649392280129815786688982082065869704848460512883877738563419989814949963336764745103975663134843627076232831857050326352184574283870514536424191326488331185592674408712091937623025270864639593401709821431054889127352690513784793757025828366816918133779571899458940765355641571155575005154246243484121881241428514215083888740500192515402281145933614741893506609599416165075162720281699370059370244944709458853328340835978752172648602675610868843136382145993192872506285989679519754467797676858038320448997859219192641454812310354684907575650068284307439707654808051064597801597364940750348169612083819106873777117557444910868481908897391413124550961247967860247679718607737062309768694781020030029519297437217924993329558285591892737456472633202042040693562484925263490403273281720653869635007472124070860724619299013059011377821546069893907220483739554216920794813564896839741561407275440133010221420231123203129640659271221505838060016411172985353395039001361084018618719151992792158944409602407949189127324724062781939806732582715500877758003618120874467083795242046918942767593067500815371355383525944856936874594449583984779411464416833649833096149879287371909949383751346213050979433197989572571808502430227814731943238371956076688678165347409099912803790318592019268539360889373804863434495707141253885014093103312657484960356869555661361194980714067717919290996199351626620068403116511711165429869471795380234036558519459360634083116727959650833139758023595829757128739680129425018111590924651391421700417885319639302312120349545992814608215723159493453287467757939753985598154904181920148877472894539788421480725119866413776362529077267731455428869028933480666306967807692868532771208533739563377076355249422128500622279061705580665894510783307197781076550920762659504797398145455447882005696060830552098231506354573717384146287100375997656947753936501279740795629583012027207423947505834804110981384611498824168120925934579290392229473464783192351516237862856973029278946517121140458565882145616782580212163430830123746303132592169679487620853191852539948535710330346245023278234325505775896309629250965707714343831504902334505526348960061192019970902423212264973521082387825902962692727882736460893402624223805612570950692354318575197405730520683975883109945903172772638757713802318212430628854163140745953642676867565040424890757492217247511964291870667829974163170205802742998478046697556437090925181273827514025273158605063069908331648434393063651303827098004395596169603980315081666375973438425339453017577710140245263922795268666399517856406282001488551603957134459868423606654362449236855050945415032903712388893064698521440644623590397428868953279858957730496921043073174319739682869193171511041542683028579466569369631147262993530900163263803696156120876517221072005375371471115769110633835935013090034667275542459615905064512366680809604138063337990429882570114836019668589938645209375134005278458587258530241067427517375010907981387572404784154492745761762531623283006172493828115559751283429673057119239885009287501731763914552475225824938994068050676575053648403465453524770379669417614711957333505915513953311418738574766321750534960653075776454552767621363512859903333759983484251905707915892242695898851583495399494900811740588883306780471732175258304603086468922264801689540571623060362127274271170223210266887667956291945076543181642574421920044742564909546340461723764225618615712069201858218115546288820695320367938850324297764425736016351377120024503244753167515505615133252656756141584763817867186537495646801933676907862794463253407274808956855634703309073141549796319950213076378538673836837535454236405109217707081113559046816617395947715826987563547053194933786715982910198844656711131782585479549932765605571524208275163872131225555998931269600264916747671374242575595567411951792886654606791301813860705895721681475394272552821757894852433984052737795846017212523118633145734892843863182685651516089959979199792644627145944881630215453943749565903577621748595101725741369677849340967037516708644789250108213283463711202423000616470158835218543530110850747066379506588158574116947183135669954136582899749981435117012558609774314997995125049424418782263365031991398196615670179249780265436498511386185401106755600612751982328283628630194021143045302861523607807872527157495273142369189025511123405752539622946831482552575958793347293713333305486820186815259134080687125712548915497489826025233867457775732569482556730672307017141123141856634723293597724238396361537811623965108531531102106917501385310499068112887827812713445706395465328753848053529378324817317436816219544749642921653720624823544567683246250274958071445925273882069558826420796910156886990558006530062460998008815675688728052232293506655714246911837764980297199745067538944021311762945554956569003921030855305873445434555890171152856445025885876180813547463155954689484183082910454215797147956128600415858843799789162936738138828102590250428101233277947101702913452824811824684129063663805955671748785293678511244748905785249359122258484022325922919274435568390421509973393831693997845148705847950081012054082152525801070849924371873247141923101839551719430701389252650575123570055028848662525049890620987316019343261939334096692162271231342630111931766295090314454651099411787540163106565598074030950043473026591474396427605905646325200246232927026972971806544998198252989790261865935700680288781349253909572857080760606189289120740069310466128907050078520229886454889936086055588356101405900712389937593530775267816168134072625097025901245929313024298788196010143608810336496219213907641599058914355495227924436028140033587403108086588613708379630101154919393200479969564363840265412016143038693472576896943479667917207281429885852531831289760554234374895695485925957241353958373539974316057068504473033768327597363308169180448361559028334403994618093534344991495139957348564593655986538420458959261023850194721815036622111849622821084742114584943596840607269030157247305451362905024171106772888496302867951491746138197447117950927414372888139489755838399530385660312297678735880882512363769445255766987886908338586644034010621997523969108514187436187009642884995870289927546944048983156162781655414631465135431775614517109221864031585142475990072032078549993525935859107143530483874740053656694239793192399587733328338607876893229702188382497134138014056833409361459984645968127670425189272529009975719127135587384654146232032798754549824317911524339647846055821977423925902767616089121824531354539805353778862875569567357916446956885667822194226240374791898145789089001836786930016853928264785118309331751519274551908300949227735536894494846545189563749163027740214014016017744771826678255773590199556819913553002930756426122197473254225726816913992727234616832787465735203416215404830352134785139977119801345555189268586496682843695553199778216205505824557193087213317718188712476049582979770170998571128895894334661555953251594509507670165369689366234461696256966686415770061547128398619790598727587130695230870353708605097468783415389507565601599061589417973386004225159365730124568735705180336280747659938726654154469731946687691572399462193547697690195183475134901478802079849780184377353261888733391261858123789964959604868215082369400811468024378831573910864741472030375672271558989725729236289535470530791933613296740192064550797199285864989701126341519546264436872217269657796054214336817940108782341509039910096359402427876285672454480578246711727334680658466532786216702236727867035115480912672022324625741622075158146637239083371133247385524031294311988918410540552438579615263034182025633641969685812728388529049677557054259014908221902139507046982866358153647891049627414167606381713373730244131800458357416047951218028282526112527797687155970377548622791407579820505895586465879086329144931108052891697085654795400732349634515506931813169767299948490925158888932067510369457027816047148296540651128733528834055701555254088886148040956419247847957299682148074460732659314489516923032469152474025458393077123961081345801644459633247202835260155711883761251376558572901423195171450237790069534723737718073586169116044641958177484448751588929950073664069833630393213097416808087308501824380778645543751352251952934564858947599159380539325596293727428587771129536577096233859283270741326354546399961253947212382103773576065546614057996401194358067473935260915028239477679617264261041296137450393184431110397459415350565971947159612775501757706135320282884317247098682659306398209707760049569181228941548887958785899909501078551651673326326929532911830240607146186189928235966641740642379731391415262633901541990245752371332407307257090341787042711305266620543253467861929890807957039094884512808619259475476445169571632396983280393870952867439020240802233020387985367546186581063693099157248142737419108523021373149239279449693910841017909051517542623233726088394790215641750896365108163731799283775476930492128108122233852513157123829915301651119994412271757302785712337331300817010056574063636015771268990662965993864038724838230705614891025944930701926091876473110493274654420141397568850602807797409978662775950516306142520873656997682524372846903550738500598631011951940622619681992872355254028261931184226932924901337466737329268502182973769473179222099164842659434100331569130212409642172784470698733596289082933672670838644149311377370522383847497248598615098089124125045141111088951517134566954947177613136316466905257894312061388670473865477398647882973703626317851291249567036669966876952691596627755684357068706381623369979147730671844139739717010001414037074889219861580991715249777858442838878512011268433483322044046200661938043693595649605901811820680634259659681859850320043787314989271823850532185956547275615587942941649825416600584885349648682642710354974597238118062899961081381817390739181114827146985918880753569398814547637122509533659578042143636156728147842628778007614897398105937211133055350702762748643355453831193869178990942614025404534650464629501958310402628365530440014114655513691155000838323098673464052611310554071982310176652082727548918193585761963442758336649035172597207117934395202687138476274058114119937497050046171220110827755192792204415329285974866905239123972558249348826521227673258989979070991640093362506367182703595979215166216271595337200040420335129549496829660818338773146062458978007824685613109837141450116043983194055189171082586557671330773567661215688731295994398582141196620243107347851762118839326742138986099626641447503839862403866846389362305571100251365187510888933979383589418060288076058305816816138663745749722361554618207924558150563618365117819290903776228037421140930322781517630664726483073635278165612537377544924292081589804153802775980638245217164371262000799325721510192394723776338421234399524891689555986521491659504387567480568495104246805654117701177265009014664513111104336136022565203058704338811899885656186818289213667670891194966518240102714360236575852871223656783411510804858124767015576190385245885328364743136403086022022275650097318007042598162407957863393340927694291536958625756448559304596576171366075783356157745612132618962515334158195348040525335946467665545160186719581034856317200118746017814446114109803887937919922545696382005755041914435276322935135401904280274015734899388188887745447905689170735074848312941695935430212228192522127676528518286710817443013515093167607701159877450388247358713517562513277575952549630009743507287569939011310391601292327169289541265976499979122487898790175888060921123345983179685302310110161684862443134425892373375785840864883095341672119842041653544989641076272078883126536942766521135246377722703839879236315233976705873424022630950235252847382161978443998105169416020882324684845374866190283725350479985594486550015887586083695675743009828636975511484548504641297149564942887100333934202792530446659438272816176511162586398170577120027323914597764323715682447845991799745485910850532565761767473950758353294661625370224265268945703907618616938559822331723536265199208914810160473418767641015147840202415785166238830086180867332786237468863862762039070542653101685181059141350251234912929788519497177540188303147911111374180162482669756586202412589733067771703576460989568712559102155511468872171791565125966301614268070667206807030668468318051019106400159777602005202172058174917747783882246575069378660790070997917575062355870396379951663862618780466464852845261511593732596637762315045793466003039483878213335477993198486967994019756229969300490048085304123527470179179832002537141085586998090768338167616071421676546887677832852275050714470868637040881054145975807485174165103271138695266303814123454325650300247227383618945930962384821373593705480487991527052293241300167615268031595923689894181128427778938617386251721151760572974215173423120995304197451861089371628732707804493219272689853723547484119510712141863397056025397257078963638095075161683845989193829494129912656479567311968697795932801852678215668681888001508859100790757695333186701221858265171391471226531029464749248293413082378394961423778419294066903944021996439446508427380123443280168792223372675728930068091225409777548289755058538140701396395132280343983280097764003264967020221376341196777203420258899413215449052199590085965000588125632960180932491207654187657300315399201070859967848249241196011057186723156241557796176067873490997906625153275425795155574220198524943298954556843566311768034167128666411563538470802337503240975822065750138560145382407695457020315610453034576204769353420011455749207223308184722498975972888563714705763995024906791235727394442326367001571463726775884807062325348989695521588637769298889823072682576008580188098050023323619571917157498698040972960217262571994545752772427368078055115044841715659831648335724643435578140831336033066429491389506133329200022066423325887787421265901138079226441787895758145606993022179792999603307079827988701615522407371350498673126590874720932861250960719732028636498301705979811113970318361514154751165820800076086874242440898304266380407595127000093988361344299044721915757706128179936298731439330086922857713830531998536288963475579703914926191838112276002325994082188312634685180210118861228916893343725960799483774750965785097577252310202367427560769130699714095275284840773005581162543109594562415161542493690201540685067364115496930518533703332402433062831293340029039961836236158579293652131448903318931786920378256969151370285190682686126689471996721955408746423755440552286954621469847129403026002624869212116455001194157482677428997399096696718843623209490093148226079390144462520003169287162691078135088572882694530505112441613792983030401570698223011745802978381421975450120158988944055386946819133467792820986568512783100116319562902564838417558525070046070453783212469911818084794256573423472897218143604190456072164620281027066842820513826633239448064855020949566163088565992077175076858624695810597305253510842012872560829224042384998964169124930249540119304941030369811339032282423001851201533448900933596880428764102821936518361318258872841349496079557512472549743129141313473695386234211948119558252597544567998487133614162515894761574539865402165107556051131114313827567743750827435755077891612191158826056288495744245953190637760229670325874759016747157962062571827071014480815652065266868398981191375435312188452459443685737675345803055531147720663924396995887908584134170865779355420102464976588473603615654837108001832396413169030820446737120082032420747058193182128487856419306730362993834852698215564766947004216950591296881815482296619096451023405334981282896823996097268421445182944104440350513229237480520078465114675483055390794391458220875040573334175908887877527225679490905801308159128909426059083278033563862647538578529475459760640970573996194447956274620501544152232672531968366981374128409580746080604755579807063733914589428261720705021580154905150115591913106462376297429141227075416006050883224470091776903284837130801873499252121800514254314479491948851994925414494343129565809310160268768570169510332848609314633019680612258510100491695184959035013022325441987295182789605359421755586442641208277897571396126657598044483212014169218253620196580672416603010121755789613880502889892380190722662042219614880563790720666915681636573230215782978643704756050137632248002248973270311247352352420973375396459862474433553791271546555134022472405742648184317107180605920928466307673634885373271176875978736991483306413164501504591596670032575822452844410650334368315706719743922577483450053334744206482392615063139167069008262814613146904545632961166993644079786263190264822471407892079176056089657906011035582223311705168245308976391386329905158217201843645955342100473895923972810175872537492603156028045045484468062491411681784373593095338710251615621913623444450325587303947056864610324866884762860808362874213952282486025641103319023894980130321459716556970617998323224294021452104248861022766663065732244436993284478418981963316638182101596938158453515243545383287054691224414742675175669055183877486732430910182249520666313293954235202188368487094690800616746493561654216804059807773999656464013018744576905164363171216909625692558240869555955012840201657888504082530434014498158634241118835972319208578856950253783177259410561309622866590487655593177678449725553252411980836949870588813258695241500046208790874237945988252159644513830457546790186444945308806277531663364879527136692179502689101644547598817076713731138925161157952667114078936041212901386394846507248726921509119170940010117330940151165921502244358764554561451767418282966149583388460833368798114746163636337043536788464367186828962993637000082470564520764802467508990951384269202830299457760521644598990810099748849301253956725790318228699410603768820451975736274966729714211046394927720304528815187787491049915130571409292525441878781234925448759849378670716752431021112958155170976446132327212375220789975917135767316123953135957608928155429090153896320466583922951334971871146084847066952818868961108665480530759402450539683480407336601005334659043805447966519157430686327584234676850898196000420265466357773633233161758888923660573473981069582604896199289770355441868473662367402078081524230424848161163228666201792634244034504816271730534772602320923377348598956813898620654180406073605184388179289438597848368377109113168878529809762233490740641692307327381685213279483167602883313926672911537988636265356067108017786921696337348763448096411097283776126192236014736676413783069188925005889809633033358904379152560973911477368164954972770325549105645598403430470584681541694313751376289784494737404864898315993907320623021222357591789715760171003967468510137971886603967593542868928859313254891906352218170369112392938339470109195953957121069650898670605223221116571963348437389852264186462493035526775442223144823182759359005768493599626850793536454723140077989868004504991423696282339710839918607824992555091091870884119765558894459703967903235304256635945428163823637187786676058375153157127939057570552597803128771933206684885842630253354308586895057496675090857277871514101097170742301883857631317840956662400779540213173982218155838284546812910535621938690954607883935265323901907645226968382826721143478054462467766650247741552737350088482230786012885584427715711729780131450155829692766080316365695412776845270611556921993293500319121005393422491691928372461490051670721547710572293252691592055741006223749888769618479052021296203893005563776390433787619793737333334145457786356192251573505304042150182309852226540136155358255473289364985863329040959853204476452100306808365191277112053796319510824731448632831109462475677324219453972339111053595800582920059560064990469498164558943861253843861458678880776695293453568763969907451773595670839244318723091479361299455457268499204365722193699239934882242528879099675438219776458641877958231550550467441703449752754748649233608640833206161249978456294118380478406683370250702581516360985603632970774795153514934321083775578041244334459974789836020998026265469965908661373884885840030811528779314823012651094226215852429846090486698851371361537708131337337283226357461553364524096157861997791004590188743013423235064147099262525731728425456862891522704902754457109023314748802561428449909610963065953320171017064357449848296619407252495033976364335561736701118180855647433767739285016480927338993333443502555904891419519919097210384694883235401663461662993111790848043949038751533373727970592623609943404988077424334974295461379629717660780143430325330650787346540320867520716137407926212957530365575860474646001812114236514606995761238478121391598830113874168738359287829161244583898540307215418988202054262637934702265967585161718568838744633717554085741752097197133028660750695843398020311456177372573816694144357759202852478000417661382456123005976774031331182043746247749242276738577574351650877818417172003058141914855868645473348583963327977271946686608296366393780869914518887336774778187351064256716328954982851635194540490859175198319131207605138220263003424380893101148457913050690515213162450490472383285705688224717620589525796641502840202913291966843115829296337336533572177563580817331632874283534125359186956507489310414654862276200173532682529164548869159507887293173077146732949103301169982928671162700361960545332105346325616778239707971016995333368291906988149159419650296108954043263517476651067457580614784634717811322187397876201817878047840227286061881839498612064930328528867487649599157847960741979267731564449110456635865266538792719278860767389779546763067277388662856549322004711586101444546102532960874896775580289250421049144537125859645265008494221748458865038932875670804236932039072590761955791399321124219372454551346988395003471519209221751666895839215228014135608982360580924091190467590096038237214032030081572695310685414600999852916187074763269154435214013106845957122237455911544808380886263575175899230790168015696336686151087217243641326515594961528394883873095742912553968975484714563205040831597213427024632301066716535722345874840919894306196546756078878945519000098992485607433071101903411531596940162313262590603525080908203632547765416040319959307546016791940303452052646096520029178016763924304793042722627761577999029974953136918289414509434971991645637849348182019132129502387817425398588908511162138238625145080287292861363154365594603186266373405879954882914157297853757757439482003331280031330708770528404176039655191583669396305503057205922951614587223834490121203447268987984347693647115625744705109266526767661073949741020471492774229002695191169431423523416426880174921232469338898687565738922049347997845711967042023336931738875644233797152144834142752669272571064621780949856414578543192025647825257465597943586513672106704249126217121280864819681830583637754063439988126295625289693787691244055945853276211432725709562405800823705468589297079795425892073756944371275134639461752979832021817393987115710301001623937823679081147005758957065966122928227925948199093475083214807275616152278290641985645511876428289740007176119630693776091144393717614124117399853616857843038986575581762494214075756189747848488137081747834296973404088187635405655082758939165522223539188849098844132571392325620500181565500652548010157604583869070736376257811158901663799489822085653183904791503830435949224808884213731112676327911835209245134017797470429484996634770789056024340941979306287681566099937538832359505293237989923133717440604568849118024010962705111953016109831064019444720935643692209600435479698654973312979956972432776787362614965397126670232192188003742329925057451482098882668691157830673129309771988087816423238140011753163652079207752816860229508176157802934801275270846221349598561738368771555758356251082383178985589425947259086217059478674692505216114033113151062900678904321631815618839202526652328717017709490412453501685872714785908391153645768029922943440762228734320574503294590789513674222091588200373386094870003663251849584469702654034111455921427148634030844853787419673745676587858503668877895768033920170089988752365686058754870931561959190664735889216386427275185876742416848918798780588826753275248778911584143092783601081500321209992846237633824164171636659689390785409300800356540959812782937565439363291950326080148060139163895008485245151023510557918697783105763888682994869595881358509060336157294888637475567270680736665940743373983833231168776414663319172268527029543150826353270388018574127086800814352752255401373709208781057161918326639884812721329502055170910755481272251224500167278444557098422768003637877842011682199400446799613986910322798224087434700987622739116178313697526924250198387055175290761700013200121739059944279424912550783128911078210272218756727143308209776400141736252875813767056991824585131547068305836301706425582192224949039270538515852289104133102492623504107365817568374596162243521865159430384855654795994926696857272681933154022901305267747172010819404891830006741188548835333828087849152249967562025752441897825845508134341028730569214714492388185450633628659702773017240774890332296829338711809995416800680618464729481794858630610678195962573570375671129944538483484596203126483233951103903427558120935096570801955219936122157793251314742886211790400045515756903748284448990589959166749177110330736525794132370560953866766739373883540051720847210395119839530250248603535824307147680598053571688802393473990119654445847264932478654982386565544593620842254872097161107095074437855825833018962982028337914200728192901478117328701293072344760882248104496353425099734929278879081027820155966524237938408246888020291661874940205511975671192172106291924846697736335807899229555843740800949638053155035043204853951240374115014946695749396430538963806381220438307578943912195122926299279179338290050373260676372628442257989725003586888805582807760688896863948278494575728269441124171360679288365002724985192540643059775227476322626433593214915467297301319057128593850314916215028442907816427674028865361796561303917414154861395422269539592854965569656092692277475477445072868880960058578640439358775600027417559991984424630655082402723274250959505546389887434203248342947269994232386676122215288276030676403017117489208558018180561217425406650768540686191394702749465703705504776005446447540263015904857281096259068746442025486074292809101810615955233491212127110166383604752037090316218435762818201602092156878781815619237711011642324186599452447458222443630308771528847247171644914360437056074714257580459827310336549944847221066976081781223807131254134802863004878502933110040707870594090637449998959966516659205025621277501351183599854723195766511653437357707778237602480409577265860680249041842854449307171281059250676518551866124452061122886475328548595512552361856481355902957904698204338734672663450933170907357020790203786706216113075856801220438037048653208320716974149376185566896834622927215557421851798442805389683080047084251917366751209019499201085429708066824693901903263164522564504410917423374189165177634533523294466457046701476846062936651611977068077209265399954951039591629650981901964882026513890060071794844242108800675362008384915256193580851642118268851145862806295568843650525327822601055565259328062922777619456829877313729787449376156743166773306838710539096331577618758153388330992989917922689443953669463372053976514114958881574144083823506401175472720241345941285323812127651979748306506930914240423606890179136236430554326450413586205720210630936575988772207257610807401994394966343659416538677798099528498938537432650344104448016284768075759707277485749481161572708141966026874496788330299699317533971443024347358906112653424078002717775142941138694367347042532420867886011032943731755736785795607714280044939546857836952226465466842236290184520391271593750304347583850558731632426304998525008973370875314297476763784518426823273474440719276836081723447354206106039605651783084442585272543845542481680668103937061657568598548990295799053751721598565117150959837852801236757523409741275983225380528899944911078321156532297737190833390857266279345304993693385601598217144222566755351121882120098938031338666056494486053455273179425389303158376203215176145518554043666439932669886171605423334295110266285085018840249758191609375251591755520536149853814106855330231282635184860196410043631363683278538663715055969961617613513638725631358460577205648342260806562040736916107598889907264983775367737483552300610184140101310024948057969771027711068210395243104845333980436061864602536690870723102148027504152436026039942630275873539100982516746531256678747903129647189840192984236739484168573034536307473214382057570554101087019122415546230127225322088559961269108641893483655481652741764871536042458850234359046751323436405588313045046598760604698879239318216015914010382649054289270867592987873245702154726018320630064756691646092512354545148148247785792238377290161215453957395953774363278324866843184929946462042513651736888470414087165152544949240673701811515482050610403855779939142409568091821030703981350777615633854620526228180029736806398335255411518570146583020548629943826573782783547841784288442481722997069672884836006860619217160177177712097705522254965685541327367237067636020446914733692430701888566054405150470461410783736238342045204159239051400917627410001520601159407918537061147062141114997434659939726784290858743642850409032559945411736530115238106485525849572635946319859146210635248063240455010088693868399720561864661063724202053088630751123719127869810735296873149351388181186226679159344123582704515275937460332361391072178421639685075146016213729443531232378718492333325444255484351714139397011969289454133767816292683279913533544709010646682241075359127683741191457818445586529962816228253174688023528305280451181379062238811147175560922159460436660646233269644216717153445666922346817262681195590729569517685115051094245322139511627974918755187614273787810484489350963119857512763003028136488307507619848495392941985680140515126280097677442383165021749479642935345140175404304678973575551680734173261815583425716539376616879693593576089037378701819008719172661896479056111691620324527023695184849788994192365247486242520725794942296914597917865937452992176862037919444083694115955242945437435592066886316302753391178078465325538396327641590147363495661673639288420025418689429383938873896651058755562061385413959168752725041065571452131979296640137451184865860976560400219277593642290239661476642800110911613909853128471825124732262754996585104582346955085856359775707741376595662189931996609380107304019089929758514875295808390351035623463124667551433251934999266263198210967756174616629449071475584101584025533758133705923903821211105591249943541559533123029654289892519090343834815048375071170526392735545098554917791785518858567238650322125032299091563761649798719511317886404128803188817182340132846252833037471672903352248692408095963142428628776335683819129809321122384630693313505366099009482598090768954357160695325193997160760673171062404444654387342510957591978492959706291892978223428241800362890834469962341468441663559331544781472090419174470430924970248160639028498388701060442063351221334467647047151636831148843575397703598830269657400464501628417900211910312399482565557011448248100811816153057064909806501765979923903657439324799774126704046370439024548955315129756982551177679080898538483528194095158612488553401299277502103361882388463717100527385357146848232690980299293938792157417616566551946169221975930668036335210088644381611163595828657306831636028919584968050537489475393984549895852909708531382068732894473150360857341306101269169788625588519772882585342721042448850211710410238079636185808627464200000584516437353225303163752256407437360497464550367985533745734299821651028178221228437169658109716147579975923077107938275863714421235154990284439546642031279758670377639997613955683820716473247024071068805246988960540464783972878456780647224422738044179863035788428919918860084897901103241956031406269998365021654120878994633347503919665485797174121140708913201281826972966066725664337118447424936580431217097690433159025475980281305700414222750693892321776188982739633566093551636603888890206986037830282328832230219398345028810266718920061935772241274225354402236241323149113653268262767626903989809370833541332984749128941102239835982547836449189846376290506320457560723766508410664598818171584491112119479797870015118528764806091575593067862618784444191803273405629126940548375399368450159264848876937691083233154514577640135143799675054616395180253926884169376970395319802662302668759109625403909753602726585011906377039618269350833789566810315116252128154182732745924506597129068598011699248171764574486949704322232507997554018592400896937197947260843615876567643865255224175512339487207137066623245259961140820806760575416727210067394162670844633796283609568574867408328729705905143121150526288432794757833889906474233976505692593110489440326654423835165293073876537902205004863642075146947945830172880460033212581163494817875888652698666097499841530846817219580500324659430072361281060291401558416850235158123583654366774668533281910439248335156915408323417827910453891576471747936375945036235135124667664946906321458204751169161772554587797137799322770519419653590078851083877144540996925198309199698921470474572505065290850096846646041599862829084256141218283901813867005540077999847403626919297305028190671975934547841249453917370337587767931041555814471513755265378507957320774982776341470984457785632618400648507988538821561704749647619800459231919364088724361935869928687165809256775513813793121249579678883200990372019534089292763399883497203578290678485230482932358230476825177122741730225716394900024528871310130899574563060651822748169438311372767885345231480547478392905959562539277025116435703267242497180779791155543688396750093769068023154639185134238179641994500958342366620288028679155673014349877676930301256775475372085495506496853512791166925792457589967868709471164161264326948068455075604101479485302160336001999691817333338331895458967116839720542404378418105279604318466009369201929616801647180092022190960101980746166481237261549388726573498341461900276289072531318532555922927824290218880750346551894391093958140177828908584417590186457268244148927646656396384177252980617663267632089906242791565490947456027607641012352873193856874570024461587073023562229288657313139651611041296798274834527924306277294914530841880766222778774020796220012110049714579869824540700064881266378283564961417651956209990051572533814430385641360218809760358737825445212465243185118488363454894255627831193065937581980200961401571542659572164490834302926268552577122730050046982273572758940812987740730615045054471834337535347059167922945968633609519811844755910278107905003608855462102417531430686635477061814494644184655965398308508029170603698185409381981486558807128897390382277722439329598350238783657895424910496346785627893997553866360200808234855763227203531520504872269951344052484966863744740579550924853938333027257980513269703673142866601394290222584093470850906314631125307297751882447417377147938073544017544051959708417140612710300607043454325753076919182189897607019283620372702344296958417232142152381451282398946056528619189042816466116891602276662586732373812730538247490063744253067052747830310136976799341778596934849809948064596278782943950575225835053342257682930789363598342556337041529702097763062778792727359834903423249244236401807324999735436144471367206840135030601649686491915791337297410045363402321753908100143951529523096383121018534345308478701714148618001686351099006287536462674997779090267917680628350635330735742350461367277510497732943781474471660576427482227559896176248031729766919260727284409817426811144571615534768119631234335180762567013318307155639418612345015384377997467363074098178248034840462519568102514824252041042347178390857678905490498654718614904908618363633364478229530467770753886020185077143551888284661065048216990993940795681206067264095027281010723544734755807783425872150209857400634922138455906021677094585164910704634697100435503328991819051457187026008695508572091309181585997730892544171487343812792087952093130694281019707666891831465939190295764678436942076360580035167154119774411186415378982587322992038799310706908068407053604571651475405852172420447096480809599060607256639942480987373693176647496528294493159881037154197248415985959271065874861475573774959360320386068874145641576633627995530450418809314697848193496012190367244583293023988829309987028290310414461494356178091193269890603043327732451559516738532494123558010581847436943440235660055162141091533396690635529237813028141827660916361525275635945032768911002518208439244970225217455003599501323000014480560153960870739007292800384630065945959770624553986174384226102810402756465110643961344831743209260933428853030350973517632604773368438429832892558472424335895012303504253810102501353353608243355239562413119859118299171746695252860232754902599758499899713945127450872833949436966858711382714516813675578630115636698527852381818334090721978567348498420224078747798742656400722294283815567531355944420421047134126471061190904534582768239012715432764478233206560454017701427197888162459240621147844169681691794109506771962863477246029926276636823391403082818476733612398632673241789925959341130694052920150209830875601946911145233278791960031433798770832200420806932107778778621986105712066802648339555370532165921009328223855903677572600464507914889376156449847218980633381623541600825819732060914996485884092938864373827934841412297083766646513885091789059083662524685633248336946061378032327205430439378335822185314850844285609753296101252605415668866024699300039384559639217847831148925602230779653521309722191901519745289625835876619582290737246083939087802825600488197266208998958535526070707146447422884920077904043008627954826543479701600545900431629865088505888658586441225702419035140627856439060281334829467510036794046350848437613232269575473603594094725142912762737921624611383514284803535638417829644002480793430345905029818877204282639301162691376031842165380882949608226980279234291035226276870555703922192582084721130425140951709344228699665124927013011277936594457187514349067559572376949802360219161423155674436075033230395930298701836906020471359567196908204690196876111879064787640835560215626143674812363651116952613063653289999421734950881215302257704190504109583310202002409143443354670064295397937462625840421480583250165538344883314787850738403780517826716023538966672080965478813608884260629045276538620661568388858012485597608865361011284754390749927712438165435047519159554279156595130613435344464874874284593829813309136595986652271929286432779632092487432692738774419829762164593101619023010277886493597019717930087954348603665918234548329200840349944972517183854864218791299697642414594877452266856785087414715467790429866859246999056623242189600701816664819396347906484588928031642190874244247804350670909763224400375230857612761791853975410780301961088631105045561716608508346501085894063923074080477323475807603381440581848667520874798037882205881715411336056296657714143762854777178745308693975841898220913083732000984739859686107834022308708356151808331505490012023655202245776921449172563071006192111889517945616832845235038134593948063803049549709117641988874310599244312343084417862312034660579162505522240905927498450869976071461058423954831702109525870315274030540668306332204339107464406563186952026592726470674784944816189335046511254384171163090223391430339490025987614620445021669322786563601295137224798910106114814965595156632969193784416357637873993409074530605791796162037651074017134684011269375758530296076731792915059926223300174245000323355901157408657590205705036832800298835563157664267330032191140145320121949199320041228670894648529337452554825235339165108359485716938651989423834096642418700488673646748321783741127692020435657821505956702645668347198546765092608902636858304681255911418003093344610774494331046942825114309808346920008764975299126164133698904935104704593157610932010504305052985919404843576285943598499135674186169084118735226049121935588543996046310663992427572985661727762480306790052413451263720293467914448602903065197523280989785533482224145864756898908426796547107347672516526353619401461345257536205934381572718240909069278319005928848802450371854647056924261981863298143345609351531368610905886017754862865527798119470167889163700831336975697868489635715144253213530099704816570374203111230447990267016463378600382417777449057889630461064436726753571876835430240254010611069233650948917001432538714456989141791158739478294814709275151732536170557761245090087426184499658312373326171976700657051093606266939153397717208278155173690132050435240312965905377022733745481651869626303623346357909864491712662835000558356986818633209310244112358904286254551369334971542445278786585164463559713002810466485523651811571296446568188621728058730343956162239899399166096106251241770293580647376286798556623761074206976165353685631335240399785686517831565725631029933925540605354407406460574053510708917532756098553024052441017571248903290423091872978196802043537351607532270263174745612059846106691465798039273891772097859448019181522952332449091858712658262329465048931733308912885077189348744013081493804475288061654281701632094096360115075094371751827087710722484564578990968811565723040728448504907045329622440627966354894944023210567588200405800627537344034880984206527155932737179659140576023902872586762915945035528412687709778958098942857686668502855014407512198393991839885448709877739440887105857356051168520499507841710645957628649755066269821200621740901888554948976503210549947218798636426211060026115758935910529738561436103601823159642521648329931424036461282011160087864553716970288404011275972889107705766784060712923691998776272263146199724254464371442141400874300971072784696582789885152638459354904258962965744661231251813054577569620164427972160188899419248246521013224277961244458048805760541818876419863349684316488898082271981998316885062477276776013536410001538250437754072126756039414771905274040302735560137296094026694828326775167498826364647669577468148621278283991062477870348015976539187839010894616629381656004985322637294393278303662533139660970305322090978537797027369500135833722024592742938913094103152495391258243055317933018329715471630774326903993162340132341208433139970831813730812991708728886569927934523329908495396686931812641936992156546006922874773208506459148625362754143433354227910644364286087740445927506765749796771781975666222323412202711637224191092592847326490646493722666655470022659379991869432018953703503997476499646807090196554916603194796035508171296117922713384870082811211738178402801363825995595544780978345708851046722944390054227425152561883582594139060854949353483435771100515619914206182819307131004161291804724917605033328602122574498244158546145915652608976793673906059248319972317634898054677607030030218071652115366614278408126941223870522965222556676410466392570122722416797337675657500346236110491702956797487149736184003664796637823215564746356715732556737730747291222293246576344359605029050565231210340352887835943540544424860753563131732777323295481868590354574799718228768743016651384052277665595718649882242080834417292669764221920088095844070796495149702245602388216197652786227574924926322116813955447575889789745627500378535564439584599565828972186566418825952482938948969802258684693729238868597687880991562413362462626255540859919788017852495529074367679655142523458561744644826348398515717624372609573476575451431228364734718059733456720690857390652796085219728092228123217664681628388109390483876055116351061119209258624381299572789990398834898727874034166959840262573340541516216708683095991855689386315917253419722422286618897381566351466395220921671344437979426903912145742226123216555065005913347977955943976153964053063623381565568704183707418569068583505442584189372095480509077047397340358707727133413221155211459053966065421227693756902370639736865069779543528311153996686573383767743545385893763710205946654088088711633016618629482506077433234021740854998351181685554763713961176475328275807217206806897008989026312415425633835097694101262640764662054795689381284610279303304029305652998413181591438839705809097448690079140471372646229600759443412386740335986431529108961102323427932241737788802702014887817132988000633200941031833130018478927077923696112273422009676423180133599462010916183613308505638891828910566536226663573528873280132483667325454971891132547731420416507045773568591167971412301009303138305130949015530214649385287929304024563265955539904314613736971983150386990189622278812076579779890949388953057994122039681512783080773320238459835784576017137196724668716980603887369326155688528526925016350870746707936580750154834543543384879663571976513501887363769916284158494344044445586333462880801797977775021690016676103290132975967316681255447301808161817954615395593917839650566779357692905066208478860959576805302965366359986536550967139487231124008536975642720154427176864001971373056807067664193615384224047298600683972081214895780735259914334807164577850103527855747671484465540834543903253935830030589946938155377910135344958089492389037799298340906359619354748269461045050736785483177671243864628225999900544780222486786128218492629719893902007480700853795427526250275114692385445193594731022942178112745623443861540162075271823176649140872903932930002313291340606504118692340265751729768154372144292054497170182521847497045811145486490860408626406425979713949114548764305145098245404686438006736012181177942754680290684165177926463181288594966998407955759084828283927837934852375153981053240101966545465826666699914436568388406903620392640706509356989008935077982781201752043499713461048191623668288626911898699081057523982911638415380176191987088513418533627478338744301561588416042617159477554001474415447255117917478994110933394926936447442255801324369980119826368954776211251171326055847421628726000558562357957928337476208484151234872088401637961505755720675044711037067907493471896582590762411042903273299781901398756186666726047811637247545975108537249997711095741456823906462693520993222573946644850863969767224234633763557892692614187674148228444675426909230463708855766574989824180404851292967310172973327765535253380632539386916485949378427509003458165651085839417101146239485106502373042801442124275378658578270767732599832019774429669717564005400837079843592763986227342695478919182346340863001540594487000437338963757125315699906279135265146432999154961138149394315787475854282781429999209766564869203280773726072467869736662172382931037642638667916493936158077961587383474283040132203779764269876349937505062024879872362387842880297338787691609713384559337078656235829603410691267106037796627252770438296108015139827558314423783761952481443501287694652130969552248602906948097631397006241015299451285811532731965632072673516388404433018583912647638523394465502416411471755627110028411370822070170754423361570948103572202784941659187912379932393392243125680668924093964892267652367418091873844689575968787597000111046076527856127146264586228219222502924750120214426534281743945879927882748993407017143321582476138938654990257438924140988437260287645794959115949252266729396163732820186932433760560415339729997656074103817899335500697704294825639031024533702924035481416134319582592206159085988532156445589072736468258891346527199956619790942616134695255985566167578281656892537792223529171378120661142602177479030011000422016608012494662945286506439477752420412483931953103065883173197918561944567710374241743026869756049483154089146228660592676877087400053183665163587369197178741031643311528507122382577264155468544822903930537551684487707111406107916921142845267481113089473963307867693429125617517461479097775055764793757735500165446992019035241651795931537723470427733884291923858783599039120677798292626995748074336600955127382117717074261025419221008799693212271987937914521268426941772212533673708534439832328156831510166587506940553036024699430981182171440636382959665004200136396898401753585073016637150004086208546065594674802551520363871321373415537837674512790999293651378270190115306046209688564643990881989048178405271991329534727383503957599963103416562010530885363192945470709659802999874683632875569739936722351458935942934912299741800854835174767542875868934188529873409176769528085084492119902707690257899651921340421069819432081594728843734395705111149631484435955392149520565490205793167417367234225851857842081919666663919042027005144619017606879101246768799118515817601219344974493753658869126682095662673817062323781822866038566923616897626563808894000056005579783881821795496958125604667681094952974745651268919288634460833637757570791136254960271494602915699933104765240702828686707919928492119785181662260266548818035655010505948815012092808902209483473084517118069236726063708059530719683411181303685781798821036941510542535151793885927980343526111617339435837944918735391437685856245203373710067183501134069082439562412344055269041141843199168041017965562856391176991606870179511712029736661044328568373460968633098872861384875684410479216999455663914684985298581269730540700460401481082254603809251181471446935930614190532461050911060809315381822801268784291116946128233479972917355718809952308744976066729720893420210568489020469998247324819984408731681402029822688350157223940976773363876611960858681541910394897453712958937591534242621901024859882107867416742925319982396631451406575448807367667273784005496498583156337022093652546727249924652910786456734838034540308034900524919177330198548699070293053094393126589140570626082451649645148628701309930256409669387489779245095842518974239225337125950101258538446344928139545684219370572113281038665974145881710242840773292226921712975800468896167540362202612700310629023119445866318061303646254398782130859941956623840308628577009753088847681132645343128841069294683092595286452596608231439822757061481844920238645558584648756374848134053102420848527940201427753277592859519671288567061131960597766844735511216742383881917254233000630103437510971804032749453940221364509643068602087955317589517029427331738109969471963507778826625854008945402832445892765041609373355157137943508775473410251171118962631850783298734350098251156843975851944579864938458349897687753286928435635487486035016632713289173011992359336518578418521754967996989377078197717319011771959132245258690353464534714398872665166132869693258463414562179406293511419984550992251139992329622719691880068635682137079701265659158887523810896167653285402390292192079975652934044000418506537290940087426628941705970287265101034258590312923067625675804520644781850125809822155362282804963053552105859056640655031242211161583160247436191157467090126659428002883386784938323921500717255997177765171917525648433713071126899248205497739094926848130023889742864528306242095835919209881457042864407810247038928989192424396115324567477545613259605975307450612265286052721826483056673330797067968308300779233319248737147664279888307118586577794203633663260255500028718866893497863971651515566530233737356367292385693471521582049293195512426707396204074521612191595144584414568123007732903902127602541058105402182757241500545864993881934091185360871356748973140937878203093886853046390571071508036221899484615907973439462783838301057369522118943864105991868855734132984581042387644187889329695096461809416108586597500005106494791879167028186460249578305612454664697249430851099520244858131673024747174083974731639785201004826600990927731816089134238557791821543709807970816892756844336591961459132271953845757073086943015688879218196544460418986124993969419049836019768946579193170993748985011019757692535170670352670443666477590780348333179428112103116137964003838303958257490045957159609319132854789234066308963732784039204195987922162751188258076008601229412205640078140392817255802792866657888309715769694068719624227303779929979208243683085873822509242625343487684546397721384070439866287634661699296275155231017730483902454227384039044881102936696154280683175371625399914582822349452742403930055362897939010476542342579917360322080706946414449035411159987103409692823924204892778896281180643528455436377036516374888942676251669968911930698323800203906594119704704306779522451661581042313093156265850311492822895915383128252778735657889457134739260485357351230541429021850006802841268371701000012062815443890469512086503025949273558618920365708910727484791930760905961976547372692232706675038745454354496367135015969214982273658881961306569416131914659230600496465267582983151772879137566426074620640056104396315886157361341614028810128954305028175433432143967407068946592128330427758762286179005780085639318145586101025453695521948593126501868444451778724944864939830122760612002717625955745884984573699873443550353419151839710663324725583305087698927438050569272941261077169875307741826964128283575490870405404596971278396749480987262014705607240693899512210509037713465265851511789806101141867055883210812659588077235055865207937501336040889397717677754715559846309547829688840347939501216224567900192477719284907237213408859900275957178597960188688595829077153678620319785382507433378133502551777090939531853912665328540228923607281837434173587192089510679892340703731346842022026562437592014219889928998400567876500816517396415321906568040332135688497797948656922752334524925629054532499313816843147071279703709530799079889500991362619451688504396728205087972070958601426186627545592992834532323904158234252538145316016209499237982120831933449234813105845367940567790905536821600726326342249599324464741726462271121095893736356212694525513487347284192523082435958884633973820459904769230030525902796954756874271817227843072556903906826983676242288234974165711691146951831389304870520560712139416182669328126416467485501811684400758123578280182729181693811821358066866780856113935369729161596603610257962706071697971638776033682226792263198158308211560533466473858864117919496417923116246968596478969945815611630530996404256913261776244643402503416456751154362308785097651504405945150275035049180102276829164220949573901350562441208500107525612487929288678918127281368163472226440142879246948437853888814061899427625065050977233416036074480958884444868012787958234657191593982587469978137940235496281592177211524592697808738138364805540130910737921367557865148459467149824422254859170500168686584455820868589145478191340905498792595575882190983771257977373721073829210917618033031695146219775493572797237482864309513740002845330573321191484685623368964047871450852708298265998055478707013210526116050549607284866016999202551332699676921961291010699180946655999540644934530820087827422683043358592810108649033257187902622946651819599035520647622019931411787639956279162128558681632145566731945798524466639729898986483981074486710746323381184833667384283197352655109066918692184588735633364731504583656537415433854592198929707770288313075451888796382354953237707461502186683455739193078842784647899796495103690634916069454338123317167724988125722473044784303314758628039584302749720135401464420822342263910267589761369491146130578832143022442168409061289607331726138195144697606688646204451244094234529087066628584532925238645460064222890093376756827102613040851815398220006135453226927914551727840011032710079753159432562966405317842678880469152948588254115689972552812365594996537358547134053831665636586037801874699814100241006518638782558889592558039957115994467974432994724586095939753960309399220126755184994677027406515205221409524005868015211654632694086187271488755486403353885733895295847924176178457809727060252651730286531942429036072762699001491206868011263030388634423046428253303629213029201112456461434174366032948112179239252394796093830859274385562593025106213540903314201653558054477975104405826055125425386954511067458078733394292718774317510063677819231009767760412039526277411114329617633145389971209946032568793516166915753127950696556608471648555680644328434669902662741149126270624069655384318426842439929389243200013178360020312558381312141641547199766594520759959993252988360247442980193778523741589757505907696321807272963332028322316738872143389804490111850602929371270525937385552082307660976299221496190292383426870976800486860707198677511673438504652625173367753858420491545956337880546347878631890492615556205435003645678226463712375913250294955082496380103389920024294820486915515453486296425910478584313583320689301477222723624740745153454839649669992949601805896174332190676753213362487043572427066314411595497343062416933367309391503123376404965629237912676333546095738683673591702131838526926800812278393804595537330694631503737752489651126453572725892458689698530360979305463403073345113588487881494813930429302942863527236936784599796117400019228018364426956809811813212978412396578865139947308578464034585659466546726754611844483759264461950861183189435791264473595455237135386567728933455087401266820869370716742499168425406436153558771063450145931823059649051369724557754831239360757552966662630811721609743124118998917067549710409922717125533663441481022393937794271053127046226328247877030258017310159735514224505806758101150298282758316458570305450899846329599980931041459125219965710106327638256791839550933779079652611260388921202221307576398296786542909590148231895094856737676707243587988997782485563390683744733415953288482946876003931679068463125585553829046914906059605359005930404616834779396014570082167215690538920554461102386654152312660510225983551363818088142299284198490279991774381320366288928610645607835846023081941679234535557992636407700413393504756085515212440596571672989506773317789364018436636655106556188493802424082981256918393968434625251205181973888115492975390344862862472185358744902493669184907149490154057215245791362748921236613396240129045219609119757168028243797295252503110885896440855328150274003831858612877345589291159823244122526241881210426190024665815517122538201822293950506601511932556237962108980776221275961111114584382046582826128041178894085641814678878068415978813203256424487526603758213929984433928708738210554628640857242919191006095358201136689919791313928335523521865403268772074732208033102050334026424865699402963035239259645564717259696841505791027214558733125528123569371156703126605189072503303805459923036342100517224055436506076344221034563955857548501445071861900030827050511898548852120119769003642734544230403832108410117235186359335267523184055601816937724302764363155306841709642349977891669387380973842392465343908529704134074355719098963089602945387771624346195853475174931567180970339627307518300832688543477964482328055665693235996201544400714341178735320023928348286637488776423850624541968102184035802871733403672291249745750217380196122535696943633329599063422990993874117116238074637822355343380274865378608591106736521530030902447057214685966379385090976909219519642119867613859442966379611955360284723265200815001172347225430245813833862891146346135540692676642362760910774680588648757872146737927933513700583236414554035809898207724116978456258796484693501470851026201052374547070323524090860288641765640461500205178199202647141061574907992796898876508713109088240138407945223789126188588468659823949058775165459850190846207794764174621895181247041175419215213260776550266999551648321593662220617349330604422333658340855028204141129446315917307777465356871066713188061233207788408231123464551191509904641926462907507135354579241778736685309135542475996844555658084435754607586715275030279120358546246124921367571717493965620236812065305343695855833666929982885990087357590761843983633853927498666671010964178407058701960405963595174194179007300152371159342646309714255610030193295319140747686917523755677546750024373263447567966301351450162709477027078692806478171263043217238541255532037073121661233241791106437199941680144095826969044101614755865396149867537568663615043711776091026785069030181238111302554348918842723486205500032083669037224433235770336878241087470636484317379420582393452978440346479565717764994635777952798248039074705282017527195702597869080862377232797391331684131332942464812381541132225950131788378779457633996775890464189388787455263983346422958988954659346203529913393192335830292313504224891607085430072386978859949858726921152573578153648732875020923856898337469334190194387353936473224714722928539878097045107631675408671553435090665837765471206077748298636200863314737948432325243067740988260352535834663444582730071608365732579924716858101587191398510155095590558900616039483510925315946020299189642308627435948908346079104619969656918621086204910044831694374251645115293196693284627991986704537850820371567280583390209733166179958972102912100154950185155128260564184342660079048342997454318893502709831456066167840358806532076816665819066746539871658762502994155348558283345163316116144171513796314642622222795920386960829966538393123070804014141667220073800651885534667327686823998961041870576664292607906000180412223422135861881743861653182637548257557613693297184548029637313774165897747125220214570437754448863563242740942678307293130327048462273907082224440845245877628929905415612238482308946111482771299990554179158004002839639844709058911855090539551146679044776973954016148503394471493641679417737266033970345069025322746818964392455120595718459079632178189169501508437136128120948599741269582907676692335493954445174059285990519893353484228403035769617307711090189457941996072770114830318657353639457859560915080323314925969738960444943668029433942722542450721810207002810315148501602335667200093213158300916389386094695028174062945694458758318253134177931739565168490567831546200195271255344012243326850189046506678615645547247378260010456149691245502228439014900717496178426493721342195262444199636687821590393300766242437056553298841785516158344149893905644770959416866828929376892408995479089842353142038903969713890210664111126892252241992601863729359407463553481072409249757422758611149979503955081055788548937768829107953205582916873321039208539652220135886682521024656487013028774340569777747838124544939728198613349357078747119010036934236010561396105101725305292450489791908096050973654493940306376953571399252549307774373842930713492528439570699714451583514113789643250650240572993637622116410489704359587204680081110856178341891757544802954232461166069565260519228924118839619812111038353056673590123184662027756946378794721676261300500438522488264433754107379984133467784832648798339482336431733808257082357750930817310516729388799515796132116221283020366421279550355218722602106219057134598562476220450688137215691908284600429325867339024974510550839357332246633792501593758758517925792819398612030891936589511112288787028615948988170860124649123383955670708986688413844717567785746575234579736300472806682413806197918878849430845778433966257307326652989458040424831880766196588253578999564451437273921953555264305930780527215838974654065158281394036757579844306863897009210819117240297852794482807789437348470036784308302433948739935492108484684939844322895523983687600131128202304357533939094671503879862586798267037937980312376039986650991208842619019907750452934301285241657077783109326009233240607033150995558273444104571647258572543843235024456798237537321431864725049906277772834481946730224043949361886910583646000183334616143001683468964046202632377029817947426844635960839576300350427658309017372574818572703983117999390540162370304252072479830221934615772445729163212722036488388349368407138261320282380716388112492298774308851634730338624050499212376198599381091429120413821904419655270805717832720599117664017688646160486681603222866805240431997895958424279464040806798934216411610479975919292378268890945116585657188503295250703255239565536052213973392245475094370169315441246953019042423891236963976853449236999182893788386543400862732860845773074816909484440139027558203032778073037228009517054851202834891325359991828212511607840728123132645889060688932499392143521612495039425984298549601110249057973778180053203932499498307560807109050480076071684525644796488239215971684211376166072707367309410772144141461333701836476532227893123062562211369263050436899081689958065505958082905190823153795415704953765367125663895793343714700537593900326066856040204148660088211879694230021881705406551033224574144845754806884278149032724609670442435339805976485442047187135576908809670180596793943237732034179215021242162183343161416367367215514625020445567488477666657902303653679554846377891754794125119760607550949287989694136858668657836331436787971374445611044549854389297591209419077743878281440916477502149222329335843699009481291276174686229105991084952901824530252495878359482779580196590431141686679230414045482549361524115692739803201261338696424344548436566627615483108874904501302744578557765432141071769513076593051559530288089763233231579231495695087075633441619912597967954021098072114483896550699438596399261124596116260325105720606616826137268926738896215164806865293461586137760014386220582581336551010567782068676351439388980991526211355050042721329110170943784819076763275712768723084088895425137465186270031129337539323344954440454179599014223604949579079542836253833536020298578197608867131020235127466936485025620626940914454352144156119834355605675722348602451978067398539818875572498559618563281805164961683188226056280641088601160088030976059998740028793986539859329601594493307381721117455695619056838842016739055544019449635321800764214620082916090886333839703192820731642306161659431897361961525639374101073206786835379876512751354256724241466620319836690765291150877456472993539237220225153769449827417194803577845839328074472531510637816745142336610568416933426668033192958216825709225517765524010936613133648835356550473240267073271436854108369444816633273867355406353912717869968132173384308026978010225707945447847569896874987599345429096928236455868448422635305048703573274812004620051528739194885973404569888766185174490762416443826280329129155349864184751040841933912457004162792969378724771578018215889686693141012840699893287760603301793749214066671301674182844803795807325753496282868872430689784810315875590565790192814356067726002670920363369649153335652579448022983203898390127896550297554963008881234508015180512010189020854759961730290085036945951167793393527242508820688831749879024864373999470658251927625593400231686478958296743575066680397729261109856629645734240761314016528739581141096875126220811856001472801906406618810266348299165625062560185662290389040837583361895929084786074784771146995279747661306551171595983117495859870360428414998517430742967623048893685163080174828303664871512155053644861048424699654231862330400717239336963727215463999161947556589502368275462428626494873977053495481712385366990709976196660432935050573645111256121972900085553097571156360110778582994095561236170023067537917788199449187581096834395951558571119959024155176957240024148068433380609384633576985967330835262762194942503216949839709912071135509706735405938523136551433849880484062450144707898780947179022859952384778533191431488268412711912802147098462931840197714554878987378911448824540184429285714164113031613320436954340700199372488044754274777609860927826042859920840904073067616337640796737732482029816226378942085104755080629240382884151740648325397530686222681235395324234043255166885279410038411028147775259387509723004978870345397871797442961469850312142676091663628258963093521384360239888366566089791253625179375869312434238464342257897392340028826474351339224672098999404888549648762879268364501580238464109000633112407040167053014080253291178698959848115539920800775912846964087457960585011378364672746846631976040543134181159815499956356128686157097682547303798874338850253758811114590806883236337784680402941574834960400859287226547631981902416939876453847623342008228949553829693828926596301088669635897640654190675960214817051524059993598127525596979683427458660290525121255983864758180134558942052711953954453592154166025009106346802404147387882844033552236661755216047642761385333651126320686080902950717619981026057359329961094121747489506304595139449375099976214824434753896270360931101117884931487167597998141460620083463159278162148087065459024791125388763152651678498261280641934019956931428772185310908939871958667061245369710103876207540992687481889332163034269041711642489109811391954362216957534489910902835198476101439176807183599574202739012694873762635172527945443705239820295537029767330657108160648679174768812492865722139780601034417824692317864002341846102290435636851848883143176655022702735600426212442097234658354637494682015415963960049013081648270777436923071419292417511991403154282069596018301423687408698408408386991405559097086034492891946588634772268672404662730553587946601344087312498864108789919604245730212663744574654501495917862881365977398314334979000112740127726390393764502071896062032687837725388202251124281359623729053379487034726018106589427046676404220559545588891931089063107305894101057421969375151815198459471345074735414880014874803677541673686339012353790768718683817691920889638421861709434489252780216382524764538900210953284161063453283467284493139853981035582618147691159695074779147235618725737317445213425080803496118691432783390441079972079835767761555473634737179878145564558163462408105283030082860745251744205580426791585975762590626917468178113169214419552203039062321551875371138226339472498362567826333790166334934654976409173409546432101112493593261681893183569470080258075451674133091959620856532825689519130115023660599252614529810696389885742449365693270661207836254897488525923343839705817592948476242972754038137871649444470706244086652839903592816065562879266792326510680864571324153076829269761395682985982858467294956919363698251598481354680541180378630243779250305916843290289885703722503222478443337494693633082025972899565098922965806208621526411931045194451513462595519284161577625999876006966060444649790911449876018568191262678197182663689536077732016657589445555736068898155290866741332414462025359556147340169681394190949340449375539153957249460580956666551789714347941248264081687284565067013256292424644597113176580760255730842186245780408218907500233007734060330648885025765859075785105574177600050932352904171321360269511641711157437210840810882851844601705000549029436943832125171675485780573435001493243444411734174734625296536428146716101026709345481730702274889129835960762996721421483539506137122106144511735483808211963805134236629375699470094681417606231257869990095636766140155698753358397527059475487785227476782562286642724379415089933855331487423009203960032480730857829521670285975725205267606834509794925253498295836387945103999361794788082369478287712737900952598439251553731773327101439577995261091274154588606996223275319073523604413457340114373487600098689000420702899490762221720776064537673990063461652143025394726135046968822756612825053112689198619316557584448417256950061460110026185054734914397939359766922870813060928976182604277809620740361947873172924591183390174824154385122089074081441011895273198006405900313356347464359113146759859571192614551432766363710247182823358762548371772281247971731129390985436939218736291010426510773280053755463313907345221760720319637334676602356470475790962929687929240154680169559272084591831325883983410614524314912255525073658970386954539900037713205162905292575796156276382611212008266813174513432759554896959198045669202101097529819647617828826046992889347933286984654171532556078495928693574272496150403860709574860591198749532912506970105597431437576268041844424885994759236903111072560399146552087926806342945214371786354799435300139008491105486719591874056397702010406826964904988472677557150853772903992045824266535541177949441510390990951122145763121974328321036164585681657152469184263708714298010351660155359443001271975029880804557845168139551487351118613244574881811102718378148338853993776476362030400470352356206970467201166930278894783843132562530604722930130215551915190889580614612037580637834740767114741956386161861617240247121973878834339594933105992779108223858633767225818937286598744949120276666257060169994253583829341548647591223281180701116928120843837956360870045567978966927325991079504754145466822408873046153061943740511451747713568289777423588174776942322892337719020808109707784719767202699814220185574194620148668887054228466461526393047088990168172850257988197918434190200759315113523762922258964173702073498311086768116187106377359708530709348175971071825857921464872336260919171142337430054110004293868523517936477153232427373501357366049132058573635960751472858184886086148700697384269119742485438892468654699895691501265980113106046354560307681041599973277207742139816050646585689799723514782740452903308714640181737727914600067306586498224172089456577509040008479649886939922029698531646845632998669709543425237947446910805015875531962863884948202491614814634233640831806599402958742432402104329429032326099149531548761996035674393705406512574936511015792638488411952224013319887620329690287444891006764767082402408341677294641880383765540227313665676186454047938536343413645763897560062151173091201880371510150018569357403666792121059568855067225277837899289408795924173402936078165829810575989364161895713254377007843225363206547086523771443028187752585150434575293689561379145444941463602433574617104613314827584198076167777072909596964631269561803587362761656725366338121501669702133521851830503722946574031941493053989933964162340018087048226954038220936087386148980549356198849170864368444683058015528134192196332976280286311235362907619431524573275521368411776249896806937916183194202147125241828329648713650850520794433317028426990624891751293205167458712032076685431418287234337758500776752109976030438020142874565643416186678648926644196369399984085634185220760644648577471024474999440816645776994015167560477943694138787307126092767131024629326510477414689040733879171878280173278582633355004914717876931654018212060444013881835328331164885644666111103542368610187094980879432786383913252528946599531465561509406379855586496623439134140066408080811274196140534596553393808888290106881002092376240326897334963821766700243434984809053842459004077572459552027614727320060359757187006868555853023012030575072761054811438852015655226044995535333227221491584232146116047978392557131805408930423264136213940220677912010481817268134424789533130206646835508667369745263211455075773860545515507181741109744677773478113843147236924675287959248311035688045765864211794358002305276272845078859322833374283450167031913460644539949577307103131139627214478947741252441652494315248847367883103406617780475699842136657443277723683949359010563336558400662093044562631850263979124112444720637246953467908344530767696951635970786663644646127853035588506016113154051924494826201076338234111699899637201009216190904079868590612355550739685657531704909375534027574008264947304348911331774799397097646248786220585128217089460265157764404792041280315656686222261862368313415250301250660621065327207714427323994766538943444217905147043029142424694758566890689944010777998120614604064187584586890014058546754814172072297759427168763835759290716657544468217549410147504093464862042096628866023066528071800500704333553050509705363332072236857873977871678546229536448582376053762677545606853435382650553183825123909880231081820049708493735409258770007170507135028449475126627289379981720643956593105583809248091482240649297709627603203890385827915983408897228414799020174319508365271812138845424370523492918720319231060937766783409320487600209052021524713037883753144032712413854734807461892592344197441199003760454589912707487482127694833194692348202190383372255447253590470374544692641717528615531565049993562833579378673022775848186832550568130059861960496519619867258898728936571454597246671647439176906002257911785544234346244075706342401446633067048133176053596528216281441978826900333794840912978943964379657333363993168739898825750572971334542227505055669112103100749301996799827784706212780235835512266009161549773722482050534848677683837320660356159099111075634064228936181443996723224956788432248007615663541857760513223467657700063008832070792373563368249386913059731951545785245595269932288922344037293911135503217760563419693119402212303751513346463920936084446644462221266673256411488849827411736916718422733064869241146977384936541537751368587862190340821434755997812067415848834713239063128203053581262454114021655281543503401282449905447203297090876469522923541016976878476959200089171077416230226084548055642775375340178167384894772695179129850729209376222551286525314496814809720788411002044930879024167632998544929420609086272312624861726968017992677366332259100279111656388123526280605684650439721651646376097754283300092658929061576787351921725301357080573536370097472253856754318791375668060996602445972618294918026566197503784334733025119645474470148275131271489664403373089020667382584990126634662251827793518222518665600614719110259515125123107113836821309198483918956664941620644853355188103194735090162639351550221218795966786704990078135263023828087394073675707915811251058353390784778691091651688177247255636391261273181878692095038973269492896227873823549000048149878598767866502594803210896434024470610100232070630714786395276607465353651048016842455979284706144412837445896939796156379245523813946423793017083133507463835907278170686479824492878684447161170577811443319531024148496855958915099953085341977032175189361926599789500157739787919082080849643994571268511854713499208991987413498734432703756866081939999278565041149175717908929170240381524314422695311428748253175912248312127912980311033239233052425362710597517123021586259920839395747782612013186841427227937902823997814396968713380409638677808727730117718725584417029534183494607139201893435499126127604939127885205796022900123304965226834620632180597089282587437069459616550284992847487206320237908743116512227412007797740628650644686334748675255529160558906965384010992542862495070547475744343730856961030218721683277004989700013230947622182158423588754070513299327126206474820090866740163815456699901374571938683092884930633412442645392353753086651435003160456708697226894603896229872298517701139949028844501737252712275052982702369033946537646347973529130965019197987576257402804618181487810834682626175170757014460190324112297216114928833777056697190089843406240682586578182349089744702584155523745680237890433466096483942636441244909823763076602005478458024865734248320540723636547870997298460275707215078318689976736568838409052091389792797005995955524289136454416993607139613810183853486897451710773166236743000862261462248975303363266629778673754432837490819978244894727087184287633089690409323249638894380717778970348670639602701969320252640487918976208204818128985232080140268963085556051527420351036347575991342539536375807554889503447496563689001243161977081938669375120095912898839625464862224573459161192850252899050112468615990784688600017459599958394583978514712860449818148918467046833447594989642594736636398011439479658175263037851554617580747682702468426803327393088872809703418969650298061416665342498570098658692298515895180686089339623273868079377140161819534142959457130018606308438155296479905990036427754293437667944432083244424491573181714741397826064604982941677843236012672887900047140782786599956355631125382173567799468357064307073240650411839895667969960958105035839847496767882779943037422247796541079454637070789100809115503590939475243469269540160459565830658470086000713485919055534302456256629308586395512706447494190384357198855928145612152017412528035351824355806876715148822070729021374737166797376269906536885965434790053262433565350466368549740815858447469429088738554758014712650721925573930602412286403021892890143757315981476656002912351553981435281641100078687853608597740056420543200214242621304016262604312447381491075342585284616769051919874245616666639468130386583183331014961700927563881598799154146595300561028186095300615300269763273737874806600807930046413871473674451189940768613652321100698563316861241108667145540816338296341208595308926693006083547333363651585126492969212690147443232590285963664950442443904820018509183387233455002293609998308349583101510220253511516290274436974688076791839824576850661605625608631870795884135447635290660335192388083941234775800334114777361422132193754470011222348085562426433955655289037050502170689580817132762802256406721573816876459243455692054259532181486598192168319367049351737442130186528443610277507911573731436880860460801028424452887239238293865949128374981645357728096879372527225839210383549781854019001659326527046022068474396327060044975090871179970811080045702576203924165899569224204198409953656586981338669035266380358365497515579311992059796705957515144275662137668702825851174457862023273869896028463709992585078508291126108840072525606972661332882245179387888697982265763848209126354262413622743774165131111251350884564370827586183038841880101626910170015836224792681265671082747821434706254913721821316790004544992973681383124541371946968987440951156088278348521401531751449395993453176445567052355348941511207574372925393482581356984478361385825473443644443143961131100107670567310288912199289916978920218523279942582104048394625561358412492532489155061941494046324978686373523224468305537341962764678279908296380276061514086288420680208427582375963502493657518674415904001355028128551856067413679342770002118404437556064434634028260288287569348106319945770737968940608990204010668414539078841876038943319141690156590232903765434298060054499155382017156136059573864521079386777614520755223727717662680827355519359337761624321989039621346072247184924514248525156754823419762779652945032593072193907497611782576413435814731320304971753898405797831685175807538562858166310510866476348136445496053400900396219692240065275242308652185480928410597408078690140142139844289324466597849040037384272199113667691920916928753854485186287239254780944044458884514081111316244965821640386109273932445642235122672520321415863522113055786062853234082400182063705930092290609473960194449485636059564732630842408589878276955882202553708624894482563535553534683424001582455755244249343714912529622735253612545035095462804859134075029379858238637133229924081789626283053551316980588506088473832271392428741767130758771651566158034391148893002483387347571955834701259183827212669286622172399702215451065621771902131759469765435191714849843564390883952961632326441278536705174613024375745494061344364249495649524347870078352759828035267022424251295534475578466855797928640318840078058184693785017050209469349485542279197608366586849889758465744806786467315797756950860072082471900158502925511151856066984576850436810187646206425268089989421442537279002502103443839849133019348226584672750208736618272938884363369274425985968056289966822871950326467374672845665059481420315417302320922841856332013664172435026291232640504421765903933842717821981095895580832752078262688704455481057481934013871465600832445459721407729267126553322804846050469974349737983708406052377396043577481387684299888012072281953019813481738457074278512129048226819557046802734547285776562970862814246404892054502116705705150373606524481474376539404567049910989805230384839690825300004217445837571729783480003613931428390123569923623073624426812468119106213179479579378566826978434461387887370003591952239695485970320344675860595666940982825708799364486273329612713366993000575276686530459145660002190669762795130676890374486424850256050395871808036105504111991600423920891934948589006890195147307628905047353507079820472509763716867476890836652047519785763165231545708607575617664848794151130425430580545062122512722453803584043557260419002031772440673821772277502111172326374188697893419491006892591008263315748157274327958999874157077467151189511649990099735835278596470892316694931521671798643505838369967361222128610413972136012436622609288160548447369265482704184593909969467732018099825454169827266903254348701584292534516623898421234618452130623166645826173204602169903655541443018286993019778743363596112405118120015829368283947080603002923488935854364134957604666072026547524703106827805232065019204916308762241821012818707113807829013788733005314130638214071172415860384957923102454586847333509310165047654639337523387261058400171216188751342430357626287916564109467656888672250041708634429289928756617441548566479483468338187730674586440172638552229956936014661967510982789859146330861869838979442013447770676879759934394220250771690798666126310980296630252268326580690128876911145487812227126614886508778617615204530624702281925102443766077716180768183669916855565024982670353401452197094755552880932007678705522571460365361151742840695870969104246284071605848603402994356737198408012250233332326449554525834842848816354585500137485647685866507898344686446892021227731468623859222331983125120991080998247964523333694678991435744110905743550417540543951910807201985096357548868882834572432721159694536781310095219750051871472441019995565186966247167286858638921832281329298725419331219029847361346984616572008191618905367823286932828569715704025760588543420654204160167812414900088624470314431109122488675556934999097802117247782599512273691227852379211159487140623979762347779991489696451550796555268192281406204990052991319093039294517815707020366278407382980800385000711780462389866531780538613993163322387302102187587479579957792908523103410911614774171597888304930724186362949105626627350600332862195772398125134052671412213337689051533173385148173658576975972962878459997487469243728239490307643656073553318606203024981944165103163754317310574643941071292409436292420157061062266370858422816696888865245591950331605270572329162014170954342951979371659876550739434965237701273789704997056683546224112039752531509426926288476491551440483173654288549457657957520682581207013093463581943219454923678248101281084293290073817672035562879373899993365282893796731743386589204906382461962321183561838402973181863898853668827249112847081931627200394908414824018941086037667752795965455333899752672124179853872202050225844570585247723990192954633908309132269710806498704915456771675513115130014838862244879891539945174674917065170836987249729660260430359722027858737744843643093669334994172426158906913659586735565142235657046539142889683261092474737333385289003754892791349703308745364616127948829106780730673487248203368506991234133146329897167260264411398706764310538059065929723075216003381836948799109753248046011046140095400298394042418252879965418890655917977238269419619862752207578147911200132053921150722126129724918577672928567322926299848639940951274556688221971229374405196531346942554038139422382096610572365334293191906602225897966194150037992037825472113454667327575787479919800052782801759961020481988354232284097055561021422250321659484814557343805625417148414410367766789868575978619562699239974566883380896366519675322580790807724565523804342041721679087251004247192858223733297256190705740588092079209166011864886470789444579206733747442667985794956803343827138907489261114694295380498484624904071859418082956085418296265113867301976335056768349148815391134708417690005639435971457875880880833658648497745004206029426665867015458058090621034076759678864145997352884207910693400878635202720767255402889088180484269000488568571952574549907091315703433269382762509221933833584691960089617052148761876334574472292117269593850132882299061058789641209890623627143317420333941871006453504523775270644754637188579030558360391810293477090281376077862584300232292542029108225632425818540761992613079518457631306481726566550442105512606937601007396678894090141416922346411459790458463217310214830985022244357359334913379207045672627736542129141494809006975693596985377388964037967503736829398180898409655627901617263374124366510112398568574549427876791206927197059952935873056797874210375761471291903691364043784961574963347160841741083694798293422173964882719698376231047201131670756390334439257572776815713471832087758111773401813249843775212381256058380792741971759149631312740033441199198312258920642153632542530878151575244360739299978131910942132144919084809227994821454252627728154242065563753246126053262959094589665729997230489840360776032607851072144460381358476637478111129445171805598274140132237167772734006184537406883057690522881882975031361741719455566519957318993285391672755483836897641349574402035837311297977862971709227456463737203358967378446899894679897069482048699887378375056677447549755143027854518199926990411874032198586394008842828581854762928370026086296340655940002639077795933320631092717993531295977075204179733877060735469813193599154912207782417068443872798006021793610708822218840807483951145021904608673222743644176407919410387093852890020479492865037608589207897373111544182473477056989881163089284110551225249514532432386819215411832726835792639128488707715573831747383461240011451888559340179851850525333491233269417233823784763427787698535844584172876842321946460583923729833522343008689775809378166956465358221441786477499193903800521749206313896422945455845725364155890933122704364064807262830705967961298161734881238975391848720318025361804630088102781819161446752869011381871961269228820865274450829799444797731284830624940439543611387485950617942394645703698998339495947685952470837213986614676107232066509162526184926732590811187371146191236825406528658113217690579172097602207983020632263872394842225620408729254916910913889244977690844833635101855345773518066444316080222439416838701835911840146608213073437425137296673574602844181482047922385401672941814597366089924702678539846931408190211800945369315517167428027126813813718326573550882079484480231788898766507328955186130556218451050985268803970484357263258080349387546827557871879220023673082384978458295697598545415285298320163187132354846444720570660380242271631292986514852153344687622890957183495509775121787072893340769205908332890022627051494495494713547024496217863801507358111791448841196753793568965375669701242100892587426567406699393444963930537582985109488429880166190846838207607018219009579579736908653258994320019630160007986873636737208777166724654950294934604545747490221130152361937678068263757468158552366632176414382754838547410343748016023681058499875785994150350715706871147907307434857118870653928079056137915448830624092620893730357888919278236123960334984975285084139837518920490001512927559922847644296847005173901464064457100694317494799362591923166684208964329141681154097680667171888077892292389140516636786639141346674647521759190405364704929116972874267965265148914027892154364651163899335903614801674207840743346182109250907700570863751440456502688669203907341875179046057731107029418146433664069475140157756963705528939654674976607301162480901968389555025734998769738183825451032449392204113087615145357806108126973755036947051415557770354120529072276111561648421315299490126534128309178721859624452240448414580426842002177112588697620418498875874528222003027272727635690886906518266922003417157352970578553007771157670338964643277947695078266292654783564897201185161231015483946409416817092494638858698713865682878388751822369869790141599249511563222326370931581816081502584555381460670062578957353419855450357103714858767967165396917040688105906307493844579239004614101362453598591022792745440030179788526562866354997000782673677357159215008707215176671019779498748999548662630434321849948046186127508343386490673086498781902357587109806348290909611715469084590026676079611712609273795284303158546022921630523301273422336972977950163563178374651979651262126829925303558241008906660327376982459186552991539599991757374698365112800911697295089154356545619151424870776988637739528451411267676398985696944373084305830526447190677409421594591305619379641334016403326546245279515790518763591957223719608313032117833956479120691310501389627960478753956482599650246527622631591867114137283700128041104843116121520142009000357008699248489977704835717738490259021950241730417616554089573552538494451034432886827856502032397689239571416971853665949825318622187984329955038062136736296260129162020808846350062254326535089544866819253712860357630719997307720079850815662816537083425231740165487575846815662810795966805535158068058222898181078420071260356938785145808523855778199755435149400683018695625656733380410886546474550023230352054257601804328130603876029950208863757960418911446014145265384460455126002587925135277985794892528276060656591446410762290981070339563528742260888148163326838074627288465253732426827373799703046725924076532439604376204825927205674732601156144831314450525058300388314557422104335655875385740980552916082256253629870181269522304902793501429618823916066075820533932977597377275107246333170631301712843825287576399063880634126420621286547525056488437196720995806821732342857859216516142692383535929669448715483693421581064832534426962590345297372680251239605550316756271023781229853173782828361704165073800029984722194430313788633542603014883880820423238343937099441876677012118805804602011537497100883420751048100163431144738036115711982098111036968248165265835690987479329551258996065818194517826995718154981134671180230996185313999074670283351576033378347272399902826623965990491741542386035384666125332445150826974637329888607012564040593463329781468445065998874740896288841540240833761972171931134274436961659414985858593740335497208495647595470126332062055582483994663976927699297663726594300883343629172492217841979113990964503105661354795349207742981114654604585161111062119159699090526508052705838885535003463819338889417829274102847287423873852800478460818884274904517291396213274790685008510198006643231802024686135481009823693089551896001379968641956367719568157463741180456866740957347119286502617484444825453005547703390077462356658930988908355725954102821114356925990443244097230286397142299937974086623813492006631951460671555514551046157071187974569037584018763878733127499722559835284725810413139289860248262931350903173372389452626979307471530660462858702015329956951523380782985294437944698878949331273185639634332972610568056058360972869526758698791813203716406460416007297532032417409717007225238947022716336476711791951092562582877604791248229072872903087681290204081246023072760079151053374312415213346155075766920606924095599492227758401299359499504120283045581183973930873929972017040845739863951345547586250348962012788753482558211723195348461138844031022911593268814678513989163286346695361200345019367932577758947799461710492691064198254936140828681037415384978318935922567449433461732689957309829301001842606522767700115117282210061111668444430700815372592597479589010100520131772801103966607053770162664005947754031252356108749726499109271082596862022072580584531736594136363677204731390070795779787884458384787609420260760092174826287705822096522921734638188145049901669320595788528177234928772126232260412233538145847951761817982873905527555125162538336672952796858670058542146950253698271829048049870440074497107189043023116385528602992390707082123947664806040955483207246126181702683945310864856123199289198357630425643237617583191282834747819138619189279904952600075675803701270721472738696290114586444626106822511035769409156473778252610767316760413460652391735432471316622437967758565245867482013990437170537975997078968283075087888129966030700146146893263555522702443288631718683253985230598421547779685972156563450511114450520973722182185700889997536010619061781463160615942125404112600724651367428378686603845213444105628923092026642235175658236752689799008070643753989108679926386404383524984037218152290851735639040179866244103541804662616845151660301974555951313787373546528487777217197981836661374997468098707259836397049839891225570480474154821522617208607176235710594479012478475965329714057737826745002469829422051882197503354008033616525549322463858363203521248039409917326848886557373755884189239881492649543305070833760940235939561665691166561830899139936188975351695131904010257342385448647940975713073377965414820190338926746006875310600870794970157530701449205767103913822046859994826183296096805947004313192466797273253521494423747221669018718236105400745515295957611018566734642294317640867225172105117690374531572596922096762555878160262699355456627638245638157745425681863946512974680684980901592194770211543064555971336192397438926247181815331707591027829226446283082615343720438455663890814590705579853381760799330141023317112221117729431171707803022770376804929626185064803068726593958323219828938055546526460784167121392462589846221170592297119754256592434330428748486697107504251002338575551586860378556727205408521283553086435052960287796261364906491605880825298717113933352419801752760290657971856718438495903245704589685405243331173315638466499734450976360694301180016196415574049952957595111687085036896805615066607226544180581517533316014165405427500670872318038779293562947440137377184398421916630559682918102647341107636575235260140843964704021633447292887884858194057102851997221093760279876510895598533632893941758491098622537765101223515072754130252759636323119312131405025417232950384003583515383577826578255451784199793587023902610408187701789931970919940139757822575253752065417415218387282758927862435915494163879967188042613592497449001191019885377658626343878311913211950814789169649195923028387039582678312602615446104757866372660391687726060571745008132119123894827887877141971266271045242288158791852934591412132330970011854465830884625783105115646950750437108610287483533739841389111663583789011916340098505880804231579834522734139341123434265828366869596452117642430379570964077692877817112115629759143769307330998435167522253009707248061467330381886707936283769531460894561838665862515360535153291213083695296064194479302176027810771283186720629905249952113772334368412463963238438812186647295889286027847848594364144042454966898151821921842634988422568808106705899036160475543263204152610416276683371021638007766198039837011909029752203994362935031162823991206884989011407413281304484105754001859704024504978840043273285838655884431597464986348940309571786288229873225198939583666003960669318715006247891628268589180592495479755865649857939708428886154651743913592756058163398221903408402812413589451369742890468817781728067960502457839738050643665554490241402020227936069243834786916899983156280629866128268871852963671656763357352188233685350914435966732381282277564711503584406506338481032724809424356466682745769629327337246766661247404031523784418612507456656991645601612013477257469076321602726253304558383528488846773405157332313453285890744681747208875070153809560901546353944828849883656073896908236301817983017316461569576228737928049060422957370506559145435288094115404661584721920003316945530511525176604139340288698597915048430028880676517030325285014224616559954556894164986270716463396164076353133390089494374206062501578423676410389422490910171124535953877900926964017788577807742258852851566179551791992008172147107853641977199602759031128328165833286583145936292059058839717218836394692536057207421814557010565256028191254259390175383988166739587210028876483372969641350869245429748071164651397948863903887088953854023230349689186882157388286850830539414657846278042268265180619692759811611915453179658915335585626333546497229855345157306456849887297107733023924703283996577387834446553057916820605847085295186212931706740333233155590095875963851396259135925544115266825882128933454524398537352198362801307005780873791740383168509816584567316157781345426023669160811613357844673294295413380811947450971788637334253711049365887513731746516375407981894710966505355654565970922767156519187939211426158282650176773236948510281220716650073278334417770414406925122418617096897183350250975416392660515152852287416740515662383412119637085316915681310393086115669808195968030627886602378784640257581575528253032230443360969269594567948795341791350092598839887677280627480962486486117792067134728774125062461471340049270532326768960733821231222468942755376148738624715470172829515182029444653728855309194390668441328692926826744170242911292116273410124428769996688727950445678378618226282096980337976683100077694285690403876906437859281981306917913933706840432352576536637256811874123222519108911980274637622224547193117472866903319581731440406464915143394424335676963962251364432993610402310396194282039067653402692043790197580986948349369657479632582198716595607791704344597555558110103251927793506168569565108688086535082437677888308555074169334772126523440134622034438458493995296780735357586031091514466787412957557971535070862225222628929698432641346444440011347384927928393892064728263864880987751984124079991251006181788439706657808215652536840969523236860500807207910172768840603447272660653243583013364457157512565855784298265703149376609175462362455179228385777208962390290466349664278070431080922857377635454010101726125298781361233695138084331209787634319843071542478148123026165150140703560743705806450544466939489132828926346100254141281163865417194802667686136312841317715690222115759913666565696318551410310488696301277467912709312063575048839008698080048114623731348905204897970252438047900294106239757842191015096754323426304731525140538628247408502749456998917553339395329035386060587540061653986325333093854546769688854293803707603565530534863273818457737042905827336107923245691476079451107694153744620265582644461293925764782251656327843005411471853518471746376551266208947852356605818750320644373336520996173318307180967362923071637414990505919261461747524882219269374210447604082439438554911660191261588584832614467939440702062751954543124234677535476543817955316206340886657812536154621351909983403073715745062522854098717104984196044359830514900706217978238520296133085146529431131787637342441409123685563142060408865709803986510428971787269908714657535772392427093286796446939521239325188124215283385075194661464356532121461775572049679955601663214936176949449978677092333742958190022522401452091543251950336233204385690410603201945814368714997321233782596421173773411535678685372193974794841239191800196284397117271953197358703181518617986172152708959719041236138601807869088263753486750933830142189083577235206035684155760837204133989964247651847536207356169878596787952686823690733720056523551215786612117422525033719379230574459864012637711029540274092680648810499489244215242154739642787228450125618933658309339214684593052759944516696639132474757981311162142024761398330174097485031344066803013255724933069013748749134803220168996872575844657169979696596329089314632922852492365818947922241957455336364896130216821537873133335418781874103172586635266457788049353954934256525266687088859574286904723329015008618722168812077587806742384452505808840772911738290099585241549371988900228724879017783821561661624216200986903623714096388419886642293649400813949340169664898291631536834510014164661554503099383559634307559934245398448756612293622067798467000894306282550658621592925160612457758852570325650806504961848337138353517793926849218718395007752634916905628919239752596502778873094654269051079650343000105277180273368521658351880081093055470432190603641633894052576838343398097097890333753557993895431995382451469105278878855214429531175371386633606854433521080229313443421030921560824655031068995700021535711258685640727291086153520365571747331208123413774922938331977351196513325786497097246181673868288880683562572562911710319046985032291423215726103527712582172900768041995620309470246348212432442088610263049953155806153341248663931791699864681458527363446595447930647838917191803215781230752542419857934734644878931987457532878843706334877855176019019673437813557172642950273580642595775211443428624295899142976943365159837338654303966582475380667794529295368292146296524713075630749597724107878647258783392029060789554121065656747678526044400786088406512479748151930360613708370728749491305352247965446176843557908354694179410796217175361308662349656171042113730766694016580978203935911027721166831890633468875643233676784963804124765868216599485123845341984033958753563128715107886080334517354422446709070736236064087844149900382509133194926596228321315863475346723024492319980693856793514857838830607561236649431146459733488952503075113606050655051539277245681386227745615388554455472310590462076597758878060242289174174343136789644706806662232017108246478168699106630305200323067633576468303866522057005575813241382389834561618537377630828461485843341924250035786035557743764173123106137723296769068925430503405679164577483236218497814716244278007794571547024875073806822655185346150912278389001541609696305614646072621750609657931387072045420245329831233359188240595808429000330675333930085545760019275082457529818136229173156871318065210035703564379887622302454596204116575170522550496550643435180111878699916326945504275676971937703253151133614322526278784073150607398084701725028159491853505094348103052197203125928148587733496596103371728479056613435250463032961350013778209773995784579830513251303409425187332233222837240457247235209172096914161164702535615625289428835908452532841217681776556777056441220725966038324337863601376213428358554686365547674622609337068386623383923313309326494944028442680749865074678912783648511512656146976269810511305120090617929150784083330954253138361357372614012242894419503926934294875828104356513053852740309246932168206729894561636734172893302237234800894372442514792768678520203458077356248611930531232953900401661812612765354229324899602174536674280552344320127283805082095361183168186097101594484588334240980987518893680735787001168623658180155893449403376744296768762835841667925692394303434331977735669892339281191729089430264844519901016629691880134258594112967796635515715752592784117268246837123284539081700257291625325685765455106822025909472307038884094329297368252502506981781982063413827837838564185717255207128313583119072869705885500130843266829445642857429176171184470277420784956622467544844879934792238112264122503297802346169473367682898148322487486028970722402878373785081428249371294880903660728115073674131855503407841014855848072600132243930768027423480053209349594741968694476830331162891851979966650616853294943531771267879829777818844935627543444640352157846985640030031679537718423545166154991801684728332286306539078889583785283691875720430729822590022288009973686584978889488974070293830122083719193246865799929794358982806193267487657807114034137694356443800140959976932789213235698265943895219995297800728856758104784210739903462217772740842831453411399906352489939632901084085618821028272733119120799620931906009025337291290057555026508143141516542074005568416770504277026451804105381046464976486274868893104515566235683504362872887656942154088926903572968464097992063460269244865704987398473566248089005884284649231561699080014444500209174245535417192670519132869691544307666221229950163775647535334248537805698743267250284575978772044000177714300559256298825327110540276535812224893316769253346121465385548931105289494753985342647872432990421408675407854346525674727047859125950037125943766899729734611651729667124343232543714343472782334490078639699133649845185384143777488102136413051561822004444774208284601799413145319693656487179106343361928385299041250865395017164677493926095359111680835684914537827885744847518853457852694656317026977574403871774211223502461070803430611227202326508767267066523617502235310404310847673728138676505536693859773224785294678250862320404763532390613145336564991885220312821106832087302190170693515980148238407125606599437746921367606894594853279626223561470751195102238271201732353905704408739113466484798210350147206440619565550716423842656899765535759208792649820578927240389055154457273477202205068869055970073288982197537421013121099350585233941808947020927488521918804136080507059378183456439543929773376961724587694974956457824537103092203190922304781978160623692790259579938039478392951032717880929260632552891914928908558295676678719331579955429055389673971708607384957016012580948676197108696067345081779911096604505017890828236603922935642382325770657753122872363310025926165320934634954951543286612973084277950846239495154109932254678296536654750959074271950870007436357568669514086988425544384128929236876757061720208191432694895091247688912665216713921326156482141861111764490615742542931448047082449459592774480494964323160855804553929154755140604885226917658319559198476312773058202994743395555126629057325484867793201382246053213113319427781333533150701558028866519453470330221542321176387012266435660211206687224607156774778824315615255319316157160046463037132100282334138324979856828561479303043535332495046960858492811645076276149038209642127340163599563203674580550949380893708646634204134923412782326413302902186889748147091839326746619415697000265692773265151737173214287349495572866529963068278469248244599123306412467595681289650516277457894776753459635517766872481713381479252656746229015748836667000124655783735308091861381997489792118067879118201666789461093540113831321566353370804027679512964767356147910899333495200864843814873237694246731757908815095046815273003184323246899497691152700188169957559718828704334134689165010573238061360122193082316923228957870461060808294680267913997992864860927524006409856112536846936490290380756807474464480834078054372876409203424375375045711224372491698212172731807750913699849873447535288508454956584474949559592030288906976827102632548965479350692380513738325362026448026301281882086420795737491420890661605094765283281968154294538996914475219687289502372131713023809698142832986197778421014595260537639082479435196197581709463905495257061824259890221661263648585937449328545348215364726589120304800689637497242470828142054669143541037069423342576028740251578505233311739910121351303735908454087973217212399447823749023837626024523965107063786560378770324418748183001594241353514183208888232055489591149173390899805147755313320900696603170887254342157186175051304148994549552413597014327055923176464823369266619822654527800111491157618590817684022478094191071852912021662810237001722508081166271976815820239348792284137332480678038400200628436913372875038880198495481589981174696160219376624315394912492525265042861466738560465681380896163835444333314846325714322967948394846039511499605400543168928869446967938588686206936210659535493051150033850230719318803167319010817324690074609764476635471354157595174096821556983240350493038715516991530488954231442183938421690523849640184217134148629231691351387500202771627283721424862680872044340209550848999309881534402651106106079089659340721006057963955038392939841029915587520886363188779161917633872002458339762976031727637891075799719817494030721796844022312301187418913492285431392686473844849227004924525049851245576656031419318190403178211783982809917726577536687045211887541463941339127206893041075187240350994139028293834349948048110341125455218449013139778079949615553220859333225957955903900297958298485691073449840370267045117927020577017010709676739110901963700250354604107504770664136898374682639637550457046502949331710423869862613867828370718145110417671158012660779736069188283279113823496116769931830384746324931644084746171408217296737225024891306578567468098660883680511403217947919015629723604791431332070980027751998475443394998741169683942621834191479436687145666309787283629222512596299954983740239108985861747337587545531812636136033179694264882916110240980248853013475399713407343539945715334854786553925564911640416308159359377616690202130124882877239138836215816256267857059285591527341999567658700974368715835233525990978729732584652160598167487249301659286019512845832516119819265085053240701483600958729711051912016305151195848551306370082146459243936058168367106610713729672720437736539416217682128540081194352480487898439380374448397140683785364602128170447406342776640681654236406163681643534961757498129396630342732022416862497475326749527476614998054289441356076879630467039354643598500181454411356819371412965091087875148248823114462787822121158979725102763373060652526778029193295227242248938076236808028666428121843845138959194653596181113457556163175473590740692338158305521117029028334536694912271597876659325991178794505285433493527470828633080788604424751492130657762734806208517905002440594798219000651969073314317097181405399361442492359465036105380820283315110683510396327032056767362275004947086541023970493433364226050389734542926742014796410779376975692250242498589412207649541164049274479588028558650855211127587267211258380888965661603855552478606409799519247031935656628063313215830735356796561433710605601952957381871280652756577313376122100842032481028531573655544042597997907050837101720424556787324048842997033126426200526861464440072062887988011567884554998188084622593403287585763665755432643745317228413666762154754605186946732280824600748346556605548216503159662110142760059756000157780409194171547548250086396682384185483996926338829443570410561897972418742549027418574703790084131417197888560635472950739280318398109064172752536964595732083045808398342224961667687588110273448030732154074197166267519686216045174996089953295856474816479009259168544850014466043736091270995633269831057126094238954462889115110609566464284050621297500253604942459263714392003088336559200074037085235467401117112882184783688275850474932479524975354858189478984579731949073866450635754128949705664587543986264423272352716317799300710386646059127890119757179755523921107963066469528620781393920042372012872432314680805215012044432968892719130868869417237213697308516261224053559745666501908515086158584355305291893961477082615454528168935752643723186290296397980873316733736301404453937000396038974360509968156765556946800243216927627272876824376815128302848596144916876027698338651536731931055369517595278353959840678545032245486904502287159834124418708799188988028599340042540471562574064391176630010596083720478850145109880392215069447421155582325132316781171512567385971016728295852856771512420064646398077655859248356969044735460058171297061483180484967284274740328915364220667221370505673060438494560994837878968870905942763608217982066515357899109364879593930634941233805327052765239223346668758546355125096002790537341815836148935526284558514125873275736505173977122863835826018884259016455560703146418957828605721215161504398211813933536195065463874234144762785962544588320744851874593269033942888734234105627321780634323253180971278480092221982163763401656081078583976351789370340662365277135143794277411442887031165317839495911248292781503090259376032942621823579584083771750602384026077673748982576546310542419282618276187349651623949223056484714287948238544497142033887510484723928753109019035622904429281441705379200873114862556579607241444488095709641007611483808984244549629906068112992832132633995742331725695123344489146504373521201325661231707681694933118442134674313630317632477621558529111020237511150772475500436792731909128855429182080390055815468385065199440837802384609203897372463314476218447292433525819378058146173148300003433575436697222784925162755916575882523676411183555751336149106206454812755896969685669442948350510144772046429618156699501946042842540744453377715163681053985758230725024624481748925421697835275966311871664575262856267237763612196891940776687047660065249206829978424600001275594236540416357247000758770690716245126560413867771669288819594150162052209813517421645572522915358049683484693925308592202318529184472197985624107478906203491952883472305013809387387948769644976031200775552468766157531141386493286646264902463588132034077386856681033079017031827437240641071956791537642770266669804165041342764361868849510319672499277412197147166607881535590485230445035255113063057281649903171427955678470705779151344292285710955625976817179708777258901620100546945484828603755385834444171478193009750749432188257401205331288446220725178189874502503755061293460207756626639398851305718813201671731188853824350411354607122621395704221897545031951531771875930164141892450830210008912563076315464410123787565051778909261293106738437084183973085590221704421253860601333079100382781697461713954614750173086102036881106664291610068510192629870234574721176463356065651688708421148741630866891515900190087357455698250541352966536610789652490840632692917188942670018876623161507458353863065478017484073241645425011217523212812373145697929108228088036759276622911290047195781697726495916250031673963514589293983037868291444287283582102302886168685760830532254676716818063318892330330451873735460969115198740450111402018089956526022660955210818126793735834531240250872242925246091439447875154443232491962847012661988925328182550510342040623239365848833366921006392796979850195057131456247039143866670516622570345619076194566699470585579854517726090341167726198885743519549885345898078964765382036596415972394171428517658444805949392923747360299771736984163381296779958751883400572868659948519889251706172851268587462480379721982185876566278064834418509243040973362310135686345060070163438735611310896256108320587356021459800091459012739049176432555705670245573087151011586323641575783678143437053762080204525273615878317397730147008086903005267827107100957789563214043450038917426493611168979871466588354087544772415411993122838136898792000782908783865092545042975020586484699877917434257105453597092672567435112066307938347374879537789535881522911842410306440737878437835699305758915951296931866628783717351796048763043833460921783654439844377021328598596581990087381504066554074467323291906221831343991362974829113928202251956332012617625076369375928229881142813476619690060501155847164096080548157377349599412670166774757963275130793883255559840922350659032559688727191463203493428579676343513490180587733506798595815949832306193032679118440980881853265088876952253345882650352756726193903053003625421639247890496691572654806909210637513618162847767833053406959463709147929267742466825317577781787219935174194029254350752857709529428180483832018269622037106605306282151061666667380556759227856159494232094981831333671067300229725985109856684095955525433780352805122094967751915266428011558327471458664048369458220038120728919522616857583502960116074647949515374705768730972357309530491595833234439872928073789866770547804631406373101642481253352391471760925817848507852934568520580272958260579558711692712641826449547660291601258373292586745124968592666716760624832552508514614342882725387367742330847919282264453797801162885648972381884829420149042845628985854027372652286606184518867703212884454045061238587474519752239817753767715468209999067392237543604176224966728564667125599270019561376103088372132816904689657208851689931365453617934175712436019841263403828180148780517934447242391939610141823242097361690048038734145249082855261396397805354456948919887227036039972466304407811190475656586702526832424743003363925765859339179004134378854551680435594090249659535652641250803737422172382469853216109881722536427388623408808188196655298364036753090533630035104272160945749578397173232693327415337495398006012866830250039855736461367766529096631613469386936576395636409415867850062530260678723484167277435396858071466618603854549122285387319150294340947752017771669436691209952099729127956468200037024885941621491948437924228946362830108681485596706275659797520382354187454276924356271843209453123056763297823473793416102131653318392694863532190633154754407613848233653435280298692544856752869430160239410914554118154510499776260580895764380173882493369397302674607269110710555174370373813745214749569036059440197908660935702971584926863612592043065787348323560441748778060251692389586750390440079032201724807175395115503452346314113488264963325067406915665221769341442395937826943995454170731745678436409856323845910689833618980035781995412243600567370421860324276560587930504905029803178764321558659801013911230128072245353045996921799982678400826050369251082723202386885909021697895263185387916568339442860849108237495094428194207866446855533071958048971196482516034700367836672399419424441396571732872213759798645162197299878648201218539215284511938599715602925555553434214879234029845659100287523287868021454521801484996031849987476024882335358439878794749681851130120025461290577578098838143837400744299468639437796027437021931172961534430715163268684693453831061697555346902823850172153662428029972805344879098192055224962503911042263061799764525027040313206405526996240604042486762479120455906131678045076474260246594689343523551341442115450387617995404117139009051945521649616057332985759504445831685749085141770472462291163853958202082657413441661502263022740259753269823932340766584032459060137313029887800902860277940940383060665267559724051889012413670680831918782120198503143268482948082483860783449383636293500365482114322655664921607454739402113373108245163534954820123123237174613670734257920275484711139821571698780064015037006720304039241290215206100352566460906624541290920384268072094155021327705629671996719743684473673864408552490358462554908882482470281488351605367856501478726618498435189752768878064557854740810916089377434885415086426566410958365450581577548067557244394835876884767091527372632369103432875923157905414330107116333264188575688304885921503391046741148661587466956391379413716636808582796230239962383686408281793317518228924081933841941482429792329695621346041859184332962643763053217025273736653557305200776000093199841543148206697804141172060012034942018652291819501912961301332288398947599140338069610633542177282008899383180563143067355115587007485911502663421593300145291266143737820045930817877439850768579812638467190831270873062718459705452131256919566104009245688162511938786938968230605048175739682223616673983529377360924786675151965737869761332115892226321572814023865216165290463367256854777796887098500775539270607368305208805556205735463009160752243410163516508837736232051502806853277241031338948931037603843125443444191620372231800030594993747222763526518892369420319306051332875041253412163549497198501740566476468724978170018417750014055910800767849366675635954788878583343251051720990351228446803069279468508566583120221160075784708599108446393076238500074018846407164367687109802589351986123898459174935948744628160921336051016170731987545560953867812248996293236756782415917935728677265734907795306395219885806679516775069483499306315695038826706467190869647937995436452314266096669358781105222731132577056055365941602487690056732230109221887714986823446443409485390268650350331260106553731914535169242418390853590486240530733713644615667348348556587497133403907257012219734129669371484730177148269776795075970998791124893737688686829291955467741250774274746406127470164645048289197601475001131504514944325243370377780610296739735264782760924620817221068367638666697984330413616093189440588076539017275217654754218390664419368550113331225543433143962311692393362051110465185520482563411110858695539722554748294932354540455327413388185056062596193166395910940362275270057648054290586682146099082895764473538961019743175253163437187371835194433031284003166376412223318210718735089531282660158279085487297267357168950408066971969192766281302302460277523483226262723817001651965230567953117199173491392885652640411739954114028557843923943605698280142432367254512837837779700177058313175827512749904908559173659908103248554965620003619466396663340303761358166466888487601565948674905694818148754445264321262943012022889218703977636537129315714354065850030475797946032288237234371591595222684287185915206727912228695392175444220581671281243196299519129399900825086127716883661974667486726605737579745023026678276284577278948076716442057622037997805235758148950804735946437242778564613344236540981760830380580051938227127428096597277829903151018598575568873916960837287463681172932561720745553706849529433925109597576605653449642629718599292121191934897997066284232376850734140856447268075935994326840049021029363090134120125089755667119895115818950888321306219381244536714675157274930851101280841264326509279653397924160499834064620169307765189149878513129372911036204940906728334263919195099583048438033664301664142295675950825005957888063092452444214949121626398942472966118513099294624097412503402917144991793100339153134232261801726698667659634316442387087562270022875050982412503803472884184613984646081148950432517128016452901303302835506214365820732922531990620247223338697014390296184202626021686614846557146621342945419209374673252015467912223282572123360879546929018343598032437221857888055745129881532249681020915099995198485450442847135852538316250874684970630157861218291841707280731011943162511572599459278745977754669109567624108062271418119346738932198281092150976853524821746470090937536444177955257816486515711612342892660308179900641194790301866292378320095284726170460608502129331992699027970827321408646973718929369563523767780514048795869151014186140429711683862817267887294541687509434549947083050841549599816073652299006117534478813560597399491092185203422165249578393305491541938418040112235531113114316097313714551397775285143825972404770538246824476062462130400835788895790789340638317776336492616740078406430964738074573152787911233681527730206567582621766362547541518769020579710581849558199369600882905288353381173981359068770270604450880875860336953353305501208521910806971750789941708031037674759004151905744525435870041729400160039497174991865497477330550628224112544045119441349553163748217516105891337328245647281634446784264390058287437631085356936671857579540427044720256798057285875203063360972540567412336173276256197826100270980070561927398653101773926368357133688528698773291621348649292433553473399488074405226941788992232143657743769652308851176441625025806973709850202567121982048264783747955420196940992240200885397094273262806133329040267962842767330939817268238466036949118198436894554013640495340962531090873213823255897139602937598252668039868676903352805181646413226878277617690854048111760850223404691530846298258650172325532517088715840994020359051463157444102272626068026487830016347566459849132190971919388754709050581171262633891444186984686546099538416493726034190211231435329974279670531618292015756305413549931572725121590110103840336664864438116704108377758127755433800595357137438538296725387345411301201476401102175667513082657664676911133693599974897459710157506276887492773448646136655328528470430703396748910004099528851729254851530376085179290597778879351992334175172449740356672878395639253364798200206915753190565549728342114896440550112205985153581827659559057036205716126686129333091263979223981798379181675171163882139337849940161074711757892557886606157320770890471066648393079446228927593535666558893839013321619426829430551475374864720949560681822893200907955293653956383634853632473739727886666551294017403621834683211041309350705507115528125925010692073101456385738307196393967779825547973804512672510202691247333071145701567450671559385036221549168501582145842023751382624822363822766575880951176837718601145897857969442282899374878650746367210658933901327031130868920823649523602860708706843091465319200497217358671701597643095903738921172001396292591727677336223126240487760927020885283451818397526843471849293294224996543098754124966014805386785789269797327418107671324879925053387211072965036902328113436164070885502190880187209539832898355092513620354583345964098103422706740219554596054696251806932223590274389064346564991643386366932630639339253692825178816784997842123213046046706609245842392136261449397524603725311080114249028520183417530918512787765691893297474419774233994912140185293125639989430963861145351003832064904901323508930083332766851000117662087247575153978729733015982330223817725215832338071145099078730131659446025343246639377630988332923409209116115123536220338214080852867529791515778218642440716674869854265388724319410306138501618506100714967936529619080713854973367243481508862878532004175416843194018342169241126785326335752120060625528054114590426286879369433251757205108513023401855037970565762920198594870632829760477218168986054514724976015577023351256285039588950654636181025687153211048515870090053348915003533770710345883282393391738641452552060376474992474469458429487146509625807550552932785184038652836349848165576804603744286994080487848066988742965535591905774769098363746976827410152251262448357482263370872209963152403635407575630334911783893342304343143718524945505256575656531236838295247246252304315246423098179941846193752586288612060507266298956538578801832556905637195464225859920352586723345389765171643590690365262233290245593470876549928940598892792607639437361636561768128043693939679341568953894276192697080521676805648802949204254318878550974615562962742752763090571599373262989520503537116288117389585229947159064574659128479612734550160135503941105225546095917293961449368344877162603919521866637751803698997670068394536328530745130686896845770621795899076776725881350745803191310721733203937095918012314314619486989532330057243484020475979824368538428062801896988707832788735226804792758140531193078285127999599862002767917585840666113911914330062446794207086382785121546150549900258893421401872552530391777902623360759111784807295055968772960578276900001389134632449493090231372759354040394310604907627185120104073420596273623687036604427705674618765094393314910279530871649231063230559917847825401160982224155413503073108112925342353832529385189710819260620355912825704754159990540533819948204138218767310185443420974905133463106588199404310481236303071017470610653037081956401986158389819503299994090047805196827623114651655834385356165360329824804034851932333401425080933925763628145271778219030679968197192470881678587869122917146724870824277823223801648236063534514933201689225468448929864912271329813543320577619959728220384134553653251632295520479976912824388266121863524088824786896116664043517760241662930186156443530339280626925452962745656164606458112990917653656735743867954993677665986447657118875549830325694114019453351453700230942796886935404367790239380128309024446667689430259771572494588562446236796961966116473763031632469165705735801439870792403114599450188118283421477096069400752473825505604755521738014623759248321716552671568399458766677856007548850704477559044662154977937980450684945054112309753710037956815575411425292096067239616538419950964551568034934475830966790433807085469159678549337917127444232335230265021359787822034504627394685703810418419789567713907579177439175083694989144288255620037359776659432364149108296460207905178066547613888975233242221346375720181913703820751165460157765053686400774541371770672524310298502811487266626905188417434234003747167096122123179543454217904580435013552305011201864732994790666788568780032863660658102086473038685152612864918980144327814157836777956831413535831964621969509392114042199437322014162943077387776120864779919827949356552213839636797116937238283387689230633008313598324126885732679297969906896095527262829967408315524601315425312950486574898701980444312295626878609638913493138484913910237548037621250425013537853439133864322551056548842205162472129915089963949425810005994142771380998816303275336373986091584275097244247064492892371393364956456798503493228504233357285377633434013916034872308032787350647585121459264901450751512293806275030614062663528340627952824211994653519852066541831811091554823338982296931195631012447443794399258685229380415908709573897434725801359209798101642672545076409341126410135140483106205242908745204823413145889190305004505101093728029132731273445237806165239798040716981618403578668127575286644201321501207197461920587627875977637924252599189937071584452928283835010247301544257525499611789981443216868498172168065833329860441843946405256246488350396466973508273322756703911568048416707888085900427202765306038328352506093081252380732892127675160918863168894014279246436566264832021409170653998386463338333637030510819290211830747421192440782966575238077076088226052363435049418672904096355307463280466780300902184770198960985343442541938436843166208131008164448728758293458698644826138822983732270059434950675139316625796813725747818361445544315532823436043133072929371125710005316097437155437424188880578827904129270390897110470551853032717691047701940287213396220078461352745003279275103774351839028193021297764349101105389721358660481176075702181446308589513059363767820404696232376384676162965183464040595066619431301825578025069070112063832511126253101453570432278376410284916598014545003698741976875432362765946417408763350766646459834581570395228622234802922062838650616127064886349993429042312669691437326569731031030319131808569940698187161831272965905909674298816967994190738979242350530179116917426869287453718136492792224339708311564945265334468627912390402211315079328414393847252874198989209538899874945383707800152513564424413207328066757082078030632250906012316624037354504128162478891958057233177914426976874905112458258399108762211582382715108962877637507289312334759500911949025648361360149796738627057364173764494419993574329020703585963602877601458245750930908513929230467400441586965445963554713143558437605065717017450236913585088733188891389917757773732419713174444135737624912313122443387205742159952693024951140752274895911727603097670666202519560982989668228047180033040774674826343439807980438855447700664224179476904734611520156216754140301757113131587351028973388321298461383401547727700465463073427522146194406846389262430833127599170472881179017182338771885721798947616433440412005388716566303826111184422132441688357935514302768201577659557428255815839495286914757520616346979293486757585546530900708318311581727608076494521328353749253791070774884891334518074744573965076764654019669276095599449744458680250257840824901834645868738101796231696893158364713456065408080260964849634740153842195931360764275740604894803289374437226466725065943717147383379373691886246898359988363791760597985904236590073082540194434052971717020500127417603549271045963110518029187847238939502854800970342640209464346234277137222166964634582185371944795917636846690265954377227257623602129315629712112899210519026844306311985546232748548221983799363482666559641682584993016865393690282735919079457001897349356529300070298811058889573683998389601764500991652339374055812566798583832883277676689209389374594853975265765640591236311306155324517184613699626375712661633184582567379082281319846495595641846557100770247980450278114852425587805504530151774109796033839873982848189904197583929519131424267691894735982594504903854896528073352590832488731029858069138246350922291392542641609439148221726999169827770227855011562577492999824562337240048053970117896228633058840974086738321415481772847786540960176600720976280451572012857577258136207660957537734626102236801700620549648429309630124662631608858669054033277753893993252353528779053215638500653678224086137337997645282692295968218994404113580955890688735642936178687469258939273346971868078662188503401723002527584730548163728142612537123418028955534851391136386870837005494520145931446704717031053272768779085889108360894689558868298109473463303077849223506164581033110474765921227323722822566749241670165306255704276241365767439415500376534849404490386636439147754132171461965689527033794153423943897053630239547774084109608641728833271709327809959870228007571360323159733501946855418267694726983699782854139667171034631179210283126108140735065326818492485935869560291272530614749231867864466172911377188623227847317671576461510394595346556059130216614923287737895829913147998026958852884057263962988846406446083260717930120668113173742034650980181556802787223923922597030232992853496731992001513132146537018379933829984145230898250958458641274876025447443287512267835450983814592875309368931841775652525824371917117391894355744468946343188754881311215933322412837632854061525821088003412349695577250973594376014075440528488694380042372357864109808409479501183142455542932952378133432840020041935477887105029813363924104387677012879827152418572261573589110350715542883992165999992683565095177429794568845866521564539977452605503529840744952365754899678885349964121282783906682931090326049172209951487285164854642283751912243672476460333985930687526082189451937122828884575345243376262939637565936122611083859835063099151924910366983240911437953859162689255555039237372321005304106909730465706513891329556335483574984471320901833181317921276919923606162917597362631995019969303228395304560416830332909499251813309358417836059352114099027090062504023178931091678707077718744251453425823462427595452752751973920651273603940204053955979605469313583604507836754594036947649656426989266107145032379226367744923362317872233267372107105652767262207343805178453680407794892897451946471720293541263033434664342046364312993827975571804865537640087327054196307785671735566018645759663517848953261861797625895116557651962987404936376980183354975114671977826221420740958874296027668982223031259775270687053001199966184681072190174653447924839983965989967429026607340399698703807099981190592225055971394624267643076506650837394780523009719839941924521105516081929400087653114986473366121376396054375727084605325360447698729207391321466014793150868807826648716481509399297642238444967427690030215998095457532449077332771489115449744230718515101035786916645887211764821056559856490605755799544748685543878289937193079917331147107125077061097491295925406023464937624335106062921907049021433350665356223262880227113957082865512506669907451606162743806521961726601631657281010358080292833086953263771530399953614898175565601821702730633410622994310288742272472253170629684243016090133994108239535017853701215191422252296557114180265830784868015048684268300875838893783565625302117173350209276281791217616183871335944652613882795886744740860455984557174898789835392487877525346179307500413051669438872554557402614379009352159286330090373811846256588903314245071417563747218371308218481253228585363257832645445422863697378388387895693954442911901224230004808132191463252126727683928483843338518226889323614826061068724007127808645968970641455377804530751484857653633949194814268133923177557423982234686665291956409127973303402521089945603970211945162714174429819665149516408646516901255162157721583652512721585436967550873924248455729522441992157462189190114412473383647463663729916627081870472137127322691150695745642654076855085878644698526378529371943452647389220955405327226170822750577155184677919283346727646164556151449700654662868937324740690697873504344425221072688859143147681674131482933165027236189720877508301188947992639095740630659986682953551312178016482487989475333501469063445852774370912696480373253619553331042853095249700034026213394583045426859336400819029426630141870559094329921091803426103920486006669391995415270624668744070210278408041145323666531570633311189697384845198996986216197417954788079056868280057487243512548202397651539139752482318267929617009008076300206976156619584447126163330652272090035970594200640235526637038817020778119399429407355098158053686063446089239216319243401263952370235204180979806367551697568503248947332052145859276527422465383964914507948827784137148143592733708301929832389898683703837377889793718272236281389442865428647064979520162646636033579946200392789254200592579980690689939695850470166893428962616639740762382981654595113184129811030256668799868264705301798845378575721657579943362210367545564057353576106443523346813057858262406741377725389949197740517483103109967372795470980487378877653820216028690538407209091246639250301043875525939485292184832252911729924044418483594211624226080351054935780295751943581814602551698712186345324677225561767536737719597974585606172498534813895377362271649302146423515696573656884641624866658185934956327292502427374534463596672916700084398357063010660448949699602555852452456195805642983310710027213054385089419165692896081147422780806550146259141091520677451421388943871563291547505639268561619526723813066081602895874638614252379461672398960529341770011555390460022052264389235843108007580046041357215532846617364513648603523228401990375782484955214356464377851419832484424735746038620799047183467115192468842091332094326221773323333491288298740467397158692402421728301657589936747259586622511453233257454917072354062357187465741665154590065590280233946209344793086571208771694328947482389653641857386967522272287703370751393123153580696097119895098930029678531474880781146352859043205895301797573568284000463527839104859590446406657127380916352074019326023424894439416675169145243477264306334560437969417132030630045860037454822316467274211688020605904514760683870041321478146415305992427547862048194497783775856510157775929713045918044549377730600742978501234726939364223344597827313468611695869150930061084447451969908306696262238416122533365814611066553319075856585438193390599525894911840214502787594084088043393079113650474853877093501188321598297622335502142612591430074552382256223183827425971373419993885414480467820465727295884588959085750931892664095926299700878330017144255242302320049899656040408799031203244242658351209962972901841374812785261824281823221856454148315250819765567331181307861101720127595122378561215869670632124227879796771589095788613519423194593959010910379587136861072725891684202679955079087107860505168727542372207628256981191140058116844130872494399932776351539576177112942555601796832563408674711823532955185952448677875861807338563174435822611877601704112356387611786068687449558386034863097685455953635365372548712533360042785263162275763300248105579575537187775072704475147387790877566503705280841109154175157252986533695092857005652359378285326476086216370305463973188039567719624592701575315154362780956480331646270452800104671564167696816483549837094169447541464951569988618797246295441614340198022452700819047196985905775421918206925987412689664504404583833321212965370128650772079521930316957409345444783177851640552797432082102498431762359913793217441226674609880545869208166040243991292220750668246317476346431531921592120261961937010376617558855050028683657940125189791532921162264819988191896714254608322702624566239425027639700653591713411483861591126417711023294598961311183985325889792341224455164467634705549320884606200713591522260707078024045993021725627898937073088796758870360117033856567496607486998525593286467532917857117520119423142532221331234323937299191563397786103156572476537973060153231609431408704750733336080699844423626783526820432987784734293638737850928141156443198275372538296848342710752935680295959589938492114754611092170544382851234744090558666132362483227837391592372577525635649801790657273459113811387318325027829102424096417623107416462664430323404741798193568523203994924973430237562302668384885937528619017975695849177961620084265832344161657276188423885547591072778145967611698706088214921641540943593544200979743277716148764240922611954450413535517717609440294389395553694672840084845447141628092351961028610567014869678896610611207801192955601447096918811014308382324619741443260925135222054200044880456119130130365096089760965035911716512525268612603684228610752588206476011043297050113495123690999969979554013231667394679446540853232770493739119885089487937117867598143560266428388201201391375054496089958121499977741151984244720139655316469985120474604013344751294185762382977638057339247470690581229876683680026029219208293417392139029081114288024221075906165208101510748102110218159724038199197753912839264408336635275132517408548510669437855982925198698722662033687431704560189153360998240244559838794988966830899907647154235095072172759816433795582613392045131982078474169332531633519804540367536097697354133616161979195569012548741911478351800285201336966288330166625009860964945547133173790616243274838987010070003688083425585330452485276244940495170693006458075647448722131545772169218277321645660864075596909360119852346134973785527316577072503448325709448982179435578985880632038083386987558123041644333574941490979764082105135892784266949294110939940460715451108477205557099334754988988278453876707952786428160084251932784260525604671361594193620555650898993103782070441615279171219622814827605083874668360255766873539086656406083983972664969123203108089099039679613271627368491383434730904273828792202250856545987180348642805751609743597969308492073317650089996380796480259016591641536345676931763068273723558087325493162389516285314394011919758615905898965812118353078443965409708075195817161925982518574202088960879198983655930129829896794801719315889393619079412692738371301359306013878435447935633784509111079119257200513046577092821351098179815717071853161697015139772072610100822795126517788002814619657647071837151050437449858852870701291652499560337809906009023641849502938166306804181604110490210371140593293414234345401881526569692167857573039558189869859422513466337267379827778069491837442637992122204705739075351487523830172061914624586566226351403432374652564139886011769637623249734898052900751547927515608793783541971571667387147068088412797795360436687115310935348596890003777091328616353118752760980071525353174399437444295103660311891597941930478157530249076282252931145676413446895044446243539269941863662866152833139551171942193325597433767403641999112133203212639907519602632532600824709017606098763502208175617042660077852178699003099361870168587785728386607441009277334922218197718511669079308700189760827964356933092538224860935988994926046296197069675751069955937561003506690806329360645586641441293087542779957231291027749762307542867423068145033701769589896518676872991555833380504206362289004280390187632872776571919734704067841426204580134512458783625922482469976216950131265876316023462263069100505036600111691200825873360124255845912360745362520583206633736718747151783360641431334500178851982441718282253107476084722834858340479213720879904174008637364171823958557254838026409841342074575763724956603282369544883035923168918415815942937058027542102571505817600938405800839644052343529841539726030120774326714202938751085602699604708599819046414179155933950711281173916572741338973973287158507272865360106151857262178422728801877288052250803707869886330618412935329850446827507312750134115367556033701379773685430559150346700777946137375102528026603404950815082053418886167344871627787870666171635974382544077178771662929713140767532429665812599450344318088216827551604821130447442629442725872080373961186793776358503424802835981432429824189026402349839923177943170133891344183761843664987387458265691973656552993133127182550025161630838470068590327449428315853795893135743559102444940454910874345440827272287731561695291564224800574907595161683066051699694633179063801163747709659844811533329311933597282397833525651976167784611507075334658621089860700708939215381358850375664734637191253079997692354188615007028820774358926849900290656206356833045875119852415537535882821955934077946472407246568135724884018447322032280357139307393220092095169198681112663581721373249136919774577055457976692572667737099398637787899577086669074051914938726310549197501467792671782238039042512894145239165095256194864952230513288576611951526342743686532881731452874668627239689821333034150362852425848963791563790284647711861490906151269385941774880494441986181542124278243570686522213222102865057617520972025569804329066332438791633828953705068188621278166312147513784300766117453980921475343516381719180466770262977783086940276582639887204398132852206050645499762650270692330837580696522492797831094581641419253768461052462279687746605428431670489810095350246660632954045572312012383222961605833574238483806644252913427415792031187566738728417182096673523580706370260446021551148950851017753234625925347615224476139315750332340283053397227512789865455433543542146341896282305605849173953589432329372609378918561848648476943947867003982242657889445154546894037584518093454798327502384965279088304547592134898639085011704190301336447608922795885678631802368748502124332472518798935006809223655572761765911084894405997133986250469273075957428770930950529660370480229417200132142425536053481694637883099244418781081115268059860128121091317159713183811816168367524122339392884060594598344371628862069460907255955602015581410331353176335284186329127200396514894584099334167025729488430434335089070852718369957775483991594411175785918898751782184374209740320204018682145678825909107889184294761403317883935858245336811463320814210953324807607697160275542180099366197298560630035938366012650338851627097405346362847173271922695546968443571455977673997421333200789913009848475639440165434096454795366927089916497812509867729203610237974526059041194649501768410387447301131572639897012790247476887993769052327260291372514360791525850883010271826912001653639091299667727037973033033848216632837517975183215477116766398672372282798100951521707623328388873576032568170683985526961021125836364957435051734062179474988715779411154244921380358549029615760196990156984184977677605428580838808214093047611645313783842440084513202842928751393282529183432386481782190275988342547346650592112434226746928275055587453724256447835171194479444391722388741795472778496250228518702523742386152383144419543352543644775419157894362938745410102228620081884110489273688770045669033613856657085756014625093396533480328589184419366201831734382564434694256963926589125454006445269731899735635375173032602678490015117941654917734504789200768997112306003504152298787159552987030953939996962613437893600372783372074063067721639848724042445307419175882666430221696720325460100050142965536981012458466343237010306833790568164000423939182531260934643671814524565586894687067225875309141059285543837601551647766904699103499298119267384385789094993278110387068198172897307417637260721720603171078262126370893327554164625578415777782876677459377616829631568334459071953865837857368873779569024802288857247289722778626889498125148730237859395662292550568639698610795854196122426893273596320518320191065330542718592489518962509321121396002065975159948460433512717840527092166970159318782606216877920679654619276331553034276294490042259277981672059825000606709729254083191176239817643889712431782855342321711403404374225144580598880249610603657749450341364710683724114077325826633310649477848900436981987055954008515421809201716394802276074268322058468259387725715086667950701574566821762688422463428741766367547012603257794570414161801144529831682460880781329599131384053693781655772183835352986556390735171450485651614324249034414950926846710606345177699413566883244315130653581761063557223837751588526248528677436450242811238490518434467287614104593437248057607598874327915545882512954465244437973598820090451687545500673296787059053853491264776327671753654536955317290797759990689286455920845474719247785279409124253318517813689621254890756573649493611161668184970769130811844260173324779479521019189603929760923501942396994065100517124456640186200942782518245346368146369549633756967113284981780724084174395708409715566531395198628747365445279124643976170968683179680375512925415289293444856897335312450167512218593023207710807187884685371782644972309878209888430072519031396651433948459667393609616033745781011843529146554345787238470382630115062159945056867463981512680393347106170553248319640361158465110874091847188781337365523988267749336658235447303879693327959700523617802440902598250926533495591731810032782041724357015989706358092415814718776783453305208188054938547607729442817932786630223240181763449627837248893218078835200459948428763903388377245126301448502031748743521523829601478884002065984264097480576017628922508909383523036599878158801152686702014526600421106913545441737240965560854187140842610577791775394166984121291525923401257320180786893184928799161119608718746631061580361659782684316710641090310992071525254890765107505606497499074002198522541680245553265728584082355569091943970842043931536253909890758019772089607525773638201668469112595177937165098897861882226154814702998050637358032501069633719005636544368809889685240940850803233156807542455971193096325152214908358825865318720803419947518020329441023588660045832185108179903141609420551933931661619353566189545083195815490349067594969203038654923186922713385390143197354766539568981678372537030439587614969770653973477459399588902550333448651672676066256136360668891411743055250443252298828615552403756807158124803488686587230049538490207926814700433504147322365355158543504138861179263286193543867369010735565145421155279469342500272804518820946046543577745124291607868000180574877446270597594963037407345615510742510823585896029798848027965036985452487555047504514305389226692519789909572486951240714453660618108144070649781842936858667043821087137808912557154024184300596251212536448946517066595120057113398424324021179941973775434825079373378895832467053895712647796498808527040559549534058297048761238648687062005788854378082383110090213566708911865114612239863874351991651417762979634487948774073223313483105701907089819504029895038893601042462666330294706875715337679166138996033398220140632379326756071074713145836278047290951251179629859161207917895364320991209484686651455995051553599987842645047922543871804391365750480176465643536522921435613151495673469433088786323634084571059723558214975549684345764640222666335049394307750360108796340515358967178336492430289035938076501058470898881775431950398795941110336017980347856406960770832933400736982276268150028814855506145472445842481001456261154202504089591519444660655306817166272346435909103986256501705440529360573232147801173173012305784421735892049653604943281339502858325888577954652616312860830626869389499475727252979605622658939724338058600927100005564162984385841515867681638551267491871071076502213433182564255587495708841335033226937528479472184227321512016062491081831290657921676794416960509111702700647639293026256621065099307840874586209874515426159483859918742377462645637008489211600242726355086596565698638957748346098913078614741130737123681831011261305565224068468750031517212355119865475110867461275930777596443125180301182269435415025412017014776854087583626809492382906338884838442446747768180916993047383822241350212344485439887372319500021869788122361783298862854757241611458662830035599969816808198494089970749833944342677611293167915383446902991844469624623354174156742942459501676521875011084532230509094609555046895370633883992731968321091627098231805913463415462276757684570434714145468927931694980007868565851475616097525118463946778864334338711015036871509615722760862967284357589442624043021412884644524112578500665711952532978966467772517920345456169331800371944875307848456304125045434893160068047827048686841631059415591930513280246861193101608488027263625368782762941347669376845547686759573940625677187420947453184507043151485589957036463940628315386083002030525098963252375944344923831374524660096977051973133530227245444192992103005697828807467230891522707617762827286662510641245316923770583925822724583037475186102309338808215201901925756328244762704413004444205265054793494630853598812034361096679822812945502427031237875330721556355819920294544402101802028361853883948775737838915358773021834331592064251298081948524362649070541345962491550724541676296554971793215259022947012550750100904691342050630719470005174476863354624816388833821376132223830919306558914839682926216242093808910154220930359303803505548870003333975115537407058921804993895457291483210109500390721028226358411599225255848073678813612030974993610602980222390437760834035208196280775173684633995292619496669084189767611373835809950438377256348076410540374640408873999477363001930157045428232724003445900746602507932263424904023337681871867782659425892392974922425544192346172468060087478229034262224186509990855751158369640367539425594658547500929884257319914326622950642597694993264022018024023889070245344652728469981200859439267486928090042980380995718062012419114952867792223726767573592577787052515767059444935754856225474448417641659667315713162523264362488827114890312058788184468057334034857086696410668649343881128325444592097769948165762006113315524049634658881252963605012129061795772025592259327183497715240192923672349895939338069481072746363196687716092621220432181574186043535176154179600846975915952217806366561446105624633715668413095744993063405084914233748444088521602431481081237049980590690988187448050139534810696103837632699490635658621416751714569634889070937811190773806368671533874694529030386762226035273156348227125222772487519952363465783213838489434788912202422820964820649704151468406378988312402990240648295270016159773841563343609414048189517785939133613977894578554693888602138089118852297343195955208042559113265281972937076814171961800334749321818529825381346924360975732050892664699436054214112081092672348191536248971936886278709623399326990360389436960438039516075451150529920267141146945706994014516066285294570677762474306054538203626740124710917470541773208560715883738803470585389715320371978790759687384559910346610527666673771425004944623858893458750093677324944743928286531478524579715189183064034024019328804369702691991523136459383444009961437679256297329624601696372937020768321099351234251705435525500038741660391941776497217478445486189182892204418768483666728056223767953042886999587606144053370573767617494219437651176331864160593923986266835867092040391575324237297715842059939945347831587365157269353813360048249696243619909492796579410361050336819830470120495616713582813357621414022774515920590179587918850016694988586979466211984474604513233771131604148955072622016190173203354087410767890011956035104643813833271420547954676845761813055502254168862881587153974933835024259981158573327814637801363517647716574011906683630189671689181045497392750879387046262249309417795943397665755701605844326156240054928273915646720714521531991970949132843583807568941794262993958038945516232152144246346818057505806435884958361887556319318657971289640025581045672765204752424826039933414184266816342859080952423643643852754029135904566972757298466019479686345619344881960851218250732863498163086831089508949411609432937027942282003489323423812707873941134562498434608376500494889364965844046485618742862133776340973961465938537346084356748771987004905753102965773584756871555710463325034640270371095992922522192698300509194990942078812816269695625567197539960039564419942335305409702845023762130816472039937953658875399594309604401094790839394831669504924788673956098171029544921341322176204652791205584818080959430577826595773342107351178434308283691074666649395561823733633789770842482751196340091044712963065022200482197958019687282001009129112108307880190514105122981593929889039051834702424464614811641159511825528166081923919852187018627284127248892057505585600318966487484684215452449260925501200489297613310458015337807257784692279618893615636755289308786654655417323829728854565554467078987748406582911646959821407962024783622611670620052683681998250886597053076095857119968922398995750059937233567207852013657904264023474904281034487220505263397740937959252288445788119811463529564266213768966746310734578638249339345062659031742160673317121303221230659803424621400825668712381435770528366838217109250622624549568609711798738597780278534727400824815694988623381356954912962361856474536874457988658010566905968072617299292188032504611559324657168935309513741638393589963761332628267796020175671488516029227836437292944351656956404254692048222005750511495271186490737566759175728651995252926271928783582494936575615440709792414241744608452601909752938270547632614104406255890322392225771664946747062898325763802847479136247922287912716494352130945715410950411461240992108158313682644592734216780463487870437614520268831473052404569834406789344773113370402204136114534510919866867349742711003633516166161029869901390675008301079930958262457563053778507870854719671482544247823688412769524175375185314101080925215904603210570220347846608307226525431600363620709443279466818004019490898540411663134369165905684313665364332949476096860786064312738938059923256446422246211741681221773059438898312456615479794062278423601325995345661170216597749683543555708103579454312896066254348118686969231117699234118512269863552308547029473611188163849267593944277797816750464555930826949717548752947432220889804290733966513811111345343231289754821954367993651996338129407085849092590222325506264880820691353950361697283244309127063808183454438920959264750717632860437544443243764378405974050982748401326567432605434220950285377601307299666925339826879965351869542814744336538573853516559381459138194811226958642098874545489031548344329332898327844159674454727691949451511565937260954597869777809188094109036301979460179801631667098031834864567186328770666339980792517814370616016297378546556048417058424634297154475428502556861906309266923387138281827634186641634698045269586420368593494383034579809826510048019527274458449046563248017434736296593356596114063607971690597039815192593387227438321367089463242367910161616692006237998339280144450638333260079325436757650731004783773700004408198688962406850605539686893984695018499537197293738587642489779752612820500541192841802038523443255452651699307331522866049221867147053962191344757894594191151315153604303430762230550504978767986891746220274704778858823655329464935011411255089627100556194866377691930984499481957825293137238129178844361277438680907083780857179039988969943744543301614200030730422830910173693701125769739174390628760075495268942164647380105406136373036872723617171307249698141940620965273431201191034860408432619067386834809389957379319645746399460021785181222495293763370673945940304840559500855160715727857647691260105184212583867566997968899030316074191480905023591496095950267512008815185755323876695595677854137350480478738900091090022875715145024912670134779664440437187295702307859373280108257386115041658348148571075558255899648459227342038957393816352291300898762968296589721577310979476808222997668150867450674882711363745515397396133280173381042365973158689059787689630887333844511899237234003206917043751279842820253888101146488604477432873117190609894936777611998104539693659670821520837078705271473908643836203588779064986336648431439093355910922851608835458245051183154772488884963049645076616568183678900144389644044352593851126286305745042363876093090070390409595733880928231179680400777745599539727431868012752622877673239595617441036393565240065175014202954219813196416656711435516216988942415117154371589143656760174702267519109015710234462290114000428248050917154168963818923825959751276460431225434100024698601315421273491009602695539434198104939558884343695852180438910946120576872642028329986187607844668778057191062468694114778704168226609539746220204951406489447022857158851913090158966107646991667980100412789852692245975881847272172545267625194371378889922588556204344348664063486462390072841036244588799274264567484873100654239967507568541450790016516054464386468503346263506178744203509883123464318111147023794356205645379403179908161701147712309485376356777991380630308580675028153635059302871425321317795349850316993843680416336169490790297281986048873172420643155976399345488638290767772825286596296087542762647289253935536539164736368414630081722438929662799193833700645569468320649438162998256556158837559251004093899460422266820537290218971754369715026526480867713957303933361513774994897729592475475390887122362743857367509027718109948288002205812565096181461308901173299391313655550940301688986614455610010086214334159871346504158354443306510974814351800089404361186022390548776621322354349942457829217008682653696188519383238300079080660645023755715202610567080777061672561781026965391963054645701509222194366668813477129202485004812122146929708871986574420301261606762841182002643921197674460950250257470425135848179650689423699603374888413771409181312238393206145180223087510053824189900789109072783922448764075848692469390772676085473341714338475187245722910028211309081019854252585582159448588937018167791077055086184382391511406626858250879355188822826038921378509210201570657922167716631123836822462032324624320847817129143584350729980763518114039064706958998609852190644691343152260792180836011493604006789048523156234653961236321750250301314399683338366749511017523299435713346618811111361079832882953269332364115782080143156572576705579524005723407943824280411086401462603989495799736520163905874445268988653140287648269345524548528653640841667388918607687867513493405139175822298895175978281327269992198201288746843159931272101462762690676267929950647913611085819984644913442041948232513736132607316825681292974196866307831635544418251902006364929594674457650942771841507923630121205364593851100939342266349836746403726344379429469936538893172754066806428597144928624497756303821916673496982330005263681368737557262665656646950807686688916084900040990930520844312035495475903468808179912455776644442491046457104676068121841969849225827195708831362738144891219686637748954055766886560848237929108905699205278393142664788723984617588894547686650697861047294915247561957228613876863966461596941033603757575480187004443820608199901696220983802561378968342888086918330007636672504589580487460628933583350710665568141997538520007023635449091273348715361992419379044544185735125748996084396219895465295470571388024241113143452551011795899311373271724848402987994252509958288469887970038212051174799312115273813269759763691305740921986714248957388141839164278483541121066652630354863636988469131287655697456204370744040766756405268007585304214351553008017464505030304246976647541653836639556041979689837412004031663899276575265793118916006818636720223870435465337117207614247756731822541429212408005141990967416733916508882064235160411806226590493684148112282429815610575825794899894860268198051525853261620185916623268472569670824851329285559088227003280840277420932373254052564716556098212415906819023363813226014505894984466097116229522222925191510204873499794671214105968072195402383495679613248533660052295492660380916478224091160141303021308899537925308210415240823279858325496833799731345766316677969039075140059976989541148144335639458576147066837348862529547120877741610095583441227021839530356270711270687209075694228971509343129096896082398212875455789628380056691847091396722482997428114789939569369072444840922607252570997131514501473792850962109818835962865195590842837962728542419240861815565045719299470475008340704402425737865134089071018213328052759572992382275369048392591594910588627715973749371753758472403985736932462830843793833564774909705936663068570344861855944076373919613910067277834991884955697830148110596593889350671715011991261662559732187679622503740587766749575470860123588134935349129571649029284339568951360124740187000464480246778784695606637355363492440022921735466712187382293936902575513831059800490970753819510323991000152633237126768479612715132743333000513398974971048547626118635115004433323526410905795511098650922702507879120813747017740447166581467914014136224816939843681688926117287230547165611050099101543227157089955731969244177884208353249866845952331573525439514923094120532474308644947512914843991558569931202487929583347416689957966927152017118802232223065612349984528131742975455892049846698061100607300086494928286173277660719876371068697171748871163334395651130061667679050841956533156990527750181524609398429792211253485935333836637678452812416096291027471206811656017873601252487776283841176619671061965851766772493101428440423864496609084513609229291495501994183997477419024547222349704278352881969888275360240662853280533398899742499273358709788583101946580341755829755307046155074098415036269327637996445816182403873237332662508938090301736480699033062024260743210813145308196787907624334982397775671209551288337992672808926734613088200626521660230895823393680152005251947296274257571401774838466777915068423026961560259460573565002161109184348351907579507688753062207918346467087780675370722003616087632461919676191223978863257138993901572796700284545137750762934435300533433996987925499273513167796448346908899831403282348218063543719610301228198908949299726830246863752808036227894456704255641142464344330037512782170120610482367770869536067022125939999396068744372001930032049446890603192504626807975697831609896489727264453254385289425256111363820609307946679487908911575235911977444872551889012725409652129373133027507313665146502924450516417020287746434155293768916434846315315195314877690873753624816373765147259045566413396254412194285703207348510555831551162372736138116092716111917020121776312739513499208358827411870126124606602407481748668139428467107872661965118586742896788616313697771024034942360619196841284725890859977798713727330733337036081523065295064123361761809802856176199409673802209632508036477177394966058898841965237968846261808693399828232690262728734379908494716924622243040189934375685158494953368772980783432361322457600458973550243360394514262578644606522067193025919327495563284965441140565916639042600301345062158380954556635746036576522464171719000132139017578104036744820380117429569331893334321171307001473179500856524241131212111535225922245821993741650969276593291723494489302798652471220451900170930061921536176622320510194178572783285936620367666694307676521178029974588605596294721345828041859705861405262243598043093963848555620710496808486652849832614618145888420535006340732920404761290472383975841448014280756180711222687264300192462701722906987963140613565959677460484195509444992498334972043577954250294359827656934872998029986316879113565090574114529755220330311863933025286534386755601371357334883531732859914193770838738570339045081051722812653300580005647126339720407917792628174982921196688829047617771009182520281704669211777950854343395905481254044645872356287997097030134610374159994102937577376248962624610478292287988193051532727910194173154470286175632461964251075893267169750161471353553310117364103893490987406712987871931145047766686594149289845681255403833769834831274283114182569322276163967623004625252158654848375094985086003915483907698128747586795057009381996620408078318897074277285361292102208266352045983275810800861331221784125027836993742674774602583698950987556262868159237085737236530812217296526761982391768904818056926550495230902333564993092791659111948507547849449860116449933612868652694202940118808249208900674808472116961270468427633555404205303793457573592011650734641075611379531383351641366042006921809017102132205976206431855213991295461724158724224133127437001477225297482260486059722206082248353195047518274260006919540871859039356593838324617155790688377726990877419392603199163727938142907729598785964252226511255133710286151908861018097419684999638094640126971945651429022311539842788703162944657919725689220236320828870594125930530157317230853089347896511283233376628590523243410453537151618572846431909563957411422099054700882510283634466374452915472068038699364047444813814752824520286549516259200916782867229758145086778470797615119134322058274340638870925736833195338591685297126526085224260760357527796043835113645316220115893254885112967876518862871286215344287835600741493026691499352246985384348918113144760615600274090489418896863446561103269756104145467904967847794131502018306115081095159563325404027973962609940913896281788049353017115211024542255896791595313780771055002054002507352543312207727679752313556632095603245068504397836829158377256124397925578919638182437143746264961903984070417433318584752328178795765187036713173862426958216465589976691109701401982338872632854879601592841017346795550655324549171660731893094602881681625924471806196808562227718870442255581208006213944214992614949559220887134551000039602448224152457979421899330389300165771363081653955518165529884453017138528216313400846213487130375640294023898870208421584819728007045032138329218527135903928198437932847467474449994668116873846835583068582509466060880501850339936677978200033989907197585937882795224805849726982762762190236454472418912797828878276589652682919703940632267652411947298778012185911224283270161542617156248282350675796610641596943900929553453726665497517498697047881019172738039838261144754635011837791146864539490181756826933320553006504394811085774427976135163413352640962223830817206672909406081390632937453386932084742490189090521730207561564123660708839243606258792154392907292675204996487414312930664322246673510997857033431966748800084619548398533262879903295065140988351312058742903680044832129903574221480093924163612489206236127152982373081374217371708804784780212540579750620365703608467631515238069401349325821528458932393882286462829494223357116221925074951861343860453072928209420007175553505066152113344456758951219625546022194689677318387098765613256719480774184561543224395087802136503870685915542421549416702759532490024220006227877040591453896566666431169993716127580154995505588775893251708184876546583587171985921094042169344695627372526719862875059901546406642882212198643028219937009912668103846524232541479075231280063702640096655761383140147115055505935088767195169165981939049175624078054239828711271013286703887016076581988457325596703659706004196500808444848589130137526377058880107302581060251693611507803178625819787129204966319170490128862964455306924872293145508632082409555335521480650231187543142108750241282859917713789720405342373190894989062505179472473297828395037867247104120645356212048554613250910975157097291999810178122492938203755065270239016444721894616609919963825645792124560057166382706176889499848250925574332523094698248569105914012275238689949729538707730251836495624864878741664924647458958731912145586675057441076049208091041512815306670316915766383859343578499673613056546656374875547603890284993884614230891933553574839074278213663371411279667775129490768055349126683311500220265682277872525044316795024519188018247891576625591591783177273723376858843389375536612067687344247560637789941507062379455111747633484075215905690388834011278129852235387600835475489298686524508387113120873353084631638751752344477063228752569968019916265506650210022617645294442283642071076043052475175352880969182205878817962241816351366211250220198044256343954662514399982365970303885998545244781233761934308623324614587791007225689371293839649489306719653433739359959607833366181472187554737673585195292055542165258452619616782770267318271389813493708294593822371394048137644284915491616823102383536580955197414060906643568535319657561701654405156460339713309315019677653840176537107007703041991947141275720526632044583195047868873480940642108169294484025582543475429484887282528519600765964141764639769059445861200552398746274452151101815002400472552120105261594613450933481519600057279352338014846828411616742739813530760637889182237040713750863079725439683634089700155158122112773876991484960210123219538290643936477047291598804013168054395185060655710259535321026926512585007195113492566476141433069198785816117364141213756980725366681277788521659290720750951540839547233638715227548235813675060875991968847905823996515962939849758500370316196350750222020185758912865791134811935830476107362342016061452026236740810004190751827750642023955511952482733983221677942206997762321989743168451453708354864568647239100355361127016874588588661664278346379084850039080092884354986059671209576604875857200783755074783605419437539778892289420205096142514293844275138537878236531102815907363055539118009905799683461742355995292721613780961310275058157885465855398149640789698163125172702228574587979777908902238597742213430314410031484236279365286371117840166377542233074834679446447646748223103132085551410658991580659533602716145268479218233491023571605572063103918018482902271459480038948700255563304534423848543214346370914295153128262945491506574795883954070056171014217276419089181427281592931363435222218610327786987499749587717820906779666681643944615192939145728516174499259521325841616117043348284285763668969886162435308783098283796600008071695162662220240290006578403898116142037998034228718540735333199884008041564053239287735494454518397142212324134786715834526956617033748707950917365796957483017973701937051116769179110588223022315863825098710228671814694967691526047715865014280851802609315214394144366708171329338115004594010962893272622398339823101410117332937270241028184797988330058822824139696538147067716409168979996081593978909601000111035965549521628239944421667857502036618165481246073743688233445449377267782529629340423731086096576160514990577962936873935470655115218005754012659481835578349513922256556333794139296887936228280534518193747706116245082697389358243508502254258527096914297844603920068578666786028193110657266518576985159840763683358985997408026935602740150039337539287500666866244342639686104955851568508429831546938368910393145469590897779180086141992236245590085966301193386335578984114083034492795083583793428231496610399452940774655993068157085347156578072388512315525982002188499637007607438709110307340548326847104982948524576872803329526595128749955353123635494995510175317262113317862422247458520176648786239689613162782658073266306320675250098801905807792743483810049282260286804864991379592133509515925392283754845072690096863127968375412722303666575764111200843758823827209341301401681615141960741375866492952191303755660522172420350877398580411770338641724892978996190539909332871579360987149910301984527202203724526885170520613306441258639004484207930061909882083283615316195760175866721964237207224449105157144326163746465548318977133814221801597226194788779622643284393672520268016676334238133339365641967194674169491384427410157824166305392227223732856010669313708950917074750106233011916930170143442847856561775469804356210083864621088742132243124906881888672506074089645252323908721390583087486889794025629193298486935169894606525462198122311779184240099851351324209341962528673400724065363149076927555056427737163438816203775011374094389101373053693321629120243811581863989037837166129318920309848382343501858704538157305144014326137356137876536368253112134447270113063094867706756282421607043356339448169590638858215882824628322690006156293638815753247978470008742371474411043927980573497397365444529762660276579821257747451617715657844914994363243422746290662114540847433775965290660548821106448637317359431461694412447150322871764372633725158250684532613344173696034921279496429223982100361984621459924639918589285964392522128762156922387690846217020208251474575915253582878209891213422158383529091909770841401372024527452121165661878340781871220562495987139473136771786310541637581747789318996730725365363005259191738426809124695916169939104670462713508205988236476367208871310170845862703911572063773988718655669652964721882531531029129271129936854347967903365990826973787693856407741025611985024279813015020623685653914730561318182230154208845115797766537281714629034389454964224818503413278448825469499606955883290559301562900623126472290378008836813046240928125130656411827277629838905225670703175780419027574654226850758883629078052385844077214643483288608961331588009825005764797007131762393851281251753619250845441907810418452347173404648718464411964230827009605971712596117887072613576210547728291948340344934710307947797513062702648717693386103591821894463730124792698206506508483739281475954643401382832695496424723461516665026873203438989383778860537696099608041679609153765745822097076615716376590949483574155648522283216681649461597450426443306426565438337744278532078898260647474860720274300682209012563842939088795524138187992928663753449430059267940762909397368617662043536917326540029347113860210628031321315823607130344323125898266113717391226782062030870147352002345400213484405320729408910913745772975399531573913541527489514563487598447613941822712779401837924223879538911538246568589985297572427055319168104729781055407964206824872964729616495618971532344549121047631876799781607786465141455037225213760284665165752824533134169203195131662404181891620427782080457095425835397412959192010190079677340719240538981582015775154969439981877549700330662512054961500881889822538249961646241152240412953659656360186631999768061763107035759765534155441699068636049566592611916091872707481793152922481253099736493266457972413467695071786418641597238417409586374375440863618932421549440379101055536062999803486605230334675579266164528067300603784779781451535770149751552362280318124195261497909142524047297983645449015861777223280597626145544832327748653743448334308262042299637661237481132316767149530526065602990615713888212111112612893657554511288022431975586113636311598339550794993692663214420363919284155127434809120016938255956449347404302153594303881949112078771107111555200370799945161127290765542751844950478809004397656994713526756429257183011814043932729383721278545403923615269267080395047106673545007540750419573444771292144700980687873534765014292746178765411679066644323345469963011298551381458648544169190800728365104120781267186207700540794761852793083002511460855450232849768091820434650796857305883810695270863967434975457566762937843071734832034793545163382365234928977406687622754522105930105147503096448378468100842691650543732522683803168598573363347323960879367085963082068876475583225793168806069252477570074970351217690181895287380498807883558645618150740077586597793088169751954700317227588401008577153501906677036736705344221535796385669595154086886636495572760215023338832450673694296001386895458859430741299653064572789547670279419167787730856025897332088968795197100022797221667847257344409745528627882686504200229972381259685830077687287268854611621518925474622928644987663884625890056143253481056132848752349629764445305894695413053061581887609775040109242131291237528743617074554822039759663082916657477306171609757120780281910044866207405035845328857140416949003814420644428384127852539973851230378381769952135226869330383221579911308054620951374309393542551617648955777712083207465920594263085384067609479246432639018629884847733041842312060324802501334501439031098003303970310905274267454449181660682526528469778246287799961901843836000930143176439855408933658803481749988121598016470927612882034328539415756046049749408910100362176885426647687142862078935747585616465440435458435768491282866790955925928154556884488599439005149426769881090475255386959585200417281193586746071996426252490693983675536743358982310622605781368369927478145388735158087297537147580601078839468316646645970125395699430909259409167569620326112999323423248704139739318448223225002755750797749559951025430489501123644596771805738116849284008023219400311107848839863237287335949661599585746805729807621679708202902687294946249255813142730595976777195529482153545162686751605338229465161207796571456171631215642379721301601407293093837068585905138564357295511316744166956672500444093712707125424629070839247152502920913565928518056195569022938917128944612386455676703312152874801453561800868266954349943928536797295408656954892078774051654038228200004196069735322768845959205162787921838176354455210436071310468184928102163753952112736843185496602003699140246226661135738274525245647195840292029871396794600680927016152181662531745246386970595183942526901907633162438115782073735525812200035800038707324998990268407317463412036411561751839183481938552264829941239696831747607715989955666246157216729188114295386472559745871948853385044336833533361986931080525195524107166244554728582102501614461689689965501048602789177821519934872019778751003327208389482013133718220575543571111490902097098556143415215567719726460149181754991362982618481940908201410155547762544696500709107794506653140932698783434825727105634829373754406305704952944284035667543034087964639866257714290297289774515649837724894519655370808771204047917143354498835059462914354114355188785675669236565897205519609181246224712225155072080982050756877145735662936860406927359396318379239568447113843102280107584798251957445062881064497846545082936935746924211881424786709389595600902999609185713913910683191857587155554743527307615822706718769664476248544819559039369562393124730864545598663047217215368619596675042162901205202413632612817061258460059902126716454046687953807168818290384784108252914980723128155535856274253487492530328564015783242851191413470325374252990990776582141614192561846145370735883663023623807519964851389167518432085637086259988799289772573654572928683234486910247859670647179720987425791745692978945744399966160258226374126168989022532446996927778558585821560641985999713351704375651865301164508491426279917080837591052014530399801608703574655848878629386651348923508555023413230566497140792072321431040708216864188127538202799588397947537977002148094991518504731435853119874812430787879686506895819751327121189151994505246292693335756849433802324809387901904421306543668049641141851531897115166905029952442038138599289468637234930155644672304824535057882044448421776471512454702707904220300583583047121296499938268117636744385008991578563645320074950058687385611865664802603769083637227559009813839620720489784994648676929316129567162314991474660505167032521442427921540503625190149055961409144588363955923852817192977019287727281725039438847634704440717962267344640133304037835025676894005597478125340921826876063833541052490467588301350481329841349356066234621990548919815886212799526985481505586000976910210011937799869125500185304207473927997859102953478898912656305102562782859882067709258312651423622071500991881649071102154859853131696223391024705222963796433141359058918048913810663392014250949919959989598530132234839530845148929645917158373919833406178379998553846551755065243638047900449669357452468856669103625055021608727877816420910015561723779252737745233519574704784365980867289121687859311056810526008411577303276540357166644218624895886321888494480255976484580835336404218017999390661886557804087766051580555185203932652980554656659412471968178518495810336012508940408112853067504618601552111221943793542092700597213568124043676313450141242742710137632206614862227603663539666786067771585715677279716561328151585992459127432234462092593514860996990572275781810415649800579461141931453359681933408503345490732358713407836382089980770106023606533709198550376106678901923239162424081716005036096168897860318411908645725766802748981571752527661665930576879424458732540577693096268239400557666527671472573706850027036277136616344042650431100885390084821321928480105717056781387817756787410621815441546700334350990260282972049326949204159717190793166558317485488213939907593421493457828771108564675700564245647422279644274598795064851613430830366700670021040117216937837515261238841026883489364489427217415523880370367188396278966869751434064813008641151677684489150652011011798394830457170966486884942855012521805655901140987508038772119672401406840173496469170658465454972857214907374416714892250804603342014979967827033992778070612495536199742227087338222299958339628699613102926843156997907683894655969736008035507374534190732138534139041446955713240352913812123860991669225436530640945915984723651636426739812393930437720430639344133778563902049948352722568341724134278085249231600723840814892523377719589034970722667576999350591975234468859077431561946356443670541478578976163377221587431603840317526560969036532768782747052068646265289444786127163431730646586803555310603749529885791690139365188155422340021920528879417099690012365774207458903177338174725081887643209783771594892541282130183935013007406695672287452882957425899303978986144347585600121179298088950252347265496087741596350568784692690454139509753969156425944976364574871349904117801311071728737906490977145077932338361294134548886450910314773920557695342550536450211818515428594434842582425899634198163760750954109830609318828455630178875779327612577757242622927250978404845610095189022206587826524489598310682453668429492597212900974610320862480470539571410016633904205853896755310587575204193860910247755243039472124485632954840513677481398166925685329258693092261659439671903390038014784894634413330744799154712719755281157889285998303621024930757949619876051385640452868008244262576287387600900601458643757783934389856344961038211122313179143210757681585943045728112276496793920842601852037171467650010554599269637285627980442302111078420003400740762475800328041309601358781970621539541514318112745277370570967743315182096544018440203903640723881947383153842759325699035278680406318613326910583457285658024956043897588125032983415052904550736166127437781787715661264739597208001607242842156849959750826440844564773422542909726814143980632739527716961806605433972916077631078019776042576180626676160927034657410703365297231857917778498005848463485982251794955908696833325482260563582891941456990666511019555548630588126475645206465695421565568022222248616357800194263359343312685589379808941648533633203899939714365281436271995757132684842945348669785104233546038094477462402178928851760419403493075074033044863546177730814163678501004972240064454270528999623937158835508798969545073734617952879362378497817460485052863693619642744527181254697444037920303510572501621434032711268132267400872884323183596052616347757214322956121954036939916561381508521220696939268270339361311790754573608463165453171615428574063448503008318275467452643621231229576922225961928773991914949883073147119136080077431931922006929659263092437894562122913897294404779227366546224350072428316129980753370135232999411273876397538316862904263662531033572143396148241720401292568720764917711486039859769451578829326651376724102573811996767319250164510383678333649479381527254924140288178134339725919863644553108566072518801670908430790597747353836263801946692906148293825876029094444703515522913102064695073406427175588028690766277483600087071525531031612178366565193950757195176709068783362140493747881633984056860403093783165035698831841296417054552619755384319292333304480138760722129555820184984214444413390590139479605588890990816808679245178349830671556412443328576834877658623776194589502037901923345591569275574718460397661170788061500525612149037671041864088016417959913271914856124363134875123246696884847163719806035991577379096781039575320520624079331286424063890535492288484619160157371579530829088092398305008292090684190186981651699195843036640985050164272884187184563674676172980399610435277263926992917045908730582231097748267191824995958477498672263694601564596067158991367298754721764876375745027626677920975758483000908579136251501541138514802297329534364799358109678017674755695604334086789022778249255002797287402599388927777981260235003805177271403805046279268284644958552296621114165204323343300597008762448395673203640888692182968772244841781852592903589254918232410888628370021089971035275797880331532785486685342096566245489532778951747705595339449133856138351679861146940499616536151687385070847648177760735067548021206141159754866500311246649342383492739462685262458233584215240046649908699143051529784401230126003559582398783907158995491652355642907056864725503841981430208564772403741873066215132694704422512851592277351864273189421443833685070365631508362541306845586584031039409049364402907275523108734609576628656056735762060295945281018493104837027269247027901701908728971468513990276868422069535926861569334488602788270432879389501967342006098113171816753073377751934350925286055181604601223506882327132377080988250084762866428749193998613176103605869293813884601592950114231456216904718000400289853092872000443578899922846685304507793569087860257676108705928276988499188830367828113452564744815417468554085764402413144521328561026598453902637552034873934950856036900458119296561171530161733865478424956956656934498107047101799608110504182579453480207880516451351475127097371457231739489941025527918367228240773017038057074835322664200078620209773504914181624829374734160426052102057390422052933241938111513190491651071401919724389178095401634426001568336319006457875281365625198491108048757107286682949180533062915347534893495730943714510245057837173571068926764409510910158275269489311870636317535292298544793167143402016933777505275290277724708871435686790919918948835422384462916404585267187041060984645246057290346205347525456821785105071428837906934696730039895262241768656817718092376878584360476949782259175683723396499254948440277738198545657593117035632621260159659592110848613812528798265960039090853127522496936714498592239531984036153572386452695084064585209273885552707857433747934937881710995131744330695970090319259339600922431875007035793664614686669920143852980881032563086663789085097008868491841371260757107529153731010492033180385992757830181650604669321045217632409993763922130941025739900197312259252657037235319781129754112736273743008117106294701937575069162246134305572190674842106139195589458595232256795268854637646806537096673480187745829439338170270160046300953820960268349416411429716506719873788098395329620301110737223247530272597350114172791098873055115782749378729064535604396290472340155078340353306906417377664573904557155003863692395131113648646431235465649989210190148731774900052942736428702542972984988084529401405999476685339987898001869666241836682758554211356117794033420062912049999481018323535859495833983338264831603015704521035412742227205868057088404754017891757607728561022799830202177763125611893074982771998476011403571119764604620029717934017521400572745953920494020144572667477003724198809651322952090169613796296853428934435408698062224660053130476918246710094783196793164270265179184405108679463040558775118103368950627483792467032003175416150606300720858594627212455046022028298901754176722257338458467901941827330787483037965106492644296158715890862154120907851459782977120543021580553030396682320550732323062436016344073356638400563113970139583951012021514243126775401841353980547282173230612439299381131275186236060389887409690563272446529118695834192640232703577465902819566750250167427686095933667330919557482454224762407630232180696830043684304557974106055702798086779165941070464525581109256340909598049224550089100097200909603166626029213733240654896459996637693045690058321157660311575518045508844297753376797011019828454713185475389752209505871973509313215074840222402508106538614884150100847389858257887023094743889374439435611062878962495538588933689949759567941137597175906142844233163214556073249530726221276593138642685555978465264411493736720509270395973534580322748640760326698247626807306237440594004756583699096530699078158430162207495030223678075906002123972220970901983663764707254664912148037894339488140309154714945633341454210388213879598839613209132376807198739780953049163434007922379044851770124872684995791646139810416745684863036821061755466760737953594818000435965481977150325343531941601995280770757718957058614110456400542031447752754963936067128365409601403214608588946519194043156587869470842966316187395109245609131604581227908831269050826920372445344158485844101484296674598561267656778804426880832365917448858325496892779022992311356654778341792163987901965593070717956849891433836489544151379522757700198784946220525194800714261660933551990741109659847395374234126168296010791930057677740879002053166247132817899883327806026765603570445946105594062308283829351089391844540917790030051070659403948293538598209741726775565863939072221699189441705400254441894619809231924879093875503977966780576234834982451481134809284833094840423946664055105318224647595731173932617663633594851963325888982229507709173200768443983783816385097678800618623200268057192205091572848111860603152640701753193920178200226130731963653215085747428813696523445770277387503002581508972726673787237632679562460011034157452434283236664687724459242657681425904089906756514913602992574453117014475152293851675645797280220683063948762055118908936536175740851315509262806143146042258647277908320205801152954361327882417276973255446977216494857313961476873051136272353447787255014740253287378306139843568763481545833761785982351952545263769022595202336707136831219072292736897079911493957807830193545083806050056331124803824919390915660568581732386687711289104840170239313120213264392684760924208478214299700785808550551128533846738551836623905631996434504476963300664786159280989492020713851642518527646568934912459090780880709961836856500488130615291047791079851951819266791569288074552477241592343490705933084364807917485567906440052303861632627785799308809013300734855035016035963827558432890470637651137223834352247409122061024213364278235820214261982007440631725604240515830806588225859082840221735719509996157981439252893885240050431015177101236730343728299226959403209793547690954689215378573670196345429350392103158689297431914645592118712467139652241475155792374477408194586845481294346672583527250078974083130592535697018313323790095377103969242648675814280745915978250247956333857951037000665088879600110432502692096580447818346136281530475218466141781289550833495476647906489543149544526117275634923676194331714904305713519859048469733037931604154428333597392150290918035711685342449766520562793847031485339278544799439229436111473349572259892353685062967661137261551088360060869406331648627551812049219622897412366935540829761132290009187243667798700199467087165357550041341983694370330749074457542287930622799493533004439923801019886342278746987538131162037251902478960059624299273281073870835681068985659965696669641461148896069863335771671386382289899937050173839758720668458354062730584272074693203569175577021858507445624696767706967590824401247728805348005397763934818117497415998896493774981984387861873408619300077678665833237700351641593834308509178919779466911446645229006145644550046169557172760301415404445759601920492724285903570610157967470626624415512861550672287761121523878103263438770855591053586296742122559300794662139519626699134880638503990804611127889401337835797730252721442014218782542339169201265058409853003453385374343998964023790402688765233672886308938453433390691574252591149272521566311147492615807822844913445501183214671928066767382349692856251879950028668836034920116826149464203187721454449471234386176506573565286477077656151794732581284459056737104110836066976062071613398451894764098413898116615975001128751076289300762300152208834742770592635866521144819799351693403918725258864792760231225607562554392993429761056157572167741559581070295916160322274337731829284798677775564604067065448911811984548899434650124336764223723385897414515348031066158909508364640806707129591854780428298072411024386651061729870143734806818567204521081168042870358547694066465633387678883280412205895800470760631524727378849131840915676386463276971672508543942128922058206133683116215602284849627094937168905582678673612014677304305719542099274813768979484405910805976335955324774604684416867945382923444778251027822943458819595966947974113715538824110612840402465969887872557981710227867931872526119965485708564128326550165910813026096923549544968716848879735360008981198650678078032327012600182547569455232091913218904320672717979054146088129157219257906912027019588704535534294310727094912422249866142096794198324334607072712162863157916295015918902883372506822936151055552994829454800576192416208515224530366803815340849823479100790623492714700597572096761325765020078119685101484758779391021767692844125932638411425192154573474116833818749323204627416286269606632682910835056616758905450940065948691140539200541106693229428990476821399429342208440616415816810473734799166060787444383676551790108659798008567069499831642246861481708553924559741843314995135978748509159185466004980042362100591859574376505552887503494074933648446875822667019779877201088535589831230013076328104515879014968179026463627549654086498368877638075175572611564228853757257191841226697223828617150913684821661175691693286831177247094461189474865236274942029494595284080173972460824832460010709325037667065444434764684957273721935830733121084909006461557586602292063435122795098924742031583628595818210671179718970318026076195042535661157048428328766924544006348538074810892814660690453186251178665096301486813893785689616274038570321571903024341878299977210019854101922244691812230056148868548549616335825635706162272396882590957317761372118785025183837467914526079624093337035472857344734284162116096484673442349748953875231560298423936263539383383774460573494676286220385785808719167738893137259374283241089312999600582911894051323584882115903964257479550647141320263710302370919420813480306607122319274497195722859482630377609822312363986517652898786090087652458863873590247304865898473641190326622870882266274914202629742856100458218565715383047921403556143868311441589408285462631081216275919043837197725992840694678495703749359253403927490582752593414426149088539513323868800132170846558571209543194571011107761389776693922300462095297318588936068921925464864175005037684824641690980160792997986056330775730159358821952744443971586204779622671394112183174140445374702845426867523250073888052262645041476126644520667050337200894989891061683346375916841482366385290139409922108095807689428656007821325808843480381087788763673711077952243800009041532586596698802369846972835080875620749930024308149241805553531515831930242941020725917269306723074375419389677801709088817546217230844715869510811809306811765115043831578327304654987155347065878405825473655236623259849423648670312331367914058837188762974917481061131888380741173168005400493354562052070429034975462731429959218413059070159331033781986521307324816614355058325386164128574920470386248618039373423246056741030359035415905511852144234995641289456207901524358814309133599098428312244632775746798436282992617388152202859983346717945697758350632773030445646595223983215099543888986881429091426028771144767447621817979946150581769263353496062215364073854215281299710689826117942930549075531179108164465534998284125216159239152651637632769816314060869636834857709190161937225150537065491986077205115156823836507438144956440593466447770542024444646543665640236467740970129698447245220884035250220659630855346683000164338501855660771656677282239736146491898671056433169982300055622066663684791762383353700438235437627022578787054518543676510054477756458869452230642600889198296489332079270368777847479890356333241011447262417061889841742054929892620280579753047322507549692893319634041818504546531289525129593794972509335889504682229305858586461228342030299829122478465439691324186287451408168828388435582423701140882025847873319883200252267327665971581164140902626409997584470089390479743739393994096158441794793047255671501446141033281994700862184588573751006113323023323992874726197873401069566978402104067500360571701891058182291092207949078881228917912411970795660992225107709331899770693938949434927423486345276828722496307482656230306371237914677580414881828945331202966322099122738691210717380829081883025746634230651398549015796484446497172703119845148033304772298706175562269352390441459279635653787266175155524314131693218012558173996537106031028081760878377629139145186470137307289159730049238362251986617602755177380372860039374121475862924595762580394823327529983476453888803399164451029178032394283190302120508381575855912917574983785131295872447112639685921827753902105709651444468708458135645851191613156769812810880928814948372012142267363456100387881900947237351818427039737692171253364483129075629651637956672840071665386551709209952349245063085811878743624873023987320318444679594674353396510996203922359061503429773691128734225477554393189247271884361398044895037468553312487712360423163211780444591631367347292715805950020940768489465396253130171029062700203702457973364908828636815354801380274816702930837271756935268875614712272166025192794859670877309265222050766675827760180362487171603890676906393252598206098684960396483731579661966159573744243512112834847666855902890497447878656025699084856162632484783041690026883582350613128211745498956546688375926878768990359946278481892145466613573628723232433971173882777478625479742431916531606016476162288210733354197081265628357409010997804220409379987791107723733548850000638391093277712373851253911155130455322897265668699722975497681098714492948794469026269076206328975279784825378502269679761227816151314341893114378400517762053544307004582459958914087158662853911707023215912859812762579976388951469668628498456267406252472358732769056667306984895010889760499588858576929875371571239161997923720239276995666202797002682067784401094729012158114498758587520837226871906193398867081386317090219352168521758349534205311841918428298389223603301924642869326890163934046789145868895980378626361945672778415058416171436333616294980842741277759035419137049506918119909431661421303316318485762222288609554825073439229874216256249486601994731120588984097335500349538055439426359464313974533289101352505962622519951041983666734583640636309510121879131656985248451902357427266716072909253168107139356535276271262707968803263489185710350295125348307215099498521305727859062549727317617196961640207804456095196111132486453626743349604360547969797443747830904708425331360239332607275868935504312567390847416972518879070418412133528124654155175487714317736272154749178623384717230274500603676103555691926547574227202261505663504286813133921427002938211421593324824943015910972377168005536459389163543961075826956011343827483775880239883081644659793893472140376012961684890996829725133916220442267292293484140733924805839606111707911737998444373612611221630951743962816520609021293720725986865803392726814260772726715777246036928452811722402492730365931572994240812061298063392233352635037605361632143565559068117512934781380575721324734858546763397070320491931295750553375455684432192818305517103460560211484294120493337592251840626685014876808302421218285391471579085051654384375069318160927184909317328326777188100729648621918976033991949903360887936016721566452686794868866213670209532451025854421868830561732818175483424234004904308506892154463434302134870988455136832849653737266487918662843548288016976327461777103175357090206708744705574982378329009136865087093841390052362675451009836561549601319635773935280777653252688242468578255441016354965449509558708944830529190709429810883823669924576206989163185714882229398570070130954041260365034723643301443913360210190452189294515613588366295347945490387857817408134842203020990547041754708910614920465512290472929816641976405080989565777595808510638167647306142969516174611245548235724836896509623729296053905697491676846044007754015544776679716006597177676759312200174018124813920273009734994120700013347207947912570238077607016944299405486007088723171612490922662470282350377152689672141759205190210350229148934744884225354497577358674628547418726026910519442368207798587632116114914052861080203058515692546968238801451103359988287029587166291613521295290879757698425370325018299988732120014298749563152155389546361011782281191323882227406039757741106956471669027258888760497019522322882064435478912410674213608262892438162879363941658246094857473850488401365707826639574566073463386691783651298716027871081930474633560314676864430996605572722888039578635023569797526004475527911528970707919260313771620120069370704046100322786447223653005395623238533965124136280328731383495122917204391665157113886436083567212183344350024818393849943657990416072261051292597548541166821707734856531542102490878151184878319797838478684317050706611956460360594893148009275956821034667469636587041535352993724697024557671045820696151176239508613189233627400571348266720060228949452203203056333978263478673826339354538126265080559358127008583954218732067542669419411411862289726410261665641245569583297421299260349790114984315348961249025664743364378504567879126892262599162017752727266972498659637095073968175580269737736287960609030760306518489091773098584603711201653642401044119039033997499844106774374369013134956585779491833825222162449531963150774162196392044430789037335071960572206101149210299399562815819040387826756035064084753501687339973512543480208558670861454784661421297737746592843083443318903620291776691048153956383004967384507757020074704828104012664568180656115938294354518548756716552449793045516626335965175488731051966638545987915080353419182738430649799166842367221522482844961943557808671607523092535981060891252518635172411757810373109650606960536155273556698497129616392572617893297362779363669853449246661988394497427415674235079098848944316749039670480115664488598880479827024733040661486325975439112432279829094604599314621518208891707258835790727245793263217476546415744074048759013148085221811260725491808261826632258661749278357832258467430709141723427569152788386191511947503925158547693331583172719965649042127239208164044337917865606058152223981716160099017206541849398975151082477988223636428708627603745558400037589455653326688349206622683357056394803987651652263881265663046181160925667906147705224472918846964066749054780472628943716116869537223844286837097510044950721334872635425443521263275289642602623555300468160127408595355303448200952068505913968578915500521717885238316092491993719147031332588821151887104451730715332658408441304200553876615662125945203219082301122662925233172825799873145177715082342722521621433884815134764180189545675650940706344993870985926080567740622857281104426208645040309310983679012323092182045606116432209537372491107351184869811933747946663537796569319973993376517198600614667494804946124679261109559591892596319931022818592610820479161968199076580097803517781488234744533487366444055989193479777069488431185163313658704188147177008361625566150056004183448931383167502521111827864010972601496000486463551624718356914241097757979857987622065736935310899187398650688588973922295233367853263499708831891421413598274843374400656097579688306643473342528995806987249437482827544091808408360737622900334442104461472843146716677287583842567494119278748721049488551752474149521746979234450698787171324269225247536255399679795903122517905324221730506226444266740411857208383754550152045344116094705919263075561392148687525999463565516124862448862894652666328390315278281934377765399622423634172091120452860158917225619416585801178141994550700450806240008016995658683291227573894146376317640716046107403806838191624984165052288427824731011633397623244100319655368286529880112744806015346281499888461620670264282966644830286252339398769099640947464470266884546980983859464300008209807614917688574761311603728453189950706053902420140635540157780768655228947380017444047688016555199361068107904349349885635812585827809339066680217419835647802403177891874911382166597711019201852924487557825810496761194736750082315221721191695741449353683365253592503138179276942020017121064819517720205454981426873587194450834386585951895912692479127436769028488985670103783683054910235527084197158936294351324285795318041490003300037166444754489794443746014366466817095749280977809030478362466656131904085810426148297764366242051553387337610416447880518991427316244026386655337482530320197523326713856405487081516061693738861977432056587450272082482110749634767706566455769499172633251375974719185762118024706783335965919098235071413862641617258234399221274652566593103372847571825534988170968734826391254836508662876121908065715638552735594107219400680838611225382395849918353968277566263152992059011395535571314279841420634542399018820305735504696933171008091884273458708274480841825188711827397630714451206032338457675688134481837433395515250966094368584894997554690048050671667326996767853424742804146937809539003771790561149526592442616270955026423537140225284776098309106958429996134132745311785162504259660655159329753018752376893859861026662893879262385482269714770523733126061484261068387015670372968574655450372201513163426771948759722525835714334675268116101513993659587677777825249779030749074520246957725364762131356267993601945815077305927324256443770389428214051804541944046827091855662123438128010567201262482835524859458534122610117037355836780458993412045013786052167596244419143182532596493101816396933379893355265832526558315838594695895368691721633321615630842579166378122002200097717697270828728028394252831048310215241477803022730972560521596806972876576548835265249838080765638182595663191928008621163971911584593078514943288691143772200814697873469617393265367223425208404689744355776352942665826382202801516644888272286481972407059867490486257653809140470251630812178489484428352939513099074320626173988967140228447255503534826182743898759118343464205870612316180288448305011609004177981435470095999429253591442021505120584197279331920947166051828424576032165759673779930453209212828537721003108040774220310578502030742121805447639143824555684734446396995262433290038118934295513883960751820035116865846496120382180769260749159956890600138621902090043836260842881523415878778246947304744055466181614157850369005242073742082264600387396120426298120916028236574724914119528624481912543386000072103469984277219808917588567016506038250138186785433468244854507726225264276256136011594115714030865428389173902405038492966466328604490127084439445661575510839986154258845098035862990169642988354088636446350972860753950912046637891116747780737368472224096405836609352955884136383298851642800329054993295452470663085414211146127512411578658629767389447642369137190010910732907589840797455785511511786792803877058627134303541633077584198006625513854272641224772100383891665651657062143054135952237771694344633846876903218382223355199489981924308908517340729889052855618333727934338693240541670750248768383770292856015676490843270105456660656081967594282941714427297442080108010072406802639588884213496058261902267194145656723190761466228853037982970851343417291456757114462519507465129098030485560845714577944042794470059821327944615883420425494003648401650641935796668597787610095368646182866731151356339191113448364103411974284281884546318456120343848418175523105829147701385743598275389473911923858558794265291207876464676341031644992871787532666517705022616940574580999803353349443143761220305455150244387302575759509258009381503124269510044302300563892688069261149615237731475210837048306853610302962821281052595108353163960300969933868901155497293914313059068444266181951798801155722398202425500053406910708792495640446527050278772775855397253637178884307781266758817353695406395378696560517116869365330455294107674134183790726864124041033610165431448717201615895513826652390686957395962549254370198379321676751891785207824580461304280059081606598949434091263419165337133944095937276304588765418483296674531557072462039962971570666428738951805258926361042731832183011691203282104568128623735337777781133620538979411238274222774475750604999677745784437502743432582378502574700870052381523395287984172241143000860564605647012469919249570874427690770969278670280712669387555504765390673232718878293106662343754370647058281962497813064999958762348378611880073725484371259551293101876035410274121391563696289609050417630059525026602914433215477507147339872888513001313429060489108228928156824263296062973698338092589891571230691395992882864175222645752256265276151513984766438577934093820636537879624111313860583253346647518175023770152670955440492612781840649311727233199526000375565721836267586007521509532967245760157551685652664998358707461576265610288791292828744431520881066468650267100376374426728271410785177147963303589273935809290583872397507950990183285588493416836536582067761196733246948282700633918145678773484912394790441032405664781316731341323947848206993454712435167619080660721692619139000266201242932968827155382634963298825346779828603076623374391690471455811531735258545977833641219220521666901895309984664368146847894980831237083399201142950231104290579093090756212823964790804323279253291234613477691698246051192980164511163814201813335334062351051744158136159190706818359396353125703635583906557550701626808129766835767814751148385642488172101812107746756959637299643039111819463287863422494539302641887374998446500381875625782545283454532567259625007069111587095524414766646964000923580468415426299101395097374300883171265001283226321869795916365551469982783173531216612229182019382708235389228547327187768349930143242023634697634172731669863138153537815335345817234152279254648540171949044960519248614274210212082621954445951019628525328067665812182402146491584726706086715455438019384891566308380954568239590715247958082548912954242282502629969010001711582487125437415099244646436115855992958261724312481896572207657247106609459219990907975564676289840566735485539168817598457040905995111621494618353744339206244731310324980679237077382181893176656510349981639395101025040690039780514751428152927388447362863251470758442200730673515965697902803548805641060138718153254827799282994922731753652634531174992591718028765181106178820862730017051885328587472145532861337609208290813188006811174352529609296550028019375826407677586560548103513947605854711432648596441551741146600107273628580449926485649293800331855326865918207790114504669673490299006540779627299598191861610859157280247062986496822156335981066675041206834681879227991666738265835231432360055089386256753110553007847866919463637142085083630905124233133684385708698155391757789504890635527132292519681995446338280211615524277752712619108479855578967355463376500540476406648188409432083699248023443346679213956539316052091663274100055065565251496167250151271192107925872278472010602569052551035395910013499507849475721660946749256467515409301016690917376344093006036993052046159267306635076630387884049453315098912720155965573786892611894223004502902577192964869745751840925475314734436136098529958480580535893354517825138710902999000496613966835175306142192393835884726120796669286883388278151963218209440581292242191253567526756613837195743454296762374376713264147873143681742850916051619025549134817088491852482277864016900606419650200663602388511328326066507902320535477642074702225352340460956186131004284118810584003580153064317556771582231439427510881593986309157747831825006939430846197139705113073845484853446012267010519244300979927090902985803560925873635345357575977715972841630617680120887936404268484492159228392067111201675061772012232748988602383019554282439215567963390684936912804604072709990160545279516685363853152113093070617957929912972328753149422645517069901627948695464296018589311976311436572344210924849801029417126178172894811232637427752298465218871381530701374246148940904295912227156773685270478210767627348357345465743855911252612674520299366539178935787593048894176750227036855616350256621019561811433061009204933616262167362521926960925079585744456761993644962856425156463553890786358382808696102474511511461561546736624970700631938196140185920036094533909195319284674658934962885178532617183357312372470042406343578189112495324985599012973695313217798182703980133056860744897816682486126085587541455459640947582396605354238977267604439714121886728259442103850866922717246105980921872971987370208474663508085179214262265334430270767265974284879321949067339740758740220473963863094275437184330518769044376942058909550581721288380727135838136274218299466414790186388015689214151525691760016273167828734512237501440409168134889705130220792954771332884178717582563383035431119557514133676802426886161711225988324752170686751572948957132650621212087754141944397529886635775946979590916817582512387561090215383234451261075003189483806456532373747489489247858185084124843752816278701909574281175053221904867601510600591319922337635573482524899569010507993873273875246473002857833786929928434701540596295265296076084513169584333170768528052746689142023447033409412438921747809646755496241534382242198350303748974943436032181817078700097150531626618534564950107179914973212041836430320980629863163489702940501183622496983406122840252271488362267441120703057159173621600211261209067673140453173018734130066195582038355489339275631817166826134000572680597759860104447705636890857419465749716634790661701817944384906718040086805767200061382612572294172770741503946848005414417551052736362255606618223034543074387985377405163140508299390892436194744754023137200653568394869589934225940391385851065663877716081432975173164787946332169005492976539001925093442902194106454883886796071445307727287210172022762719904788465191498981153200866395400837204509879850666624164437481729832402225495139365503745564215846405305073296537203956556261279204519945200775594915299105066043910089476867860693174394138818054005030937093191530803383352318166251089236529967651031819452244625193357141629892573131210390594075911209234606246938355773801278892940793544621318679631846708142981076866702197512390397091849165614581329706049245527031960242725507593077712673707797802756267700320324549884200231477695584525394686727761325514865199284386956823919849591353833025509522821525226942609796238376245775372975919953393487820166438071172369855369768993434381865575017341942588025639048967807064244301772901374783933251597164556199187240747865576419063525545450701811364924906867950449509560416979376377301976745890475507948027234193896631497167640859456319975153472254966979981863566158265209410568044934964777768647391845800299128887338544666538708429067823844654643352276666880372458757794436029861692011656066889658866918028510024049430434102913744019213848536909032328643152411573112371699700302250071330392705347007568679660718649875204425700778383063473875685904082672752364339590607060851364770016177407907677172526233409597753043709047886046647669092666448848642704751548882524140296225520600184651211981841777401283392850975225218560789310713769239578683772039960772233673714557134220451774760749402351764287497417852595730612082002476202519054683060690125955486725280038588897781507130804645086999928317531805962243390146132126799015498409175322827574955998095305418478337437434778280344477125371153505324836824653958869707731814629873892412967715205932731421697882759302213381687807876909941144856017477926902614555034446982047002440283593651483187808363408453898010889330852538130283904439707473041777073601938428999174047088482400129039823586181173764736557073650315982227121558781200804788966568446401440920113521741958226732406633374122094944724267695643696441109906105816023496495025699608122254365008646839500139143302196592402106722513267263238576064797966785902231984782917142585719504764799309134836512172440104601150111223439543236353848436592385556330232872318902259433770639896857097451475366588799666982282423653698859551730681553246651040934687859017468881208985447148617617806031635516556597021935677208304520540233310261303280403246323061125230867855167521453511028627768763142626793216508601684248694031068800558956943296724808688563299826068036248237147261788455781037731182225723262657425441276191722615204337955772609250979955789716991034006544071890654790416047813287229442267784604255234535915785009273802891662317208565262315564086008164719178581685490010919601864462583394538001717872408889119703049076802920490910827589336579412274898725419074601031627684824363542544258674719453980182493372150462354427751234919788561959130377676191373398826913859838095568150262326779373470012827339529053748260881883944356149484967957587345696441297131354010506366937642482005948213078722942725461690408543073401992956349946580416416979739855023528153368306539918480052660459201472885239648520800251466179238887350253903124591392871617504658159066279703176502651575380511557443908959635843814074621365532400386630985321383929697803169458983852120601013367793982271287859958095723894588168808306540777533358948354404306675907523520492038334033009622650623537710700996905090044198151297461521992432951863202221937131025399755684410322628922009110292658566053036344187137710202127940012813765223086341772086654743312925978626272820866341042733642491537581759612703302063515113072384059405697097015997260201519264861096526543585897023339722779747231174107326546639612541642279222600662358011931743829110904578763971569210568612909952575803210445609310489109371156583891738311523768165628518523463305557362321689700051172869852478629436312468453399425452645344925375672617482178926295758390772680437219062829275306540619429699660932927523865115402225112138539246275648514743336061018256374274962537334066055826005783146633185656290377182553071580793206764519218423361475204994355507271838105202298260625006176788998021916089639924536170279638850706308563508777038693757350617773498027567988624321489698465346630498096454075968373419388644094162412648861031977012416319588744433141510080206846326986773706509632079858646003396768309181432743492394969198840778225329395502157319805837100077776127362049273824503158135797808550373424001688255767252636076494686006777994388857277637827344252145432318863930307933621863136176183833797453910834957127528086353502763547199116693317609800561291815562626692126550229325282625892742692416330556890155876561781273166627504978230236886271697576629602130180864040982765406711942322631212921958616437951498555924423323414652476761289787761509501711806282017438386782385005040869377575773829764935337361751887202515042459149386393999550591658954917265532184515123374350473430326315201989936743670962627346914970006883353892737275679143760441751574346958983307721867462439578876738361807066746076828614181491207082417651487279832272163034060226213930764281141883211782559369637880901966186481828230023601715447533239643478012472647654543516463412210373539569106350047764754032064850699017035515133394466842685565927301768304569447346931220869455729141380935029121628297252001546114222843689629846541474042011538410397533945650593599988269358860896726753054201309521024189912135184217405595784339649360634269612965024399669504557591113609622815279542649291734704414890615061070755707659844536033282478431119233929314581280034716865549033091026105482611804640775060381379234960960069299106704371401460606535556896939981758290402432518284924742983120933635858563626831884246050207665380815571086565795738397387116949430122668225183931543658190085556641959210597492409089464883035785370313124894317316966584512733560203260970800461677971199115406918148172460795162624677849351796597093065481254972685933327340571536048844491439287512279818746615847646407929775183244703953738908795841227503463847460406910138129705851015889632301545218405161928606751783858615275751471074618670224412557144545010236945927390469903246867567009332233813590482403139221863132980788925974182984705927355293724636317209360848594310696029487293921176339285360933716543702379275780437242780307855757364673002212803462910969107921274290104694217744625458418982703209948267527152708146541763377080854317851298312566127856895475372557896176582725910488535961275644390840231805326333532813703363181633689472538262463021174442246413914278510316396133548075394449641621222591524213666179423314507758193272141637225277780538397116528085178206926834839674374386192796483281227754354594730768670406067669482696018632540560518883989818943781551420853851224981536840465395193640770079343683173135553003845673608586230154750975788785766714653638237886380668595829110911863257444815403919956007931703573282035035956855737898246651342129509383227805988071111182576977920080906527138208432355641991711422106798847382784046143906571730641167134474410950728747879631365133156098523152971324584284793429568998795960018105800163855946913107034108356576495806231671393459132635628346448386718849694801942234188156467833907904945881559963973014940721805489939171705969563231375992950956118382591503175882160782170601879178839855881654220251571818189102739638321567662270350373554771279722243189521257005739871078375368377809164198033796267403262574983116432427923367233755624611230811044957446020252311983752340679748359827868529023495127213027813260770775978210983845844734801024053271928598153309066050111983799199879786298767305308113054395175514352182930721829289460318557298219888710923958824615336747575744351105510387403172172466841319916796559139425885183403331112860558888177800247823051807349404795873524960251688511724543857985058983897982669949456791207401811584882846848532446936980788214669250672320525222624130211403205570499766741302174079391530755821924691939963314051741871100856200339638544999446706129576866341472987547213440217012947229282036748401467772935359996053233465036671528019194037856255614879639478344859246765482010341195762993834708487649024329699584387269010302580790989242404940133803850262152867199294052153190671727248979407792602301082208396807963185342732904094750560129329765917757907267233924901349822409493685576137909556304368260502198095286480272617284407197361871273051516998319202694448892711674374232328565227367398317290468908299128696747974370524693684768713190061531505843891124356123547861561387226145469669435245003524490393717589169278499875718332716142970565050165097927615531006029785869876322670695384943398753515456219444061573597298435529775127884061322701024530323809822474864207183279842005838757089890976164779534409233422917297843652336938804278274360475510941036629972480514625678679321608631073838733946425860298264468652190738295815141397183042760513579957093798116895875025235221566949048286854232211522543427325321702555667891010520044559171021137827025616781700759311307673845476758366157042709909177168984249363747385407123363837993135395029117064690115824408130352292190818335098811726479890990263549443641559606346473959424252887003984701313466764059204280580267740572897859850285383062039103974708673661966698174080816339262306325626170498755842452946589860690902441631735308310425256490914578554738328211653595634802407612783913047300453581819377603512815786327056501117520805956799533741982916263505466358690063941023332718899637185564099333066745172108150573311727560567951517422474032732352711957058298836314726621777477906429286760422292988332810832990727355858110709849272533658013484280712364521753110082744828129156231430751721714550980504075961764597490603172861726756099796442614371202912385200498995977413693281858404525594793794303342055237101178305575231966103333439058667851263349588393612837093164716571301127514914017665101114935250074064295957826583449950898334433864364289055197089609189547141969975382658940717678942833009989090858757020961484259164479638617751193501002785133028134414961719424329119804272555164674773191200523825126400576622168115456644695928900974500034698333524429346689370901834802651138538194578311584208784350896723040925351166954568772023113505869520254273871724666973722421173314211399750113108095473106422618904379565461150676520437622594386564299050220646615052289723004655257903424392902752893477307597424941784100107251426640246349141054558788555348365314060149128040954152334604921849076333986216722718672737634045170884914589154133270813968221536240221862705565767405571293543963483772270292071518417515296172970503557344687922089424276809232489232710602710692729748594694078496199219011410730362390382819114695684898054743779474353143144536278194412629127397386819356587835216535760132379293158994083684272612360616934909438645918398508255200024790284948986698085702855498105939096227581862745051135135970986121774261660555163010824619177973851581506376170601078673748825366336025740601592000664158892162495975193976041907506924124111124939719464631939773585128925297353835407619524280991760893590130681151403668994904080474130958107764248012110869808229785031872193366808478827871326980933694268399480822583937996098644069165676838500805281955116625618634598029674179016076699014933986383605535900941082570987106911966606702136096670536143607457098346681257161487684243214987552297658515174644318322939333115628897542008002462617309105979242464711890910209751151490194585509760304751751204990038525953660143416287157766449299099376990820279366986109177933448646124221058672271267949326593334257871243433906919641883462135614013592849461563081017650280747909901929728187708458784107713640798934454351645436652026537870406916285698713835675829411269831865682188082602553547081101347277190430768933010517817940888111197149864171630062227392278306530185477013825650557178184037317383191598550930928873776306984063035776878788770193225822347721457631552674885732117787824929361520121602953725375337531820211783380372307532466023161641641493603269845379464919765071363990849115319898946537175830513362139889121575430013003602485748973936503926145261044619078047731517201532124397500746964342183431767942808534310805178576527307725517642036925064064061977679141307630223948520583539625641720779568925177698308602538168891141126010824753544567842575330407007989323656307591630073713705516629949882486800227034669583212922047647726640128150285781214296432252005030118407206600694362095525134111047156852275753120760162519708128706406361734221957063029909967398102770800506875256996656884119115398007568881948699064830661405147692294295049913013918590905274106221940775020296350841135199438035570816551321275233080798706261538961838011376989643532033547607653076719676994009007395352180391758096370445536727464944948228222864130382184528730716743197120392476817909585387096538574569904643005078604559623935269897787980793412086682289820524317776589241665396891463239053834128505080638716188787748670298043510549743873659618745595337642021875047009359495369268227054935697826733496972459058486580177333007222690472158625320106234272686612046520585546284374299985421240046719160253100960343899216543805456391289657922048173203776369811901341612786014703745048101561974685774877850001518702356525838475560086199718029490729671681981889774900008702191187491623056181260980097099295240770331620868444731592792764046846480983049102673561565814515898909514194678381982561377766233635772009570012040327729604535751928559771476927098235160842223884927381918123933303769969386346285774959266322686596158612474862843925412268793597970452073034568341480753305205460649298276362746482866147155142057633296830397154651502871524321618043356648969548538264453953294455872293274490270576331767898557304515733048729145773428413858134833707287464996200833979961428271725371824846948087104068562273908990226578857835431541124359821948118300077638900514151037137798107567140692838778622694402114656900398533984828944484494027187929865957991387961077531018030865820802045479942117180008265543372389393874794892681693274791683354645043204961595785553991463507063094048324185224352091613978831972521871519784102847951794047391923526044254726426516782761606182718021543737927606899225752979322833114199599577780243258035142397534963411108171868281292121249698621807119804825058540430714225094308532519273951726992021820611374095491806974005423234032069723129851166959073746766299749708568769187683475242888462288584998347739966388974418374717534340004719224206196351340714170137955753827075501416514348597234767758629962791777168927944779727496404186218280609458945121634444216206975675596923825052421003451646075021824426505493268314869229302105793977582579623268419516407849771350596335350768999471671557856238348001033234884152454001817504995938803216146212662077693302809331399063901084724142403631189412110585275131310012773843932190946843297639069782420626222939453532891464499937783436927405045288113529757340101908098413437753456853175549210924363144974135021677286605155894317416600501886025532755268459950640707293218939123704817557109247823094779023981977374390031129040154695444276485620985088700480503012762383898369803413849153654933170571623449096522596868583901647170653213547359952642415389812764391801808250172083543099052074143660566028782843024188059011465588967678346365543675208459221674360943886361338272247229886100483355164815873925751373708569754407383061750112233890439442568435028914923445814627066300802465314570302278204077886712712733447966379382866483135618194151048134307832197052178419645927423949733642917713771553186278471270288136733875195932839977363123083817742136023384301191563684654728080987933743304798039344717066523264063757704849918182039937624879858410060708475931555631492954957334241758980656443598064956054980269494418539093495265233859278156587334480353611608104580974710995748694095105917766753985017465198596334240744241389309489227211916568181814511095478829676198021584698672798461835492273752514814851092983839286247679133039243214583031443648478044181224171363550219055264673345345350112934985155210863799532831151278027214986122651340815041950796689781469473071521507448515396456258376437748404863570583349380652579417193061101981656978411100472297412258798836981714868851949386405640429710674865964050752712399337022141051460122925752957579968752247265413402110879364602142937492684510689404130222656919294700516806459175760358693511351968928152087327140509682532896419200424863169744925875572441943242883808062282220994092375942619257254923052654868708718232176419966553800970220393874637883432495091859521702526318876939582251942247555999079246730362503787828984362073823557157997426923342646859596401037191020955597380984699996652393283504993315964653974507456799968341786060482379194656361019237464575510444212268953478797873876389291826740807259078841400038724096263360822424894499715243188290314106581314167554776029377392551161774968802178871130478761089467216788962478461075457022771014145112449674090093714722629194264962273956529988074154699018108974255369060834843437977742147173921353829466778822993879302390156869495525838151170978224799420991951990173448424883748757724152585280138456590734660355503524249392751939803706815949150668537558316475866619846469026958299867446303435864740793072016094511420537292586157184162593198020339967353520594736523272645860257234663486676892084225729368493283286016738558280749785542391586989547443029617992463803394466967492677802964589163670660935712471710117413406845274725973417881246974898021771878338322752991784548649805457398452071575271266046949671053433515218565425060690353719720795237177238459930447857528364190957036157901991533500644764020569734068258895953728044224906853309134961632335727039921642175821625569645239795641126657722547934390665861192732947700676144190277585308264343244137133890816182046098248515502780742611211758229609485634495518886865581428461059150081113650161376562846827551522560157946300191925724948562676587494029139343636701566995638091235150855687295614049075404037241522352338516072529117390002971386448390497920836417446644971917927544384109335474971171363900444826975531621902270098989182074840109735571427207611130914385305919957886587055130748523923411942297009088546704087322675292050563306275746492195375515285352276628391847693634251113274230445238572584695198672245828592427896905405614141429422627515810521277001203464994833419177027108243556216548506526998171418474966260476638631348831487365818743680131170154918815750111591645970395424842939452421384024378853885914585845680785536192773690310481214351951012727010433900983023307606531606685224401737451369734597504990661177277006008591819714107538627491078891784803332974158404205671705577863373089739235312212122611884972904412780472999698637010773927749666605077512114556889657019983598630709443818080948762880996126770860567204547189493498659535808048216527128323696382149004199427575552483862728845671584489563704104213190068869006488741459661873449492062739826175555338743575346086904777643599015287246023195177179391065927673061167711216927417029886135309658900920284235256810160665191530023592175508778860351532967622015923129270495383933189691418348816967092667957318502463371411762179953953378354897961538090145401305099234760186563054486583958483161316224485211019045671335845878462102749655954639361163112813956324345195672705812714917220280579105621664465546630465040697267466305065650056673263933342732975344606325940449129195494999674451663217341344640604349538306788684892434719014255790649717957003508458040943576272877498296779192932104651327762796341497930049994885372383946613206404325240213938654748140279001209704082493654572209095536689897797446572894635802837014562472958227954402344937365547551788089496952496061417971722536265544421807834224137661115526066504694824716367947667977785645608892330665492615216528194718187102988622270512411870225218441064942920281387590183316682786865711771341573793302850975525398190090881516735344251640862301009063847555372791811332421984923128632322707894368409336064490878605147176082127527076617764346315539387076205386607875126972301295994098543476472709204348379944603017506426277198776708668639037470350037433080090931276220391998160567147826717592482364561333274646628491141119588284282508471261951663420501483812734259443067683979577241576791587125907753538728915458835357113683884722295708570149418881290832212122783124212178691606318837759780567076627002215971108038673859463231873572865380020501334401010099629595905050268062172426921516094036534551630304094017381961167408740664408751687123168745871971340975209528230205890783849174388948600091420544689120772950492994408570267518414785599313838822387779441362326648389607367912116062984541546587406143144340055136380457370171184636486038327658197240757554037126757470441923150685623278150732832239405921722476652496091603761503398107919542892766398417480025780477295001699385091916968877582364149792990129204946955750446385260663618197328392568007557599903009073969357805766200024152155433988767741352532446388753451847626527933299257756215787881911052567151561238280864833579696191559961592198145330630516022849612755818767997316632175954953696993054220039310299964465285453573307762971863305165006001092337549526420877866660481119999699873063294411554764043248271378027011451364234171331621747980268852117041676326666853738824959594908834515393727778338657931732031601447570185650232157873961031201665102778198900324815638907261024054246099086093295055824393632649341506640432874747376740037728873725101490102234127036084564431912410420499837948014911698245231209470507973812219426255914031329816941351461114607605677974496868675343775540685786461632012945995228730353055861789247756698567826350966124500920437619357241725869187292759508526189046824033849449535560061638227436837126649378017165987424213465521085910144487771527904618974290137055200682280935452067356872180401856952474826945342854837914858373995303486189311048470603857473009631015562954837873083759102306532794286623883310152176671205599165130844471303621675372992437500949505766684413457272521440084188752494272501872287335703679772544596980230406821976588631323560608032288294042271298078678807985489263291323704721804457311472902869889881218606356650483411389963322605437214151007334620655403497946380127277305973968016401465677594487931777175795885722828955243570693615179691393716055385453924369174467824250509929529254331032824898314529168600555970638513260649178689975392001852556644672140250769077844811916687819828031958275008106250655244030474255015251765591480105124651237917000386183104044656041493922079844212339500838919612784789608439985934129494267069959402980145802028015048986252683861316217730403194730033707260310477880328137570057173356122994797560723139227685881037052404147752548621419730380317187778922667320889191467094142240585632851448988320344188400109041333472028862846292634804292309090302709187492454594875093850392416768756262435386751549304996272176955935987566262603084825655030354360723730347711036557315912501754143575309196602671461654169226615900980291896532542189066330207350522433731155793809097394927577613188686373830768352922015547963513141505147835534338660689418156040590712452737837355265873167381756226250412882486709871909184842782603189510362223412373159266201220069621799499836047425987717088256016617746805059024776287673373056877131286023572191759809648075117105511903933743784795116523004870511786796938073449084259105354513347832355325954103023020019186692021567794190313138514975803098010321123045989655338840072702964349630156055926395157489511259494354093699600916397983660959946207393158981363133444581267506879934088991982652710856896020534090820047693220098650098415810703046533361012269834961875931337377186497396401891500288745787071658298400749134213494183539526326892084997157763216623737230458544699621700343044941342504916984469624742255175758923453747293286878289669431848966826002594225977615411285782591270678899056011144388163328352073148089262965317989243384634825719375134978023443152009852743083067727631508415249489724099342187940152170717663663285755736898162144639437014701784570417235282182822362056972621425142036656315057989052424291992292833120918675313057764335506963122247643951140408333030025379882829939146961747451646848986992453818140295814970106877725007753695397078870529408353280374411507239668883248654185938152105781375649259148694981390841099255704725282301843244144580830196445760903597192478100398646345808125027875075708378917179767419929250478823926290854590688198195478582702324296767132454123444669960970922610811460705937384423630032616868523950150858496569461335170926094431827376785585730017394542106193292037364242202765137250711060876672775587598039742059463694878985313696093748344531561878265158378066322192001434120239132144158878540049686209967301117072338037021637584743548203085674106619180768541938591690525546149341052583441647177784526539438449593864879226266463528769386806804280092511889406972016307984405314386887656882438484759209388419392963684437890179428463435294882057053437827251535816919072274475221034991073652091878322815868330327026912482076702917642641768692209420994590295135904107576752814509869876348089253279329994426059596438059614229436504027193241512620311459391649823484326506226698466968658756689681738538416924259098315650948922006828203526746522595087555691365247884626682397247740749758832470045458565685074326962798848053362680570336680441440165584595298087178984987807692094845812625138541054524566075843714846242365005205126542000741543418482610199027508680426525233606433560253456715796465872457108708324239544935930764825557710748024904647680187081830111688237954566308238941568009483711898094019752742321877375147213711578723207175015624827378032219764385257696193156937529251450022827138098785840084089231843500808763828485792577798455467270702517713651668243582054315372191294414604308510536112661522165890431591433166378716177381722525497323843207838118079061151794903908566427103232564427130350894699216682203889387328418701426098142473414102312394993879640366809594757345252211518818443052385779191245095934660933093488830464452946534466244411783480962600942946271020647303935145135908316243666568636796306388507747613620266091313863787785656890565479801973975734670662581554989165314777988410411378274446261126967806820807961009441726192120150933050573354202096882859559669710763220081496726553111896593741813367542609067595761084398221597460314881346037828406117589155516533679413638474453206297622135303608961451728565451132934351066100075880164490701142909316682326802515062899511696161913441551559637333798682797520210414263935226558943595725248996721798297797704455577753053548147774307080703050446782085701199066900470265345751063583822155281415692837945773967810320158502811102631534539441014743993571174134407352522193345646897334114914205355963415195006590081169673977716093211090172218192302677138770347317016199618595979549743581630461397656967085631871845556314344726670427422978206149715004402330654976772112431087102934304291207214218163049469377483307517729622200894314750778747060677042289654413251586497915817003528422357860972514283406570912729035728070127190203218442364948727474960550780857646142419550184447594945933507081710609296659313926570915895186476695126607073102676101369542957718315131611619428852081637566157242187080882708084499987498023551023753715343933940467685863974604824180055127619628454573055457439224759774091592217423117750199320877870054241479033217798519033825476430591656569976548310469163760678332436087787981642492804767645859552383534678808456473506744202707451152662935724722026721322839981726001247252987681226352796071895473906830129090944601683957393567364755712378967418416415266781495382848319114607130204405904969708242454502981140881245259407330148813933741192601412536777375185194910134975255483828001070031402217222304769718581773759983921789998697869187472661345881876215370359946895254590027699036998039852448292535277625587368291088910175900486494930332130099500183763044786287463913907218258250915538662303266774089168924052488236873169592261699893949994490407632693097298686720082384283008706506800803077043293012073566961881766185392647758405345878680750833024226712545901951130544583296254421152221951917292182626630375856574046930067377548767041716392820812808798708391074654760231249261379881325155464560976929402987557052394852446051308458155012425852540083506527452908675245788768397233958160642401741403166524985071961065303953813785094869050894201519844492583891144994218307945626575213309037643420948553225753452715593962138123142446787740889706781018112605290930182318479595637603643873128130429793956233387327981965221680991656203367144146381132152460211473611035255331552710465254496004162049162048132791378684887111264949461238480023500476277293805122109310381849817720507546487828633210460969939411286379446513744604237612513851132612867255428173252096815377469675757147779713005876102182742208399614917460480235577968287554716424313384133514849956294316191587164147430446660371809426266682641826058612555432232165202147012884268150053599815362102249139771934014434605581349814717907402797380540746746648548369640517752348366721533296158377126302539410399523048207816297624793472171771965760944031519126619594036332614120026971167283316265369674229830442131756260048695343074695646457383494076184286083757287608208714762460030536747610043607524320913468149151979366380000779148642661558030442129464050645800898454201049586279943230464791675656654087963359276937268885291989365434857941148030131537104300194691513591577599015010147584371707292980783065689730761010901197356611931315176844405583493285222784435426379955598403644723512196376453860681809026497494364609541483122879274200209820668986254685080593162043748084034556127781451682692662769337063431419118449621257898547670137315617817900406854909381357081333927114687903496875875420468614163190600391839474338120326366453588280892319797862784736161061768157551420341829348401874426127799243568126369303134412936711813917803591348176137147163792675678046999262702538187377869212859107133287294750430360906120353092644739748128330904342169877648847705995239135845786706694879355938223769520536628616098281115114169836872165366669639774100045523793033241940866986103335116175662469428108720858676799939370126257987479450650041011989666205558399028290614709181419171291707188306794293134754918176174033711559434812832772121174960958408496167505754961265728935772323946202076511622378014774528253187486912706870644621235862305910165615341972405219131498442598276168101196911784568296749183211476811050617307963806145812831385703567831313348971108406822303365537318078293622308618214287975273552728668347801992271357845215269105243904360792074759067927613144981895271808240209333942176925495727038659897258265530076192484653969309448843819015692430319357300354414884220046995449025444020661379101444255551458767349112277232239991326387287100072955294323868026844314923115063642570040399956357428169995951197871888342874432604978075331466871916182331140096478491363217804306414567381156225398805772558926863105604833856848382031389992947926563006136444181099974446597828721583610393964806733637912842784846878598048988007721813091809405504267249808021592085248949021871788409536681325792456696901339876913225263613843772508674418111143814713002551631789082681940565741753956950254620751003676786215803581067251218918850687593353380507858391361090115832553205408831889558571254885947448372997547039053858119709728367006834712460443698783389059812586113836130683179024194713506157900795613084625298864731266811975261337417464086126275073448048568957973014942279826804488347929890528824737145409522987513305973155121242065811554084769232992714043703966868578978687236604980288643029827190753030120897921431560265988336542949902022389439926451210481464805395282836148398781101963093202781148114872556185854217140693598121739048646690691243979468692868889178645988261402852256224192897344141553901867499972788796730162286289630005731697127125401241934029053197562642720352710975625294411119718525844955874760313430865193648046617880176862278581253316332210508249847220386725179390173048494346622743286578153783416334231720300906331651121810750050202952025864660103204378265234018731825936579724903086195698090212397367420102553546056099631172142402900194258301552827119193525958122755707166251592194021726979601223035135248697831571604236768130445733614592971461431416124334343350522586904500196123224304563611624242966689385859668773948729270619455583095254152892893480773565831662047554655933664863475342455885421018092747024673162367892717656211551044518732267254473051689069328248710372930692034546973486427919749097390434213053360983929355633230424746240799277526599104580353783216687707701298700154535627236018305403320186805814829384168670026494832919092101634321011803920081362552740200307183621417885098725975322805989208381542260605745736971136737770241050173094322105886723428666851406864765842153107172300774159767024096886165988476063486698652479221610937274560737146676468878037342465041992292915687191388657276705970191145746125259715795856265856413027981391389065797365123426452695063436950596088792752206554834431273081925962082368864471259195920818742423525609669113164202078701848130193758742997516949721035517061431475981802739466523472690544368519332988104154851484546647736539665188370840570787249973185073191403174109467446308667794552107310682347734470850074665703833689273325385674633442888780071725154193525166235043055395074100381251917445498572725132046222802515415419150502011048852647552172588032660156953151845177754925134354404553893238238754024549195729561603963795760289893227633533546793352866276680263042493400329476905846765848214643148254068421067480961498484628479016645119866639354552239527830740355047981197828691825849121501277791863440810603487954242029707779794923411956095101012929640344819042174685683236429139674833587849295064225309633927018531853138390550047050809855898545766496285035964404304939016810315788495477123613808354836116274117462583250630293628581174233794840448825453591583935999951614614293567313915678659834089266853632638264098786622850281717018116893982351937315287401100667478045742469483182127742962943747587389407432893423636761963410745894334678236498720386735337214836219426107404450628566284816827198968934960317981271822764678323064392417604908097681119892370164902097115606169999690067737599254770969751005297070567403602848137195732072257563798776897351596574097210935533626705676244467783745455221654876284862286346708252325625155725642089696070050522873478254078881566435815617644510997552548190356191035608831459839094327151412255764717094433250282965370308730741812145569772154007976608652802732349958090324499690790140527694967864011860712808262515036367727338499309672077271791627789468181620006094648413645501496526251312030830045006032302171521907177255828830486614944443164712968731932843134904211962975961134021480466486396239051921700626847316208376968848325624476259448041766452447853610147484099428272928562310966276373417049667189050455306976384215618722892604150953749775464182154169715658182647115658555600853273901837442811304363288527274704764777682916891170828752015799098593041296374896494292906035068362667896535091365926156754265628409609814671028911209769412094882293981286180630012128064417185860735400390438591048660847038286890987941663107475540311734967040261808053949889877601378912631592823407001438411334897730795503322427640140042470694995790636073537099242983856028141283052366510514853859283254897329144673204330285025430700252671194594706111762720432657141281410888977941972122277401800985878289489738285073392608585963731354124522292305964149152093204389449163009561835547905971305529860250211453643419116443673886793766199289718047418009321755025882194315764384872335885541418184970872604938337816754832470145188584497147575613302359636141653762729468590435376970944948633377390195761191716807276151740992819212735668035930562828359077138572383073454554373097422832399523046268334404370136639366217161505663144066872040590842244636887002460537590279591261656809142242451310826875734390780038745213227616918443017133840470332077228861798692681335191885518629455011059579400144042626103471728323228238350483466822414568148337827586022522638093964707052931256406387536571151440444156784201330301162787445340759647264092742810191172679311975891329432061772709555827921463026349508349353972601745568863363912875214975542204243103712676706701404827697058825258643797416290733892906662683062873654559203696732520609536980638522346066881412535362925354136082914906801322164791293946757654348315063669280375349770632668407010882386390471349289954994535890206840663957538678263568680992726404443057824767058815265582527905039751481843924171928860917170047623496237186683256969071370943719166176119915290880136335214042349086071903804708592074409851668551570045545301537094310218969526164314480180550959350411016579347509518872618084798281945987968433558191440671821496329350249497409948340380354942535224935980206459480054096463895464740907194894549879249951003053764786603908930863322603331505634336580450911817392778912806335747865527388070379469720970954921527436480021669756611991249202824970095135630113566282413881060787864619390688437211254909605636956110810403729357904374376909031285882639358600671462985874071626990581930976155163591686264925925744589490474147637676144920152884892192689049677990499735055407185255216518408112860586851801863814491560967251016777592203889745846637213039108467413550468352744354976433079633726753602460600858531484644422527661444139295645212828914154877707119957037266407784769090925730572964102201434871901688165477608404918515588560981926290347913269290845989588014310288729291037109595370474661145518404005789076599099563819182471330712674724986808743208798962756154243597403286162553504484407666954780819227514122578515010460132364071902128046446670420896447289277403292168914327527591160942018943440816904818900449746566235339033481458206838097231301467250836382323641610410432436659855858077741811113521424113007901060954702905423914050166759501028836041327674880525873802586997634720622193253117692193925028039438376008690236572338685971579781613437267991083038815440233273186341197017977160132132080875570831910905336134185911323321988214503581624604021812856782136518518515430806538672199225723583406079918586356678150144205677260437711750211545201024039647048897807418539056334772406536457374950715690151078595329728034222108005278286266062431505839791499793904771972932911628222639696498585003590083644453986483318234447479341243012684256400573705263030573018255059600659188711961533207561064933800536394686334726104226289111812643234665018756427774015069622536339257493506574322958161934619027383828249723405334068457117859382630516189753052534046991035427458944651504621377760404124198278269634217190088679129729024591629196254068450076587577788607850404830621323442769884629973779523771886316440942585165116725841827632828369019490586424584922030814077260439893352062443213623827303376571486271504992774152478609416163619490604445446280893448556074897167271066825230024159830085399126828243721869256005080947848092856507247662108334214118814953325048540069564296996446127191125392311602144890175996693620221317839405804065442829479054296070123494934180418851600602429332466821022336380542679198733903138802438595226875174397273198680864953888674772930790868034917136097403572877357498245315071231393643751465104271522542931721265386242171237938499221125200237893122455590412821491529688391372674511103887457259142341440561364794817682595066949167111293194587878663858886814057885374465865487152278589927881933577454062090604230811788654324257356327143315520498268960940781534689428934406108729610161840610365000551697744830461763082521715574160157260482839856931952353269946604607964332179131901196369020511106309039453434536164065867604991428550112648044632242578645813906154180651680335128043831707412084672133339805054226534484143628951962670938032700417745053507757763100516118074406575014476088451920512577430185019157571658789165914254911430164353427214508261776259761801319603755487248062412838979861923527882476626471559367264792163633375122971649897366616585878405981620371311538120744590628613993593626141247751031402829421095949444061343038060695426787218267810880646618496745900859010250483646524362399156032430850266361488321843616870975940599623536525521484162614930372837532260447612510239489257446886101514789652214296321689804818994201167778382419180301494771448079405868457979051263838452745471590279670493811753703892064337645245676275792222737403754170099112981331673945025659448223257548719295328495123795016673209267104298910648970469823394652095512472443288836391013308223775551201166290445384010548837130069510260040765960066988311989513525777603013110063182297695757078324240579600214385886064346184999420927589479765463896743198152677716328351882018080379895473515221725916005138578585037430405584637976898846529990305312013583874294776473082592382040905437661527579486216681365662506856280174951106094261802006940555797214463619759826404754134856648151084634339662196779671141052538598529880834132000932472000421364634417337722905995070917439731020654194417158821127836758377851156218901949145707116562174329832934405460900701707763012625385987581408607778572461799887424878938981701456829471091322502427183458347813649727771014599793316771138081172245072341288595875747787124865607685855886036468630720435609826554223829465226517078642088318956534427203961042909207469068627109023841619256643365204528241429805010964522352913344476912651357815976127279805065785070230922052790402199736257732408726823741359715997240573774146543483538180385451091682675268889926358864025213468774740711228346241949905991221226071005229191290196587928962505389371369431153574399780482986228430929677701426168841126548440745978947803690786995462587507847758893770202485673182284485854121099567492232406350759675651254057380460828720582171561153610531830331160688129894277755629567263729935713076587649881672983644033781797251489483136384822064473154703798734505595116782892632413772550126690064864650748423488129891523829078967591121524270833602341583201459684657333638724538555212220488383431938446552242989900699244272698386952636432463727544251350059399443175410834742964929446151030279555147044153563693036555562056107356963491068743236249759686420477003527583002440536498931411924287472884330517464104770438382135175835991420690197993046961677228640961402444203662070261932929530595837477916140247728056339495690732072592602932525337518560346502409673741192770379764018300168776392767964192438163640307378858072177729555295038674287008763718191674281462522814314550101327939676429658893034081126761994808956343142405610362203124026456507039339632449614065182647940351062058071674548985176847000396419511512914984138035616653279520470243868209560747054089527380312905384320158085460175170670076672141841434869617673351179023881627955517122395289040594773551240280296305942110275126007105473371070444518366627042078339392648914062225092506484761888863803265562246442012847902930505842780123966971403219524305488395287495268831190510397638042966093993557907080726845465677157895835467549871725114930243293319870094509355402551416054504620515518403487149418013335089314520085386262186997524947671187767387181212402526853180990643700280050726440027840456084193216993038697309498597162729390678443284556118631749497908607441941577713012993423599576658816623055647358711056648845102821287417486877350208758651387676199094937395218692240334924775560466000447114184581619870343287322738778792972115986518896497915426817123322574612433312557483897936093204548079588897905578905516536041222755797218999232326362874578553140538447105708589342515885467198119094746948223740506155184456459183511166527449995959302733207958653577569660641943183938794605208401417382400853540033738573034245188762313274796957627667903707779601727970003426859534064476002661817285570408586208049744915260793411991414129515347731367596541791352491796021245632295181974147280621274888109413739848371698686500921542999611854598796981359301751643194422597582429871020353346831176099977586561333041594518466374697085965373747883685160438488213584071511851295592589227671375158311590744065733940633591821606963688807996155109611623738341423149819352456267787836167832220510542583659548603935937911900213032666820781095704165105187258636354243635976336203934788838321356703157797410036213133131432159446367358580453172250320795855663787122415259043497185646308781808210124124016063273789252168499100406818206043613467418296614810447440213147681736645771895497997533280363786264617073083197456654066989387122232076066639488321613329604413065376465053873449689825134014531216248283275517134916737504570924056512888775993107532121217467644737548939725946101474204487459154929835204894382120071429641895963277034814050035718673937093191530950431010200748871821718531058798801341677468935381387484796421149680441253082863893181681269194739612799918742236423794832361125630329390274182763823044344436653675874938461781264280203793377105782469034437510379873385574946900183916428880021236016044148870103515999719078163386484902212858270485553945067492055162422395713032094364342750570017852848174627636162670211450086774003055059829587516260805084339159086634397618575303332960420480080135669351197452485962039457848132089767332720147430501832621735156312662880809527656593841229196691562274065355835824956420245670193986313862421252668754255324247114125571578859243046479202981364647615463156784944634268306326611849158431676135322678687228238035848855652768008667629198040237971525700875746927798637930361287935523784119260039949061571996400282021466687536365970734457443205827315728381949148614299463440413727300328886688070500794431328009563055316582823536181636185387357734442495107366223710303866222484220199455753047083199223882410164759267242764060600543022593281207413890710022439991654953211472919060485874672265761285423029797827778996475351563897863607451564563314656253815073366047207685390580716353835828208866161480353811601426356546464016283078608271041633611300657219162066096048096056825410191905086924237916056915299575240731316671482839840858961865288948934635124025941910013953580264273997513911641128910312614255588252857344523060177977235698961711610620437593323821181491483908870990909918362489216825882858286271172544417054474751717885452556925459531780775962700022447187312719376326547867781246791890959854998797922679844851791961282518639015783313467930547427741148443490788144617335362264689026557856511271431278785892139082537566049242994339217262954184805027255257760373714748416382628937069693669550121639732087609829664515155074118613929216747987821152608172983482967559000766788215614987386508077539340621252942014306923526781708440809734395221707032782082021088572177758679243361803527687408110481186100762216034008983786247607709838832963585497126302221485529622201527779254257122542002445994211539234178883399117182400420023313893665326726718514916104718563554246683638427634688869144589873544330028241264281633920447717836774354031267772546298080256544869908716131055412402563589329154335254895039925801334749424743601849004266609351394412943865084744745118202958355683591577145046568921595309705399618358371404546283757909614150294614571592100032731593616738588367162511553483573443257831913448936602323455129359528113963610902805140067870218255721828104026528984063940785896101690519246815726160693946239773764120879947231482633427465144341593314699240998233123887651817120279915283074574765592854303268977747752356410210215531119659914228410565489627753517610056755503553964178753188294194687960982887968753759050741643540250991863489711695110744451093322376618617081320124106454581106939972291774949953223202470727123407485864386541226178199173983363517790417196808388245133788411474614397672121886952930891864064267900982050159529988790288316289540320535991149427676546490932669862235474052050349782212980556663302236975632642138384650941714648594884177356570297962375292056171838530230266656928108115929511997545308616344066712997978260288776684247918471337588494543320761963080291497832330727913386324397423516825329070654592136498554027032259676616702301817257879023368124037568365697153023190995680808777773331911688172308420935265785709114019456686072151027128529737626196937826047630094796135783643987290468254322546242138643943608176975875314347176928464987221035482205076008133191078767529015227508795693978844465471100895013081883958042923718869597610351388655667900247549047958851900128682628051996778217492607328520897024849724853553664843720302616243494041829348837823364363531025929454542761833775234762453697614267758730720043339694788045249494464536129881945469335018917167037375404221590451642832554519861280983248764373331831633865319481244695629229686083975927262475185318548930652513039035689259049707430367013157138089552808766472444770201002697032812500195189721784787364201254167264214321005912031127543748656377182037522842341695656111280801091222465195557163178626993409821707052433482772644299893977344463581520824089016470257334976941443881617251751594154250387969898975367970893788963847127752456563129082613403849935171803366474117184163230612772896329919774133777920125940159795183084029832853076277612597571789377260426513596881846981646396482289226177694725721053943632496027373039798591047646671553635264510951236493222341154335336111821128680527066604795975249949535239945020030174142324749682791887108908930737089635810977123147824868221858289836808889282935394088290198668144103569454717120006195710024452549981676673003276823884683871417730168622762805782737115257562629776674177864505355231232845854071709266637268728160078344194623513991132897279193738200213606053910071071338568125393228349064202883981382729921178009958891801343553794649230888211535259607308515839149882530666601996881475215618540777682745706205284294242017789850222339202345850281664649593793648396021181730937089955488295733274429247429986061004578417697743055076060820178907625629230385447722178602324593733983365011658100822595223375314800535425681876281598001507158948081304881079728951948858495888338330385436803949647668552369648672417216222787190556672207922371347573897548536310333474961760512850917170646350940634367170752034943742031912520533554589630129514497379514843143088441295878938983103747211852138762891153077467893252088755796421439583797255335917361403456355574777256657771508455335939980146420682055803791197764453221698501400232521608265795997553729959847074670421712232536913335746621947683362965524546835832515623488611141714584495783592542680272349981861862915002657461685348075662968829526537979568161358673545637932241885089739230202857159069228903578631026370905468857613159330504966421758129161844873037124983820128311245637068532730955201547818029435421915007148885438714249377344704107550575520528209147713843033291526799004533360650184022493376757251337134909763021023986140020279595675810654436875313095644018564962940225384384940739705024330184604068413256857475641962668764941146167369747568036482678505479785154308670862560361826332558666330148302896205391574844682026361048304403134955138172902663318101173179473191292724918335781034222499118011042401044427285173946242240093895536265218978909638366929224280489464732536849095373095636559803408354826434774853417098850717257152137318530287779161001438619029476956804065622823178131565403743765605173197599083543184499955563753897991848317448341928675932745365712787746364126242778787924429202034544988520873511747235790615045405866511301640128515223783050117447115909146369045742762381968805618782074526493486270874115798052416247948474224172368594823106829503890203937800483172416726292882475869349049015996484485406243693903694410589888419059048382956464011201028431954951892653323332080634265649225314729834558231681018315096678756490766416164085859501371819503761720432367875880661954797477371094963766262133310236825972539366635858717938796401771376033698306894949728300756635564072912492550603597404056470252330692634190272156132171882161042015711312205207385190112955806504758449993370605597371665986005842688670827001434930942879679441923386790731670022666382074330009617590273335728248067950166649422976273543249702451686623080924383516610906777596379870938647541598219350545325287939460525207145423926047053353411779663082604245690602997526503928262681416478519596842283976791780111405898436455436448937957275586743894573679893449362502928896594603006982733497208229269852887935103215658676346348909447333861153465567485252869428349770076886556200825911927499495332904903342354933517237952065292434692293779976352355758488052481119852008637160687131594957265888808555347539939027684284703213732749667987874308107752399142898160463308267356908287226806803629768733043361280581438732563341044556980262337378946907841272933089309491284788129656386072504517198184662712600780298212727363085329234612541489148589540045505693989026617045880598041086132586702118726383718809360364149795533454729238148685755043786100555583517039773047666562584648688839036750507637147229673273084935263031873069457839300522230042630282408017124425336635501210303226592620079927919965090509657660611810729594505932850211384577573303528999271965876572953744795579973697591583329938794847361648553523647614646198354894971548355335387691894367892900524731155189972571349351166828131088796338898820455296265616069180384181213300958614429274006278465277174635821355664018373916020005073181715229147626927414525937220599806589968805334499812939173521293377373947932948517033685275262351343429818176203833372332105339755460347916292597413473029609220106488626334147147154577808574586981977319688198504279828243971973563292918254322376124562653361529497936381864471255938409661270392177215038860223380169036593136133956885408672619320661647703282175907309297331177654442087070213041229380796040503000165930479441886360573315164684549596103103871919038960918969299340493204153130860241080213188526612837768498927118925448599188269968614824962411911129187434550712138149882335809330810693665549274086511573543771610661645664326983898846445100900788104700808276836713665405043417026533552036403339094069472427355849382720210854144307266716369323180991201718682771007171865203910012225079286325184794155412817121258404820170402491743416730108860561210639059262552315233885192087337560259661785783542547020612910088037406268400699033727721066647927938449736097344035212664671162338931305560391512683405832350016521652010002485202779166112490133899542269909226611523548721264202695223544908937764416533475910176211530210655367894823015823119632858339342193511808924809536712438018218674367468034686201668058813127587547217005922968214208788887141991678559748982089233016949533612785064445509795807803108541712540221527047680048911175552234533440898559597575467244244788136074128694589832504429641871192604633780894497615344935582018526971450926871200302181466962755804547655251079897515890121174175998550157091405080536765348648903428215638222118548620415458093675332485899045175839567274131036311819450964028372692037277664811207171530566495747948534763651547442563434355159075824310813131866908559202965440221499259118923830977739654898156363154496425194496377403035289846544697997788132446728049403519610323552347073788540471621245462011814918310080366274983167001071968224797031500204222856120085747736395501359670886866273716485273878242009004534515670558496198762802259965850800571890141925384363910454275995457318156453891124665341499783903811013807450622159893642495277437267107971931819027525687594279744893918430498993954083510561153732189007968261260815683376000761692502960474202969252626748244864044937366358632261389126048752165677567864868756679407886057591421685057893565242874046918887559072192230646436123422804793269929962503564723541355415553661066206144721162644442548435392453901451443467528291186397020699751721142253509724740809700833164357130578824169940396779719095513082388513437472676399004573441223547713085426276368495946069782039184712437571317526600779383730563372654600216337745778288585267414883248388328277357992164252449544911703437644000090897485875029029243498803672361810011630685613366382425141840160190762233961561226009109093156316917665885670873350633376042737566743315717182824400078907345306202876100385666793485362813492602760681144737917107361878245942263005322295271002960807762596764217119876610324266136472042261175542732634610790321916997042470611169001565012052888050916322871391340385537775034270156449583538937411046869708861994495209165267691096068382526009072247271057370125721266614933448065117194064451237467494755437191985927251225847978485891546838309359280901262692838608664233266633620075039713749893548363472841555761719354992225228045594500664383078908575301759727177676939394395381913749795863426235865988388823822032490420727964166251285544725470248799091418062538453060172550937299912382073301274387493260756585638531422257174686602560574649823760478788916394595092110336139864604765654320854988693958764406616793196450574703712230251956738199158957221837858156944611570311220971119087682851173645900383312447187763047612123499587824286773242025220333076451442534285237797670975706095079735845568222842532289140686287177065895074765613770257193598520521993943104548001404207979145319708138024312103148579427887034602654853231752291481732838897901602863565794373974005531870427208078936681780171774924933837208226023648367807775244295541562275810568397432724034912884944032447841453440268027289092322811952779021670044843455807378066863959498316580375944375573008730921733721678560246110847013103767049313358545132577934151314798001180020368926535094620471672905293138167054561412748186931066920412684727190457184062958609091894163191977583158043429171286554157514300813848606555787687664121041800170083541542198748356477015191532844470572855952046771872421004519041146197550164649947989646792694126967144411604459709670354350964579556813792626317203012079995334238719948623569624138802799355513482053534755847405714688172636826959312263564193104115233962174535884423850627616715068079321338759263303367162237104055469773282168262654121014546740513178760731006733130129561705482134027627982795355508227548994968411277342768176804437383724943556869603723069789472176414716461519572471251926367428333417730937840828031679064165663833829693119996134386657804232996538339523286476429085800381300569633820308213425085607139186978641105679529477226135803991076054780455203851836636267655826189788384581721557384762247983856093049816845941683662690936678595373602487945688453702899759275713378025979274298910851082862944066000293643466281991740741684532975932223866714881085461091299181194599637607987225277418936599444696289180483696816127692145035676886562397918527944774113437843721611292866071950862015471457095177741049653927476334385077991893271832129674445664177902293893232787522020197547926982561803426949992776227979192529268460828087785821731423620598869960090810335210058883324299016857770627930935781314795159258870989470186141463808217421918056471175374806525209823603161896523130790797151076863653027789572990191606702519100617976213729021799031293119120955469318582029562800319591903734946819353632801329986613330849691075530941813877644520562883017267844713183913215336306199235380724848636546386781918534200268443339744158376559069420306665952619877357237041137100716916018770836677185205210479705123109505720710325341457621368410350649793089952013670858978664390400755922417035761165218358877981053506910382724875948456885882734591690718003882309571465675711579731308161895334824975003227842248327450504853089277812244522112085616929312506269654984486512607451906753223853141894524217209201326787169117232945747186268356107055220564838589511911500473342535755951994700333051687887378882990595298933892138650707044963198231840266030262159640218931784829906183864901873949952628872146064031815392227556549700819104824980249318280963609224218539464973613948076712778409494697283275461556327166149328315173041201246804200028531567351831025052775897173247177202120804386587722204043601612845398675587335624258760046015611527277483592793648841688870770066768893207714626503246639451867877117373840368546792341823209550908032008501780745799896620766604011145399270546287916582904473090305868540798033332262025609490737828134276024567586334134078016859864096038953037972782644098755148667731870738502671673708208390783211804152924166570170958159210892268524229448903734768443558228758678277065123657376004343665906880319986964776162215803527749611306252561778312607775922309442068238753873488872707202878839537358484839073336784087062207105045830367452283401896688321458212389053349169900932149886197869222118970354532314160496638314916780484528886368729396041918493276979823630862069726715055568540620771641660881686934931289291871672479734904379060881992998799042211625214980118700382845454827742514551567086689376270226205989032367873534697877632287165128953471117641274444122053149929426688803246397029603844559006622243228931284232676663921098106734768391883513871717810443307216306979058674510604844601242563826082561632387437341108150513515935081195855756741744215383202221216546517241575041863718711737060927339496824467101819629643131900595990979383371717755079483558917349584539025241096305269626578770253550275652533820444903943794982765502830066866606874095352781435707933469092984127752396258169073337799003936160783298516850382207579974858219662667855612793315107990566204068846467049635516627646092313212333602767974757868100974143422078825128254925377704729017059113908057061114358394984984990166239568251622363477357166959803789667434517177954389226430443450232524065408648378723749569287721236834300860344171938580763313936294686214136934087664067065786067010523504479320444425933731643758615595800188470899585871133316655607944425351960715613186276857361907391865489398805684971332493380983678115425554022590728485336964616030044260868271854446836915152806563230979103449074316459081431459159265352412785496600989960137432676803462388054905268887735841696813578593321489440799521284129404815529743594151587425508821248535349817887732442133808536718843317578983332740120708429042488501517918764171141695536274718721825875620475737844885989147371022407906054102113961255441406247266707409903917662178275032543736162057711749091297797689569548571801593759386578121958901836068535094263135498984535329352934950089937648500255661379054562215422354034679887697323495780382550218887628950125250260021162420077124235857360917789163062640397947438863022031049741983029545682384267236791399017581100267204562808100105318684825535514343543401400424939017282045869301056571810643217737594365296596294525131407392279875234336190518964754101523179907236211449582703733635958855083573270275942757560867302692108261198200140106138934241260287149057185503582660858087552419988554734445496698286965501410592586282637507750014134480616680133646154816606258630577958858544314915494155616871652305037981695922111506015636785082925261255758142078121437786733717564421959283672792310442598094070752665300044487877258205134714825129585653224354746013196019923482904355257436779043504597565269811258053586881610517375117616387087992457544803167844658296376852493681725776141585974248385885110776744990774535629643135102772475062627396965687567239354933191793670772403133840940475962479245704185221670576204209202301356757463180185515962456448104861048273928711701436356669532510547294674689642302523776185667462687662466398936933369841982555360489255843845649688737161654270467963994986759569363710132627686291625748981391242702500978105164895483221061583881002035034326839680493367162512113300137855262317851447037027135048559290018349163021900948823487704870808332727643599313717136733460087198057714563210570711701165408032977942227385159711271641477590368734317539232680065388612154333422862759378715436210803048598444380713679729952267246507802850608068612283214809469322331901627624039865879655673639991395332254433084009079227334331339160094426297833994685614291369595855025595336991289240913233304947777057098779104988254431998446504654437183308368077066492454502300381627016669576178864484703887938401689316353962152275743398130716243677029916406507467446605569945004727143558240965131897333745893220569738352593468007123213687213361400992525029120644469088931419121918589316029201435546057980501600719127860209225114244546452001366238545410981298935124260676722882251621269114255428620162589131433688365438868468541499714686345030416087798705949863459450648083222050433635205613486547179867064392865802935428849464414198343638037406921033658681632879486661807230048450663600814569695566139316435106778152819398534811429886343111868824120812849436110422051853490690687254621199100528487235310391071670852034637368885424116011758728100437236355136330257396418236708050195914596332682350878801995884538574169669635030349824679440031665909085487192756919027924714399729507757034851131281961428061698322370038539185873814474577081755941426740848430388721319638612433114839261010263751907716265589246891675210219184315331439705059074282383787611547064695483172164135129689387697625575014144951076925616987638687116428473776262586684610799921564299279842796729060874041765314106749709410144416274720946654083787682782745241229371003241159711113171909067115413115965056385457632368170329745961321657310270850345100010431948941439232671063146269479653742890582279668778744184295087142444061946471741689095633420981253028478900279216000116080762798132043384927480074843500934692331270885211899343457658040513289398056462966558951844210094915767615038814081661878559463845407665072611728875609755789299902477192648556299989596220826360942780446022675987412108624563404406324617332159366066339048706271227735707228981146037357172836150771196544917619962395993076180570798928022879345922649088823037858781379200667152712020074503790946385164837213063871507125580575434072395429933370365548029787966604247834486314242902076321494314777449247994142876740049962809608909020604081636156211151606804408411090319964952557762858292880549694234439528208536280186436981411605144001880077748093813072459737267596824250692177079262854565164376412862409899946908130127053025472768030200743238661682564923980105238327997214654347724194687893525491892844085686888944917756172521574942706433680697876883749872216883401343055189654543326107104346637357604565127894131487669672840516757514605459129283017138123092822590291396384576220386160047224839532427693209896409564600227531813573968415755086700973936515429243901386852843072537149308115568343812936350563009028113384223576366318140181512038806486047397346000205106744025388446788371471989891301569408757794769300928533579094180211642893036147015126103355309599084599075648187603386711119059944706422337417143228627032784801334670490685167556844378637303066902191071924749651662803238009957981672035378703040291743915335948274233594670519875814806237355018452390988075322690197273938973475782292872113280954172480417701222846463983725872323723819507338409842751303387262293354382603883781045453145118112003489393583303480923851733587216327877486676943489818846963408831003800340864298762334620747069422909147689813888723790305259734594163255742526087437390479245693249694985523668188328418080848310650656499100609449183711834092737192256592163575977911597154835390510641577151906487594168331168427002049955763131518221540375629492097507647543585950918777381546382542336523593042207723375538363135210370869071481362377620087921407824959792741397821889493831311112074191733190836634217442625139863876425895932265925364839658618176315270084258476023788066428703377099403649177721842800964990059000994490182897778746244655421372965272155945080891426828430806162853622793646471695194521087788991818284571454934256225533689623036459064256532933927339948388022250206253330768954787107985678083780689362618346107311545449684922630333354135656619251107189939803610437329338069723329903248828103574713287627680690654139250281094491195231024938744309545906076568922154498338276926107898883156436289086835824206510869215547208490036457637776358894958840908319946883049446703671090436560483198805373939151720912171984054358164882714439040856156140211485311974579170214328129507698059902207413531587560321462717734005793047993460655997124768252624276036735004667232476419456291078273027968624638188977007951739813192452163172461291791036177585209237005674761697375105728676487711595014935937578041977388069005078989243878195021091185129245623056310522014184201330653723370187981236239705241125004187105701055616766857809858592798074227512931911749678279783885610855570802800132859417133926662493106481513353190732101379766732579803433536767986418059541821026680563313453457088790597809857263574003309628200783533776325381738663680913566292706803860994262586285402224430987099000692255029491666051074990020352796596226789690645989431580848597162320971263004761082902792846038806182863080413723275922576859489556585799564328943755063142030801568488549853960574182671679542737857133600451913702932677720322451533100964535888935646103761456501015911042903990963068072367625732443848690957489163045629809562551903179975129925341536846145954934887168650794618736256674371261140603575607363023470304387633455989216373996449120798456539228750138487253770609520575517745111067660510909693228445978837427536898372982332520015474370945155057730826541889336940232577655538676777544666584341815914167725725733193874481655106370110978368393464800904752103311350358323245632763819193117814954064035996093674016747832320430521943211367079588445431900256076019058164271465594776341436102371295460742984620345082532984825801595262441186161272637209179833108295347940731797559115229419389355299283072001398543131465607953909899650733542098683910441942918466069343107945820853777960353530541109772082781350230207772209603928696476986760506982978563995780454783575675203586083519755309983436279538299211307436595365998728670338808040997334210362372328889261691879357072454944781085938568777434468812562951872433727309560772041202862556596345069000727381053305709547036773889751055929291232109796381925737848176802519824017210348329315939848215250705826100664681773257175149225432436181765748479502313705247280807047368099197331430127696043480002909703509961773175820159249778789191239253183430527948881248107036237728320262662115639011255986027888585285082371700825331277273514176670151574699509947540235315454209296949299440037579235886685409636942673170970758652648227096808869814543196130319188927715949531890829867688825276373144772886685323746253770925230037013921564794078948148420818834496116107591446219407914776504747238921557560612179269581697812599035230581826806271583832264666177802556055441673189893921466865086984519335380578298167228101454233329203899336943193607129379195880435926979349469778289416489160682057446023056832386010112570352307907820136192792894905221180051833139046064894513863928923537417702648623499735310958696340391164110247962881968105005338378638916026749551808568050231226146769529678149465588827165084678983844068669361126367170733492741375937811567291174311801432072100565327495436765144242761824623090970613776075205405087190028583834894355595445014102980369898703923852643332980863271849890401725078339781290237024189192860779332544405576567446429852415412704844687263131589440368289860167085529537939492097912898625739854122135993476300640438941737230288816739749271539289608547185101019450466963233845029066841377176961042541861662840651670427793953518476575529758607169278588156381813551314543276664059882454293892135916211918918656872885225860696075410710952702092537124704832585665219628636217307312690866150873874451466806931463955516133759694835060573061044433878810341981728563957562434628909010786277581683834251420032614266493431112739593209528923542206418951327322065436243839333101579838738100122799287498885649212884517240583520272997685737132322020639161524640963506462696331480246345653014965815052317196997248588352318596298131633354329197415238915980808172160866280048539398461385214881682626634340913958590844874282681409831768688795865598256056080142866993370185106739138678342064626679074165918561527293270778760933566409511432512044964837191758954121347517412983686733267794917900803611365321788701221195007743917019859872998029930396786226940127988879472141564592351563391839757717959814903974138124193448475307073961394252819853900125244387037827159934530577514734390777285427487333991583366985422358426573926532971519264705003084805674200620352664116696523603567047103364932967976278296942680730775968672715338270505721515187689564086684729537093940954852452273332372501724916576510495022990454052791643104480688946838836988640222138799457020141847847289700961061487975191453448402267460917451072717660006964609181747907134419366270501129586135569185978720349302381999492917921088878044525465366901205838796283703421280837400764569309980421193445306423809591441877068998379978801662962245804265792028498437139427909077105693771090559824896426120600951697072604422138048219481416516138151935332659985602936321787009675313819933823336718803688647282234960178303177397878569849500908982264187257634165987424278959018109936854836277137375695209175607101842515205222395784293991692040661410633677279867588000142120016039937942873436783978333178882110816734901344809074343708820712841682451962152600024849965121528927924463888245709579632344107544367868246695115353742045941246676574672821513402654597177684731569524992269985384492120529684488984540562500413241427827633177409941524871710458190448531349290298609520274286087646044868225732242121395098381970225595382824554439140288488575320772853001916895026472983462011476719863333795496783825180842974041161482570271449894467229881486932895342942866468589198200089811571420030887455276972916550957324713187709777879796243354108813378418826967111847822626178321528283460358031514776119124843554333532829297877182226406487967116583033196328759069409092014624645980747521722933407528137019676809789872078269927943493076040337324016321936960137834091054196727888886093544338225263337771924154911782543038074769841812856933565427329557156325542049142889146644670747222918542323967475093834613528470742033160910566230053495805196109862418350665591713705845751718280008353369124744136776051096597860430162957289794820665204293744958453126713567481271639606951984912313326165244399792997103901918135047435337664809793574940322601234622580864700793481006886938770009288761998706684625952194130047243994721617009825670008943018683051841700203589803448941268071114347426261288976359461778197002602282048608651635066377023376399403659577361670946012395863408553514195407454197838879579694914105111476713775755046661313240831792674255917544640467350420078001368688787714162969374444179683678599710479655629086030075792016959967468561206479794938598728220494392920610341151023003758206614140325398769674513600017123680086715837611812486025628759488835922582986131570459453704471056895247368610925583538285036741430478420867504855772113079435476066474252830033012472728028399650958875763126123111865529297457861208341707373363762128171697401802915909780091504644719405674829484053131838223530209971765282247458791535162827797815364286727396732045644633231416081497789700748722168643234176265099821579572279486377476036487533159481570166968703382536039189243952646138836954378832855754528337725398830292657117130767397522413048213618963862074702323873099082194016556259046411795965525662446121354555789408055450008399474112248765819781636990132742369634745152050155963524097049135752659101625199755449195744326222212681461378006488508443170908271581921247546643259129349271426931575107257316191944806751863635579326286525104920573255906084911622069645725649403200339095495819833524944841564109683441650433894267185962641697221060593538456609968256408979056249324423542411346239630080463753612278091940723146787814060754791147502404889859399944508149100364368068092337881896620938949192903687910141718511184042407783089395672900543249554907359973332953834701141300896764528076586765634914317858289122954268618836708045514778880887759342328191121589662900210697846156573795876644806277883523698708101873054886067006993996556994335916036013507546147778887432166727360930360492886211999374373436611790333576445683678803853273118707922089135260663981432437049509062406641560160750840620073405702638481217593746926690661100834163617004497854272532111801150839256711921486245980768901563682203121513086951837514880440621223293396666360129765981127334496614137717589551382094168219711068154805752208398019211525263499808545046801530298261207579358588039541022231474531358226794162923643602808796484151344062140262621177296840138018154512588410047213664507969033633799850203646666935055765249674044692706502253630829906679804086560480761208321649347416704770644216105202936191807850367138454505003176572365139422473268523446660494087472489211559906975852334295913229528840273827128780877706013495519929139037326341544071444352073429941978633620201510109004309949019858283453096420677664930782197103634881383235952934462740682163819753833068989646424248109999411983646650857381490583902605389063627983909690737051012906554004803533028933056465431793639015335212458338237463469325418392525331710913518600740196045122845331463702000220792855132802436274646805036887270975384767981873773263845259551899261510134016042214350091771986149188166924657893185243743517144841085931581280588928729872777955370027436579300767828903591480818575974172909050633124912288514616470835637432368069199304457340875667247576718007303957044758629144119330446022795460885843559257256584516221825496327389581599551593525344651179574678482502684569033865462737293864385715364940616233786175826710720127744587493233906361478616252356032653974396706884375534853676655952191025876279463982473892351990082306238714762575629788213242711882321415325346362983727188975762084995967691853775113261390911774030043876860310643231894184801444512597272501944002176395095537564902361287014306637914134671577842128482976074991845564780900840015000394647127406423945782156721243900788358094225501279861063767216050216369900307642894645941204033923915625059183713747343334770350611351736526486294722141721093510312196812793678960201516573905035428041940416089272554279756541769922631753413668072985353401721501200067086943016405665965972517561374802994776877271165020597445508871680745156430969425808647287519079034958074339325138146240556508299795511876823792705550023637785532609075716947028304952234409941215741451708805056137080686058275933779775149364905291325518644712620286619969604285821901587874470707357287828031244976801587983413301630995894756875189605740987528889336233372839632051859171290978323476403330573226122003773452727184166422482177889348226986499872031280723274362122841841068300452810324444950741174793629267232819279668463364751845248057409901583415608284329443324930596644978476807548547867337655757021483594184391583230987288208082201179809622176964325637971603893475059827641346812585014229758416673561205658528743948244818207315117226844935084206241390535147755127568460251714857543336914729118272500743893726492304569308995645624724417691219996796567131958115973318022846491681012491757226739152922460449325756810467348386945347768174427946477684951838857551575397077105019152025315017175442592336757180946851962974950567055684210847750792665191353117483682864901338755391032400182901964361326070199374230997252657905827007108066946923577725250879913976144475791332066396593333112018507214034162738395255352353440042588696930920042980909933575423249313219184541448873347245719037783477450003185853523350390739560411994373849214298558463245772420101467650543501841675188567636835732229221072502199250174405292236275136913571715007955775142411173587694194346497238972058319864832780278036384198020888128630903382179602318482567624980757911997214124187544963348965242440952994636422619019587098673423479947268338603707168056327563018088959077665324015556689614164120831104011569162059177826586431778432754451598062911289471657289635865214576940619062449244938355998007959429886779171476235400533982245564068244851188934117105956193639962887606401183891465885427332255910684611222197587417959267762092322962218124413529557349440309154131571499578975061217766334045500661521765965146365476999274181341927081688056063325445957697379080166419753856877741158253733877196047769366518378208767483856345502703929991542626810436923534418710827408803447213403699347845828763001231103803284827917219903512584684720498529779741032770394255804087446278607972368219881197476993422504004241942002758813501041242612688110978836908723341149366674817542870386191996501928401722589873711180040332347173297576830177011863756917622054080587135002008319464299706428387435729464317274141757756246979102987998516890311451140576692092395657989963916939264540644923402692061766468860138802838991033281974975691391282518578727805584327737599834221461280019078558749755315049793861271828156629589992448899912141233072023578966939132053515998935040134044068235897585957185263088380647817233095094227009787629346356945958733487657289914282056158239932771573700345452235858503650989764892168201988019020580553898069575832627633266397413616819694618700498452224378891890443286853610514481652153017366982785451708782329307629428820047319345263864867753508388250560719631781189584979354140600804914405280282812724271017058947552893369387411774271219967936984308458790869809142261721183262832336350846813219323187099803563868750140003908535953244705559039502230901270988383686207118738322825023545145521735048688862672782977951689689270155266485548852364577405898695180285520177384231781653887401068263121379453182762802018934859433498241736727900166014107089140594879850281471571876072547587166710743671557481894089128661300576393072438518003419533717030667506103433182966558610228961014217055738332328518002676849945051606050375019180636718802954179099390932489821831199453203245909774204465416783841456732420288320426846834035196002120246763173159873481880333575817131843926667407791476368683772379807213900197561521413779953193529784706501233980917661761112052256807023029830473987338416538569018007310661749082683733349886946662877529722527260375714528015297163740499042454720219053501259871226001773226882385865627292904002248897867624404571852282756578756337426381875918813166471684195676701430938912107306333468173153708922198511376349458509798416382005891768286820752789888793708223251526802026766002237104857439179295622766360816297283285807855897690726382335510716164599301202895021183357666530380899565160419806719080655967089930786015759224500778335594574294820263744241216958733369683079944014180469355117007459683499360692957334231951161474745332866408304022240631530379596441845974811232548657061922009881484973520899913602987367732689226752957857407725105793566835518925015670021070988584824811476179697515328594722989596910602678245164585709986564357019854308268690923581488023411654251455236391334099326130671463048964607626875267239673208482623465434246722694503864166950576597420454959788814452821865126467430890147417185822393678969265248291393164888350289038381655599375176819582652006710463916116096045521244684650381572741791446172168304277554349506020657717832155436327734488834668941251416649511699142855126939323757286549067762759437483470317011346538692239543751520287073213482770832792777341293965922268818738125235845698337094264226487655204698984751517476985371906248385465070196477043865849610820954478128754709571439129352693556397009213195134437523752348642243981982964201870782952494186998700766185060912938979207422278139966807610413072415447036202270840242897037630542502568710855530441419414035628403325654383451999759989402550575579693198949505573948352375171625264193798330038575762532503851297208735519257609050976691398133425420449961476288552496285715759979042799811671379038713418452243691694609007663083242060465840490241044559960741942032263585126684581078231975522434197217905220841981365975590712802920932883920195869241039240238593817536062099486615712614170481724812152730065361051440273671996670480429434618663930936150289720177080817377046350385720949805737814920269568349263871774594630147708595319843267400378850929681339127197953977580027808684173273437523898534386585157072827838710772193451103720067299718217133602135256200357437408665752117337026144327215373409194281383584548834489142111614520004572050643284430726674223907650878103895609053512476104214225728951300434503088271188929074815226389024556196205768951905492603404064058014595899358620740030881645775009728865585101810172166193307433526522170055635490415338275886959333298376150167623970990680536522051299235512685734949115776185756575338864396844893235183826788745668406924769733445299359762977716880910639265773124758623036236418352439501031368606973731414372063994721825892693896340906039135156808591965596182138694230199318823538219737301215710484601779816532202326350125600236776417107774678232228448752867694228978016017798459670678438241117984583270399004247301310178773986345918659430806880470191936710262782470740843367718618402431459762463758146247556200294113750169729836948844169158467771455747859545280423093708368575370656394280545517867767635236206737665603450122328841404641862258747780408444619891216326790401233370571866690686054805978850329349543671421869850365006569277334677970619013099117904430871797648461581628703672213958878360836905345010690753929746277189128240903690665108261804676305653250788753685375959705571170782687229286884422988488547250668525524620013447779918846794773266346882043813554624864891050073115678136839941585497736170455831744328133271499582746455645468961596653402173803069694837982184484102649586376828985201330990199849574895619261098216831060427286751918908362180900266744055567350977870521752883896638693340089930993717676345243155558587432800057518814215704070184354168145882703342793383251503168906146653468647203413469023808752342639526807922376396863717715453356835399094306411404292567286775470126835287145256068228975398730981529593552244003919553437758616005395167528424117575723094883437756481350767020127162604170518424415471453693779697076157997830895245011200025620534773048612390033508720638844238671474094836575799258394694747722033550708704952658064294933078929563238042797302602896477251660038039423270075023707663375355879397684143702682320633126327877346352582831808551832207699757624724698488246430046961281258898575061171852361780845308657357833011138488020311326193145733778483451593110119754293523012208750610823989732872822088093343150917167970317384557252717345602454363086316514095501489810776760185001987440800306559578963566259703195229882826096308041970449122170325180912398189439438984564259885505248219921554345231998816208773423218864746118736040547528963128693978098435398779574561426256494502176536847268792541486042709413200641482670667313036965118070051322313047766530835637457650105390021466068830615035648955717587092323567503594543386846648278899374846193648651670379816166292042168634561840057853046189104839632840662133707856363226061244445977275913928117165636974248998522029009583427782351773601533070962479099526158383825539688790398659604709180716235676293370047963536484969835315783911495653953693531414570366591632032852924763853173022254701595066552874482785628565297002344730071804100497075181547734151990984432366851752982663904485653236729374481272826551678690407269028129343223171442032094940853485537189441594386346825050383705036024595179298451665068327078434188976492279235661086015482176485108799043855208085276029010344529169266253686318387245216488819606594938724326557230728040735085146139693587188432246634406883109697957644035235585415701415470405157985951280451122693577468527735462339925668036405578566765055724631053737192341907700409319751570513080310242443382210981032042303325240865802643333902300528825905076012222827304658882953824904702828975808707766277873650517580309067016586767706848305498968365214296112501549300849190237709507164506204030724658913296344240275395756944901827103895504393702287482426951830122517687747761321236289693600969949117178173663587783826697552456731582647257039630844210942459512227276673466541627519022424246283642139486038886213223352661177899544851755506998669189002166559847710557755325547534299301548834172980108573598878470925093073628052249107078090345226770159640074793871661225548243948367075958981390688646614413859320251504943406958657136581463019527298473107528135515882947031790250096152844040254167425570798557923644590656041031919165828689371980430774660122779700084431759815214652889191413114200641849486857343042483980719296268347200017036813339649345789257225037006251054686703543505764893673715610341225392726535789494216504093738585106550462790100384992963893338262344085659867307147483560788193882105013884383594331749310731857983158790297571944642039294273261598010929217869043083182775390860910759409208363603702488640136600694482460812394930400075596871275419057947931863994561211024978608495477625764034140350039459208401954424137762147991495928163188591448212376372845943393467440740816325756141949001507209688229792347034801729895017664745332653773604914807305625566417666524898776939035302899461003070624014645807775793858547384226095824985333970407301340034250953731139846666861202511133420259254301335725907809875972852111564370522151988438583500505682200008188729829311789383007713220082193362115584318282021471642257494463985448424024781109711108974244316422631594749946938012855678950407407606428145856776408046514110679280403350404346971177621920865625776360417070262535855413448893863129524157605828967044606222776326249522882033970829723193442657943390709291635757104357569267917107491773301029861292424035072180467985496451734403168009316059297509176737989011071792040199553002696243288511540155424937073879840846601130525839578659219174041398848318471122032046089051160912707940773120273918352019678559011433576182361907319325634805178161245745845187428894118280865454843919903465525069338898788288529173204410381049754999504375360924695117154855502893542586282052922066060778055021367842240657230090658490522413982317612530549635033107764425624326876990697503812841421704087220212355643073112100054192233089468744928863372553189507313820988422180583076671390579741080077124388104199841780798077258426585053010326231424967839015188088675520917536365806083381066511747343445874002959836411749561438423994929910095359903594855873911528369181163215096199705896593679065917345731218993410990488409396094721602638120130447746310110917202639418362427022029508421848470524461354691996656297290499125793510980607263536668584034735083606798626273847931187974570096015357999929959463768271374088364940970405046358622093935725504431178529159515971278594433946777233814442382676097403816996454984999522811546040412023218327661008090606457343565906211806012275844049860123376705648020118757490007796762003060188042787744519709256088043070320319555510767581755333017162142622738524706711398833705983987546888790988791081532145701266359316470750463631501639694649376583114307280595096318136760148732035187672280867700677070139736327849513836631547055463830598804659168803739265522781236532474889477814726211537628428805011594117003053740616043887906076429185141676140997336393539658124534618585938046326737951889245767228442839970853611673002599758741037891303854250469611222836274091012147552934040455529686187536661558107432815926890741418559276146795765703393864611305153059818995319671367914484571186855361112211631145394824785750931436690300940875906043052098777722810029373468454074703040681319103721471479632876068155294956002139493881851225859158557356859282992496063152534542068528465189462472120933240683559133499727976108298426880702701564552629209975934351587618225502506684845629841139688796761672468476428377117564629634169137441058622801439031898921966674180587945844846406934754586751166992244080508098125887957547356962890119127641548588901296776595226433832419758281235256633294934549899970783605842932789412426735638253842676946661771911369264355524586459827341167570561518277222390313691507258118914842160453781075584776131822760724973626159868930807312032131704686864888576913144366467101457782120914643928063205402221616773920885924817193117006373277833573596066191246354576746327580549155767366471561240294455940735288022027076647080451358646787363650956440031844684488552734905054090809041773097495069328165850351260443380681589648784332487292884937045023908457809306883204052993044358849873252984512095365912969983812760330704779593632645169673505062425097218570884432158174137390638984243346726480843180916640375737854595283617594603769739833339212746281661907092351760884619245977304637437320646065817925517576622452158620710136439863110638971917536483735288065149980450974473378081911002110231190577641885101758975043445727708273037547007962259884443249272499829712141179115717774273249709337758305882574525054882990629786980169297928933579735921260209499007544943702781146170287477018979220567586861445250927488921054752911784484386333631843114177234905351341298176286248314395861980947509372805399206878023443347917698080485143446492890944555637315289913570100945665558623442623591582433136132943991512394313176623660598477826937116593754888968906161077395850467857413585365937901246591215970377308517917083586301689290425691004651351821858737281508759803181752385122689300570228597311898231136743138879280048173119969722872980129101899647314039882132294275274478547937249246003003901545176818404664572276205261721433188143028595371843476682867433470939854940295150696807183419577777759440774598875894556637493964832322995659902437645129080071441278524391803135437038084056322200195378092385256919229607635587197666857810092706488596779038586577735317396415131962061616373276186655591042926442896280336151105894834349132102997447754892872667775392509093909768715354110502472851975088091943271490640815688992024363819080674502406971721914716043773703104088019113005277399113308259716855254633771382223025970151931798728546601825237533185851800554999197141409314289561729483265019458560078354530906444910751190766918786485225621187168379037473247398802356552231988904941020812329110075836775309677105169862034686876840292215607214845617290773561337027287045169357976472845985623656602284509100012911369931637076162736222088147458834638859919882031226537054076900563246369938470296526755513369839283637741741598028620695775217776291908269811355228365813711820169297526662852794012529992057650336376922121870513223068885073792095216432090116701544102774687339464187222036357055102511727091187671572522660568315398327245306006090945219707304184866090593919928319382507138987316618348516317145027980351949019923739175899463299433808841912288548317010032417086830988300692989282335329823500172114675280734914701827513643877963837468671717550285823929780389752752778481675327340752091711647594849203234741533429256760644383386331772724608139304745719561440243856752132719892297336151238446326913682797588387736216636132021553015559989556298453329445772542644767275462004563305804181740974644926747383866059965402523600184656463517243127636091535356168905335516301382606482473015305862462374839876377777206311761526760230963167621571675603568202117026896854445843357350792823572215028580650923286474584704660055707656589978532578496594583300732230110206285833595301600862140332365841825807252135558643438538693480375375512051474262471856174106908150055054453928553981938339546620259464632381146030794977250888387440194876356684658830533741165264570402398893527495714155927003979308256949772864305974603930653568423501036363124337992339143639093178026209029392665768017828760235515048811731803368477855841277045620033171113099322243528554994617536172814501010342550431171870925180577898128129614193750390269212910054880377239942642031140165302511410339885706695844950531910388979371640796307883127011539953888627513311171763325645809331834306993309852482964128566222988923122476347160406296610499148750751148449065560113149233006771943623373248970030100704244840729528612511380055824733564092931869527135608927771659361342127250668558665499609863005154829859674048280169436435796724779549296175528049608553592583987682746302252244073498422593825177347270075244774995901017534577994695358381633015113315445639428960403001468358649521663801454800397713917289567094660464703622258618379016192325059162726849825792482928270533640461097893947357651590790111924036849292198407627010597768360712033296368366261458399802178271768267688363743443783041294830182258544527141395370574425947805252902896561131858159323427103673668654506852061401646588104135072517081835262261197594991435071217250446558041283642910076221813095618170998665427876037639266930211108151879261069437846875335261696088161461554252989526536776952871054176108119522349950020591444711240226990427556259876464553845304437466342875381526069918870668293422894408095960798593733241670048155922040162455926674661619250777153104887457254105993905613472600673311563139122714512795483301694866104879608434982737071691083834093683974385760583645580104288738695733811670642397690431930513620759375704841893817038183961793850416110502870631313978715404495389869218007402710547136689294164915873095912824186504013865073105167790460099155051397877049766515477235764187010292802681844408512881246696696594910795177360234376876915737511629206045514398670829659119944845763063153898373192086040748639739776632366415738288380424462669041437199456481449521769000644703765014893115428176473915333907443994845702789144302058103008426573899088614676271325937574199392510393632920492242101565450850976547032341791253611498154716617733685774186691053797029434448893097088169125584541982249868849507908182720232075199177778955878767134652890001359199213146079820584259516879576053567252948012475426767335795605362396426644796952696596530119901247655232590682157737099288762881593677803149942835402695527712570716493612993775580476111184465082496224129391851141030226463398157437124802374249493944996803540885149192339099419334623997878311314146417883385232237080997327992235085633981723897629097976026166376349924075479466002180096717056621706116815500571916927102905117076015944353100646543870993266785692014976730231751237420085354770298788955538423439228596949164602865848442527480448957735204403685607570023038789505991944342218288957548894099006508274083595585671700255884540037772695893992385354161992349775675604994506519339416208898606591712183506767316480695927643318870355626525787004588646675692158899987221039052559604643240566022315564959919991972912462302343828900748677346719102143190728525661077845948256871904728446240988261572375385185749473537314861822130837471833864585817528344289174670181223044482362503470812380833840097542454702003528062762897485650090165696087380178906745179311339315812429590195104571492125636891643286851514094649686108056516558190767183951423573612788866142438256361154547605206488189903539487937226385554355769201095299267730825076829987185269290243439861533921926930397392735499742784175136679361183997894228345381197605436039187791623388862863123611737898291723213810278446004187371463445780412096394329610976970866666464307961665718084490220097392741856479923360402288171223967295984733964840157776919207344505344634547350629156285690974673107341983814264555015046101952373566634990176945211076131284521811638402698804209684106132129845403761738787260522200309836293898791792394946546569340072660791818581015888530640385955318513140972163086909432830822709171558853117363814554287534003514778099831258467403278750617837633804059300414844888815948820485135708172227597024921632873190546815439619410695362425794093863579727128636132637301106103280928264055553665628757652199865792365807301372964726567753467093889472287440857682236416243649947007369835930390503883475038255446252400180751187961624437573218170140562275158598492061727451243830877304656028180982641511541660767226726804061836290132512171271155891767454960204087444943713282690460045652873841115569510717597644491094166021841094653352723248569564932690964597829257201387293996182993447859808831820859688322531360623643080243991599536886909718032102759077077235703101242095907885314782651836131249594256584132109460614511035105472441102135707444411278688579137550522994963375731112119722929679940287645808928887085206969653069263257703275267165414646179027787921561458810329325592601467141259728544323759137771453756766961594573938180532341130127281723906443364639645276559541185552794355107140501696896075845953422663761612321905938728375269762397160371522671404967410366435700150842388480138755592498834900392107998853457941911717495264817624964823320942428898516987057490941112603141502971230125335308297915505295854332286458810683674040128899099535663651145709898152596599667387376705245435049220318721370904367350077123884172139551448057732600127932900255427828103934039778154306961957108559356064839370536640609839345959230785604928024772162805846630964142613900300387155407303375929938123069049603426672358655574251887401928789054168189071374991328375803094200444507259087853564628956391262135767455622934865183807723050296954113869663821121806380412861235150659240719234624895095248182854663721687801465837311722703221711911280797328703734840308456122994792006056328490732954909436108930094960971967135173296247252918344583639166600731957950016165682925108302804864803242364515277694836582276545034191741085160620151783401236715802783402275927544858921511006484679208005568268302535874220980046386182268800394762541907401899845521771617516495248089236745917123713391146418001084832110916934611717053941099475210529772211519682262309788186780009661660670053732796198232037407845815504191064161391765031849730969797354316626816305390843245011878976735551965014875749690313931696842124903338158548625164707381886272837526968194552442331936167804909716007915038590168450325296874039838008878855605629961321035964725397756287394022521765961147364574607888555133418893002636598449898048720496071991144115277678373997687880024884238797874430390028130979330020124844230722884932676279067061452478105416097934429998461414563174510155919858671264889614011262252306173606038118162537096258123147282537995978921970057337773781615809889936424851593314188234063394999163744933726409758423780254355273059180550527521572792138003650856613170592328099381699502059560895770873814877860929704595354570231486725217040654533503328193123177835702444114662415488837622222988571561215097143398308589868269135532608528767630135981738047790542002336810098242588363345346600359265108794547212434697028109496391876973355568891692466037654566430612877787492250047290720136150774955700867133493187804153336769227549290176184365454642265891933990379666342837952941844066787368730369921230169751243940404348700908158896598814116753898435457502141957411115348427572094563242643253840704814741695840046769969671359921883386131102654084165303939935242547397601980781413903022334735749289169629908440889777937878795513348659340255327410029916113725883833127307202459060062341245218604361997094226611302078824798491538661403878120012131190049027278684180856920382405925320001584721072829296974725426656730191042200769823027168208307600929780859844382189134138685156762658533181325694176269267604731351244151974527551149042506498263895932255356571534065412571926495891143345371046185414790989404027893321628399880689616739801422910739914789580895893738027556237225847550967900474065786089181315519280828866491972918407983281162289654775878987906031022211736390997461806602982676363440272838206066329069287589193621196506435951987038198536648016427273815024581600628695242597784504687310845289008873842981965119785440295828577568923577056512271241211034070132393990144904287814873025940097967114988346956673340577440124321193062721427580408690202060146386533636566848529106529881743677614101760905984596052236045202920914807537663433164017364596994051523638003950715187898097786848476464307724341323555927792959801760329497205878596483153044648423731164573042171110807765830218481237048256396517266201092069490782669105137676852336642320179932772552994991152835802007734578794884583413849487138695863708370197376034265075950739050799537113617728123869771589030155575851557670956079512145455733684873224059325510984458949718720404698837462510808752344901397686122550321250178176480472729283054995581829929579833793132717599930629918479705232108118777113752664146026055027614495174176071113856121015935393362200977045637516695071117163677019161692608530461487013782192278646840632571716942100116892685877678801984644113961705647822491270982780338155164229349348495585976452267096003137180328421131526038519384661755981062116220241283372239017441160737821011794883894469600327676100274057961371485824239373316243069872987262162055251598729128814867593767008085301752973829002508955701564915503120817009643313944776723906656624978981082439727958548798094085752143647571294816966737426682237990738901371072370236391678543253486735015501383696328007741054147214564276917255979563723877680227464945198490903414809600280033824837412099802092925586785551270838909959446586223703946334543389339513439161624260218820922769642432918681939831685003712364132633266686505704056441298976517520649060289730967202486278664619320379540082235572548138460240365766880578605391402891434373491546393319946430762911955918316984768192120498094896681067599551097034655387402692498088056656970216198192755521649032830350334366956573325367955381581914954326433152538546252193097153093143691748236546224845416473506059778246842884037956545342735015983097446505830683740809340114211932397682760131656733024803945632926678863451814675610347238421251023314158879365086147812371265850692689483897147232677218480802183786212868327593907476770934135668835407851940537487684898158050732820276552049707131937013957939783440038654617210125001320241006654009065049021841436696886114411708959354388673267169878289949435046475343849113758857511942731838189244683270914026180604559537764216596892086007244566681081215365204954202492758207492095953540867600719530950055287997739256468677207317287607410166050471657200646176651215187734177021318253056578756870702242202364764638859004263877909937936041849440308852618776936893054883901277567751038406506930392058196603958679325460899885394293035959318362237115734361155051950488412076830975423803491035896109419057685133933774339241977271410972103304884806894556902790327024916835537721550384298947828934166019102083342946333844080384273644611701593122640751227692254572745026768407910177778402187178334576179718437967657959497444249074965927729349673521514764141533541830845188805845682639701840917828136653335430806549144549162873095314960223705639616618182854984847220121723433213916241588395441595427460269077861816983975022161845705021636118812100483664845287447361196449602955532694318033135455638540247670186261336241014711112174035345742627057991947405320984356060954208807148897013262848649572436325798644900215236928620349296512877927240813509957383807705375541161611289341104248341179014935539876753201397868676052283116935342594549188147381617341256778748787483954248843064733376404662783876136785910765453834787948614694089138846821568559221273669741715782603737155006101756910300155238560972794715850173554782933459098729938724093353322348185374748355289051527645187776470628898238944231095202251859775899127075399897498705717679663970627307220926797154036341329556446809645135105932083912561715371794408142255998035909973294516871102514204581150343223835255849587721636310701036332172880787276155117588173404176325129940161292998011570540898552805823018351173615219201045123477677762539055935016569610690997951216327094661605378025243920068902710890851824512964703217493651896364918928739535488726466368154210586936781832434342521503324647956990478492308612067388190051401027082331613674129135474892956762720289797203026092605375709513591777843000992355189614807472722209977899839727313873073811095383798463802666143110897498969692073640187522662196078426440641771279661984274446122348311623594071085320875305383058043158820580714832337150025811539314665532082068108282794431157769208104473508559102470957800276976036305002899264366843590044405785894475529716111674100109478964255620058423136333485574999730879635903299534870122588844722000309587836197651355583448958445477557583989317017414125628253455441996208210874882474027700527304783747738416124929865191193065896424274373233954327521310735825669526983764447972345706771869706873720149654856437537729420249552719658136810322590653766838087635379643727133144738334170031173137039632344201666656037538220112843528300622421490725060357009988423247173031002385910979493760351779019041108612808051739833649451032601635049321150487556236861202134385093869782559444006010275720631389136900928445783854143087983256012047159339836078877695566965989299822079820951859286128735476621933796565430200484894830650872324940184607536070815935142465126984614601854492283569896821974099150091563007004456903811996437139289305871890382077916587700578790414753309765564531720513073959996013113177180755626346659252795012099093212358933955707801310093053162667788528609546533367329626503287375937600921208761329945729557694434236997387914833361205365006265392958909512143066314321270221426806454156921412370720349144154118283330304761333869364828433724054771452663100467622746168247088584663030301039051821104015361978218069545744585391326404679473910691756520344267924311898463946921906910891133415200478943757146290212493267920074705171840028825676151657075943809379598961906351056143629396866276876797789517352847771200493776120020412812843058598000731076226280546040091962517135659628344934405948228656616415870937329716004561522216092492631722944970410186800276606753332426685975000826272594676804109512259079686957955517606304568741168768554379267603424567518825443216865045779914341154468264327371229829301413613119488238173583343219555898669591770660990142057560034960681889598795995654118557594179849620759136163018192064581136423871589770133466779412783795492017698338281313234929105283664996203479235898660970592286256193942130213788642887571323075585405795600459487162029442296162208310302283491035825672023824549546299574025303384602745890893362525009948596508095815483994156586830974106967854867582324869003155344868921739586220655096419431052816304231868601868151628998086988317240926895524722613289852413549508970583033487651972673980904142809904861521401979234710508559796175817026802544961821128027841298092249250969023931747127394542497731642927029048484197012617443510748628164889507926529700263936379075288791181043510480707769034477081919914471303968433324865907821719366609085450350889227335384605541962725547442588582136019956851499935605944164604424751969074853835695989483521135551173653814248049821761454706097561568991489613567181794587346662450061552348022040244962103795452697374543815283383582697776245436962013794455267943559259634614994230726566196020505939220324208444860053972915081742528899205002585233587833759946330274862363346143843832175173734528946819033338366636744440698947883265984027326670533425093080398107476216844352904959438203014170246750867807071045890408195922938807006245809683118083411297593743317881746579686633261090515660756885237566218276250411060000371276965759340908332164984957683874911851951247725792422119680730892621749367337116527920099419758699085103847876473008749488096728091157977545830955781019137884342934588574922504620163742080159289460745193552477281310688771449162113434224826780071342289599813748994253362345796850918707385924864582375204289117187276771761282745287487503085145163832366579016684290338026369594907401765010579539311259204666767925471409911969325604500025722265802081290510202671714460376337809515806922130809222106999433649360553864545301875827816566808685002076794041644961874626049410710872787941434250199136143402515164752877908409271577247863739144031300742622721249023121388790287465430219575450853020270963899621051453909731034778554828354531886283232230838613386404601927594721849240741943013229371347268048108578306506500116617771489795028317081735965440296728136489742160725775494031522975016788484641259930573625336270881510714422316807919523546509911332681697045326265784962487926310255624571564513770728489763104438350245564157512668912005285938408616903297550692550172406266842244792079865291654128527178468713206287588456663548505798617375198016780122865510487333451903437434523739551071433588913709313977645260517730357708902566298056513591141924428921024352646744394394713123172553531188354086245285983409181806167508486027105705362805740492580794442544849264383979468870612553494196665734038841735162149930916388667810947905932214780534656131646778323840963013140734740151057275899010277741563325520143147810338635855749543706540034651743688731530764742090869956071359716954422349383436012295314386534502541175986177431559805854277530996110747898272782172048293342288491573060502172615421216214087930009388608557485444147637241400642028199193781179197112992075998701734893240822731042266407387424847234001350766168265240784214528730189711090203263363350773286306649303358650533294888758144078109064072622737489702013518468665956171631492202444527685814776245419765852369357692856830998745479104646951883609021889765317092724644474783198129750462007704782462000807941174090565671373625622663035298596134265877164660096199265169066680648890298675970043640849013599067220790334513664062266370758000288716625482518381026925575054791628665028008133727395280371246661798848351742470225682840070080120208033825507912218301678892589256087846976378261011667016853594085651093010188272418300779900931768660953287422567359880618790945380472091759137339911634710991503966032995442668021338394586406166004443374993849222175183571389163502743361616732941871612385785263768176689043906257445227448489179406925713694606249921221335756723492983015322133641538529475195527212613451742016424254406195263286742129054782095467234812012485452891374519045791550379993379140028245354797573828881388527001213750783559237671852007031491878211634574491850726222633758344390027678187110272933142723290819641293371333748701741153595503720787622035303461133989986294521988959424095030922991869993536101459360578434820712561571735237113329256320985768748383804312439487893495898359553912248792866325437662805632558032014042623366496952106712612930347116632855927968894431466931882890682530704192080253876130123170501738547074274299276258427592953192950503711658342003691409094061918739502169580377249419825779148543355724705216065789843150104634810834209726829191168380501037982280170394378359342454412458042041481817504620503971077330415938111905017899783058132006584072694526313915864451214763379441614661899883490953630152930051386495732412788007186500977590903214321076905153098890257341364782568570849104641924392559044631436881453267206043791174278421518216130313511483617494133366051814961400438793302398493754780293978979994325867443388731944967743436115616821321035602611155450344533391332199254686661066187030317243110314337750322008738469069072657147101053835187167055188219787304182868989151378967071349073469464711973487498013310748994877954134620930700147272440289165724013020983509370869518496125206301592819085634398850134396848055924476688820164077879545452281836000068204096806177092018341570072201445201489332038004415040775109064315971135305322546920695831247220953706020942339047877602293562737510112879352741508848815693988349080951366223009920156835406718166497779724169691115321171163411489610506042085276360347478313181586039863550196325556226682694606029604438670411296639387663878687585045312356547966371130830701416445833601062642296666164537415176977819389945153823582060088046898195578148852319661845730657031371108368649642507701537253803032062774646782814713935359783154304087327650473895422560876534899178095013130552124290545583024562699151140702976953231685717313431090523253411640002747594472260506336384262838239321534607161943480584719486792247994874745924109568057311283640371074216365809500698349688794493396907289407481981435127809323517698392366421545987290560498574546599620493112038175870054392439198201823150473908882984621191589703538912632648200015675438231210626764353232341581263984241747490962963800833351494207751148945032973784943131072135589980979176483985278338892019421545121808149087433582754757451288817658335464068381872094984491399561799514042122096090428449241197444600409731463901946532512460943059822349365917530840803206123039682114605278959731235366498987214572907058538856040804217907257871316969224320695897977974019869147422516280663265357638427979503578253970345307253321221521675649635843214240856735969869413573623596964000429476036670594020691192497199991593863699383714265322354651730689170160028896224679448251668002273214133650954340670920370619152078759725950936570136384461504953855798565432183853940814565616797847645240598773793477194248510445251914099927859871669217580848710952635254326825964353224312969864409243344025459990245756729829161486524684540718790289208665737667339024030729591622600006790346296235024428159540442776433873435658106632617824814949320380562580334720805317033125473701146287070600181733943317464436573538184036872613881381675912270625470438131982427921171272481789173237998730457700910684475748559759667797784842650083664679210822082109652616963135086356901511992316770267311016641305264581626931725088491519877945312076035394819881554120461450816583298646862754682559490139089051756065205888204116234619557329329743257448994652346712010387148077567370220711401979443010054966698524248168095360340832561969369303728923417283732693550326067501475011056153412936999522176247339586193936263216596531884129277021035383869919786019041215612973200629237349057407247731201532955223581820468603499957684060323934571447939655481679973101386241169904960378573469869558382373242774397688825426951987008559648138087313737449072952812815135799964567174496898599017990173486312108610467589914164210586628506712887338295337473923348033921733913971562073343684364710097237135368396601884029883636261613128808702590378981158230964899365738291179658414286859708357865291885755872725168367014814537197038168510750596115249603124626421515564132557106172848512441811101620279226243315209486145470657419140213499085019481211699613317969905943644376235308480382052644044187421269912514694641931395505471576895149638083669213485824236264598201776621084452196402343260152094621287293147855241178459454413050214689158773825458754656459190869104330587391217099374402792305688737023646334340697320277448849665735026731540374497195842399188684542395521608061956091959545874978953992555416779203336463181277155285081005993113833254843640293561870773070876589710859977737596606728717969762147632494298336842712612310654445183756989488681970219604318310061550432299040532082747667064629791710156388054134351645380656083790220012266619712974831728014317054057983732780285273222626223264704160199594163709915893738877254528861500565027791648808606351485970740857933581010859663878219402350072177819704138612246411190896523439541421853136561452878568970951322333847436047644152023060348221108835166397877467849624111911913152664217800511290029645622102011724733041825097002668320435905256273620497119575447395630333125441842355700301552129340900189131604044110222682058561283797334996271642129254511324418040442825211326401780581457849425464075104896398474438357361577012167042663472368798769262383124725019729821510886332597571339588720761669462857649980571767000250706764469307457155769351656118448879829307625766644160634467756708073437034600248835480443084594569385450778775722808255717656238081372299248343709230923330925374551256648493915473463943272709142748119046777623995380960924395955117492959398844260490762183711057495714361556459363575997506151483749613495385029710512786240245698259788907098589530234400848542259058135182762506204594397900199630439909734804319663841564213867452280103901311825456903577976812465517800296340075177091246073556304717954151754312849027403747685317378120486901854995270050291753422692184656979390427798730953603376892746362611706270277445908977137083297216065448409919231132767714587587005103859321873529545045571626403918003490522991689053660422266736474708441608789012032668269924644867729528972981307032499003366772430586910807318742057731934505654307621796498487804931238227383790143232907915195248298251666596658533315982648443321489920533776648210367680925100121763309722051169695151011209959761928978003040937610309317155427931719488841239178555770618788626887432454268356450687472814939854570285533192775460797152216114017439513863889779070909376552003103360741922087400697043529003127639872180098472370941359659965369484960520852342931848026771125015714454396086421218898537061152762470142758747815575281450908668771581744672158883613944936759258512340418873423751365696368837569886150712538485949221262505862663619726942524857003929690034801971186124811048529225222293515612826750227162335336979753934922574430247890638487392769600187144968505517645394155751608478737200431050690169165744293206441075445178520435635833877947373466402553672391450077997108548260674251979859920825431615213105975027276383691883046242551097839734191770890843770582290947381574351967960192556491999076907698887688156993868261493732603304847142173210127937400310866636199122004140738425684085388630794511934287447070371806467718321156757742552227297808567534166052269214918094752038883396016575556890325591657066554394365215685167414180137895949158262131451803050921898727867296581606094197900921517067445297132527303303288455225412426171647750883999767223765335222671029964827693474332253310996916789634320337360908515997906351204646032799781618344340605340091044686694772045336358319922956533412527621605243379909175039945268351720607333204123843312342882972644262457408300941635856114154620829266395779388833075547570337497551019622653434976452383715631919238658674456457494958595893903423990082636985377200922884382827722240254074066496349668002980722655549471062137305634965761057450633052563178408699813828269823772442267392901671499836697322672603143642349042942631795975069554079509935821570725490771110957868380625864553210223180830594983568158277383307062459938301880154235552292917087155728998697308750406448257283766497130662221817387588707404140531674406447104237810686390748975703658762616554312596107137260357474228699362124517820851980201301701784537457481904123825095041336619954150805319463320670713959525145948432540533582767491335119883669705247862177832252665379607790126886698029571913941109405968891957050463537019803355486068707740173465942290252961249484650149551486346812148041695279366577644491502300574373779541522743011645114207932993844953352371356055358953415453674387711218104333130923350965878375129717847309017991287418882866356037219803129941943768087601024860077994788716228040730876686926805125706838321921129829938325248979670365699167914653693734834980424940484368703380743096963125859229169971211213279230222103036269001967844951392525014513103099855833935585882749475673229656288312856503232230418032720222725323091151492445843720138754328651099859339952978803770352692913924400942857688269544436361862049805848630563537721769863166701819431835174655228493961667187678720454261538781350240604334099017507238337908987844312559459704186192650361966377431642872070554398227355774441118840207279820316811531582731717638793015826959175220819388502053428581705913331031172978606125181589336442923838676088903821410167612704595518256013674899676454421158930390743775093795900057969299209862150818701277913945224516706561598472088537534267490681831507489949830572998130826136287752714151895684505500237927084155006357644880889540031078585867421539562630955171688243622187857095149281275514906402987118911108577311177654697396118230466217796858678677771578717626294447875704059470615516494328299444456374852480408402940114233967125372806823359784343478184430583663348161682766396024223386395118105963822611828914029146305286284201158536103201117073116706635241592433965020089899367697445946771854320079700594927927549902561193491630497757149229551554096751187846810120419199865505606626482677359729954277779499712628218027934130052321556647613592304435474089190348405487834409167566429368939807111954309232301969958001179222025341268149037632762446001023776111428137978998868824032093140306399842869446661137121154845627410407466917292041406181207445422373441964432460062606519494904884864034849105724746734019440954309334963288341562806018628466023317108635560087597919626238311328794789285951282267919789587023186437808907105968851447133469099422542945219075741370584012607606573134913432625552419559117387712701593785108812722275354455608314552879565876992266832947425168970619365799125793063155285795585287431041096160860918102991276259243987491830701146057737238648441754032131560407544961118581566040444756007213457022418245183630674778571940288523075843187255439248619181959613327590794841999568387268200564096362559409436037361711692452001303781982808049056019264138429410256982515605200702417095203955065262624112010446335532619947314603372317134324787135076559807237570602047836925759195376340229722969634892652858966069729854651058648631133698913824356146480433650343262385474587914006758826488950725346731539906737828710569483029408162395904163346730062659189711407353298907673877341495689587531218209042907999278184888064459793666563336150624764077463034396527948570512428232596892578052774128419113111950254380539073262681368981555935643064930078032339203615634748328732510420760221755102802435922754807942254382208605524440191965115034636574675544238396257058897307744566520196692908939235095200311434018154413258153968460813230242491027470501964052272272903000410266880060240678064099862606998213110263093993501459542518090361847201882600996456965393926253225935469841935190194851652630764967439340355187475569712724068471187992708675999801129166015391930455716572410957056058533978075107104524287649251627357191265939637410803602680198187166095470772277423463819620631075537835517122047945845252071485226971644266940300187369344062825825012913074958882693622843726593256802273247832386987153416802521747599416156349255113819013524072977093313034626827185771691698448957025087688325187348610390319249689768270570771684799792944338508948105465214518724252810804264338996792993867001493085908706711995554315607338363006874860806292212185496302692119833361295235978311636720673682691764192282509065366269607511231357229857443103346080910585122215883946119269476770016510288342860585884231156519018397835984715011560051099423738204686354594159672854338010746239012124427913167673677238042183288914620799677277941930214134245121731424214905561670689379606152880419782274174357087820161321316698921924321814103124919173257478965298418840570370807644302062423659840461072946200909129296880423283016090686988149203851886308280620490040112049264330163039536393554058902732212280175854643011216220604353706810221603000403485456420451635081208477155852946410465494044086521552421864296958675224994537598279494756465510911000070306549667133751847917012030091058415055286647460896737298762465497647088871520231334701527173498432454929229014808196995144240906726273155856601323588229882553361015484722381528111220306742840973295129261152216844107473041322682370880271607096291415958088665102581496051590764563415294697508279291538634796973948708010475545288975326598497678863404130600018877577515441717705258022082449225415564036366345008736592963164258270594951523395340690202690061264712987609214459045800629565447659894816829840572181054785103645472561057724472937764091142689668071874783960983809345645550853942329792423906956159010149871048105489663959316126212409626011512078260721319047731402822108030505863422484934479074040703668512678960912069541702097902981605708444322966858052301495292086879207024192340518180400428881876445147288881355189217337454459820541376950665200005784468925880887121837414991686549954202938857992896184056754032233173638598932381366049962497080228500054852265814131047307323419029586159917927095274267529790714698246092029078191896136531658037390887250419695881984572041013517350450357654017863295280530641496909910476042177442266526025464649829912254985157085144867886179631829626204444883564733994464983944378577822614524221342237626113735634830103700934835277768032335216069417977626296643101998717546154222230902629427037691185689667492779355546199281757458905017234716607088352542572669631138259775879246922210169136588443313293361621233176259025472398240853108937773785499378273423561492442880805584472507472716072167392978179809077922088948805348839167628734560379681763423635054373490323574107145250801098911998973560136463709944669877739329034989663429842255338186919164376351285614572929966170856494217540014299583712540261022449845671485484643226564949048273754087185214898554358932932688465802176351520349316796185855590900676463269505982388693340022033704600902550727282684617691039922122360610191680263823939513889591500162023308236926562998959852618826878142280544961405744624263327192309280560584640385502478321046293974682147872860981159480138508264127871222773148213330155314449531957776264715368464933112433373812597374392776542998810066538624770567797225077427201408757610559497464028404692172216696596093813549271036167287095342944688427765688065908045280126867414868724921606717810390424239809249144637546096600552820744760137960047106917440311781259115651095831867807998834508149244654799330483668191534840325403217662288904787322500993662027738945840909885169780906926088760246829333174663505133434424394941493630572075450743732132128414352591413691214319182222790050485484805409897423725517883035722688380364767476877133427075650326604703307542256111417757819359628909074736949864875295767617567644531543106586742918828171797467716133011423364149785967451884248036260231181002621676252675837058347742782289260862936345863313148572520488379959807331254838965979172439584415014929053624587724826015032011026702749094489033799522617755653013776190301226240705257885087832475984290293647338474600161573219193691868969308773266598367358004110827210295109345526606466824049236833205269629751757911733866403871483822403561261117627153009376245843733474021448706962506746654129467046511014656538848709780575489701911755099664645626899768330690707595757269205385925736786592201618951627435271770102362778242186414237461097864808097116239295049389304775038461041251314972946571455791781289420366308732811276113136835922361976795510157297909571993616967316407986144322251555812364609525955323283023135390549653130326338215506746383635070586272013269565552931580960993143793232736984838846272834015787631212690554045563395840943824887583851740773473811801999536729151175951312322373492353575319220662859287772072693132013596745733716773098313718240534048768316819431332113765500365816136366159901626706223857557856521090331082785473420590170773504192733772861092171455619676661200784434882403878150313984242855511775468985655519360055893642507091308542169683710731996509281329834735164842939443160697950879821052145642310407531895100946048242643885673466808602743755298608359715487933456788657026153477186084662377205997309331688456722416060659328074464699567504407508005176775681999458832346783992534753016804976338777654086318247775172459570282583387864786528146502282152841247797976699132432296165091665285027211727498038297500105553311951680431490539579912048781567543548147074679164091749869720949395183269561431739834727655704018639418534236438337552119900946722643234173128976845930626385087805124272895470876569707438933803805023947857399860325555168856665311894419183646197388806376699280703581955915776795007995451398180618998358521145887185727456088867231421854963997406327307427205244720591033794911223932999457793519373450936917769278669171837392821682380308797309808381396194055012464714433627865728792589961738042461740046464108603063262339647961659798174262871418178107905003735772490860499672708126901362393779924077803960165712871371253706987667339929469093983611521502358513412251881666838725929392801784777685810719343423886592930163847947459828618307749242659464346838951745333260814015137164959562708628196339783724319764198256856478679005407289844323953631983125609819651889830508804273131499408268773976369737440349433211507634173706624705878590824232677243449701189695389142796458226206227723660840152886856236686101388543614663434527831517695799660975940954998585374549516269363080784178210989707467926686170133034419139301818935434960592543431257529433164186419578093569380587872407475437601454183332253059248758727682338015792034420611015724708873103234455787633476986417648245291568510128365308034049884263556477755673002839637487380697868086604556265373218808777489349977878574643723995108115301717810376279390400190071829574798200789201716011680390380494670491522206926978997934612982816634233192272309868163445341957748851619922363449033342662125339178594203899903749538587517162093497094215412421115293717714415901701168304011565835794372602481407529809812867994186594441684049046960326325308412269330241019208974812127374008399468625735545400359265162678325153428510637333889203441461378423390707457209751120799590815616393875563698485249964884029686470155849182404803423644741407188541591489002595608182747710947569997516476857845276578296835317255381716731510984616190442368132040835288393171722451037673124451846160149877418770441375762254842602023221000354949306691099472960976421730513928691733884565628837944890092937231313745287184295426691693698532705979697265109888070398034673434813551274830614349572186937280625432367795498661645300542993609675833094268374048556002647767782527257586955778037621813619899436764307251897521702121318092218419449215889426383092446681969030868088472592186934511416171896645308453620029625763619517711431328520387755761647124177003727484123174849075712904296565980896456382230238397395393708298270846816547378880537108567760056863952070947730254779182551183954970020018994927668432300323062650300988615849540298285173506143266017722627374717860812250796475470215264259111635582596163677353845289232340007056405875091014554184281607940284594674395488058320306557032859490091400293892863450450885555183183552006571266848946851045266916203775997979570813354095824898983092732256093766502372196225153311136154660829539336190690510138948745713504674047202888958358072159678336078871585887697759976997713369980505176013751148489053258734956086042166834496833665868795542000260608471212420236655394091584116582622180925055525400028009200862668608197362025957715458053489397874562340555068050544521876374962261667343739202926934831267527166339957880243694200285141276283771210733874302520139944385561315900364346274042185652035378283411077281283482082534717931943450500063974560421058964877782232143699565481966987640122842356938449275425744149670309335062638363619023921315307073738088381312702175445794236166214843127233314925460608558449082837016565244120961420140129859351112170458608820320524198996899805675196396815457171722829860184035406447469776503306465359473937429377825221906353029953048594164261835185082200048909315061007155246810070013528393387383169798101789280712040680138324194546121034050445307271942753805971986682493981746778807118699317478457770298173402854834221993334855579765330591431058965200523910922236583175927608031318612762361682960370572582976037753867329383741306939117170867992957282495113844213028629088573829195423965463855103337359126930691739232989989419796564606362040218239422128925630802386472960316403241800889289560122420438126894996830784753609276282943377361769396030942894538169345216706163587439218339432728000541152993732437659476322168929099849316869631619066181421336280880749139531851874492541491642896295447247874870475506032227841119428230417317614726309280593946878969091596976574212553419523391684712344694339313443546130817170289835253806439674161469126180416889747443352243888184273796960102125355314262989996084252252112177232836313925942193219561363475227141048054813442308241223284357357167804866475302690191102040724221399077290377348042876792897086987560791492004628694567828055447531972608978037322331418960830147467884322727512430700439270509136093605793841665134307517546605348754597343608049980972289462651822970705762937733582762483139002447226594772283457707863676984757872985736736622629911254697001335894319055177103784739891664451642716902924524976366352603865541278326529272399676135224077878039083044723884425175605501763118713059163770981015429581574378514289791017595999526357593956093280074672857508440792429422470924108034794925816197630640545683044609079808667825698610829148329013000524847526594575676412365385836597845015175923243312816709060058919056049875554004054564501766611365686975387548357892946114639025012526228944294019583158242483982451019145574280246323618196415340454963914906399627277045257186648930501879676283483976195721200853511714846043022330087633810678860625087354075254412101019977920865881316528451807335804762657264595498155132715244089207723505063579271567865300276448027691647098567226850689608264892549809591106980697874782036040547031441673899682349557863786362916306613783069416851592612273835234926818222476541951967943873466756126025255074256118096635333619389406514810354863060649292570869304567016620804736313350498205439740582632132302172592259103020995244341117381235517097065403163844703305184031992722951290020113298570932115739000538394943116045394353640995772077630360524800907330905360427413464868317392251071578594164252116102091811116744665106615158006067923759039854700274408409147767430740289476311902533336931689026379190735013615959497467989952621198937388810043175443761522571817071979857568550317784160297679354715777178753309570165529828929379341078010235698303319170796898682200359900584687964992075333514130698805504930671362391818398546552689056907119187760205416054344691112812023283493410056868570499410878920045789090795640747588327550655158999158169122135102826079397794791317687506124023660940221436654661995089960820610314794862525220931158984928796738045197371742911057025187714716764143620200570419851040890133964979139895794331843729437801670839120657117619216342214924094806948649107776363323847841003823708664990553465618147618316216701416741864568732144006471346946925014042457961100718454690355590511871740393906367400523776673380730985027806645589519327204522846538766170986262567502965228578466315117297323797406895547073789798218369447484640375740077841853562093718912224277288640004852569037079673596699837147645750102295459555033429964826993673319769180517952134741394796629709944875076091916347731728173630204056486980803806463888823187173063665168762390522482595009218416802939677693742991691332245576028874622622772068279254086904668421693235794000340243501817396703014672626515975394915658991935312786606658214202776471364251397898627236865386241114563768008365466763060059202090867673340763974606874767492062642445176705631410700758183650869545556020891278998697769072133087510383545051682164466265139952210595312844402291325144731843424004832170245015041629262313658705179587313274741876858771600197563401532640590752078721071125806742542091929612535445413465560222916994620310736037394116772054591974197405898135407551621389070030807826268864881565221063452651677496528594986828490881791933673565792499246402912109368219029018657973616827246093657834499770614177215123759604336687015983274738481031127159755860150260525215998145062308262934944210402056888601762899339784720208012057932264592801586979946808476821876061345494081752895051081447514028299836772278067344309282546913673988603032819849263974299598261285619737418325353896299309086017732689032666273989474029408796031523249307283429038585131029670977971925099176879847161377379022186301305524398315299494147364698172198803246463243148355680972556309306327179964972879880686977685940082278389478263989496614361195171759262355809861707937385518965404440719614178235190099114016317254398189099847741786569271280366671155728758187762935759547237773921811520480964391679987290619410388450935375658332103811897663469363469985693978137995805795969260972005532166616512032392062109880062706208225640261989056461254753665814720971787902388777033910533206200192777023269615056109778565220317957048201430057478445079555081672536782884674518206609322543930553675796310082740267370261491237034837451174596940891605275982486462359377540055214591525814507372431679799693313061134637598757274959193977382294759618563884415964561521441011987051644738890277788071326430815019409699810888691044971636058542942881406534944857776797129057598632864074823846604233768459143468360522527834498495941333641483614818846301985014654805249884379357841550284057689935077002729357776867845730583048916771594408615881018134296344063424107738028738513166419226397936693732441516581254715471825250473607364707670653406179774247497927603037517184854987067168802387379751653167606410173347961750468822550149049554149843090706422591580544615519728923325007824041245169803040385398300149042109862606666095276634686331377710010729358931642118012202169380644383606830873323060007146069048969285180733769737441192314243735163231745615830557123610935168142688666115358556008556826571351398692045895316667556904694483828180079939056116084084814774084685751631257445701822699307920589453044405982219110367548935012535247533290043338255838512163404821677853511731067760259536653508858876226649170895566971160730752784519705651692201131745519754597494966096179734501316683947643477135838567012305260375284400677516289783797021737800973011946781635708137763922005074798978973352356459255982622241880590699944708161960299615016898519742280740806600918123881440765184001246172551142317157949970670152432570346591624345050373378094181048364155255290241021229796819984959747600941827555603422569435050664453625520662790237394797168657423686864912468867309995325091960969629937086736714684969371134067270267874701883487840425353337715061564337848937387066901143739187947068462427481012371428083218475653405682269057048466262212218870965900941007608343906839861771849197999000610261822395893507192640784040127050545153365418958810991912866603434090564919613111370951952013404100129266083178786301942639061537457264289325798015812673255205965641282276570908880788223106172917592245504754007603266928816983655004263000053997799518612022527521749718125434454575721790050308630265324124295451672842963499250693391279702210037052704011715594699010873670550505009486698992789953023241302867181132652294688947596647588937414828706825597681245154805831287778467507343262887175616694961504616554294178624414892748954119908695432348337489478414770517823891579409635980438578353249308517708553709244713870358554218563799120618931516399295188919206713349189956745704558330347584805151369638913522818639918204353268244107732136684035440898488256284282075726555083088102655281274426202961049753322851272921563625610038355853023106744849601610845168087015954287327917978025879386896443106435916071244640428641055743764978416965476649585524525290782799678752641283638146981224869686545238820925790128989434807978088388762211082075883776050732845226372828123956747696047895571824242725461099084368595209117194291535314492709173863181898804158955876606271845854000493683852296882841847536594756169651311761458467542993923334711143125817496445348087540872052878621702780442494381370142945346306803905691669111773171348609205067772583978674560455667413073211556132633611604797657807524353177454539160945766844159775147421127548096521293143945308069430141495130214407810043417613518502774795280222749370371596917547007897147001838391345332279099357085207820532129924403782901972125107866033243711923160377155718345151836652591739342551193882701717785219477603307717956304883928855437533945768030250877700459886121759477631360968529737139838301856978329909243807646291437651908373390926133870162607094649064807454824533710357324563722423506810348873580712492067068596615688685084077996585575961617788620435064396507313113717589511420894910505291710701744752819048112148253500145245713449697202198228018519647227391246233633396350995194493725576065585849844487891404435825566298178017525448399756863902969165166634028441141197115966034606093534963025809146397200096929222111737887505139594971317863396632625932305108481298979018948905335944630403393969469106680109752388910056536378020828998260571046794340449027519998144839119599524398537990989111947309861056018605496789539744186545252424599822293583005913929301312172072777938692636508146502210783377329221283669367980091456453611302928594202080635793412232507480202098576986055625876396161173987580737681291762035379881514651426093693267406972760334988377006519219418284991160283054970360687747833669995846630378065667464964935285956769968849852015821308443302991017349645052338619460075134283207570236543791222727663211594822309766806317705190212686250310959137363734536437292604678574557478900182172161144265010342227646921888010281212142028202735581506406466680366444343855808772778009148301391481329061036251008921184680454597184637838465149457020380213070544365161891852432902699330732299330657056147440278436267088593534949650623797659601460368143384002084253763714997897593842678510299637917930765271941961355944320413981721037309139742054946662545495892812566716078097237870623076240672193055679941873187481262049642983616969635413188184999908761026855444725437189982102269369069011163255202435727467217362078405630474230344598231516649699199526707991025476684029039797525972155921680726389827673447749539528229706521776051258795263042802615971597673943554030625800674754210682775158735843926018513468092802651742659211827404632232113687391908374258096625351490458565422069635135585275620827615970454103447021356005760921108428239641810733161136524613905524422607195846903493483927288722797694274352409695409471632511129001458783216141681223865769059624299561801090114535453753495129209989158288792519106066959633275042572373393623666443422405989276726147099662605475001223700904466102333165558848748782758270680997886559400608249776127246380392290712422974098796941133251465591984781159904534675599406679387221936874052029159835296717795837462587825797564904559875965040426843343141045115230336319095470330119857223822093925383592069932209965758466653860174708109686859474454291673690558064489042822067877414658908237423502595173701502860219700146998747590513931705356120512414335165271099943359716998074560038974657294048304474052885765231695844895621816363655515066532167724838776504984726318077483545199366971533298894838379297270774765777408110912852508780826788081426539742370704894787212947016848657441114942785075999250062978384401883149454887511236486537386214085659327488761310951061705507603416139756319867522824729306284583174914643306427203869304893336401627319792840191748891852731323258370581815018352871163252338837371817077890352566402869522963728548592302674607128454845510575361095306660334052251433768451023247445385985445834917765831427048345333218468215547590153095696134916013274079347405649393647202707291906104607447843386794235324937252957612966294363012152532133749031046193493816089440088884448363379058851092581120953504958013933994182721949007737561370569190062664063862469743494012995522389112327454596476056532265068732707207959382487911280597437318966408257817656675900008045583845440928714273890996639302852143679795846339276468946300717300804888609182928486545777085271182166686177608449318839944631344078128705123987624318631983840969227223637286160107820152421179866150962813579869373065724565573778555944581818449914391739931359950789117695445476438318598285221217315723801704813884931382113243214552232210783711399476298548521502526236643508095000323818104185096930535912104449649520593948430554344928468199102443087540786527439060932698373126847553794902438061600199134741893437745688866557516921304096121954736168483125079284307919775933517636218787516912454657702584260941253161920451844884515500268583996172269451648194070984186621098219011633953142497048601742589900826551716187120628484665135326888293369249355342932302042352450008289700548400459218471920104090406602156259015603347927883753314113753881878705715276612352933793723959488514320611367225889378664690325073134706193760964365599598230820453521607593742190080687252702493830559989391602958465059329430870247691590064268595452382427100537474882079271600787421528993823043053739991292672143915577034262897490349714503526659744412693218343836401988936473393447368993358681675841479432372205596278880902772275602339877630905154060613701011657631662063080693824861752899317378858432574859042131939773286970581620662020523646839422499445720785911672411752746116266085114882073219746097856051779219424822114133333026767129672149056331674568680138650863696525874851962147402719969134942378855634442811148680644679886856540677173008089008096101503544234382043759569903753542039703207598115196181824960542642645174515031016832593802289736631132570764752267845876099367280978613268961980755037735716560529298864228686920966604088703251329111882629040868850419051359926118874024899372348780774986851229570506831012930455487947372677917152727136955378150829265661597868407227858920719706973117612290879691634979811312566647042414615513258438735603201094410593198359510451636672743275907704283058825509675204590812250775568511702338619014688931177207950811443635946764212529892205275848726149646978391970166978020413758929106815974195387665186096067094423949591592040959286092526354111906842304181938588086234032296887720245331011717911394502354242249203593017767942318552528427147334557656903929342911536865256230321185737253073095205876350658749130275219774468000963735294197197200793513166890211038174101588429497718466758077095458103390401590303322066847830020425419894513178429044463186275512510099876453194015844815902381863975213477943364015521004145522253419055105935082832916760473444371472861474926464024086325142313189168047310538275415973005604106609930497211183038801603983585154638395914532448750257949085319143050719107961462673946847578992357247872601200163939204550760738445561376033024496580251003436708285733743794487587133784701200178016729979697155923202517435167836360377204575830467861492403397787967460235712112418174891152742147212904941575009710932333875289521442105361600112602955465231656815104140127788688309275017083735427119772605446025233818176198215541686610961438140870893155830506322291736934583919429751889932244819374947924368845792362444425296722795969585596415687635912394135661165203923802203622999324406668062219417949239533580905899788747119720698706811096591231705718433345433894614660605367952714532031140454427092976015948763120175371860244345451947860603929881652462293714943694310112119315098550742800336486984910933321711991601260931559579817921914012297462538008829820013490983571390096691527468491652242005771808519509044152747102403354890875839332733722271355503583679716538152591551812422675272101821357526092632436915078345767168915960432129278955068677001564750641574324479295955758072110826989033669110903701324996706851620180071913224243434579350361197254315792188925803857377341196755773809153123721277666057212820597529307173636287609252578653109569750224071265739035717674796502983581074632251195554640026255675967898376259998947345134541597035985139613613978145800739546953325077488612451294552428295907494634144839285798553664653211582229739996619906082743768261369127975155193866325033880673172590465161588093956204992223546617943524040808501057264128421800842567489444584978462751558104778821736304419408407529689416159497428670115559151796696725663041606508854753873504185624042754284982128264382528541210410160828366210189228156051032401271557829395976718642458141484048163733243672494820495739047821955868736697050115129448858949682343488004516403324956869675811312512413157375104135816186555295163587694294296321043281065690420386003654248147180648113878821373613922920883179735981155640423129312024698130265807633350444903790752975686506546563438217106545605713114424933726463369189907383582057171478280271665885562852702026421892493313802307300030983691862294714074322602355334512224731829592225022480152452201269652679368222410762364437930714855367792701362727784774815709405291853970297457973804653659245273373121409929597877180542716747679743248646306130692346229144270734314712968339000063658103165519451305429425605692298943428334357495482836851481936116324227846948815760226111785343099113687964576183444570611233640516855680431058554231697564069813798066725751735889279482210373562841820856246125358433330531541684021039878909197624530689585395419209094567113207376872248479965135813927363491691459343944281081666838795966511270470116875245233808001276728742958339016092660084196231497546267936350594592087404608382175103472463172482216519641229746290801413062030223446858756464421495899557384466967346931510219122479167334273014971547431421376956556824791217487754169913582990468315857988528915883862751071474858839821437212959290186124521233532821930417617448769686156604670341251522066507750514248808281481968408897795230467990730001167558167405566075837922599405577424455591454611599757945096199688496027831008326032431884064155632562124016699275143729961614328611569169926956630267254157714750809965479489846363148843153636916950108687186962619906926625076841456669803636191897436599099833846620106951385784949050893182134323646898182219444094977602011448092624506933496987097031200098735704674003775098286296682497426827341127923103153994734979055731864296800368633636914525594823225252714989730688094265273580444018449729092099145287836363726834178762585311579124742510990786500031201094369215748772763385181108266947887870984756737185460864992061355208344340436825630251655340184024588020694328175014811111974520434819173463442593527861688064249672816904686259555860904914405022074113728097825678557884417741387730215981290241781849668854192715234237764346203406484314583475929573178698343535444354174758446170996134810191485521430731998355487302459187187995932511847705162356094926170435632596543073867308788861485207139332781008208363934735279244924416763070657932603140498528796104658654241041376611896032326689775918499503190125798209835014469658504595963876440566559423213968875831555467087533030893165933472386104569804402073445856659183848056718558451524462129137067386154899726890806220686345438927194579601144433685101610358453261069169306443889382428929190906417739381863137161294194170145248208313647882242289939899486076445433882934423030092186688222122121701116146347177719813075007908639728443637451594844272650400494649559890871143664969197050859625265482108150422679951367401619658588455252571043253153786833652752678289512475051794958319905576180980674055936884420890929019769340327896110203211297584094141586034322612354317431017355688290067552150148255724923303086183012906196823491919032260936618686862596605621186975456549492964975507135633322313479640399690828462380330025805762810825941271452237883039769012191197504183687823625080211895921934546901418478226000452381546260312419530172373985664761931316835525702342306177610887245140200200740555577658525478960784838502671721052695127018642707411384716572321494557091838441171813647583580525359008972149035461353113843764251062911347404639978920849902550857942766004298147183669205982545457808571741946259792387811452969366237877728756415712415403655335918975571793536183582929400355475787480588127619138105955331476463717718263824014825745559262727786651408212083714070929341186758969889361089313657545778181514981097894967074456898874474874485124963674961719844319876082410055464020047269350918347904523498387187733829058256554927071313158848080781318894313287933178134666120948335044482119210113776908211238366075431656966774764126903393153730244792498318505634971350851689023527438285209950956557779394055931608719829043978004463131252284652402605492760617591187767052771684834087550297526823473741205725156444683678378700672854817684769828223232264165868392217278674905064142817943211037806296938444281345822091961611399891962575669942253389891219359837427199759150474608337886993950355112424563101573512013324441148666634877487323451101258716778478583479702481741023794571660374876356516537639896673672809832289783833383739442523182935252158776271875724630944057680629323358591523633739892894383308356683855499714503401458001373445610936215603158997291414981605823338548068846932006850755983174404336162569926926747661524177052183381158212228092349998636406390395158695046095746159456862697401656355850680467423132126122559681178733516752127376191262546224088421603643793655939658859372132687157155637195989353202778878678057071877870707134701522404649865128909714128255761689068236930019072545422075188014169526849496950492793529810920270492823048886077835835318277718709554233977072824896795528337843509396049196967896267126837128860427422818530284324495366579351746141396548381855256069460199802864767443251807457736241664312190167584842158150000552573892346430155357569016513801750674769038480475370883901760437082893020253346611187009662535383253154917255989879287729458654419815659188354307773504308750240038257210187676014146945377826237509548227488033115402993927835999586881663001420072558148828943441565003405431655086416644924507044123361574731871666013336483663488836933435297414877282702827258240839251034043202363870040001210891656973926664803734099321554997180966459561785835927455686515555244950976170890557571542544991267452935789247030656582839576310429363249340133049555844802754062711215311922608157879276300333493743665932629490272372842393698398545812111585086060595402690992612173121736783966095348816450106945629781053429319167638746958089040298794010176587653187519019205651616413568757867507157533404959863114277989218809730888444651344269304380627283636406001921604812432873007316007524075100019306538249059642348905973992148763071030865984892590636560904080206384445175610298058420406504996871854153880566127792733806753037658495628784967765496812872539662884940533474167773867104210017038157485433546813160597322999048861028098874661839280118053308659798181474461866384710906707325483342161040293979479863054379461701747645345716721032690702137861959858929931582298529853451701853897203888334852380334644385765023914902904318514035870742795291514338932428931838144647256410720919116332450443752915384580322489230424163533854222875807221995085811708355706073301062163964481069517423959414450875115179730250637910244640629933992619383594780466401634013104087013140226813027308011574123849924768219895075657326211387348572475730296054672146386995637855598708228007923033348411279735844113095884834183040161809014029480667886232009037473440077983159409119422260199384150216362177860192267963393261083268780761196558160170655093817449907780412448667578370379193742068582308247118954351306502302858059128602393149667811340476095614528902985001187335571692309499983802867981636127309754224200705431208661388226779628797169337891332397566832187863979695379508594325799113682002517504210085240375340744666401689501387192212724688250501581421841407858883935806316138620361451281488604384004380917574897043699153927002426712785910867683425916682185632918207065982552834475148675181494284206138494813551044305986541951251109917197854867040426683697777805252777685110982439464858993330938392278868009639013649782505441540123383254151558330517450769962572038648475026810362281007596935995437419205410336469923058805876661109779168319440584547319457667777027738975926192005744167702974729800892705680006520189819247444284540769457015719794090887134464270078537034606061366260642483163914796128704697689571098704954797514659567484430520061866693350740681358147276766307808085055189603123618242949096794497554530118573764535347299224021334282416918878538193637906748832959840515383217848981918148703126963951191461703335360909909827915089469671517682993532752503578407559581075608578066836717219393096829949744701601602121328978061910058774803373604156938249481733117565150010928156570254191917667046755055447476839667766645226362078902174752540928422433317349520911596699301203333696205450416319179460400294884795977661143263717835825235122227280567676869813977289204291166026662811262252108988838030004498209247318975277259168835942773260256299757756695115434750199876912902833604418517178505987682785585827624554193417434725519366134556860582748123280198122017391737496352810492089143914203159104771111442592357883375891459235916530044608242521212650555888658363355358301077662877158066992435564240645422555743676469618989957776039166956618656683538491715528739405948388138978087924352169362734460592039995516047098315948694739540347439208727466522923039575835328318642741612125298783214051874403311326240386259863501972710686311888712499446263514889119416614463457087375880537198898481749612910883596058700858415795994932883002122894441602337254478733770656538426360654163395411020505697809942207575101270933893738118236413915756526680749063355596236940065855440979438301464923322180953596086394940008505167305319343385702729141003527599802600556507636081964615091265761675170457050932806581084636321694513977335545654100308218010231902302796833971339798682744145914509091853332663854090356570564151355653578689480842762966212126762665811908602062495908372162199981183274387860448265810392263355294772232364271336319556572805027537105866233489193535130052397959808371220184135500034593168989702773496192453084426062500597769611661909904781343909111499253066024207342246404142192141170477954970941724031336746351395365647878069030249301324256826542581237043708230430817190519811922086290981537370609033065329765083656308055633838126101886801953497466632681592523512222728056767686981397728920429116602666281126225210898883803000449820924731897527725916883594277326025629975775669511543475019987691290283360441851717850598768278558582762455419341743472551936613455686058274812328019812201739173749635281049208914391420315910477111144259235788337589145923591653004460824252121265055588865836335535830107766287715806699243556424064542255574367646961898995777603916695661865668353849171552873940594838813897808792435216936273446059203999551604709831594869473954034743920872746652292303957583532831864274161212529878321405187440331132624038625986350197271068631188871249944626351488911941661446345708737588053719889848174961291088359605870085841579599493288300212289444160233725447873377065653842636065416339541102050569780994220757510127093389373811823641391575652668074906335559623694006585544097943830146492332218095359608639494000850516730531934338570272914100352759980260055650763608196461509126576167517045705093280658108463632169451397733554565410030821801023190230279683397133979868274414591450909185333266385409035657056415135565357868948084276296621212676266581190860206249590837216219998118327438786044826581039226335529477223236427133631955657280502753710586623348919353513005239795980837122018413550003459316898970277349619245308442606250059776961166190990478134390911149925306602420734224640414219214117047795497094172403133674635139536564787806903024930132425682654258123704370823043081719051981192208629098153737060903306532976508365630805563383812610188680195349746663268159200812483921722943340144600034157370765619244303201823271355790728326422819118268112908690683028538243420986255893848457963007197286828455580333715168488322688367215927614584201469711329981989708256090029954277467719997198124877527974328746723300589388451295281149978907148107552330092100724849109226765997307231514284796598311125573997715721350092669836017462992639599811182027473128284187325331034203029609298176568132405509390931996707598683700619054342625277135662157288700906384379122247728789802004355606853550067889717510253500447942780250361181411664184139349257678143179277394504838273032299294304892390979150271362245564625376555373861083866232432889463281658142756698418264197529881655951554883059523890044832884689678567911129153779825869000313045072452921010751380828621736273572947848572593617922661947149657167169267321096034838384039483974211682527648415962601583865346529450074119433329422165874313742831077439423930615650715489457202377451038273885580254365742126997537010428797974341171464471845812369244525156839757714625857013835431371543423534480535632887649941961593204904265662630352997602131568113697662334435269050504682388991810249554525155558878380831375614909563274761637822205960556124065757330789344068338833055420830595186111649741922141619786541472384123040889851286228078733730520328437722873914658390293514152488568102317601968656412573131556648553149472803290881854199592997577729673255005921389754327801139281259863478953466783697718815240837044831034406983438620911335866394775448764682172353854455454484825477174364505645069724250492833571297764440754496582514475922700051516790437074634915277260281733560314474530745855359749522905704290406692357690508665061014731248063032302769517783175444368992940927028731505606709768120774574018441190618783612602191454905876408380299252065917257331514962346006350080835289990762610180264058505045400693953295509978502770169120137092112600364830737646426521012019438408216133423566515275833043115167141863738226600244717230470419502372039122454926621306759033798811185218353272466498906501591151042526540521925622607146786236873319135821132227673561865865486352959320225042305152321069459719272591342380765947851635424564680114673117779067697681505150524446780860252060019499286051134650014328668417930837969920058385270880231916502042882076182259388224461186574212649948002471811799825330522389184258298927396994010384394070546871425299802588286326200678083010804581683534756130130013069704667229529232537068631323470263750647937386319445052097256479819124385620030558334750250897397341518834293786567686806710502083761005744411447301989743425435064751129731931128190988423007264986518501746339483497389152915690053912224582741885241361033719307914876275226077785714898563814502673062553724222934220904395912271188732140035183231912920304862397893595699629902899459849641980422693654356258980085220226836120540259428218347851757028369589254623804164306261786632782098254706230404843578016187648753639898527023803167472902698669455632389396134260648265131529806875529747270737631472693316990289418925135206469267206884936643007298952956498798003001113760646426789675565438312330439648865962648179939117000100391871299708748408398663436170732387315343255441827433007667655828122122910563464504673359280853328172747333552234558146392163307407250594944907584677743750159798681813869444805434187357831219788698102902267029434634537986616287173580716591571126152442223083756258815947626212582185876813460345882105368802079030500558118290859513573410123463195815270752391498623826544349219453666320811919542740676698691835937604584212988774206444447243735091489877497335564516505824419329362999229894743104071994954174930278018613023720061976090918836344655813033680171829446730246993829750008444357734582417504156409131005343171820429103911243688763375782315401431580575389469061552940341307529665737211527466195046404234373026652409237276494062404100416131255498859851219729113021081012313161001815097996365172844780326834692852542468504054178419419082245898186578856089215017741741458285698006063353447851340627696936986526983756896079438594704538958914643092971503053042874843248630559742274449646169447869706129726931120844510642368259891782505330407163660901084957310231010947272107143920404841715598736111304266650164090175765384622257609504330403275369885860118284323910577401814213016155837217792543355124055803015109595053326196582466751315156040415258667024797835792748779588391250524896661232880983436682782846142404973960575824081214168875526225243602938396961456871933075653078485340444589984043996347454137998410140699991810436766103939323271808079175705054145704446135283246467048796839380523397835204238491026426359075354678306472763322343411468868572811669491125436436188277552667714629217481781540587731441374747550958362950367488295051552850282333613665709428917836997205845369815758070282286580614712843277001840637093050591579834633109960199584895885960731510116146679104925872381343591621851373211429026771496177000898289689501036254537035955636421251524318796192354429478326841264556843753324416890571119322793138878289125439834590685196657713714590500431759103694740774211772755415648189389737750190746310231820135967455721956675912413375274748779017127511780988769088028804509417281525332356738051831454584831415921540644580390731151441431391798485937139680777349259419724935489791318139132727665387998059826412214198955258549019196456838000465612969046830751382666452237096309917732489256567250973797842534905059733855643857362934081280490662050374585842740070039141815152104767089824024326521093660808589641187235117350546164253139492650554280166652484443348824411465716794348063207774819885481143891920865416312822010595430042004754493703076521278604749466061401528567231381078056953514660914576917805960597025322021233956940036779559289109245416219220361184101600198668730090290095530111194266241642656028846718894946830710956960467649258039128473334336754759716838783194391718450150380664964261348901023190537033745754908615848836491422577830948004816491369593974011018508281271790673013439305175058758210091779643276713223720088335888550679987990990696240691972313716605579459953091333798557395094738637901616096204973820275952333659993670525268862484810093847274967861801184270306162150394789149847759012825212261797725712036645141429603741495990954583072454485147157453903081778438519498491341784396829630578968094700500520482701804973173854565071627271570906216196454643516516705644672989770124485249372633793070291593909437125491402498900668586394145136346395571979430185930531101967884184969593517784936910712393990578282599213038753859935130941715853731846135780421038249448144762439015684585108959800444634736060770097705205096017299048192962110041770913293877771526485779529659193631150315210875651654086089225349601260072159090713786339242158030467424692611496099555828054088604550128871249842920795573121141817400328437897503557108600126068266295995487391735647412163264955117932803726550467814991940114113397472039323411017962178901820840018381763655091321344482826641801814260906578700127718156418968995192220359502838741269136845231583001126220132740771641542653538774519911085834036647637823123459451191248479298267205174153360620956703616123887164527973679148526214832322340392121342585038344517515944978853123458344393240280785750669043006874121057060659891938751305891531132347161178474910331315208201966338877867509730242145053016424326267491345257062220946879947992498270950901907605306177825982311465106298053333654933704310384333198047189530860680855684593866621118576026524254461805899330803473834951360994391575481432363001821504959904672743484920346389532645104719814823665907691777334710564556546890338225460788565670467703856752856943231991152850988110484955211939038025217961071864249028341291168532621853368905966745145362718838169199489587900151333648707173921068964168528186436691017619488807806738740139210009054190112311296573956966046848747015308843787950687294338503070182240864581694571465725882301996596513606768347678561683797414445139040527448719183267463914898603746497368236753872518108094983803887337409450637337996517830926293389667936722400451720325844452781595104404123908819506603090269648299343407548482159543108982977665018465075858005290130067089950711578745037761748291189898736269155173451113459809016931331447180543653791567334360458222775994698548221048682342940448084154851102250021148175834810199097358350165581053946104973385921712716809673577365535441099082367458815018736679590660703094432201234489167975124335504887914662732563656039850302996414584299942017805253525186098716755606519170545567439704583906417344966772817825636021190769391331085933566428099443533498605233826100896253580962783074867411493535136662197070311676037344644522438095837284788640714514093408621965176836715136605333623754259809581112340335494128724762049077094903621591925190957078642569628543407621961253781583255010613632839682013966383303600822879288920516979164687673966603674091662889529310052174895414806973596399389765623176607670886058912995264521572049454776807671083893940572862358633536852367615926536280424159563779179162642028445905883536185826126882800811610653218535185662373725038674497018690299870841315952269578571119172501426334730624344846261566044089656497970640656579727719556703207143061074254591705360754124211325845623872803937506253257217129922189670779639627773427225597698284653899719130127384374654164390408225784353530500125858150919186336455852425872762645712169871984181316562493145982236184370832179427010737953203245852444627965125071491402729298792590443654346600908505377662853443672994005206594187322735072692396277391158473343319060835030364551415770189036699822878685617724923361992623225643210813531931346363780871027765795690696066507251626462459145805960211807258802989574026257975295809408682054565455704283622387346311057760533652737952926630250211582807309691543019866740056826470367926038816377629125086405887382981692697835588247414741490068995523354170103659369703107795727392312040151065795330872591574866367400943796715691732975103439776012602768100038268103660287888397465653550233560542419231817089574316780905368103463564675577784042007598970491428789464320242013113939293296792529284272825396636896135273763251643411910340338826643920188616661733354126017771740255100539628547956692333592223701906983903409080895431940749287853406873634712712261807037556658526411647752876599052230568741655958873134224465275306565045620825351037955329551785865756377618669146628730538401865028062156220925717971163576970587723938536697021692036367916237634732037309439587771579617221010490264705428654559067359286798042306345084929111554829567051883400571451291198601166176552024560453403154691198374676085421346635891387019836045017207272167705371594693942348511359833537825800411859127908721684005929011735152703092875999882625684789617225217446279217837203152509925131188922705595225949445561335676535134106251393050767340991327978115974360845698127288889233376277291296786416410483748906715305424066208109775261763925383465616284126468257209450435513563198113508906004873174643555425753978111307064785759341808750899461359114519974048730716628802787431097643711719374389010096010599542000120398647773857667221171215183866037176687275217730580517658455995597048597635753554687659253551198110101186756114580312363197758311880378738216572261927105786128686473577817643980118568315650480301176730865101992136317396450622560171222124993796379027000884684586456250816828351358218284842754835104314880632155796895288066178555714108563501848292210081421028480359862833967855129440775777280744201089091564590862347906389137774478394650405502440361824638453711018034410472748502657273990625536456287142992983592935157647394305381291847686256483371096801705269364911269891305245584690059498948112292815637958748268648748559962017791463590873393921574129727240634752058518253354164683119734076157997563014287361418655562113098755901153621532133495227671419715584896303429943300949006559038983998353926477802067313871387405851888756412320982216041370509885377093875568797059434418231752741653267689448419831593434128000116538184841590975083356789822084228614387656488327322144762722607327476146283065822677184157968815478037879021610385859375507271841984058582168319651317381155749661354054385931083196186673204440723286069575493636285570961842877445437009968905922256645880653145257904713161336723882983302270688193192945884388789381108209865227537497473421358700377325627879609779161271178121723255381489812450267065478239118508948839459107289309018224682034133336808341905436055559941592936389411103272585581257659934491645352354905554847248508664407703171063282356388735968863252752600652918184952524208265916778938354635432628813112444056915609011049793940149476437854150110596495411053927344807468868680644743204921017194725044533729819980090411442925080185326031304294908099408503046029419219708198180087180111184609455552353489256796704745783401312226702234828114593964958874810394063324501144522067868124904702561830262258088343482959972043582605016583183409446315452409696800547331684135191773650302196354764328845663903052919396819803068815012889958497290733740185138200819966564183511290421638850203257945785783869865164174016226680008815419480883068361000888755391465046918301609653914299845212859812982562607039692073679167412408089700873606953246194898702223360772826007407341045412145989240779114108355493920972733158194561956455261714472577884749565384603921130018561778384762620856244689682019617856191100553437353144983721244721461855622700125409129310333393864640425322257507512693734113393259842866673764623572737968388677094230292994451133723407114266622941461595728098501274718391426861585827086443467291778716667716805660510297781437176752987999100433895158838266746754108357708914454192302185673145176460883322368204111472951906617012517915712720420994806637610655753018680601249216214476913471179862822107338241055415642714945371781241645222226939481294066015230875349997283451639884499648910623223354799657804554458694781478550723034327877700624017752723196719465014257888029626796950617954774970913851796130362373010303012853094584084107194643151351946536052080256768203363610612567112806072230449484497909686504879903895728857570203278007603868209468574369134323024456181983806121102704693243627647935264481824521435367220488953388502578533888073553900167739035721568550960674465495639627907573793832744321674165486146945217023559163253832012829109717406450801895610310527893277655543962470748713817877046003433796642561259728825876056832380116525748765879704840285180353377864476380170191957442760171320065557656009712065493431613999735659609613441399420141281448753737002801087248954694877246453166893705332192612899460226498794511544084014086289006579227424173261568049246627677216325690704412858599425678354753005578116448901867848720692604293279303935711860472309021850418515580214208271183154127466948631457400812768332472713287654264042986814469371853077074147072202540396473680146188444967551131009378690686582459507874798796924531952246445588482122546582910566658090142697654176706974212513866192424289735823831790432513001396331781774641063878757312686165111167229112352479517847407741401474885215968352418094357049495725156933287969806308279018658354367022090031817539261707445854562335413416121984829212174932607275472182538809379305734736740539667728904854495824861364228960977298931778973620631476488990975095847231825103016917680744386882088862144335698631844407618032307697766937187229767208449494028659175598247470628313067760669982597784429610744527975900881543585071104088811770010775911606007237692665570081164789283347114162524841766831003866332606197744889335715068397698531262403777865176980765134384635382329154232674315690063448344829359136715126817014486998135561970355455659285695077845616487199179307333545974201694304220714864834287457857119024659735288643559836133525756274892333473296997326166414557010171888025804167470505411617358280495930699005678039952809980454926547998455635260149195161343266995942160717534819509523463985894002083018140936828830636251929050987815207880904649972881292752648239350651348464396554613290685462635815587817670049325474527630551399045771109828399075153049232929915530166036152259509777451018711363430382464657317123313713669267172284608703975893936578420894239442661567663032405959057733719456965705326569739148979508953323501067210684171983441125084904179007845793270050322682966145830998959309217561604017791581568460053301781412892489727286863403247197584488104105064685436598168200451626916453456308298954020723618160724463423142912808158966943056119996574407093477006075967582378023676127664317154589704687168827009623948095814622607503106679831193339681640319928995738993371833646070305222739638755108599469891931808480628664376920446811997870377708232048965996873627138262963615173834371423123878362517983832520210490451075595959818413712812795385965173522318352473139217295056229639108603360133412376667477630024167992572429540835523204268052286498979851837491874263401870049499338102046174756959364515390470012384732900532738503999536785046271800696818107164529033814853539816409815205093670483904210872576754187367270899160535981319554265447701170733310558309531541661360356613946664041909352786637709125240730671627948733837379335703672086929998545044226304666440293906617893027015368251448224500243156939383967616181117131949891681480784811618358270078775251023746951735923299788349844522130977781299189841531650169497342686468581425654611487596614176248004514265751563742301452891072400913636854269213224150854502454140766866555387728485295076385442425513383387330015494302856630181798072488112473059066618764220480971781008290134323377858296146031313209449867289118920085627281248116204968649530254756234113711769489284025404289279883940809418370499092480525400199231077624576575487786070091220798645013713137957572448351002492820382977791488887606647330580547717451854102494025717014383005588732199120257492019422325106868075473626922492555186145725303710264839825512612412884489488302443052906399506072094833291712234315979580180936948813419903669120274167395166505528981544391743377510062237216897712289661969668510880816346893400747422328446306254078254039467861776296746736872333151549847174891907321263958897503316882314586715909328293382949045059659815026925602182247208112572947206868638126602056159875570377680263990649375459310211175871342407688347315188237361023071022110498852285337971590293840327669199392699010094112295976206130171292529591541412429292541627209437032058751617696356756142143164700312277877934250022275416898081966053067299836027382966334102747141252970411492128836651331932777040422123986176106493634346780076832995675467854474215866513539471144691878316161323658515769241832187531522913766486675269268958016165423873285829518957594763975275669334881378089157965618339877228409547554552044775445541828355162880391220714405093752612639974793090824295602476776930768402914363970334244125966568989183130574907540840554231130341253174398571596597313760192204457281058671646248467396159020352007373193622660195502940610511455880428584601328333064382004782537160605240656232798675488940507740826891430058875356202050048857399026160348831118937274011348556731468940226372161716353643035758567810064214480500378181666109971456338982852912053513975363270086337640510355298757234753849634196556758499191612430576067573885513549105584281551164960745455143600017754123269633204361293687982635521467178373227185915496863172306587335363522947876182493632049880517065836548287646111274553866327496403894781069802742383554233572797412173803406568387358624315578757096980430408867212914533276035057913121415252048326266113244840455322524027951509476207000907743098496459058498688243279523653281573232939325396021484445639700216867159337060551044597716707024365136080330371165499141709698623575282676040357204620035082335746164578721879982299234334657451675371679320330902677648067273022175983326409462397065110535210187927264177505435963446248500239850902234853526321868062746866607100646849646036173542233654737030907323867130345956722102184588952236851742784201875788233143530871095441642149403842905755091199106882937015914920211463922690174512628466265449304899135310887996039838215762232180263631025479547031766645124165090123210133207153390206572647577075345833298770161744199185066329212553842433800347639947998448847274478393429320757715522795224633778413184372628582727358844519200084725316759794974752878343351543680023525891337819670201638625852843741189287831614632762054982205594917157618541586511654962140059226935955316146752681782384916858646699484387936307213495607975810782204711598535532170443358162710657964039944840805970538450169509069997445632516382491586890242429834326590277841026282662065075101213504493166553108267951576655924774041479107105613660189914263675359686123900290667364046441369567136200462616195965134508166343807368657150673252240496229977061004953813021641402507709140918736147908742070321703020274542490270160115424479111874662289007102293187014754920458670914246375764571866876392041246296026395464754613267858304457731461173903876590665853455964384467425628933811541732973823705552090921311989989392014994716353416262811588000179710323107123758610683421735949881002667873014908616054596590185259251935885930388280831447684602005656446484765496892271862903804398907934781026309671522471996780015417086079646405332385104403580703476615154922453547510329877960269341138275641180482555858778337155965577806407731707186505642512812367421789393411183956844781621240359684171912972064628264480287960803132592190537135047968535468527884194514524220089505437256612059125566779428502552105153336854098087225639666533648245400016333630776974013825203295766120420935226549144948164053441210095542002486294914603317267549049162553984900037415858594033178621572811458805024113065303967128377605907454536890427105866508300214034898329158995298515117254947215470878233114956518397275528966983689544435377107806594196420462185279448599191455186678533369641648550384307579090278226555329928913187594364381039909833012766550906998383914071771369360113943562648408606027302164891729281956128065828415224306475681427051487783550842616424085889260819845645147570002665770545448996599153532935412278048367175871234760009951487041018076392858333900237537095595367117677412912568537084892895898234677712884463087940681949664727619809055531030908658634537778885316406232942314025452587026920661226899727861622667017802095581290897563274024925290511562167937959574112621906441525747607824110760726411646303695406546704383552749516728740336259737354312830590527577447804332606082029308581526515382945388885201601646014372633811370953748650264125251891617295229905292062616436690390706427528691193890589487282248319541855425706742070199582213926702090236023728999799139058327253458022192135157266812588088890701066140284392435113338841314354299371383527752024928184215174933708634526077946534608419716541001735928041719298566949326600507292175384523984219291293516120589565367457968908841990831186231516696902763698342614703229757171711671133930312025651425806781237498653635829550758799533488229759980132585051510102244354839942166248672535980185749811839465092052492785073390915839099220049922590543935948904138885378333309327800414616517345064549726151481632399043971242924675298284728739364012081860897187295806614269900802996864063039358671824652116216569429169526615697279752714667018233328932719858055986104611448388277522113178494784784461212705374348952805481644729551055104778077668063621100253779361965096965981272551552925195980006363301015060364923876555429457259744506728309447058787603016345317454416201965018411172610621927071824464267018079805699284383944393825136892894948974452594114651488624471032918610372573082464928491700058386474435459543636195842980546836736481336641397867863579066992344619753974142550831889307966890987499705593827675391470267830545348304012300239185118400155602050836636356766966559537503042138654935619088860442769317056208411958002955692521372406723616888601997661040360295878546986848285157583021756377196058300983888895192954430465269306884108577750930996718732010787304003918417998648458333055944681347686461638392832852800257666047283645102340168246493150709617504005916204185636667041805162402076538767807911739248705418940524766784689508089587467438527155184876676915475829583969371269120245293277071051796157410887990598765487035724669688694083569911326345623289886772290598520952926302706149482756922202801678631622750542205575006790664734667028696365010190354530745002122572051390173978710548888826910963363198245969348282523793450567208978605749005699978610725453528458484784713903400014667794581269871861724291208888381829288773557179896742551538123457505153662928843682497443722876288865966523339717669994798676456615009494054809887028881183637081148213044917740734466856326101893412621190015184148776075014577758156377193273778006821070034218775059414303312538208270676416117780128583452256804254446599237876464414489646554943385308067895867797061519726089834010226497285901769419055894313988607525846734692013662116151627646701354761083498271755547940148567323996505910591259512679650768390372870674637852576552992758140353410037033431461489440760937786244580917830388231027012882616291890976835502188742419522031992889433508717510579445521620207964105236124629344019332329335364160147209051686713814118014382987845371320746558799677838059904087595970602483303023560763451856237526245609288227792374472529312408121636661444815454938276473351657976565353004080824875579605589697161709360766436527301155766815258770856002968191747619693320814402679720019213640989815189940431994271392329906807768373498601613230090778875298592429101487390796955470746374002188127582456507017276921518442892931775952184942542922896453922348943094143656789821840150962850551781554077876172235524933770696744429882585687391512885248650644613268500268853663457851753331773846024314997109066958915221833447307640056108291080315629921073642596917763571369582115174917221442564132443847711795037422126334522503340662198361406842357421290616694124048098609009984981420625243471278895385317998020485573716714735146941567072568694794439601734073019015225668627512556065755552157177627971001938854552968886810687532067935270056757573705573966794983284084924991837949370239347230452263756192318496686798461223038540208691199051195084586808947273810521470599461390416663702063300996902632132148782881629792552077276955740959583430124751560228773249124901818352515788611527139527782844096607039135927412696167924350450566965779328251989058947292556239515584066785997708501778551506814707284704305528186109751596647869213572257794500417132776513656719074818361785470392891765552277345531884010897395453679559930933130430535820034493301961847300101851277210135535486052042656905405428380980238850185688623592140483922756417028108371831818655624721419626658322309821111072871726466210251706718634755837322847433656469097171887682120410896315028221808098426477085628043245504349701292212938276809499422867329690401947021163985997505186096516710535681142880918695568342240406579452400887501125835991188405100712969488114390274110467032638842951310678440488355152084146106757055861408546567139596993864302773182904866291172869643024063529439336725630842966488289335239467120031932393776578597585051385329837865390345872544350950256681577076019940831553091432042796192862427398259056496047039227899079952243653493713914687758718222753285871497881786682328798559208767195070964837574038200003304574140523256383691894219737575188386514788547868092256686728847045966919651229439628833317996989777065323795262983372305665662849161870319685097719384194110698070949618771827999015661416260920676450162315850025757307613435741917932002173060144886824182253254986195578819239148318047006348922101234002938583365369249232292250632064464179549797073074317751168473642964497682803274216105416377284895431606668311082132807700825874709502888721779395070059756588853066456474194611947931859746408138183669756054505204834744286297593516888575262082931894780379259029787987182768397753872160419515494307843309780528360013254796060756500416009205526499336338547895838074834287189857864226832155303771444236484195446459147102200556205142565369766583209252182109663765646888655362856789761312613436479583960030528301109676937567332355171017659311989148295017428438409311048584224589381553833845002688681459613989936400447895862281628301101378087924081612439181266134595734381636158080175120489092196382823669292639985643874700542721124108124261834398021139852017474143812815515116541363996307659188420345112482793165814265963523454926366919325692111449283091640997473576670514600764458476091213327902820593221359733512797511727476221406816327601193466762577071579000196591247204338195949537084713618299900613506293022611636139184319413578898766193911568486927275899634859086070899953153289569373294834988426161908938728606798954265330774894750989006099271946514029994598307114314589230578689481815157086010544408855687594948803866587466244671878746914967228022122705952838730200667589390115254266270851552928467470855283316622450935469788372984164884799654135141041692996611802746845857213595791062567526151368801624187370949663641464854006223999465903747054176320731048621367763153425679790881748941135258063237170753757975090851700623469404379547052356959804268214095023316711377211858910180041678995266011624669441877911431275995886071943574522247463539833764197193789633778568882241782417319262087752563145228716649153907926253915446670838672825113335486971693678296541521755381252403494538483637389175660812809536732166211518776153967577827895565206273800283710396387942780418228859002492261815444453970758241626428233909252264121462717816731177959120692077698439458093052241699522725126078737837321914641998602063597623886271867951974215523136541036070460009551602575483153971444796258970423390946623141414636659972627138775401166162859757214974591210059403265929092114523774245901327721455100268789274260310419899898213546724099322507092000313821304863905624014070887566695256166222986209690092116762721117913949154816147247808455300144584574914036780321719395324837573769867279099868850294307393241359971577980765419473860270788114030190341032064409520929391875551818179209673943867915367163970718409940557365488586484166716017048931713395467296425222720344000749303595992464689688502610358864779858065992642555938181781437661372628767627572164174308005155393453505327367113030060109607325780997127663735426153848935079288474828776420927137016233578684332752209380550282895521440481706123488096736890631513256571409541551747384745096700547959966890498096301734001394100985995800850012901399028911592129976299891558084439381402681152213701837001306255226251978075464684380425256810281076039149130544101428734859788890148771567731745751422132553798998412711055140475635544747679234567468219314002704660446276130920080394725390658004394287707549869318934406557410654736919505075596205283434791365766328399524499077524613313449277559580647836736417591837727974326969490971820564079625581123526769865371588575427111611113350873901251679184816362394367789442975898366528898859177530499085594155016592090583065578659619350767753465078455290005421032216748256122619181914835157378150186797440430653469521337426544877996057543549825461212181627841983085265402902909130691334558660165604473127348593797923486074424425299292016080778372163018991756368393156001336440965931483426910592701816295977806704582020643427217422835273809748326618479593143568594711515426860142298928275831990085146771156093161947372841166917845211049394999707399259473453810114716001818510656786045137973037597612731259564178708532415477098219413717234526408087757807563875783943874118638388590158747323587881264927569909708572509581553231840187538609745087683946635703504082387484322463870465592629048138980328810120772929974010608478763484121050403099811484382219029339073449500335998331004247780772126155145285026508711952210099012361692850577591086430856070059186368779041423939233933098406387450336609470901919927574662089471051500876510842179040341189028155551342093292962968768029434728072056099903399630108991403968973773234629921835924443888310245210167362158392022156741172534071381342433121706397401125720168452076442617717736154689468416666588213421516681710027381054536978004418705492361721428260873672836148553014169581959850753307993552759096474254451235640700621185743771723283270367967289677438590796531439577865311733747341981905036996406776614551538175290051079366866161045715367296778963628075982118373186556582205227900841378592811366553178439313414283812212762298686219824762691279381847422382640693345702514606053959376704123953938394353142987649472197264179559994828172103915767648611831778598816764802722522807344142012761153933243952932381298076566832163128899828703255772715597901525778090279349272956246218672408005139002994009143320577504944339372091578207515107167276160253686773248089870549739518678367698557281427438771299335144925748853646240455406528320054281441151085904980027297720502085458391222136530937968046422457496502330837534551284202127080218304126986132746872146216817418365386694404390389499887160917792746548337379769204365338668907144923276848737655482656019175245409702437605435879623525547740719011733536130741657412474455082223901018798418729416499338239493432865847192330356851665182470897359986206678878602974325888521212351495910865326702630681336446460211554731088704649896318622155383190228377871629856429764136853746453426189008512519700718720048133873815359875791787143876973154278502778979997663440957309935210107680038592475631050558039197449799824005135896743990469930408602735347598700167920617794893938708836176373465496822888000543941165269541536436086941868892952439343039015616791830853705051547535278908721814813740940358672599097863173628014776662150728558077801807444638874952980692536602609290067582850159763288712474942258289237108620784398945159371089635892517356899736452049789610002520202536228342021027340754968746369535530971644374326082019588730804563810509088366826248392999893169241479446068332298500531855652311396047350334046105264781888210314279479289542039657133170227947410742271758009620031439792433418337915009590826634305494238568841876561594945534193428718512902168201969375073457881262948113282213130133966209854133688745577030102660970271318507784554381982753211806196921508476490239209407549535173155456094213839448508588943308421020609171691887781547527393140741744372568220678898982463376978699984731838519512283732509004304120119526225971389807800552565374981608932799692224948213743948747827079394772174439921089962695739114332983270898241878505973097906578809176092634997066100089709839863154060126607240237582949145650715781787971599961370119804030382944463506295286428039241404560339014427477891139406143187165051357836535152897537647048282781471676198467485162074594282561403008416847233447222025260405761613715838359239271140182465538710271877201876607759286281637935325798198660567333449206985983784740626236475212924828031568131728775479237931630716290739383590285465222828533567978805751722303708230491826935816034545129286448422620115125068094969308493242869890897249387688059281329170428446755191064995876249264907300293072308997979068087186060218606090222181055886586628065693294406853061503311407438017225285831016724989058868706323369037293977351169459518924659915556595787293616609443661423817001997785981105563280194112221303797729136152881132784350332971353749564509008675826232752454257525961607932229487140184811226033052405986765189072328900982080076100213359469998227374456708045098258626764383310580026243289183428413640764458533082834841895403584689623217318833554160994180301048125870530016830270221449139513773021288769405543556046088290016045460241229180363405582092182380313546363096490237828566543468910924180158668124155362133803874422305890114469223262950433516119058367270698100786128777072336852226166560817226121493733951073369500080482131099712305398723182108405748328405854244518398203484962316169176997797799967198742350146886889736300283542082020590931863506213251840206367292130165348903656924214819984348512366831717730468682024715128503986262193609092580890533736871162909816179565574058984043590836720344765431689378869458562382107391037625739174959943975327394990704823487425625339327144379780482490207930923424342388872172962084977079472801594522040567292603191525181020182211369309938868150962368381862047243229173470033235639572240485598002698449188387484320840513486500445719082245603660492275510755884751239916295991436316088108321508887485999220375709174507816545578311658595282541757970927293064420749903888499817779032867651257071271503262730202691799154039473483672698937626336667334540300381669678699469653067156574735590732596826473820651623129231030275125331053737100338600022898466678058722465335056290000268021237603464278012322700729878048095294408918768979821900583653069820746548251594390211574905028504806333932949129021748455746129571092865019854497378448443505683294764678559054826857176076001097962519015535398218196648597409612893730952302226105834382193233244897753376729113163085163309769965924544033905923045360085327834677082696503260469322655170020160950582484919528301199710387390248751751763659606895535417416437497075588623453217216620160388026105531198185301571571974082719192947560050428077587004043120279872853047476196509458041380825188784166460077564559800795242447850658149176866314293677446947814917290338682460021234657419521959377233813987990333285673828004465039267557124233729343733809650375153296946232645904904603158819899942998863456638888202324021338123034914070947385918665519167644382755036396032256454707643616789598849308282436946817242471774543308374499869655346592176835711151315173941271842805562381655148325678193531202448415421876875323278091718581791834350108892265011508689460531231479455292300535726945026243913556160507837436059706582322758864507611930724430028864658280555911450335061743198292938269677032085113657862249752553018599995236382873871285372430352681850674129855736371966550899379070315060627544237034346182645675693392630916809675959963603699608547822618334241508552381638981933281207316404780972103984331213494713176822874310411524032028224867751417079843186643000573054390654771620718388640826928345846866136215908361788229611719139405722718577686281919162606270191871263422477952483727589386409854942823655980316146286602855939449690209574941849300625070664673732566130042082483931736120337100801229566672204709461475981150623873839820274262604464510887117145496367948871510491131589016433850810826425269860663815695792071683470411304886948835727318464482176871119738923851249077533536996489060584907279815082545914079226951984299539353135744991408589917180394834969230598086751235610583599376692647748558922878133625532928228327456048829735413686049537692627677945251555265743267430878044091763272508854674716052230721269123086113786088096983341648286265230940202892779126451978453809611253520527770885121484168452853966073037406938170124276292615964362841614273987313463975859902270251773603282059387308816551905115177816358736240479376726029796534529805181432033433851663136013280939721090021551957011734473353227005630403308426428335909520779025236766428280021153922728129747838895448860983346062664672291670388896513177719239829470140526830969904575400348271332585462862235916894007228258492127008742477150459388286233037449229854479723060198131173311909050058530268233233723803806160552229490598652139567592126553959552573897341392510769062917816233517413837911286162556035087177039010796961240979515028145804330436912027697247748404817126591943676298003337061475765062408661288319933533422067640368440860885593128360030990304557329015479059042559804520469174572287368890703934779843310083792432709183073198560932274560843424334170301763296412644964400892852027329778448061375318180760358819518532569869632705708081795165024302043783903496988821350757762820264563925431403533779794083460656760132978229768338960505149675107702070536943462067284659307605996378068845017810355966174923899316970680080220385051434348712202007917208260612303592115516384681446422728884130950329568571382113482221425818006306654895600980069649161086196973582025906008601417177073501728456947355354725670730962223654923827654058743078059496737219233113354044066620179524467649042420677331093231064914473647938879072978246653400680327598954994849015389263029866684915879300711331816710461429884562098285818892874316583094403525953846547382814295736026429535272488861269289070920328089331839578011125137417579294177691690228540230147045754451240604717371846198190110483978063224615003651178303875160140121252464544759334359209420953241421426973237804100866535882335865955705342192455763270647582085970397873790165815012352578522217382959382713656726460086888192576673909158808706824637818810721367458294829855563307589093564911702090780911688214088905481221294859150536224750539353879065576910530856159488727503591037760373410587672216618000195242855236545189958219591106845478591706640170049449697285989050981680335520164992429522323952570941926032927986152284314176752066330616601491543570967926113359853973707726574815211790578879962503923033572680853539725778915664741518440431802930826857155909541148008732034105411765728591819558143265352969052228028432530762541606103495083025703105613301363737396391893846577250034863037782843691745393265463113438862294741358232828706621926761413781905010834148487201922292467183190891518512733670336080722851881342429881533354186217899620598425942257282946320016029078110099030471129481813115961722178494200458488403287625890135496425688947933293010181643301242512852420605038403081666923101385628313315491518952544057377754452436422422169040151063916087569927652742054718246707232978832266354653940645423308685371156662133760039865432595105800650290996120887462055599255859154252944316908351601076993943035852023738367895719531112399253410833008962332054653567778648297918246116081573104182627491030299661943807557779979248652289309884452856147726194113428526522636656463081785955102654236234766133329036717184571348686683367273182735802523799535872828511027412201465489220807493177692248843821349112238066183107994550921336992717022019214281892510755906174389702166460774310907800930890181420377718645387754202628640010736214249618691242518929635032663071833454611933746922444901540263967318897203768385081297853959167254922746650993014486274974461457183630159911827092351740120948453938557125664555389001232353642400880907405551747439590073964986418185424767831400574041763973107578937043387632591723880167777960190875900754378981877802654464664562094247669375392267259975756847211776994646316603096226881409458392947524204566669701794647650493074132593976158810034665459332208876050358723943238893449399273369140377998486769395663541361841945850847720051096947832263587895819260298857531464349664463127600433236087452110519357811135880222233861642100770893898311287576679724669070289420011239134489923021677490474391685039737438264810251118339638790790579314003201262717794905716562314340670508297325952613924437348689739591953891235635982257437480725424120132390227723431375326407012594151882903578157844761468009599126216393476774756109935670132448203677111443201461502791525678939698053381189597192175830562378663020245918537239483458466383872278000580713981897158156294748286099221673046716421184720542051894633516495638528441529956469928765018748223415786860739254090816736395444637915436165438576181607282890313854194588863526792892015323434996033610169802335474795698285593162897522166871312888215009023657087734157463225536857745205098117618393638844871702459598277923913129666164575022321274863729633634312080941536763307447735136057936718111839846899047573065789312553464771012981764027472500025365581188345135287636679512511016670903865691040236879429487786297504332906004466707294171223078262691092079385764739801135114579135250375146734247555743747539262401367731185372480392380901750231766894100137895858119500694415938727713820289785339780904897635779470981947818830827520841241551022832089663264392470310943441449107073478448441957075219405439258919595388263303725303278928979982459360766123384723784805449496742205382334459126770974454498008765308392239745738183851391135828106300016946237640668554118291448387135371467003473651510887859376866830016645213215852448698801443015837590116370639714750745027350367681701451931144408951175471837961651430539438086674147315768723508395711943843084719981296028659210791668082997092072012985247988675130645112206122599578904613976806290774364515922476510121272138035893761184428118071383499509258482010424938963563059988189642203322396373224742280599866492698360229592279471692330261634011269431996445409059169625190750365356165141122197107799613180902734825255243137140428142344531656798929601618687869474686294809930206901186593259738084244020514606716536234481623940151825847610999999398468986738950682420684216238788355618461282511650105720666084694654005630480291730309913526057504323743940999012078447701802101404989021818462357749879415209106512380772779561021998816664731195817650195538929527343141196503148392992487302920120856272869338641226105868075714112572559713521970078692269817346370378769988355201598125113790260322262070053584289762818509744523777143743886484775079315904739428967996432835719680419946286487461876121174112173671217290170928011299077212863180097815483932708367098772556699200705860541211166898974943277739083270260825134688350644471031493526004352024809395479425052666171319102022281351185093716943204406356412121274014582942361634492886168785809787855565315990397637996471833198246866456954827289493382826755253436112459490339935391658909530842023220207607300649930609692546158349898163588682789672415755744256322956483783244265785547162962787228036565631812002532298685928046583884166940414399098034872036081535053084759538738757030563294814755204800177121641879933881845489881274676999028832307387809060873616995443646470025855051502615872030530801199549114226447750636557150914761357381767457133932043462965473702649510007799919091697153012615297526574149552038200173447975095928400375558452900186257677767109856492369093521962175314359217384784894272167610467913289310990310703711163494807424513959266713552874285022381342107411385685554749371654678292847214491297765781572563296487388792623342785432202482850937265358672478942384961446561673425398713066788677808436414136533023370154471398405490970621218901441811294659656666968380092183462749495719319028519392287482025219175528598216671644652305004002602950223876886487404615274192338250134751967056255168860242613471460420645729308817293081570638467394798923439469761344980643008830379626088311842198428672977017573750623682332927520929193213731119707471316278415436936450037067702755342025404359220413386049495007944775588198031672730058773796006652984920329492130421307455284003885434951808707350951802045926232811043965990371812733810597397962653059048304991776695354093738688483137581486103147240482725706417842102501036874592550523556687962485696274246432283268655222370663636334477813132140840047507350092317744408600435660958886453917146880954321540421250968238825108715659055583263220422761272419231213310950041392437898202992424314397972659508961115269491371083318043454277206370924028684547136648019592830566753248144124283174428134703752259377369153820302198005399749015106272726622135447531435455014939901220523078830432424130957742152932179464785761199554294959302147971113768269408364881541285139735848940646847442383094761282279014984173207482802286433066193551402831532497830272448238096375801286502793428338856654753957600239479648274382831842322811553009414397909985249533003187952676757496942824250571098336123660834615635003073120695125594017222847945649434083723430820512893039087500650789819181147105633147053508280196485666102955753838353027472187739765112143473029762275426253362232877717962292109967882811219245904600377222950632849273138061975893104994645464624759564717380860729345400103565053240029602746061731854922412105726473699610503199998104691743671729235577674263220328407458331205786549900369851986341393510841286971871564280023847480035518474128769701994824701437097685307493618340150609859215672164371128082757306680321643162393908902784119468127582190133509368267407058967210039458352429806437772233486002577137040038218204896791690679365836269136607634853885337029736763835364987374168482485502064570654756065533798130620380823436120006725255742730412236931346283488891273071738467844713905511914764397879206352090830647185159907961711020703392406116572868921962962504483757189332308339552400593064055848378114838023573508543053890018527403307698751257205487789036260548236045828140101800219746270875768449095610526019023423806333153782834407019497377084792576270001984262329126592433843929796086825425242103759371426566647661179684399942710702557476210867651858051462978105863427368936549124023659757957188205775508191253622546893633931501364530254286039223741656047367488460949337354214868592551418763253349130441793086545149553148847140375729753100591567044868216087470492798653858928751831961791997537650067920448537169611927410475685162337031026927703117277084888130479845373449685803723986897134237891450371309871108109502206878612147045158089824380812263992178157301669432436584253781526246804017908933584197826430364477923630700371601728026673191173908764156798209251126513159509397760603921683974389959859928631850303950243838012583548310049234690939866493646426686864987322725650546621645209639403469568899670102882576708327114907051208008849398772521845630743542801599404068157135522064881971655086967005617740015814630403405759595709362823834977791044853511013098633668370788909582183125874821398454959961185534281932324505732518152805651923371168375828611186365953414380624299872721687785374796945177331367665527443649562629643678006410536447129799112906174227575284174608316777746822925383900985274746000895592964842246737467132669651177682942298981673740222007216001820178398576627818641020134595909982041895426370254127223188295966521366247009473797981568798973726642314934254367031679013232699472724823303071530372654119789292894872330716407485533227891833069422561384304647963350499780781535280353355198908621745880987173913592263608179801477317156139737588134830687311184507285488752709951215346377104045189027608072899626828224642051961129378398313263043285559993596099912459708177296817054756120972352098127284498448194694145477060135254156777699135759391777483778906485667402815589686356936693830743053527348052243671232450736997772423057672656914101722645640815944360677039238866694583015970123844159662258627115059381269700872821995970885051163826605594455122544816886679446950319198944745818729178537482143382492896972297870479013381515704687584452466742013268549761060836023994189513842581327083253447377741709110218486795885172651121002803872486109305612565255348230304753692054507122000628541283428350396103307259870525555920618512494833668591060869980310555734038217346669871873213892502390147117512666090942465787678391418647564320056709056560298339745569207818985392319589896613192098858401899924409147460762091559814688332524588022133951398149371471083272407819099514392712799910191324029076017391915890791994321120873894512100462005201843317533237850345988707593269083687442822615663308332030330606690376256550127211172513262215454096680498581618796702993310243939886441733209264499493616517154947042670918196642320621997934025295233020855954821998184817459438506982037855152332077153104341725992429633937822995095631873497844344899470414134533325623636868424871439120586754636957168937447420505863324423353259850057924349908518503790100543625084611982762170499291750870677107258479100395813390997327876041145350419219417683366418740086403783666928429611891804213294257151418442460740487911056805011859460746308481813371156060078690385567365161858557942018843924173645311039575462928306748904354599117290141838664154333599806523821294359823217584989461925303991477132266439762503813416393630648601216689361092865794448689340544617279696438212775996033088870088602938793732039905280582503209680814302568658079452867459241019993444116338787302969271087361785636135429623339261565219128826973128516263451571946621217923416607627776687383992980577146951165599437830873933552483618751617803505649863120289487336316524198370193915228173087054855089972647290290290605776052347218278108327161987814468133127999676401789287568768973676817074192456672730302536232349730777517141956093843059379206096917903520174715520808956904431302142657537066812659709599929640761186899972369061745610747722347144010806737212966836477967802274615839107920839425987240205615733693742081876743335180434101716101250051046359024200182929673602095653621741372916780952756376313056740061496692740033095605704801519377971838931128578574703496872531822905244250358995259256513480408026051343751857364837345209820066480831458910091185457018824937730611042540099186165067797135151894432211437656913330121638222959798141772510298863388387450575343690679883325898101194614086578119580126798402480556513246796368266541598547952304310868058053009310901170030296174517143595757012470967843983485030109349622767490124707648845663683299004716003416884916755354084946132732483908459155975752982481280207889501794873569672324862960863106259153290275797618308666193058913148669607268992820181427481570894389411656076680893658288408656944254895418681250691356642582925100349967547405641540143756199086737075730642634800578398424047115159066921004713704132853343028166201431616473299880040374420510987364074065640178067747924215290255408930522473028593550724211127448655571466150029074611533788475130575315247538724517322530917423177321189742820976621527290415317398504380578864481896627866224805944066550889779231251453865574331317833649645216002684009397890947490935098202995137084314871735961661770037430612070085595344022813826218642278928816646769923363552787025883911132288201975063362168689150992728590602541106655573160587548706626568743507916449018366416414952444427160990450595787380994590893687711657166113786410077993432523478700344523028983776512818757770672071984248883305597740564382518791408217156441125216289032790081174083529180266413678778581621605268246887592342987822467959428824670694062277317704131442519719444290115403295416043963774827606534472417412289399171959441394726896371031596170492988769503626757039766745384226579252247925460170477374302933090922218688949530293943010471380080260312898502485549189003827486904994663034124743093019362672908271243960442568634568511359709066039554958253274735279250145352648290269224960550712492690077422724845343494559536959072774424691147724461551725786200692663717274543204069455230938636233208622247530679208817122147606320887770370015914628015738250842762928424662158538766168944719854114752741845965478438165822726352528345050352591525778307022373007613145094205542073467825231485422561798085285898842637156561956814363945400877429893875773368537510069795944362622042821418939218690226532069886892546137853469875465304165295708614635774134828901501360317670371067586260118023387852124375591269947843129415919733737535246526046482679121534815794813712431184519748764505912194785659865329805232093264872993079237271051563739517781574140627911113858196409761365476039445905124020993281379021223996533779537222176268807497866770134110722188836126818532242389376233185796861789213335396682542114475957945112646906881555872474416370452799117505806315002398961818540607480401019998719199887584472171644107969077936233053055199671508756941442585029611865742835430180322146684002389376677145176095904744108957600081035483833520222399730813249998726340843515755315040945027785622905091626368874858465943103362053070852472321568563944439640978886062684859975792454109826751179809227367637868227290012160216776095606697041929694507766144895213650101465939390975388481187706117367097038277611493850376473595149431562773136409329953202982117992588741867467016430264751412492520987918389335203475784453197871333217108458673097043461192132714585874225088948826895938298660747362087966463486218470244862870490890000449179015432203111040705020690296438100469324987523264506442070950427920888717071895375386246722161593479883767254649872900562321782200256723438592417376225868398845914814310926595978078844840892261586626428637934116130536255087630302479644906936120536866368022335827737037969826120838495451237633109197357905216384043955781242714781513813635302006751868094318596690320472391748606053440504567429363971762335932416737382112089467510885326230512478615047314233459164886327890179501826829292906546808506230218540018958078399133753660547554070901129201563261728323454374485355397267694329962352281841854905746036410314110000144566275545984946305018349981965017346906333769393144449602700465644075834428798984586631742043008867003099146443249842051404772773948737376876542574229165873756590419286724213069170488180166132841308601918350399090294316118151300602888704760215847730326159554576082343669222092011117625515113227691235219268677606569828495478711729270901602554495904562475873555393539385513892043720240181220365432390893767012438173136106901105520273950890315767223597454824644516385018353313555081244688282762709214542578967392073421594943214708231602711126519199949405629881291311490959439949382256742890343992939760842240834001780703618697916510881930105181982253855206381800097287500680242663646281298112921055346082294238603747824514980451387406522449378607602297075588595394134476585329903813622080098857525811034748389197655431183634755335654825460502177207764356572270044569365626618192333539416069713081888028928980304932068474518135080969934470813069161808818096642614874655352201954502036897034118125430763165971650295916149255751291610272731458502581786086798712575360003698819462243135188451881743915255415225327613056747399156137881622991041180555523374077797683650013071640995284442152696740194906023883905525275581997691287074700493176840787356593919838597406350030354539628695182199257316808617658982038646486797374642159912061907702258418035770463874089055295572463859027304725714783707673807281799509849105000244523737747027562158422870969532629011267715494364161541530941165454539577045595378854401994144819310378617097480609649161014315993402110396750790919257318396111886061921902830133075709281588341897796009328639342619632392018050773790507876788314250842296334104175053735259382528191141768114511834995239790075770627523682295056438658401364631792610576150838450253503807658729902673934255544231245013280664398244652988066129160271098710426275292495917998950721476181973975314503020577490271495776987096027647249439448150973037327093855885739864187124812295664055597077617796417435702702501546735106502802909458108730441815193850344357042735360326204386658017594775834616532991430716116017472741643226202906856700724886591401738415653853835411619474112832902395877967269520425026955729269338973588122686540777844898552883415864969196379335823145881664664175824695975777136047435405057933409418337554209400492205833941497422882316651183123907270101095815680214586045912250185367471019467692220682350253759383949893491193666628128514834307297709076210803255219123722517252083549528105415594361977610156017523893619280121745651931393172658531077772036505093665443479833229805337058707022802024937647143279855973988004746649551212933013254575653679140126463035967324397909650590998053329476725609452397518195751028038626029782694298604913411464879730265088231768336949078159090310696206612764004875054354430775397925004500324653845337959351908425413312018657251772912950024009993188538703798303161160738090554652762713869802324669641870180339113184355844508231050887898609341210513295417834092264440268330588696526810507150960921567243985601796579561865778005100546413877169971957007494360922173307449179483975488847091211458735762116447111165069562154361998318227580584339609391960487663484969907023678752949949480875953381266411007482853174327195437202030732628460633510261750764247865015714998743262266202362429594786402507089725810723274139024029232532714230854505309438200696606131455737550570348527299295236368331646963842569469191003037168107149923608348145726323044851326509209959706342668144999662904058833369185272597680774461373253275773396435235608948887611077007576339417974019851321994600180088114983661942958174626209885503182780222275247020443090485268931231511071147118498941303759530455119525683067551799534330808862671176181408107911995668872577245506311356462919528131711268379917171747929220085248579098621181761779988524701505907043530947851917562955054140329667766704169039737258274208288300444671419685294217193860651818755735896752728000023330748415068834107496368992775001754095614566381681929296623021260756097003130036560963071556793213879835812472311773706849450206763329938937844621148035108218974824993322967673746482795735118184736826227375485958918514513051329685301310987573703016806534377386449930210545029217117307808515409412425319893245673608474969141767215119389040929778864676267915618511236372440163070095638898195617401456398766812203770253945858481023366195405754312651133493238271533193074724692034362728337008194110200304670213534086443012791714829839953519696786545976507707924675421820465592182239060769463596619415960050477990174898852744701404307910521915547371634707599529688350359293467058302409452815313603916886162734144507144916342456088781715095013441301468147997111612227364695018904413208926239882713223626587107643283736125753152538511209477373526856153359608567411287458230972972473356961145505171235728044184435646513813990952008666058260051812263750618692421004304816334025440346792487982990792796288346357300353149327701310387376154480462542491478131781245513961303636801979788773168291252826143408354804959165710675333220270876587755059256050166750990029455300305539148094163733521215229054022247435391311390926318772021248113043489570004209070078205126124972485885388584010665063760907379275389463765315883720656712244953790065022055968622151825141074146141931090078943712277882156744106596947776450259731395827026489849931835655961676676398733425333730190009728183192304487873655404981765498487094758954457244019767707951599381934510727578639409859694270406988283515394673145490302601412171329964344132580830137175430620924569865197738501816669545714998692519369521087196997034967764275901504856221099874701428187206778116763055511901835564496453145917251373958047814292225945923257111226060385159887825357319074433503774895581851771436348795707883133601799826471072661469307727361050143473922476984688915075589750194060158477452458659243426475370078739661543934715967363475924804459907583676991419219195498225917115881560615549493356121373363909165233147148927998624812359817996756542077761593776723412110640303202981080592564040127486657586356217162603338784170407306422275785408027113990768896837393293242294040570722278361436922353587101323318046534026786047970432143956882376307075206278584026494763621866382548240632426537139305334134087038535041484267214711251016210904321812074111785813375826523178046616575102202124217287331105834771379986804944250335521113880586861270223886252011920360422637761895505565818895492369770901938172482970664315751499216575194713006862239915900173326268789652033912687778785989509594873178026168961610266055565057211415396206162924629073643544914880621587994541533396937866263398094297281033408220450869497180678535693552518071485439708715476877437848137765663648392598086981663183882484442394967221265686246849035851813210266097404783777181119504341489360981200035582835022163517643402033072565093197605614382955399241034607835040837441103810842207333603547552148253006987600168387687384190567926227982958481483105402759498046624316165041770546639367478186451012664754586986349981206825487213269586281372272308164997030284510830472476127901461054072766841424492928334201375253681884023759739147464722783784028994129722104752192619466489941442873803355659886519526030163510213299656578946943073151059824930936000299019831594367917091976835037717313996970275835325054821706716420472009021333834967832878226578851075876438606962241190932646713535378633455945831740944516156933544628849279069869470593937998320914370567499939622118139721636436105142099772689105148541630008672290082687740836388762580556988295004417595819041594916921401419108463692243030922399076410049455120839709660784723202471890963594055736627940988568910656508567146700029008452777686453942227405790383373333084456265935358949192024574954667458796505841536053418272865906598868964378986490364459501678048762417140864863214012926951912411402201188749340456801976516790272891376883971650751022179731797396353942446014271471254252715364073643674216304273222424518189019363213753294862956214879690577988523579472961818342229671900733531984885932142541251479251069020423572414095853899089698613626592375734311669413788169062399677790401925193504634584037680018099777911141584100862181112591711560702644759400012182303843292977608506486714794672794985900030869483021222801424576726479018765180131524215867145352937182802831199606597236025142885429165305974005084877777499568854700861102326167998131908087653470460540993463564483809271157928954790222458906283753014147940283947819984211566396060867875331093325509533284598787255383321969917236513305871522734814912899473401452702940859635970876323690131834481221519363415163261208666394328457566695014502496376379763845716199967781287376167374875822563721819136520807623426254550401557079768687519236080214913229185141918232153763611990107584973221167947632698558698025771939636788740999953390572419113413939583744600264334993447420704745846523874632812265937991390647753228829565999081304385127047498714528142110477633738682973495283770791166364161821938755145123712633906053725179247131802225741764907534525418927262322218353355074006275110632717273450758634662312783917762590166083551168407375297545698049874494085697085174062989380967951969723879947679031261529427969660735238458657517048553765665537287326313273807371011428435239590585467028487520557458734098758940303809987198020062420721069406187730442268541954278006729342260924027226726671909302121465071269846273203581606105113461746450012802518007477499281568371021633823242588642499542694030848372716040001287185959417396277771961105955071211182384049139548590139577847180713624537191000926093525479571385468835102563049853689655414314457242336247815389960026971326898612793182194394034317489715555441141052296515718690178030095831296476242642559165237058916528414590127283068017997836219482688993774661595484574882322005459895685579863497386602409709611005517110070513341921204266589698533281405641721824363128936846504869677140826486353004389894006355772024874261312190459885183183325994420703735492031056344453405891031520470390926311490321693400397316633846622306623805804106281576862624789422082203262751460335441189606124537518031524864111521227287076506923867679208599664007980618007755480156804396580166118542264779661305421939700734692056257508599081520531841873888955437891461583076287527399521980986464401969827701877803099421056096351325420982844745465914711146515502712449371705853077975447243481019377995571595535530615661160782391240559267854997588446381297980426737642200623916411124723586635478395155486347442575276094765997399449974859575568733409997086086518840223679147729962044330799636270363078876648250825663706855182976248044186880983921629870243345956632720371669517922976085781410774639375102128370962770030071720830862645254732968118923158978183972128638318900056950602956764810270042530442824615760277848094434942854672620147898397627559559873104714409920851345574763499053402009488197946205485831426378159695272757636622863802005580545978696716557152904894387391502106888345266087779394059117041325713924207169699762747837070299397032492757917845407301279026180438932533482253418552419944040794667292654619513570821065181817979323885216829890636416392887136290972563925677933715410960014942533631153929491625940379482338897318042557391637102814485732528243483358468059422829304653928107531146867929211741988195343910261171782381512575076176323665171792069647281726752739225373363032108383556493354760105520461382683149041184874179528209829500106648526046270224382746498867428408394962513787843590420107230280279329826202624895804046753953713510058159574464540468379063988802045910176360537349977099554884300424769701795328648375702398905109646074552810901663675869112862139100632105341452759609298885228844331036934882051247150168479102808812229209894347681713600801160837533026781031448205290385899966272148744483381041368860456782348541177413273518383472897677137330367678299143848368864693139747460507760552295984808860006768138669456678966375828290466188765194404695780806407991895263329138293840320039272825049666153986038450973723250334606845658775859138648911395351262520280376802569304410107615545496538783105349892257648421542698517986524385618499081483602282634591565408922368810905669130805310492409983282920002551124973494980778134814495651687489001769229698991426307210126645896296727946325119015420413097387436616358948613334193609046767390969171360962659448412374252484548292214722442463398981300061344983267488327431826390183548981097891638831627273480564489703577005542205389394084754058181919883763783313940781996152477813632142698460759488179516743362944499546158381789370094588668777700125070593373817824435002273585088751427841294792590652504430166954919676986209178810698092964863266869928886243407156607383112674390153620650960112959440041010469288597527067629722345631061266140004765035687354537390702861655577398326997939351174679277559159291213625344135968622023512472119500587038831172961682463621717649663308237561772129898720728025768601572316999853689192257599001829911698185266295971093303314075339249712257756299629843485949434255723740916587414941940004359416905001023034579791000789353658130035284318123627337788127912699481294590670546040821965120095206499403119575214053246456968349311032586166906219606513271966198115775255697602984328600118320387204527480629850767948026350210413666340155783591865208743064295821894068134185925072261281641037581179092569686054925087748063202653316063907381853824041928137286250763776093335245741162435742807472231808530873469125586123595254066515590323189039155068960290971225005654455548454639999649790084765979720139933700247741511100803519207935052156960087541015893595009226499657549503945687929888663149612966737096109487716711885468656103652042441156437944996148774169777455073481490810532968764577294485670503844425155243575239640732080022972698936449981366027726754700700281839035728242780739959830177356025766402269641808457144824855628828436604795741416956790849792195886469458745142310207506078308798991536284349589244808535672767030807846400053484306123771980381031834714374463505960393212621190468179463987969257106882980693417014004847933364538090641120207365449154087012325908737451137688948755598948108029878795548095297130132601605577112911398151201726088065721510441266428392895382178408710419350735165635255650501844897976331665538927263798166448832038815575437251889898439237026818542543003849908388580972232419551963854047803645624915893510690343932467230138674840990978427570830728232358333716381202334374794135964080925324705860865938659276256869556637482605142852866465531046445747432283925688777730644658551150940800005933819808678368510896304907997352338927968816889322870155006816610910526522769833504290602431466827889421391040224594849511111021186545515868100040995511432247571582335806188181600790833256172841991847263704718504945024790689906077916767249748276829059438697252312377852800979778151858253004334298547333248152628556243580143983872990276238618292388640665544602209396569899424587069890306627443750695086933103610134533548654386984401130400527476956028085967649659341460634855510973067565601532762921359600016841262383513365538251738063113128253974034138247395037938782356946449063945278468700868146282983866253112475964819166015538581646128269666926606092368527170184655585301660821189272213593701646348037049767974391610687026738793422571939694036251961889441289281820240628361772373975289860880293686002275079902773720761677801361938292472480504499267262814115693146216119865269562323042219316216655346219989405242007533975828120682839259175966957845083001534670271868431369072289146871764340328262921741715206776451757319470377160709802405115817255341915894497167991534950633332497889684404349987895963815407692606267068671091018650537128781966176966070779609583766991417619760703816323959214082230546795502019626246713863362613891017084613698969738182843469865106589119769286941446290502406549980351375917169922684607771464795077739229333330084009292820872765833883150916962690176732650663358832314393449960948104797569235647660295072060106121168857017376927063252530133979273346391602413140129595149209227102259957846554845461930563154714895497358223313650352576842034944381430104550830474446928268648232365734513441113652791437350356225849037785941869095370082931232850782610822522402501191487120064442592609289855992505381638137736770879600864182939978573196063124367723033841345838882262111636942189515072113548613811043355458850892848139728683099302631633013707011631364434991539222613556964624415262091444388859074529539542574343994121780096180198646510354120254193799302091660571563726493700414223717587783201323251130995470300835059209975875836153780340254630727289380815248898041261717162942735749884034139277683939223662133174856364853889227518217351279734587176729067133635400749652298554462367016690333816228366940521438792164339405662796613359772758616514297063318225928939878079657902937909271004458267581664374894865721706481825158504333799933902696759750134206461692343378836349131321202797415061344508598233433894730381796689117257529183733157684329882529503692455879487068148123354566082646383505681069633130049027451469229924618412722108451095407736224573801252286341916751658754705991317169639254733431844930371475464413472351894207607147244367533273034194848797194621913973430746391789140901702160483143762289241926948008068445136557173199611311924401594325422437663229635457127169836174310567315652254084620273114702229340951535198910213786827108642543609486958090442458710433967000271077514751809440000554307899591668410477463801971605909778923859252456719326905856029802101357635456851363056543089559045095217742601452682871328603475244707291959533413870329495286813728984433949890933908978125992843323963347643899346320872209382308706937511040821209453826894354372166097249336079478162939718352642374940167141586813283577386826924114643038119098884680615511085723569013310500717734896399201829923843866545458673132901870810642943067183251180456498571025564250051972658170223328775510785863210672103673021021844241234401390642637472223264514768315101478403425444695138633158753263399806585866078926299919252944741778175877950670672005154473786571454566499272145027031468052005017854724690659639164727641817957567111224313954610269400796071231132650564690522250526901578253227384734429975323939850815311404989697751503860675835204196953169505958338425556220352409612426861249864321496544290297106246124143200840569165003701477756288007970215934987255632139310401359788056418764942566629218977110123337708336668003317182205339375849583384863742270817645385437893832288553589114335645073642262456885708068381054112228856559257479370292029572208259091052391124829688431555663654628982045234199812061692538750217752949183850165553812133525460283024336908491417044567131940700498946630625304691615169138300946190867850117044753814873950707493147074176469908810462862805774453676778671935618531637089153648442033114071075592283823227805838443007759180563405263185119639317646738397481781948835724883044463118822405531809246151043994372592881491408629794370129900872799260058571928321864465724953036784605577081241274011398835813000527557380618554655147002726948675095480492335424073160521359677281174614058770634343049153791688701312644150123165680876038413657547759899196883871548550041656033440356400541589895786214812463059988911961601532262968638874832572536195399572954787222467830262880371510152837160884896428503782833750897013845769266919865656046669334219356040388181153626330573893626665197091511260483221017672392863698236947503428334348845588950381130994441418049049037855920643419478188383480922855083852098332916799635518116341014476033411698545996304620608749401155365203378235793594841108724245142309968734909851858634522589273778059876440444249110588873990362070026396171221456411876142239561535027321450290410862157561521707128633190506019095964778670209974448030703445211483181946094514017846401170144096681967480093777564115118589088588142316524531589940286125992583357972616809191331214670508934605040643109723242901819940529749412481268866955984235133806200440314538658360735971224151202984100553884527408588493254737151398249679329055552253145312501478293143939783253761540352667610704773538853651448329671195828754302733436725569526816727513710930713648669371217539428096982371295778035519553702883538690163828600181271292002925631040895496726263435035539030614935525367580870281522575900341312847371248307482911431204103771834772643170945554821639634995941458266831337306381143362728538453863804921703099858878064610563576963537511909103455775636248106764333510314740484151746962275462936193700212495007073777433832876192620927555489168346746572268681699074099302718158591034123080554862609689201607797168514854548626161695313948283783964212542538850751946114000206131687200155537720566805385108957970454494444257161833479872906921498547979236993534896883985946913807963606542693512087567974890722804912234236295191575597318520079601859097987836166375950957340373920657156447536683408687657276134609756483764552528782520520618708628961238858927459210561279699045495226622599042400322747320461901761693834877067943792262320900768340735021472726267131451916174081318968955905979116708998561428710277605452938317693041817085574467310747533284361644425628096043147454366713521399301463355764544864855908868024588882564326249465774915291074251937133279685863369195935777370272339866511097411303462306459135169485779509407810379972985580034572902354867103450228575798160943822565605637415400711827196873702249342939127116324032447972944862533259387952916633356965913516278301956434771483966402961457276808098048394520027533331049249151100496257200986997137503343842001557457134260116719726559361046389409962740094281986779363470515510717867840990915748357749386532626817039319138951815969167949054877679833039641100024404388268765104329499552489108740861829022297451817961090394831989656015001377443280645210107581390371814337382017269435761665197648226094021037187962737112445051360714093784096993824860178376616091885913295930750697899944140103898722267622865965770034590551998351007390176890665947283440135262050354623360787239964193800885089765118705088210903593152086049898673174562436050023683615029410853416194003436905663804676548521739185199829150869547652935135095328099743253914610003484110712421039336134839277530750664329005779022130232484632470434323772406023782098478416538387491446609756366986677626748891847106511098994303696030797108206687004382371912026274724418802083773835832084364325590118194387354506724351212389218778179517013597807908102452035487696511796117364180722317031873051353170899809379935594622049080675180849701001828498061570788390730182792831419385861761141299713091382159599133478293606207578144508544590475799278880645044662695130955200023528944121745589280659055201964565724528752432718643480224102789457599795819374104723667060437340385836033544584785671347590428909348537804809835507336458531846322463556031520666877718496341325190596761057242714112931952860201680591638422678160662274515969616703655745225857024658535117163196559323286291760428997613501783615291596402433037454545467083421283533825599048339827339239858869200820724740735577773764872750527184935226771857805895365290740568990384070447346162143956384952339725384183556479756012444648924699078324104853639621293050995085872893051656407230874891688932471290040756475397216713042312902212400994237830630181055180083371814561684212755366313337286946471060251582618417745198776090892283210483849209989699752520111583779696492782783757946923998324419418337885494124478181061923129277741971546610936515047477131948187956945229928270923301440894496383381454675811019309548581793479945024344818187073958023589051313812901761994456516422184542977029310475656809639446439678829326749321521884215774368063332873512181936984651951117573769576865283463109048394238162278948300591909350569165347555757200472372444725381564643984601111733740908787468564708262489156431122826234294854426907622752874743707887172123292996977900767229245636223452426037360406062922344225340678074565517010364489705310704841957106299018038760559407464624761533270633424859806102366513051264151032662917769709918088237019548458869655294043517166855443073718440491424257031883155090576335716875631368107961671737030866357278326523884655899449390618975983742221893564441683938913767903879570644507601576800665096176931534646252283238430720586202112519484118287488878231620545216942127494402871847453834584771845220055728686236879446865653607250513736229303712273311293502549713669880715120966661142291003566658897437119783897046843971379621783081615148584989223547022380022779186113390846010851713098621675552404766515345771593248484318794139883403669178248722935749812613105658095558667588364007705546509119872094523626817651640744615086800316189629139303795253181704169702130609307515319282513944983063241790186675396168407298944269224658011602195152420397313061044986037854825706530684326365383862646830718303405944013566293646537331933927830831579208032954152595670998138348074104411476118165967306808018295844901603385509254527632510513298317394217230512448891061400411853491117841846831404550770550233135314719942947277068542441914975340883575878983821023076732944262802257931101366201968354391889445007044783432944608155567761249502886600703186041738899887899452166571592943525865354613134828679942711783830737285843434775065711021858827843720604548995682553266067248718315267955188426092953289493369457661425570379486265862415649839485207172602607121899307442877066802227777845124102815460530852980030234589536540727371251638952599951261183082109135580580971418492367666001043120914322486920719079187497608483070973882782252913758035017005516569848699143109140995159295438292207297270437563029499460358680513609538207935715841747552823913976891337908018699965347067500745186390474689424438317794594395746880152130842249130212419455469209930187060405852993843309294735365603376751540546324359277051030195572932878533060990434422688507841475563256622662699637583340644704204737649379628747690726007491353566360020526772387041564390553255804935113261518045054809283764304676435736006402411126500172101343293575574955016373545301528522368057178565860374859614465833043738237573365132129654127149787129028505729419873773282333746133678777911214635588759727075704837886252225827238695435591984758098294092063278219192154076396382792716941173239434709074705230147770306286634546203131141406086503103325904236378825756033014065595236980498863703642826062327872865749649688500905980335393525544515617744646998356013816208485908530431479563219390452060516564991871961687800631721065086884191187173971392196031556039919832504603083891067375448316240207391043340722119937363572923408582682487641366387442781769348276352430966005608738840960862622203903473270454155080538643522864348941561243967657643603658139459779878572656334306195176593194910458361568677711261901856895551604076580325897186291174911271938189351732767534751076723322495784067629067833478041096408189561117022626041622448280219388399968974375720842202602293014276633047470988337252595136969353560781992391046775628622649438553733504304055157359187408321007133560634895951189240185520746313776174771269688061035828352295260507756050159858604036543390230794388243700562463829729549347051688141931599529084332148690901392827785485948188077344023205413253528992850627423723579056572123387343278293087833113088221437884778170482372494903338990953803682822542019846245427019098280347994098413469910774982142957087147948627415714667466435565744634660686400071734784937207248134785355428109199920988582535825591424613014351279870177345331488545269519749988917533399032823163183225378550282992199256405423302903146628170132091751704204478096730273622193174543312955316716856701663786925885917201655855835757177878865219490408482978732199251992053670072160066928409593745770328240699094461471856964290418580126475783038317583828734469039700035501743557825548604131087399780901579360240006806786363061695743557170087968642455809950750726851355969505566124076439775456114440773786203093396944743907486690883249093935660708124433332527432832941501285996613919131074083300780489983177126043746741114524769684674409651012639781154542456056549193847167587570324169740845602516335275071158185526041766915953760052068338781357217029925256720631740577185720226035372219889276420330856815024834952900481466626798789849738811725343657679451233720386351661318991413256220336717391012778131327770600442235841930730695816259053422245112407860403708863847197156277366125110281091614684799274639502771863808038104691983665331938046921289605872269267492974016873599177357831040159300930730743488814725757914350438452201073240502209110401028824669011048456716123533737704346841099614774916224300866943951822283453167309322252546955228303490834780097581067692083394214821707566618224827548374382512473013335978468805571787349454256800534986397891388879021483136684233602328351166736259619862317367760973440810331426955289609806817997805573567697232765549365727608587493679100663384189854129423040919629829798132904071994600670900721238532528205528285563202142272902172142378778611788485373486452110867199564305957632752174198212992839021339949217035525349529769659800972479745261179366385173590383348232167482494573572470911613456660771350091023646389489376060960514485560683867647204347404291610709479174815437348555007876746128882358546110088318966942791886695498480960338020860534440495902196395342827921962442847005890988232280380517815774993130413610852011075971344912842363654054793595872651214201094353763145251550014933785443729919570171581427510852403838597786622278129895228586983588575346954354223189736815761228987759075444136608084209542845246371559813106838100371488813318942189120362934287164765873583902017960470830787949104328327138556999264749791437345862226840654664610271825344989709371698617448488716104051171165984378580876008131223749905844537728779589301582243794061515753114567724636326789864916112239644103691824666477651828049032253823866740218645654058935260106615835393457105303894249709085448346068345187474986780647074877881005561643786123124659200205241119035300184813053176827814683247701957902840172113552102744973869093509571033806091166724051929566641364867698786904421632587978635267780373407357297602390635363715366491301650306052119188059846114085622021955166447271012022991450209314731056496143650661490870481332436127550658652060662308922716215795202400155936403799355874409209301191383549953785279975082344231774617371833113865109228318678893393778610368855523248039067587814602709668572134432052747273831137213330079806524497917433905775795382725038753464139394957396199311718192483160351708670262320795058489183296965168888222947724767722539226099408750757336320790795931034572729942558715493110942585287784152929829211105448917463783036467492389356336821685316268396180193206896373230549371682521342150981800772135602038437754322297535520487599284815642498843669483586925091201186176358679336299781827147489342828405110913817171517853506364361391393411060754798936182309033377722122000230870289239966282549024247883629191810039961618223985414942365883206077436653388681890820688475879923305509564128377395078594961307196498006754434283834416067120631447732605237826467413322298563401501681900558845866069049539688173794696325178067438764504621400147485016759988938772008424260432614832978667256049878447894830026961987291623974748482998976279659501862325610446365259003862894632552758687957880863010053130829301656605122794183016735472305669769072446509434247822028667406960372156440467069577076078997123398167266977577235666005624820284702866823977194904858922576621907038177137554595539223710711569775491286877407654902363221876609375225405713764975689547554853171957977002364221118024984212436451222485344966134536939419654751798664272314065126817334327583816507954742821342570732310348667933966830213870705346687253821165745681669173958913540972330147103008829436222990897746907520583829097362786801229146240740747401508010569960541517854415476610522184246252181786606852245631882201953153815462076002205660799539640685260996903239615447069590399994836979805660801902420496837186868849364132595071312464125146542152772744432376376468737504856723294322876887974156288411178929303097473647403134388143174821347486342096031870707097595678628681848554131309815504994268476237633673640813607725026218551790865221877406511375742945244835677638340126941086289762899549615946098506584580071394920671212163423181026229192609056172957741926221158641820570368139487099347823089815943267338408186134192091017763586229630500148905992229824746314626532693001721286973994105041599676667328313830074228325448992526825407631080902343140846992282265680320622896087604535418545365813045045849072847732648086738301444096585101554527072571435347529173301346982463344667520725393473686202777223748262777485565019889585019289982043384314514573249714802897355609734974658957782651439779201062828120661473059143828146579487078611280841176665572155906735461936779889316387155728345248356978302011872458688285341098318486955905826079582897484115517890685498880741285383927419003374957382887523186722333245546111228482385271077373061317858387536325835570621854212177209242309987134106230428442412954997874171975743431913971672892846902913790246196782186282459852884185789855259197058199420628104467759771600164002611598936052499902195957066293123829281510648663460379119782876001705522649529329495782522743480413339365733450804577591404133361432356395633252472297826453884932483028229935951799605468364282572398518245658805586768741702551635279457520659482199092406431499278476673006845048269566634942771390276503796832799135510151852063127726574828616710531629366002314686623459230954471498429686746655079994164786571084219469764368994864858474722749590056943770555326762585825469019921022982018408140220967379641034799855384332403614921296179824063960961646687135249070803340748803245069707658729722141124981652307241447477572368177324254882555248168293934503542446025549167931757652580420682681890036265779809245724195800269523528818315063479125963306957684838466406083715699009344334486217371822698737053253435736232608722421790478518674777627105903327247965113713364512620599898811243400582566491879563675238271623534153602340889336153418444393635594838416022537466402070589506469324226839425118057740040906532463265137219825778659962015148172530061041101511551890604696855311737035107865547355632996611700199395919974488951156814698247343057548914064824298032575205893818555923374632117951451844348318887787838825869945494952696743674565746253026128070159191594293337352139564458472881555104291554511807538049094309917525312144555292761512030679816705818389202965763968443648293942222912533733746600563267571956136123558871946031685136239750393923908931930821628397632106796261770347354387935752187349221452712354720248837755083370021938405855785031425719877497989423825989791505422367692504899569856815671281189848625719363055338447905781473407062291666609267084017788825768246799124565989171739979143926716401342762543112593917068017494972447682511536338770890320312422201795108199459505498364664509664866306435406026641737246808823877250408178967961164120289540567341998933308023433278040328469104939643895164155516405681345940889358376006711939281102281247242638076744394282323740001854415373754333903212196738902267734756560730553426336714585502902710195117854267141999058741262931612111387528332544095695713974442461883905672886389451196451980316656140501693351788573145058956740969126974459997719931330206412300042844014200065997421977903651053602160321216035737364632885202343491114171013729162945511177861891752551430476996092914313224574703272082888432436565594060927709336062700597283313419823820271826786584407827743210989391751662891335068968962861366795905759910546312084747930252690641194746663487520827479755622176604051647994830686320135853681206693948018338496123984692403745936738174718618446897558041764935613635177232712438093758394069889116974190503543685854596623006496250198299573456497205098803298054729381805338424964375964402075072584999382736410881100422085172806236825406578781960996206957606181750469985446414533815261905348752594118199519443422638049668133171475782952846250924503478321214823323260126970420878140063111146757669702054822675700036541392931381312472373555025287783873717276504114120293083540360907769072460576920397390324214564138326887174737831071526830430267392056384888074561020616995044936433266079674251816996386147271774124859465343104793372655569496867180618892792817242466583971709531469542712481759593734118789340632782850560598976166791487512978329365015310998639076220134282370391879316213234899221382474340956536620167425788846694689701587583967166497317800767412586683431842070390696263553873369282595337496263193070570633460528916009035956817907105491662436757979383841074200558871946200532084104443321695028162944678989531341713902213322192140545116514250981760146510072272582679852206781773974303566111157731497737959728672431023524154885790760128410613184050668936446238650393350093190464543212609185342835432948097148133828397254421329198991503416300306817649936360153576616573298054359789623159626366594602977569740597712985151023479067294630747047563139638962448704529979992266653275496983733936490478405078008846891092304599606667958306418859796819350495465686550818002207347470179018805542133897011688495628829442583293113025918096950574925040478994408456857511990001307012722827942473836637443418120842160521477866527211650801538508471876408307715542346049683712911358949722750543791712180918689820542376336583669639531681613630871291031008579422705935701089286547592872681256771697827671412791437702612796518198433861138807962775390984892206369822391597127626278991539872188385454038361190715151834287330479539345829671204622384257889466427611650392528165109076452586597547505770183644688828737482416641043943861407991987245629589730689203428026434021531330101800002094327614886094256846724514971349151085314838384333026350895546550740299976534792754826232502565463573388897103869761975850577233697239809374664052479311491967549799975118155848441076971010143072438970552983802285207469304973755761794980393417254682139744465796808013347693608082853506427241858966354359342258636856900304176804009851931471429767834260500178726333887932664094051511588217282275041363083262045073125213199035529899898991246174431685943556241302117517531313274385378648663265038299318560603039587163221026923947853631555407893204694790369256551604728324545963332930960802337059637015223367675503158348217276794837431211485191202632347287822494613946075665923799689339552716073361985963055022103243195604401233363222704990814022446696024235065784018210172612198799826348209894642891652300224051068859266798820137495681677307692557888690344284095818926201605029059943651639547640746658897077010423210768761109483324959473032167274158612631688619741291431293733342594715807857250083789302952641492390043108409860155565985534292014621362479062226141737858792115297056718713815549328168769985189945178331095877470730886729369770596926171659126681753839955468265327788329744770723719035462914597308927538555449621045814230525839018064561698151013604544670809862527183221700480065678907503152218049936127623393855834892262985623419592158398270910382334413727043153468224159981217406349431653675238164672091354415170908961248555971356797285772545144579436530640827670184867691507077517507179084995590929275596805692352429771082285607224423608971544213251543496315009435360204175970010788770046892651940705110528695770494282127377264143955445915016805020374587655003066277675539786696548506079765230103934890791597236152613376884277474306103470459160743177013882140448800415406627995336187913041807966918557121118783838168828282970890810540442603993432614337054786270630030817673449454384863610688568852628407122347334398652446700778047065731007034828702145628100483231373956912330813426844053814757375609406354339986448436927980156812499148323639465416508193140267905210342151201821029580090887656528936552729253688626427553035004702602882202415698784668455313853814839557846613397020246517749113077555875123294658698005888691768772366487488423480635884696418338042837185297452485091048559795951939380693263241454495476926201195030996522793226054549974257482445942877402693635396887930186660944376687945678614321245653981741203737928036924674169404238578209582385399986612297508172336688069450871836623526847928196521204761955931813886849271723446775415894826892673766092958381225797430795963256748521414598551326645332242349434778378043401354619669739344392881881763859251962424436331183815653058475489542218224262297839200805494450378377249387013537506913781685237541998551488797874375632178450805410303961446715633259062353762029519944406694683633399786976999814128631434887474334771438310874781879107173849061955950547768715870731463589970873936341973400467681269123557806623503267841178482290946711698583252788713257696186257781942115743609402221463490346548507229788662717742866444463443506797409298942257947371068152614012719645004532226360976018349129628219764847194427060558337553425306586979237375177062819398858012236033147019705237517908843225378370209560858904052321417029402419313042809707586797659202929499933763093793346778026256497680643485343748621461139634765897575173181101146815002215288116552751864854092034436815415356722323720843626683774869706663371248847410794463547249573506385415051317075164256094917389618434167741042722834164518361623047031066891033303021849920349615696119603973846136922211767519714216622446806864261308460511996996517172246687186550696778056020843769978300698851856644031487807864741998528212182443589660772477872466436075819388061827850028921015432671857344346865624180670481202276867167172639748456535925794467855364684935354258616290521317039272286068352334996900087208680920336871164402233663879001524158045190791240880975887386941453796577034017020015941749161372549763871922407035191484637026507649050329474787091352957025596133839547006166182002826342631096044117878806222464353817107217727154291815612710647237651416220589335075802639225506332380433253399194548174272102730702831774264271856502030855453580172207152107093974765127174156066943630549263684912339508077296326546749788497835527516143645579508249588093595557478495312648929514057841381423678643515588074220136060621001665008077254641272773763306464984708579138136039010235815683256246626047556268250237928918798821962406836156478163673189387159352381011029413297623665779479682174329962739341521386259026775878928390788135363716469251060651749784800202041519936689285455518082512795022580585289560074551241347229936969976601681561161886391802848741845142462084891468143505635983344302416848147350564077969407806551971262932655691897701634118555727526975427016864703765969040194666033862946667581667385145728697906955065148455111467735930657034131495502979113427649191945677482742843479860176673284252913992159414657874237446370350527917149821536238785427488612635622504018958360821715671673618906159562869019579254229418706590638125029949265120950257869403755807807051402600762767989895471322613461625532869932894781792083405586988405407394278056836194573889431266782760041536082501512468793976431184761469419179331321542217967306578767000509342733666876052081852684273495846566725554004624968324990373123044557955892379609541230366379246616138408020278796591507463760000739289420312046843997274090421777665584164310541396544664378390304972395438811522351296800519086454542665145593863728628169617667306786815228749093136731755161596405659747287796241570371040429040111772091330962069331413904542308973534579762645535809938062095388804238762954759975050961311528970597133083883098462673484899843001556561601499349948233168038790056223905246408921643279138487187253418376985489271212713756122686384692696916976519231271466398849609683104340819943317400880584497400279352955398796912545085187953500870615238992436775481784984702444909322002766235731211950604881399985306418943678585369605912588322384855798979664614057638873548389099855057459745667804743396921128472413546465775850415431208850916784574278848993091627582291558630921233443970508010195087769145839567632752538947097490004174735826182521886182098853190474467612974809609377055434474816818588929491843535228089107259518562636693116157066091915359237195470470656621409411638688223402204656693243155508107004773118163500778115736442332655411445358382617040056225906946547444085535659609812314197142199511252886159662049866691746605379926571285215129699979758921478252308680906695885843712475378916544234339475469152694600553390294038694249597687345885520304297297518334173671567915755369138493991118016326623098202728042397749458232903038712965502511015440293722725888033715465832998638697514073189476943355272743537085791389380467815373267712553923229604647505207914516800572982004810780196694390993807522295037453188056731635225753598665287585842731082370120301505455942853337899881289925170049401149400223317874912648314804839851503457910519907416496154262815990504212470443606033820872002438212863026096845061296290814999250931289380632432430989776517851427176102337451989680603966318081722709528999275633493349927241961280449889690740152225604207084350675004065581724600750588365897035812268511454935224172618942301478450435776798993195286013061925860540060485223514273832838506974558739501506097175299877231988897241796778276258855759598250943084996091176736438428912453565886004709157711509028433365459252954746302634940888168238608319225479890022710999309153787804218563682919294917641254203135163029574548758235628961405932841341399004561359564405959445673849953278760323029432124934985522410264944778825027627316770896610651657713645412497503295038035232686600271479531159168462046554450545597612968840199283544461304447894823171654115868919221439573244935940627587313635798453646720692161273837715858818660157367348377003093163579492461687305396323506140108666686908152416548373046131535302421252464290672028668552458541920354456592204508399909423979357758970023759205392787512399646203625405874373218902907898846992057734814203029379576932254025671251273651064953649099742276774417058293824548825301579743087227242453222924716764045896267541564108272616578198700719218298820644204449016778250592410017756139284738897852049585513478807573823331427062693799703344704466227547413482184795904957218485430056708165142038428311225668829702017987568703659032996590644996737804628521860500733340172733355465083358499407980316303721059552082220394389358538088496620579926854030833445776670605314909449259815917741684317203644718978305667471883198719328891653418598755257915620272056594882521614706975175433525157495377822797873732081499275243920156161567424136033563083232375536555265377216619117718597317176390047787455173083290198676630071458810074599831535645546768772458042911372126884715567549911309461606043830877546539616875352176328650298477136055476216489501545541444578181894271781940666660464444174658346512774452104550165234083156360957764169406341018500270668265334450769443602759206289738641750462520555080920790134146317430881260004931846020608880952714392411543542269779634237938986604161288981270989345590446180723205585876318273996651894808016864460698697377215591398393968498017583737084703762886675676731675577411519248307694142784286161029437853776954985492250770630548054486139166149203068553977988856225360702358462707158465803218738303369221796218943963526024258817660324024782681389060267993499328610241382309968483234318364347303921039547188710225636520472138218873652113930242213531689284251183090022108400517706219267241618117517037653118890254559934628540994499730019924129267260904803557023025128139109370869375914592507603176811799406737048879478753105421950484464706180846171001908069515307116154070491585443170801685479384000957275273763882378923312387633006217194130009427139602175888439864649710254446714743849511608514522532736527229488112778413352651219808580957467715802138530661964593263358298406034409508786424924131839470859460049142402484741629439188440612784609936805965116287270728563620636367068360940407573710728831256510743993955945873343466947948723916123582222234002157904122610750692133726978713508265768228008593955935312142723941892523552228718148561336175970925201013642757736563467946659296623982310433963779366236914967382892418545782981494565333169913619230882992157965316386787796071598325836380166123262294898616332601294567800422310863327338288031934277345271495123125277501722066789679719492892336879575327778543040825540288075677118866259790618990731754781186273956199691665726212597096668883985362376609819532179656380077348607134993126397150463513997629324548067046134016938838497737106889164329705461337229299747535514442338615046099716510994892498255075628964086144607592357856386819766407139731400438628278201356575588462943762642071040124060391010694657248034292956862113274316636734155383077502581125431156292819640820406354347004499997721704290494210106384728998254996251214712265050598313800666029037735973809942311474657257328017672555941491669922445645986859484140592044658906149555837743668425386661625135728977972208304366673133041677901723924910059915345157886446194157312713792882580480035412477677545386878994929193293588156529210579801914510475669662110166230204214152992132202537004859832560692253656980927944135737854219865284915519834769651400102422117747168129454464036953276346521945256846709078423456772592744959525343969834868824769670001508266795867779604009381146806652476864992259639723591384874263887948645115085634632260989592615677609058619297704630624079698201850767712356813379425893118599015191224640821882878690630947690952896256908972107301412025005715799096639326066817235705318010495640233417382551446693674128129287572229222044734304841229771451749096610493729499267793877233181930647088193064610445498183984636289273612456961402912703962310862943788806372808879722890146137937896139187390836493808539663983615511365994576751982022815539563004028690894320285107571707121201152558006230257176236616413422031504295943873451192269806192811479453507624628807503238683407569043944255009186149166566497111681085495275055809962626524535185227910419002343021793698573855611907457794278592818276685171835695973248556987922999806821200726005658225682921113490657945906325212909625377220849807716643242090127164634238479508601112774641773864203884418201445710512315669202948656567664999920438835369929565677322130700611890416114065042228065155249477180984959416684382152399694510785247742724301765536185027927732856713787610987462279936263009469577902434806968755436384039936275761201501108250623973855848201339572728952082991768442320504203653966495694786207755781817768672535483930702480058826080643225146321706491640703938305392457292795785951367087009198949986581863478369744525215871223117781477812228122006808188323948037857713339365162134575005691103245267680515016994455165399175479670715305915953352023256148937250543571065890917255067230252759118334798903100644191067551641018126562716591450697374571801642300464993040970734726458881618236370201037092492348678743039278594531078643703825264795263018558779005278223025703818335957594251680136957598149273180502737900564190245170578548026158329121459958378820975761713206185416928603530971554005157822282327182745821910963707034629015785594452460190639442813652385578510311177703900288577730924965973301310618582337648774875148525843259105732657619725301139869562300070929880680905628168224718225491150575540332157141202687496935643047026355724716510232684661259921984391833050968258465313421089428601465907850405439332187343101499445671049728552071043260108721082377561854033748588550172415720605454272761283708007206860069231316182477091423169675070417284620822528297892746864026124859526842828092182016770672571357700605700169462633933210318201248065427359935857095595866232354257388308304052100656986166816868496036697702070060816193725694636474892061685865881833770941019861538866717601906560152238457553159586456535095090181249482944212837068111316117187853392369105119395984636388824175147912640116710867748168433932196842497383655952797758209641976162996784286242832170574161393222895020817902718661840637681891243886811861769449378392224833428222424240208119207107346203531268288783177307014259634079509658402888925847289103557404173494414290171278087968953038775987765759126022922744033776795193434086889537778963149270239787492100320586940870318633137947645176572270459091665802122267999622688232740037115288575383850235192196155749096713918450982476060197310062053620428398900497314491368986877164889473983319878819849335029832874618285337436373396299058515272021630479081519880351896206145669773912247631936219566863324683229912400821060074420082744012016658916641786864265289201932555178364015423794028205982567325332149966192960331972182599050705467976899358505310156571910591940984087535657672668958631774115601210944574483039265360860163079092147835549558159132210954507202953615109281294566562207196762536899120792370896584295790109217369453179788954228524182442860023688588297858694791840808453995150181213182698288675902114243219185949024168276799305731180102260861748946855746519996530779645100958953931095941788752273446392802314694643731681998538952634400103778372628840497822559289680489598307988030411387972868100530301882445435104160053362110082593716400300115668910168823042250421211614137407450920737525396392552645514151052412203706968749600223165472225906255427149746920430821273825164828606419716782743449466799199542890922497954129191374316725371371230475082880997189804275038291805788859782354270381177266718041288044851500831267476250955161116148437856327947651507186228016601626777075680593524941104628529296761498006326380087982764864926776838163292909724960576357032532221499242473737579616483021993220834833568333710544975862120831145754229124556127684803622251357821197455448879706352412747072395841352453873800588362651589960887672297215886118325482708749582667208909256726255603132491843009562434298382424818244560059189974721365516394546295949891718080570205389051890877665601805418283814117413154071472520676940643238824943787010805344815265848319251234979294134198546825158459817587162799743395924776852659492501275170662632822223192647634690974040515621924304944181888286743200198858299432583966620140883838804306292005615247836152630450527133147116903107860012100033595257420088666867478242182002186997912169466127040514099821807879037336805006654293420659831395897539211878065464482690177010141282873212695248619309636285198626105443865275345222551275625907493931469208494297087496444220330435963091498280494933284998909701380006333374282037774516734211915343004197207284373944908920207395597649291950588710473100505416569392293261475059832702189378322044297438742088362145979520278130862108165045048133977227071214104297250674776215416104289713287586497656032294621102996995523423210531237434564629641049867624114343969400900812662223353954504055346878534260041558543619304202136308057203785928450464724877260509625526801050160417829391368976811573939726484549217171160497768901453706233865925297562685748769474096603554765428970982446074374539184321050801206938880016284946878572093596257390434417589070109332717363175759321615694902697257796204417141127978655271493851569855399868995387968433368163943609938630559553716735901902109789029700624303911436140311069813200383639911832883468510605459757634479998543459706337529212907752533852236173042324479260747185134456715740365195625892381333129158286454357165636275134954370568457207517658760588500067507390885937137248890453656404286098595057999196301734861867840942946118765909775287464002337033886629157927467448080366579885971829379571988071380009658367009660377589194838854897539096122022332849539681472316734746650965314226800616618123744620005898124890443268606881771723022439385852072073680602479248719972088893884372621940923710388790548767458600112152263398801394608868636656051640239894460318809666403187790620364838433376657212088329577779438771475622466885830178069701884315982724194741244608533209431554172400403332706324301633948959131963610276069667051403510290792761951242297516193950121014209177325841040205168500748395536564853874309218097255230883266776680573429413691337242619878770563230596130919368900706314493618301706057825461649509943470535727034773787567435972490046650042752386204043781280924555541024211524881782886234949163551458569134934670996924616844974495029367264132560801120094467566839309951578449081745082972486150940356737866402661467988215266929790111612164732924062351712932842156884880191655707526039382851072997700264222752346110276848418603265048691631043740837138073132192886104715045473750440952703357245847439109302203926841427266318898344954849912005479815892210982501560580623286169920222106860756502262322829171573975308236782720700889272161117013298179027728721646606738273892255724547184635313110719191454222044665600146469447017219089780124731632084907028496462186666954903445404524762053230710248612475230640527158448491910320206291650777807667530515765623549799502980191605501514106195987304068858482606791810349949881635165057298264547077410340255624711084579502328094020674742111133014578141300792331637753073694838017931035452449670931884837515683892784932723184951202074138725976029178685817214563100888995342222501003332885947229314651653312194092224715098758564757814038488700463977724820706417593022337721201247822927479727063165309196573484412997999575059643214485342662606765719902199092828426261872119025416441576741431270057737556740291974419683088594804395501132414806935761026073126297919992375206794394748536275085156707061675861965995762996525914399910981182056165766724844436573075303581850074763532188364118085513341291839413706325364036635049345601663226398882521947202780042443302951331719399739592494009415444657461276143095185224851326463701690996832770939557476935240921011830596840608398906757111425413914747784619443508554573604964327653973477885411376875451565769112115406104467737148445058124460776289173024442291006727835977930336310792715093580519987595278847209046146657103471161660257448115473667306578911232229386080110873292762892640148142184778331359200253576130710884430320604489506285912398270134835785526833980863439139283143519037393004336035954013960845932321126638743843285933067557416419280291524907773463342206087626523143348272729112424309361730705818400469193360335276754732310246758639042170191785216945341698140242473343463357509425861450870284161217709474415165611920366377378322662528226846869232051932067405337192108643282541012812700566846640566390287137431289355830508236902895869258367509615089766627164558879019272153815204049312744296184319472192692495110752157763742281725211339015446208882802184224668900043955854715417848702950983711327081697514497294600003620005467503907690065080002717601487540129475937475244514287804398057250207828833596017236899261984784947606741671959543588554320404853984872309183129811319882017479317110571260453412415942549097452794934775028786687562235297776171847054347070776131134903135510947649479306697020694469197379190689052917958078761669450954734782617384185380792771857699360645008344858879695065984488476928332314393651515083568290074265395687300752417053890712954282520871813336396833932985074300969105907756643117287799713898624159940681774668649969692918838688921241176075049773571137279856410829699966967872641796783324356646016399072546363615873105152961640899066082102085975319562793757606834188267006450579206445866094561814932754589010340868039909176854336750838388133626396956137184413583020743163397450962736475402405685124779100747426855046953832098795917843127796261507409733690429219117869354169154999813687123953895383948572621439906845149270777735100076519088403059208417363406023406324843881519793250424514197553312518674241100987994101406562111550346775484298645730873236075858118447595189325567855694381012404367902713491006367193124372445839479092277556887925458501112957916309115195172717771831593818662317014408810447204069423254069525216513893461280085144017234470751570333227607364087837655909935832590020238496642061724708400853745756756976973636338010404122625823217207294365944278756184624783487122082753127335089429486376548619689983710541907923481065632470990783098784990930693807209985792593450039727359207232787185026269996149589334285122849757504016323945968449681547365452620989533416730946930175675667372903074818755893978809258021605716246982781344646649122870913430973373891430975515335484602730293844675764580088952694915719182637790192740560628783849736852121952553812979722392054753840041154567800274814385431947667098610595201350402135972629063860448493993482071377838793867779260695200500456743657775503983639686885232667328229344926435799225326255168396535802321545985225385223384621171400318318562435910062266946219299485052923916849081107263680595758829782700415437125774506259316516988702769084715495173036820982006512697494850672727011947359273497706698573081884327921104583865431393679953249956823311045478125465382085142367199133310650665347807498242152396406636473923353190926756867020544530229892589255698135450803889822174380780057097288669286559956709031584069022331545072092482963278427199283559392330033486055458426041786580637249985005045895378199125716669234123098355742627589392414205419795439771449837935393609876855651659103308826670819873597413026687905208765384815523501414941949849682430927677143060455697725359207382815194472493497075982291415732561183280316361946452636668092108549177197705305261360065487293577235529260962950668472576888214967410120157069216913346898195523156270272907886557101770993725412651465540236136387514756046368338396352436928272809835677192168897805780695041348895345327524914636245001352158495110649275885843201980601115854571685758329783063394685396835950187003748704456220216312574633999697299057371127332473738547296276856013835539081667385425633706585400048277777495789288724732610410436045086949285865578525368110155735492196159073796622413565842092979325066564603885453102045611548072392113376674868318040195474331400432326111105737405738802369033800125856685175469573897629506077931199949287310372379481885695599249516794970612884924415517949049076197126525080079832644676377042768676994684008526192357142370545607661458606423814431390272604833866171554199784785469746978693259082524819435235595458303077124282565762542442698499334432711804576906032712083339125368110494142901693341914657175457116797749478437269911235355796280600346519266557379595151096336768314896753091382802328866684430602497505378062746615716877846291651957348806453821415335709641278364912784199593201826062646385555014526667945496537246166639671327389400215490355228265724651362965981935766295272597535679436372275111029227044772267566368790713165447310221766992299580828854655827674953904077956851550562664312864415454731663399170236391335916296312877320143975115795795213994569914730991155431441900981790033056460631927827790249978276909777231701060819921017973278557227233180460001206714415986483686719176901595566288414732536760871884180221615477793300699218341473657709794184770283120032060057119061992719310300707496631437820159198397493128803286753013888345563274367480009156733224922091591432273014520642336065389803731423798597692992678080375247246993407307060419048760813431734071341025474989125174877520270606496971869777532284197887844404089530850909882172923023230195878120410946640102435766677485173372482430946523285316123276958895930519918065925761944573205414610051890118797667629345576564311703317078875757694920190529430493901205423045691518090632737187608009013314399053852637009973514395814512963682094346936857049259344749815723384461832863153536075041054112231961250519804047612354879256665603969591074261161115449514213403639020770601587528423697975583565697377443228997013786577443988935304112373105694052641776575988204813294233109909065917128579170269437902375554524328718738495926110303587296938275384004619562346274597279506995780590319725064296016053490351124905484406706268672653389200377323902240148702396119343489048726816535293976595516051683892685695647750942123297690930855441598683627491420843089172069894775865057575109060200759637214366443165828884493212652055361636597410581486950729188292384600939105335662663071142279024599363343089091483370752211253003241411959460881093085915551889377101906403888499971445893622118422980898583286687800635692004493525155441431407803457492070447939101771993838144598968529728201746705987845835971346052895838951497798642106090093034145566856102091156900666835524448799690330490659495326370041809810452973687075749391514676520406599281570834520177073437350760340380504336039241198144213927214043406590135098900594710376094352950042165555841295098657066612334957760372283009190533338626580361812890624680120135727190030984175304999795092612232345742399494692950366922602594406225589762695038475548662182100336618888365031162541867434599391609207153834018641425116799088713726592067387479890406407057105354455490367540639803606941931617238274324450317082176223927550746145966164462138905151195463719084432949123625042152665809521206373160550683454294827226944331390570220862117703550613057102003101628107407396205964851103130451385811190198570586842570834384386634163722784882196594308671461657885588178016719239456628270209059143715772998241213360908070396936104775932722120103342663062781486177808391560165915067550433390706730139111247341644510635400363050666037374033375851979913198004557390742329641353167969338820930168133027646253039593314134965597571532594346044561541438457600070560640144332881875505383423745926535359437951686276486921123971185754884531564503514228197691958414592730205852709574255304357527779640633399184938166043542813436988350205895783608030810032478141481119110251102963740338204599797271414648241274924278978470671907166837267728203100267900357472849058025489759374637475143686655427034433575202995173150391318653941611339757360907116615396826691868079109885605692546825849857178647487900439895582719782307690343287856655080979127256403244603838827281355986044953198640176810763483285991383156221697945970826862480019845285142873369727238469123854712973983559615990344116004624442401512136649539331045254366984896214461866835159165308285357110632861397687840350385099141614839833328100893143622841192229857137900588028278377850135281748471616198174567443914663492967072413284205118757751889777322728376896066275893547576908323105169892195594297911067617244215898771821760813293653467349876222103420743531186606719858144916098090372127484219971078264307187477041476705010175989274756852302068463554679045699117273488348695165819672504120698067439317080589145928051278226986277053587946264619802793720082223451276006249278873030695342550878862068045491676508617779742041783241462596117512536916228709573884727102280562431301845442924368286908189863102864500793585512446299880676578476144724138972901565537521413714809710610718791300602886619271177250689440663003803094400868927325539406823679446583365907133877908462679951487598575300820358199376718206885125012918585818173207487777721111963929157073327291055028222742171143828302596996308822230219076427553265827535644856858498990126007065460012752324742741873736294192869511300157107435996265104913092329015164350130451915267687586062392114261859470016298044479123826539601856333552739042882496332728941729757263581387785840140993709846474718670255908500141595679465479985096189906076585215921985306707892938556807323687788158791347472826086587216402341358922398086032608459172380878699099814530572719763129453380852585592239489425859603905376775545123567866530138899125303791180618366723678706413344164147818808025828719700538678901821317764672083574509966832936324371911732702765570398182945680620359183893636958626418785685934276009656706844980520831490964911902934054993744592442547731434290833372009109275193859375738130620156829244299980325700841262957246405039089997445147426918085590442541985827879048260971176452315831116241710364396890628155727748103874403172724749796438784138908578417104237893875426666217995023352744873921148012862379053620322860270337099779700170513491948033764477094628078293280135512224058495358724115083376427885348280975612285026661488904742663814459084436222243709840023174522967876996241651518668045985381447782873512804915130902175794857780164585379381307091378849124639358958152800450723530703109387592623195408318954528571472425338145560367590875266134077994872934006551175855911511560457098122313959259214843684838511664467802724099893138383964162564599944516885222127414347014845906925082649452712767023156195614816949545283969626353400368235005584085663713101716638863149431033378640763890516819949004540383425720975648994047179299425025262268004964564318570444231616140783150366305667727513858054946189715025385416296397844730256078103922974315490358583211715596993006652607593749353367319098693961610080072431232595598494625424185521587131395664298846767181303405758708881118684604231683135866440866513911666434031292728596806920239487575485395629661540279749428279196558492073378461200572975739950584069763261302995606848431533111561211370264324582886257315058642982364030281628734233931849896447499422789142281213320183268146899243494278671222473876824904666855900266681914370315489478688507939283541969250830421540666785570634940622860711524662064928643823072094368373443844972383598554240567746114750275514424814586342954250260873116601322687100344293291426602022255888352757519310050937924104934115397472156294964667809238681984109914130534709259966610091631347270323822297654253822665683758407266915606069493502557948356733250872245840588612192452482000812421722823468653244140388632873016426025111162781722172276443921774304117221356699910734568327910397208421680173943088302583020668990537858676772078618244585980849546079198201462692701250379954040697401765106203652365866819830636796061403597677484587920472573143703617125840927596031832238023109370424462450217684252694036035882037739712582654127364944351036067797104914715770806651227577057525273611337456972762778174062478745597704003516335728778953287170340950929811183013828274090795677003156056217975255596523453025346890188623464078902231667457804261658880298869801259736647507376066842426178010669969482314391294390902780654120488729547111192286640311405035827893855676190490863797192006533677650308130051822548324275217915941257275395243380425063251717518508931708512689675631279273044472018219080611731784865765663829747195318890469857727161185353287859162939617133928555988423999670821912984207787453261368976432201749799923500404174106779844073409375717759112356405027281747342945743043665424950121900310992761701598283622469232659219082075080422361125218672557307341181075323335072247489351169058609494043727276410126176728423403950254452951000447841903119759128510610583588853159551474383941253250981572469019125492062121880010225380235790392905628957278403870788994079632903713144289899594287204009411088341986222895592835390417529151660399065557347253905197694103877280985773550633690974620872641945524056861352795802615814183009872895661647018548385095854270496693486335028336277438365664445843518414986307725528710171965684902163620263661119013997645484892771232244630911359526137209434332167699071465372456729673817350699234625450197935239091078318148872450090485199771637884203404433065776430862754437574939524359388244944613728791976356222192309801508930654876551172785581271611361901616692197138361090833206413055935523582356682190171331145609287359995486160261015482902580946589063945622765904955663269282333033481372651998975639512676979255361671371344697510761823104601177586798914246502149040010872897691025959696403135905621907704845983311243047958700219463030495439756630465028016904689113968732585790248676598549126185893663990545532566977215588688909010097185843802655958733235711293804784407850029994502111852235038598316585796804701841511506114845746917688682308680830304998040815641685999246405939826149479975870387809065253431786617466748189565970545055765498694263723770903599033479261804759944823285808366087873712569848160722443902033697320385334180876096390938025674371980451839894965471104030338717361158087001490412128569054027567527757659043271327453993197714736825365913447984868302202701098184621548612305470344824560965130165383038041300826544753250390780624872140653491913493446586263122200450941961188552006035026478805197187651336393039929315244311579535547151602294153178501877976629214425726636030513567908478843400931549007305291384281487310975339010008187571370888594873945795413601811266868151232813421376420212853034795956776677425512297326214009850677239859395011026414028304620837889130587936395033951278710535131075620854728812430808320022726150846914756387605217415131369634231801479391697895368392598755207251210645084770021006613292407956601030236845694940618598805421021792445734430834478775172926917214581494614919231724242815593337618667002733289396419443395874150491628766669957821108847895224253675410452789797831829541632007696573788976432907691650140028324224874207696079689967888686689096898891672862288723446589487587350131659036681290015538952903572812750117481751649915336550310998657822156072401392696075659116858489785287396435650384869844591154932344684544507900803126052907281142666553903328753783673638387031982584930412873707934408805305812947826565182006747698980215216057454728997471087614491395294711997957685845111562370904115079420895297629397818341836233018939386882430224707751868015895220553750836488254825342781455772974423278624233405918017527379409056333368262056141417157537209448152634823579589817616377519871764773592280964802442893960860802949598967292212712476210066880458650114043811380088760191520335169806313616721338553541404311209637585338179594970517063329514164155540497607177326523436903117037098139715714556271235725376335939814230934442484717067609919746440485333685261197601634420203945375591771557106371824629234972493488984676458937663385552120188136765556376954363771602574566970799480483485318148034720475406048846028134421952880634886158589521165303919867480543650949324999896062150898548218470435442077109109076628462764845672719493840635423080016556401564813314264257764877938316225143015825316046458146421271028288469386724278903984604082383243378239749907904771536905481900564767682156434556962202551401614135426422044670017268548760347116634196498486400896074750547523180875915086876876692767327823993585836874310564922581470882536711001379038415602326943084545082655503302783385234451911112170458017303178582428210245450987717052253198377345653846150968248310157156881565593202651417217350453445707510579153660326174083734062693520991579537775533066675125227385849372051400887322308945082475720632846504008732664597038782872743310892674860250051138066486185955980544619917511563919464917800603878129264935155517455350656812115064688906098234671269368840212885825271680036057346196455691645302929617388620122757655457630456940660516413316418839883440357734691144279727172919203924856294054599685105098024083314812330054775077852455054328627222076296886625071724402458126123254953886946442549966689439639867395468308739231880986443094458354444703172997487159062355721398399851926415508514843571066327930722207649470006523240704075838439586409283407706845037091109564013497066062777802855981808917360549660377910031645481243810249823832568223138080933634245318535451365817051794305782070080552791679476891437342326076837413571499025919867266721347077655249486618447278322821104304392270672716762129083477260618902747932710682431194634214943852940553739031632677892390698399118988278985116078544361762654293301755700117428821800195478776431682714206876926372917352012941804819124806830176282799346995565303825013732440479736859922900215568356455345328771515010088166421102862329521936452820256066249856442974635389489281745165916271342841225747423057637934958810271272444730126547533302326753286558799988076987137591084426298744463098097659257262924119928735909452999559889506112103436413770478791540433993042927959985280529717587379617470016933566332273780606967617613668700385606162717273658521394035214148160354409920100899819385299226069478043478190049910983374848955533044676238833863504763214620918920082272659337026894354889334212754325641585359810485733318265249608116111501813680826240996399695075610616060983780912096733209901508839147397771758203116780834984248059235119424206686903468216636818028612364481998638554839209449023004476280864241126132842708150172108210891566509299834508342260331655600697120190216301237177197660928219002567711892230426715326898318114758505741611268731546967360457271832670436896573249642071957714851314727129110200659174313090195741149924739694183542262254737056857563008419599080638613480072019517662880366396324438750937616271125641894595991941142541060204988741052299598860364218813412820847342178463401291137611038843964757579572933240229413940315163234695386107766560950171590160749521085239351163800693009676241153604540782128165436748244280316286798117572250763961142962347414515236553331404432957025695038542839927596205771322745861416267699958955928346273722123774205779768653192887422134339689429361270642582194586047349610989043911153736653618242732502218293808218964139966569646557756445135757916969375873054467824674990510867273133936053098043624871486177840918767095682594690698764527308589305672756245704344500203502429396658383708360755721856755176091852042123523619412140408373888149309218112403828519831219364071729666080277441526218956185413225955429473454092859243740809313262778986853560612321713209072727738821044579856790670254030665751916356520895610088494130993068535103396949067545618853843741547799525056618894219315088786769728875266537553398586366487755041366114447537248677559723100750787011259939280858635027535120370827165650040884230082723155093005330401009622857840490139915625380433903001301116429495536588723222783184628299301779469708373758854708879539121346353474033741687544452768104126879049981282393202254113333072934691074038445386417555310464699603908685101754584305855032089816573904591710407527394805926827998249316932297656883895620958901071634214432385372704456736948544815674795154759885903384247323593610008040299827427507928369656973677534364498087667672257432930278411726522344483793233402074564314092787633443973521743613715572867837407873151631655519194945270297247148505124511828702132846762467318169108237428553876819232153597334255237759856738853783000990607165055130240199384735785712516951332304377138145039989220805939460428533036333159041509286569690678859427437360374931985609001684187967848508471139076897158190631639336673908838780247847925625802987981764723154227742507070454701165270422874658052447295328536267841733336565769232903257204990528243605669476650527894973702368346666413609516282598769665404516946310400157747789481949940225406110058488026908586009688719559795924302188699071262025431272506111631102472893289180778720066145352461631420024284487142741572977881148138223913197798716165612824287085641675971804612765222399162485857838686536911444559533807397537036010258223456819031079218485128798174970152830715991932322265487218325211493105313424197587832036773599337303013663022462000922081492793913282878689976409341878262375716740769142178557967891419551762666651433701742552239136461956056571727959274487785849341155672684031840847599399423606269973141738129023451486210581716608599423265124480984691601276843908474313558753030477346852098225595086181890286641477466585167589857463973381960918005812650590218993955598027584319656237840227192484120858387323992631824716135603109742354158987664821785032806302131983294470144587348689897861225328677479211613988582357176794630584418883011990060932543945255283361930683106253571723990646266021898464793652204974465936856895583403901609043157747411229777739694141296810802690131516189344203086449024867244215776555421231262314896744843370042192501957213460671638462822992525382192440211050610961600167540091816920565694014250210003203880971355687708984318778214137908156257913277798727079472684373693971839972566763341613356886778493404517170388307326408134057739587147494529268828144014346561834444138033534444692226078878482781722703251610073347476120757882361823358396253391517780921032680124587163400984282165962255102128404923588212464841456588795520113371680966769812570169525396578447542324737429043397994302264980402760355165422585900551911817321578399165113130603556681604721119817366936255237200439117262164118878176706330881039399633088547298219732846843945083352930523342613991378696518181537226506339865018356770059583621387364314068655045363159976492270679520727634301436563184740670674834874429098742091385999917535364537991612320367644111331838376081340108710507043371094857652710510598644975077510489466193342955291729907109381452645051595557705039244166809433436550622659151654401842286659557366700554792269692999838224498412923724893342084890886332111546561258539086690727560277484790318216459933215791052424557953515820626011258751752648424516107247322120824698527647071777159368199932926800398267627494452096534896484966079002019738711189906272022964605334508071477038699481759484373423486239793398251062952819088926970905740416771189687688650193911701991450710130999890448143435297131907324593405014945590584681012725418687831498088108786796654063535680406086108323217569849381262499842097462421672351360295425909073933029825414565139812804228309629723062988232856814718790751274604205992120600450686336695802890914235901319555220979725304697910222361724638789432417140027734731863414665001139826350579908316276868000780402404936180966784409793510183777311908011415458647072812143635674093911798350760003217608028053289909950801729523071882112655421333806514989142033556527774527147269901865359579669910916175204671555237311905119278913263863678393820284990135209521175753081941272642703174341533295714186044555617176691131223305719767385126068790988593659531807528162247975182650376399908948058971844577150985217568080816866653637872720483325232168595708486256290247484614884668486086478524532641898923523784640422054984555847545956985826446283065720132140292310308850165361841927395236690444518829192566381893411311950271812869330495586554038972562451392018573907414434131057185830651292942019583483768047831847362575544157763775608919445932358023670169200193330346916488580823144734305310671967449223352448036851769008807392020352207959700734411891362738306555950179464633843630520191910122756793291520387673284871465794458337031365387557033695136638359393446757838516825106643570294451789353162514485895361461994308495182653156542471618296191291814390238965721169449967135698626681631284683224870846174143115100884157625598268231802962501668604307553276071843540368023149065760109451396719781406150418131518281952766043858265072638264962258741024908775225134909875299548570337652655383952608178476969225869033320548157434428501558487527246859683775092681458056767797028406376038392827452801778909166724717743647928626462742157488613805538922820752426051993416172412149007009068547395071102958467342551632129581988689941602535554920167046418161641125512381541352267331013985998637064503758967705461671114257544526319252164062319735860398079954687427941996447395712253898032731639901600141404776971502163881735098734032602990214911078427201110098873124636251345122980479046108429333466430498821002016383465739412623949254318983502522957764634111820624145136462270213723669845138664358864359466617371165260221578792587522610604631136298091651058900192181787561349105116682636634879607999185195710340242582230796794986058765676647329063598262192992120738746818222309529271910764242793522569825409932573311097991370623215646440059786728197810732072349166276502361444644714923049358829925324333777317974357856621205212561747632423723952488231414069257968260230543630628337493093822966120428707873953191888128628981821360831982128116464211188006082248559292205678806787230816633369271653525932994820291632529254137920531475584837919607574505297761639466181134021448673498595479086817516786705261628295933978049780661524494383562145311360767194418255396407476134171349655678607357706564161303417886775993871254829066722061841858780626979418962018210204011895521965522713592210743131375809767265726890016826514248715991234060867341904099349738395486024504189155390293205377062587019277113876958820547257549340160614597111296998544852656613787430857556716163925708910935102603511424485880833301912311224190357413055698233833452825826094719247105074813820890359497663698405874322596415282488002636724674603886758120640543073329834952708621245427488507863641840357856365503168371557076852126760197113202840574813072121028207239068184988448643841613174962104429073627207575507271952079072741694217056389015578488351797663119372276519576205667216240673794148960483771641566866441811636800016645426200390974536502983146368393413268587760426695349617996804154372077147390175781185475848619531219201867233353785139604285059112660376800118831944910849014024501276854588361122576014486235803629659480250778847241317040815927103376668600425099158624006458339751357365819535172779558089901940131523874013244430982266248977087418262777945627445792965799801030846149957388400774972888007123558941390349873126242538648828958787164866155328488061380407285160994492959226425356552470676961923023648035676228148037294266793639162850768258284758332018574175072458839418482249037202892216670246603855463982859021092873230533148600807957395967780292642135187310028261562515838792016840226491611009625137463668315836383345037466328581953577410527783934101581725045116533583366886595109294874253067418964809262580125892216431302132918019619763063030789947266608793412536762429245974012212975340877758818057652044692709899316803654752480668059916499968485278619450280536948463238030646953486430768852478728644902081855153390982627199447572720008563889511694746890692336966671258762999356876188319146272069556604170299614479533552195484469286362338510030041025935740412779594440978910921649154287890776467968040089625189589153237935849893209145721116973933650088147933059225298243227127949878605949793335429948010723574269940852052970505191171484410340755689710525545143987150049320690216921654079068801447813790167411607440967215568938335984820053978025244204093330577795219313978428231994256975124509593863220871690269128103817462692661492335602661987990433641284290999296128402503396726258184715779879279039744022401042052923708330158582418587784012963559505099314085943321731203008380224171124522179325195858771513122836935209263564095668690007647857312938256579504536754614823987548097620446434846541341896689656986238662041670142446495641821770772929654009166289145692955697691766931445508207948913127373906511800969189187250104459257325653528161781470775488928895455746064510500989351313940593439795326433090942800620608760258555373366635904139984826041634356482683539286291121945510399417795828348788081211114971985044439303920329354599770711684516094353982043135150029948358502266527545486306508380763891385210642503859719939688918597080451596521638659759964742804245858711184784977230741434360012733628991832885442083918086198782840181403870531567570998597836152109495038249331418665963799346727768855677645432339288343694296377667825873115454702226819982794002016582131599224153817192370718633947029015858815423034068679678855338671354485159007310478088726426095897773471710952657766880897828261800000267710008138293295721755038605521497036193938634999846160825061637858440721308349796228199732376104241198163674793403302759148911969313078441732064245099357640103467544670624429646853176571611684099596839066897997462617948399252826231625160843233253127984451413103194778159149078746894021316987490865221080579841756372592162650041782937772346851281750346108648316942998281582881985616128816274924931373295948136737120612945053323917656425445443251514668844420582382053205542306225505168547297428806495326083264162941698890667519807201713954333945784628935621345982377860313567743952305461614407626478144825455861653476979759824549995687628265061730102335121300680415372862360815561391069963373329106182651829950660485486755436183200573586211959323625773742788069669894904511366458976976024031553485687550480670080019123810427871369595183749523601542648698375283035460091045121678279400455292660915689635641025946902245375940134852084327824114787348530970695554592823348538890309611825237830662007373598840866564787760966920896556194683044729574270417242891956220959791842515417543999523069033846387197936694957041117177402365735861207657486950842326460849890560348632265534053645890549401557551485297060152817211642001982033377930713266548572130603501681662446737722227059572780230224381379747341341128646747203311134807134469562150340492983424633663025676415951808503623546820738923975877523367762622664216843028739047974816713395913278605020734646150689593347484888787237729380137480104798211137298572471079051310538689992554148989656662169592842656303811652252942444275145083888289864374747750530350978580783725831618350145099367338929596888164236265157026992441037092735989870105967342983698929018372397507829908858851932925216730053162771197377370900587597338373920086896884803005459383300128242239626988459857330109332054672912423070223251722104578267869389478647998025719412901588947537652052303949892606587385105736105914764816259115434034881162578813688281780261865057469403033877675122321208000679311312818117768466200574852631773955809438001583626692061027701765756343739667219105206130154121869162707825332686052407763748207649114849145830906060910627433516382473307508798073336380760580312474500239424106360008014644092471865459006197335452610113569907898951986578875292770983801899819927687953098640974199450049502537689403831468863198058042650573722852998443124815801092325608049451928035556174785509925450043549799082924051391055226398389119952965342847789478298255170837577118266261039621317454929499300685691269620200107316436289267641096914826858081079697383811747950186171863820163771828612884036477937743986807037136893119770730228491466366982907793328237870022541908504096837819652297619945914286072873757631250897065698640067742210927099286788292041876192843067655675509857974511011902175830646075246069083449431535370668839445850256440114431853172905766710110067186653855223860653845149657059942588440317645158895260891711783808977481209677053830898688811312047705150334227927993302571745851029103345937606292706103183337781402213738107914271958911537063113693359071918042502164586992585729289587871711968441774134987216836179875617633897223239530244553383134862306075903769779321231333878208919526967103982764683492518519915425731495118872434494080153537844049874490247509762611069221519501443545462238957090499229352812365886845205653733919969202259020565292006321175397150691794043521807286913344152950403020053284620964202302376257371859321588445321672041302688508317929894159568060045223633562407653158417371193456600762270786201249101375470354676044725683002287220945779010227196708814377312591147206489631529427145009215311825790434957493570803141647535523490577806210713897317881192244158832714057319664558857031143736672040144969046638022213078555110739800243721372602578591549358697651588135204718520967916657368434686467174266532760957053844469644198011160185864548368130692553155569899904653230409980693489701887647408770555062707845626146876012649681110852923864534161376482210107642894664206548555157103147982543762002599077109798897888203773929870625844501212216126173628922531410529190213863569396404052356302540486456608629489279849463353375344979974671509478827598893566740741045681442081946823532414153567074759045485607708202509912608590671671793325707979083667391686546155759390852891961731446996663183677278873596250181685521965756398259000450744548623309760281873867751381894833419909082992827456385022890162166861330488129968042498651707705879519327897528593796414734927621815455360533656983210863370882423275546335467643770657578179832199507709372328927573474095939339694435499812892637110185488847572799196999236394427198337436818802414972037161429300997164311609667363450416735469086220526118983246844013556930424589805801394585205111465041124441638211579466767373148917273270668226426324974182955295715818806066449521436925782654845815662234778799987813445464556164549083559015941256379372451151968813383042710277213841132675089537501687102673813983491139051021266974235725100131096291236740603447594474951115209821440990701967579471446552697952867635862142969097900665914222222011995046650797608767086733548952659659008553890693439602245404240647610200478230054776298329244581028360970551638811512247033534964510849620699795448309366589561810774718659838080128004241021272678152605967216188185326219544667842624523213634388627706823704361896791495145337269763600808630069143677049529341853743439220313935660997520219741437467705704076449047187637743120872280619161784584848383550758517561666137216672617739217008273569852157496776395286819817866475720735106794498712510651563489873499113967057133666195003910378369998890810159904400136883442706701203515292284491158187292491556475306774854410362955445989170325564847956796756587777461330867344933797606023480298808115912677651779759522743230402316029611938789621842913173786437943377734320925797142243505305734684641874275678985210128355605862741815227144461369056378057022153031023172485360538894638712727402789912278219768375840536597652488895029221722583254214736026252508749332540044085270317287873932514970301511028885706826584532506867788006075486025495489374398523907011730719107362598006898053193642546960585819797982423581593840787895995081169763181437355448995226050022385471153181865460430300967754447926853790803948527094606052422423989976604191768542493356813051170828063688005046673795821351876111397455933828758725309827800105470142986236251332700044126900589682313070490199405587708744209725577588890721457951173181043847977460895744674965504178491299098061553553297761478362871808852267711994155679329237076693476907657364987359161190167537346444405118921692052333631539982476277022435683244113922611348367903035721003654844393614397692332074156586021899218709366529474944270687892630593713681602273147004504333788717188508856004357568553515917820774319293172418550147404102478859986064196504847348427585058280101814732113547693719610221945400969181403408375100443435027265697458683400581820883248164381660351376190280728073199229632951011066543069792942861960905775488926098910383716010124232865625435120890034531852773669363191398971905066115230889580842388916835205892905392436525628174083911236390853889304653214149968444857655107358710856488987565532889122683901474965400098012211651010839591523629526846349714925378096239177829431917949765875583285217142498925316050571121763903096360587321969529597527965865842302059973660114066326743808697698369455831791553546955509309097691686488094083001619636174078506591235014658131480465010350348263552597626309513220298610451041721706873563785544144394154971151449883112021004326919563445843902464761028555560153788989587231090333734041200038799478743668944641777846691745971648917113208843551471867127164316835557299728829501027241359160650040884139788686453781348592034122485182157189423108392960816923530669624463236143388841410291106083421539996729631921665176556422236301796122599610844653932310684744280392683820831092347803588055319120668384127442371026187583533316945621318514887373335934607771248063866522152650241031148102510941585261397335950516903421567376495880752230878192960766440568542299152991642782529975024545434378214589215284509280158499440598403609222151447005390312802778892835220486745425060496111756576551725398280896078046687904218760911205243506404125656500400712310176442652564892619447098320907758648641310737916516544897700108542525840934121631979391503361189504607265108285389918203338828600864129778007270410516713757440484188070369571932474126146805075710721183898920368644900386260890140706908936047716838080642425989609828395011397624148731340272253249864260119215337344105909830440764459421999612418439641239837169404610342526041208386524765887436846160062514350578888893615380122048619924937526737659056152716120563550545429374204743452543431580075891097904169979202370460353075697777564917602584755401182669199988899465242645099596054981459852990921265049673134595244362048273018489362744351091479247908558986991654657727970671137530509444304288771842103388624940936228014286459245536850927330884426902823247418012228800140592843213941619010264749183943883125994771349961624119746572532641138790082062073611300929854610484885133273546487289200941965343374351069906639771051162646777302823044648795250505188950116644118383779969102337127606480267109652235465383764405270300034390000752433857353729749080624340296072197766352827741364469452436548200245446060326049992918244295497314190560255008208181595251586763940324019387447620518991252855680738504616967980436547837705673656862424203306685115309099681360239409013945754760191213692631502166347528753497923300114371009854364412357298761877654794265750475858185012785082995544478035071108006627271897780970148561577941578136037440390173326914495059046593845351387868398271093844711903232195655365290209293969885323949465612526274823559530695850183396655171656808607804317390181873464312805562961812368756435461784025947212269618218697338347305553074643390155042800753159785789846388033889095234706911441282656477735378346740481324913336874386902909442862997007244302657131439582160098482605186903735410750585098647507434711502619467761232917462236739924160925932765543960986872094787446172974441090979209867743278049193036129278544092505286542741141428550517749885260746408415984131750543508533592987401465239007574078446506057497174383029020913655303786718001756541612164743149242579910285321560803125062633308086403962085538098989493141451428928783735679006400940526120978874207556664158504634359476851490264436623729781908032228833816347867258404486926466501302277307556863599640151006550234748228953930249985797459473854352425925628837926865196933845171368900523629325269141492240548139863043771742674596267594175735541833391029663978683834811451116313106198959167931845644179014851754259961125127312073288481200509290024340552583571412333053752802287590546776475602267886583414535964903795392323328406050847014229104654336351165970735758862808589849989273722800013572618153393788101453597508110386878767701319073133623290805201901183577262310301061471770171778150408378429314685211953674221305227211198437570776224264482035882082980736118310062182988996419966750681038255201238830656859198586834506917413595422706081323566441784835943525004498655620898893442645731335993236481634201000110069612905730339163619383145626469583040327794902388789992498241751247222620809789274738941042095907308090184379980862234407443002940361775343629041932504661115693750823349974121466818199022047451193884177615611337862729910862793050862744302305422957647066219192661968562750913522296030842130847546647272316459661170737815416652621096188760159905940559464740466710727820609106242266993026023811097632270929934902734922536939693442987176954781864504448700192469654419879618091110846090103973654655289033858650700022075159106762082752025016509478329967858535279203470530402723333803294785693377625990845645988337886450203687480969060262779196703040914389237630986693447461042981144653921864778554314022829332612712072998062632974660997734070947001924172856235939353126399882555740261805327216907276835496095352513226138630350280967386250152305480658776995597712516842541836908679380003704974423180955852892689245004326180627249614803606772253950084359517943577150845062795244359178390338802264172875379346049457046828673518120986492369829317904996789596358750213143878584023997208825894149817807948721450958503890721969600366873153067773695576317203664192976521275993040041075920489081083364202655607603994731794734602260369254460905409821402425978643418667818178628003380880545037517826657535049129091662450560547328979879924781489108678925303442464733374318853964230639885053716476196276983632763440719096063508005292946952521621365052675034626407133368759018278350298424260702527211274358785352513237789031060927620872611540692646923415229621623698842551201002719134468731720893347728317637442560676760771085577854298435750568420010881008487250895678366178967054972395536831440855025086421009622277236854982315458674734216033941877209029210528009505282623967864181868206495749616393645176121117165912744959925891327836918855623716741871085083642004261359956015414272793891275158843293557256303436429670391662897719197431910283701930910850292113628067421838105035434564364210672214620456729504740306012310413169746589231939540817748398501550961093904348395586918299523736214808877447254776237946345997823155253521630658583622808848257259542611550157882962173963961336408016813243940029353239786110888389268778726392875528154887525890120489848480495466340336350269629904229021012901630387727050549615500070320782472666811506418839932134173242178158939218981220887108597890021369329901702852003503171363585576589797152563323587175456550168510350566623226442923718719305889693411416782947327984139967471568251637608218712395714181194590730515459939942492695779131457558030446773235811548550760832584484926160610396055490450248340572438508569613720588023062090101155345818246511135947231429742812333737025491736656657024494025088480055817851701055078689984250809700926788685220957812154835828957398849372177073202912847179831262832655762046742244254120030210846690673879524003283439691763945801093578495515956298049099838282571756425958057434892019585800834608554377638596766777642720324342564714068190510199826972508974514268702661856615206240657560671468923252886980608970341432695169501860449977687171759143576361885129741630075338574712851743058526564468768614940159245110245535528429984588606450375887685610958696837476930821242686974969301544952693629484428859435240871362702358257515110550058264095587612620498021791243123599750288016448336962776237780023781671875972721489427137021767960575279197581788633044430790063429830537332732605415044231994705335779205553400538833014480353860006276616160196977392032226654682152499590720795340200450122125316168344771879751999684946590595570733980304408589886016435471996319504468549722637712275201114618020162750727247253443048927169383141239862863745250621945164015357925367197425477403266286334317092608907242489457612229749074241786007251856125913002614799559803274329833057043950064476437665075277700238783453992943864887079416660803188601333137983477329331374950986370030456118692288151319530215092488482219802655742857547826218360937341850024084117506274582632991214163265756443563569196410819680157060927033676795823605217515342379352542490635784164607605990378778042291785876809686263940648458419610761821030285133775075461190693869912250724277054936343600504040992688127584937640799988803869456192262264278888145120834393193292510937045677905642532230446862693005194421893404428881163890924050912895204220566532320582633485067145362517540216132503687927014949750140255594515710644104439593301760382402424672571314752753885289031638575455044592167785238183736287276498719686944036351442247134952550344867364731167453628979093226879289483822168062457572576131054875695993754665706734608682394752359225889646011153781591425807687288754992394764117471704354773421649603521646759105979457599074789939816851931081295028390891736763735176218575163390004571354087665255937467822878782831908963957235158200656004186619824999433786795396272609573560120683513741024636485864685575959741803935224821416546274931014029634933906071668862245834723298075258257079698729492716177024656510741670304197287185755786518425375343769563259027513299411006098412214992444939924047038780773934515121690064105315012441122637850461644030341700505831597174407058678668152519114731675683606139253108501774642080602010495536644808226858167872167875248972625915644880042332958667888824778760915569959189848033075508658768301901239008042009331092634428144016571940272974561825732053767034767109063408649574392056053595626451461354720412470853846656358564648434841000850595925188485266947714749329076963141158110562130424098787138861880888265502497702625006743022078990476454792110662419126915271710127152837133136631365721358752497818404926939488489908389987515103629980186486073668915180399034972392465551283418894352613776017289096409785142287153743316615688941149010198205164901230937985252738205187401605199989711369883658102461856563640549709553938445227912967639195677991340504729322890593446140798088060586902670344957604967530241654580418082594255702540273354024199101715089508225006791476854621727991797256024595320529060969779818633518843073346385875438256257747781152926699118056180573313602942854769611173882814014669903563560796844029415102478209496484558598855495564171941559431834510776460968547041494931721600288815269292732789046659464451246849124012093071226514011256940871436335323337749393960979709296169703083474624977443098825070242794074687971549176612951334733097765154587320727874430039537936800953505715498271029022651250251889723863838953443442991097983324585980341310802587624542506170397532875249128866191818955259449450958717393531784315375369858247777242992534836315216853797106306933564338295461551588160967397632555157581531175587589969075411769421105151957346415640622272878538849391939286542479138093311226953652947411329405029463139578923084641535540380970051146689591285406818928151840887028143474620509243393401041762451475628001001007891461997071829738550545878212075895253334324503495839177791125311631418724012382962529694123579026865867248396924519023411680253397812978330528827335806303305127350132317082724186514835150177618792204902827066638726061583877201259124565437123362764704865963512811247253853302659005944314487821848769177562509085876947084511400005428131933026819427205708712760184037111600548329730758538060192022918801994735420636899406533823355842309698554643201087920225608328272062233708444222375462672484692953887237565292207786230728718700337179600763825820430773616697511080275813958423962096869475275469051640363227617843303564830984450761369543534043504509830638329194091534703080337989006215770113900840958470879131247300599830093128183797389167526680871664129411051500714444824555599949089131087799050052227478418963803836148662067456369275436066977364477456023025317263540236084517625527874724060768305928956771971017228978218657440389547372853299106270481172564659605862655721799321914704435724935365090778100803023688264254440234147542274298817737739496550659093197936638743218323446417102759190124136899435421852911201837505046855920496781069731476206165242742403259189808434473745374408600229163968794240459062646583494394318087046016969990203804682172740040766309398558493547945975769637284150530412525871510871242321104702506154345991791640144635887009287380349584995779706785810509486871065549774587941626249329508472902785746678320424316221252449200949467645677819222938039001457386115900222685965083789680227020452193381941821590766616748733653164197833505993333708294421218618404681118798222334531664607530986353130794839588429699419017437337761311766166313628951345069879710812979641077089688381523109844627099585928585002992159660973810460184454521529225226417198134268504533220572978068042142624682059043945556920711645469672683958422854026774216139242095507620122475759455021298796224087240579602674686567548169471017034826420843349056713233078998864986974049782226771723836468939786745259731509607864525159669937068618647652817888349564802956577467728362891798940387104995280753959818498560830257397438759393636603917408116991983454789122899241095092399979571492005466809041369929424796863150245111234094873459928640225644598820468774062279541410155766470333553862943564270910138258962189163537508643843146556116380341524298530690727314978492469384440807514361868875723521021283900300289144090125741245454054241271014068835978194413767583103073635749116100809871973852757612324162888961136718976567986546819799090812710443754794584249770375322182999166073731836622262953170081283034620915044910883518392379918015604762842371599417252165131891397206703240867896793136856514309403358704171753684341656219292490593794125126896697641141077121244939352493136226378884626971572850909572388020023325754958353780148212305059916616570822840311026381387352179728427927411507862608790291084501845755164099380336452716262917106406451090659657864113067760921134901885544984450986097082140048362773708569248692840220893749112184431135904415768718859077400801146705389999780861061505093541148107263343072719631017360574743741060401883697120409352263464401468742889501136619055232160029438788829583543982273959372641482714260746595838276883605365811297213122911797877298174693664098474351514476816463470638883524065145472139267200547963085446101968566215125833599001123398495630622255754192980026884989893977501079580844175434311409235885665122306588901988108099456083675250596947221490392977192465960211866305411776772522453290950766634832852596468643115236906329580949804602409558214244496095958396448230488941736809589713276870780537673610996981893426984287821096727543551363787679954725991545942757558689560605492184533908551464417255218119180781744231059688539044765433921542669641256674475268230238943395867589795723821237590714844686538874360235558563882775254944302347123574663488261190959521140940241488156158136015435894162318800771633454935530404261380904766877835137408730230570690234462302098887729070291932527634326349535581207409870378530499298678079793226643112597942468858224590813925802104357453458457637667347189448834884473802885828568911224627772802600657702612474146783833498245947221914154547504337707297298709441045148090438037905057906909601606298028761327786728108274144272489934895207436877136979447425616295435062184344850434692767526974373436722516381097260198603132343621629875411105377759795123195995603405730023728068515910930695637326803481576577641135871411327372490006323711132068174936713002705069011185485124087852224593519389644331265060679315010216067351105621707915767145840228804677321067605364559261201794622635013686844930657331150808734025588762890840696097371039745835667981969120626638505653454154344627273710958570548640651154834490370321939727773480596203156980023270826623744424993195856857407523475911445940468624152948756824122886181363725099043275498270935488839750354716309535917259937648673923852940053254324926365100771042197125120793662700032975741194772520763161125297258376581315230899565465425033182008794024663194659271056872873577134672719993619665383826030359368906213601932546019097544673350824642418567443051258949198438612495079316187473986686536869272530216857972284455206953959512322577779370363736718999663331554088926632407633435458620480063320784391347380568795528936832149867790096176271328799089593463223155635826141131475357496158620165216640240698903616762182463838343869296739178733214019245060484518632866927920071576449208350641410783006207026399903376395597236933690722447262370515272339040763140433433444940691584918644782091809466680930441662723372387556897508845405913582989137589033542165178632245704489104144319180655596797846435291221669896542520890520885095909422316174691964634009800194464969869802414755280799954818299294263234721510055475409720477999695541684873860690829249541651886292328503712195496631170872628683459829004162826562083647258063723218218745402250950311420374881209816945340388087982726745623070631499672606201265071441971337240394749863001330578995818628668167058549043241754587772412363086497486516822286453357142733641269770769830471402643661536735777978342808381773364849653641032626720834629901202316020456761215152488932859479195730518853640342805295932074180950567275498686069975604973143151958001698529563201131368650102877150600701813467970887194834698282665254262222789072217178991183033842592129921601782123215215772314159659962605702776086818641282080405230795531856074247138504633649358040715374180260595738921627294283397221374326780503500092062168929527257671582286210172198046915224885034139662410103986739947902408152566056634891521786549126482039584266506235749431881156499846156725470216424410570689569895305926792296997701399932552738487038221085064938982629181802325506670567240426481139057531679548830129480521607255479617869270501971048910567923989142601178556631106486341868389185707803899081006981134983776099960262474489477466997989797822297749440718753612479149222492780594354950312138862847517871976317734148117980647330011667365421034799706709541071203031364319266657535290172437374169781274795749225732622098544751142922824262696546657933696826407581875130888993031271328954134790503493321924149906783050905685519272206232359240888267834677067383101017174610271850090139498032790796632287956987529478531475341946225509370868698943183500063380876258889406242231171433015427780017030889625536249743198643500305435384126908532310616076871088540084103640847022230191958384541126627844262380066568641927387326136305456267229206889291473829557288395884584412594037946603024046858486920880173327755410328815082345571439392652364291791411374562826490836927944373184474702428044804761483014301330448611170428260948574037025402942383289666352129975552370300743106400595186472482143828569214651984755158787202502803085740960229615526688233950896586897052497081284764249502514177503560534658029748768503388344299249049211956068162727926956571250880654685623897920894311233193446258488803585719256037735735803774320114922133828010716647006178705231729839249600104799403770297131302611644489040081312087118659125570087526837299708826755669937736403319794595504278347458953901185251975195754342937711976273958653895337489148002614953578590223787689539366960688360999494027692830379884232188025041596972305935357856841983559459777918594754016492870764192507212428586849659371316785231945395828073031089959403885590696197464447037858086883823528033673433878766218335315912246495713866852372065959332622958119213824435791119064344623847862238378149633956677946664374872261589370084541905942044614523285925938525933761086608236128073381982463206817486258172148384211660650754707641665408519699809619802428858781397507631741607098935323117665221406088171685879473519626490824228063500831782088813912975752673693464952277865895295632753527372239150414496514842278659853707379595750586087162725853119992534199174366873539408344287495804290045905362153997371300059711381211688421817496540566764297982869020729582690197404959563279640341985507016432526213287121469874359148070571292695617500187027719457121662219811651196849346569039081320446946759374615934637798025582712436865948249666022221853120310777106190576079025548076931214489247330849121722466233239981587318635283809212602730461703143938949241174390370524117152879411473916765939112228851516288540180666438637028057211956036395903915878711154255378150146983377869219675669891685838149678767034357095464575695026571988621576341942825665338030067640210772948073114344093424101288107118313196340807854354831665726671566908926133686193704746191839814618378482833254294182694528717767848592656197231162440420627059355274539161440659963727469939736588038033535269452650019075594587339954047601261952533543560277398667845960630285920263909090785612162910654199940710859773182792868114020199359856263020621228753017111306320337910986602306304097684649807370079936651918583061085235414635508226729787390236246222729742039207636706897109194837151595365042794293690512354411290436876046257418983538432158356769828038458434640159526686810258554225344187348187522068253620003085101702249464594664180789228519338808898195699606909501187724302274344666837497385417149861373379585524808798737632901071243345344616769730423058799810329152428073224228247934549495677791516386062280064472755927895756108600363207924021597833381592839551433604659079406268242516862722556130193519970279854749099216983042563968993957455493696516059507304045162324955524172183417669268156060207721982121981117032350273822625914422746320686674033310771088564220491031185683897470973751366790753523119296765110677525386259448196309564985296939706041571745468221693751362053413899745008464112392774075408226298705103661421104469305182380122148611079347978238035335071389453241467374833603324952332693347997149811511033138019473389748420520716001480885313778952843010638990197401379117776630410615697180248008222580717820724706259064838133972522966392387586760839282085963354238405969503445548836441215231199246969277100172432282824138926313490421091765179738651429310837252273511583527742160100911023241219557069961852453000705181108646650835769910399077695266869627923063833184707942268044343735896908196290935185756079432853682243535718338467458330840203696524263856031845208570117012697398654616302466574761750289283443696889122288710943307750288650278471524035002411901871839989893681091050394185477188539739247145499619851223312467694846754102067592159781634836722527577435203524243474399345544686593091208938151947302921923893074405757303578154902537317774724328392434176711396258955746003484917719061848343947053955816335175193126856168345046446570093550669329012217546606881789499957782203321710201104600362123928304863621051430053056431138974371316742734555922507491937381582645143148991843958391330561062523568160985654465779741945935556524586535878612127947859134376990722575834439738683877249299034912566459213657845465737907126226480938975378509962774549634147745196629171782952760137783160627067298178966833511369175316088841682010455613221041599355802480156172872669897753806063196659055773026580168242238648635758834396558549800054903742471976085496285159705880244047621650920315730358924788269735566645653098389395587981248694039858983201430178656003676604548340848902512308237488330786161046375190249880182392351346314377783007455014758143246768226012361752079105784124672038456445549895602098629863480504497167489786309372343270278701044476228196771174367773008084656392036123404124662029072569718819303100469387531657717081186661033984139275912674441018724213112546814826106478209371151372318778134943302139979119667135951849367820138384462026134601590720985449588175926207013717035838260320652667419844477296402098225748755680715870795099080032280202097828439569751305277554141340504010348454377228236313261293613343835279017016843471311021467435695225852029755172056758065004523782770972650644355484092596589109764761179081607500100932728517875603784021364102445590288599732413090282698982782025427157161086223732190164025123979013576739539176661732289398852325744790357971692544038071359699066470492316883246934676764365739637101737539748892342247495382065085320872338857209722252013494104264945213544075825388425892016209769565115963544973882226909986019703028255584205177303160357719007348163660388382434928305873381344693828870916076610334477407606965411984995636608233539290489704445394834340893608709946150573224974343629977709334987055011148294013435914002414141475560105737523643908202898003718424359952004759351951261065164743786692415649868983827716689179039596450532657717289391197763942473740820358490870323411029495129564049863483038266139566175218357560283719692827558124858908363117432120462566059914542785006573930891880004437015932056134161685810133587500283220996805927953338032519042922243033501021135052092312179402336290226280515597083777937152874001066788426851280035383646543242714809972910989129047362023803850712936610751944803308553835914970067978873098297431946830344786766329819861766011164497961279177115488834122723036326620748546835558654278609763212041834983785813347981369946485771468872859230156364850642277211643324055720417244057950695669357630298790562056139494024086970749859197252917011540651540493420755447382556788046183171221006888131465299491029499623444460534207700892228364750868189268007795919599809709524968418943330686849991671785706210431491792819267500941137269049243633837934515287659228886972430499732835071965510918587763400072165210210629206009833781961785448035734199454645354113433688047936716450491887841322552366697643857414250412599751367110116768251409372571494849254464955173657723453514345058030790370089868838083199241189531548976359207915269042674232250592849284540372571540228368691978862992502577532074182307807679797610220491184965913045210848079914225069873049437110575938661247206715950941100906085833959890530123046632786579108795525527012578517964890006314461570996717516459809427655542499886558479282048881239072322602141864749579872188750742222755600701877322403536387198733165984386458519204832367583497377994896698755456045573856925142492834760433450507647248413082764961662881547068826024924303658875174074811268981319514563981666493639015450191312939531065167580897262881307378095384609423109960658881906802081902735016623211771839715412316010209568578562827946729190597500783121215173901430468406494669296425706079796589102515831891922791297594341011080842960560089268818349674644353690424153526867767026385213611667456019611048341432992546938864841014309565964888090848541470096377516449563089115873783846289085836722269245513579922148389660395838220076341029097281406596602448003004952092375880227925260055722711446425931340259765704203204916162434641342496744364647799286626956210363150916201029972190238310369389040603609066842793273320385463660691292806337545822373085542721787915665872241875106802299623963571607344235253985226793068356952042907317887577421613751673744417076489527295876454031296563908738138501668826643405104393123182185286646311332723335054056837965155260039284670967101262897284228171492601329415337754660793861343292122897003096051695341033360438985809137276738211273142119296988867158464182024423955952643336209687071746390720975004078961834789637570801329651987441145204077965715630021514913180094690662241230863489095862092817449866419046812159548469718989515840103551537842800822305267212920300163848663627558861417138891050685016950533583643072770200278263743060223951243492269978927216040000622893272840387462610035375059016154344806660048514462352445888228937361439271645070986527928178481435896790526500550907904983431007018853159529860533395426085513070717025498862179990849273922139702110974143765364930317063825967740316629101586730745923357934856961863417005541562296799611234377757646746172943861146446050257470657734137278657533072511454092874389259715371093282626863149939467662301976934831400486662068637254417657424336693705287389380763826303443921797918093555944773509199997826426290218755041278735226810292098058824001152998443433013987922832466381774621191618179690368892996133312305893267478313443852208463780821546866380980354209429700490712237181273329550327116785321627054412777390773815265057011150291422122169545072683462776728241667177044123195342807562420727892496074922553340068040738633105451587139481872964613183642965205553192755449367341463621145499284142074179918273562025273168368159390079349339655421138093229296797250050163255159208594813774499331461131556687079618222706770404687455109788387802352761639485836851562036596665758758461099487327604866870485335454437562639247727992405201120496437434752857747101227312162918598083442990618996218553390041427269565066717065686411735538939244601132339278262670768268478828671224427140547421832874691916038668406209328971262183183383969450830940095206401575908652040779597588628764292799832717348323870162854323525789219102110774330349000761065006125052409211727659737885296506377298408488220484999595473759266822486752538660274879068717494372444926829832070868393709172843878550501922356263457778489968499289744321086929213983033497702911352295462333728994766608011963753910737346159871323407284994507571853187963110790347363845314576377533036749123103926128871873961671631300206255830949452924098771982141809782131686764649538320693527018739440742981777332445070068716113321557687653630460434270992980148212390946549603916190465807129544690384043365068450451485844473981087052330515096425688810974923994876020823118926770480331384893787011696768856727819151938806078573744627961961301040899874172207494278638866305539026617845225338351930168635752848794714533499430016401507314306197633145677145185466715113056662180275808144322637776814548467090948987253345765113067364103190481715378324584030294587049498938242259587985420359822928914896234470893545477461650972542037201164035776604322657168048536154398049977758993460902999149023016815959444030827266629612094926387845592484428249817872077889058260448426449388701539326040705301069506176716713121060454102184174219485887015967857101124034114000177179206184710498346533196448914841851432454259189920602903210291187483839916617990058356167893544887558188160272341803136020915860611656892484637161497347400037414924289503457830791230610215302296335282759079028821297519842951636419892697326835239334372260315800403563463700323983698731579418444082051348993243682266426207622443686425602854881252542074033248191899306578042667775940401893123772208010226712141714797684216573045874404454694438894676454170122735855862874270100894725046263720795393045850583623009449686987389785036768589341847910950929800154315077944574869182622169754964059513298086563484386139059617189176613646027943721034204741639490615902992694043804233977792813822349740155186757712139734316585619649383089449889955044004623259575120334238750507516356798648520048312019848718163877726569841959522448196244888687926370462455344112959725948208815346442641970685989803658305801962081354084826589770046875832153135180112298156139033847861406980378442365024025695779438322097010169114887485186608198620853075961185938087105310679219218946400268047282992013244140117957352592590775542684727875705540038687029022657535176460045503688986708598108033246886310565029088982741244953734557551062609857143664157976505460003620585951188211654191601769739681326276063492014696014400454266517362206840761869939511000604384236222952557126082316282874237663857844518975760272766833879292844799612391564302108874687606319684806285173315945170436413031725260935145856807429825286076750320822132343219580258290577629581076170997389266579777270938248789515456191449470598298723236772384184767177801440315024375721716557336964094220559163872564871140193629709953154733573678242726448614866737503444561028045083600186466132844113568226357813786682486284594007068507829098765922662821760377762788110243805516312240129169211497361243769721948506278278616065456859450997026317414258125608677342220956538093072351647337868079004519836174421937316993403384061201218860055244357364872381915173415002357574587242080685887126107470704348647292170992322393771126065761073022203971555693228431984895424768382056584575268072002996060850818543276900954918070531309124929016541648842326936088014769496598836810432417709366477701911565601199080223482719463427740005026038065301914050520658856204374984095855167410379401954032910566163400139521887292711357472006502638469856786940604888420292774074959049283703493785225019473348021272581563401634627762232609479425999547427230526336992062487391125136119257111190330956522912098439191584271107538341355447395261077102075012725481271070122433657598781596486394342858799310568382290688583889073825396942757096838437075148223662313948752574488076881253566330163891302507845782641317396019712447153703916641453791927443712044903224865581230082712974666585172692172678297825003354041972119031860193069990561711266718597474248037198898282091022513892149882745091630900192567467280271475259365003009325870332613985441981061196568048682804400589147567300396620028206259042379979028475003822527573585255077293845587979857393490278738069146174425312926717745036281924579539190755319426073494453167834769092144724536350001520179713719732170204532408078971155625055455212801423925208913679558735794799297387402347218550798134393029022303433002294745587689251475134354124249582341409428077639358038776991032813737886214215438419822489753723107643949309445185559820138197520285713268269498820146402767321396760371921389542883279532402138801086261301445607887225673176867556301686212977279593715044968260728908755725826595213430949986825489002423583023700178145361378877512810077556857484469780793619705962757829639668411940508582803824142101862918808694058817194737180455729914690677763219352972395866664068541740562682580263391718627838233794417212043740314234577995430137976274100434448580066895101539205853045266486771892263459816529646959257553816368103208872783145002194197439601559448293915318681408027667081815893025281220063150574835928674999105752797604048087743713499717219863270731945843135790058917481165065237771809050665843832297422157129062139942849736967528839674414738771742753205239245687945557381192438587055305600472458554628097775680668510243722942367236207991062996520845071351747387765129016387880695577863939868874011910687966889882949968581329851417666408288765509775066058871549825439961673508978593045798716732212566645787794472097758243014959833682804994537467868459377389507698536248622173944155801276947308592367255903323368907086185760686391310557907121518670447773115154488364188791854174550267457823113364337136060152804556596991704167622266836288345398523621587057306847631176617371794081148239369186981229715020564479617356800271455774670405060354150677791535407593999398135118361492773118501610488926122368188198281094758503612127434831795473284637379585720967544217987114827097108203787336479334845748510698572243692113947279894281316835278644887946434282544038498137697932874072422305536963257388706587205128064777654412102986270659212170640096239277167306005016560053627672348569989215685865545445426636407706019294600566614381723928919957718775363402060327983680011724547167263217723318842102105487389097222848610500088074911819358261350400903683803935324788600148782136128997599910661626907326739908095990306226767917515463692905912238780787378375124707115246497160811532192520469632101620463712899898364003213873984704332428877769148525867901428382533398775205172827413958302084692539594687239539519645637300092466529626788661930164648174160893616650014791064567524247154381804236448699863075351868829148395890985780414588558167348056006250525721571677923449422077911485689478783098363121126550868996910702259569221097813324665549788077672716731877822011093339156643977664339250093248536283248055279611943888745606703888750439794918793213110454701394386501766879646003159496287354270828747349761658047920626823563975167911442292565435800153130148162880725675639480404309052917386814274010450592151503270456522585158068951396846457887771956340036739655086514767798186793895081009577046523828852383296179730159028327677221205557543986022964218028083375428514601304917141904138782421956954089898490625129480871436416145119750392211751806547405600149269547762674350867432169987378722711960392691604221777029798648536896462019331563270829174328459392336601774654573240637586661022086349904277452171589152847488613189891513186017032029078320283709337400402408442449597442532876386064898631811006803961863068101155422241045372144902986382390218357362221216928442358902573221503444795239641287286199284685249444456206620789094456880212681534909254134572782522203445181450219327140218750599213934602851222303663704547066676732336740729586063666733692713913035287145921651112567347009129268572921230040156943662059690343505405539176702155637191769171620439298506778000283757110117654606781006841045070905401251634534655121512047431127272314635047959588057416657936379873893492344734920264444964767416722524364572921139888691086505255113271599526900291242594197256742501771994866668635044570343275951537697224668061418992502794275168107981603849638371309198465464778324144115478097041060105177309933029921654965796979198930196363267497718100141302489741612782026279139208342103345258280844629989434362609935166774465779052625714741173916684630279682830209887898650977915375956089283116426831083525569914225081933127069143346720675018747046541053237402096837694935287221871097966213788244143096469705529632581002934440458445024495326922064423814746261422058395828338093424055997376773686296099954479793354922480129785905918516984879660576161038382631888348937587451675059417388955092562626087943163838820735255467917992780634084500570055547381341680627826338078615078370684185484107406040336768028690696270022803923278185417744764725681162718505193608460141331452772741837554509384498509530404005902329394454250847463648583646146804264280428491200577422681664861505261812223491470644403151375196877290919598749217086464839999993133395301674033019455227298730265147645604438350648214773709647608313811875872244128732643748298017378201344578503502439057437977363267348674297230683258115937083776324326645982768682681165332584897761979472469144127961404697088225426837859697088822147319750807785152547869645789480525287018866276425731213116223684051451952527191366959002564955440504172148681877552664102406360315257171477085417990888005837413626499509645400430368525623586975681650862103000886819224483456144633360854095763004680445754643904919868242871801439497664646542505574785945635016849221648980642991177275920172127273001308825320362288551310997702884569988651630482769794194289274555900785397912207709667987034894399980655285222026585270858960742846047467014452903014816538226739192263713309464383991006260461408190835522630239934714728232769039110804418798117812003350620700144064122158207531562695460038791861585587956491116675536718401156215370487609029684102085773231936627613224909729465311125076289796342594069910330579570727554266712421318792512896857869454794233571743339826026856197772110351142369651282753332171786130239842369901431292136327140655125980494548586139567301036853958124182358010437461619651497175279036606212616863818855709282145130789161387118249003345425287866338707824243674684674056194559338525088038950021707161128560752425992889877563357724482749426059342744544590759169180953066724745545660631649325531011541582899525214754668749680269391682550713396234089568993347088427915464006748428625734231792478658346485788038713349197463997754437735469229509558041674758108007226939389542704461022672257022225156680475322786887207932133050215675635361447191023376249141797854913757516539205208656856536779934464662183971952130290356494313527653126575724963666314489352014412917245168679023841531371706447043648412873027820908642766795321402714882083333138503186842065157633080549750985278390189983326639199193129010219409415470068482078016563466273016774307602394953323653728217907799320692225863726529816257016626702268329859624121110515924525258061817050277628974311121939931306724195487748715448707363590477311102144404285039838579323273720299360056018928646241904327582975289667273371881008822453252645939203472661463378757439038359068539421035220373346836335041729530952184296916812810517422225451144858744983267153009412099692232807851877640783869275572765452295300137958619641186299185162595433003172990645761222560078699724787972003711227719880310000305705630438221138515222653511510036323740793418597999931616567405160194312693049606257372200479446743267468531444703278620375022197451449418613253847360932896487261530454198687458415507674350354714028093727787523274735610946675075574337942204392791987526312457569407038042927506306364873756320458501947556448710237102360026145495604368297959919213530649069228112321885733744994178434886061574474554914490246066363772987494826957892362575638979978394928929375558440656509941993126288737327858807211538820651075338278747421602469198945684269909942007178190211878601470861977009243692730041707191692203629212138536263160129161882729472156981236844499578196645749903222051253356219526875402075702141219669477770626430201146087127609761967375378039142217359761340477137791367751376955237289382811174560731769947491444093524838775114575804052026854280807522042280338171862848502016763179907750578804314434885871355387574615877433943534630065739095489782972860375997333429105707895934501868600129908059616738172827085659317655476356488703887191791039451192631130393647792198100047204858487062737354149375491658523261096217636070466296108176518732543427722460139953003969181174008183999931595167411973693865212053120934071793793681463896607162160571207272928976360168537667104487027398740776633847350243373057715665258199096024354520563737304895637899279176204167720925831759864603088737410820077259338446141131597485615889328662193556238552051715483327430785266526664470082147025205423365965477240356561746132561644478174366313881299497225539591941682459838691545733510778571902559885225777262748873093599587880257707123974477792803077556299011953700034771336732658629490894992238713786927308313258215353654466825583315916027561700231702692211577533216436104975498975897344498587276602020465191207825619729816581297515549545644911533521325968744150011349069909660633485892035452402311797609693028142574912518635432201152650160309669542697360037088172272651274101747753885519641818561487088301635595440299858724677948477291938830088733271939930593841537578207246657989179716228602625505829237055926488444401641596728172510010205825684208475617830456770230964671947686247779282145864292593485130018921940656522608803698248660603038331182879239959943810815036355996411945728651813381244451359964843679127251118718438811523134888466525485679777887937492404139581731350484512269661839630842428178256882652595533337303749183415751708084149359828240388418403180950914791828438103318965353643676916550246898172144507667031591241232798934485121076467961660058451868885086031245430966722708283285303567192094595175904892807465875270299549122124450137361746807601369796594377009431822867270544788036508816590538560561733856516925466146012306714747871137405993214157780813023349375873688063936856598059257006848088229258195976029723491503423760469985192592086308201203003976438881430896984648748362375739706073321883012395260321026501837104063363615299199294430460961265664478832005970984671896526624863499851404165578130388555578885072909355584213983021322365796922036417407892749938529495243647020864632965396953137386049351732452296532285415859132721676495687714627877802807479261799896971666149453085879964072452346679320830329639543440343560437622819120665941623301792311645300765046301337162324517212160152367343718545856614216173178420614064600859265225291638920022499830655053986755933305809266308670754637699141363614408561831518280367825512701056781539285873114850693648442591845316369607141137968131648194700387456886986168852270057016610552951104658483212140257253065889166965540311555883186920709301786613963349176476516126810270959992706794777981269390217413437009033114830610404859683868092819660225293972720619858065517656686959507610565098286354589931913708318496870198862975880911000370092994995139129430094642054865540632191491846712080213450203985928277646030207811458389178333101942194459540305088398015967162274402190889528188094485822311137576106257901471308630041556559692025317059131712405553555550886936256688896259651748940114514354320205531723142287094721069455630127684167437884519291535609945381237157727936609594955429461141340036762771132431500733294668036644202103727084998832005831102010077551621977794578074340223432677095735514055299173289149868526336764349818715193184998335290565056488638548269463470049941938045496441372453564783480443291375919360672715805172226923825661101700098696272124332795275543959526960003814004065815272142879516164890671912983851074497141437819455731312609895648761107492389620985966114733327526377394321584164423831463654462612097138756200460887599841773344205289202117142675508033964582048835551713878136230483019504027201721458704039288628470319105642366553193579912441621689972243852726475073747951859963708983459390568911292274286592250273615061338595390994462722941285945970926027354176740322152377150617273955280703859920449153417934332704867378797670935593247502773903675677502912207342236356629285639438128824724510492554709842202375888790117457699646548936091389971910529435715115513747067744453393360104004708758888550718500630047035182779482187302061703891239064727535991286384129923184034777710598885156210791024046345334585747670530568519549504727025664017719506148009564809640848501083080990041061128131095416770511088978435985621365746474864119128928467784568560393403621462496991687780525893306069182245268175796877311108527841212527056164629219905954695832565184761663456793210976746622526357603348486192705424132996416557036014700647543990953486558065118284053910058514968133264716230197137517115966980482918508863721171880580423870281285192695549816042763707108536376316925671661995859672852001319849447056071039748603058891106683338626830551543164040047773999398333711498649606177707826345846285819749687676066054941461498182727354860947515393149032453330783292675628587001059989394365968157758673724859854469175933124487748537144716049593060631844967111649529420966300322868270784938472940134764909950160275754558120424322730151232579657692411530779980540839419172490901681064040057798432639090192989078249514060337191623744581544808800450204671495713313011405584934232234061408153032292187760091547159540637144645047367316946607617677378884105103510614969188434685464453081365784769602154576190075912435924076034442217812384733886201955095045219934885739982663104694574613938529993975873619724092503297641728225185857740300816408675164145271003615951590891411920000163353285983412297836405616927595983942556536259987836893587604689750364238508080367193268216944515643851415248911574124846720542732029946226313311565637345519670774921076090037382704244521682496816795086400172694682360755549967076786019698770676783148118947313520512168993182380873350539030402932089004757981776642955707224484728007936370804949328669692961100174817373496442802856920985600546483788403562299454132334483019641330395601944441816048151178407173107563805104729036402347376152611109185667267280969005865200275777959444525681537633771138927057474565251268685871842172846835744684029709498945282410903514564913316155331238995787885898997556001449505507399303742478746205112659964507252815449957313848465978392441034318288201185202495853973427588288757755007178232945601737332890525399334027308451556519798421523852480337557510408865979623517391783045093957089676125296833934291350398911092536198263196079467144253528929559337299679835695782379840952325267186390045686756968091461106329289506214517677908354793036898960178066992819268020018053447699102802770715768183895258814009311052855839008160063648359144153665340158373907826973404528756756763820786203122345982935513725537977107784554165553990613262544089120890650075631754962601608308303938479715165819271110323503745225773021394715162306642556403132437490258519159672818314107012569760200256281467846188202655619485081321979525425944674087183069904794366039502014446453736010565655988320668349965386107407306214496648396833057775375860828735136807694144122240623647520755484175863295951880577207465920261904020819485536325694328132091224880242522193760440872348208675833689593744414390077890456458883520129196647521165294482575442353401137079917350030921430543314125285709609102412156686143150495970801954184378272801777878042804535127714265574856799800724917201464210360307646215230395490780269872541881438051185866012198795351736300796551245041149534189561670025963035165396181655922249650911527302853152722228428065545628787156999874956490841659817815143643589880464939931191619999804890894066601831796584697255188547484553389126396886359182132730112181386381641987761731941528045233505017744389783335069554862467877890709125491486795057691478532101525260525735092485246279554335132933056906279407861277854086648295927255249325354832771023806226142099187993828602887175367360840453054747979598687036706019268782577714007024541700328374143817731257445938762876097597670061103651162577494516413069423677420873646565834765975995273852951179724277957493450475841737549823718433646314709330606563228097864127386449449539490416112764647143166041178769940765315876394357712840524554543583526578751093528855812191508261550861329610224485916040049536595093980112927589283358568084181238598267706274516811380113375422032338717263893862061853193166604359582215410369508697652609207561684024626612653071109959439166985350469400350655482043888932832020493414748385540345367923655205950857747078602339780549221011463518486625316224895780724715388709025078027074273456019760466534581852341001254257781026199573107993637717079665817614093796059427482684556606257623096076835795883113408354502421064613601361533581158445345021744001268950297311271866322319003554896625143597292387306871872294272356737031285225819017770993701429241529511850141766227825219745452928657110283409542840979967746493524793460805894671973222687865521162034180432598507517124229066711932530402224874395519396986269182239339659025290395667292167449792728430780776493313033720518725968064118104903298737930912354949782850090846060324302705622196404996702563346861095908599110050953788193941766886397908984350064665888539724331369847496087044293116432333188887223358164589263295098431475466083332001603257549000772135351110801797716444383725670356888595034954673062969023715864007910350659344869413841589938252205912697819364077791607124314400347518411180432126253646766129430393288599910751434528576822310554221712616784679902381052181161457131293599216451851971279941147610960917046360109200783487167632138654888912081660417737436292831152596464383004118542563881716486786217172279545527274055563987271005832562482482960673641586077069677011554045836592627313646699694937590774036784626373878494416388507969303345226725903684966004252337061577733878632487033653718537622790721192267948852883562839330361380943575295557013745948375145192800636478778376293112003048088597635123311774353491768523902086995212299868166528676168470343126607376860581461495246672487165966078057860205821726483871140646179307571741698198158176742947281682730455326420115658364946086614027204406448464550860798850654269144312573689767970258571087155243282094424369415734187471978432922802038585917445452921306644977744117446474831016525844958890490301005695286054757450796151009623534859308443811515904373262119622299333101469147076996606174995215639083467017190636173099807276669180052234386309794950721613387442881707896177753884532268618268819206164950356266302315624595384151455429811149112004143686210758577394885766788952765642138628857159068489992444152529242128907558615303650054668988577853470751849801233886286928484400295666550088037187005905775272890932049850406630915087415196054811720229119741929046000736719119692475787388437886433148573576941494818449366315396778454516600780555197063131480298205841735349370330846496952041011742396486390442173834741318033724914618865389299543598334169364454235739620831420842611859423095932289063176219548137178083992341219443195683267373029646598645407829269730832389784657529660021977051392223263959054429271481782987963309460034215647686178975817388556658628265741423863318292915216276620863954891943219345200822787998912721433904335258599281975259152046117171413627775828706674288358491785307927143723264322454665333742286533932862222550107295844409264082003262201660061104731312317796942901078679942479082905813327203360449707145733551997802375580295777560062602725823310163467134645063138510246768787217635087457075441184318462833823512202300854582020362840633019216297128216699401248172645182206549098770137169097818789781845879535491784501329561882360753422482671897469064695224044062091681213529076959425351733121376323255106868721846957393056727407908347660922541130895155189983003822877622635374062917075777292508361262704180565886168514152593664044018405656954039310007344480345943510887886963317371632264547995564544919351983657488793465387496047093451990801867170686685624061306285452069718447138635420420390624086350547862251939932234463471506065861975067151390580102592210209926584186086270432866380949179532443486201383764521417194908950089835041669177256905802771641942935783034819991632868704709346458234161120758342380239866573004006459488306153750877682640308090076422845606179121335711884543703090793751916181428751185462132595390981074661027227136103980588735927670798540203989249471912759186860732099572746595784071265948060245877386215490638834647674068047850579417697371913592079394580865699066909015563041496872770812137715742739383651778066294494273469236659465882128709883750344112501396032626157258922106577391507812572956612845087461202058336429388314126899474829856297666593301674514509294273836137572230044410871059762548260223680639862618028545369923794779529488739629876053614117323744951825814449536259269533098683106076054182276528172114720005681595914213067426073956451474995873983621603664389396373865596711041727791368316573922344921631154441319738949778086181340358282765839045388467801108830974231975960858560159099077768092601671757857128884963671568373367045567141439148750443638853311184651184755247734953268968736640794249019905438616357021861592955015035073791177745692514028689332736192416154415454668348400391202471566406079176001423782996740372086938508582705624762122525974981640147727040428227561676350518304069887215332432961733133204021520404761141676145759165249458086936696394091132086500761247901522180164512195922036134754288208703960675205416794039262547474238841504725375215820460321528141465884158787908252335258417885499245196234802276051280319388137690665121272379820549265798533015358090502220387004940887487004121849797137067849566737109412069180462694288333740781926095136526653445092614481323383595969977511556891428810773338452717370504487281419152028220312233575862821612900522516808339477936489241144335681864727683711441207903664515880315595221769476797035791378206163032082750154194215944712720596128707039294969986836888953113280793876153054113293200432804540643531262956288654758440898332803249561377937817081038348733101652183664885432553189585062487381896667245152923750882952389121411491970232181385692111454805347473449424082338118523311350699908636167928428690564137267370924231378969930587548847015955807473343730430510450406554215025125874134531029257159450195167261370423233284779813807503452894889445251317518641415683555159231048422186863155264372340258735563249313629556174338662579688569351793170306575176443495705690992099761646124517749912702230157662477998600238261954084081662656989035585616085121455125345379353111149058256582664380104055899517370346873142687688786717570057895360967809459373958750372454165849407772555938932794208786706140670278352628098331811016020663550115807340641376034143203829034460927111711563644298772381496186600490559610157315263048433133387507704745369381957521215213730719569549949303437701918118625440587495333687995102812747688067529292848551549227357843106512252263805955002360598128498991155902635825003262990765963983250948886127570618390764541341240053829910000668403472889261341941801731741934340064105401654791230471051203860262494153815416689933360756180124959559058202002677696186620615152202628958834192245240230912837118617763476541048177641314690868307295687376458957112536278253925211410980952290150760520302510010947532148992787280613736803531323911645815574931781680984295856765167129740172932793952072866729270775711217037435347810508714960351226788885662405254041414137280417616212999621620137174798224260519987244884711108140042929523484643527074054333103908633492356933676278097153618442981705992522482987930696514525967166392985466652165324220981655128098521161689067505111612570584320528301649425090724971553048533169150765871171087056744565245327873299093341565382695520521518579495779239475081154753069745158645711699830795005310629879522005288906611560612191242881604290473176351875592828561161705659558383850659997030069796855979803475218569280412522882004875167146496062040899668435390133470208261895408252710135159113844674128854502017738112734925804222722418088716712288351431641193123764334590333683468255423918628394641268269227835225336765267497510824741445826946695493801280712740866017626809663237520060573935569483194810279560263199598566197099771031154281314883061606405001374054809953262715422399470289228867321346807846807916026012629104254738343222410341974805458621419851863447871971003766508460765426424290833881226899574901399130274327145855707503889763318129293918612060127807462242621899133436998762430513699723777577757829885632114435668449707578288070732688703518937713138007314606481285485176741951949988470357856187498405773342153742181735118359842871371931145144224458097409036561190225441780372384994468388662095013424645795557086368651434067944762727946015940574657491899523000742329269068775903412204404205035134323104594663225273666164401567536783133560943912869903070288562003130777621718790845954632291817433086043412328926743380988942166264804493751127617258941109007219218162732607978048923185043114229905326686060504118585442245930761056652297904719546794992220385259624087014089105433264792954803217252687876649926072894224769232959774606096572642915347158143321999970085627303230481113308861325331191497868330301601433022187166264989829627757096350492841473271108580451276197604298315010581136817948131779851650196274943534699400454961032938486422492361894323958069707279283316849667022568414779147703349907998165402701345871044923464715286701466454719285095227341561228696435891267431094398335380638434230270085967191100291313802383008847818716966300215138361654736902106120945149441291080988620577610888279559356023783935871595466022993775583567867368429490315392573035515245811497261374995826987049941959640797377732856901332202833643139123934139176716207879604783674081121335748657493370378022551717556424781638121579218362673214234916920686979763856438402893379114430063293987194092820517537298514679054128169510251668066262100187269020827713533796272330772397728795429119127825686663117032087135462012635773847066682705190185092318414989273687801722289521871896460606349306498987118167176550516454054422989133759348587396899576549831875443752126296315950119953639897489243416921277300694014606859443285957353928669083212723009549967582057294351624397808442307253616275935961500253952476229752534585970156267535764164921063434142471915962912541041155365111025168659768085948116477095851962501862891702723832614690924496044206015226265385768428780723817531047828908131019130236396785548374885259934374853985810926840368359001724052775752756838545156657001283454966233410152086487501126952293827597225623334787905516222559564046888805875048772614489301600345346509104303600840099841541276453633157812898505441454151608050423944084477327939134773322502992753946755866268697722171767475138560150952454025029087130932002307060329018825225663726972728662818429362994949079825153329410134066609857553942309322810463827145189005433402534878729842798195687079063725503786940928102001341813590816326547608966432507245451496787823195561265598196289801737395897896169273280902428501483030519379765419625708661820513609563227476331454707497483779550532220422120036023593414501321761152692605765250235771345158457519280791137944439856138848689749781755856130133599831944282377372120950480799366959686427393404740613136177475877319222141924623671834190178815358071670919860133676801444650380957241816176079680477635146154008341805797592513473523612966974440127864725654440176917310073866830260033046326504441404278157298738755873467609038317263930258751973673839798714843144332191649805310306029120870677508868293734215643919995850508190391232816958476084590709869680085024993151809698262868202335681776610534823883922454617640872488914498591338718312642167171333406615604144471349254439741475012569857092640557165597828117050661926731997097934464867699201240280377676539528666353185115957344420348401207092076489186078031863276390436378183034706421047152352544159119404996104791662380680349413776997545228411515800504581070621064016856812861499524367051014510345632942473944451268186498459885793191712476773498193277692400189609404075428836529681631444213953337719331565531337267266903031301090992590558351738362146460186882423708524943545704738875764492525448347106983613650648759284630722327506889383323694106357696089128525124306520170926298598097048968711073683789327791889677045494234023274643949489952726705481329874377824841488652440992807469888875739989100753696465946237289476604476099970199074246815155207191167648203110022817345781374279353926519833181815420064267166709291533457983013486509753632429063848759827625004191722871785409567605118191895816100824733530968389226728547485376358376478343727112979230696995711374178397447722282154784560667017712399902219151673710781599400042364865522814406768334013830537500509506294015983510950193742681653810674759162095067190052920967187097394524833361659521153520723481630611144664375422077847662198074721197770772279077833999565162950162823136020734092051048608268586647379458692391647187426498038169632383544128521275610257188980207848130596172137264710911898392957656042091342633262931068968644822309376170699615518835022593113213473880183208935161858488862991049310403686240915643928612797145256052957386407664197317433704970192923809411465623356963313901876844553647987407206313155624832185788792260111467070638220982359405178892858706611748581228881182332597638404995932203161173247842594114875293915721497924760908116947909164529080677427796833257396367854692204069334498645247615143028309679946749034955306904306318149587088822281424987445469629910019257474420823902341962896595351239092492035141668461935171412264274933013062745133141261492985005280560197122327632905760857025663356259858367338708957831133820363680842412986756799085504390028784093356978425840055395467158374652624180565335523698850272730762462500661286085629027481660159095273324718540482237596470631130398139456911734063715885087819303487815819145773479450673557831367725769179054666451178063293955588471106705460850419145883972129664882306413887435410910557828350136491094190019093144488386329071683181176219878716622029314327142942881455344877724034087826741678080348195526121641241559867009084611659515059574143328056521843436470362542466546083163825691162549154370262389921568557063260616260715450987196939336672765502607723046096985802194302065297803145469601050852760648648464526836844943141624358370195398378920829629125358018118642760426865213965127576587789054404120394064458558843308919327075977702371263600672394114468526473468266157972258536342082741933880565208751240663919847249256215200963167866071626207948854512794771726455306324682913690034335436322099245072908955436609417005919492896055632357107476682352559196424480501627498102766622859099224813073398268383991719954006367583041455396680915659440669184740967666646180633221026637138750843261915854297494023236067691349667525378527744034630301509831424790235612041765332504485110614898083293239534955882780652642721171684117400811180726942820246448178491827111905845288404776596984345753685163202502662745022095950502481486801821233643813648947041879236082145472108683108751394548768629305598564843303866184296518680941184111709943213872677283262201156619678119919450908684731354253919870043195932118165787259443096278416342264134937296141188971625336095943501162106982955336352139140897010388796033817950333485099231389448341325408847033757238033609128460526506986512733134538597869602574054198056823187357879293276017046101207774908812649888574692193426232854911848477046199674963779294146272197850033860496495525605220618553600739124585654336929583318827780117574796678827066060689575578982899024269150415574174405418913623158431394403465826877593176535558563031227242861156220602255755082096688981828767009936503935498509407538541333572833280703903176598502327343622580176727216364128946850206267913960986217576316437522190932293854618236333068357788172776536933223870210147308090149126035508735515450240975869483388857250598292393109513287537137559776140289063702907075501040280100348393512277120502337222920798702255220138880462998256760928914356128199238608764555696192525727915574165058284462189382496491440724283082292685045436142562373109472751945363632173446959652086927756840840919529466991992332607719633891723503484395392112342402891903818081283699493508427917973108597622686380700113713545241142864723757841628442633210896168303717322145264306893004875872966642614837512328787369175262354146172713066028877515221754524894283098886627579088593507556853579089588896484500918932678021075110389014366609448838284830240130892197518821274511077135134568208149870304225549857281903112510587872162302296749225951065583300820536601268376123435030947664651504576266527260777060014773944335390618619344672505073514856300682084860315411837856490186925613432770789361861817575133924470738622216176347360929377000214167724621447889199569380961360255348683899704980900118333103733355735628311253571091243804257193205496224940053478331483278108793668603245627827938536027591579765388127765855444383262738236970087054700052954089499528410973323198740151304154492184078559240516606902235518379835087806942330305133483400004525215616413190022370116347161534502495606415335243007051439007886636170774415059142206886498306026102792433224585285636541884126537564578750871509944802293566504839468444867303510474177179244485345705804078448766412756817176306184131782693487738064564970591926826619403965786305553910855988347186188783099265375652116999948653773589712072811413692535247363702503996090114744991121309631826796275779055581877343974656029343750102605962539019073112682951351674159234102762185261453619038633285503045961060047853284067528219594668540812877379724605748560613943889340784332447179570869059940342151105060980459449650762279957639787976312440257767733824337103622477330075827505961860406530830039561293266799940172781168736518078427431702542979776591888219794484802375090580152866368874037490122495776592396486872205455146430971917994051135885643940465625166283298328344649646997259837311769916954782193492156608925812531116222473832017276042237049394217560341182124906759533262183459295656705723427316870275579385533556445095745775607236903889738402527077682547127056492795400340865360348455256138746590416481826829911261323133997210370463670462423070780490593368164813120020445435911011996085795616104609846758817778852754924151131992790327830464407324328434786652942789749497037760533516588687355454499544838162870346041890506170030225597558157827013591799683344576507695162372040651223716938506522714780368485719441095902876411909787638843028725852654433124808653701002440940374437048780164237747623805626041681003243244715940769642300259361950477754695674139269873385813991319643092170410421588224939855457649931582697461024133011382093359702889576742089281281547480747795393000455191673556830047648488989479593929235443781827484208596951481432752396330059500882002886586942065059798359242476339874743486882932874262338316921001177084570890025776633018849495223820501355333064450202129296980176845425124631707913675985842827598900838224071527449267290167365158383458714182492189250571943365550479675029570803998905992501214179796539786902775862073460439257591151580459411472131690389571231302309244050741835719755555418562108432693652101409704097940548779135478902188382548868469172832485204978978167116702969386465572656542848068502033570529615099401492007383496306431022816363659713696298727333480752351652642016500808588829820167643159251755280291394375475918860878753076822408468570164266567441073350669919981502404186879471972483963924035707270469219613410002403632284249078915564890722351615358217221982509409680185777687423334649813447737699847678518686544685668549333041214208457309368345566539985016093630588335434932203187052983126313166030832661558999209535656290308563136959051954982299660859899671015424524800507686047643730928941726043729746301495066156664641998450084088882847899760457805282405135252413216178797507115555628335205419480506535244512860516227618397960938240019585254865419440601628785984660478617868105571912161990666329122324896004431185428062837529068861984463388729987426669171359420348777853615699595940511977346198206499638439599117887564590787066462671619344449596140588847451608927380918370196633753490851468559225498875247860236188980495304206254855605565274884477387293117893424668592706961095382783963252963586539169281319595343365860059000565392957562822835467165824031792966637755262330819835199209034185495288754392936501824368325964997221493061019169170342522821992137205348272038744720984405245255992980788409721080307095322672020371859912925404149534436677960344583725866585157206660441589526783313579808881677979060376192030722933931201129004032139454704191184281025127428064781589391169899284771796934937693919660692138395022618378554928960555996917336139410755336746690786409573634680856275909361575211767602974132864655804689875275460033276696267161540370235736649705804055813040392417869494826632784165388400718864932070507326424035543695765086803868873225770827230685776415478405510446059798674364755326739300539359067516166779168672546691835394853948468212666960800318655337207299701150659954310004252014478545085783740032811452608739411186419125962819803215308385051086983436556352066101664052360078477653700460853340752921299339373073512794634112294777420017921941624509365668876875402557887918410367962037658171051489305140172336506794855659966457856705522204876375960842348809103725109910501112226792298987577130917876320358315766104819658790572723718129303625744593190882382922137768804309029591663221263753714635049676399612150798627797133785396073917698815420152486530850794040542343990362966104511349411626514793515061593286281219157743347970961933678278983302703833034688175100960135260298242663967670003969353152383439304174490701583361040243541613644473613427544246262383551691000271359203603350410461136042622001466507641181591710577496792841226944824969659962024636519317090200409792995423075109065101809597500439061963391384715670291988915610793817142142049008611861192251672435383869026262672772752934762583900823756937439494730466644523529061697066548025469235462891428804240205844533773439318535611355084853536643978849989008171101351564217631201474801665783771088665875310589936137480758175970358554518914656541186659705396270749160357293610643282121363474612425364289633280270150338911785837200441708952275687261931275871282383197004873270079900993233484446630144796234420100326212486835893596796018941408948578651139672526611450990969080707500241672131093776113095922967754164245525257533252209962758769149599926839622060760055552389690866922021905217704902629605959933189040897061483429840221043778269133290517894204196103387940806346643425117925489016577377717363598902750466958950722802709646028949452720373924557458884343462562436464733740558550165254532016389899484494541142452756391112906941978880536698027761479335692699847928020789218425919337581252681488983367659827576585947986922084946553961333825769262717427570408528736342127998529687346867143491348737453179109826584168647271489938050337967651912897980042969771799055526019000493078548544978436107576402793908939463383116731752864119153579765122431606443790120531345589766068409283044936852852170132537757900952404073992788885626811281076340789885278961152184464839248206369614679174431321006281109441039785986831017375432171304891125354199720711503031770284487613986632861235896985778045189029792047113501397589413005504805492451086083221694694624769324306405531244335518967809914989172920983986755928943964558875524523277523899817422232812280896662223381999144312446058087841781580576273331172260467266585933636517259446241308056648964066481052290678069595567067366144674502598349681317755140058695498129001942572328894460635281244241325787463404569127199151898255486155816104362090922998225681106869326612414079050166954433361699930781345202120878273226782629000117754078529865951861964326857550156476090903694277587518267078870449914096424568128937733207435321119748613680740337647344064696366997615678431652970085105724304182528913630486124076626853560386350221905355337818049733540696885849030284037115740877047460472124879520823726585251721619147640886230556656899538199726251000444643182236114199795879479227552462238675447554550633533794105949133071636633295984643981333937930087108854032366327794589653735103654845596381981728313550195343118858906777122587611500883489525244737656158728892838931163079771081522279373372047524121277260574723934378444878788677150047477329222658823001772785147283859373754678853861596273174766173263482944834834015300486788772441768294089292175144079301600796542035678669083104632093848311363101245485422175575679347424203623243931919869827389892299542066550511179848165224895973279697968279152438298286138504571315154168106686997227176934028432335424550381878800028195208138726798856599932337638753778766079756494725085260118801410046124963833234606752797468829229189855793666306353621167302152511826383014975676806639772807729713670163901346636297206666323575154479853122208322599231973352702283646484878605769489874476485628053601333290074337368454321708063393359294839256703210784294872271402391174254522538381437269857307684884796419127004877156334878096543658509849959219043474121675468899574920639920440207209639166988017844115430304134154440916000055738443410859713377362227219555487372178701561320462719968158351206072269273656424252336200708022852480337728181603694874456523166905648664298584189407850647761501869593155750838923224076198883725470335363304346274674715295231069287558445956002091802485482792058100354537824093229741770532073638224713151177046747460318652711425961407483972575376928312832305236547885434966369227154416776208524788418381681388160193938378551956403098323086102518579271835633039937296245564753026018452371168152402467375378966605758541970601366765468579952758850389206229560538435001066929729148447132617463509184022097522299912888034910422691351654449268706306380966644946436953246599666940468304221573626245095109236983939025620895542482743469950397190105878181830736901901533040732956908147367400685325389274720614889294878194129935774438333969256897453891523851379719343190140246151848993493952948387135227048639731543455351422751281846067427513411559836469865454836141294013821318076914701238504469853143715658183399824497092381650897674129618607466413633856060135333749119752466046574678047008604360286334496338058352493095066696649185486529481962261206008730880402623406628634995419427536001748911048192601058694014062734293518492454048138400636031288712364279576415944714769707956890059810423036652386886225596630130227172183035077043173091127655049612583501815683758774266467433936999957331915873732919243736504489211459707370636646237936025125279965342573257415092761916822202425317868365816408698967546366636242952779912174803097332196142004788670661094696973500388551958728784423286695093210963290373446692602227875923610475815561925341742878534536836300040544393184691074396481553591285899527623096101136187320455863288246380600021419917265438953602613062018779471163480284356690737922525918201063189565262685437025883352809515892163352089900973743325078011222384465140473933030008896519802535225004155427483766724592560159462749687226885208005598089611152904646123464745816600189616276595263078762810735517347976633221302995826691113439525526903899367640970535265001110643925646842572379652294668042088372814444026661991262524646471514950967866975845084098366014009759048260601387253756205644377462692091850042808493185174497029178920065386022317104778623261009270466375546718654986577402498347720242481919254225901269033283328113751352613742400653905833030493948070948694243897086581052794879397630049636129228753971402459145214266754709427760632288899421776780431469750411406529439371127097036537496075828810112186544748524826728518750402761267164912721402452706735205726690428206210473959516247708799866555369457814597766260698997440668000041796902723151836757485621712708212461065901606026502113485506330292936147089402601689111922255297778797604006207241931873347502325368086134276574495753684138785886336405169182274152881852076182557880346354796876571336325629403699302509653123956681776814278918197706611906043953792755722870047356756393376373924895730191703414031195826743388432467184472741388056937682048403658756056207494382838971682327082597947314743867035832848089830150323117711066433116547296686589555527845787961078319075622147131213257844943280107628278218498793190133684995915999672721900867175235929994451493087458091789110445110881583891075724581582640548667237278275270027283529338911014134101770903212669273571062853854903140452985305345220368278576474927246930410195052220776355121613006219443339720425616521638875521297335245552850444262628369422413421997534136261949484451211456939680331558139074233771489912211139644707016661547652946784639102058580894792569182290618237623812011501455370782769450224799939923087437688482834449348012499578246710986610464801540920652526123423745679429821109256206268529949236202923659344329340631155726028773434173349040407129554312300557414217032624629188619177157338078668173189389448073129324687737415874194507054916410083249911111293541467979234802005969571922438490230102966470043989265085982247542130345911903313546516042800216968884302891782538475775799768157992964036339873494720171171455195439481103999270628155843833187642249878355736563340989449252479173405719675184836751448090886904565168641058051840074165508516058749491609013941970089787717316887986307328309993779536931784108945582393614159582103149257687383842507734652740079317840173517885404461293046050869267064139394763242895577238068938100307458010377478512218352560616655795387778597598338945413766446439404723344088717732371551146486293011871986823900588749246363014787275212335313887433954704339670068171791833735691488230012301887635252748872866302175184829295261474796056974493349204830076954328983084442275320575243367744204916213180381399259521715901542746316999334307431581296745745110155551318104822745492361485380475656108651565019556839060982946719450389099580080883007807952612159790251308000842006758793710746235271436972203670733181272803092863046147119514562108572437623246158349643389736959617742428764640117393833625845737738320050590205339647636903519928478331112531833955158466876465793379807097626322861143455686808028295643766654528099431306848388591152928792936435094156988802593880649552130750480856410545221600762539195586497253433456251828550155307845905595698771791218853438020264550819277058509252554329000071873793818245136631915522529476894165558295639130511293671357486338270749016435796024736926838978422739118546053589156154381685895461195535665302129291932371782527184939701051646522971247796591475450431014913819352306766431888391686742287532816288392683049653448267589168947933612125642880148152722007486690510393029885644926451381233538296397078196394519235960897521006853538877578584019033786854533931604330494811884512646950343644888365733834758467724293989421750523664559224508359189535345166736872683609375433537546349180457120593961087765617975265352645171569718076608579023553865206141692589726840110793284898843218258216581606780480246233293874019205932926665419792402515927439408382571332719087550511122787395252698904327577934975904177678637913950078283726881509385802774640232717631579250617470524386302439382937631017095480204728609834005396045452633646498697724360949211875527082001499209628821557097944893456573456680118811379149833807230872379407577431278870841897912172482039966915168389518690083595921467818059685937092591669942214891914300534619385603160620526277329662110122231324290603871068341448192752242272813405547794406556554817823558470426895272952513372617181247424585671943516049333627637458561489852476686049975419706143252065245701883270210037554952517735316678034587440127022223364787830801596320640778124717425249278016227874888788303878404156678562996285718552794192400092848289870416830706077040711696888602097542291998297786275417589551788648767521536361180856996357544612915670701023442696649013051219470615028676503997581623902397653208588115880402309346635035527091115065173534596383428914618202926623334434316402156145210549257730306923315159523699121297374833603808905091964678060981047474392891357526801729565246170763030864085581524738790839483490656038053818328593788337809412179916265798250573507686889975832928164042044281043467890420334661545636478952788942426013673119326347409372376284962510771986832554641458297973982847444890271793579582334116705152457128365727473367508237829969416114545347688790409432677510877590389253765553189141307544247317428978152035444763667716491978635350846569789765950182902875897180778171542043781157597341589320438264784509799591960473815272900467216558481923857165236037760646772525674580467112488693042410521725032282287562607241759999718253316330972788129520313082961423043762054024217449891279048082250752848070046355958634033549400446600226845433598221790843226619247863594747954678817584055631179841689506212117921771478778851589133113848258358107717091198353663721104182999335580389973874298916525126595421367607587512252058234024894782264052575475345731838035771757996821491005513269499519520635802593711020968102342828229363064550422909649228739159965618656016603701673049364920844459190511668977844404258134755767878741843830675763831844507411295116318597245248288258592683935075691944758830909350757827578230275890876711106106534685334142107973611373749284106998684898133848946805410383821055986893888881326252626688518637702813612269390136356207250845041465253319914654588004982492831958172808912992849816590765951444954172378578540170261602356175461583406631810909092200593636373555787653810284351639490625851773676727474125255147364409080899739568157702897151105989577067659777661094224573271767584370273060532759049200648746998815176474901652312819488685559265235557594017515778041564119292775595487380852079541508935502698205569376528999348227915289326693322134012831933205902758994054626418240078872045283662531785899543872760184420085505155572428368672795646022558659263834096895071341225699163827410902551466309337208041200077791425907536316248248210111498284665529854393041521121360448203175804441650680443010679924855887060113899621948027769064748620761023151665262705053919042947403737107893465649744667242570508960408990449467149867261001790267102815128120884382771603348133891907966426570577574114486772803184583789069943207236431299844870538725526073963850266849332325181923005527698758904146358920033806111622521191303681420062085179868739531723818283179849157103532433786338007217299519057382960670652036135368804681077866492993740661247913198993105597939776963512333774303136414596821451792586615862177358903208411107712891729449492112670565508546648206954353778705159410695210887823685782415914029521369856906918958692994355719013847182674473423661329237980165467389848818505350848333786327609970557375216551815465015554812021331762440230852387757617747296839395705437989968025580510451531203274006163812583805017701076287078251854264408691247151298962607845696319809205661009121981560004833137692145228901234403641130258872933599786393420414039206845819533953312229857412124343565162255850169338106683815599031410141332255527543775888686812900389630211794984488459878516925073018751053398500344583020284006634671494608574233395000166717273249646322684643420858843864382156230453983694231271233585814360827556278107247242161989286098320393529566413821634860439368102874017293593865596418694637718911595204372400090284234345171823456336646802308345718003989539258688780583732243995583872633658388022373395029245672507814837668396403950634888780027031221317127264842614218221039991674781336216976875099596958578491880207884780086968713734666578466065345874962959286750892795391992644606614025565376816984859253814306124977702804036506837171614356622825813656019571516680783540906361081203835964493845793035772497515906612067134605094712592893193624408234987886990398092051724231088116034852768677773481116547143457172344689744109188264033203915698561056802385524322942587674604011092636694337125177289168818403765363641730730381434318456310425510784855185337083406934027976340528955049402932665735337298161914846999601837038090381068179426023416337682718630591873878221454095336096179409550294069050319049610213897379874697578812367689227985325821894066944810668409586167333204684241480115956754513143204312069186381584807230988359671619181733568760367505491656734605261311104004520092044731011388267818147268042552020766270813142716094569503045733258471095113780468809853680819009925221683333570075277734665940448693923418382698532838130939252900145836139379188799559112142934268352261183744281704554998910142922176646184392886562071931801288099203029757761528319744192075664478687424318644561160274490267756333426720311706302928707753546637528627961295127771074718648745647468463600778859642141262199009074870072421181448837682796893657947783521348137012685225456153546179213364318075008189012519990613829422490070247483455397895504422702369490122667356585587198750782857758329620049774850943946228764011334518739171200092723851910263911892507837006580774673378995449738189079109132438561856457806956518546974386389996625889959367626244877888617328625835569956334066495317949717461020700447875925954579000004736916771290930073814589565111657094719227601973645511000784921969114392654981198843496898148889954065290996993623620876759529659108108567904542709422478012684360445247765016605646975741443000056325778236071841812912604089142248262918139619127149514189026961736684262357415837217301747638233929161109728600343623590941953050128487831487513830138831797878379811416153204070526193712598104194881671740439094702633178719600868566367963144635552988822725392993539997858036634618767169576644141107966199549284291215954173064864803009708384227443242493978381612750628765789371605479824352478068643963354245239733445039812770030067800436999169653813338565987320950086834834511969489009685643885862508161649761373734316178027001627025478428994303793001017069996061600426264879939535173782992089769226757736409912605785080777373110797440490522613729691244788120488181407418481294917117667764869495344025861447420776447510643403341248959127922812509117293678991374011721399177829619960948104268070540087266361531581627755751065450183081401928534338301052407254578586435073019057973393266542823037187962643346734510702244461979887741532120786319767220595347252412637283431984998508552073451660678880874461142154355449171241693791763975197793328180992594604881990271577461303103418043968836930951235691524651701884915637579334642041305856822162899922484224710270582377178937321253711832346237676390143129489695552789484517624356685179863654679604238707296920637800703668274170687870579535512735571280146953984113695964984006306960445574251072902706821516192656583855433361171897742510669036412878911375875954076121055613080936967150680121396502248445018530958538291943565356076572999918360013520374885218426907982475756100158238830338496630931934951408256378822567931473687872830906155949453607740070781552014211406795300809509764150126088331912248644531190197706792406006614195035998869052195864554167951769469982781660156922581344923566612675327577970483465608301621837832680945174377181757794487011082206684087736755614956344372949820416076767076790568835045571766786966898113111768272080661548814814445767542910242541323938302657024669095573607167054898955850645249980049665713121927729544962090048918499170960117246091468184565452114103326864825821872457532984910963822890595714981631855791277163104521592081284824204475626103577087669912243685196075390804550229999956224646900779440641139855117562948015894417445184238776484663883679933344219374961021884657992921347466707581240587307975131903119586909779417565345473619742406960762465111334620418851555051134744515661059841098834856992555553503672005717313495936985806518568115179846346494889557148969598282347531694680407490495620792188319554943639940854139660835435386131897218942685619540260048278364475174058709234142136629611737995790509857161521815619318875810530568829042695887111826618742077561547756435738404218742553405016060311560777418239074844335790483423537414451769620403228335444498188559665924960986611795184546081601130488874938617864125428190674692290573645244291724248617491695099391299477481810579653639146572504295095672920440783619197982804335463229206440062748473256386119851837481266834669485428527773043090403388991311901637342738819499111687567356293271101897958436528074997814506687603114769189302821913938731395975304741380303355730926845988678990634576080794355809214475304008420457853474341179523500872792467007192650169021127729772265798297812362864242930285284874757956612610581041739350491822855791363193625885855201053588093713013408414678143104734199473800950953136157172334995199461063078218419415262063355411166443494561322594795142285384120009170298606159919305184938556365634925786001316315009175885101946562305596723480171275319712070746024773364555523367052689436302687836902195729628947692052744332989826342998478630734809475701256153491756832948554887364325041880601511084058177109492526920840894550340349332470022105650339972014155165138314884983786878605325162433551527910590379043113501073534115261938871234838735905279031850753520398082381291184603659413757983921540468205952124361643054559598731217026350159311555171767007970330851189032461019237056490301228838922620813937922031903256491830767230222463724825428876775579690585283253942579312769998308806706505643375112161938404886463349146073028513796391244226434561821332298643673461169051464035244837739410947335946798335030417331607163035741526295609395480264855544466942944636158078961300433264037892555672982999084983675177675046248656708042712294810097786525301396750417166910737028070081020248038811595798297201252040248299457351283173739593601042244393829328512294246162070956059356653672287120868300888658518723632782484600781193094973814102334157221348953524288802876648767314613680000725211831232470269139854766367158200369478382692829394709415909323265550406413286917375885613532199376022341034019242263866394996305339987719120959890205240161288056830938019073632694527027169616693367186819269987624872616202679604292049645000933129137313565942673582446128819845597288369474104498569282794226072888189837603489316355325552604144025647886635344796711263073300716338677137180525689619185842535444193825873732852636932920945010966077939966742840190960182906342973373812587211013348360586963127753524281899511347881314912332007124409680440060341822264679061532333964659408507398100080766763858107783910833250638053234395627650863018901679631269653891305837463131086598342597820815898203935043211763818030189467869146773750188176624954508292063636921854235039455589259246845697644664319467066758769332125580703575331655673432593268621522570670952188759224851076629927420862931741074268808175661372601416187773250696260936957478531234938770440390383913002636738044837372038021749852951609114048717271260149999536975412243398440644772433352204325826631041465514051849858427828277220152020739221143749817983381395201454425096780573773918077299643788023580997548395071810389767434335710844498921611214431843705320804514010965371966754537975399893730068912857520786377979991410463041839852527010685907289978075100447096199793557117701042125633096864713745506714137328785516431434667055192659577894369633843201762916360147000412799945194486838705832399252961349464991680913322024844745523844317456053219845779566286462564626119023998787735561733315875134666961567782720029674529871138953033379001560843900603596461479405805028204751295265980727405497022753487552947380499201895449972963812363022781182560341778838990264472742341336725451699767765389806830008927039299273215680033055600751776261359472102877699883174868306213283211899945401135179765168366784347704955889612944983205526492507206419470256173825108673245460290532521688208063579754689822735797090477167925891559972702530570455143491147007334731102889288634561823434926038664148636647110118736928668228563803026855546591873234808134981084580215627129587211867282768015659409122697273488127643956346257347451451821625615178022316538967788748521000498812676299984170169321154303120633222869521893094179878179804276017389341483631724662207581167181801000736576994326643198341060673225615190430208175139438358663074557943688966221897085807194279329574816835350136399091768090027981647982094451411657135770167187991568286107790266091653096176773209786045586207981688146551069349345140519146933850909509211515296433966827457865133827114190936720692192615682986925992493199503029161552470342490470950192883258944033857323212284020187649836164671975178053681876815945132420262783761949342579599937071507238807039506472320479625209483104979430934680751133663795145316733232391416862597273457077203919336517542711684794205159861075224046490921487089331528341020175847207497540158754026737373002762096439111336703766187163177681881222475362955353143827441327593203981215008994184743472764192549205418954046511415201556024101293713133476806679295521619756820291589423062583673934830901667559756762735307627176759806371278007957995705391020779938944834627415951347006727330181913322964908933071783731612693393565784023909828495019976445973224391391263987769289274684311669470122701218090401639241633786184869723287791435216175926112332322503163645355253117541115852692275786297895904329096466785393483545716633610503849387667520153909603993736501174714893005974462047951462240526238552943415662211364474529971171974996892788950088812230717523310207418368296714798010127999849308385641257644717438284705401197198046088462762759801365244714849139108953853380085346553438338673621187669604504351051447859394624765647347914459311787604914523875068147526077358196201793363916633977081217501027626734983332334085594896905765209604750915767136965864339734355618150222931486803127282263540807929966500097211425824290648589413335618106386265551229762221406932809583417959155955026237943818007421316656538376055761402702108746917221109977388088018909050363895582448522647118269538265743240329442443959446946291754099313592560479696805462129612041738557938355393357152557382623233693433688230283418798679465008767626287893618147012070119057239360719384088272634505152943699686684434858189334035911082171540221066071038619313453373940391481047493525045852581580445568233789243314323669889454733660070720053140007343080098878249966475430462116435716483990732478935999080655980831141669395521998815177356799773956569851035155720399029938253230344874016636986723787922569785507056148774109098549299178558969926314106214411062911558164323954116602410506611554638581107668694849220229349896496103756541886172022111185512645142869632628647303324391792309028846542195659778869956464796746673002199013455187261508929633706329349432104444775781592579223819347494560057961350775222298008618950529381780794023235747221603859896385459761439959918717804839338228615318919620805419786358253711603237323820441354007631773863446337795287969927265049979415971467546160234001064799293305871582062343924621717238618533030195516496844397982642776738635091529588316012676347381505875370763452077110457129325235122227280567676869813977289204291166026662811262252108988838030004498209247318975277259168835942773260256299757756695115434750199876912902833604418517178505987682785585827624554193417434725519366134556860582748123280198122017391737496352810492089143914203159104771111442592357883375891459235916530044608242521212650555888658363355358301077662877158066992435564240645422555743676469618989957776039166956618656683538491715528739405948388138978087924352169362734460592039995516047098315948694739540347439208727466522923039575835328318642741612125298783214051874403311326240386259863501972710686311888712499446263514889119416614463457087375880537198898481749612910883596058700858415795994932883002122894441602337254478733770656538426360654163395411020505697809942207575101270933893738118236413915756526680749063355596236940065855440979438301464923322180953596086394940008505167305319343385702729141003527599802600556507636081964615091265761675170457050932806581084636321694513977335545654100308218010231902302796833971339798682744145914509091853332663854090356570564151355653578689480842762966212126762665811908602062495908372162199981183274387860448265810392263355294772232364271336319556572805027537105866233489193535130052397959808371220184135500034593168989702773496192453084426062500597769611661909904781343909111499253066024207342246404142192141170477954970941724031336746351395365647878069030249301324256826542581237043708230430817190519811922086290981537370609033065329765083656308055633838126101886801953497466632681592008124839217229433401446000341573707656192443032018232713557907283264228191182681129086906830285382434209862558938484579630071972868284555803337151684883226883672159276145842014697113299819897082560900299542774677199971981248775279743287467233005893884512952811499789071481075523300921007248491092267659973072315142847965983111255739977157213500926698360174629926395998111820274731282841873253310342030296092981765681324055093909319967075986837006190543426252771356621572887009063843791222477287898020043556068535500678897175102535004479427802503611814116641841393492576781431792773945048382730322992943048923909791502713622455646253765553738610838662324328894632816581427566984182641975298816559515548830595238900448328846896785679111291537798258690003130450724529210107513808286217362735729478485725936179226619471496571671692673210960348383840394839742116825276484159626015838653465294500741194333294221658743137428310774394239306156507154894572023774510382738855802543657421269975370104287979743411714644718458123692445251568397577146258570138354313715434235344805356328876499419615932049042656626303529976021315681136976623344352690505046823889918102495545251555588783808313756149095632747616378222059605561240657573307893440683388330554208305951861116497419221416197865414723841230408898512862280787337305203284377228739146583902935141524885681023176019686564125731315566485531494728032908818541995929975777296732550059213897543278011392812598634789534667836977188152408370448310344069834386209113358663947754487646821723538544554544848254771743645056450697242504928335712977644407544965825144759227000515167904370746349152772602817335603144745307458553597495229057042904066923576905086650610147312480630323027695177831754443689929409270287315056067097681207745740184411906187836126021914549058764083802992520659172573315149623460063500808352899907626101802640585050454006939532955099785027701691201370921126003648307376464265210120194384082161334235665152758330431151671418637382266002447172304704195023720391224549266213067590337988111852183532724664989065015911510425265405219256226071467862368733191358211322276735618658654863529593202250423051523210694597192725913423807659478516354245646801146731177790676976815051505244467808602520600194992860511346500143286684179308379699200583852708802319165020428820761822593882244611865742126499480024718117998253305223891842582989273969940103843940705468714252998025882863262006780830108045816835347561301300130697046672295292325370686313234702637506479373863194450520972564798191243856200305583347502508973973415188342937865676868067105020837610057444114473019897434254350647511297319311281909884230072649865185017463394834973891529156900539122245827418852413610337193079148762752260777857148985638145026730625537242229342209043959122711887321400351832319129203048623978935956996299028994598496419804226936543562589800852202268361205402594282183478517570283695892546238041643062617866327820982547062304048435780161876487536398985270238031674729026986694556323893961342606482651315298068755297472707376314726933169902894189251352064692672068849366430072989529564987980030011137606464267896755654383123304396488659626481799391170001003918712997087484083986634361707323873153432554418274330076676558281221229105634645046733592808533281727473335522345581463921633074072505949449075846777437501597986818138694448054341873578312197886981029022670294346345379866162871735807165915711261524422230837562588159476262125821858768134603458821053688020790305005581182908595135734101234631958152707523914986238265443492194536663208119195427406766986918359376045842129887742064444472437350914898774973355645165058244193293629992298947431040719949541749302780186130237200619760909188363446558130336801718294467302469938297500084443577345824175041564091310053431718204291039112436887633757823154014315805753894690615529403413075296657372115274661950464042343730266524092372764940624041004161312554988598512197291130210810123131610018150979963651728447803268346928525424685040541784194190822458981865788560892150177417414582856980060633534478513406276969369865269837568960794385947045389589146430929715030530428748432486305597422744496461694478697061297269311208445106423682598917825053304071636609010849573102310109472721071439204048417155987361113042666501640901757653846222576095043304032753698858601182843239105774018142130161558372177925433551240558030151095950533261965824667513151560404152586670247978357927487795883912505248966612328809834366827828461424049739605758240812141688755262252436029383969614568719330756530784853404445899840439963474541379984101406999918104367661039393232718080791757050541457044461352832464670487968393805233978352042384910264263590753546783064727633223434114688685728116694911254364361882775526677146292174817815405877314413747475509583629503674882950515528502823336136657094289178369972058453698157580702822865806147128432770018406370930505915798346331099601995848958859607315101161466791049258723813435916218513732114290267714961770008982896895010362545370359556364212515243187961923544294783268412645568437533244168905711193227931388782891254398345906851966577137145905004317591036947407742117727554156481893897377501907463102318201359674557219566759124133752747487790171275117809887690880288045094172815253323567380518314545848314159215406445803907311514414313917984859371396807773492594197249354897913181391327276653879980598264122141989552585490191964568380004656129690468307513826664522370963099177324892565672509737978425349050597338556438573629340812804906620503745858427400700391418151521047670898240243265210936608085896411872351173505461642531394926505542801666524844433488244114657167943480632077748198854811438919208654163128220105954300420047544937030765212786047494660614015285672313810780569535146609145769178059605970253220212339569400367795592891092454162192203611841016001986687300902900955301111942662416426560288467188949468307109569604676492580391284733343367547597168387831943917184501503806649642613489010231905370337457549086158488364914225778309480048164913695939740110185082812717906730134393051750587582100917796432767132237200883358885506799879909906962406919723137166055794599530913337985573950947386379016160962049738202759523336599936705252688624848100938472749678618011842703061621503947891498477590128252122617977257120366451414296037414959909545830724544851471574539030817784385194984913417843968296305789680947005005204827018049731738545650716272715709062161964546435165167056446729897701244852493726337930702915939094371254914024989006685863941451363463955719794301859305311019678841849695935177849369107123939905782825992130387538599351309417158537318461357804210382494481447624390156845851089598004446347360607700977052050960172990481929621100417709132938777715264857795296591936311503152108756516540860892253496012600721590907137863392421580304674246926114960995558280540886045501288712498429207955731211418174003284378975035571086001260682662959954873917356474121632649551179328037265504678149919401141133974720393234110179621789018208400183817636550913213444828266418018142609065787001277181564189689951922203595028387412691368452315830011262201327407716415426535387745199110858340366476378231234594511912484792982672051741533606209567036161238871645279736791485262148323223403921213425850383445175159449788531234583443932402807857506690430068741210570606598919387513058915311323471611784749103313152082019663388778675097302421450530164243262674913452570622209468799479924982709509019076053061778259823114651062980533336549337043103843331980471895308606808556845938666211185760265242544618058993308034738349513609943915754814323630018215049599046727434849203463895326451047198148236659076917773347105645565468903382254607885656704677038567528569432319911528509881104849552119390380252179610718642490283412911685326218533689059667451453627188381691994895879001513336487071739210689641685281864366910176194888078067387401392100090541901123112965739569660468487470153088437879506872943385030701822408645816945714657258823019965965136067683476785616837974144451390405274487191832674639148986037464973682367538725181080949838038873374094506373379965178309262933896679367224004517203258444527815951044041239088195066030902696482993434075484821595431089829776650184650758580052901300670899507115787450377617482911898987362691551734511134598090169313314471805436537915673343604582227759946985482210486823429404480841548511022500211481758348101990973583501655810539461049733859217127168096735773655354410990823674588150187366795906607030944322012344891679751243355048879146627325636560398503029964145842999420178052535251860987167556065191705455674397045839064173449667728178256360211907693913310859335664280994435334986052338261008962535809627830748674114935351366621970703116760373446445224380958372847886407145140934086219651768367151366053336237542598095811123403354941287247620490770949036215919251909570786425696285434076219612537815832550106136328396820139663833036008228792889205169791646876739666036740916628895293100521748954148069735963993897656231766076708860589129952645215720494547768076710838939405728623586335368523676159265362804241595637791791626420284459058835361858261268828008116106532185351856623737250386744970186902998708413159522695785711191725014263347306243448462615660440896564979706406565797277195567032071430610742545917053607541242113258456238728039375062532572171299221896707796396277734272255976982846538997191301273843746541643904082257843535305001258581509191863364558524258727626457121698719841813165624931459822361843708321794270107379532032458524446279651250714914027292987925904436543466009085053776628534436729940052065941873227350726923962773911584733433190608350303645514157701890366998228786856177249233619926232256432108135319313463637808710277657956906960665072516264624591458059602118072588029895740262579752958094086820545654557042836223873463110577605336527379529266302502115828073096915430198667400568264703679260388163776291250864058873829816926978355882474147414900689955233541701036593697031077957273923120401510657953308725915748663674009437967156917329751034397760126027681000382681036602878883974656535502335605424192318170895743167809053681034635646755777840420075989704914287894643202420131139392932967925292842728253966368961352737632516434119103403388266439201886166617333541260177717402551005396285479566923335922237019069839034090808954319407492878534068736347127122618070375566585264116477528765990522305687416559588731342244652753065650456208253510379553295517858657563776186691466287305384018650280621562209257179711635769705877239385366970216920363679162376347320373094395877715796172210104902647054286545590673592867980423063450849291115548295670518834005714512911986011661765520245604534031546911983746760854213466358913870198360450172072721677053715946939423485113598335378258004118591279087216840059290117351527030928759998826256847896172252174462792178372031525099251311889227055952259494455613356765351341062513930507673409913279781159743608456981272888892333762772912967864164104837489067153054240662081097752617639253834656162841264682572094504355135631981135089060048731746435554257539781113070647857593418087508994613591145199740487307166288027874310976437117193743890100960105995420001203986477738576672211712151838660371766872752177305805176584559955970485976357535546876592535511981101011867561145803123631977583118803787382165722619271057861286864735778176439801185683156504803011767308651019921363173964506225601712221249937963790270008846845864562508168283513582182848427548351043148806321557968952880661785557141085635018482922100814210284803598628339678551294407757772807442010890915645908623479063891377744783946504055024403618246384537110180344104727485026572739906255364562871429929835929351576473943053812918476862564833710968017052693649112698913052455846900594989481122928156379587482686487485599620177914635908733939215741297272406347520585182533541646831197340761579975630142873614186555621130987559011536215321334952276714197155848963034299433009490065590389839983539264778020673138713874058518887564123209822160413705098853770938755687970594344182317527416532676894484198315934341280001165381848415909750833567898220842286143876564883273221447627226073274761462830658226771841579688154780378790216103858593755072718419840585821683196513173811557496613540543859310831961866732044407232860695754936362855709618428774454370099689059222566458806531452579047131613367238829833022706881931929458843887893811082098652275374974734213587003773256278796097791612711781217232553814898124502670654782391185089488394591072893090182246820341333368083419054360555599415929363894111032725855812576599344916453523549055548472485086644077031710632823563887359688632527526006529181849525242082659167789383546354326288131124440569156090110497939401494764378541501105964954110539273448074688686806447432049210171947250445337298199800904114429250801853260313042949080994085030460294192197081981800871801111846094555523534892567967047457834013122267022348281145939649588748103940633245011445220678681249047025618302622580883434829599720435826050165831834094463154524096968005473316841351917736503021963547643288456639030529193968198030688150128899584972907337401851382008199665641835112904216388502032579457857838698651641740162266800088154194808830683610008887553914650469183016096539142998452128598129825626070396920736791674124080897008736069532461948987022233607728260074073410454121459892407791141083554939209727331581945619564552617144725778847495653846039211300185617783847626208562446896820196178561911005534373531449837212447214618556227001254091293103333938646404253222575075126937341133932598428666737646235727379683886770942302929944511337234071142666229414615957280985012747183914268615858270864434672917787166677168056605102977814371767529879991004338951588382667467541083577089144541923021856731451764608833223682041114729519066170125179157127204209948066376106557530186806012492162144769134711798628221073382410554156427149453717812416452222269394812940660152308753499972834516398844996489106232233547996578045544586947814785507230343278777006240177527231967194650142578880296267969506179547749709138517961303623730103030128530945840841071946431513519465360520802567682033636106125671128060722304494844979096865048799038957288575702032780076038682094685743691343230244561819838061211027046932436276479352644818245214353672204889533885025785338880735539001677390357215685509606744654956396279075737938327443216741654861469452170235591632538320128291097174064508018956103105278932776555439624707487138178770460034337966425612597288258760568323801165257487658797048402851803533778644763801701919574427601713200655576560097120654934316139997356596096134413994201412814487537370028010872489546948772464531668937053321926128994602264987945115440840140862890065792274241732615680492466276772163256907044128585994256783547530055781164489018678487206926042932793039357118604723090218504185155802142082711831541274669486314574008127683324727132876542640429868144693718530770741470722025403964736801461884449675511310093786906865824595078747987969245319522464455884821225465829105666580901426976541767069742125138661924242897358238317904325130013963317817746410638787573126861651111672291123524795178474077414014748852159683524180943570494957251569332879698063082790186583543670220900318175392617074458545623354134161219848292121749326072754721825388093793057347367405396677289048544958248613642289609772989317789736206314764889909750958472318251030169176807443868820888621443356986318444076180323076977669371872297672084494940286591755982474706283130677606699825977844296107445279759008815435850711040888117700107759116060072376926655700811647892833471141625248417668310038663326061977448893357150683976985312624037778651769807651343846353823291542326743156900634483448293591367151268170144869981355619703554556592856950778456164871991793073335459742016943042207148648342874578571190246597352886435598361335257562748923334732969973261664145570101718880258041674705054116173582804959306990056780399528099804549265479984556352601491951613432669959421607175348195095234639858940020830181409368288306362519290509878152078809046499728812927526482393506513484643965546132906854626358155878176700493254745276305513990457711098283990751530492329299155301660361522595097774510187113634303824646573171233137136692671722846087039758939365784208942394426615676630324059590577337194569657053265697391489795089533235010672106841719834411250849041790078457932700503226829661458309989593092175616040177915815684600533017814128924897272868634032471975844881041050646854365981682004516269164534563082989540207236181607244634231429128081589669430561199965744070934770060759675823780236761276643171545897046871688270096239480958146226075031066798311933396816403199289957389933718336460703052227396387551085994698919318084806286643769204468119978703777082320489659968736271382629636151738343714231238783625179838325202104904510755959598184137128127953859651735223183524731392172950562296391086033601334123766674776300241679925724295408355232042680522864989798518374918742634018700494993381020461747569593645153904700123847329005327385039995367850462718006968181071645290338148535398164098152050936704839042108725767541873672708991605359813195542654477011707333105583095315416613603566139466640419093527866377091252407306716279487338373793357036720869299985450442263046664402939066178930270153682514482245002431569393839676161811171319498916814807848116183582700787752510237469517359232997883498445221309777812991898415316501694973426864685814256546114875966141762480045142657515637423014528910724009136368542692132241508545024541407668665553877284852950763854424255133833873300154943028566301817980724881124730590666187642204809717810082901343233778582961460313132094498672891189200856272812481162049686495302547562341137117694892840254042892798839408094183704990924805254001992310776245765754877860700912207986450137131379575724483510024928203829777914888876066473305805477174518541024940257170143830055887321991202574920194223251068680754736269224925551861457253037102648398255126124128844894883024430529063995060720948332917122343159795801809369488134199036691202741673951665055289815443917433775100622372168977122896619696685108808163468934007474223284463062540782540394678617762967467368723331515498471748919073212639588975033168823145867159093282933829490450596598150269256021822472081125729472068686381266020561598755703776802639906493754593102111758713424076883473151882373610230710221104988522853379715902938403276691993926990100941122959762061301712925295915414124292925416272094370320587516176963567561421431647003122778779342500222754168980819660530672998360273829663341027471412529704114921288366513319327770404221239861761064936343467800768329956754678544742158665135394711446918783161613236585157692418321875315229137664866752692689580161654238732858295189575947639752756693348813780891579656183398772284095475545520447754455418283551628803912207144050937526126399747930908242956024767769307684029143639703342441259665689891831305749075408405542311303412531743985715965973137601922044572810586716462484673961590203520073731936226601955029406105114558804285846013283330643820047825371606052406562327986754889405077408268914300588753562020500488573990261603488311189372740113485567314689402263721617163536430357585678100642144805003781816661099714563389828529120535139753632700863376405103552987572347538496341965567584991916124305760675738855135491055842815511649607454551436000177541232696332043612936879826355214671783732271859154968631723065873353635229478761824936320498805170658365482876461112745538663274964038947810698027423835542335727974121738034065683873586243155787570969804304088672129145332760350579131214152520483262661132448404553225240279515094762070009077430984964590584986882432795236532815732329393253960214844456397002168671593370605510445977167070243651360803303711654991417096986235752826760403572046200350823357461645787218799822992343346574516753716793203309026776480672730221759833264094623970651105352101879272641775054359634462485002398509022348535263218680627468666071006468496460361735422336547370309073238671303459567221021845889522368517427842018757882331435308710954416421494038429057550911991068829370159149202114639226901745126284662654493048991353108879960398382157622321802636310254795470317666451241650901232101332071533902065726475770753458332987701617441991850663292125538424338003476399479984488472744783934293207577155227952246337784131843726285827273588445192000847253167597949747528783433515436800235258913378196702016386258528437411892878316146327620549822055949171576185415865116549621400592269359553161467526817823849168586466994843879363072134956079758107822047115985355321704433581627106579640399448408059705384501695090699974456325163824915868902424298343265902778410262826620650751012135044931665531082679515766559247740414791071056136601899142636753596861239002906673640464413695671362004626161959651345081663438073686571506732522404962299770610049538130216414025077091409187361479087420703217030202745424902701601154244791118746622890071022931870147549204586709142463757645718668763920412462960263954647546132678583044577314611739038765906658534559643844674256289338115417329738237055520909213119899893920149947163534162628115880001797103231071237586106834217359498810026678730149086160545965901852592519358859303882808314476846020056564464847654968922718629038043989079347810263096715224719967800154170860796464053323851044035807034766151549224535475103298779602693411382756411804825558587783371559655778064077317071865056425128123674217893934111839568447816212403596841719129720646282644802879608031325921905371350479685354685278841945145242200895054372566120591255667794285025521051533368540980872256396665336482454000163336307769740138252032957661204209352265491449481640534412100955420024862949146033172675490491625539849000374158585940331786215728114588050241130653039671283776059074545368904271058665083002140348983291589952985151172549472154708782331149565183972755289669836895444353771078065941964204621852794485991914551866785333696416485503843075790902782265553299289131875943643810399098330127665509069983839140717713693601139435626484086060273021648917292819561280658284152243064756814270514877835508426164240858892608198456451475700026657705454489965991535329354122780483671758712347600099514870410180763928583339002375370955953671176774129125685370848928958982346777128844630879406819496647276198090555310309086586345377788853164062329423140254525870269206612268997278616226670178020955812908975632740249252905115621679379595741126219064415257476078241107607264116463036954065467043835527495167287403362597373543128305905275774478043326060820293085815265153829453888852016016460143726338113709537486502641252518916172952299052920626164366903907064275286911938905894872822483195418554257067420701995822139267020902360237289997991390583272534580221921351572668125880888907010661402843924351133388413143542993713835277520249281842151749337086345260779465346084197165410017359280417192985669493266005072921753845239842192912935161205895653674579689088419908311862315166969027636983426147032297571717116711339303120256514258067812374986536358295507587995334882297599801325850515101022443548399421662486725359801857498118394650920524927850733909158390992200499225905439359489041388853783333093278004146165173450645497261514816323990439712429246752982847287393640120818608971872958066142699008029968640630393586718246521162165694291695266156972797527146670182333289327198580559861046114483882775221131784947847844612127053743489528054816447295510551047780776680636211002537793619650969659812725515529251959800063633010150603649238765554294572597445067283094470587876030163453174544162019650184111726106219270718244642670180798056992843839443938251368928949489744525941146514886244710329186103725730824649284917000583864744354595436361958429805468367364813366413978678635790669923446197539741425508318893079668909874997055938276753914702678305453483040123002391851184001556020508366363567669665595375030421386549356190888604427693170562084119580029556925213724067236168886019976610403602958785469868482851575830217563771960583009838888951929544304652693068841085777509309967187320107873040039184179986484583330559446813476864616383928328528002576660472836451023401682464931507096175040059162041856366670418051624020765387678079117392487054189405247667846895080895874674385271551848766769154758295839693712691202452932770710517961574108879905987654870357246696886940835699113263456232898867722905985209529263027061494827569222028016786316227505422055750067906647346670286963650101903545307450021225720513901739787105488888269109633631982459693482825237934505672089786057490056999786107254535284584847847139034000146677945812698718617242912088883818292887735571798967425515381234575051536629288436824974437228762888659665233397176699947986764566150094940548098870288811836370811482130449177407344668563261018934126211900151841487760750145777581563771932737780068210700342187750594143033125382082706764161177801285834522568042544465992378764644144896465549433853080678958677970615197260898340102264972859017694190558943139886075258467346920136621161516276467013547610834982717555479401485673239965059105912595126796507683903728706746378525765529927581403534100370334314614894407609377862445809178303882310270128826162918909768355021887424195220319928894335087175105794455216202079641052361246293440193323293353641601472090516867138141180143829878453713207465587996778380599040875959706024833030235607634518562375262456092882277923744725293124081216366614448154549382764733516579765653530040808248755796055896971617093607664365273011557668152587708560029681917476196933208144026797200192136409898151899404319942713923299068077683734986016132300907788752985924291014873907969554707463740021881275824565070172769215184428929317759521849425429228964539223489430941436567898218401509628505517815540778761722355249337706967444298825856873915128852486506446132685002688536634578517533317738460243149971090669589152218334473076400561082910803156299210736425969177635713695821151749172214425641324438477117950374221263345225033406621983614068423574212906166941240480986090099849814206252434712788953853179980204855737167147351469415670725686947944396017340730190152256686275125560657555521571776279710019388545529688868106875320679352700567575737055739667949832840849249918379493702393472304522637561923184966867984612230385402086911990511950845868089472738105214705994613904166637020633009969026321321487828816297925520772769557409595834301247515602287732491249018183525157886115271395277828440966070391359274126961679243504505669657793282519890589472925562395155840667859977085017785515068147072847043055281861097515966478692135722577945004171327765136567190748183617854703928917655522773455318840108973954536795599309331304305358200344933019618473001018512772101355354860520426569054054283809802388501856886235921404839227564170281083718318186556247214196266583223098211110728717264662102517067186347558373228474336564690971718876821204108963150282218080984264770856280432455043497012922129382768094994228673296904019470211639859975051860965167105356811428809186955683422404065794524008875011258359911884051007129694881143902741104670326388429513106784404883551520841461067570558614085465671395969938643027731829048662911728696430240635294393367256308429664882893352394671200319323937765785975850513853298378653903458725443509502566815770760199408315530914320427961928624273982590564960470392278990799522436534937139146877587182227532858714978817866823287985592087671950709648375740382000033045741405232563836918942197375751883865147885478680922566867288470459669196512294396288333179969897770653237952629833723056656628491618703196850977193841941106980709496187718279990156614162609206764501623158500257573076134357419179320021730601448868241822532549861955788192391483180470063489221012340029385833653692492322922506320644641795497970730743177511684736429644976828032742161054163772848954316066683110821328077008258747095028887217793950700597565888530664564741946119479318597464081381836697560545052048347442862975935168885752620829318947803792590297879871827683977538721604195154943078433097805283600132547960607565004160092055264993363385478958380748342871898578642268321553037714442364841954464591471022005562051425653697665832092521821096637656468886553628567897613126134364795839600305283011096769375673323551710176593119891482950174284384093110485842245893815538338450026886814596139899364004478958622816283011013780879240816124391812661345957343816361580801751204890921963828236692926399856438747005427211241081242618343980211398520174741438128155151165413639963076591884203451124827931658142659635234549263669193256921114492830916409974735766705146007644584760912133279028205932213597335127975117274762214068163276011934667625770715790001965912472043381959495370847136182999006135062930226116361391843194135788987661939115684869272758996348590860708999531532895693732948349884261619089387286067989542653307748947509890060992719465140299945983071143145892305786894818151570860105444088556875949488038665874662446718787469149672280221227059528387302006675893901152542662708515529284674708552833166224509354697883729841648847996541351410416929966118027468458572135957910625675261513688016241873709496636414648540062239994659037470541763207310486213677631534256797908817489411352580632371707537579750908517006234694043795470523569598042682140950233167113772118589101800416789952660116246694418779114312759958860719435745222474635398337641971937896337785688822417824173192620877525631452287166491539079262539154466708386728251133354869716936782965415217553812524034945384836373891756608128095367321662115187761539675778278955652062738002837103963879427804182288590024922618154444539707582416264282339092522641214627178167311779591206920776984394580930522416995227251260787378373219146419986020635976238862718679519742155231365410360704600095516025754831539714447962589704233909466231414146366599726271387754011661628597572149745912100594032659290921145237742459013277214551002687892742603104198998982135467240993225070920003138213048639056240140708875666952561662229862096900921167627211179139491548161472478084553001445845749140367803217193953248375737698672790998688502943073932413599715779807654194738602707881140301903410320644095209293918755518181792096739438679153671639707184099405573654885864841667160170489317133954672964252227203440007493035959924646896885026103588647798580659926425559381817814376613726287676275721641743080051553934535053273671130300601096073257809971276637354261538489350792884748287764209271370162335786843327522093805502828955214404817061234880967368906315132565714095415517473847450967005479599668904980963017340013941009859958008500129013990289115921299762998915580844393814026811522137018370013062552262519780754646843804252568102810760391491305441014287348597888901487715677317457514221325537989984127110551404756355447476792345674682193140027046604462761309200803947253906580043942877075498693189344065574106547369195050755962052834347913657663283995244990775246133134492775595806478367364175918377279743269694909718205640796255811235267698653715885754271116111133508739012516791848163623943677894429758983665288988591775304990855941550165920905830655786596193507677534650784552900054210322167482561226191819148351573781501867974404306534695213374265448779960575435498254612121816278419830852654029029091306913345586601656044731273485937979234860744244252992920160807783721630189917563683931560013364409659314834269105927018162959778067045820206434272174228352738097483266184795931435685947115154268601422989282758319900851467711560931619473728411669178452110493949997073992594734538101147160018185106567860451379730375976127312595641787085324154770982194137172345264080877578075638757839438741186383885901587473235878812649275699097085725095815532318401875386097450876839466357035040823874843224638704655926290481389803288101207729299740106084787634841210504030998114843822190293390734495003359983310042477807721261551452850265087119522100990123616928505775910864308560700591863687790414239392339330984063874503366094709019199275746620894710515008765108421790403411890281555513420932929629687680294347280720560999033996301089914039689737732346299218359244438883102452101673621583920221567411725340713813424331217063974011257201684520764426177177361546894684166665882134215166817100273810545369780044187054923617214282608736728361485530141695819598507533079935527590964742544512356407006211857437717232832703679672896774385907965314395778653117337473419819050369964067766145515381752900510793668661610457153672967789636280759821183731865565822052279008413785928113665531784393134142838122127622986862198247626912793818474223826406933457025146060539593767041239539383943531429876494721972641795599948281721039157676486118317785988167648027225228073441420127611539332439529323812980765668321631288998287032557727155979015257780902793492729562462186724080051390029940091433205775049443393720915782075151071672761602536867732480898705497395186783676985572814274387712993351449257488536462404554065283200542814411510859049800272977205020854583912221365309379680464224574965023308375345512842021270802183041269861327468721462168174183653866944043903894998871609177927465483373797692043653386689071449232768487376554826560191752454097024376054358796235255477407190117335361307416574124744550822239010187984187294164993382394934328658471923303568516651824708973599862066788786029743258885212123514959108653267026306813364464602115547310887046498963186221553831902283778716298564297641368537464534261890085125197007187200481338738153598757917871438769731542785027789799976634409573099352101076800385924756310505580391974497998240051358967439904699304086027353475987001679206177948939387088361763734654968228880005439411652695415364360869418688929524393430390156167918308537050515475352789087218148137409403586725990978631736280147766621507285580778018074446388749529806925366026092900675828501597632887124749422582892371086207843989451593710896358925173568997364520497896100025202025362283420210273407549687463695355309716443743260820195887308045638105090883668262483929998931692414794460683322985005318556523113960473503340461052647818882103142794792895420396571331702279474107422717580096200314397924334183379150095908266343054942385688418765615949455341934287185129021682019693750734578812629481132822131301339662098541336887455770301026609702713185077845543819827532118061969215084764902392094075495351731554560942138394485085889433084210206091716918877815475273931407417443725682206788989824633769786999847318385195122837325090043041201195262259713898078005525653749816089327996922249482137439487478270793947721744399210899626957391143329832708982418785059730979065788091760926349970661000897098398631540601266072402375829491456507157817879715999613701198040303829444635062952864280392414045603390144274778911394061431871650513578365351528975376470482827814716761984674851620745942825614030084168472334472220252604057616137158383592392711401824655387102718772018766077592862816379353257981986605673334492069859837847406262364752129248280315681317287754792379316307162907393835902854652228285335679788057517223037082304918269358160345451292864484226201151250680949693084932428698908972493876880592813291704284467551910649958762492649073002930723089979790680871860602186060902221810558865866280656932944068530615033114074380172252858310167249890588687063233690372939773511694595189246599155565957872936166094436614238170019977859811055632801941122213037977291361528811327843503329713537495645090086758262327524542575259616079322294871401848112260330524059867651890723289009820800761002133594699982273744567080450982586267643833105800262432891834284136407644585330828348418954035846896232173188335541609941803010481258705300168302702214491395137730212887694055435560460882900160454602412291803634055820921823803135463630964902378285665434689109241801586681241553621338038744223058901144692232629504335161190583672706981007861287770723368522261665608172261214937339510733695000804821310997123053987231821084057483284058542445183982034849623161691769977977999671987423501468868897363002835420820205909318635062132518402063672921301653489036569242148199843485123668317177304686820247151285039862621936090925808905337368711629098161795655740589840435908367203447654316893788694585623821073910376257391749599439753273949907048234874256253393271443797804824902079309234243423888721729620849770794728015945220405672926031915251810201822113693099388681509623683818620472432291734700332356395722404855980026984491883874843208405134865004457190822456036604922755107558847512399162959914363160881083215088874859992203757091745078165455783116585952825417579709272930644207499038884998177790328676512570712715032627302026917991540394734836726989376263366673345403003816696786994696530671565747355907325968264738206516231292310302751253310537371003386000228984666780587224653350562900002680212376034642780123227007298780480952944089187689798219005836530698207465482515943902115749050285048063339329491290217484557461295710928650198544973784484435056832947646785590548268571760760010979625190155353982181966485974096128937309523022261058343821932332448977533767291131630851633097699659245440339059230453600853278346770826965032604693226551700201609505824849195283011997103873902487517517636596068955354174164374970755886234532172166201603880261055311981853015715719740827191929475600504280775870040431202798728530474761965094580413808251887841664600775645598007952424478506581491768663142936774469478149172903386824600212346574195219593772338139879903332856738280044650392675571242337293437338096503751532969462326459049046031588198999429988634566388882023240213381230349140709473859186655191676443827550363960322564547076436167895988493082824369468172424717745433083744998696553465921768357111513151739412718428055623816551483256781935312024484154218768753232780917185817918343501088922650115086894605312314794552923005357269450262439135561605078374360597065823227588645076119307244300288646582805559114503350617431982929382696770320851136578622497525530185999952363828738712853724303526818506741298557363719665508993790703150606275442370343461826456756933926309168096759599636036996085478226183342415085523816389819332812073164047809721039843312134947131768228743104115240320282248677514170798431866430005730543906547716207183886408269283458468661362159083617882296117191394057227185776862819191626062701918712634224779524837275893864098549428236559803161462866028559394496902095749418493006250706646737325661300420824839317361203371008012295666722047094614759811506238738398202742626044645108871171454963679488715104911315890164338508108264252698606638156957920716834704113048869488357273184644821768711197389238512490775335369964890605849072798150825459140792269519842995393531357449914085899171803948349692305980867512356105835993766926477485589228781336255329282283274560488297354136860495376926276779452515552657432674308780440917632725088546747160522307212691230861137860880969833416482862652309402028927791264519784538096112535205277708851214841684528539660730374069381701242762926159643628416142739873134639758599022702517736032820593873088165519051151778163587362404793767260297965345298051814320334338516631360132809397210900215519570117344733532270056304033084264283359095207790252367664282800211539227281297478388954488609833460626646722916703888965131777192398294701405268309699045754003482713325854628622359168940072282584921270087424771504593882862330374492298544797230601981311733119090500585302682332337238038061605522294905986521395675921265539595525738973413925107690629178162335174138379112861625560350871770390107969612409795150281458043304369120276972477484048171265919436762980033370614757650624086612883199335334220676403684408608855931283600309903045573290154790590425598045204691745722873688907039347798433100837924327091830731985609322745608434243341703017632964126449644008928520273297784480613753181807603588195185325698696327057080817951650243020437839034969888213507577628202645639254314035337797940834606567601329782297683389605051496751077020705369434620672846593076059963780688450178103559661749238993169706800802203850514343487122020079172082606123035921155163846814464227288841309503295685713821134822214258180063066548956009800696491610861969735820259060086014171770735017284569473553547256707309622236549238276540587430780594967372192331133540440666201795244676490424206773310932310649144736479388790729782466534006803275989549948490153892630298666849158793007113318167104614298845620982858188928743165830944035259538465473828142957360264295352724888612692890709203280893318395780111251374175792941776916902285402301470457544512406047173718461981901104839780632246150036511783038751601401212524645447593343592094209532414214269732378041008665358823358659557053421924557632706475820859703978737901658150123525785222173829593827136567264600868881925766739091588087068246378188107213674582948298555633075890935649117020907809116882140889054812212948591505362247505393538790655769105308561594887275035910377603734105876722166180001952428552365451899582195911068454785917066401700494496972859890509816803355201649924295223239525709419260329279861522843141767520663306166014915435709679261133598539737077265748152117905788799625039230335726808535397257789156647415184404318029308268571559095411480087320341054117657285918195581432653529690522280284325307625416061034950830257031056133013637373963918938465772500348630377828436917453932654631134388622947413582328287066219267614137819050108341484872019222924671831908915185127336703360807228518813424298815333541862178996205984259422572829463200160290781100990304711294818131159617221784942004584884032876258901354964256889479332930101816433012425128524206050384030816669231013856283133154915189525440573777544524364224221690401510639160875699276527420547182467072329788322663546539406454233086853711566621337600398654325951058006502909961208874620555992558591542529443169083516010769939430358520237383678957195311123992534108330089623320546535677786482979182461160815731041826274910302996619438075577799792486522893098844528561477261941134285265226366564630817859551026542362347661333290367171845713486866833672731827358025237995358728285110274122014654892208074931776922488438213491122380661831079945509213369927170220192142818925107559061743897021664607743109078009308901814203777186453877542026286400107362142496186912425189296350326630718334546119337469224449015402639673188972037683850812978539591672549227466509930144862749744614571836301599118270923517401209484539385571256645553890012323536424008809074055517474395900739649864181854247678314005740417639731075789370433876325917238801677779601908759007543789818778026544646645620942476693753922672599757568472117769946463166030962268814094583929475242045666697017946476504930741325939761588100346654593322088760503587239432388934493992733691403779984867693956635413618419458508477200510969478322635878958192602988575314643496644631276004332360874521105193578111358802222338616421007708938983112875766797246690702894200112391344899230216774904743916850397374382648102511183396387907905793140032012627177949057165623143406705082973259526139244373486897395919538912356359822574374807254241201323902277234313753264070125941518829035781578447614680095991262163934767747561099356701324482036771114432014615027915256789396980533811895971921758305623786630202459185372394834584663838722780005807139818971581562947482860992216730467164211847205420518946335164956385284415299564699287650187482234157868607392540908167363954446379154361654385761816072828903138541945888635267928920153234349960336101698023354747956982855931628975221668713128882150090236570877341574632255368577452050981176183936388448717024595982779239131296661645750223212748637296336343120809415367633074477351360579367181118398468990475730657893125534647710129817640274725000253655811883451352876366795125110166709038656910402368794294877862975043329060044667072941712230782626910920793857647398011351145791352503751467342475557437475392624013677311853724803923809017502317668941001378958581195006944159387277138202897853397809048976357794709819478188308275208412415510228320896632643924703109434414491070734784484419570752194054392589195953882633037253032789289799824593607661233847237848054494967422053823344591267709744544980087653083922397457381838513911358281063000169462376406685541182914483871353714670034736515108878593768668300166452132158524486988014430158375901163706397147507450273503676817014519311444089511754718379616514305394380866741473157687235083957119438430847199812960286592107916680829970920720129852479886751306451122061225995789046139768062907743645159224765101212721380358937611844281180713834995092584820104249389635630599881896422033223963732247422805998664926983602295922794716923302616340112694319964454090591696251907503653561651411221971077996131809027348252552431371404281423445316567989296016186878694746862948099302069011865932597380842440205146067165362344816239401518258476109999993984689867389506824206842162387883556184612825116501057206660846946540056304802917303099135260575043237439409990120784477018021014049890218184623577498794152091065123807727795610219988166647311958176501955389295273431411965031483929924873029201208562728693386412261058680757141125725597135219700786922698173463703787699883552015981251137902603222620700535842897628185097445237771437438864847750793159047394289679964328357196804199462864874618761211741121736712172901709280112990772128631800978154839327083670987725566992007058605412111668989749432777390832702608251346883506444710314935260043520248093954794250526661713191020222813511850937169432044063564121212740145829423616344928861687858097878555653159903976379964718331982468664569548272894933828267552534361124594903399353916589095308420232202076073006499306096925461583498981635886827896724157557442563229564837832442657855471629627872280365656318120025322986859280465838841669404143990980348720360815350530847595387387570305632948147552048001771216418799338818454898812746769990288323073878090608736169954436464700258550515026158720305308011995491142264477506365571509147613573817674571339320434629654737026495100077999190916971530126152975265741495520382001734479750959284003755584529001862576777671098564923690935219621753143592173847848942721676104679132893109903107037111634948074245139592667135528742850223813421074113856855547493716546782928472144912977657815725632964873887926233427854322024828509372653586724789423849614465616734253987130667886778084364141365330233701544713984054909706212189014418112946596566669683800921834627494957193190285193922874820252191755285982166716446523050040026029502238768864874046152741923382501347519670562551688602426134714604206457293088172930815706384673947989234394697613449806430088303796260883118421984286729770175737506236823329275209291932137311197074713162784154369364500370677027553420254043592204133860494950079447755881980316727300587737960066529849203294921304213074552840038854349518087073509518020459262328110439659903718127338105973979626530590483049917766953540937386884831375814861031472404827257064178421025010368745925505235566879624856962742464322832686552223706636363344778131321408400475073500923177444086004356609588864539171468809543215404212509682388251087156590555832632204227612724192312133109500413924378982029924243143979726595089611152694913710833180434542772063709240286845471366480195928305667532481441242831744281347037522593773691538203021980053997490151062727266221354475314354550149399012205230788304324241309577421529321794647857611995542949593021479711137682694083648815412851397358489406468474423830947612822790149841732074828022864330661935514028315324978302724482380963758012865027934283388566547539576002394796482743828318423228115530094143979099852495330031879526767574969428242505710983361236608346156350030731206951255940172228479456494340837234308205128930390875006507898191811471056331470535082801964856661029557538383530274721877397651121434730297622754262533622328777179622921099678828112192459046003772229506328492731380619758931049946454646247595647173808607293454001035650532400296027460617318549224121057264736996105031999981046917436717292355776742632203284074583312057865499003698519863413935108412869718715642800238474800355184741287697019948247014370976853074936183401506098592156721643711280827573066803216431623939089027841194681275821901335093682674070589672100394583524298064377722334860025771370400382182048967916906793658362691366076348538853370297367638353649873741684824855020645706547560655337981306203808234361200067252557427304122369313462834888912730717384678447139055119147643978792063520908306471851599079617110207033924061165728689219629625044837571893323083395524005930640558483781148380235735085430538900185274033076987512572054877890362605482360458281401018002197462708757684490956105260190234238063331537828344070194973770847925762700019842623291265924338439297960868254252421037593714265666476611796843999427107025574762108676518580514629781058634273689365491240236597579571882057755081912536225468936339315013645302542860392237416560473674884609493373542148685925514187632533491304417930865451495531488471403757297531005915670448682160874704927986538589287518319617919975376500679204485371696119274104756851623370310269277031172770848881304798453734496858037239868971342378914503713098711081095022068786121470451580898243808122639921781573016694324365842537815262468040179089335841978264303644779236307003716017280266731911739087641567982092511265131595093977606039216839743899598599286318503039502438380125835483100492346909398664936464266868649873227256505466216452096394034695688996701028825767083271149070512080088493987725218456307435428015994040681571355220648819716550869670056177400158146304034057595957093628238349777910448535110130986336683707889095821831258748213984549599611855342819323245057325181528056519233711683758286111863659534143806242998727216877853747969451773313676655274436495626296436780064105364471297991129061742275752841746083167777468229253839009852747460008955929648422467374671326696511776829422989816737402220072160018201783985766278186410201345959099820418954263702541272231882959665213662470094737979815687989737266423149342543670316790132326994727248233030715303726541197892928948723307164074855332278918330694225613843046479633504997807815352803533551989086217458809871739135922636081798014773171561397375881348306873111845072854887527099512153463771040451890276080728996268282246420519611293783983132630432855599935960999124597081772968170547561209723520981272844984481946941454770601352541567776991357593917774837789064856674028155896863569366938307430535273480522436712324507369977724230576726569141017226456408159443606770392388666945830159701238441596622586271150593812697008728219959708850511638266055944551225448168866794469503191989447458187291785374821433824928969722978704790133815157046875844524667420132685497610608360239941895138425813270832534473777417091102184867958851726511210028038724861093056125652553482303047536920545071220006285412834283503961033072598705255559206185124948336685910608699803105557340382173466698718732138925023901471175126660909424657876783914186475643200567090565602983397455692078189853923195898966131920988584018999244091474607620915598146883325245880221339513981493714710832724078190995143927127999101913240290760173919158907919943211208738945121004620052018433175332378503459887075932690836874428226156633083320303306066903762565501272111725132622154540966804985816187967029933102439398864417332092644994936165171549470426709181966423206219979340252952330208559548219981848174594385069820378551523320771531043417259924296339378229950956318734978443448994704141345333256236368684248714391205867546369571689374474205058633244233532598500579243499085185037901005436250846119827621704992917508706771072584791003958133909973278760411453504192194176833664187400864037836669284296118918042132942571514184424607404879110568050118594607463084818133711560600786903855673651618585579420188439241736453110395754629283067489043545991172901418386641543335998065238212943598232175849894619253039914771322664397625038134163936306486012166893610928657944486893405446172796964382127759960330888700886029387937320399052805825032096808143025686580794528674592410199934441163387873029692710873617856361354296233392615652191288269731285162634515719466212179234166076277766873839929805771469511655994378308739335524836187516178035056498631202894873363165241983701939152281730870548550899726472902902906057760523472182781083271619878144681331279996764017892875687689736768170741924566727303025362323497307775171419560938430593792060969179035201747155208089569044313021426575370668126597095999296407611868999723690617456107477223471440108067372129668364779678022746158391079208394259872402056157336937420818767433351804341017161012500510463590242001829296736020956536217413729167809527563763130567400614966927400330956057048015193779718389311285785747034968725318229052442503589952592565134804080260513437518573648373452098200664808314589100911854570188249377306110425400991861650677971351518944322114376569133301216382229597981417725102988633883874505753436906798833258981011946140865781195801267984024805565132467963682665415985479523043108680580530093109011700302961745171435957570124709678439834850301093496227674901247076488456636832990047160034168849167553540849461327324839084591559757529824812802078895017948735696723248629608631062591532902757976183086661930589131486696072689928201814274815708943894116560766808936582884086569442548954186812506913566425829251003499675474056415401437561990867370757306426348005783984240471151590669210047137041328533430281662014316164732998800403744205109873640740656401780677479242152902554089305224730285935507242111274486555714661500290746115337884751305753152475387245173225309174231773211897428209766215272904153173985043805788644818966278662248059440665508897792312514538655743313178336496452160026840093978909474909350982029951370843148717359616617700374306120700855953440228138262186422789288166467699233635527870258839111322882019750633621686891509927285906025411066555731605875487066265687435079164490183664164149524444271609904505957873809945908936877116571661137864100779934325234787003445230289837765128187577706720719842488833055977405643825187914082171564411252162890327900811740835291802664136787785816216052682468875923429878224679594288246706940622773177041314425197194442901154032954160439637748276065344724174122893991719594413947268963710315961704929887695036267570397667453842265792522479254601704773743029330909222186889495302939430104713800802603128985024855491890038274869049946630341247430930193626729082712439604425686345685113597090660395549582532747352792501453526482902692249605507124926900774227248453434945595369590727744246911477244615517257862006926637172745432040694552309386362332086222475306792088171221476063208877703700159146280157382508427629284246621585387661689447198541147527418459654784381658227263525283450503525915257783070223730076131450942055420734678252314854225617980852858988426371565619568143639454008774298938757733685375100697959443626220428214189392186902265320698868925461378534698754653041652957086146357741348289015013603176703710675862601180233878521243755912699478431294159197337375352465260464826791215348157948137124311845197487645059121947856598653298052320932648729930792372710515637395177815741406279111138581964097613654760394459051240209932813790212239965337795372221762688074978667701341107221888361268185322423893762331857968617892133353966825421144759579451126469068815558724744163704527991175058063150023989618185406074804010199987191998875844721716441079690779362330530551996715087569414425850296118657428354301803221466840023893766771451760959047441089576000810354838335202223997308132499987263408435157553150409450277856229050916263688748584659431033620530708524723215685639444396409788860626848599757924541098267511798092273676378682272900121602167760956066970419296945077661448952136501014659393909753884811877061173670970382776114938503764735951494315627731364093299532029821179925887418674670164302647514124925209879183893352034757844531978713332171084586730970434611921327145858742250889488268959382986607473620879664634862184702448628704908900004491790154322031110407050206902964381004693249875232645064420709504279208887170718953753862467221615934798837672546498729005623217822002567234385924173762258683988459148143109265959780788448408922615866264286379341161305362550876303024796449069361205368663680223358277370379698261208384954512376331091973579052163840439557812427147815138136353020067518680943185966903204723917486060534405045674293639717623359324167373821120894675108853262305124786150473142334591648863278901795018268292929065468085062302185400189580783991337536605475540709011292015632617283234543744853553972676943299623522818418549057460364103141100001445662755459849463050183499819650173469063337693931444496027004656440758344287989845866317420430088670030991464432498420514047727739487373768765425742291658737565904192867242130691704881801661328413086019183503990902943161181513006028887047602158477303261595545760823436692220920111176255151132276912352192686776065698284954787117292709016025544959045624758735553935393855138920437202401812203654323908937670124381731361069011055202739508903157672235974548246445163850183533135550812446882827627092145425789673920734215949432147082316027111265191999494056298812913114909594399493822567428903439929397608422408340017807036186979165108819301051819822538552063818000972875006802426636462812981129210553460822942386037478245149804513874065224493786076022970755885953941344765853299038136220800988575258110347483891976554311836347553356548254605021772077643565722700445693656266181923335394160697130818880289289803049320684745181350809699344708130691618088180966426148746553522019545020368970341181254307631659716502959161492557512916102727314585025817860867987125753600036988194622431351884518817439152554152253276130567473991561378816229910411805555233740777976836500130716409952844421526967401949060238839055252755819976912870747004931768407873565939198385974063500303545396286951821992573168086176589820386464867973746421599120619077022584180357704638740890552955724638590273047257147837076738072817995098491050002445237377470275621584228709695326290112677154943641615415309411654545395770455953788544019941448193103786170974806096491610143159934021103967507909192573183961118860619219028301330757092815883418977960093286393426196323920180507737905078767883142508422963341041750537352593825281911417681145118349952397900757706275236822950564386584013646317926105761508384502535038076587299026739342555442312450132806643982446529880661291602710987104262752924959179989507214761819739753145030205774902714957769870960276472494394481509730373270938558857398641871248122956640555970776177964174357027025015467351065028029094581087304418151938503443570427353603262043866580175947758346165329914307161160174727416432262029068567007248865914017384156538538354116194741128329023958779672695204250269557292693389735881226865407778448985528834158649691963793358231458816646641758246959757771360474354050579334094183375542094004922058339414974228823166511831239072701010958156802145860459122501853674710194676922206823502537593839498934911936666281285148343072977090762108032552191237225172520835495281054155943619776101560175238936192801217456519313931726585310777720365050936654434798332298053370587070228020249376471432798559739880047466495512129330132545756536791401264630359673243979096505909980533294767256094523975181957510280386260297826942986049134114648797302650882317683369490781590903106962066127640048750543544307753979250045003246538453379593519084254133120186572517729129500240099931885387037983031611607380905546527627138698023246696418701803391131843558445082310508878986093412105132954178340922644402683305886965268105071509609215672439856017965795618657780051005464138771699719570074943609221733074491794839754888470912114587357621164471111650695621543619983182275805843396093919604876634849699070236787529499494808759533812664110074828531743271954372020307326284606335102617507642478650157149987432622662023624295947864025070897258107232741390240292325327142308545053094382006966061314557375505703485272992952363683316469638425694691910030371681071499236083481457263230448513265092099597063426681449996629040588333691852725976807744613732532757733964352356089488876110770075763394179740198513219946001800881149836619429581746262098855031827802222752470204430904852689312315110711471184989413037595304551195256830675517995343308088626711761814081079119956688725772455063113564629195281317112683799171717479292200852485790986211817617799885247015059070435309478519175629550541403296677667041690397372582742082883004446714196852942171938606518187557358967527280000233307484150688341074963689927750017540956145663816819292966230212607560970031300365609630715567932138798358124723117737068494502067633299389378446211480351082189748249933229676737464827957351181847368262273754859589185145130513296853013109875737030168065343773864499302105450292171173078085154094124253198932456736084749691417672151193890409297788646762679156185112363724401630700956388981956174014563987668122037702539458584810233661954057543126511334932382715331930747246920343627283370081941102003046702135340864430127917148298399535196967865459765077079246754218204655921822390607694635966194159600504779901748988527447014043079105219155473716347075995296883503592934670583024094528153136039168861627341445071449163424560887817150950134413014681479971116122273646950189044132089262398827132236265871076432837361257531525385112094773735268561533596085674112874582309729724733569611455051712357280441844356465138139909520086660582600518122637506186924210043048163340254403467924879829907927962883463573003531493277013103873761544804625424914781317812455139613036368019797887731682912528261434083548049591657106753332202708765877550592560501667509900294553003055391480941637335212152290540222474353913113909263187720212481130434895700042090700782051261249724858853885840106650637609073792753894637653158837206567122449537900650220559686221518251410741461419310900789437122778821567441065969477764502597313958270264898499318356559616766763987334253337301900097281831923044878736554049817654984870947589544572440197677079515993819345107275786394098596942704069882835153946731454903026014121713299643441325808301371754306209245698651977385018166695457149986925193695210871969970349677642759015048562210998747014281872067781167630555119018355644964531459172513739580478142922259459232571112260603851598878253573190744335037748955818517714363487957078831336017998264710726614693077273610501434739224769846889150755897501940601584774524586592434264753700787396615439347159673634759248044599075836769914192191954982259171158815606155494933561213733639091652331471489279986248123598179967565420777615937767234121106403032029810805925640401274866575863562171626033387841704073064222757854080271139907688968373932932422940405707222783614369223535871013233180465340267860479704321439568823763070752062785840264947636218663825482406324265371393053341340870385350414842672147112510162109043218120741117858133758265231780466165751022021242172873311058347713799868049442503355211138805868612702238862520119203604226377618955055658188954923697709019381724829706643157514992165751947130068622399159001733262687896520339126877787859895095948731780261689616102660555650572114153962061629246290736435449148806215879945415333969378662633980942972810334082204508694971806785356935525180714854397087154768774378481377656636483925980869816631838824844423949672212656862468490358518132102660974047837771811195043414893609812000355828350221635176434020330725650931976056143829553992410346078350408374411038108422073336035475521482530069876001683876873841905679262279829584814831054027594980466243161650417705466393674781864510126647545869863499812068254872132695862813722723081649970302845108304724761279014610540727668414244929283342013752536818840237597391474647227837840289941297221047521926194664899414428738033556598865195260301635102132996565789469430731510598249309360002990198315943679170919768350377173139969702758353250548217067164204720090213338349678328782265788510758764386069622411909326467135353786334559458317409445161569335446288492790698694705939379983209143705674999396221181397216364361051420997726891051485416300086722900826877408363887625805569882950044175958190415949169214014191084636922430309223990764100494551208397096607847232024718909635940557366279409885689106565085671467000290084527776864539422274057903833733330844562659353589491920245749546674587965058415360534182728659065988689643789864903644595016780487624171408648632140129269519124114022011887493404568019765167902728913768839716507510221797317973963539424460142714712542527153640736436742163042732224245181890193632137532948629562148796905779885235794729618183422296719007335319848859321425412514792510690204235724140958538990896986136265923757343116694137881690623996777904019251935046345840376800180997779111415841008621811125917115607026447594000121823038432929776085064867147946727949859000308694830212228014245767264790187651801315242158671453529371828028311996065972360251428854291653059740050848777774995688547008611023261679981319080876534704605409934635644838092711579289547902224589062837530141479402839478199842115663960608678753310933255095332845987872553833219699172365133058715227348149128994734014527029408596359708763236901318344812215193634151632612086663943284575666950145024963763797638457161999677812873761673748758225637218191365208076234262545504015570797686875192360802149132291851419182321537636119901075849732211679476326985586980257719396367887409999533905724191134139395837446002643349934474207047458465238746328122659379913906477532288295659990813043851270474987145281421104776337386829734952837707911663641618219387551451237126339060537251792471318022257417649075345254189272623222183533550740062751106327172734507586346623127839177625901660835511684073752975456980498744940856970851740629893809679519697238799476790312615294279696607352384586575170485537656655372873263132738073710114284352395905854670284875205574587340987589403038099871980200624207210694061877304422685419542780067293422609240272267266719093021214650712698462732035816061051134617464500128025180074774992815683710216338232425886424995426940308483727160400012871859594173962777719611059550712111823840491395485901395778471807136245371910009260935254795713854688351025630498536896554143144572423362478153899600269713268986127931821943940343174897155554411410522965157186901780300958312964762426425591652370589165284145901272830680179978362194826889937746615954845748823220054598956855798634973866024097096110055171100705133419212042665896985332814056417218243631289368465048696771408264863530043898940063557720248742613121904598851831833259944207037354920310563444534058910315204703909263114903216934003973166338466223066238058041062815768626247894220822032627514603354411896061245375180315248641115212272870765069238676792085996640079806180077554801568043965801661185422647796613054219397007346920562575085990815205318418738889554378914615830762875273995219809864644019698277018778030994210560963513254209828447454659147111465155027124493717058530779754472434810193779955715955355306156611607823912405592678549975884463812979804267376422006239164111247235866354783951554863474425752760947659973994499748595755687334099970860865188402236791477299620443307996362703630788766482508256637068551829762480441868809839216298702433459566327203716695179229760857814107746393751021283709627700300717208308626452547329681189231589781839721286383189000569506029567648102700425304428246157602778480944349428546726201478983976275595598731047144099208513455747634990534020094881979462054858314263781596952727576366228638020055805459786967165571529048943873915021068883452660877793940591170413257139242071696997627478370702993970324927579178454073012790261804389325334822534185524199440407946672926546195135708210651818179793238852168298906364163928871362909725639256779337154109600149425336311539294916259403794823388973180425573916371028144857325282434833584680594228293046539281075311468679292117419881953439102611717823815125750761763236651717920696472817267527392253733630321083835564933547601055204613826831490411848741795282098295001066485260462702243827464988674284083949625137878435904201072302802793298262026248958040467539537135100581595744645404683790639888020459101763605373499770995548843004247697017953286483757023989051096460745528109016636758691128621391006321053414527596092988852288443310369348820512471501684791028088122292098943476817136008011608375330267810314482052903858999662721487444833810413688604567823485411774132735183834728976771373303676782991438483688646931397474605077605522959848088600067681386694566789663758282904661887651944046957808064079918952633291382938403200392728250496661539860384509737232503346068456587758591386489113953512625202803768025693044101076155454965387831053498922576484215426985179865243856184990814836022826345915654089223688109056691308053104924099832829200025511249734949807781348144956516874890017692296989914263072101266458962967279463251190154204130973874366163589486133341936090467673909691713609626594484123742524845482922147224424633989813000613449832674883274318263901835489810978916388316272734805644897035770055422053893940847540581819198837637833139407819961524778136321426984607594881795167433629444995461583817893700945886687777001250705933738178244350022735850887514278412947925906525044301669549196769862091788106980929648632668699288862434071566073831126743901536206509601129594400410104692885975270676297223456310612661400047650356873545373907028616555773983269979393511746792775591592912136253441359686220235124721195005870388311729616824636217176496633082375617721298987207280257686015723169998536891922575990018299116981852662959710933033140753392497122577562996298434859494342557237409165874149419400043594169050010230345797910007893536581300352843181236273377881279126994812945906705460408219651200952064994031195752140532464569683493110325861669062196065132719661981157752556976029843286001183203872045274806298507679480263502104136663401557835918652087430642958218940681341859250722612816410375811790925696860549250877480632026533160639073818538240419281372862507637760933352457411624357428074722318085308734691255861235952540665155903231890391550689602909712250056544555484546399996497900847659797201399337002477415111008035192079350521569600875410158935950092264996575495039456879298886631496129667370961094877167118854686561036520424411564379449961487741697774550734814908105329687645772944856705038444251552435752396407320800229726989364499813660277267547007002818390357282427807399598301773560257664022696418084571448248556288284366047957414169567908497921958864694587451423102075060783087989915362843495892448085356727670308078464000534843061237719803810318347143744635059603932126211904681794639879692571068829806934170140048479333645380906411202073654491540870123259087374511376889487555989481080298787955480952971301326016055771129113981512017260880657215104412664283928953821784087104193507351656352556505018448979763316655389272637981664488320388155754372518898984392370268185425430038499083885809722324195519638540478036456249158935106903439324672301386748409909784275708307282323583337163812023343747941359640809253247058608659386592762568695566374826051428528664655310464457474322839256887777306446585511509408000059338198086783685108963049079973523389279688168893228701550068166109105265227698335042906024314668278894213910402245948495111110211865455158681000409955114322475715823358061881816007908332561728419918472637047185049450247906899060779167672497482768290594386972523123778528009797781518582530043342985473332481526285562435801439838729902762386182923886406655446022093965698994245870698903066274437506950869331036101345335486543869844011304005274769560280859676496593414606348555109730675656015327629213596000168412623835133655382517380631131282539740341382473950379387823569464490639452784687008681462829838662531124759648191660155385816461282696669266060923685271701846555853016608211892722135937016463480370497679743916106870267387934225719396940362519618894412892818202406283617723739752898608802936860022750799027737207616778013619382924724805044992672628141156931462161198652695623230422193162166553462199894052420075339758281206828392591759669578450830015346702718684313690722891468717643403282629217417152067764517573194703771607098024051158172553419158944971679915349506333324978896844043499878959638154076926062670686710910186505371287819661769660707796095837669914176197607038163239592140822305467955020196262467138633626138910170846136989697381828434698651065891197692869414462905024065499803513759171699226846077714647950777392293333300840092928208727658338831509169626901767326506633588323143934499609481047975692356476602950720601061211688570173769270632525301339792733463916024131401295951492092271022599578465548454619305631547148954973582233136503525768420349443814301045508304744469282686482323657345134411136527914373503562258490377859418690953700829312328507826108225224025011914871200644425926092898559925053816381377367708796008641829399785731960631243677230338413458388822621116369421895150721135486138110433554588508928481397286830993026316330137070116313644349915392226135569646244152620914443888590745295395425743439941217800961801986465103541202541937993020916605715637264937004142237175877832013232511309954703008350592099758758361537803402546307272893808152488980412617171629427357498840341392776839392236621331748563648538892275182173512797345871767290671336354007496522985544623670166903338162283669405214387921643394056627966133597727586165142970633182259289398780796579029379092710044582675816643748948657217064818251585043337999339026967597501342064616923433788363491313212027974150613445085982334338947303817966891172575291837331576843298825295036924558794870681481233545660826463835056810696331300490274514692299246184127221084510954077362245738012522863419167516587547059913171696392547334318449303714754644134723518942076071472443675332730341948487971946219139734307463917891409017021604831437622892419269480080684451365571731996113119244015943254224376632296354571271698361743105673156522540846202731147022293409515351989102137868271086425436094869580904424587104339670002710775147518094400005543078995916684104774638019716059097789238592524567193269058560298021013576354568513630565430895590450952177426014526828713286034752447072919595334138703294952868137289844339498909339089781259928433239633476438993463208722093823087069375110408212094538268943543721660972493360794781629397183526423749401671415868132835773868269241146430381190988846806155110857235690133105007177348963992018299238438665454586731329018708106429430671832511804564985710255642500519726581702233287755107858632106721036730210218442412344013906426374722232645147683151014784034254446951386331587532633998065858660789262999192529447417781758779506706720051544737865714545664992721450270314680520050178547246906596391647276418179575671112243139546102694007960712311326505646905222505269015782532273847344299753239398508153114049896977515038606758352041969531695059583384255562203524096124268612498643214965442902971062461241432008405691650037014777562880079702159349872556321393104013597880564187649425666292189771101233377083366680033171822053393758495833848637422708176453854378938322885535891143356450736422624568857080683810541122288565592574793702920295722082590910523911248296884315556636546289820452341998120616925387502177529491838501655538121335254602830243369084914170445671319407004989466306253046916151691383009461908678501170447538148739507074931470741764699088104628628057744536767786719356185316370891536484420331140710755922838232278058384430077591805634052631851196393176467383974817819488357248830444631188224055318092461510439943725928814914086297943701299008727992600585719283218644657249530367846055770812412740113988358130005275573806185546551470027269486750954804923354240731605213596772811746140587706343430491537916887013126441501231656808760384136575477598991968838715485500416560334403564005415898957862148124630599889119616015322629686388748325725361953995729547872224678302628803715101528371608848964285037828337508970138457692669198656560466693342193560403881811536263305738936266651970915112604832210176723928636982369475034283343488455889503811309944414180490490378559206434194781883834809228550838520983329167996355181163410144760334116985459963046206087494011553652033782357935948411087242451423099687349098518586345225892737780598764404442491105888739903620700263961712214564118761422395615350273214502904108621575615217071286331905060190959647786702099744480307034452114831819460945140178464011701440966819674800937775641151185890885881423165245315899402861259925833579726168091913312146705089346050406431097232429018199405297494124812688669559842351338062004403145386583607359712241512029841005538845274085884932547371513982496793290555522531453125014782931439397832537615403526676107047735388536514483296711958287543027334367255695268167275137109307136486693712175394280969823712957780355195537028835386901638286001812712920029256310408954967262634350355390306149355253675808702815225759003413128473712483074829114312041037718347726431709455548216396349959414582668313373063811433627285384538638049217030998588780646105635769635375119091034557756362481067643335103147404841517469622754629361937002124950070737774338328761926209275554891683467465722686816990740993027181585910341230805548626096892016077971685148545486261616953139482837839642125425388507519461140002061316872001555377205668053851089579704544944442571618334798729069214985479792369935348968839859469138079636065426935120875679748907228049122342362951915755973185200796018590979878361663759509573403739206571564475366834086876572761346097564837645525287825205206187086289612388589274592105612796990454952266225990424003227473204619017616938348770679437922623209007683407350214727262671314519161740813189689559059791167089985614287102776054529383176930418170855744673107475332843616444256280960431474543667135213993014633557645448648559088680245888825643262494657749152910742519371332796858633691959357773702723398665110974113034623064591351694857795094078103799729855800345729023548671034502285757981609438225656056374154007118271968737022493429391271163240324479729448625332593879529166333569659135162783019564347714839664029614572768080980483945200275333310492491511004962572009869971375033438420015574571342601167197265593610463894099627400942819867793634705155107178678409909157483577493865326268170393191389518159691679490548776798330396411000244043882687651043294995524891087408618290222974518179610903948319896560150013774432806452101075813903718143373820172694357616651976482260940210371879627371124450513607140937840969938248601783766160918859132959307506978999441401038987222676228659657700345905519983510073901768906659472834401352620503546233607872399641938008850897651187050882109035931520860498986731745624360500236836150294108534161940034369056638046765485217391851998291508695476529351350953280997432539146100034841107124210393361348392775307506643290057790221302324846324704343237724060237820984784165383874914466097563669866776267488918471065110989943036960307971082066870043823719120262747244188020837738358320843643255901181943873545067243512123892187781795170135978079081024520354876965117961173641807223170318730513531708998093799355946220490806751808497010018284980615707883907301827928314193858617611412997130913821595991334782936062075781445085445904757992788806450446626951309552000235289441217455892806590552019645657245287524327186434802241027894575997958193741047236670604373403858360335445847856713475904289093485378048098355073364585318463224635560315206668777184963413251905967610572427141129319528602016805916384226781606622745159696167036557452258570246585351171631965593232862917604289976135017836152915964024330374545454670834212835338255990483398273392398588692008207247407355777737648727505271849352267718578058953652907405689903840704473461621439563849523397253841835564797560124446489246990783241048536396212930509950858728930516564072308748916889324712900407564753972167130423129022124009942378306301810551800833718145616842127553663133372869464710602515826184177451987760908922832104838492099896997525201115837796964927827837579469239983244194183378854941244781810619231292777419715466109365150474771319481879569452299282709233014408944963833814546758110193095485817934799450243448181870739580235890513138129017619944565164221845429770293104756568096394464396788293267493215218842157743680633328735121819369846519511175737695768652834631090483942381622789483005919093505691653475557572004723724447253815646439846011117337409087874685647082624891564311228262342948544269076227528747437078871721232929969779007672292456362234524260373604060629223442253406780745655170103644897053107048419571062990180387605594074646247615332706334248598061023665130512641510326629177697099180882370195484588696552940435171668554430737184404914242570318831550905763357168756313681079616717370308663572783265238846558994493906189759837422218935644416839389137679038795706445076015768006650961769315346462522832384307205862021125194841182874888782316205452169421274944028718474538345847718452200557286862368794468656536072505137362293037122733112935025497136698807151209666611422910035666588974371197838970468439713796217830816151485849892235470223800227791861133908460108517130986216755524047665153457715932484843187941398834036691782487229357498126131056580955586675883640077055465091198720945236268176516407446150868003161896291393037952531817041697021306093075153192825139449830632417901866753961684072989442692246580116021951524203973130610449860378548257065306843263653838626468307183034059440135662936465373319339278308315792080329541525956709981383480741044114761181659673068080182958449016033855092545276325105132983173942172305124488910614004118534911178418468314045507705502331353147199429472770685424419149753408835758789838210230767329442628022579311013662019683543918894450070447834329446081555677612495028866007031860417388998878994521665715929435258653546131348286799427117838307372858434347750657110218588278437206045489956825532660672487183152679551884260929532894933694576614255703794862658624156498394852071726026071218993074428770668022277778451241028154605308529800302345895365407273712516389525999512611830821091355805809714184923676660010431209143224869207190791874976084830709738827822529137580350170055165698486991431091409951592954382922072972704375630294994603586805136095382079357158417475528239139768913379080186999653470675007451863904746894244383177945943957468801521308422491302124194554692099301870604058529938433092947353656033767515405463243592770510301955729328785330609904344226885078414755632566226626996375833406447042047376493796287476907260074913535663600205267723870415643905532558049351132615180450548092837643046764357360064024111265001721013432935755749550163735453015285223680571785658603748596144658330437382375733651321296541271497871290285057294198737732823337461336787779112146355887597270757048378862522258272386954355919847580982940920632782191921540763963827927169411732394347090747052301477703062866345462031311414060865031033259042363788257560330140655952369804988637036428260623278728657496496885009059803353935255445156177446469983560138162084859085304314795632193904520605165649918719616878006317210650868841911871739713921960315560399198325046030838910673754483162402073910433407221199373635729234085826824876413663874427817693482763524309660056087388409608626222039034732704541550805386435228643489415612439676576436036581394597798785726563343061951765931949104583615686777112619018568955516040765803258971862911749112719381893517327675347510767233224957840676290678334780410964081895611170226260416224482802193883999689743757208422026022930142766330474709883372525951369693535607819923910467756286226494385537335043040551573591874083210071335606348959511892401855207463137761747712696880610358283522952605077560501598586040365433902307943882437005624638297295493470516881419315995290843321486909013928277854859481880773440232054132535289928506274237235790565721233873432782930878331130882214378847781704823724949033389909538036828225420198462454270190982803479940984134699107749821429570871479486274157146674664355657446346606864000717347849372072481347853554281091999209885825358255914246130143512798701773453314885452695197499889175333990328231631832253785502829921992564054233029031466281701320917517042044780967302736221931745433129553167168567016637869258859172016558558357571778788652194904084829787321992519920536700721600669284095937457703282406990944614718569642904185801264757830383175838287344690397000355017435578255486041310873997809015793602400068067863630616957435571700879686424558099507507268513559695055661240764397754561144407737862030933969447439074866908832490939356607081244333325274328329415012859966139191310740833007804899831771260437467411145247696846744096510126397811545424560565491938471675875703241697408456025163352750711581855260417669159537600520683387813572170299252567206317405771857202260353722198892764203308568150248349529004814666267987898497388117253436576794512337203863516613189914132562203367173910127781313277706004422358419307306958162590534222451124078604037088638471971562773661251102810916146847992746395027718638080381046919836653319380469212896058722692674929740168735991773578310401593009307307434888147257579143504384522010732405022091104010288246690110484567161235337377043468410996147749162243008669439518222834531673093222525469552283034908347800975810676920833942148217075666182248275483743825124730133359784688055717873494542568005349863978913888790214831366842336023283511667362596198623173677609734408103314269552896098068179978055735676972327655493657276085874936791006633841898541294230409196298297981329040719946006709007212385325282055282855632021422729021721423787786117884853734864521108671995643059576327521741982129928390213399492170355253495297696598009724797452611793663851735903833482321674824945735724709116134566607713500910236463894893760609605144855606838676472043474042916107094791748154373485550078767461288823585461100883189669427918866954984809603380208605344404959021963953428279219624428470058909882322803805178157749931304136108520110759713449128423636540547935958726512142010943537631452515500149337854437299195701715814275108524038385977866222781298952285869835885753469543542231897368157612289877590754441366080842095428452463715598131068381003714888133189421891203629342871647658735839020179604708307879491043283271385569992647497914373458622268406546646102718253449897093716986174484887161040511711659843785808760081312237499058445377287795893015822437940615157531145677246363267898649161122396441036918246664776518280490322538238667402186456540589352601066158353934571053038942497090854483460683451874749867806470748778810055616437861231246592002052411190353001848130531768278146832477019579028401721135521027449738690935095710338060911667240519295666413648676987869044216325879786352677803734073572976023906353637153664913016503060521191880598461140856220219551664472710120229914502093147310564961436506614908704813324361275506586520606623089227162157952024001559364037993558744092093011913835499537852799750823442317746173718331138651092283186788933937786103688555232480390675878146027096685721344320527472738311372133300798065244979174339057757953827250387534641393949573961993117181924831603517086702623207950584891832969651688882229477247677225392260994087507573363207907959310345727299425587154931109425852877841529298292111054489174637830364674923893563368216853162683961801932068963732305493716825213421509818007721356020384377543222975355204875992848156424988436694835869250912011861763586793362997818271474893428284051109138171715178535063643613913934110607547989361823090333777221220002308702892399662825490242478836291918100399616182239854149423658832060774366533886818908206884758799233055095641283773950785949613071964980067544342838344160671206314477326052378264674133222985634015016819005588458660690495396881737946963251780674387645046214001474850167599889387720084242604326148329786672560498784478948300269619872916239747484829989762796595018623256104463652590038628946325527586879578808630100531308293016566051227941830167354723056697690724465094342478220286674069603721564404670695770760789971233981672669775772356660056248202847028668239771949048589225766219070381771375545955392237107115697754912868774076549023632218766093752254057137649756895475548531719579770023642211180249842124364512224853449661345369394196547517986642723140651268173343275838165079547428213425707323103486679339668302138707053466872538211657456816691739589135409723301471030088294362229908977469075205838290973627868012291462407407474015080105699605415178544154766105221842462521817866068522456318822019531538154620760022056607995396406852609969032396154470695903999948369798056608019024204968371868688493641325950713124641251465421527727444323763764687375048567232943228768879741562884111789293030974736474031343881431748213474863420960318707070975956786286818485541313098155049942684762376336736408136077250262185517908652218774065113757429452448356776383401269410862897628995496159460985065845800713949206712121634231810262291926090561729577419262211586418205703681394870993478230898159432673384081861341920910177635862296305001489059922298247463146265326930017212869739941050415996766673283138300742283254489925268254076310809023431408469922822656803206228960876045354185453658130450458490728477326480867383014440965851015545270725714353475291733013469824633446675207253934736862027772237482627774855650198895850192899820433843145145732497148028973556097349746589577826514397792010628281206614730591438281465794870786112808411766655721559067354619367798893163871557283452483569783020118724586882853410983184869559058260795828974841155178906854988807412853839274190033749573828875231867223332455461112284823852710773730613178583875363258355706218542121772092423099871341062304284424129549978741719757434319139716728928469029137902461967821862824598528841857898552591970581994206281044677597716001640026115989360524999021959570662931238292815106486634603791197828760017055226495293294957825227434804133393657334508045775914041333614323563956332524722978264538849324830282299359517996054683642825723985182456588055867687417025516352794575206594821990924064314992784766730068450482695666349427713902765037968327991355101518520631277265748286167105316293660023146866234592309544714984296867466550799941647865710842194697643689948648584747227495900569437705553267625858254690199210229820184081402209673796410347998553843324036149212961798240639609616466871352490708033407488032450697076587297221411249816523072414474775723681773242548825552481682939345035424460255491679317576525804206826818900362657798092457241958002695235288183150634791259633069576848384664060837156990093443344862173718226987370532534357362326087224217904785186747776271059033272479651137133645126205998988112434005825664918795636752382716235341536023408893361534184443936355948384160225374664020705895064693242268394251180577400409065324632651372198257786599620151481725300610411015115518906046968553117370351078655473556329966117001993959199744889511568146982473430575489140648242980325752058938185559233746321179514518443483188877878388258699454949526967436745657462530261280701591915942933373521395644584728815551042915545118075380490943099175253121445552927615120306798167058183892029657639684436482939422229125337337466005632675719561361235588719460316851362397503939239089319308216283976321067962617703473543879357521873492214527123547202488377550833700219384058557850314257198774979894238259897915054223676925048995698568156712811898486257193630553384479057814734070622916666092670840177888257682467991245659891717399791439267164013427625431125939170680174949724476825115363387708903203124222017951081994595054983646645096648663064354060266417372468088238772504081789679611641202895405673419989333080234332780403284691049396438951641555164056813459408893583760067119392811022812472426380767443942823237400018544153737543339032121967389022677347565607305534263367145855029027101951178542671419990587412629316121113875283325440956957139744424618839056728863894511964519803166561405016933517885731450589567409691269744599977199313302064123000428440142000659974219779036510536021603212160357373646328852023434911141710137291629455111778618917525514304769960929143132245747032720828884324365655940609277093360627005972833134198238202718267865844078277432109893917516628913350689689628613667959057599105463120847479302526906411947466634875208274797556221766040516479948306863201358536812066939480183384961239846924037459367381747186184468975580417649356136351772327124380937583940698891169741905035436858545966230064962501982995734564972050988032980547293818053384249643759644020750725849993827364108811004220851728062368254065787819609962069576061817504699854464145338152619053487525941181995194434226380496681331714757829528462509245034783212148233232601269704208781400631111467576697020548226757000365413929313813124723735550252877838737172765041141202930835403609077690724605769203973903242145641383268871747378310715268304302673920563848880745610206169950449364332660796742518169963861472717741248594653431047933726555694968671806188927928172424665839717095314695427124817595937341187893406327828505605989761667914875129783293650153109986390762201342823703918793162132348992213824743409565366201674257888466946897015875839671664973178007674125866834318420703906962635538733692825953374962631930705706334605289160090359568179071054916624367579793838410742005588719462005320841044433216950281629446789895313417139022133221921405451165142509817601465100722725826798522067817739743035661111577314977379597286724310235241548857907601284106131840506689364462386503933500931904645432126091853428354329480971481338283972544213291989915034163003068176499363601535766165732980543597896231596263665946029775697405977129851510234790672946307470475631396389624487045299799922666532754969837339364904784050780088468910923045996066679583064188597968193504954656865508180022073474701790188055421338970116884956288294425832931130259180969505749250404789944084568575119900013070127228279424738366374434181208421605214778665272116508015385084718764083077155423460496837129113589497227505437917121809186898205423763365836696395316816136308712910310085794227059357010892865475928726812567716978276714127914377026127965181984338611388079627753909848922063698223915971276262789915398721883854540383611907151518342873304795393458296712046223842578894664276116503925281651090764525865975475057701836446888287374824166410439438614079919872456295897306892034280264340215313301018000020943276148860942568467245149713491510853148383843330263508955465507402999765347927548262325025654635733888971038697619758505772336972398093746640524793114919675497999751181558484410769710101430724389705529838022852074693049737557617949803934172546821397444657968080133476936080828535064272418589663543593422586368569003041768040098519314714297678342605001787263338879326640940515115882172822750413630832620450731252131990355298998989912461744316859435562413021175175313132743853786486632650382993185606030395871632210269239478536315554078932046947903692565516047283245459633329309608023370596370152233676755031583482172767948374312114851912026323472878224946139460756659237996893395527160733619859630550221032431956044012333632227049908140224466960242350657840182101726121987998263482098946428916523002240510688592667988201374956816773076925578886903442840958189262016050290599436516395476407466588970770104232107687611094833249594730321672741586126316886197412914312937333425947158078572500837893029526414923900431084098601555659855342920146213624790622261417378587921152970567187138155493281687699851899451783310958774707308867293697705969261716591266817538399554682653277883297447707237190354629145973089275385554496210458142305258390180645616981510136045446708098625271832217004800656789075031522180499361276233938558348922629856234195921583982709103823344137270431534682241599812174063494316536752381646720913544151709089612485559713567972857725451445794365306408276701848676915070775175071790849955909292755968056923524297710822856072244236089715442132515434963150094353602041759700107887700468926519407051105286957704942821273772641439554459150168050203745876550030662776755397866965485060797652301039348907915972361526133768842774743061034704591607431770138821404488004154066279953361879130418079669185571211187838381688282829708908105404426039934326143370547862706300308176734494543848636106885688526284071223473343986524467007780470657310070348287021456281004832313739569123308134268440538147573756094063543399864484369279801568124991483236394654165081931402679052103421512018210295800908876565289365527292536886264275530350047026028822024156987846684553138538148395578466133970202465177491130775558751232946586980058886917687723664874884234806358846964183380428371852974524850910485597959519393806932632414544954769262011950309965227932260545499742574824459428774026936353968879301866609443766879456786143212456539817412037379280369246741694042385782095823853999866122975081723366880694508718366235268479281965212047619559318138868492717234467754158948268926737660929583812257974307959632567485214145985513266453322423494347783780434013546196697393443928818817638592519624244363311838156530584754895422182242622978392008054944503783772493870135375069137816852375419985514887978743756321784508054103039614467156332590623537620295199444066946836333997869769998141286314348874743347714383108747818791071738490619559505477687158707314635899708739363419734004676812691235578066235032678411784822909467116985832527887132576961862577819421157436094022214634903465485072297886627177428664444634435067974092989422579473710681526140127196450045322263609760183491296282197648471944270605583375534253065869792373751770628193988580122360331470197052375179088432253783702095608589040523214170294024193130428097075867976592029294999337630937933467780262564976806434853437486214611396347658975751731811011468150022152881165527518648540920344368154153567223237208436266837748697066633712488474107944635472495735063854150513170751642560949173896184341677410427228341645183616230470310668910333030218499203496156961196039738461369222117675197142166224468068642613084605119969965171722466871865506967780560208437699783006988518566440314878078647419985282121824435896607724778724664360758193880618278500289210154326718573443468656241806704812022768671671726397484565359257944678553646849353542586162905213170392722860683523349969000872086809203368711644022336638790015241580451907912408809758873869414537965770340170200159417491613725497638719224070351914846370265076490503294747870913529570255961338395470061661820028263426310960441178788062224643538171072177271542918156127106472376514162205893350758026392255063323804332533991945481742721027307028317742642718565020308554535801722071521070939747651271741560669436305492636849123395080772963265467497884978355275161436455795082495880935955574784953126489295140578413814236786435155880742201360606210016650080772546412727737633064649847085791381360390102358156832562466260475562682502379289187988219624068361564781636731893871593523810110294132976236657794796821743299627393415213862590267758789283907881353637164692510606517497848002020415199366892854555180825127950225805852895600745512413472299369699766016815611618863918028487418451424620848914681435056359833443024168481473505640779694078065519712629326556918977016341185557275269754270168647037659690401946660338629466675816673851457286979069550651484551114677359306570341314955029791134276491919456774827428434798601766732842529139921594146578742374463703505279171498215362387854274886126356225040189583608217156716736189061595628690195792542294187065906381250299492651209502578694037558078070514026007627679898954713226134616255328699328947817920834055869884054073942780568361945738894312667827600415360825015124687939764311847614694191793313215422179673065787670005093427336668760520818526842734958465667255540046249683249903731230445579558923796095412303663792466161384080202787965915074637600007392894203120468439972740904217776655841643105413965446643783903049723954388115223512968005190864545426651455938637286281696176673067868152287490931367317551615964056597472877962415703710404290401117720913309620693314139045423089735345797626455358099380620953888042387629547599750509613115289705971330838830984626734848998430015565616014993499482331680387900562239052464089216432791384871872534183769854892712127137561226863846926969169765192312714663988496096831043408199433174008805844974002793529553987969125450851879535008706152389924367754817849847024449093220027662357312119506048813999853064189436785853696059125883223848557989796646140576388735483890998550574597456678047433969211284724135464657758504154312088509167845742788489930916275822915586309212334439705080101950877691458395676327525389470974900041747358261825218861820988531904744676129748096093770554344748168185889294918435352280891072595185626366931161570660919153592371954704706566214094116386882234022046566932431555081070047731181635007781157364423326554114453583826170400562259069465474440855356596098123141971421995112528861596620498666917466053799265712852151296999797589214782523086809066958858437124753789165442343394754691526946005533902940386942495976873458855203042972975183341736715679157553691384939911180163266230982027280423977494582329030387129655025110154402937227258880337154658329986386975140731894769433552727435370857913893804678153732677125539232296046475052079145168005729820048107801966943909938075222950374531880567316352257535986652875858427310823701203015054559428533378998812899251700494011494002233178749126483148048398515034579105199074164961542628159905042124704436060338208720024382128630260968450612962908149992509312893806324324309897765178514271761023374519896806039663180817227095289992756334933499272419612804498896907401522256042070843506750040655817246007505883658970358122685114549352241726189423014784504357767989931952860130619258605400604852235142738328385069745587395015060971752998772319888972417967782762588557595982509430849960911767364384289124535658860047091577115090284333654592529547463026349408881682386083192254798900227109993091537878042185636829192949176412542031351630295745487582356289614059328413413990045613595644059594456738499532787603230294321249349855224102649447788250276273167708966106516577136454124975032950380352326866002714795311591684620465544505455976129688401992835444613044478948231716541158689192214395732449359406275873136357984536467206921612738377158588186601573673483770030931635794924616873053963235061401086666869081524165483730461315353024212524642906720286685524585419203544565922045083999094239793577589700237592053927875123996462036254058743732189029078988469920577348142030293795769322540256712512736510649536490997422767744170582938245488253015797430872272424532229247167640458962675415641082726165781987007192182988206442044490167782505924100177561392847388978520495855134788075738233314270626937997033447044662275474134821847959049572184854300567081651420384283112256688297020179875687036590329965906449967378046285218605007333401727333554650833584994079803163037210595520822203943893585380884966205799268540308334457766706053149094492598159177416843172036447189783056674718831987193288916534185987552579156202720565948825216147069751754335251574953778227978737320814992752439201561615674241360335630832323755365552653772166191177185973171763900477874551730832901986766300714588100745998315356455467687724580429113721268847155675499113094616060438308775465396168753521763286502984771360554762164895015455414445781818942717819406666604644441746583465127744521045501652340831563609577641694063410185002706682653344507694436027592062897386417504625205550809207901341463174308812600049318460206088809527143924115435422697796342379389866041612889812709893455904461807232055858763182739966518948080168644606986973772155913983939684980175837370847037628866756767316755774115192483076941427842861610294378537769549854922507706305480544861391661492030685539779888562253607023584627071584658032187383033692217962189439635260242588176603240247826813890602679934993286102413823099684832343183643473039210395471887102256365204721382188736521139302422135316892842511830900221084005177062192672416181175170376531188902545599346285409944997300199241292672609048035570230251281391093708693759145925076031768117994067370488794787531054219504844647061808461710019080695153071161540704915854431708016854793840009572752737638823789233123876330062171941300094271396021758884398646497102544467147438495116085145225327365272294881127784133526512198085809574677158021385306619645932633582984060344095087864249241318394708594600491424024847416294391884406127846099368059651162872707285636206363670683609404075737107288312565107439939559458733434669479487239161235822222340021579041226107506921337269787135082657682280085939559353121427239418925235522287181485613361759709252010136427577365634679466592966239823104339637793662369149673828924185457829814945653331699136192308829921579653163867877960715983258363801661232622948986163326012945678004223108633273382880319342773452714951231252775017220667896797194928923368795753277785430408255402880756771188662597906189907317547811862739561996916657262125970966688839853623766098195321796563800773486071349931263971504635139976293245480670461340169388384977371068891643297054613372292997475355144423386150460997165109948924982550756289640861446075923578563868197664071397314004386282782013565755884629437626420710401240603910106946572480342929568621132743166367341553830775025811254311562928196408204063543470044999977217042904942101063847289982549962512147122650505983138006660290377359738099423114746572573280176725559414916699224456459868594841405920446589061495558377436684253866616251357289779722083043666731330416779017239249100599153451578864461941573127137928825804800354124776775453868789949291932935881565292105798019145104756696621101662302042141529921322025370048598325606922536569809279441357378542198652849155198347696514001024221177471681294544640369532763465219452568467090784234567725927449595253439698348688247696700015082667958677796040093811468066524768649922596397235913848742638879486451150856346322609895926156776090586192977046306240796982018507677123568133794258931185990151912246408218828786906309476909528962569089721073014120250057157990966393260668172357053180104956402334173825514466936741281292875722292220447343048412297714517490966104937294992677938772331819306470881930646104454981839846362892736124569614029127039623108629437888063728088797228901461379378961391873908364938085396639836155113659945767519820228155395630040286908943202851075717071212011525580062302571762366164134220315042959438734511922698061928114794535076246288075032386834075690439442550091861491665664971116810854952750558099626265245351852279104190023430217936985738556119074577942785928182766851718356959732485569879229998068212007260056582256829211134906579459063252129096253772208498077166432420901271646342384795086011127746417738642038844182014457105123156692029486565676649999204388353699295656773221307006118904161140650422280651552494771809849594166843821523996945107852477427243017655361850279277328567137876109874622799362630094695779024348069687554363840399362757612015011082506239738558482013395727289520829917684423205042036539664956947862077557818177686725354839307024800588260806432251463217064916407039383053924572927957859513670870091989499865818634783697445252158712231177814778122281220068081883239480378577133393651621345750056911032452676805150169944551653991754796707153059159533520232561489372505435710658909172550672302527591183347989031006441910675516410181265627165914506973745718016423004649930409707347264588816182363702010370924923486787430392785945310786437038252647952630185587790052782230257038183359575942516801369575981492731805027379005641902451705785480261583291214599583788209757617132061854169286035309715540051578222823271827458219109637070346290157855944524601906394428136523855785103111777039002885777309249659733013106185823376487748751485258432591057326576197253011398695623000709298806809056281682247182254911505755403321571412026874969356430470263557247165102326846612599219843918330509682584653134210894286014659078504054393321873431014994456710497285520710432601087210823775618540337485885501724157206054542727612837080072068600692313161824770914231696750704172846208225282978927468640261248595268428280921820167706725713577006057001694626339332103182012480654273599358570955958662323542573883083040521006569861668168684960366977020700608161937256946364748920616858658818337709410198615388667176019065601522384575531595864565350950901812494829442128370681113161171878533923691051193959846363888241751479126401167108677481684339321968424973836559527977582096419761629967842862428321705741613932228950208179027186618406376818912438868118617694493783922248334282224242402081192071073462035312682887831773070142596340795096584028889258472891035574041734944142901712780879689530387759877657591260229227440337767951934340868895377789631492702397874921003205869408703186331379476451765722704590916658021222679996226882327400371152885753838502351921961557490967139184509824760601973100620536204283989004973144913689868771648894739833198788198493350298328746182853374363733962990585152720216304790815198803518962061456697739122476319362195668633246832299124008210600744200827440120166589166417868642652892019325551783640154237940282059825673253321499661929603319721825990507054679768993585053101565719105919409840875356576726689586317741156012109445744830392653608601630790921478355495581591322109545072029536151092812945665622071967625368991207923708965842957901092173694531797889542285241824428600236885882978586947918408084539951501812131826982886759021142432191859490241682767993057311801022608617489468557465199965307796451009589539310959417887522734463928023146946437316819985389526344001037783726288404978225592896804895983079880304113879728681005303018824454351041600533621100825937164003001156689101688230422504212116141374074509207375253963925526455141510524122037069687496002231654722259062554271497469204308212738251648286064197167827434494667991995428909224979541291913743167253713712304750828809971898042750382918057888597823542703811772667180412880448515008312674762509551611161484378563279476515071862280166016267770756805935249411046285292967614980063263800879827648649267768381632929097249605763570325322214992424737375796164830219932208348335683337105449758621208311457542291245561276848036222513578211974554488797063524127470723958413524538738005883626515899608876722972158861183254827087495826672089092567262556031324918430095624342983824248182445600591899747213655163945462959498917180805702053890518908776656018054182838141174131540714725206769406432388249437870108053448152658483192512349792941341985468251584598175871627997433959247768526594925012751706626328222231926476346909740405156219243049441818882867432001988582994325839666201408838388043062920056152478361526304505271331471169031078600121000335952574200886668674782421820021869979121694661270405140998218078790373368050066542934206598313958975392118780654644826901770101412828732126952486193096362851986261054438652753452225512756259074939314692084942970874964442203304359630914982804949332849989097013800063333742820377745167342119153430041972072843739449089202073955976492919505887104731005054165693922932614750598327021893783220442974387420883621459795202781308621081650450481339772270712141042972506747762154161042897132875864976560322946211029969955234232105312374345646296410498676241143439694009008126622233539545040553468785342600415585436193042021363080572037859284504647248772605096255268010501604178293913689768115739397264845492171711604977689014537062338659252975626857487694740966035547654289709824460743745391843210508012069388800162849468785720935962573904344175890701093327173631757593216156949026972577962044171411279786552714938515698553998689953879684333681639436099386305595537167359019021097890297006243039114361403110698132003836399118328834685106054597576344799985434597063375292129077525338522361730423244792607471851344567157403651956258923813331291582864543571656362751349543705684572075176587605885000675073908859371372488904536564042860985950579991963017348618678409429461187659097752874640023370338866291579274674480803665798859718293795719880713800096583670096603775891948388548975390961220223328495396814723167347466509653142268006166181237446200058981248904432686068817717230224393858520720736806024792487199720888938843726219409237103887905487674586001121522633988013946088686366560516402398944603188096664031877906203648384333766572120883295777794387714756224668858301780697018843159827241947412446085332094315541724004033327063243016339489591319636102760696670514035102907927619512422975161939501210142091773258410402051685007483955365648538743092180972552308832667766805734294136913372426198787705632305961309193689007063144936183017060578254616495099434705357270347737875674359724900466500427523862040437812809245555410242115248817828862349491635514585691349346709969246168449744950293672641325608011200944675668393099515784490817450829724861509403567378664026614679882152669297901116121647329240623517129328421568848801916557075260393828510729977002642227523461102768484186032650486916310437408371380731321928861047150454737504409527033572458474391093022039268414272663188983449548499120054798158922109825015605806232861699202221068607565022623228291715739753082367827207008892721611170132981790277287216466067382738922557245471846353131107191914542220446656001464694470172190897801247316320849070284964621866669549034454045247620532307102486124752306405271584484919103202062916507778076675305157656235497995029801916055015141061959873040688584826067918103499498816351650572982645470774103402556247110845795023280940206747421111330145781413007923316377530736948380179310354524496709318848375156838927849327231849512020741387259760291786858172145631008889953422225010033328859472293146516533121940922247150987585647578140384887004639777248207064175930223377212012478229274797270631653091965734844129979995750596432144853426626067657199021990928284262618721190254164415767414312700577375567402919744196830885948043955011324148069357610260731262979199923752067943947485362750851567070616758619659957629965259143999109811820561657667248444365730753035818500747635321883641180855133412918394137063253640366350493456016632263988825219472027800424433029513317193997395924940094154446574612761430951852248513264637016909968327709395574769352409210118305968406083989067571114254139147477846194435085545736049643276539734778854113768754515657691121154061044677371484450581244607762891730244422910067278359779303363107927150935805199875952788472090461466571034711616602574481154736673065789112322293860801108732927628926401481421847783313592002535761307108844303206044895062859123982701348357855268339808634391392831435190373930043360359540139608459323211266387438432859330675574164192802915249077734633422060876265231433482727291124243093617307058184004691933603352767547323102467586390421701917852169453416981402424733434633575094258614508702841612177094744151656119203663773783226625282268468692320519320674053371921086432825410128127005668466405663902871374312893558305082369028958692583675096150897666271645588790192721538152040493127442961843194721926924951107521577637422817252113390154462088828021842246689000439558547154178487029509837113270816975144972946000036200054675039076900650800027176014875401294759374752445142878043980572502078288335960172368992619847849476067416719595435885543204048539848723091831298113198820174793171105712604534124159425490974527949347750287866875622352977761718470543470707761311349031355109476494793066970206944691973791906890529179580787616694509547347826173841853807927718576993606450083448588796950659844884769283323143936515150835682900742653956873007524170538907129542825208718133363968339329850743009691059077566431172877997138986241599406817746686499696929188386889212411760750497735711372798564108296999669678726417967833243566460163990725463636158731051529616408990660821020859753195627937576068341882670064505792064458660945618149327545890103408680399091768543367508383881336263969561371844135830207431633974509627364754024056851247791007474268550469538320987959178431277962615074097336904292191178693541691549998136871239538953839485726214399068451492707777351000765190884030592084173634060234063248438815197932504245141975533125186742411009879941014065621115503467754842986457308732360758581184475951893255678556943810124043679027134910063671931243724458394790922775568879254585011129579163091151951727177718315938186623170144088104472040694232540695252165138934612800851440172344707515703332276073640878376559099358325900202384966420617247084008537457567569769736363380104041226258232172072943659442787561846247834871220827531273350894294863765486196899837105419079234810656324709907830987849909306938072099857925934500397273592072327871850262699961495893342851228497575040163239459684496815473654526209895334167309469301756756673729030748187558939788092580216057162469827813446466491228709134309733738914309755153354846027302938446757645800889526949157191826377901927405606287838497368521219525538129797223920547538400411545678002748143854319476670986105952013504021359726290638604484939934820713778387938677792606952005004567436577755039836396868852326673282293449264357992253262551683965358023215459852253852233846211714003183185624359100622669462192994850529239168490811072636805957588297827004154371257745062593165169887027690847154951730368209820065126974948506727270119473592734977066985730818843279211045838654313936799532499568233110454781254653820851423671991333106506653478074982421523964066364739233531909267568670205445302298925892556981354508038898221743807800570972886692865599567090315840690223315450720924829632784271992835593923300334860554584260417865806372499850050458953781991257166692341230983557426275893924142054197954397714498379353936098768556516591033088266708198735974130266879052087653848155235014149419498496824309276771430604556977253592073828151944724934970759822914157325611832803163619464526366680921085491771977053052613600654872935772355292609629506684725768882149674101201570692169133468981955231562702729078865571017709937254126514655402361363875147560463683383963524369282728098356771921688978057806950413488953453275249146362450013521584951106492758858432019806011158545716857583297830633946853968359501870037487044562202163125746339996972990573711273324737385472962768560138355390816673854256337065854000482777774957892887247326104104360450869492858655785253681101557354921961590737966224135658420929793250665646038854531020456115480723921133766748683180401954743314004323261111057374057388023690338001258566851754695738976295060779311999492873103723794818856955992495167949706128849244155179490490761971265250800798326446763770427686769946840085261923571423705456076614586064238144313902726048338661715541997847854697469786932590825248194352355954583030771242825657625424426984993344327118045769060327120833391253681104941429016933419146571754571167977494784372699112353557962806003465192665573795951510963367683148967530913828023288666844306024975053780627466157168778462916519573488064538214153357096412783649127841995932018260626463855550145266679454965372461666396713273894002154903552282657246513629659819357662952725975356794363722751110292270447722675663687907131654473102217669922995808288546558276749539040779568515505626643128644154547316633991702363913359162963128773201439751157957952139945699147309911554314419009817900330564606319278277902499782769097772317010608199210179732785572272331804600012067144159864836867191769015955662884147325367608718841802216154777933006992183414736577097941847702831200320600571190619927193103007074966314378201591983974931288032867530138883455632743674800091567332249220915914322730145206423360653898037314237985976929926780803752472469934073070604190487608134317340713410254749891251748775202706064969718697775322841978878444040895308509098821729230232301958781204109466401024357666774851733724824309465232853161232769588959305199180659257619445732054146100518901187976676293455765643117033170788757576949201905294304939012054230456915180906327371876080090133143990538526370099735143958145129636820943469368570492593447498157233844618328631535360750410541122319612505198040476123548792566656039695910742611611154495142134036390207706015875284236979755835656973774432289970137865774439889353041123731056940526417765759882048132942331099090659171285791702694379023755545243287187384959261103035872969382753840046195623462745972795069957805903197250642960160534903511249054844067062686726533892003773239022401487023961193434890487268165352939765955160516838926856956477509421232976909308554415986836274914208430891720698947758650575751090602007596372143664431658288844932126520553616365974105814869507291882923846009391053356626630711422790245993633430890914833707522112530032414119594608810930859155518893771019064038884999714458936221184229808985832866878006356920044935251554414314078034574920704479391017719938381445989685297282017467059878458359713460528958389514977986421060900930341455668561020911569006668355244487996903304906594953263700418098104529736870757493915146765204065992815708345201770734373507603403805043360392411981442139272140434065901350989005947103760943529500421655558412950986570666123349577603722830091905333386265803618128906246801201357271900309841753049997950926122323457423994946929503669226025944062255897626950384755486621821003366188883650311625418674345993916092071538340186414251167990887137265920673874798904064070571053544554903675406398036069419316172382743244503170821762239275507461459661644621389051511954637190844329491236250421526658095212063731605506834542948272269443313905702208621177035506130571020031016281074073962059648511031304513858111901985705868425708343843866341637227848821965943086714616578855881780167192394566282702090591437157729982412133609080703969361047759327221201033426630627814861778083915601659150675504333907067301391112473416445106354003630506660373740333758519799131980045573907423296413531679693388209301681330276462530395933141349655975715325943460445615414384576000705606401443328818755053834237459265353594379516862764869211239711857548845315645035142281976919584145927302058527095742553043575277796406333991849381660435428134369883502058957836080308100324781414811191102511029637403382045997972714146482412749242789784706719071668372677282031002679003574728490580254897593746374751436866554270344335752029951731503913186539416113397573609071166153968266918680791098856056925468258498571786474879004398955827197823076903432878566550809791272564032446038388272813559860449531986401768107634832859913831562216979459708268624800198452851428733697272384691238547129739835596159903441160046244424015121366495393310452543669848962144618668351591653082853571106328613976878403503850991416148398333281008931436228411922298571379005880282783778501352817484716161981745674439146634929670724132842051187577518897773227283768960662758935475769083231051698921955942979110676172442158987718217608132936534673498762221034207435311866067198581449160980903721274842199710782643071874770414767050101759892747568523020684635546790456991172734883486951658196725041206980674393170805891459280512782269862770535879462646198027937200822234512760062492788730306953425508788620680454916765086177797420417832414625961175125369162287095738847271022805624313018454429243682869081898631028645007935855124462998806765784761447241389729015655375214137148097106107187913006028866192711772506894406630038030944008689273255394068236794465833659071338779084626799514875985753008203581993767182068851250129185858181732074877777211119639291570733272910550282227421711438283025969963088222302190764275532658275356448568584989901260070654600127523247427418737362941928695113001571074359962651049130923290151643501304519152676875860623921142618594700162980444791238265396018563335527390428824963327289417297572635813877858401409937098464747186702559085001415956794654799850961899060765852159219853067078929385568073236877881587913474728260865872164023413589223980860326084591723808786990998145305727197631294533808525855922394894258596039053767755451235678665301388991253037911806183667236787064133441641478188080258287197005386789018213177646720835745099668329363243719117327027655703981829456806203591838936369586264187856859342760096567068449805208314909649119029340549937445924425477314342908333720091092751938593757381306201568292442999803257008412629572464050390899974451474269180855904425419858278790482609711764523158311162417103643968906281557277481038744031727247497964387841389085784171042378938754266662179950233527448739211480128623790536203228602703370997797001705134919480337644770946280782932801355122240584953587241150833764278853482809756122850266614889047426638144590844362222437098400231745229678769962416515186680459853814477828735128049151309021757948577801645853793813070913788491246393589581528004507235307031093875926231954083189545285714724253381455603675908752661340779948729340065511758559115115604570981223139592592148436848385116644678027240998931383839641625645999445168852221274143470148459069250826494527127670231561956148169495452839696263534003682350055840856637131017166388631494310333786407638905168199490045403834257209756489940471792994250252622680049645643185704442316161407831503663056677275138580549461897150253854162963978447302560781039229743154903585832117155969930066526075937493533673190986939616100800724312325955984946254241855215871313956642988467671813034057587088811186846042316831358664408665139116664340312927285968069202394875754853956296615402797494282791965584920733784612005729757399505840697632613029956068484315331115612113702643245828862573150586429823640302816287342339318498964474994227891422812133201832681468992434942786712224738768249046668559002666819143703154894786885079392835419692508304215406667855706349406228607115246620649286438230720943683734438449723835985542405677461147502755144248145863429542502608731166013226871003442932914266020222558883527575193100509379241049341153974721562949646678092386819841099141305347092599666100916313472703238222976542538226656837584072669156060694935025579483567332508722458405886121924524820008124217228234686532441403886328730164260251111627817221722764439217743041172213566999107345683279103972084216801739430883025830206689905378586767720786182445859808495460791982014626927012503799540406974017651062036523658668198306367960614035976774845879204725731437036171258409275960318322380231093704244624502176842526940360358820377397125826541273649443510360677971049147157708066512275770575252736113374569727627781740624787455977040035163357287789532871703409509298111830138282740907956770031560562179752555965234530253468901886234640789022316674578042616588802988698012597366475073760668424261780106699694823143912943909027806541204887295471111922866403114050358278938556761904908637971920065336776503081300518225483242752179159412572753952433804250632517175185089317085126896756312792730444720182190806117317848657656638297471953188904698577271611853532878591629396171339285559884239996708219129842077874532613689764322017497999235004041741067798440734093757177591123564050272817473429457430436654249501219003109927617015982836224692326592190820750804223611252186725573073411810753233350722474893511690586094940437272764101261767284234039502544529510004478419031197591285106105835888531595514743839412532509815724690191254920621218800102253802357903929056289572784038707889940796329037131442898995942872040094110883419862228955928353904175291516603990655573472539051976941038772809857735506336909746208726419455240568613527958026158141830098728956616470185483850958542704966934863350283362774383656644458435184149863077255287101719656849021636202636611190139976454848927712322446309113595261372094343321676990714653724567296738173506992346254501979352390910783181488724500904851997716378842034044330657764308627544375749395243593882449446137287919763562221923098015089306548765511727855812716113619016166921971383610908332064130559355235823566821901713311456092873599954861602610154829025809465890639456227659049556632692823330334813726519989756395126769792553616713713446975107618231046011775867989142465021490400108728976910259596964031359056219077048459833112430479587002194630304954397566304650280169046891139687325857902486765985491261858936639905455325669772155886889090100971858438026559587332357112938047844078500299945021118522350385983165857968047018415115061148457469176886823086808303049980408156416859992464059398261494799758703878090652534317866174667481895659705450557654986942637237709035990334792618047599448232858083660878737125698481607224439020336973203853341808760963909380256743719804518398949654711040303387173611580870014904121285690540275675277576590432713274539931977147368253659134479848683022027010981846215486123054703448245609651301653830380413008265447532503907806248721406534919134934465862631222004509419611885520060350264788051971876513363930399293152443115795355471516022941531785018779766292144257266360305135679084788434009315490073052913842814873109753390100081875713708885948739457954136018112668681512328134213764202128530347959567766774255122973262140098506772398593950110264140283046208378891305879363950339512787105351310756208547288124308083200227261508469147563876052174151313696342318014793916978953683925987552072512106450847700210066132924079566010302368456949406185988054210217924457344308344787751729269172145814946149192317242428155933376186670027332893964194433958741504916287666699578211088478952242536754104527897978318295416320076965737889764329076916501400283242248742076960796899678886866890968988916728622887234465894875873501316590366812900155389529035728127501174817516499153365503109986578221560724013926960756591168584897852873964356503848698445911549323446845445079008031260529072811426665539033287537836736383870319825849304128737079344088053058129478265651820067476989802152160574547289974710876144913952947119979576858451115623709041150794208952976293978183418362330189393868824302247077518680158952205537508364882548253427814557729744232786242334059180175273794090563333682620561414171575372094481526348235795898176163775198717647735922809648024428939608608029495989672922127124762100668804586501140438113800887601915203351698063136167213385535414043112096375853381795949705170633295141641555404976071773265234369031170370981397157145562712357253763359398142309344424847170676099197464404853336852611976016344202039453755917715571063718246292349724934889846764589376633855521201881367655563769543637716025745669707994804834853181480347204754060488460281344219528806348861585895211653039198674805436509493249998960621508985482184704354420771091090766284627648456727194938406354230800165564015648133142642577648779383162251430158253160464581464212710282884693867242789039846040823832433782397499079047715369054819005647676821564345569622025514016141354264220446700172685487603471166341964984864008960747505475231808759150868768766927673278239935858368743105649225814708825367110013790384156023269430845450826555033027833852344519111121704580173031785824282102454509877170522531983773456538461509682483101571568815655932026514172173504534457075105791536603261740837340626935209915795377755330666751252273858493720514008873223089450824757206328465040087326645970387828727433108926748602500511380664861859559805446199175115639194649178006038781292649351555174553506568121150646889060982346712693688402128858252716800360573461964556916453029296173886201227576554576304569406605164133164188398834403577346911442797271729192039248562940545996851050980240833148123300547750778524550543286272220762968866250717244024581261232549538869464425499666894396398673954683087392318809864430944583544447031729974871590623557213983998519264155085148435710663279307222076494700065232407040758384395864092834077068450370911095640134970660627778028559818089173605496603779100316454812438102498238325682231380809336342453185354513658170517943057820700805527916794768914373423260768374135714990259198672667213470776552494866184472783228211043043922706727167621290834772606189027479327106824311946342149438529405537390316326778923906983991189882789851160785443617626542933017557001174288218001954787764316827142068769263729173520129418048191248068301762827993469955653038250137324404797368599229002155683564553453287715150100881664211028623295219364528202560662498564429746353894892817451659162713428412257474230576379349588102712724447301265475333023267532865587999880769871375910844262987444630980976592572629241199287359094529995598895061121034364137704787915404339930429279599852805297175873796174700169335663322737806069676176136687003856061627172736585213940352141481603544099201008998193852992260694780434781900499109833748489555330446762388338635047632146209189200822726593370268943548893342127543256415853598104857333182652496081161115018136808262409963996950756106160609837809120967332099015088391473977717582031167808349842480592351194242066869034682166368180286123644819986385548392094490230044762808642411261328427081501721082108915665092998345083422603316556006971201902163012371771976609282190025677118922304267153268983181147585057416112687315469673604572718326704368965732496420719577148513147271291102006591743130901957411499247396941835422622547370568575630084195990806386134800720195176628803663963244387509376162711256418945959919411425410602049887410522995988603642188134128208473421784634012911376110388439647575795729332402294139403151632346953861077665609501715901607495210852393511638006930096762411536045407821281654367482442803162867981175722507639611429623474145152365533314044329570256950385428399275962057713227458614162676999589559283462737221237742057797686531928874221343396894293612706425821945860473496109890439111537366536182427325022182938082189641399665696465577564451357579169693758730544678246749905108672731339360530980436248714861778409187670956825946906987645273085893056727562457043445002035024293966583837083607557218567551760918520421235236194121404083738881493092181124038285198312193640717296660802774415262189561854132259554294734540928592437408093132627789868535606123217132090727277388210445798567906702540306657519163565208956100884941309930685351033969490675456188538437415477995250566188942193150887867697288752665375533985863664877550413661144475372486775597231007507870112599392808586350275351203708271656500408842300827231550930053304010096228578404901399156253804339030013011164294955365887232227831846282993017794697083737588547088795391213463534740337416875444527681041268790499812823932022541133330729346910740384453864175553104646996039086851017545843058550320898165739045917104075273948059268279982493169322976568838956209589010716342144323853727044567369485448156747951547598859033842473235936100080402998274275079283696569736775343644980876676722574329302784117265223444837932334020745643140927876334439735217436137155728678374078731516316555191949452702972471485051245118287021328467624673181691082374285538768192321535973342552377598567388537830009906071650551302401993847357857125169513323043771381450399892208059394604285330363331590415092865696906788594274373603749319856090016841879678485084711390768971581906316393366739088387802478479256258029879817647231542277425070704547011652704228746580524472953285362678417333365657692329032572049905282436056694766505278949737023683466664136095162825987696654045169463104001577477894819499402254061100584880269085860096887195597959243021886990712620254312725061116311024728932891807787200661453524616314200242844871427415729778811481382239131977987161656128242870856416759718046127652223991624858578386865369114445595338073975370360102582234568190310792184851287981749701528307159919323222654872183252114931053134241975878320367735993373030136630224620009220814927939132828786899764093418782623757167407691421785579678914195517626666514337017425522391364619560565717279592744877858493411556726840318408475993994236062699731417381290234514862105817166085994232651244809846916012768439084743135587530304773468520982255950861818902866414774665851675898574639733819609180058126505902189939555980275843196562378402271924841208583873239926318247161356031097423541589876648217850328063021319832944701445873486898978612253286774792116139885823571767946305844188830119900609325439452552833619306831062535717239906462660218984647936522049744659368568955834039016090431577474112297777396941412968108026901315161893442030864490248672442157765554212312623148967448433700421925019572134606716384628229925253821924402110506109616001675400918169205656940142502100032038809713556877089843187782141379081562579132777987270794726843736939718399725667633416133568867784934045171703883073264081340577395871474945292688281440143465618344441380335344446922260788784827817227032516100733474761207578823618233583962533915177809210326801245871634009842821659622551021284049235882124648414565887955201133716809667698125701695253965784475423247374290433979943022649804027603551654225859005519118173215783991651131306035566816047211198173669362552372004391172621641188781767063308810393996330885472982197328468439450833529305233426139913786965181815372265063398650183567700595836213873643140686550453631599764922706795207276343014365631847406706748348744290987420913859999175353645379916123203676441113318383760813401087105070433710948576527105105986449750775104894661933429552917299071093814526450515955577050392441668094334365506226591516544018422866595573667005547922696929998382244984129237248933420848908863321115465612585390866907275602774847903182164599332157910524245579535158206260112587517526484245161072473221208246985276470717771593681999329268003982676274944520965348964849660790020197387111899062720229646053345080714770386994817594843734234862397933982510629528190889269709057404167711896876886501939117019914507101309998904481434352971319073245934050149455905846810127254186878314980881087867966540635356804060861083232175698493812624998420974624216723513602954259090739330298254145651398128042283096297230629882328568147187907512746042059921206004506863366958028909142359013195552209797253046979102223617246387894324171400277347318634146650011398263505799083162768680007804024049361809667844097935101837773119080114154586470728121436356740939117983507600032176080280532899099508017295230718821126554213338065149891420335565277745271472699018653595796699109161752046715552373119051192789132638636783938202849901352095211757530819412726427031743415332957141860445556171766911312233057197673851260687909885936595318075281622479751826503763999089480589718445771509852175680808168666536378727204833252321685957084862562902474846148846684860864785245326418989235237846404220549845558475459569858264462830657201321402923103088501653618419273952366904445188291925663818934113119502718128693304955865540389725624513920185739074144341310571858306512929420195834837680478318473625755441577637756089194459323580236701692001933303469164885808231447343053106719674492233524480368517690088073920203522079597007344118913627383065559501794646338436305201919101227567932915203876732848714657944583370313653875570336951366383593934467578385168251066435702944517893531625144858953614619943084951826531565424716182961912918143902389657211694499671356986266816312846832248708461741431151008841576255982682318029625016686043075532760718435403680231490657601094513967197814061504181315182819527660438582650726382649622587410249087752251349098752995485703376526553839526081784769692258690333205481574344285015584875272468596837750926814580567677970284063760383928274528017789091667247177436479286264627421574886138055389228207524260519934161724121490070090685473950711029584673425516321295819886899416025355549201670464181616411255123815413522673310139859986370645037589677054616711142575445263192521640623197358603980799546874279419964473957122538980327316399016001414047769715021638817350987340326029902149110784272011100988731246362513451229804790461084293334664304988210020163834657394126239492543189835025229577646341118206241451364622702137236698451386643588643594666173711652602215787925875226106046311362980916510589001921817875613491051166826366348796079991851957103402425822307967949860587656766473290635982621929921207387468182223095292719107642427935225698254099325733110979913706232156464400597867281978107320723491662765023614446447149230493588299253243337773179743578566212052125617476324237239524882314140692579682602305436306283374930938229661204287078739531918881286289818213608319821281164642111880060822485592922056788067872308166333692716535259329948202916325292541379205314755848379196075745052977616394661811340214486734985954790868175167867052616282959339780497806615244943835621453113607671944182553964074761341713496556786073577065641613034178867759938712548290667220618418587806269794189620182102040118955219655227135922107431313758097672657268900168265142487159912340608673419040993497383954860245041891553902932053770625870192771138769588205472575493401606145971112969985448526566137874308575567161639257089109351026035114244858808333019123112241903574130556982338334528258260947192471050748138208903594976636984058743225964152824880026367246746038867581206405430733298349527086212454274885078636418403578563655031683715570768521267601971132028405748130721210282072390681849884486438416131749621044290736272075755072719520790727416942170563890155784883517976631193722765195762056672162406737941489604837716415668664418116368000166454262003909745365029831463683934132685877604266953496179968041543720771473901757811854758486195312192018672333537851396042850591126603768001188319449108490140245012768545883611225760144862358036296594802507788472413170408159271033766686004250991586240064583397513573658195351727795580899019401315238740132444309822662489770874182627779456274457929657998010308461499573884007749728880071235589413903498731262425386488289587871648661553284880613804072851609944929592264253565524706769619230236480356762281480372942667936391628507682582847583320185741750724588394184822490372028922166702466038554639828590210928732305331486008079573959677802926421351873100282615625158387920168402264916110096251374636683158363833450374663285819535774105277839341015817250451165335833668865951092948742530674189648092625801258922164313021329180196197630630307899472666087934125367624292459740122129753408777588180576520446927098993168036547524806680599164999684852786194502805369484632380306469534864307688524787286449020818551533909826271994475727200085638895116947468906923369666712587629993568761883191462720695566041702996144795335521954844692863623385100300410259357404127795944409789109216491542878907764679680400896251895891532379358498932091457211169739336500881479330592252982432271279498786059497933354299480107235742699408520529705051911714844103407556897105255451439871500493206902169216540790688014478137901674116074409672155689383359848200539780252442040933305777952193139784282319942569751245095938632208716902691281038174626926614923356026619879904336412842909992961284025033967262581847157798792790397440224010420529237083301585824185877840129635595050993140859433217312030083802241711245221793251958587715131228369352092635640956686900076478573129382565795045367546148239875480976204464348465413418966896569862386620416701424464956418217707729296540091662891456929556976917669314455082079489131273739065118009691891872501044592573256535281617814707754889288954557460645105009893513139405934397953264330909428006206087602585553733666359041399848260416343564826835392862911219455103994177958283487880812111149719850444393039203293545997707116845160943539820431351500299483585022665275454863065083807638913852106425038597199396889185970804515965216386597599647428042458587111847849772307414343600127336289918328854420839180861987828401814038705315675709985978361521094950382493314186659637993467277688556776454323392883436942963776678258731154547022268199827940020165821315992241538171923707186339470290158588154230340686796788553386713544851590073104780887264260958977734717109526577668808978282618000002677100081382932957217550386055214970361939386349998461608250616378584407213083497962281997323761042411981636747934033027591489119693130784417320642450993576401034675446706244296468531765716116840995968390668979974626179483992528262316251608432332531279844514131031947781591490787468940213169874908652210805798417563725921626500417829377723468512817503461086483169429982815828819856161288162749249313732959481367371206129450533239176564254454432515146688444205823820532055423062255051685472974288064953260832641629416988906675198072017139543339457846289356213459823778603135677439523054616144076264781448254558616534769797598245499956876282650617301023351213006804153728623608155613910699633733291061826518299506604854867554361832005735862119593236257737427880696698949045113664589769760240315534856875504806700800191238104278713695951837495236015426486983752830354600910451216782794004552926609156896356410259469022453759401348520843278241147873485309706955545928233485388903096118252378306620073735988408665647877609669208965561946830447295742704172428919562209597918425154175439995230690338463871979366949570411171774023657358612076574869508423264608498905603486322655340536458905494015575514852970601528172116420019820333779307132665485721306035016816624467377222270595727802302243813797473413411286467472033111348071344695621503404929834246336630256764159518085036235468207389239758775233677626226642168430287390479748167133959132786050207346461506895933474848887872377293801374801047982111372985724710790513105386899925541489896566621695928426563038116522529424442751450838882898643747477505303509785807837258316183501450993673389295968881642362651570269924410370927359898701059673429836989290183723975078299088588519329252167300531627711973773709005875973383739200868968848030054593833001282422396269884598573301093320546729124230702232517221045782678693894786479980257194129015889475376520523039498926065873851057361059147648162591154340348811625788136882817802618650574694030338776751223212080006793113128181177684662005748526317739558094380015836266920610277017657563437396672191052061301541218691627078253326860524077637482076491148491458309060609106274335163824733075087980733363807605803124745002394241063600080146440924718654590061973354526101135699078989519865788752927709838018998199276879530986409741994500495025376894038314688631980580426505737228529984431248158010923256080494519280355561747855099254500435497990829240513910552263983891199529653428477894782982551708375771182662610396213174549294993006856912696202001073164362892676410969148268580810796973838117479501861718638201637718286128840364779377439868070371368931197707302284914663669829077933282378700225419085040968378196522976199459142860728737576312508970656986400677422109270992867882920418761928430676556755098579745110119021758306460752460690834494315353706688394458502564401144318531729057667101100671866538552238606538451496570599425884403176451588952608917117838089774812096770538308986888113120477051503342279279933025717458510291033459376062927061031833377814022137381079142719589115370631136933590719180425021645869925857292895878717119684417741349872168361798756176338972232395302445533831348623060759037697793212313338782089195269671039827646834925185199154257314951188724344940801535378440498744902475097626110692215195014435454622389570904992293528123658868452056537339199692022590205652920063211753971506917940435218072869133441529504030200532846209642023023762573718593215884453216720413026885083179298941595680600452236335624076531584173711934566007622707862012491013754703546760447256830022872209457790102271967088143773125911472064896315294271450092153118257904349574935708031416475355234905778062107138973178811922441588327140573196645588570311437366720401449690466380222130785551107398002437213726025785915493586976515881352047185209679166573684346864671742665327609570538444696441980111601858645483681306925531555698999046532304099806934897018876474087705550627078456261468760126496811108529238645341613764822101076428946642065485551571031479825437620025990771097988978882037739298706258445012122161261736289225314105291902138635693964040523563025404864566086294892798494633533753449799746715094788275988935667407410456814420819468235324141535670747590454856077082025099126085906716717933257079790836673916865461557593908528919617314469966631836772788735962501816855219657563982590004507445486233097602818738677513818948334199090829928274563850228901621668613304881299680424986517077058795193278975285937964147349276218154553605336569832108633708824232755463354676437706575781798321995077093723289275734740959393396944354998128926371101854888475727991969992363944271983374368188024149720371614293009971643116096673634504167354690862205261189832468440135569304245898058013945852051114650411244416382115794667673731489172732706682264263249741829552957158188060664495214369257826548458156622347787999878134454645561645490835590159412563793724511519688133830427102772138411326750895375016871026738139834911390510212669742357251001310962912367406034475944749511152098214409907019675794714465526979528676358621429690979006659142222220119950466507976087670867335489526596590085538906934396022454042406476102004782300547762983292445810283609705516388115122470335349645108496206997954483093665895618107747186598380801280042410212726781526059672161881853262195446678426245232136343886277068237043618967914951453372697636008086300691436770495293418537434392203139356609975202197414374677057040764490471876377431208722806191617845848483835507585175616661372166726177392170082735698521574967763952868198178664757207351067944987125106515634898734991139670571336661950039103783699988908101599044001368834427067012035152922844911581872924915564753067748544103629554459891703255648479567967565877774613308673449337976060234802988081159126776517797595227432304023160296119387896218429131737864379433777343209257971422435053057346846418742756789852101283556058627418152271444613690563780570221530310231724853605388946387127274027899122782197683758405365976524888950292217225832542147360262525087493325400440852703172878739325149703015110288857068265845325068677880060754860254954893743985239070117307191073625980068980531936425469605858197979824235815938407878959950811697631814373554489952260500223854711531818654604303009677544479268537908039485270946060524224239899766041917685424933568130511708280636880050466737958213518761113974559338287587253098278001054701429862362513327000441269005896823130704901994055877087442097255775888907214579511731810438479774608957446749655041784912990980615535532977614783628718088522677119941556793292370766934769076573649873591611901675373464444051189216920523336315399824762770224356832441139226113483679030357210036548443936143976923320741565860218992187093665294749442706878926305937136816022731470045043337887171885088560043575685535159178207743192931724185501474041024788599860641965048473484275850582801018147321135476937196102219454009691814034083751004434350272656974586834005818208832481643816603513761902807280731992296329510110665430697929428619609057754889260989103837160101242328656254351208900345318527736693631913989719050661152308895808423889168352058929053924365256281740839112363908538893046532141499684448576551073587108564889875655328891226839014749654000980122116510108395915236295268463497149253780962391778294319179497658755832852171424989253160505711217639030963605873219695295975279658658423020599736601140663267438086976983694558317915535469555093090976916864880940830016196361740785065912350146581314804650103503482635525976263095132202986104510417217068735637855441443941549711514498831120210043269195634458439024647610285555601537889895872310903337340412000387994787436689446417778466917459716489171132088435514718671271643168355572997288295010272413591606500408841397886864537813485920341224851821571894231083929608169235306696244632361433888414102911060834215399967296319216651765564222363017961225996108446539323106847442803926838208310923478035880553191206683841274423710261875835333169456213185148873733359346077712480638665221526502410311481025109415852613973359505169034215673764958807522308781929607664405685422991529916427825299750245454343782145892152845092801584994405984036092221514470053903128027788928352204867454250604961117565765517253982808960780466879042187609112052435064041256565004007123101764426525648926194470983209077586486413107379165165448977001085425258409341216319793915033611895046072651082853899182033388286008641297780072704105167137574404841880703695719324741261468050757107211838989203686449003862608901407069089360477168380806424259896098283950113976241487313402722532498642601192153373441059098304407644594219996124184396412398371694046103425260412083865247658874368461600625143505788888936153801220486199249375267376590561527161205635505454293742047434525434315800758910979041699792023704603530756977775649176025847554011826691999888994652426450995960549814598529909212650496731345952443620482730184893627443510914792479085589869916546577279706711375305094443042887718421033886249409362280142864592455368509273308844269028232474180122288001405928432139416190102647491839438831259947713499616241197465725326411387900820620736113009298546104848851332735464872892009419653433743510699066397710511626467773028230446487952505051889501166441183837799691023371276064802671096522354653837644052703000343900007524338573537297490806243402960721977663528277413644694524365482002454460603260499929182442954973141905602550082081815952515867639403240193874476205189912528556807385046169679804365478377056736568624242033066851153090996813602394090139457547601912136926315021663475287534979233001143710098543644123572987618776547942657504758581850127850829955444780350711080066272718977809701485615779415781360374403901733269144950590465938453513878683982710938447119032321956553652902092939698853239494656125262748235595306958501833966551716568086078043173901818734643128055629618123687564354617840259472122696182186973383473055530746433901550428007531597857898463880338890952347069114412826564777353783467404813249133368743869029094428629970072443026571314395821600984826051869037354107505850986475074347115026194677612329174622367399241609259327655439609868720947874461729744410909792098677432780491930361292785440925052865427411414285505177498852607464084159841317505435085335929874014652390075740784465060574971743830290209136553037867180017565416121647431492425799102853215608031250626333080864039620855380989894931414514289287837356790064009405261209788742075566641585046343594768514902644366237297819080322288338163478672584044869264665013022773075568635996401510065502347482289539302499857974594738543524259256288379268651969338451713689005236293252691414922405481398630437717426745962675941757355418333910296639786838348114511163131061989591679318456441790148517542599611251273120732884812005092900243405525835714123330537528022875905467764756022678865834145359649037953923233284060508470142291046543363511659707357588628085898499892737228000135726181533937881014535975081103868787677013190731336232908052019011835772623103010614717701717781504083784293146852119536742213052272111984375707762242644820358820829807361183100621829889964199667506810382552012388306568591985868345069174135954227060813235664417848359435250044986556208988934426457313359932364816342010001100696129057303391636193831456264695830403277949023887899924982417512472226208097892747389410420959073080901843799808622344074430029403617753436290419325046611156937508233499741214668181990220474511938841776156113378627299108627930508627443023054229576470662191926619685627509135222960308421308475466472723164596611707378154166526210961887601599059405594647404667107278206091062422669930260238110976322709299349027349225369396934429871769547818645044487001924696544198796180911108460901039736546552890338586507000220751591067620827520250165094783299678585352792034705304027233338032947856933776259908456459883378864502036874809690602627791967030409143892376309866934474610429811446539218647785543140228293326127120729980626329746609977340709470019241728562359393531263998825557402618053272169072768354960953525132261386303502809673862501523054806587769955977125168425418369086793800037049744231809558528926892450043261806272496148036067722539500843595179435771508450627952443591783903388022641728753793460494570468286735181209864923698293179049967895963587502131438785840239972088258941498178079487214509585038907219696003668731530677736955763172036641929765212759930400410759204890810833642026556076039947317947346022603692544609054098214024259786434186678181786280033808805450375178266575350491290916624505605473289798799247814891086789253034424647333743188539642306398850537164761962769836327634407190960635080052929469525216213650526750346264071333687590182783502984242607025272112743587853525132377890310609276208726115406926469234152296216236988425512010027191344687317208933477283176374425606767607710855778542984357505684200108810084872508956783661789670549723955368314408550250864210096222772368549823154586747342160339418772090292105280095052826239678641818682064957496163936451761211171659127449599258913278369188556237167418710850836420042613599560154142727938912751588432935572563034364296703916628977191974319102837019309108502921136280674218381050354345643642106722146204567295047403060123104131697465892319395408177483985015509610939043483955869182995237362148088774472547762379463459978231552535216306585836228088482572595426115501578829621739639613364080168132439400293532397861108883892687787263928755281548875258901204898484804954663403363502696299042290210129016303877270505496155000703207824726668115064188399321341732421781589392189812208871085978900213693299017028520035031713635855765897971525633235871754565501685103505666232264429237187193058896934114167829473279841399674715682516376082187123957141811945907305154599399424926957791314575580304467732358115485507608325844849261606103960554904502483405724385085696137205880230620901011553458182465111359472314297428123337370254917366566570244940250884800558178517010550786899842508097009267886852209578121548358289573988493721770732029128471798312628326557620467422442541200302108466906738795240032834396917639458010935784955159562980490998382825717564259580574348920195858008346085543776385967667776427203243425647140681905101998269725089745142687026618566152062406575606714689232528869806089703414326951695018604499776871717591435763618851297416300753385747128517430585265644687686149401592451102455355284299845886064503758876856109586968374769308212426869749693015449526936294844288594352408713627023582575151105500582640955876126204980217912431235997502880164483369627762377800237816718759727214894271370217679605752791975817886330444307900634298305373327326054150442319947053357792055534005388330144803538600062766161601969773920322266546821524995907207953402004501221253161683447718797519996849465905955707339803044085898860164354719963195044685497226377122752011146180201627507272472534430489271693831412398628637452506219451640153579253671974254774032662863343170926089072424894576122297490742417860072518561259130026147995598032743298330570439500644764376650752777002387834539929438648870794166608031886013331379834773293313749509863700304561186922881513195302150924884822198026557428575478262183609373418500240841175062745826329912141632657564435635691964108196801570609270336767958236052175153423793525424906357841646076059903787780422917858768096862639406484584196107618210302851337750754611906938699122507242770549363436005040409926881275849376407999888038694561922622642788881451208343931932925109370456779056425322304468626930051944218934044288811638909240509128952042205665323205826334850671453625175402161325036879270149497501402555945157106441044395933017603824024246725713147527538852890316385754550445921677852381837362872764987196869440363514422471349525503448673647311674536289790932268792894838221680624575725761310548756959937546657067346086823947523592258896460111537815914258076872887549923947641174717043547734216496035216467591059794575990747899398168519310812950283908917367637351762185751633900045713540876652559374678228787828319089639572351582006560041866198249994337867953962726095735601206835137410246364858646855759597418039352248214165462749310140296349339060716688622458347232980752582570796987294927161770246565107416703041972871857557865184253753437695632590275132994110060984122149924449399240470387807739345151216900641053150124411226378504616440303417005058315971744070586786681525191147316756836061392531085017746420806020104955366448082268581678721678752489726259156448800423329586678888247787609155699591898480330755086587683019012390080420093310926344281440165719402729745618257320537670347671090634086495743920560535956264514613547204124708538466563585646484348410008505959251884852669477147493290769631411581105621304240987871388618808882655024977026250067430220789904764547921106624191269152717101271528371331366313657213587524978184049269394884899083899875151036299801864860736689151803990349723924655512834188943526137760172890964097851422871537433166156889411490101982051649012309379852527382051874016051999897113698836581024618565636405497095539384452279129676391956779913405047293228905934461407980880605869026703449576049675302416545804180825942557025402733540241991017150895082250067914768546217279917972560245953205290609697798186335188430733463858754382562577477811529266991180561805733136029428547696111738828140146699035635607968440294151024782094964845585988554955641719415594318345107764609685470414949317216002888152692927327890466594644512468491240120930712265140112569408714363353233377493939609797092961697030834746249774430988250702427940746879715491766129513347330977651545873207278744300395379368009535057154982710290226512502518897238638389534434429910979833245859803413108025876245425061703975328752491288661918189552594494509587173935317843153753698582477772429925348363152168537971063069335643382954615515881609673976325551575815311755875899690754117694211051519573464156406222728785388493919392865424791380933112269536529474113294050294631395789230846415355403809700511466895912854068189281518408870281434746205092433934010417624514756280010010078914619970718297385505458782120758952533343245034958391777911253116314187240123829625296941235790268658672483969245190234116802533978129783305288273358063033051273501323170827241865148351501776187922049028270666387260615838772012591245654371233627647048659635128112472538533026590059443144878218487691775625090858769470845114000054281319330268194272057087127601840371116005483297307585380601920229188019947354206368994065338233558423096985546432010879202256083282720622337084442223754626724846929538872375652922077862307287187003371796007638258204307736166975110802758139584239620968694752754690516403632276178433035648309844507613695435340435045098306383291940915347030803379890062157701139008409584708791312473005998300931281837973891675266808716641294110515007144448245555999490891310877990500522274784189638038361486620674563692754360669773644774560230253172635402360845176255278747240607683059289567719710172289782186574403895473728532991062704811725646596058626557217993219147044357249353650907781008030236882642544402341475422742988177377394965506590931979366387432183234464171027591901241368994354218529112018375050468559204967810697314762061652427424032591898084344737453744086002291639687942404590626465834943943180870460169699902038046821727400407663093985584935479459757696372841505304125258715108712423211047025061543459917916401446358870092873803495849957797067858105094868710655497745879416262493295084729027857466783204243162212524492009494676456778192229380390014573861159002226859650837896802270204521933819418215907666167487336531641978335059933337082944212186184046811187982223345316646075309863531307948395884296994190174373377613117661663136289513450698797108129796410770896883815231098446270995859285850029921596609738104601844545215292252264171981342685045332205729780680421426246820590439455569207116454696726839584228540267742161392420955076201224757594550212987962240872405796026746865675481694710170348264208433490567132330789988649869740497822267717238364689397867452597315096078645251596699370686186476528178883495648029565774677283628917989403871049952807539598184985608302573974387593936366039174081169919834547891228992410950923999795714920054668090413699294247968631502451112340948734599286402256445988204687740622795414101557664703335538629435642709101382589621891635375086438431465561163803415242985306907273149784924693844408075143618688757235210212839003002891440901257412454540542412710140688359781944137675831030736357491161008098719738527576123241628889611367189765679865468197990908127104437547945842497703753221829991660737318366222629531700812830346209150449108835183923799180156047628423715994172521651318913972067032408678967931368565143094033587041717536843416562192924905937941251268966976411410771212449393524931362263788846269715728509095723880200233257549583537801482123050599166165708228403110263813873521797284279274115078626087902910845018457551640993803364527162629171064064510906596578641130677609211349018855449844509860970821400483627737085692486928402208937491121844311359044157687188590774008011467053899997808610615050935411481072633430727196310173605747437410604018836971204093522634644014687428895011366190552321600294387888295835439822739593726414827142607465958382768836053658112972131229117978772981746936640984743515144768164634706388835240651454721392672005479630854461019685662151258335990011233984956306222557541929800268849898939775010795808441754343114092358856651223065889019881080994560836752505969472214903929771924659602118663054117767725224532909507666348328525964686431152369063295809498046024095582142444960959583964482304889417368095897132768707805376736109969818934269842878210967275435513637876799547259915459427575586895606054921845339085514644172552181191807817442310596885390447654339215426696412566744752682302389433958675897957238212375907148446865388743602355585638827752549443023471235746634882611909595211409402414881561581360154358941623188007716334549355304042613809047668778351374087302305706902344623020988877290702919325276343263495355812074098703785304992986780797932266431125979424688582245908139258021043574534584576376673471894488348844738028858285689112246277728026006577026124741467838334982459472219141545475043377072972987094410451480904380379050579069096016062980287613277867281082741442724899348952074368771369794474256162954350621843448504346927675269743734367225163810972601986031323436216298754111053777597951231959956034057300237280685159109306956373268034815765776411358714113273724900063237111320681749367130027050690111854851240878522245935193896443312650606793150102160673511056217079157671458402288046773210676053645592612017946226350136868449306573311508087340255887628908406960973710397458356679819691206266385056534541543446272737109585705486406511548344903703219397277734805962031569800232708266237444249931958568574075234759114459404686241529487568241228861813637250990432754982709354888397503547163095359172599376486739238529400532543249263651007710421971251207936627000329757411947725207631611252972583765813152308995654654250331820087940246631946592710568728735771346727199936196653838260303593689062136019325460190975446733508246424185674430512589491984386124950793161874739866865368692725302168579722844552069539595123225777793703637367189996633315540889266324076334354586204800633207843913473805687955289368321498677900961762713287990895934632231556358261411314753574961586201652166402406989036167621824638383438692967391787332140192450604845186328669279200715764492083506414107830062070263999033763955972369336907224472623705152723390407631404334334449406915849186447820918094666809304416627233723875568975088454059135829891375890335421651786322457044891041443191806555967978464352912216698965425208905208850959094223161746919646340098001944649698698024147552807999548182992942632347215100554754097204779996955416848738606908292495416518862923285037121954966311708726286834598290041628265620836472580637232182187454022509503114203748812098169453403880879827267456230706314996726062012650714419713372403947498630013305789958186286681670585490432417545877724123630864974865168222864533571427336412697707698304714026436615367357779783428083817733648496536410326267208346299012023160204567612151524889328594791957305188536403428052959320741809505672754986860699756049731431519580016985295632011313686501028771506007018134679708871948346982826652542622227890722171789911830338425921299216017821232152157723141596599626057027760868186412820804052307955318560742471385046336493580407153741802605957389216272942833972213743267805035000920621689295272576715822862101721980469152248850341396624101039867399479024081525660566348915217865491264820395842665062357494318811564998461567254702164244105706895698953059267922969977013999325527384870382210850649389826291818023255066705672404264811390575316795488301294805216072554796178692705019710489105679239891426011785566311064863418683891857078038990810069811349837760999602624744894774669979897978222977494407187536124791492224927805943549503121388628475178719763177341481179806473300116673654210347997067095410712030313643192666575352901724373741697812747957492257326220985447511429228242626965466579336968264075818751308889930312713289541347905034933219241499067830509056855192722062323592408882678346770673831010171746102718500901394980327907966322879569875294785314753419462255093708686989431835000633808762588894062422311714330154277800170308896255362497431986435003054353841269085323106160768710885400841036408470222301919583845411266278442623800665686419273873261363054562672292068892914738295572883958845844125940379466030240468584869208801733277554103288150823455714393926523642917914113745628264908369279443731844747024280448047614830143013304486111704282609485740370254029423832896663521299755523703007431064005951864724821438285692146519847551587872025028030857409602296155266882339508965868970524970812847642495025141775035605346580297487685033883442992490492119560681627279269565712508806546856238979208943112331934462584888035857192560377357358037743201149221338280107166470061787052317298392496001047994037702971313026116444890400813120871186591255700875268372997088267556699377364033197945955042783474589539011852519751957543429377119762739586538953374891480026149535785902237876895393669606883609994940276928303798842321880250415969723059353578568419835594597779185947540164928707641925072124285868496593713167852319453958280730310899594038855906961974644470378580868838235280336734338787662183353159122464957138668523720659593326229581192138244357911190643446238478622383781496339566779466643748722615893700845419059420446145232859259385259337610866082361280733819824632068174862581721483842116606507547076416654085196998096198024288587813975076317416070989353231176652214060881716858794735196264908242280635008317820888139129757526736934649522778658952956327535273722391504144965148422786598537073795957505860871627258531199925341991743668735394083442874958042900459053621539973713000597113812116884218174965405667642979828690207295826901974049595632796403419855070164325262132871214698743591480705712926956175001870277194571216622198116511968493465690390813204469467593746159346377980255827124368659482496660222218531203107771061905760790255480769312144892473308491217224662332399815873186352838092126027304617031439389492411743903705241171528794114739167659391122288515162885401806664386370280572119560363959039158787111542553781501469833778692196756698916858381496787670343570954645756950265719886215763419428256653380300676402107729480731143440934241012881071183131963408078543548316657266715669089261336861937047461918398146183784828332542941826945287177678485926561972311624404206270593552745391614406599637274699397365880380335352694526500190755945873399540476012619525335435602773986678459606302859202639090907856121629106541999407108597731827928681140201993598562630206212287530171113063203379109866023063040976846498073700799366519185830610852354146355082267297873902362462227297420392076367068971091948371515953650427942936905123544112904368760462574189835384321583567698280384584346401595266868102585542253441873481875220682536200030851017022494645946641807892285193388088981956996069095011877243022743446668374973854171498613733795855248087987376329010712433453446167697304230587998103291524280732242282479345494956777915163860622800644727559278957561086003632079240215978333815928395514336046590794062682425168627225561301935199702798547490992169830425639689939574554936965160595073040451623249555241721834176692681560602077219821219811170323502738226259144227463206866740333107710885642204910311856838974709737513667907535231192967651106775253862594481963095649852969397060415717454682216937513620534138997450084641123927740754082262987051036614211044693051823801221486110793479782380353350713894532414673748336033249523326933479971498115110331380194733897484205207160014808853137789528430106389901974013791177766304106156971802480082225807178207247062590648381339725229663923875867608392820859633542384059695034455488364412152311992469692771001724322828241389263134904210917651797386514293108372522735115835277421601009110232412195570699618524530007051811086466508357699103990776952668696279230638331847079422680443437358969081962909351857560794328536822435357183384674583308402036965242638560318452085701170126973986546163024665747617502892834436968891222887109433077502886502784715240350024119018718399898936810910503941854771885397392471454996198512233124676948467541020675921597816348367225275774352035242434743993455446865930912089381519473029219238930744057573035781549025373177747243283924341767113962589557460034849177190618483439470539558163351751931268561683450464465700935506693290122175466068817894999577822033217102011046003621239283048636210514300530564311389743713167427345559225074919373815826451431489918439583913305610625235681609856544657797419459355565245865358786121279478591343769907225758344397386838772492990349125664592136578454657379071262264809389753785099627745496341477451966291717829527601377831606270672981789668335113691753160888416820104556132210415993558024801561728726698977538060631966590557730265801682422386486357588343965585498000549037424719760854962851597058802440476216509203157303589247882697355666456530983893955879812486940398589832014301786560036766045483408489025123082374883307861610463751902498801823923513463143777830074550147581432467682260123617520791057841246720384564455498956020986298634805044971674897863093723432702787010444762281967711743677730080846563920361234041246620290725697188193031004693875316577170811866610339841392759126744410187242131125468148261064782093711513723187781349433021399791196671359518493678201383844620261346015907209854495881759262070137170358382603206526674198444772964020982257487556807158707950990800322802020978284395697513052775541413405040103484543772282363132612936133438352790170168434713110214674356952258520297551720567580650045237827709726506443554840925965891097647611790816075001009327285178756037840213641024455902885997324130902826989827820254271571610862237321901640251239790135767395391766617322893988523257447903579716925440380713596990664704923168832469346767643657396371017375397488923422474953820650853208723388572097222520134941042649452135440758253884258920162097695651159635449738822269099860197030282555842051773031603577190073481636603883824349283058733813446938288709160766103344774076069654119849956366082335392904897044453948343408936087099461505732249743436299777093349870550111482940134359140024141414755601057375236439082028980037184243599520047593519512610651647437866924156498689838277166891790395964505326577172893911977639424737408203584908703234110294951295640498634830382661395661752183575602837196928275581248589083631174321204625660599145427850065739308918800044370159320561341616858101335875002832209968059279533380325190429222430335010211350520923121794023362902262805155970837779371528740010667884268512800353836465432427148099729109891290473620238038507129366107519448033085538359149700679788730982974319468303447867663298198617660111644979612791771154888341227230363266207485468355586542786097632120418349837858133479813699464857714688728592301563648506422772116433240557204172440579506956693576302987905620561394940240869707498591972529170115406515404934207554473825567880461831712210068881314652994910294996234444605342077008922283647508681892680077959195998097095249684189433306868499916717857062104314917928192675009411372690492436338379345152876592288869724304997328350719655109185877634000721652102106292060098337819617854480357341994546453541134336880479367164504918878413225523666976438574142504125997513671101167682514093725714948492544649551736577234535143450580307903700898688380831992411895315489763592079152690426742322505928492845403725715402283686919788629925025775320741823078076797976102204911849659130452108480799142250698730494371105759386612472067159509411009060858339598905301230466327865791087955255270125785179648900063144615709967175164598094276555424998865584792820488812390723226021418647495798721887507422227556007018773224035363871987331659843864585192048323675834973779948966987554560455738569251424928347604334505076472484130827649616628815470688260249243036588751740748112689813195145639816664936390154501913129395310651675808972628813073780953846094231099606588819068020819027350166232117718397154123160102095685785628279467291905975007831212151739014304684064946692964257060797965891025158318919227912975943410110808429605600892688183496746443536904241535268677670263852136116674560196110483414329925469388648410143095659648880908485414700963775164495630891158737838462890858367222692455135799221483896603958382200763410290972814065966024480030049520923758802279252600557227114464259313402597657042032049161624346413424967443646477992866269562103631509162010299721902383103693890406036090668427932733203854636606912928063375458223730855427217879156658722418751068022996239635716073442352539852267930683569520429073178875774216137516737444170764895272958764540312965639087381385016688266434051043931231821852866463113327233350540568379651552600392846709671012628972842281714926013294153377546607938613432921228970030960516953410333604389858091372767382112731421192969888671584641820244239559526433362096870717463907209750040789618347896375708013296519874411452040779657156300215149131800946906622412308634890958620928174498664190468121595484697189895158401035515378428008223052672129203001638486636275588614171388910506850169505335836430727702002782637430602239512434922699789272160400006228932728403874626100353750590161543448066600485144623524458882289373614392716450709865279281784814358967905265005509079049834310070188531595298605333954260855130707170254988621799908492739221397021109741437653649303170638259677403166291015867307459233579348569618634170055415622967996112343777576467461729438611464460502574706577341372786575330725114540928743892597153710932826268631499394676623019769348314004866620686372544176574243366937052873893807638263034439217979180935559447735091999978264262902187550412787352268102920980588240011529984434330139879228324663817746211916181796903688929961333123058932674783134438522084637808215468663809803542094297004907122371812733295503271167853216270544127773907738152650570111502914221221695450726834627767282416671770441231953428075624207278924960749225533400680407386331054515871394818729646131836429652055531927554493673414636211454992841420741799182735620252731683681593900793493396554211380932292967972500501632551592085948137744993314611315566870796182227067704046874551097883878023527616394858368515620365966657587584610994873276048668704853354544375626392477279924052011204964374347528577471012273121629185980834429906189962185533900414272695650667170656864117355389392446011323392782626707682684788286712244271405474218328746919160386684062093289712621831833839694508309400952064015759086520407795975886287642927998327173483238701628543235257892191021107743303490007610650061250524092117276597378852965063772984084882204849995954737592668224867525386602748790687174943724449268298320708683937091728438785505019223562634577784899684992897443210869292139830334977029113522954623337289947666080119637539107373461598713234072849945075718531879631107903473638453145763775330367491231039261288718739616716313002062558309494529240987719821418097821316867646495383206935270187394407429817773324450700687161133215576876536304604342709929801482123909465496039161904658071295446903840433650684504514858444739810870523305150964256888109749239948760208231189267704803313848937870116967688567278191519388060785737446279619613010408998741722074942786388663055390266178452253383519301686357528487947145334994300164015073143061976331456771451854667151130566621802758081443226377768145484670909489872533457651130673641031904817153783245840302945870494989382422595879854203598229289148962344708935454774616509725420372011640357766043226571680485361543980499777589934609029991490230168159594440308272666296120949263878455924844282498178720778890582604484264493887015393260407053010695061767167131210604541021841742194858870159678571011240341140001771792061847104983465331964489148418514324542591899206029032102911874838399166179900583561678935448875581881602723418031360209158606116568924846371614973474000374149242895034578307912306102153022963352827590790288212975198429516364198926973268352393343722603158004035634637003239836987315794184440820513489932436822664262076224436864256028548812525420740332481918993065780426677759404018931237722080102267121417147976842165730458744044546944388946764541701227358558628742701008947250462637207953930458505836230094496869873897850367685893418479109509298001543150779445748691826221697549640595132980865634843861390596171891766136460279437210342047416394906159029926940438042339777928138223497401551867577121397343165856196493830894498899550440046232595751203342387505075163567986485200483120198487181638777265698419595224481962448886879263704624553441129597259482088153464426419706859898036583058019620813540848265897700468758321531351801122981561390338478614069803784423650240256957794383220970101691148874851866081986208530759611859380871053106792192189464002680472829920132441401179573525925907755426847278757055400386870290226575351764600455036889867085981080332468863105650290889827412449537345575510626098571436641579765054600036205859511882116541916017697396813262760634920146960144004542665173622068407618699395110006043842362229525571260823162828742376638578445189757602727668338792928447996123915643021088746876063196848062851733159451704364130317252609351458568074298252860767503208221323432195802582905776295810761709973892665797772709382487895154561914494705982987232367723841847671778014403150243757217165573369640942205591638725648711401936297099531547335736782427264486148667375034445610280450836001864661328441135682263578137866824862845940070685078290987659226628217603777627881102438055163122401291692114973612437697219485062782786160654568594509970263174142581256086773422209565380930723516473378680790045198361744219373169934033840612012188600552443573648723819151734150023575745872420806858871261074707043486472921709923223937711260657610730222039715556932284319848954247683820565845752680720029960608508185432769009549180705313091249290165416488423269360880147694965988368104324177093664777019115656011990802234827194634277400050260380653019140505206588562043749840958551674103794019540329105661634001395218872927113574720065026384698567869406048884202927740749590492837034937852250194733480212725815634016346277622326094794259995474272305263369920624873911251361192571111903309565229120984391915842711075383413554473952610771020750127254812710701224336575987815964863943428587993105683822906885838890738253969427570968384370751482236623139487525744880768812535663301638913025078457826413173960197124471537039166414537919274437120449032248655812300827129746665851726921726782978250033540419721190318601930699905617112667185974742480371988982820910225138921498827450916309001925674672802714752593650030093258703326139854419810611965680486828044005891475673003966200282062590423799790284750038225275735852550772938455879798573934902787380691461744253129267177450362819245795391907553194260734944531678347690921447245363500015201797137197321702045324080789711556250554552128014239252089136795587357947992973874023472185507981343930290223034330022947455876892514751343541242495823414094280776393580387769910328137378862142154384198224897537231076439493094451855598201381975202857132682694988201464027673213967603719213895428832795324021388010862613014456078872256731768675563016862129772795937150449682607289087557258265952134309499868254890024235830237001781453613788775128100775568574844697807936197059627578296396684119405085828038241421018629188086940588171947371804557299146906777632193529723958666640685417405626825802633917186278382337944172120437403142345779954301379762741004344485800668951015392058530452664867718922634598165296469592575538163681032088727831450021941974396015594482939153186814080276670818158930252812200631505748359286749991057527976040480877437134997172198632707319458431357900589174811650652377718090506658438322974221571290621399428497369675288396744147387717427532052392456879455573811924385870553056004724585546280977756806685102437229423672362079910629965208450713517473877651290163878806955778639398688740119106879668898829499685813298514176664082887655097750660588715498254399616735089785930457987167322125666457877944720977582430149598336828049945374678684593773895076985362486221739441558012769473085923672559033233689070861857606863913105579071215186704477731151544883641887918541745502674578231133643371360601528045565969917041676222668362883453985236215870573068476311766173717940811482393691869812297150205644796173568002714557746704050603541506777915354075939993981351183614927731185016104889261223681881982810947585036121274348317954732846373795857209675442179871148270971082037873364793348457485106985722436921139472798942813168352786448879464342825440384981376979328740724223055369632573887065872051280647776544121029862706592121706400962392771673060050165600536276723485699892156858655454454266364077060192946005666143817239289199577187753634020603279836800117245471672632177233188421021054873890972228486105000880749118193582613504009036838039353247886001487821361289975999106616269073267399080959903062267679175154636929059122387807873783751247071152464971608115321925204696321016204637128998983640032138739847043324288777691485258679014283825333987752051728274139583020846925395946872395395196456373000924665296267886619301646481741608936166500147910645675242471543818042364486998630753518688291483958909857804145885581673480560062505257215716779234494220779114856894787830983631211265508689969107022595692210978133246655497880776727167318778220110933391566439776643392500932485362832480552796119438887456067038887504397949187932131104547013943865017668796460031594962873542708287473497616580479206268235639751679114422925654358001531301481628807256756394804043090529173868142740104505921515032704565225851580689513968464578877719563400367396550865147677981867938950810095770465238288523832961797301590283276772212055575439860229642180280833754285146013049171419041387824219569540898984906251294808714364161451197503922117518065474056001492695477626743508674321699873787227119603926916042217770297986485368964620193315632708291743284593923366017746545732406375866610220863499042774521715891528474886131898915131860170320290783202837093374004024084424495974425328763860648986318110068039618630681011554222410453721449029863823902183573622212169284423589025732215034447952396412872861992846852494444562066207890944568802126815349092541345727825222034451814502193271402187505992139346028512223036637045470666767323367407295860636667336927139130352871459216511125673470091292685729212300401569436620596903435054055391767021556371917691716204392985067780002837571101176546067810068410450709054012516345346551215120474311272723146350479595880574166579363798738934923447349202644449647674167225243645729211398886910865052551132715995269002912425941972567425017719948666686350445703432759515376972246680614189925027942751681079816038496383713091984654647783241441154780970410601051773099330299216549657969791989301963632674977181001413024897416127820262791392083421033452582808446299894343626099351667744657790526257147411739166846302796828302098878986509779153759560892831164268310835255699142250819331270691433467206750187470465410532374020968376949352872218710979662137882441430964697055296325810029344404584450244953269220644238147462614220583958283380934240559973767736862960999544797933549224801297859059185169848796605761610383826318883489375874516750594173889550925626260879431638388207352554679179927806340845005700555473813416806278263380786150783706841854841074060403367680286906962700228039232781854177447647256811627185051936084601413314527727418375545093844985095304040059023293944542508474636485836461468042642804284912005774226816648615052618122234914706444031513751968772909195987492170864648399999931333953016740330194552272987302651476456044383506482147737096476083138118758722441287326437482980173782013445785035024390574379773632673486742972306832581159370837763243266459827686826811653325848977619794724691441279614046970882254268378596970888221473197508077851525478696457894805252870188662764257312131162236840514519525271913669590025649554405041721486818775526641024063603152571714770854179908880058374136264995096454004303685256235869756816508621030008868192244834561446333608540957630046804457546439049198682428718014394976646465425055747859456350168492216489806429911772759201721272730013088253203622885513109977028845699886516304827697941942892745559007853979122077096679870348943999806552852220265852708589607428460474670144529030148165382267391922637133094643839910062604614081908355226302399347147282327690391108044187981178120033506207001440641221582075315626954600387918615855879564911166755367184011562153704876090296841020857732319366276132249097294653111250762897963425940699103305795707275542667124213187925128968578694547942335717433398260268561977721103511423696512827533321717861302398423699014312921363271406551259804945485861395673010368539581241823580104374616196514971752790366062126168638188557092821451307891613871182490033454252878663387078242436746846740561945593385250880389500217071611285607524259928898775633577244827494260593427445445907591691809530667247455456606316493255310115415828995252147546687496802693916825507133962340895689933470884279154640067484286257342317924786583464857880387133491974639977544377354692295095580416747581080072269393895427044610226722570222251566804753227868872079321330502156756353614471910233762491417978549137575165392052086568565367799344646621839719521302903564943135276531265757249636663144893520144129172451686790238415313717064470436484128730278209086427667953214027148820833331385031868420651576330805497509852783901899833266391991931290102194094154700684820780165634662730167743076023949533236537282179077993206922258637265298162570166267022683298596241211105159245252580618170502776289743111219399313067241954877487154487073635904773111021444042850398385793232737202993600560189286462419043275829752896672733718810088224532526459392034726614633787574390383590685394210352203733468363350417295309521842969168128105174222254511448587449832671530094120996922328078518776407838692755727654522953001379586196411862991851625954330031729906457612225600786997247879720037112277198803100003057056304382211385152226535115100363237407934185979999316165674051601943126930496062573722004794467432674685314447032786203750221974514494186132538473609328964872615304541986874584155076743503547140280937277875232747356109466750755743379422043927919875263124575694070380429275063063648737563204585019475564487102371023600261454956043682979599192135306490692281123218857337449941784348860615744745549144902460663637729874948269578923625756389799783949289293755584406565099419931262887373278588072115388206510753382787474216024691989456842699099420071781902118786014708619770092436927300417071916922036292121385362631601291618827294721569812368444995781966457499032220512533562195268754020757021412196694777706264302011460871276097619673753780391422173597613404771377913677513769552372893828111745607317699474914440935248387751145758040520268542808075220422803381718628485020167631799077505788043144348858713553875746158774339435346300657390954897829728603759973334291057078959345018686001299080596167381728270856593176554763564887038871917910394511926311303936477921981000472048584870627373541493754916585232610962176360704662961081765187325434277224601399530039691811740081839999315951674119736938652120531209340717937936814638966071621605712072729289763601685376671044870273987407766338473502433730577156652581990960243545205637373048956378992791762041677209258317598646030887374108200772593384461411315974856158893286621935562385520517154833274307852665266644700821470252054233659654772403565617461325616444781743663138812994972255395919416824598386915457335107785719025598852257772627488730935995878802577071239744777928030775562990119537000347713367326586294908949922387137869273083132582153536544668255833159160275617002317026922115775332164361049754989758973444985872766020204651912078256197298165812975155495456449115335213259687441500113490699096606334858920354524023117976096930281425749125186354322011526501603096695426973600370881722726512741017477538855196418185614870883016355954402998587246779484772919388300887332719399305938415375782072466579891797162286026255058292370559264884444016415967281725100102058256842084756178304567702309646719476862477792821458642925934851300189219406565226088036982486606030383311828792399599438108150363559964119457286518133812444513599648436791272511187184388115231348884665254856797778879374924041395817313504845122696618396308424281782568826525955333373037491834157517080841493598282403884184031809509147918284381033189653536436769165502468981721445076670315912412327989344851210764679616600584518688850860312454309667227082832853035671920945951759048928074658752702995491221244501373617468076013697965943770094318228672705447880365088165905385605617338565169254661460123067147478711374059932141577808130233493758736880639368565980592570068480882292581959760297234915034237604699851925920863082012030039764388814308969846487483623757397060733218830123952603210265018371040633636152991992944304609612656644788320059709846718965266248634998514041655781303885555788850729093555842139830213223657969220364174078927499385294952436470208646329653969531373860493517324522965322854158591327216764956877146278778028074792617998969716661494530858799640724523466793208303296395434403435604376228191206659416233017923116453007650463013371623245172121601523673437185458566142161731784206140646008592652252916389200224998306550539867559333058092663086707546376991413636144085618315182803678255127010567815392858731148506936484425918453163696071411379681316481947003874568869861688522700570166105529511046584832121402572530658891669655403115558831869207093017866139633491764765161268102709599927067947779812693902174134370090331148306104048596838680928196602252939727206198580655176566869595076105650982863545899319137083184968701988629758809110003700929949951391294300946420548655406321914918467120802134502039859282776460302078114583891783331019421944595403050883980159671622744021908895281880944858223111375761062579014713086300415565596920253170591317124055535555508869362566888962596517489401145143543202055317231422870947210694556301276841674378845192915356099453812371577279366095949554294611413400367627711324315007332946680366442021037270849988320058311020100775516219777945780743402234326770957355140552991732891498685263367643498187151931849983352905650564886385482694634700499419380454964413724535647834804432913759193606727158051722269238256611017000986962721243327952755439595269600038140040658152721428795161648906719129838510744971414378194557313126098956487611074923896209859661147333275263773943215841644238314636544626120971387562004608875998417733442052892021171426755080339645820488355517138781362304830195040272017214587040392886284703191056423665531935799124416216899722438527264750737479518599637089834593905689112922742865922502736150613385953909944627229412859459709260273541767403221523771506172739552807038599204491534179343327048673787976709355932475027739036756775029122073422363566292856394381288247245104925547098422023758887901174576996465489360913899719105294357151155137470677444533933601040047087588885507185006300470351827794821873020617038912390647275359912863841299231840347777105988851562107910240463453345857476705305685195495047270256640177195061480095648096408485010830809900410611281310954167705110889784359856213657464748641191289284677845685603934036214624969916877805258933060691822452681757968773111085278412125270561646292199059546958325651847616634567932109767466225263576033484861927054241329964165570360147006475439909534865580651182840539100585149681332647162301971375171159669804829185088637211718805804238702812851926955498160427637071085363763169256716619958596728520013198494470560710397486030588911066833386268305515431640400477739993983337114986496061777078263458462858197496876760660549414614981827273548609475153931490324533307832926756285870010599893943659681577586737248598544691759331244877485371447160495930606318449671116495294209663003228682707849384729401347649099501602757545581204243227301512325796576924115307799805408394191724909016810640400577984326390901929890782495140603371916237445815448088004502046714957133130114055849342322340614081530322921877600915471595406371446450473673169466076176773788841051035106149691884346854644530813657847696021545761900759124359240760344422178123847338862019550950452199348857399826631046945746139385299939758736197240925032976417282251858577403008164086751641452710036159515908914119200001633532859834122978364056169275959839425565362599878368935876046897503642385080803671932682169445156438514152489115741248467205427320299462263133115656373455196707749210760900373827042445216824968167950864001726946823607555499670767860196987706767831481189473135205121689931823808733505390304029320890047579817766429557072244847280079363708049493286696929611001748173734964428028569209856005464837884035622994541323344830196413303956019444418160481511784071731075638051047290364023473761526111091856672672809690058652002757779594445256815376337711389270574745652512686858718421728468357446840297094989452824109035145649133161553312389957878858989975560014495055073993037424787462051126599645072528154499573138484659783924410343182882011852024958539734275882887577550071782329456017373328905253993340273084515565197984215238524803375575104088659796235173917830450939570896761252968339342913503989110925361982631960794671442535289295593372996798356957823798409523252671863900456867569680914611063292895062145176779083547930368989601780669928192680200180534476991028027707157681838952588140093110528558390081600636483591441536653401583739078269734045287567567638207862031223459829355137255379771077845541655539906132625440891208906500756317549626016083083039384797151658192711103235037452257730213947151623066425564031324374902585191596728183141070125697602002562814678461882026556194850813219795254259446740871830699047943660395020144464537360105656559883206683499653861074073062144966483968330577753758608287351368076941441222406236475207554841758632959518805772074659202619040208194855363256943281320912248802425221937604408723482086758336895937444143900778904564588835201291966475211652944825754423534011370799173500309214305433141252857096091024121566861431504959708019541843782728017778780428045351277142655748567998007249172014642103603076462152303954907802698725418814380511858660121987953517363007965512450411495341895616700259630351653961816559222496509115273028531527222284280655456287871569998749564908416598178151436435898804649399311916199998048908940666018317965846972551885474845533891263968863591821327301121813863816419877617319415280452335050177443897833350695548624678778907091254914867950576914785321015252605257350924852462795543351329330569062794078612778540866482959272552493253548327710238062261420991879938286028871753673608404530547479795986870367060192687825777140070245417003283741438177312574459387628760975976700611036511625774945164130694236774208736465658347659759952738529511797242779574934504758417375498237184336463147093306065632280978641273864494495394904161127646471431660411787699407653158763943577128405245545435835265787510935288558121915082615508613296102244859160400495365950939801129275892833585680841812385982677062745168113801133754220323387172638938620618531931666043595822154103695086976526092075616840246266126530711099594391669853504694003506554820438889328320204934147483855403453679236552059508577470786023397805492210114635184866253162248957807247153887090250780270742734560197604665345818523410012542577810261995731079936377170796658176140937960594274826845566062576230960768357958831134083545024210646136013615335811584453450217440012689502973112718663223190035548966251435972923873068718722942723567370312852258190177709937014292415295118501417662278252197454529286571102834095428409799677464935247934608058946719732226878655211620341804325985075171242290667119325304022248743955193969862691822393396590252903956672921674497927284307807764933130337205187259680641181049032987379309123549497828500908460603243027056221964049967025633468610959085991100509537881939417668863979089843500646658885397243313698474960870442931164323331888872233581645892632950984314754660833320016032575490007721353511108017977164443837256703568885950349546730629690237158640079103506593448694138415899382522059126978193640777916071243144003475184111804321262536467661294303932885999107514345285768223105542217126167846799023810521811614571312935992164518519712799411476109609170463601092007834871676321386548889120816604177374362928311525964643830041185425638817164867862171722795455272740555639872710058325624824829606736415860770696770115540458365926273136466996949375907740367846263738784944163885079693033452267259036849660042523370615777338786324870336537185376227907211922679488528835628393303613809435752955570137459483751451928006364787783762931120030480885976351233117743534917685239020869952122998681665286761684703431266073768605814614952466724871659660780578602058217264838711406461793075717416981981581767429472816827304553264201156583649460866140272044064484645508607988506542691443125736897679702585710871552432820944243694157341874719784329228020385859174454529213066449777441174464748310165258449588904903010056952860547574507961510096235348593084438115159043732621196222993331014691470769966061749952156390834670171906361730998072766691800522343863097949507216133874428817078961777538845322686182688192061649503562663023156245953841514554298111491120041436862107585773948857667889527656421386288571590684899924441525292421289075586153036500546689885778534707518498012338862869284844002956665500880371870059057752728909320498504066309150874151960548117202291197419290460007367191196924757873884378864331485735769414948184493663153967784545166007805551970631314802982058417353493703308464969520410117423964863904421738347413180337249146188653892995435983341693644542357396208314208426118594230959322890631762195481371780839923412194431956832673730296465986454078292697308323897846575296600219770513922232639590544292714817829879633094600342156476861789758173885566586282657414238633182929152162766208639548919432193452008227879989127214339043352585992819752591520461171714136277758287066742883584917853079271437232643224546653337422865339328622225501072958444092640820032622016600611047313123177969429010786799424790829058133272033604497071457335519978023755802957775600626027258233101634671346450631385102467687872176350874570754411843184628338235122023008545820203628406330192162971282166994012481726451822065490987701371690978187897818458795354917845013295618823607534224826718974690646952240440620916812135290769594253517331213763232551068687218469573930567274079083476609225411308951551899830038228776226353740629170757772925083612627041805658861685141525936640440184056569540393100073444803459435108878869633173716322645479955645449193519836574887934653874960470934519908018671706866856240613062854520697184471386354204203906240863505478622519399322344634715060658619750671513905801025922102099265841860862704328663809491795324434862013837645214171949089500898350416691772569058027716419429357830348199916328687047093464582341611207583423802398665730040064594883061537508776826403080900764228456061791213357118845437030907937519161814287511854621325953909810746610272271361039805887359276707985402039892494719127591868607320995727465957840712659480602458773862154906388346476740680478505794176973719135920793945808656990669090155630414968727708121377157427393836517780662944942734692366594658821287098837503441125013960326261572589221065773915078125729566128450874612020583364293883141268994748298562976665933016745145092942738361375722300444108710597625482602236806398626180285453699237947795294887396298760536141173237449518258144495362592695330986831060760541822765281721147200056815959142130674260739564514749958739836216036643893963738655967110417277913683165739223449216311544413197389497780861813403582827658390453884678011088309742319759608585601590990777680926016717578571288849636715683733670455671414391487504436388533111846511847552477349532689687366407942490199054386163570218615929550150350737911777456925140286893327361924161544154546683484003912024715664060791760014237829967403720869385085827056247621225259749816401477270404282275616763505183040698872153324329617331332040215204047611416761457591652494580869366963940911320865007612479015221801645121959220361347542882087039606752054167940392625474742388415047253752158204603215281414658841587879082523352584178854992451962348022760512803193881376906651212723798205492657985330153580905022203870049408874870041218497971370678495667371094120691804626942883337407819260951365266534450926144813233835959699775115568914288107733384527173705044872814191520282203122335758628216129005225168083394779364892411443356818647276837114412079036645158803155952217694767970357913782061630320827501541942159447127205961287070392949699868368889531132807938761530541132932004328045406435312629562886547584408983328032495613779378170810383487331016521836648854325531895850624873818966672451529237508829523891214114919702321813856921114548053474734494240823381185233113506999086361679284286905641372673709242313789699305875488470159558074733437304305104504065542150251258741345310292571594501951672613704232332847798138075034528948894452513175186414156835551592310484221868631552643723402587355632493136295561743386625796885693517931703065751764434957056909920997616461245177499127022301576624779986002382619540840816626569890355856160851214551253453793531111490582565826643801040558995173703468731426876887867175700578953609678094593739587503724541658494077725559389327942087867061406702783526280983318110160206635501158073406413760341432038290344609271117115636442987723814961866004905596101573152630484331333875077047453693819575212152137307195695499493034377019181186254405874953336879951028127476880675292928485515492273578431065122522638059550023605981284989911559026358250032629907659639832509488861275706183907645413412400538299100006684034728892613419418017317419343400641054016547912304710512038602624941538154166899333607561801249595590582020026776961866206151522026289588341922452402309128371186177634765410481776413146908683072956873764589571125362782539252114109809522901507605203025100109475321489927872806137368035313239116458155749317816809842958567651671297401729327939520728667292707757112170374353478105087149603512267888856624052540414141372804176162129996216201371747982242605199872448847111081400429295234846435270740543331039086334923569336762780971536184429817059925224829879306965145259671663929854666521653242209816551280985211616890675051116125705843205283016494250907249715530485331691507658711710870567445652453278732990933415653826955205215185794957792394750811547530697451586457116998307950053106298795220052889066115606121912428816042904731763518755928285611617056595583838506599970300697968559798034752185692804125228820048751671464960620408996684353901334702082618954082527101351591138446741288545020177381127349258042227224180887167122883514316411931237643345903336834682554239186283946412682692278352253367652674975108247414458269466954938012807127408660176268096632375200605739355694831948102795602631995985661970997710311542813148830616064050013740548099532627154223994702892288673213468078468079160260126291042547383432224103419748054586214198518634478719710037665084607654264242908338812268995749013991302743271458557075038897633181292939186120601278074622426218991334369987624305136997237775777578298856321144356684497075782880707326887035189377131380073146064812854851767419519499884703578561874984057733421537421817351183598428713719311451442244580974090365611902254417803723849944683886620950134246457955570863686514340679447627279460159405746574918995230007423292690687759034122044042050351343231045946632252736661644015675367831335609439128699030702885620031307776217187908459546322918174330860434123289267433809889421662648044937511276172589411090072192181627326079780489231850431142299053266860605041185854422459307610566522979047195467949922203852596240870140891054332647929548032172526878766499260728942247692329597746060965726429153471581433219999700856273032304811133088613253311914978683303016014330221871662649898296277570963504928414732711085804512761976042983150105811368179481317798516501962749435346994004549610329384864224923618943239580697072792833168496670225684147791477033499079981654027013458710449234647152867014664547192850952273415612286964358912674310943983353806384342302700859671911002913138023830088478187169663002151383616547369021061209451494412910809886205776108882795593560237839358715954660229937755835678673684294903153925730355152458114972613749958269870499419596407973777328569013322028336431391239341391767162078796047836740811213357486574933703780225517175564247816381215792183626732142349169206869797638564384028933791144300632939871940928205175372985146790541281695102516680662621001872690208277135337962723307723977287954291191278256866631170320871354620126357738470666827051901850923184149892736878017222895218718964606063493064989871181671765505164540544229891337593485873968995765498318754437521262963159501199536398974892434169212773006940146068594432859573539286690832127230095499675820572943516243978084423072536162759359615002539524762297525345859701562675357641649210634341424719159629125410411553651110251686597680859481164770958519625018628917027238326146909244960442060152262653857684287807238175310478289081310191302363967855483748852599343748539858109268403683590017240527757527568385451566570012834549662334101520864875011269522938275972256233347879055162225595640468888058750487726144893016003453465091043036008400998415412764536331578128985054414541516080504239440844773279391347733225029927539467558662686977221717674751385601509524540250290871309320023070603290188252256637269727286628184293629949490798251533294101340666098575539423093228104638271451890054334025348787298427981956870790637255037869409281020013418135908163265476089664325072454514967878231955612655981962898017373958978961692732809024285014830305193797654196257086618205136095632274763314547074974837795505322204221200360235934145013217611526926057652502357713451584575192807911379444398561388486897497817558561301335998319442823773721209504807993669596864273934047406131361774758773192221419246236718341901788153580716709198601336768014446503809572418161760796804776351461540083418057975925134735236129669744401278647256544401769173100738668302600330463265044414042781572987387558734676090383172639302587519736738397987148431443321916498053103060291208706775088682937342156439199958505081903912328169584760845907098696800850249931518096982628682023356817766105348238839224546176408724889144985913387183126421671713334066156041444713492544397414750125698570926405571655978281170506619267319970979344648676992012402803776765395286663531851159573444203484012070920764891860780318632763904363781830347064210471523525441591194049961047916623806803494137769975452284115158005045810706210640168568128614995243670510145103456329424739444512681864984598857931917124767734981932776924001896094040754288365296816314442139533377193315655313372672669030313010909925905583517383621464601868824237085249435457047388757644925254483471069836136506487592846307223275068893833236941063576960891285251243065201709262985980970489687110736837893277918896770454942340232746439494899527267054813298743778248414886524409928074698888757399891007536964659462372894766044760999701990742468151552071911676482031100228173457813742793539265198331818154200642671667092915334579830134865097536324290638487598276250041917228717854095676051181918958161008247335309683892267285474853763583764783437271129792306969957113741783974477222821547845606670177123999022191516737107815994000423648655228144067683340138305375005095062940159835109501937426816538106747591620950671900529209671870973945248333616595211535207234816306111446643754220778476621980747211977707722790778339995651629501628231360207340920510486082685866473794586923916471874264980381696323835441285212756102571889802078481305961721372647109118983929576560420913426332629310689686448223093761706996155188350225931132134738801832089351618584888629910493104036862409156439286127971452560529573864076641973174337049701929238094114656233569633139018768445536479874072063131556248321857887922601114670706382209823594051788928587066117485812288811823325976384049959322031611732478425941148752939157214979247609081169479091645290806774277968332573963678546922040693344986452476151430283096799467490349553069043063181495870888222814249874454696299100192574744208239023419628965953512390924920351416684619351714122642749330130627451331412614929850052805601971223276329057608570256633562598583673387089578311338203636808424129867567990855043900287840933569784258400553954671583746526241805653355236988502727307624625006612860856290274816601590952733247185404822375964706311303981394569117340637158850878193034878158191457734794506735578313677257691790546664511780632939555884711067054608504191458839721296648823064138874354109105578283501364910941900190931444883863290716831811762198787166220293143271429428814553448777240340878267416780803481955261216412415598670090846116595150595741433280565218434364703625424665460831638256911625491543702623899215685570632606162607154509871969393366727655026077230460969858021943020652978031454696010508527606486484645268368449431416243583701953983789208296291253580181186427604268652139651275765877890544041203940644585588433089193270759777023712636006723941144685264734682661579722585363420827419338805652087512406639198472492562152009631678660716262079488545127947717264553063246829136900343354363220992450729089554366094170059194928960556323571074766823525591964244805016274981027666228590992248130733982683839917199540063675830414553966809156594406691847409676666461806332210266371387508432619158542974940232360676913496675253785277440346303015098314247902356120417653325044851106148980832932395349558827806526427211716841174008111807269428202464481784918271119058452884047765969843457536851632025026627450220959505024814868018212336438136489470418792360821454721086831087513945487686293055985648433038661842965186809411841117099432138726772832622011566196781199194509086847313542539198700431959321181657872594430962784163422641349372961411889716253360959435011621069829553363521391408970103887960338179503334850992313894483413254088470337572380336091284605265069865127331345385978696025740541980568231873578792932760170461012077749088126498885746921934262328549118484770461996749637792941462721978500338604964955256052206185536007391245856543369295833188277801175747966788270660606895755789828990242691504155741744054189136231584313944034658268775931765355585630312272428611562206022557550820966889818287670099365039354985094075385413335728332807039031765985023273436225801767272163641289468502062679139609862175763164375221909322938546182363330683577881727765369332238702101473080901491260355087355154502409758694833888572505982923931095132875371375597761402890637029070755010402801003483935122771205023372229207987022552201388804629982567609289143561281992386087645556961925257279155741650582844621893824964914407242830822926850454361425623731094727519453636321734469596520869277568408409195294669919923326077196338917235034843953921123424028919038180812836994935084279179731085976226863807001137135452411428647237578416284426332108961683037173221452643068930048758729666426148375123287873691752623541461727130660288775152217545248942830988866275790885935075568535790895888964845009189326780210751103890143666094488382848302401308921975188212745110771351345682081498703042255498572819031125105878721623022967492259510655833008205366012683761234350309476646515045762665272607770600147739443353906186193446725050735148563006820848603154118378564901869256134327707893618618175751339244707386222161763473609293770002141677246214478891995693809613602553486838997049809001183331037333557356283112535710912438042571932054962249400534783314832781087936686032456278279385360275915797653881277658554443832627382369700870547000529540894995284109733231987401513041544921840785592405166069022355183798350878069423303051334834000045252156164131900223701163471615345024956064153352430070514390078866361707744150591422068864983060261027924332245852856365418841265375645787508715099448022935665048394684448673035104741771792444853457058040784487664127568171763061841317826934877380645649705919268266194039657863055539108559883471861887830992653756521169999486537735897120728114136925352473637025039960901147449911213096318267962757790555818773439746560293437501026059625390190731126829513516741592341027621852614536190386332855030459610600478532840675282195946685408128773797246057485606139438893407843324471795708690599403421511050609804594496507622799576397879763124402577677338243371036224773300758275059618604065308300395612932667999401727811687365180784274317025429797765918882197944848023750905801528663688740374901224957765923964868722054551464309719179940511358856439404656251662832983283446496469972598373117699169547821934921566089258125311162224738320172760422370493942175603411821249067595332621834592956567057234273168702755793855335564450957457756072369038897384025270776825471270564927954003408653603484552561387465904164818268299112613231339972103704636704624230707804905933681648131200204454359110119960857956161046098467588177788527549241511319927903278304644073243284347866529427897494970377605335165886873554544995448381628703460418905061700302255975581578270135917996833445765076951623720406512237169385065227147803684857194410959028764119097876388430287258526544331248086537010024409403744370487801642377476238056260416810032432447159407696423002593619504777546956741392698733858139913196430921704104215882249398554576499315826974610241330113820933597028895767420892812815474807477953930004551916735568300476484889894795939292354437818274842085969514814327523963300595008820028865869420650597983592424763398747434868829328742623383169210011770845708900257766330188494952238205013553330644502021292969801768454251246317079136759858428275989008382240715274492672901673651583834587141824921892505719433655504796750295708039989059925012141797965397869027758620734604392575911515804594114721316903895712313023092440507418357197555554185621084326936521014097040979405487791354789021883825488684691728324852049789781671167029693864655726565428480685020335705296150994014920073834963064310228163636597136962987273334807523516526420165008085888298201676431592517552802913943754759188608787530768224084685701642665674410733506699199815024041868794719724839639240357072704692196134100024036322842490789155648907223516153582172219825094096801857776874233346498134477376998476785186865446856685493330412142084573093683455665399850160936305883354349322031870529831263131660308326615589992095356562903085631369590519549822996608598996710154245248005076860476437309289417260437297463014950661566646419984500840888828478997604578052824051352524132161787975071155556283352054194805065352445128605162276183979609382400195852548654194406016287859846604786178681055719121619906663291223248960044311854280628375290688619844633887299874266691713594203487778536156995959405119773461982064996384395991178875645907870664626716193444495961405888474516089273809183701966337534908514685592254988752478602361889804953042062548556055652748844773872931178934246685927069610953827839632529635865391692813195953433658600590005653929575628228354671658240317929666377552623308198351992090341854952887543929365018243683259649972214930610191691703425228219921372053482720387447209844052452559929807884097210803070953226720203718599129254041495344366779603445837258665851572066604415895267833135798088816779790603761920307229339312011290040321394547041911842810251274280647815893911698992847717969349376939196606921383950226183785549289605559969173361394107553367466907864095736346808562759093615752117676029741328646558046898752754600332766962671615403702357366497058040558130403924178694948266327841653884007188649320705073264240355436957650868038688732257708272306857764154784055104460597986743647553267393005393590675161667791686725466918353948539484682126669608003186553372072997011506599543100042520144785450857837400328114526087394111864191259628198032153083850510869834365563520661016640523600784776537004608533407529212993393730735127946341122947774200179219416245093656688768754025578879184103679620376581710514893051401723365067948556599664578567055222048763759608423488091037251099105011122267922989875771309178763203583157661048196587905727237181293036257445931908823829221377688043090295916632212637537146350496763996121507986277971337853960739176988154201524865308507940405423439903629661045113494116265147935150615932862812191577433479709619336782789833027038330346881751009601352602982426639676700039693531523834393041744907015833610402435416136444736134275442462623835516910002713592036033504104611360426220014665076411815917105774967928412269448249696599620246365193170902004097929954230751090651018095975004390619633913847156702919889156107938171421420490086118611922516724353838690262626727727529347625839008237569374394947304666445235290616970665480254692354628914288042402058445337734393185356113550848535366439788499890081711013515642176312014748016657837710886658753105899361374807581759703585545189146565411866597053962707491603572936106432821213634746124253642896332802701503389117858372004417089522756872619312758712823831970048732700799009932334844466301447962344201003262124868358935967960189414089485786511396725266114509909690807075002416721310937761130959229677541642455252575332522099627587691495999268396220607600555523896908669220219052177049026296059599331890408970614834298402210437782691332905178942041961033879408063466434251179254890165773777173635989027504669589507228027096460289494527203739245574588843434625624364647337405585501652545320163898994844945411424527563911129069419788805366980277614793356926998479280207892184259193375812526814889833676598275765859479869220849465539613338257692627174275704085287363421279985296873468671434913487374531791098265841686472714899380503379676519128979800429697717990555260190004930785485449784361075764027939089394633831167317528641191535797651224316064437901205313455897660684092830449368528521701325377579009524040739927888856268112810763407898852789611521844648392482063696146791744313210062811094410397859868310173754321713048911253541997207115030317702844876139866328612358969857780451890297920471135013975894130055048054924510860832216946946247693243064055312443355189678099149891729209839867559289439645588755245232775238998174222328122808966622233819991443124460580878417815805762733311722604672665859336365172594462413080566489640664810522906780695955670673661446745025983496813177551400586954981290019425723288944606352812442413257874634045691271991518982554861558161043620909229982256811068693266124140790501669544333616999307813452021208782732267826290001177540785298659518619643268575501564760909036942775875182670788704499140964245681289377332074353211197486136807403376473440646963669976156784316529700851057243041825289136304861240766268535603863502219053553378180497335406968858490302840371157408770474604721248795208237265852517216191476408862305566568995381997262510004446431822361141997958794792275524622386754475545506335337941059491330716366332959846439813339379300871088540323663277945896537351036548455963819817283135501953431188589067771225876115008834895252447376561587288928389311630797710815222793733720475241212772605747239343784448787886771500474773292226588230017727851472838593737546788538615962731747661732634829448348340153004867887724417682940892921751440793016007965420356786690831046320938483113631012454854221755756793474242036232439319198698273898922995420665505111798481652248959732796979682791524382982861385045713151541681066869972271769340284323354245503818788000281952081387267988565999323376387537787660797564947250852601188014100461249638332346067527974688292291898557936663063536211673021525118263830149756768066397728077297136701639013466362972066663235751544798531222083225992319733527022836464848786057694898744764856280536013332900743373684543217080633933592948392567032107842948722714023911742545225383814372698573076848847964191270048771563348780965436585098499592190434741216754688995749206399204402072096391669880178441154303041341544409160000557384434108597133773622272195554873721787015613204627199681583512060722692736564242523362007080228524803377281816036948744565231669056486642985841894078506477615018695931557508389232240761988837254703353633043462746747152952310692875584459560020918024854827920581003545378240932297417705320736382247131511770467474603186527114259614074839725753769283128323052365478854349663692271544167762085247884183816813881601939383785519564030983230861025185792718356330399372962455647530260184523711681524024673753789666057585419706013667654685799527588503892062295605384350010669297291484471326174635091840220975222999128880349104226913516544492687063063809666449464369532465996669404683042215736262450951092369839390256208955424827434699503971901058781818307369019015330407329569081473674006853253892747206148892948781941299357744383339692568974538915238513797193431901402461518489934939529483871352270486397315434553514227512818460674275134115598364698654548361412940138213180769147012385044698531437156581833998244970923816508976741296186074664136338560601353337491197524660465746780470086043602863344963380583524930950666966491854865294819622612060087308804026234066286349954194275360017489110481926010586940140627342935184924540481384006360312887123642795764159447147697079568900598104230366523868862255966301302271721830350770431730911276550496125835018156837587742664674339369999573319158737329192437365044892114597073706366462379360251252799653425732574150927619168222024253178683658164086989675463666362429527799121748030973321961420047886706610946969735003885519587287844232866950932109632903734466926022278759236104758155619253417428785345368363000405443931846910743964815535912858995276230961011361873204558632882463806000214199172654389536026130620187794711634802843566907379225259182010631895652626854370258833528095158921633520899009737433250780112223844651404739330300088965198025352250041554274837667245925601594627496872268852080055980896111529046461234647458166001896162765952630787628107355173479766332213029958266911134395255269038993676409705352650011106439256468425723796522946680420883728144440266619912625246464715149509678669758450840983660140097590482606013872537562056443774626920918500428084931851744970291789200653860223171047786232610092704663755467186549865774024983477202424819192542259012690332833281137513526137424006539058330304939480709486942438970865810527948793976300496361292287539714024591452142667547094277606322888994217767804314697504114065294393711270970365374960758288101121865447485248267285187504027612671649127214024527067352057266904282062104739595162477087998665553694578145977662606989974406680000417969027231518367574856217127082124610659016060265021134855063302929361470894026016891119222552977787976040062072419318733475023253680861342765744957536841387858863364051691822741528818520761825578803463547968765713363256294036993025096531239566817768142789181977066119060439537927557228700473567563933763739248957301917034140311958267433884324671844727413880569376820484036587560562074943828389716823270825979473147438670358328480898301503231177110664331165472966865895555278457879610783190756221471312132578449432801076282782184987931901336849959159996727219008671752359299944514930874580917891104451108815838910757245815826405486672372782752700272835293389110141341017709032126692735710628538549031404529853053452203682785764749272469304101950522207763551216130062194433397204256165216388755212973352455528504442626283694224134219975341362619494844512114569396803315581390742337714899122111396447070166615476529467846391020585808947925691822906182376238120115014553707827694502247999399230874376884828344493480124995782467109866104648015409206525261234237456794298211092562062685299492362029236593443293406311557260287734341733490404071295543123005574142170326246291886191771573380786681731893894480731293246877374158741945070549164100832499111112935414679792348020059695719224384902301029664700439892650859822475421303459119033135465160428002169688843028917825384757757997681579929640363398734947201711714551954394811039992706281558438331876422498783557365633409894492524791734057196751848367514480908869045651686410580518400741655085160587494916090139419700897877173168879863073283099937795369317841089455823936141595821031492576873838425077346527400793178401735178854044612930460508692670641393947632428955772380689381003074580103774785122183525606166557953877785975983389454137664464394047233440887177323715511464862930118719868239005887492463630147872752123353138874339547043396700681717918337356914882300123018876352527488728663021751848292952614747960569744933492048300769543289830844422753205752433677442049162131803813992595217159015427463169993343074315812967457451101555513181048227454923614853804756561086515650195568390609829467194503890995800808830078079526121597902513080008420067587937107462352714369722036707331812728030928630461471195145621085724376232461583496433897369596177424287646401173938336258457377383200505902053396476369035199284783311125318339551584668764657933798070976263228611434556868080282956437666545280994313068483885911529287929364350941569888025938806495521307504808564105452216007625391955864972534334562518285501553078459055956987717912188534380202645508192770585092525543290000718737938182451366319155225294768941655582956391305112936713574863382707490164357960247369268389784227391185460535891561543816858954611955356653021292919323717825271849397010516465229712477965914754504310149138193523067664318883916867422875328162883926830496534482675891689479336121256428801481527220074866905103930298856449264513812335382963970781963945192359608975210068535388775785840190337868545339316043304948118845126469503436448883657338347584677242939894217505236645592245083591895353451667368726836093754335375463491804571205939610877656179752653526451715697180766085790235538652061416925897268401107932848988432182582165816067804802462332938740192059329266654197924025159274394083825713327190875505111227873952526989043275779349759041776786379139500782837268815093858027746402327176315792506174705243863024393829376310170954802047286098340053960454526336464986977243609492118755270820014992096288215570979448934565734566801188113791498338072308723794075774312788708418979121724820399669151683895186900835959214678180596859370925916699422148919143005346193856031606205262773296621101222313242906038710683414481927522422728134055477944065565548178235584704268952729525133726171812474245856719435160493336276374585614898524766860499754197061432520652457018832702100375549525177353166780345874401270222233647878308015963206407781247174252492780162278748887883038784041566785629962857185527941924000928482898704168307060770407116968886020975422919982977862754175895517886487675215363611808569963575446129156707010234426966490130512194706150286765039975816239023976532085881158804023093466350355270911150651735345963834289146182029266233344343164021561452105492577303069233151595236991212973748336038089050919646780609810474743928913575268017295652461707630308640855815247387908394834906560380538183285937883378094121799162657982505735076868899758329281640420442810434678904203346615456364789527889424260136731193263474093723762849625107719868325546414582979739828474448902717935795823341167051524571283657274733675082378299694161145453476887904094326775108775903892537655531891413075442473174289781520354447636677164919786353508465697897659501829028758971807781715420437811575973415893204382647845097995919604738152729004672165584819238571652360377606467725256745804671124886930424105217250322822875626072417599997182533163309727881295203130829614230437620540242174498912790480822507528480700463559586340335494004466002268454335982217908432266192478635947479546788175840556311798416895062121179217714787788515891331138482583581077170911983536637211041829993355803899738742989165251265954213676075875122520582340248947822640525754753457318380357717579968214910055132694995195206358025937110209681023428282293630645504229096492287391599656186560166037016730493649208444591905116689778444042581347557678787418438306757638318445074112951163185972452482882585926839350756919447588309093507578275782302758908767111061065346853341421079736113737492841069986848981338489468054103838210559868938888813262526266885186377028136122693901363562072508450414652533199146545880049824928319581728089129928498165907659514449541723785785401702616023561754615834066318109090922005936363735557876538102843516394906258517736767274741252551473644090808997395681577028971511059895770676597776610942245732717675843702730605327590492006487469988151764749016523128194886855592652355575940175157780415641192927755954873808520795415089355026982055693765289993482279152893266933221340128319332059027589940546264182400788720452836625317858995438727601844200855051555724283686727956460225586592638340968950713412256991638274109025514663093372080412000777914259075363162482482101114982846655298543930415211213604482031758044416506804430106799248558870601138996219480277690647486207610231516652627050539190429474037371078934656497446672425705089604089904494671498672610017902671028151281208843827716033481338919079664265705775741144867728031845837890699432072364312998448705387255260739638502668493323251819230055276987589041463589200338061116225211913036814200620851798687395317238182831798491571035324337863380072172995190573829606706520361353688046810778664929937406612479131989931055979397769635123337743031364145968214517925866158621773589032084111077128917294494921126705655085466482069543537787051594106952108878236857824159140295213698569069189586929943557190138471826744734236613292379801654673898488185053508483337863276099705573752165518154650155548120213317624402308523877576177472968393957054379899680255805104515312032740061638125838050177010762870782518542644086912471512989626078456963198092056610091219815600048331376921452289012344036411302588729335997863934204140392068458195339533122298574121243435651622558501693381066838155990314101413322555275437758886868129003896302117949844884598785169250730187510533985003445830202840066346714946085742333950001667172732496463226846434208588438643821562304539836942312712335858143608275562781072472421619892860983203935295664138216348604393681028740172935938655964186946377189115952043724000902842343451718234563366468023083457180039895392586887805837322439955838726336583880223733950292456725078148376683964039506348887800270312213171272648426142182210399916747813362169768750995969585784918802078847800869687137346665784660653458749629592867508927953919926446066140255653768169848592538143061249777028040365068371716143566228258136560195715166807835409063610812038359644938457930357724975159066120671346050947125928931936244082349878869903980920517242310881160348527686777734811165471434571723446897441091882640332039156985610568023855243229425876746040110926366943371251772891688184037653636417307303814343184563104255107848551853370834069340279763405289550494029326657353372981619148469996018370380903810681794260234163376827186305918738782214540953360961794095502940690503190496102138973798746975788123676892279853258218940669448106684095861673332046842414801159567545131432043120691863815848072309883596716191817335687603675054916567346052613111040045200920447310113882678181472680425520207662708131427160945695030457332584710951137804688098536808190099252216833335700752777346659404486939234183826985328381309392529001458361393791887995591121429342683522611837442817045549989101429221766461843928865620719318012880992030297577615283197441920756644786874243186445611602744902677563334267203117063029287077535466375286279612951277710747186487456474684636007788596421412621990090748700724211814488376827968936579477835213481370126852254561535461792133643180750081890125199906138294224900702474834553978955044227023694901226673565855871987507828577583296200497748509439462287640113345187391712000927238519102639118925078370065807746733789954497381890791091324385618564578069565185469743863899966258899593676262448778886173286258355699563340664953179497174610207004478759259545790000047369167712909300738145895651116570947192276019736455110007849219691143926549811988434968981488899540652909969936236208767595296591081085679045427094224780126843604452477650166056469757414430000563257782360718418129126040891422482629181396191271495141890269617366842623574158372173017476382339291611097286003436235909419530501284878314875138301388317978783798114161532040705261937125981041948816717404390947026331787196008685663679631446355529888227253929935399978580366346187671695766441411079661995492842912159541730648648030097083842274432424939783816127506287657893716054798243524780686439633542452397334450398127700300678004369991696538133385659873209500868348345119694890096856438858625081616497613737343161780270016270254784289943037930010170699960616004262648799395351737829920897692267577364099126057850807773731107974404905226137296912447881204881814074184812949171176677648694953440258614474207764475106434033412489591279228125091172936789913740117213991778296199609481042680705400872663615315816277557510654501830814019285343383010524072545785864350730190579733932665428230371879626433467345107022444619798877415321207863197672205953472524126372834319849985085520734516606788808744611421543554491712416937917639751977933281809925946048819902715774613031034180439688369309512356915246517018849156375793346420413058568221628999224842247102705823771789373212537118323462376763901431294896955527894845176243566851798636546796042387072969206378007036682741706878705795355127355712801469539841136959649840063069604455742510729027068215161926565838554333611718977425106690364128789113758759540761210556130809369671506801213965022484450185309585382919435653560765729999183600135203748852184269079824757561001582388303384966309319349514082563788225679314736878728309061559494536077400707815520142114067953008095097641501260883319122486445311901977067924060066141950359988690521958645541679517694699827816601569225813449235666126753275779704834656083016218378326809451743771817577944870110822066840877367556149563443729498204160767670767905688350455717667869668981131117682720806615488148144457675429102425413239383026570246690955736071670548989558506452499800496657131219277295449620900489184991709601172460914681845654521141033268648258218724575329849109638228905957149816318557912771631045215920812848242044756261035770876699122436851960753908045502299999562246469007794406411398551175629480158944174451842387764846638836799333442193749610218846579929213474667075812405873079751319031195869097794175653454736197424069607624651113346204188515550511347445156610598410988348569925555535036720057173134959369858065185681151798463464948895571489695982823475316946804074904956207921883195549436399408541396608354353861318972189426856195402600482783644751740587092341421366296117379957905098571615218156193188758105305688290426958871118266187420775615477564357384042187425534050160603115607774182390748443357904834235374144517696204032283354444981885596659249609866117951845460816011304888749386178641254281906746922905736452442917242486174916950993912994774818105796536391465725042950956729204407836191979828043354632292064400627484732563861198518374812668346694854285277730430904033889913119016373427388194991116875673562932711018979584365280749978145066876031147691893028219139387313959753047413803033557309268459886789906345760807943558092144753040084204578534743411795235008727924670071926501690211277297722657982978123628642429302852848747579566126105810417393504918228557913631936258858552010535880937130134084146781431047341994738009509531361571723349951994610630782184194152620633554111664434945613225947951422853841200091702986061599193051849385563656349257860013163150091758851019465623055967234801712753197120707460247733645555233670526894363026878369021957296289476920527443329898263429984786307348094757012561534917568329485548873643250418806015110840581771094925269208408945503403493324700221056503399720141551651383148849837868786053251624335515279105903790431135010735341152619388712348387359052790318507535203980823812911846036594137579839215404682059521243616430545595987312170263501593115551717670079703308511890324610192370564903012288389226208139379220319032564918307672302224637248254288767755796905852832539425793127699983088067065056433751121619384048864633491460730285137963912442264345618213322986436734611690514640352448377394109473359467983350304173316071630357415262956093954802648555444669429446361580789613004332640378925556729829990849836751776750462486567080427122948100977865253013967504171669107370280700810202480388115957982972012520402482994573512831737395936010422443938293285122942461620709560593566536722871208683008886585187236327824846007811930949738141023341572213489535242888028766487673146136800007252118312324702691398547663671582003694783826928293947094159093232655504064132869173758856135321993760223410340192422638663949963053399877191209598902052401612880568309380190736326945270271696166933671868192699876248726162026796042920496450009331291373135659426735824461288198455972883694741044985692827942260728881898376034893163553255526041440256478866353447967112630733007163386771371805256896191858425354441938258737328526369329209450109660779399667428401909601829063429733738125872110133483605869631277535242818995113478813149123320071244096804400603418222646790615323339646594085073981000807667638581077839108332506380532343956276508630189016796312696538913058374631310865983425978208158982039350432117638180301894678691467737501881766249545082920636369218542350394555892592468456976446643194670667587693321255807035753316556734325932686215225706709521887592248510766299274208629317410742688081756613726014161877732506962609369574785312349387704403903839130026367380448373720380217498529516091140487172712601499995369754122433984406447724333522043258266310414655140518498584278282772201520207392211437498179833813952014544250967805737739180772996437880235809975483950718103897674343357108444989216112144318437053208045140109653719667545379753998937300689128575207863779799914104630418398525270106859072899780751004470961997935571177010421256330968647137455067141373287855164314346670551926595778943696338432017629163601470004127999451944868387058323992529613494649916809133220248447455238443174560532198457795662864625646261190239987877355617333158751346669615677827200296745298711389530333790015608439006035964614794058050282047512952659807274054970227534875529473804992018954499729638123630227811825603417788389902644727423413367254516997677653898068300089270392992732156800330556007517762613594721028776998831748683062132832118999454011351797651683667843477049558896129449832055264925072064194702561738251086732454602905325216882080635797546898227357970904771679258915599727025305704551434911470073347311028892886345618234349260386641486366471101187369286682285638030268555465918732348081349810845802156271295872118672827680156594091226972734881276439563462573474514518216256151780223165389677887485210004988126762999841701693211543031206332228695218930941798781798042760173893414836317246622075811671818010007365769943266431983410606732256151904302081751394383586630745579436889662218970858071942793295748168353501363990917680900279816479820944514116571357701671879915682861077902660916530961767732097860455862079816881465510693493451405191469338509095092115152964339668274578651338271141909367206921926156829869259924931995030291615524703424904709501928832589440338573232122840201876498361646719751780536818768159451324202627837619493425795999370715072388070395064723204796252094831049794309346807511336637951453167332323914168625972734570772039193365175427116847942051598610752240464909214870893315283410201758472074975401587540267373730027620964391113367037661871631776818812224753629553531438274413275932039812150089941847434727641925492054189540465114152015560241012937131334768066792955216197568202915894230625836739348309016675597567627353076271767598063712780079579957053910207799389448346274159513470067273301819133229649089330717837316126933935657840239098284950199764459732243913912639877692892746843116694701227012180904016392416337861848697232877914352161759261123323225031636453552531175411158526922757862978959043290964667853934835457166336105038493876675201539096039937365011747148930059744620479514622405262385529434156622113644745299711719749968927889500888122307175233102074183682967147980101279998493083856412576447174382847054011971980460884627627598013652447148491391089538533800853465534383386736211876696045043510514478593946247656473479144593117876049145238750681475260773581962017933639166339770812175010276267349833323340855948969057652096047509157671369658643397343556181502229314868031272822635408079299665000972114258242906485894133356181063862655512297622214069328095834179591559550262379438180074213166565383760557614027021087469172211099773880880189090503638955824485226471182695382657432403294424439594469462917540993135925604796968054621296120417385579383553933571525573826232336934336882302834187986794650087676262878936181470120701190572393607193840882726345051529436996866844348581893340359110821715402210660710386193134533739403914810474935250458525815804455682337892433143236698894547336600707200531400073430800988782499664754304621164357164839907324789359990806559808311416693955219988151773567997739565698510351557203990299382532303448740166369867237879225697855070561487741090985492991785589699263141062144110629115581643239541166024105066115546385811076686948492202293498964961037565418861720221111855126451428696326286473033243917923090288465421956597788699564647967466730021990134551872615089296337063293494321044447757815925792238193474945600579613507752222980086189505293817807940232357472216038598963854597614399599187178048393382286153189196208054197863582537116032373238204413540076317738634463377952879699272650499794159714675461602340010647992933058715820623439246217172386185330301955164968442523512222728056767686981397728920429116602666281126225210898883803000449820924731897527725916883594277326025629975775669511543475019987691290283360441851717850598768278558582762455419341743472551936613455686058274812328019812201739173749635281049208914391420315910477111144259235788337589145923591653004460824252121265055588865836335535830107766287715806699243556424064542255574367646961898995777603916695661865668353849171552873940594838813897808792435216936273446059203999551604709831594869473954034743920872746652292303957583532831864274161212529878321405187440331132624038625986350197271068631188871249944626351488911941661446345708737588053719889848174961291088359605870085841579599493288300212289444160233725447873377065653842636065416339541102050569780994220757510127093389373811823641391575652668074906335559623694006585544097943830146492332218095359608639494000850516730531934338570272914100352759980260055650763608196461509126576167517045705093280658108463632169451397733554565410030821801023190230279683397133979868274414591450909185333266385409035657056415135565357868948084276296621212676266581190860206249590837216219998118327438786044826581039226335529477223236427133631955657280502753710586623348919353513005239795980837122018413550003459316898970277349619245308442606250059776961166190990478134390911149925306602420734224640414219214117047795497094172403133674635139536564787806903024930132425682654258123704370823043081719051981192208629098153737060903306532976508365630805563383812610188680195349746663268159200812483921722943340144600034157370765619244303201823271355790728326422819118268112908690683028538243420986255893848457963007197286828455580333715168488322688367215927614584201469711329981989708256090029954277467719997198124877527974328746723300589388451295281149978907148107552330092100724849109226765997307231514284796598311125573997715721350092669836017462992639599811182027473128284187325331034203029609298176568132405509390931996707598683700619054342625277135662157288700906384379122247728789802004355606853550067889717510253500447942780250361181411664184139349257678143179277394504838273032299294304892390979150271362245564625376555373861083866232432889463281658142756698418264197529881655951554883059523890044832884689678567911129153779825869000313045072452921010751380828621736273572947848572593617922661947149657167169267321096034838384039483974211682527648415962601583865346529450074119433329422165874313742831077439423930615650715489457202377451038273885580254365742126997537010428797974341171464471845812369244525156839757714625857013835431371543423534480535632887649941961593204904265662630352997602131568113697662334435269050504682388991810249554525155558878380831375614909563274761637822205960556124065757330789344068338833055420830595186111649741922141619786541472384123040889851286228078733730520328437722873914658390293514152488568102317601968656412573131556648553149472803290881854199592997577729673255005921389754327801139281259863478953466783697718815240837044831034406983438620911335866394775448764682172353854455454484825477174364505645069724250492833571297764440754496582514475922700051516790437074634915277260281733560314474530745855359749522905704290406692357690508665061014731248063032302769517783175444368992940927028731505606709768120774574018441190618783612602191454905876408380299252065917257331514962346006350080835289990762610180264058505045400693953295509978502770169120137092112600364830737646426521012019438408216133423566515275833043115167141863738226600244717230470419502372039122454926621306759033798811185218353272466498906501591151042526540521925622607146786236873319135821132227673561865865486352959320225042305152321069459719272591342380765947851635424564680114673117779067697681505150524446780860252060019499286051134650014328668417930837969920058385270880231916502042882076182259388224461186574212649948002471811799825330522389184258298927396994010384394070546871425299802588286326200678083010804581683534756130130013069704667229529232537068631323470263750647937386319445052097256479819124385620030558334750250897397341518834293786567686806710502083761005744411447301989743425435064751129731931128190988423007264986518501746339483497389152915690053912224582741885241361033719307914876275226077785714898563814502673062553724222934220904395912271188732140035183231912920304862397893595699629902899459849641980422693654356258980085220226836120540259428218347851757028369589254623804164306261786632782098254706230404843578016187648753639898527023803167472902698669455632389396134260648265131529806875529747270737631472693316990289418925135206469267206884936643007298952956498798003001113760646426789675565438312330439648865962648179939117000100391871299708748408398663436170732387315343255441827433007667655828122122910563464504673359280853328172747333552234558146392163307407250594944907584677743750159798681813869444805434187357831219788698102902267029434634537986616287173580716591571126152442223083756258815947626212582185876813460345882105368802079030500558118290859513573410123463195815270752391498623826544349219453666320811919542740676698691835937604584212988774206444447243735091489877497335564516505824419329362999229894743104071994954174930278018613023720061976090918836344655813033680171829446730246993829750008444357734582417504156409131005343171820429103911243688763375782315401431580575389469061552940341307529665737211527466195046404234373026652409237276494062404100416131255498859851219729113021081012313161001815097996365172844780326834692852542468504054178419419082245898186578856089215017741741458285698006063353447851340627696936986526983756896079438594704538958914643092971503053042874843248630559742274449646169447869706129726931120844510642368259891782505330407163660901084957310231010947272107143920404841715598736111304266650164090175765384622257609504330403275369885860118284323910577401814213016155837217792543355124055803015109595053326196582466751315156040415258667024797835792748779588391250524896661232880983436682782846142404973960575824081214168875526225243602938396961456871933075653078485340444589984043996347454137998410140699991810436766103939323271808079175705054145704446135283246467048796839380523397835204238491026426359075354678306472763322343411468868572811669491125436436188277552667714629217481781540587731441374747550958362950367488295051552850282333613665709428917836997205845369815758070282286580614712843277001840637093050591579834633109960199584895885960731510116146679104925872381343591621851373211429026771496177000898289689501036254537035955636421251524318796192354429478326841264556843753324416890571119322793138878289125439834590685196657713714590500431759103694740774211772755415648189389737750190746310231820135967455721956675912413375274748779017127511780988769088028804509417281525332356738051831454584831415921540644580390731151441431391798485937139680777349259419724935489791318139132727665387998059826412214198955258549019196456838000465612969046830751382666452237096309917732489256567250973797842534905059733855643857362934081280490662050374585842740070039141815152104767089824024326521093660808589641187235117350546164253139492650554280166652484443348824411465716794348063207774819885481143891920865416312822010595430042004754493703076521278604749466061401528567231381078056953514660914576917805960597025322021233956940036779559289109245416219220361184101600198668730090290095530111194266241642656028846718894946830710956960467649258039128473334336754759716838783194391718450150380664964261348901023190537033745754908615848836491422577830948004816491369593974011018508281271790673013439305175058758210091779643276713223720088335888550679987990990696240691972313716605579459953091333798557395094738637901616096204973820275952333659993670525268862484810093847274967861801184270306162150394789149847759012825212261797725712036645141429603741495990954583072454485147157453903081778438519498491341784396829630578968094700500520482701804973173854565071627271570906216196454643516516705644672989770124485249372633793070291593909437125491402498900668586394145136346395571979430185930531101967884184969593517784936910712393990578282599213038753859935130941715853731846135780421038249448144762439015684585108959800444634736060770097705205096017299048192962110041770913293877771526485779529659193631150315210875651654086089225349601260072159090713786339242158030467424692611496099555828054088604550128871249842920795573121141817400328437897503557108600126068266295995487391735647412163264955117932803726550467814991940114113397472039323411017962178901820840018381763655091321344482826641801814260906578700127718156418968995192220359502838741269136845231583001126220132740771641542653538774519911085834036647637823123459451191248479298267205174153360620956703616123887164527973679148526214832322340392121342585038344517515944978853123458344393240280785750669043006874121057060659891938751305891531132347161178474910331315208201966338877867509730242145053016424326267491345257062220946879947992498270950901907605306177825982311465106298053333654933704310384333198047189530860680855684593866621118576026524254461805899330803473834951360994391575481432363001821504959904672743484920346389532645104719814823665907691777334710564556546890338225460788565670467703856752856943231991152850988110484955211939038025217961071864249028341291168532621853368905966745145362718838169199489587900151333648707173921068964168528186436691017619488807806738740139210009054190112311296573956966046848747015308843787950687294338503070182240864581694571465725882301996596513606768347678561683797414445139040527448719183267463914898603746497368236753872518108094983803887337409450637337996517830926293389667936722400451720325844452781595104404123908819506603090269648299343407548482159543108982977665018465075858005290130067089950711578745037761748291189898736269155173451113459809016931331447180543653791567334360458222775994698548221048682342940448084154851102250021148175834810199097358350165581053946104973385921712716809673577365535441099082367458815018736679590660703094432201234489167975124335504887914662732563656039850302996414584299942017805253525186098716755606519170545567439704583906417344966772817825636021190769391331085933566428099443533498605233826100896253580962783074867411493535136662197070311676037344644522438095837284788640714514093408621965176836715136605333623754259809581112340335494128724762049077094903621591925190957078642569628543407621961253781583255010613632839682013966383303600822879288920516979164687673966603674091662889529310052174895414806973596399389765623176607670886058912995264521572049454776807671083893940572862358633536852367615926536280424159563779179162642028445905883536185826126882800811610653218535185662373725038674497018690299870841315952269578571119172501426334730624344846261566044089656497970640656579727719556703207143061074254591705360754124211325845623872803937506253257217129922189670779639627773427225597698284653899719130127384374654164390408225784353530500125858150919186336455852425872762645712169871984181316562493145982236184370832179427010737953203245852444627965125071491402729298792590443654346600908505377662853443672994005206594187322735072692396277391158473343319060835030364551415770189036699822878685617724923361992623225643210813531931346363780871027765795690696066507251626462459145805960211807258802989574026257975295809408682054565455704283622387346311057760533652737952926630250211582807309691543019866740056826470367926038816377629125086405887382981692697835588247414741490068995523354170103659369703107795727392312040151065795330872591574866367400943796715691732975103439776012602768100038268103660287888397465653550233560542419231817089574316780905368103463564675577784042007598970491428789464320242013113939293296792529284272825396636896135273763251643411910340338826643920188616661733354126017771740255100539628547956692333592223701906983903409080895431940749287853406873634712712261807037556658526411647752876599052230568741655958873134224465275306565045620825351037955329551785865756377618669146628730538401865028062156220925717971163576970587723938536697021692036367916237634732037309439587771579617221010490264705428654559067359286798042306345084929111554829567051883400571451291198601166176552024560453403154691198374676085421346635891387019836045017207272167705371594693942348511359833537825800411859127908721684005929011735152703092875999882625684789617225217446279217837203152509925131188922705595225949445561335676535134106251393050767340991327978115974360845698127288889233376277291296786416410483748906715305424066208109775261763925383465616284126468257209450435513563198113508906004873174643555425753978111307064785759341808750899461359114519974048730716628802787431097643711719374389010096010599542000120398647773857667221171215183866037176687275217730580517658455995597048597635753554687659253551198110101186756114580312363197758311880378738216572261927105786128686473577817643980118568315650480301176730865101992136317396450622560171222124993796379027000884684586456250816828351358218284842754835104314880632155796895288066178555714108563501848292210081421028480359862833967855129440775777280744201089091564590862347906389137774478394650405502440361824638453711018034410472748502657273990625536456287142992983592935157647394305381291847686256483371096801705269364911269891305245584690059498948112292815637958748268648748559962017791463590873393921574129727240634752058518253354164683119734076157997563014287361418655562113098755901153621532133495227671419715584896303429943300949006559038983998353926477802067313871387405851888756412320982216041370509885377093875568797059434418231752741653267689448419831593434128000116538184841590975083356789822084228614387656488327322144762722607327476146283065822677184157968815478037879021610385859375507271841984058582168319651317381155749661354054385931083196186673204440723286069575493636285570961842877445437009968905922256645880653145257904713161336723882983302270688193192945884388789381108209865227537497473421358700377325627879609779161271178121723255381489812450267065478239118508948839459107289309018224682034133336808341905436055559941592936389411103272585581257659934491645352354905554847248508664407703171063282356388735968863252752600652918184952524208265916778938354635432628813112444056915609011049793940149476437854150110596495411053927344807468868680644743204921017194725044533729819980090411442925080185326031304294908099408503046029419219708198180087180111184609455552353489256796704745783401312226702234828114593964958874810394063324501144522067868124904702561830262258088343482959972043582605016583183409446315452409696800547331684135191773650302196354764328845663903052919396819803068815012889958497290733740185138200819966564183511290421638850203257945785783869865164174016226680008815419480883068361000888755391465046918301609653914299845212859812982562607039692073679167412408089700873606953246194898702223360772826007407341045412145989240779114108355493920972733158194561956455261714472577884749565384603921130018561778384762620856244689682019617856191100553437353144983721244721461855622700125409129310333393864640425322257507512693734113393259842866673764623572737968388677094230292994451133723407114266622941461595728098501274718391426861585827086443467291778716667716805660510297781437176752987999100433895158838266746754108357708914454192302185673145176460883322368204111472951906617012517915712720420994806637610655753018680601249216214476913471179862822107338241055415642714945371781241645222226939481294066015230875349997283451639884499648910623223354799657804554458694781478550723034327877700624017752723196719465014257888029626796950617954774970913851796130362373010303012853094584084107194643151351946536052080256768203363610612567112806072230449484497909686504879903895728857570203278007603868209468574369134323024456181983806121102704693243627647935264481824521435367220488953388502578533888073553900167739035721568550960674465495639627907573793832744321674165486146945217023559163253832012829109717406450801895610310527893277655543962470748713817877046003433796642561259728825876056832380116525748765879704840285180353377864476380170191957442760171320065557656009712065493431613999735659609613441399420141281448753737002801087248954694877246453166893705332192612899460226498794511544084014086289006579227424173261568049246627677216325690704412858599425678354753005578116448901867848720692604293279303935711860472309021850418515580214208271183154127466948631457400812768332472713287654264042986814469371853077074147072202540396473680146188444967551131009378690686582459507874798796924531952246445588482122546582910566658090142697654176706974212513866192424289735823831790432513001396331781774641063878757312686165111167229112352479517847407741401474885215968352418094357049495725156933287969806308279018658354367022090031817539261707445854562335413416121984829212174932607275472182538809379305734736740539667728904854495824861364228960977298931778973620631476488990975095847231825103016917680744386882088862144335698631844407618032307697766937187229767208449494028659175598247470628313067760669982597784429610744527975900881543585071104088811770010775911606007237692665570081164789283347114162524841766831003866332606197744889335715068397698531262403777865176980765134384635382329154232674315690063448344829359136715126817014486998135561970355455659285695077845616487199179307333545974201694304220714864834287457857119024659735288643559836133525756274892333473296997326166414557010171888025804167470505411617358280495930699005678039952809980454926547998455635260149195161343266995942160717534819509523463985894002083018140936828830636251929050987815207880904649972881292752648239350651348464396554613290685462635815587817670049325474527630551399045771109828399075153049232929915530166036152259509777451018711363430382464657317123313713669267172284608703975893936578420894239442661567663032405959057733719456965705326569739148979508953323501067210684171983441125084904179007845793270050322682966145830998959309217561604017791581568460053301781412892489727286863403247197584488104105064685436598168200451626916453456308298954020723618160724463423142912808158966943056119996574407093477006075967582378023676127664317154589704687168827009623948095814622607503106679831193339681640319928995738993371833646070305222739638755108599469891931808480628664376920446811997870377708232048965996873627138262963615173834371423123878362517983832520210490451075595959818413712812795385965173522318352473139217295056229639108603360133412376667477630024167992572429540835523204268052286498979851837491874263401870049499338102046174756959364515390470012384732900532738503999536785046271800696818107164529033814853539816409815205093670483904210872576754187367270899160535981319554265447701170733310558309531541661360356613946664041909352786637709125240730671627948733837379335703672086929998545044226304666440293906617893027015368251448224500243156939383967616181117131949891681480784811618358270078775251023746951735923299788349844522130977781299189841531650169497342686468581425654611487596614176248004514265751563742301452891072400913636854269213224150854502454140766866555387728485295076385442425513383387330015494302856630181798072488112473059066618764220480971781008290134323377858296146031313209449867289118920085627281248116204968649530254756234113711769489284025404289279883940809418370499092480525400199231077624576575487786070091220798645013713137957572448351002492820382977791488887606647330580547717451854102494025717014383005588732199120257492019422325106868075473626922492555186145725303710264839825512612412884489488302443052906399506072094833291712234315979580180936948813419903669120274167395166505528981544391743377510062237216897712289661969668510880816346893400747422328446306254078254039467861776296746736872333151549847174891907321263958897503316882314586715909328293382949045059659815026925602182247208112572947206868638126602056159875570377680263990649375459310211175871342407688347315188237361023071022110498852285337971590293840327669199392699010094112295976206130171292529591541412429292541627209437032058751617696356756142143164700312277877934250022275416898081966053067299836027382966334102747141252970411492128836651331932777040422123986176106493634346780076832995675467854474215866513539471144691878316161323658515769241832187531522913766486675269268958016165423873285829518957594763975275669334881378089157965618339877228409547554552044775445541828355162880391220714405093752612639974793090824295602476776930768402914363970334244125966568989183130574907540840554231130341253174398571596597313760192204457281058671646248467396159020352007373193622660195502940610511455880428584601328333064382004782537160605240656232798675488940507740826891430058875356202050048857399026160348831118937274011348556731468940226372161716353643035758567810064214480500378181666109971456338982852912053513975363270086337640510355298757234753849634196556758499191612430576067573885513549105584281551164960745455143600017754123269633204361293687982635521467178373227185915496863172306587335363522947876182493632049880517065836548287646111274553866327496403894781069802742383554233572797412173803406568387358624315578757096980430408867212914533276035057913121415252048326266113244840455322524027951509476207000907743098496459058498688243279523653281573232939325396021484445639700216867159337060551044597716707024365136080330371165499141709698623575282676040357204620035082335746164578721879982299234334657451675371679320330902677648067273022175983326409462397065110535210187927264177505435963446248500239850902234853526321868062746866607100646849646036173542233654737030907323867130345956722102184588952236851742784201875788233143530871095441642149403842905755091199106882937015914920211463922690174512628466265449304899135310887996039838215762232180263631025479547031766645124165090123210133207153390206572647577075345833298770161744199185066329212553842433800347639947998448847274478393429320757715522795224633778413184372628582727358844519200084725316759794974752878343351543680023525891337819670201638625852843741189287831614632762054982205594917157618541586511654962140059226935955316146752681782384916858646699484387936307213495607975810782204711598535532170443358162710657964039944840805970538450169509069997445632516382491586890242429834326590277841026282662065075101213504493166553108267951576655924774041479107105613660189914263675359686123900290667364046441369567136200462616195965134508166343807368657150673252240496229977061004953813021641402507709140918736147908742070321703020274542490270160115424479111874662289007102293187014754920458670914246375764571866876392041246296026395464754613267858304457731461173903876590665853455964384467425628933811541732973823705552090921311989989392014994716353416262811588000179710323107123758610683421735949881002667873014908616054596590185259251935885930388280831447684602005656446484765496892271862903804398907934781026309671522471996780015417086079646405332385104403580703476615154922453547510329877960269341138275641180482555858778337155965577806407731707186505642512812367421789393411183956844781621240359684171912972064628264480287960803132592190537135047968535468527884194514524220089505437256612059125566779428502552105153336854098087225639666533648245400016333630776974013825203295766120420935226549144948164053441210095542002486294914603317267549049162553984900037415858594033178621572811458805024113065303967128377605907454536890427105866508300214034898329158995298515117254947215470878233114956518397275528966983689544435377107806594196420462185279448599191455186678533369641648550384307579090278226555329928913187594364381039909833012766550906998383914071771369360113943562648408606027302164891729281956128065828415224306475681427051487783550842616424085889260819845645147570002665770545448996599153532935412278048367175871234760009951487041018076392858333900237537095595367117677412912568537084892895898234677712884463087940681949664727619809055531030908658634537778885316406232942314025452587026920661226899727861622667017802095581290897563274024925290511562167937959574112621906441525747607824110760726411646303695406546704383552749516728740336259737354312830590527577447804332606082029308581526515382945388885201601646014372633811370953748650264125251891617295229905292062616436690390706427528691193890589487282248319541855425706742070199582213926702090236023728999799139058327253458022192135157266812588088890701066140284392435113338841314354299371383527752024928184215174933708634526077946534608419716541001735928041719298566949326600507292175384523984219291293516120589565367457968908841990831186231516696902763698342614703229757171711671133930312025651425806781237498653635829550758799533488229759980132585051510102244354839942166248672535980185749811839465092052492785073390915839099220049922590543935948904138885378333309327800414616517345064549726151481632399043971242924675298284728739364012081860897187295806614269900802996864063039358671824652116216569429169526615697279752714667018233328932719858055986104611448388277522113178494784784461212705374348952805481644729551055104778077668063621100253779361965096965981272551552925195980006363301015060364923876555429457259744506728309447058787603016345317454416201965018411172610621927071824464267018079805699284383944393825136892894948974452594114651488624471032918610372573082464928491700058386474435459543636195842980546836736481336641397867863579066992344619753974142550831889307966890987499705593827675391470267830545348304012300239185118400155602050836636356766966559537503042138654935619088860442769317056208411958002955692521372406723616888601997661040360295878546986848285157583021756377196058300983888895192954430465269306884108577750930996718732010787304003918417998648458333055944681347686461638392832852800257666047283645102340168246493150709617504005916204185636667041805162402076538767807911739248705418940524766784689508089587467438527155184876676915475829583969371269120245293277071051796157410887990598765487035724669688694083569911326345623289886772290598520952926302706149482756922202801678631622750542205575006790664734667028696365010190354530745002122572051390173978710548888826910963363198245969348282523793450567208978605749005699978610725453528458484784713903400014667794581269871861724291208888381829288773557179896742551538123457505153662928843682497443722876288865966523339717669994798676456615009494054809887028881183637081148213044917740734466856326101893412621190015184148776075014577758156377193273778006821070034218775059414303312538208270676416117780128583452256804254446599237876464414489646554943385308067895867797061519726089834010226497285901769419055894313988607525846734692013662116151627646701354761083498271755547940148567323996505910591259512679650768390372870674637852576552992758140353410037033431461489440760937786244580917830388231027012882616291890976835502188742419522031992889433508717510579445521620207964105236124629344019332329335364160147209051686713814118014382987845371320746558799677838059904087595970602483303023560763451856237526245609288227792374472529312408121636661444815454938276473351657976565353004080824875579605589697161709360766436527301155766815258770856002968191747619693320814402679720019213640989815189940431994271392329906807768373498601613230090778875298592429101487390796955470746374002188127582456507017276921518442892931775952184942542922896453922348943094143656789821840150962850551781554077876172235524933770696744429882585687391512885248650644613268500268853663457851753331773846024314997109066958915221833447307640056108291080315629921073642596917763571369582115174917221442564132443847711795037422126334522503340662198361406842357421290616694124048098609009984981420625243471278895385317998020485573716714735146941567072568694794439601734073019015225668627512556065755552157177627971001938854552968886810687532067935270056757573705573966794983284084924991837949370239347230452263756192318496686798461223038540208691199051195084586808947273810521470599461390416663702063300996902632132148782881629792552077276955740959583430124751560228773249124901818352515788611527139527782844096607039135927412696167924350450566965779328251989058947292556239515584066785997708501778551506814707284704305528186109751596647869213572257794500417132776513656719074818361785470392891765552277345531884010897395453679559930933130430535820034493301961847300101851277210135535486052042656905405428380980238850185688623592140483922756417028108371831818655624721419626658322309821111072871726466210251706718634755837322847433656469097171887682120410896315028221808098426477085628043245504349701292212938276809499422867329690401947021163985997505186096516710535681142880918695568342240406579452400887501125835991188405100712969488114390274110467032638842951310678440488355152084146106757055861408546567139596993864302773182904866291172869643024063529439336725630842966488289335239467120031932393776578597585051385329837865390345872544350950256681577076019940831553091432042796192862427398259056496047039227899079952243653493713914687758718222753285871497881786682328798559208767195070964837574038200003304574140523256383691894219737575188386514788547868092256686728847045966919651229439628833317996989777065323795262983372305665662849161870319685097719384194110698070949618771827999015661416260920676450162315850025757307613435741917932002173060144886824182253254986195578819239148318047006348922101234002938583365369249232292250632064464179549797073074317751168473642964497682803274216105416377284895431606668311082132807700825874709502888721779395070059756588853066456474194611947931859746408138183669756054505204834744286297593516888575262082931894780379259029787987182768397753872160419515494307843309780528360013254796060756500416009205526499336338547895838074834287189857864226832155303771444236484195446459147102200556205142565369766583209252182109663765646888655362856789761312613436479583960030528301109676937567332355171017659311989148295017428438409311048584224589381553833845002688681459613989936400447895862281628301101378087924081612439181266134595734381636158080175120489092196382823669292639985643874700542721124108124261834398021139852017474143812815515116541363996307659188420345112482793165814265963523454926366919325692111449283091640997473576670514600764458476091213327902820593221359733512797511727476221406816327601193466762577071579000196591247204338195949537084713618299900613506293022611636139184319413578898766193911568486927275899634859086070899953153289569373294834988426161908938728606798954265330774894750989006099271946514029994598307114314589230578689481815157086010544408855687594948803866587466244671878746914967228022122705952838730200667589390115254266270851552928467470855283316622450935469788372984164884799654135141041692996611802746845857213595791062567526151368801624187370949663641464854006223999465903747054176320731048621367763153425679790881748941135258063237170753757975090851700623469404379547052356959804268214095023316711377211858910180041678995266011624669441877911431275995886071943574522247463539833764197193789633778568882241782417319262087752563145228716649153907926253915446670838672825113335486971693678296541521755381252403494538483637389175660812809536732166211518776153967577827895565206273800283710396387942780418228859002492261815444453970758241626428233909252264121462717816731177959120692077698439458093052241699522725126078737837321914641998602063597623886271867951974215523136541036070460009551602575483153971444796258970423390946623141414636659972627138775401166162859757214974591210059403265929092114523774245901327721455100268789274260310419899898213546724099322507092000313821304863905624014070887566695256166222986209690092116762721117913949154816147247808455300144584574914036780321719395324837573769867279099868850294307393241359971577980765419473860270788114030190341032064409520929391875551818179209673943867915367163970718409940557365488586484166716017048931713395467296425222720344000749303595992464689688502610358864779858065992642555938181781437661372628767627572164174308005155393453505327367113030060109607325780997127663735426153848935079288474828776420927137016233578684332752209380550282895521440481706123488096736890631513256571409541551747384745096700547959966890498096301734001394100985995800850012901399028911592129976299891558084439381402681152213701837001306255226251978075464684380425256810281076039149130544101428734859788890148771567731745751422132553798998412711055140475635544747679234567468219314002704660446276130920080394725390658004394287707549869318934406557410654736919505075596205283434791365766328399524499077524613313449277559580647836736417591837727974326969490971820564079625581123526769865371588575427111611113350873901251679184816362394367789442975898366528898859177530499085594155016592090583065578659619350767753465078455290005421032216748256122619181914835157378150186797440430653469521337426544877996057543549825461212181627841983085265402902909130691334558660165604473127348593797923486074424425299292016080778372163018991756368393156001336440965931483426910592701816295977806704582020643427217422835273809748326618479593143568594711515426860142298928275831990085146771156093161947372841166917845211049394999707399259473453810114716001818510656786045137973037597612731259564178708532415477098219413717234526408087757807563875783943874118638388590158747323587881264927569909708572509581553231840187538609745087683946635703504082387484322463870465592629048138980328810120772929974010608478763484121050403099811484382219029339073449500335998331004247780772126155145285026508711952210099012361692850577591086430856070059186368779041423939233933098406387450336609470901919927574662089471051500876510842179040341189028155551342093292962968768029434728072056099903399630108991403968973773234629921835924443888310245210167362158392022156741172534071381342433121706397401125720168452076442617717736154689468416666588213421516681710027381054536978004418705492361721428260873672836148553014169581959850753307993552759096474254451235640700621185743771723283270367967289677438590796531439577865311733747341981905036996406776614551538175290051079366866161045715367296778963628075982118373186556582205227900841378592811366553178439313414283812212762298686219824762691279381847422382640693345702514606053959376704123953938394353142987649472197264179559994828172103915767648611831778598816764802722522807344142012761153933243952932381298076566832163128899828703255772715597901525778090279349272956246218672408005139002994009143320577504944339372091578207515107167276160253686773248089870549739518678367698557281427438771299335144925748853646240455406528320054281441151085904980027297720502085458391222136530937968046422457496502330837534551284202127080218304126986132746872146216817418365386694404390389499887160917792746548337379769204365338668907144923276848737655482656019175245409702437605435879623525547740719011733536130741657412474455082223901018798418729416499338239493432865847192330356851665182470897359986206678878602974325888521212351495910865326702630681336446460211554731088704649896318622155383190228377871629856429764136853746453426189008512519700718720048133873815359875791787143876973154278502778979997663440957309935210107680038592475631050558039197449799824005135896743990469930408602735347598700167920617794893938708836176373465496822888000543941165269541536436086941868892952439343039015616791830853705051547535278908721814813740940358672599097863173628014776662150728558077801807444638874952980692536602609290067582850159763288712474942258289237108620784398945159371089635892517356899736452049789610002520202536228342021027340754968746369535530971644374326082019588730804563810509088366826248392999893169241479446068332298500531855652311396047350334046105264781888210314279479289542039657133170227947410742271758009620031439792433418337915009590826634305494238568841876561594945534193428718512902168201969375073457881262948113282213130133966209854133688745577030102660970271318507784554381982753211806196921508476490239209407549535173155456094213839448508588943308421020609171691887781547527393140741744372568220678898982463376978699984731838519512283732509004304120119526225971389807800552565374981608932799692224948213743948747827079394772174439921089962695739114332983270898241878505973097906578809176092634997066100089709839863154060126607240237582949145650715781787971599961370119804030382944463506295286428039241404560339014427477891139406143187165051357836535152897537647048282781471676198467485162074594282561403008416847233447222025260405761613715838359239271140182465538710271877201876607759286281637935325798198660567333449206985983784740626236475212924828031568131728775479237931630716290739383590285465222828533567978805751722303708230491826935816034545129286448422620115125068094969308493242869890897249387688059281329170428446755191064995876249264907300293072308997979068087186060218606090222181055886586628065693294406853061503311407438017225285831016724989058868706323369037293977351169459518924659915556595787293616609443661423817001997785981105563280194112221303797729136152881132784350332971353749564509008675826232752454257525961607932229487140184811226033052405986765189072328900982080076100213359469998227374456708045098258626764383310580026243289183428413640764458533082834841895403584689623217318833554160994180301048125870530016830270221449139513773021288769405543556046088290016045460241229180363405582092182380313546363096490237828566543468910924180158668124155362133803874422305890114469223262950433516119058367270698100786128777072336852226166560817226121493733951073369500080482131099712305398723182108405748328405854244518398203484962316169176997797799967198742350146886889736300283542082020590931863506213251840206367292130165348903656924214819984348512366831717730468682024715128503986262193609092580890533736871162909816179565574058984043590836720344765431689378869458562382107391037625739174959943975327394990704823487425625339327144379780482490207930923424342388872172962084977079472801594522040567292603191525181020182211369309938868150962368381862047243229173470033235639572240485598002698449188387484320840513486500445719082245603660492275510755884751239916295991436316088108321508887485999220375709174507816545578311658595282541757970927293064420749903888499817779032867651257071271503262730202691799154039473483672698937626336667334540300381669678699469653067156574735590732596826473820651623129231030275125331053737100338600022898466678058722465335056290000268021237603464278012322700729878048095294408918768979821900583653069820746548251594390211574905028504806333932949129021748455746129571092865019854497378448443505683294764678559054826857176076001097962519015535398218196648597409612893730952302226105834382193233244897753376729113163085163309769965924544033905923045360085327834677082696503260469322655170020160950582484919528301199710387390248751751763659606895535417416437497075588623453217216620160388026105531198185301571571974082719192947560050428077587004043120279872853047476196509458041380825188784166460077564559800795242447850658149176866314293677446947814917290338682460021234657419521959377233813987990333285673828004465039267557124233729343733809650375153296946232645904904603158819899942998863456638888202324021338123034914070947385918665519167644382755036396032256454707643616789598849308282436946817242471774543308374499869655346592176835711151315173941271842805562381655148325678193531202448415421876875323278091718581791834350108892265011508689460531231479455292300535726945026243913556160507837436059706582322758864507611930724430028864658280555911450335061743198292938269677032085113657862249752553018599995236382873871285372430352681850674129855736371966550899379070315060627544237034346182645675693392630916809675959963603699608547822618334241508552381638981933281207316404780972103984331213494713176822874310411524032028224867751417079843186643000573054390654771620718388640826928345846866136215908361788229611719139405722718577686281919162606270191871263422477952483727589386409854942823655980316146286602855939449690209574941849300625070664673732566130042082483931736120337100801229566672204709461475981150623873839820274262604464510887117145496367948871510491131589016433850810826425269860663815695792071683470411304886948835727318464482176871119738923851249077533536996489060584907279815082545914079226951984299539353135744991408589917180394834969230598086751235610583599376692647748558922878133625532928228327456048829735413686049537692627677945251555265743267430878044091763272508854674716052230721269123086113786088096983341648286265230940202892779126451978453809611253520527770885121484168452853966073037406938170124276292615964362841614273987313463975859902270251773603282059387308816551905115177816358736240479376726029796534529805181432033433851663136013280939721090021551957011734473353227005630403308426428335909520779025236766428280021153922728129747838895448860983346062664672291670388896513177719239829470140526830969904575400348271332585462862235916894007228258492127008742477150459388286233037449229854479723060198131173311909050058530268233233723803806160552229490598652139567592126553959552573897341392510769062917816233517413837911286162556035087177039010796961240979515028145804330436912027697247748404817126591943676298003337061475765062408661288319933533422067640368440860885593128360030990304557329015479059042559804520469174572287368890703934779843310083792432709183073198560932274560843424334170301763296412644964400892852027329778448061375318180760358819518532569869632705708081795165024302043783903496988821350757762820264563925431403533779794083460656760132978229768338960505149675107702070536943462067284659307605996378068845017810355966174923899316970680080220385051434348712202007917208260612303592115516384681446422728884130950329568571382113482221425818006306654895600980069649161086196973582025906008601417177073501728456947355354725670730962223654923827654058743078059496737219233113354044066620179524467649042420677331093231064914473647938879072978246653400680327598954994849015389263029866684915879300711331816710461429884562098285818892874316583094403525953846547382814295736026429535272488861269289070920328089331839578011125137417579294177691690228540230147045754451240604717371846198190110483978063224615003651178303875160140121252464544759334359209420953241421426973237804100866535882335865955705342192455763270647582085970397873790165815012352578522217382959382713656726460086888192576673909158808706824637818810721367458294829855563307589093564911702090780911688214088905481221294859150536224750539353879065576910530856159488727503591037760373410587672216618000195242855236545189958219591106845478591706640170049449697285989050981680335520164992429522323952570941926032927986152284314176752066330616601491543570967926113359853973707726574815211790578879962503923033572680853539725778915664741518440431802930826857155909541148008732034105411765728591819558143265352969052228028432530762541606103495083025703105613301363737396391893846577250034863037782843691745393265463113438862294741358232828706621926761413781905010834148487201922292467183190891518512733670336080722851881342429881533354186217899620598425942257282946320016029078110099030471129481813115961722178494200458488403287625890135496425688947933293010181643301242512852420605038403081666923101385628313315491518952544057377754452436422422169040151063916087569927652742054718246707232978832266354653940645423308685371156662133760039865432595105800650290996120887462055599255859154252944316908351601076993943035852023738367895719531112399253410833008962332054653567778648297918246116081573104182627491030299661943807557779979248652289309884452856147726194113428526522636656463081785955102654236234766133329036717184571348686683367273182735802523799535872828511027412201465489220807493177692248843821349112238066183107994550921336992717022019214281892510755906174389702166460774310907800930890181420377718645387754202628640010736214249618691242518929635032663071833454611933746922444901540263967318897203768385081297853959167254922746650993014486274974461457183630159911827092351740120948453938557125664555389001232353642400880907405551747439590073964986418185424767831400574041763973107578937043387632591723880167777960190875900754378981877802654464664562094247669375392267259975756847211776994646316603096226881409458392947524204566669701794647650493074132593976158810034665459332208876050358723943238893449399273369140377998486769395663541361841945850847720051096947832263587895819260298857531464349664463127600433236087452110519357811135880222233861642100770893898311287576679724669070289420011239134489923021677490474391685039737438264810251118339638790790579314003201262717794905716562314340670508297325952613924437348689739591953891235635982257437480725424120132390227723431375326407012594151882903578157844761468009599126216393476774756109935670132448203677111443201461502791525678939698053381189597192175830562378663020245918537239483458466383872278000580713981897158156294748286099221673046716421184720542051894633516495638528441529956469928765018748223415786860739254090816736395444637915436165438576181607282890313854194588863526792892015323434996033610169802335474795698285593162897522166871312888215009023657087734157463225536857745205098117618393638844871702459598277923913129666164575022321274863729633634312080941536763307447735136057936718111839846899047573065789312553464771012981764027472500025365581188345135287636679512511016670903865691040236879429487786297504332906004466707294171223078262691092079385764739801135114579135250375146734247555743747539262401367731185372480392380901750231766894100137895858119500694415938727713820289785339780904897635779470981947818830827520841241551022832089663264392470310943441449107073478448441957075219405439258919595388263303725303278928979982459360766123384723784805449496742205382334459126770974454498008765308392239745738183851391135828106300016946237640668554118291448387135371467003473651510887859376866830016645213215852448698801443015837590116370639714750745027350367681701451931144408951175471837961651430539438086674147315768723508395711943843084719981296028659210791668082997092072012985247988675130645112206122599578904613976806290774364515922476510121272138035893761184428118071383499509258482010424938963563059988189642203322396373224742280599866492698360229592279471692330261634011269431996445409059169625190750365356165141122197107799613180902734825255243137140428142344531656798929601618687869474686294809930206901186593259738084244020514606716536234481623940151825847610999999398468986738950682420684216238788355618461282511650105720666084694654005630480291730309913526057504323743940999012078447701802101404989021818462357749879415209106512380772779561021998816664731195817650195538929527343141196503148392992487302920120856272869338641226105868075714112572559713521970078692269817346370378769988355201598125113790260322262070053584289762818509744523777143743886484775079315904739428967996432835719680419946286487461876121174112173671217290170928011299077212863180097815483932708367098772556699200705860541211166898974943277739083270260825134688350644471031493526004352024809395479425052666171319102022281351185093716943204406356412121274014582942361634492886168785809787855565315990397637996471833198246866456954827289493382826755253436112459490339935391658909530842023220207607300649930609692546158349898163588682789672415755744256322956483783244265785547162962787228036565631812002532298685928046583884166940414399098034872036081535053084759538738757030563294814755204800177121641879933881845489881274676999028832307387809060873616995443646470025855051502615872030530801199549114226447750636557150914761357381767457133932043462965473702649510007799919091697153012615297526574149552038200173447975095928400375558452900186257677767109856492369093521962175314359217384784894272167610467913289310990310703711163494807424513959266713552874285022381342107411385685554749371654678292847214491297765781572563296487388792623342785432202482850937265358672478942384961446561673425398713066788677808436414136533023370154471398405490970621218901441811294659656666968380092183462749495719319028519392287482025219175528598216671644652305004002602950223876886487404615274192338250134751967056255168860242613471460420645729308817293081570638467394798923439469761344980643008830379626088311842198428672977017573750623682332927520929193213731119707471316278415436936450037067702755342025404359220413386049495007944775588198031672730058773796006652984920329492130421307455284003885434951808707350951802045926232811043965990371812733810597397962653059048304991776695354093738688483137581486103147240482725706417842102501036874592550523556687962485696274246432283268655222370663636334477813132140840047507350092317744408600435660958886453917146880954321540421250968238825108715659055583263220422761272419231213310950041392437898202992424314397972659508961115269491371083318043454277206370924028684547136648019592830566753248144124283174428134703752259377369153820302198005399749015106272726622135447531435455014939901220523078830432424130957742152932179464785761199554294959302147971113768269408364881541285139735848940646847442383094761282279014984173207482802286433066193551402831532497830272448238096375801286502793428338856654753957600239479648274382831842322811553009414397909985249533003187952676757496942824250571098336123660834615635003073120695125594017222847945649434083723430820512893039087500650789819181147105633147053508280196485666102955753838353027472187739765112143473029762275426253362232877717962292109967882811219245904600377222950632849273138061975893104994645464624759564717380860729345400103565053240029602746061731854922412105726473699610503199998104691743671729235577674263220328407458331205786549900369851986341393510841286971871564280023847480035518474128769701994824701437097685307493618340150609859215672164371128082757306680321643162393908902784119468127582190133509368267407058967210039458352429806437772233486002577137040038218204896791690679365836269136607634853885337029736763835364987374168482485502064570654756065533798130620380823436120006725255742730412236931346283488891273071738467844713905511914764397879206352090830647185159907961711020703392406116572868921962962504483757189332308339552400593064055848378114838023573508543053890018527403307698751257205487789036260548236045828140101800219746270875768449095610526019023423806333153782834407019497377084792576270001984262329126592433843929796086825425242103759371426566647661179684399942710702557476210867651858051462978105863427368936549124023659757957188205775508191253622546893633931501364530254286039223741656047367488460949337354214868592551418763253349130441793086545149553148847140375729753100591567044868216087470492798653858928751831961791997537650067920448537169611927410475685162337031026927703117277084888130479845373449685803723986897134237891450371309871108109502206878612147045158089824380812263992178157301669432436584253781526246804017908933584197826430364477923630700371601728026673191173908764156798209251126513159509397760603921683974389959859928631850303950243838012583548310049234690939866493646426686864987322725650546621645209639403469568899670102882576708327114907051208008849398772521845630743542801599404068157135522064881971655086967005617740015814630403405759595709362823834977791044853511013098633668370788909582183125874821398454959961185534281932324505732518152805651923371168375828611186365953414380624299872721687785374796945177331367665527443649562629643678006410536447129799112906174227575284174608316777746822925383900985274746000895592964842246737467132669651177682942298981673740222007216001820178398576627818641020134595909982041895426370254127223188295966521366247009473797981568798973726642314934254367031679013232699472724823303071530372654119789292894872330716407485533227891833069422561384304647963350499780781535280353355198908621745880987173913592263608179801477317156139737588134830687311184507285488752709951215346377104045189027608072899626828224642051961129378398313263043285559993596099912459708177296817054756120972352098127284498448194694145477060135254156777699135759391777483778906485667402815589686356936693830743053527348052243671232450736997772423057672656914101722645640815944360677039238866694583015970123844159662258627115059381269700872821995970885051163826605594455122544816886679446950319198944745818729178537482143382492896972297870479013381515704687584452466742013268549761060836023994189513842581327083253447377741709110218486795885172651121002803872486109305612565255348230304753692054507122000628541283428350396103307259870525555920618512494833668591060869980310555734038217346669871873213892502390147117512666090942465787678391418647564320056709056560298339745569207818985392319589896613192098858401899924409147460762091559814688332524588022133951398149371471083272407819099514392712799910191324029076017391915890791994321120873894512100462005201843317533237850345988707593269083687442822615663308332030330606690376256550127211172513262215454096680498581618796702993310243939886441733209264499493616517154947042670918196642320621997934025295233020855954821998184817459438506982037855152332077153104341725992429633937822995095631873497844344899470414134533325623636868424871439120586754636957168937447420505863324423353259850057924349908518503790100543625084611982762170499291750870677107258479100395813390997327876041145350419219417683366418740086403783666928429611891804213294257151418442460740487911056805011859460746308481813371156060078690385567365161858557942018843924173645311039575462928306748904354599117290141838664154333599806523821294359823217584989461925303991477132266439762503813416393630648601216689361092865794448689340544617279696438212775996033088870088602938793732039905280582503209680814302568658079452867459241019993444116338787302969271087361785636135429623339261565219128826973128516263451571946621217923416607627776687383992980577146951165599437830873933552483618751617803505649863120289487336316524198370193915228173087054855089972647290290290605776052347218278108327161987814468133127999676401789287568768973676817074192456672730302536232349730777517141956093843059379206096917903520174715520808956904431302142657537066812659709599929640761186899972369061745610747722347144010806737212966836477967802274615839107920839425987240205615733693742081876743335180434101716101250051046359024200182929673602095653621741372916780952756376313056740061496692740033095605704801519377971838931128578574703496872531822905244250358995259256513480408026051343751857364837345209820066480831458910091185457018824937730611042540099186165067797135151894432211437656913330121638222959798141772510298863388387450575343690679883325898101194614086578119580126798402480556513246796368266541598547952304310868058053009310901170030296174517143595757012470967843983485030109349622767490124707648845663683299004716003416884916755354084946132732483908459155975752982481280207889501794873569672324862960863106259153290275797618308666193058913148669607268992820181427481570894389411656076680893658288408656944254895418681250691356642582925100349967547405641540143756199086737075730642634800578398424047115159066921004713704132853343028166201431616473299880040374420510987364074065640178067747924215290255408930522473028593550724211127448655571466150029074611533788475130575315247538724517322530917423177321189742820976621527290415317398504380578864481896627866224805944066550889779231251453865574331317833649645216002684009397890947490935098202995137084314871735961661770037430612070085595344022813826218642278928816646769923363552787025883911132288201975063362168689150992728590602541106655573160587548706626568743507916449018366416414952444427160990450595787380994590893687711657166113786410077993432523478700344523028983776512818757770672071984248883305597740564382518791408217156441125216289032790081174083529180266413678778581621605268246887592342987822467959428824670694062277317704131442519719444290115403295416043963774827606534472417412289399171959441394726896371031596170492988769503626757039766745384226579252247925460170477374302933090922218688949530293943010471380080260312898502485549189003827486904994663034124743093019362672908271243960442568634568511359709066039554958253274735279250145352648290269224960550712492690077422724845343494559536959072774424691147724461551725786200692663717274543204069455230938636233208622247530679208817122147606320887770370015914628015738250842762928424662158538766168944719854114752741845965478438165822726352528345050352591525778307022373007613145094205542073467825231485422561798085285898842637156561956814363945400877429893875773368537510069795944362622042821418939218690226532069886892546137853469875465304165295708614635774134828901501360317670371067586260118023387852124375591269947843129415919733737535246526046482679121534815794813712431184519748764505912194785659865329805232093264872993079237271051563739517781574140627911113858196409761365476039445905124020993281379021223996533779537222176268807497866770134110722188836126818532242389376233185796861789213335396682542114475957945112646906881555872474416370452799117505806315002398961818540607480401019998719199887584472171644107969077936233053055199671508756941442585029611865742835430180322146684002389376677145176095904744108957600081035483833520222399730813249998726340843515755315040945027785622905091626368874858465943103362053070852472321568563944439640978886062684859975792454109826751179809227367637868227290012160216776095606697041929694507766144895213650101465939390975388481187706117367097038277611493850376473595149431562773136409329953202982117992588741867467016430264751412492520987918389335203475784453197871333217108458673097043461192132714585874225088948826895938298660747362087966463486218470244862870490890000449179015432203111040705020690296438100469324987523264506442070950427920888717071895375386246722161593479883767254649872900562321782200256723438592417376225868398845914814310926595978078844840892261586626428637934116130536255087630302479644906936120536866368022335827737037969826120838495451237633109197357905216384043955781242714781513813635302006751868094318596690320472391748606053440504567429363971762335932416737382112089467510885326230512478615047314233459164886327890179501826829292906546808506230218540018958078399133753660547554070901129201563261728323454374485355397267694329962352281841854905746036410314110000144566275545984946305018349981965017346906333769393144449602700465644075834428798984586631742043008867003099146443249842051404772773948737376876542574229165873756590419286724213069170488180166132841308601918350399090294316118151300602888704760215847730326159554576082343669222092011117625515113227691235219268677606569828495478711729270901602554495904562475873555393539385513892043720240181220365432390893767012438173136106901105520273950890315767223597454824644516385018353313555081244688282762709214542578967392073421594943214708231602711126519199949405629881291311490959439949382256742890343992939760842240834001780703618697916510881930105181982253855206381800097287500680242663646281298112921055346082294238603747824514980451387406522449378607602297075588595394134476585329903813622080098857525811034748389197655431183634755335654825460502177207764356572270044569365626618192333539416069713081888028928980304932068474518135080969934470813069161808818096642614874655352201954502036897034118125430763165971650295916149255751291610272731458502581786086798712575360003698819462243135188451881743915255415225327613056747399156137881622991041180555523374077797683650013071640995284442152696740194906023883905525275581997691287074700493176840787356593919838597406350030354539628695182199257316808617658982038646486797374642159912061907702258418035770463874089055295572463859027304725714783707673807281799509849105000244523737747027562158422870969532629011267715494364161541530941165454539577045595378854401994144819310378617097480609649161014315993402110396750790919257318396111886061921902830133075709281588341897796009328639342619632392018050773790507876788314250842296334104175053735259382528191141768114511834995239790075770627523682295056438658401364631792610576150838450253503807658729902673934255544231245013280664398244652988066129160271098710426275292495917998950721476181973975314503020577490271495776987096027647249439448150973037327093855885739864187124812295664055597077617796417435702702501546735106502802909458108730441815193850344357042735360326204386658017594775834616532991430716116017472741643226202906856700724886591401738415653853835411619474112832902395877967269520425026955729269338973588122686540777844898552883415864969196379335823145881664664175824695975777136047435405057933409418337554209400492205833941497422882316651183123907270101095815680214586045912250185367471019467692220682350253759383949893491193666628128514834307297709076210803255219123722517252083549528105415594361977610156017523893619280121745651931393172658531077772036505093665443479833229805337058707022802024937647143279855973988004746649551212933013254575653679140126463035967324397909650590998053329476725609452397518195751028038626029782694298604913411464879730265088231768336949078159090310696206612764004875054354430775397925004500324653845337959351908425413312018657251772912950024009993188538703798303161160738090554652762713869802324669641870180339113184355844508231050887898609341210513295417834092264440268330588696526810507150960921567243985601796579561865778005100546413877169971957007494360922173307449179483975488847091211458735762116447111165069562154361998318227580584339609391960487663484969907023678752949949480875953381266411007482853174327195437202030732628460633510261750764247865015714998743262266202362429594786402507089725810723274139024029232532714230854505309438200696606131455737550570348527299295236368331646963842569469191003037168107149923608348145726323044851326509209959706342668144999662904058833369185272597680774461373253275773396435235608948887611077007576339417974019851321994600180088114983661942958174626209885503182780222275247020443090485268931231511071147118498941303759530455119525683067551799534330808862671176181408107911995668872577245506311356462919528131711268379917171747929220085248579098621181761779988524701505907043530947851917562955054140329667766704169039737258274208288300444671419685294217193860651818755735896752728000023330748415068834107496368992775001754095614566381681929296623021260756097003130036560963071556793213879835812472311773706849450206763329938937844621148035108218974824993322967673746482795735118184736826227375485958918514513051329685301310987573703016806534377386449930210545029217117307808515409412425319893245673608474969141767215119389040929778864676267915618511236372440163070095638898195617401456398766812203770253945858481023366195405754312651133493238271533193074724692034362728337008194110200304670213534086443012791714829839953519696786545976507707924675421820465592182239060769463596619415960050477990174898852744701404307910521915547371634707599529688350359293467058302409452815313603916886162734144507144916342456088781715095013441301468147997111612227364695018904413208926239882713223626587107643283736125753152538511209477373526856153359608567411287458230972972473356961145505171235728044184435646513813990952008666058260051812263750618692421004304816334025440346792487982990792796288346357300353149327701310387376154480462542491478131781245513961303636801979788773168291252826143408354804959165710675333220270876587755059256050166750990029455300305539148094163733521215229054022247435391311390926318772021248113043489570004209070078205126124972485885388584010665063760907379275389463765315883720656712244953790065022055968622151825141074146141931090078943712277882156744106596947776450259731395827026489849931835655961676676398733425333730190009728183192304487873655404981765498487094758954457244019767707951599381934510727578639409859694270406988283515394673145490302601412171329964344132580830137175430620924569865197738501816669545714998692519369521087196997034967764275901504856221099874701428187206778116763055511901835564496453145917251373958047814292225945923257111226060385159887825357319074433503774895581851771436348795707883133601799826471072661469307727361050143473922476984688915075589750194060158477452458659243426475370078739661543934715967363475924804459907583676991419219195498225917115881560615549493356121373363909165233147148927998624812359817996756542077761593776723412110640303202981080592564040127486657586356217162603338784170407306422275785408027113990768896837393293242294040570722278361436922353587101323318046534026786047970432143956882376307075206278584026494763621866382548240632426537139305334134087038535041484267214711251016210904321812074111785813375826523178046616575102202124217287331105834771379986804944250335521113880586861270223886252011920360422637761895505565818895492369770901938172482970664315751499216575194713006862239915900173326268789652033912687778785989509594873178026168961610266055565057211415396206162924629073643544914880621587994541533396937866263398094297281033408220450869497180678535693552518071485439708715476877437848137765663648392598086981663183882484442394967221265686246849035851813210266097404783777181119504341489360981200035582835022163517643402033072565093197605614382955399241034607835040837441103810842207333603547552148253006987600168387687384190567926227982958481483105402759498046624316165041770546639367478186451012664754586986349981206825487213269586281372272308164997030284510830472476127901461054072766841424492928334201375253681884023759739147464722783784028994129722104752192619466489941442873803355659886519526030163510213299656578946943073151059824930936000299019831594367917091976835037717313996970275835325054821706716420472009021333834967832878226578851075876438606962241190932646713535378633455945831740944516156933544628849279069869470593937998320914370567499939622118139721636436105142099772689105148541630008672290082687740836388762580556988295004417595819041594916921401419108463692243030922399076410049455120839709660784723202471890963594055736627940988568910656508567146700029008452777686453942227405790383373333084456265935358949192024574954667458796505841536053418272865906598868964378986490364459501678048762417140864863214012926951912411402201188749340456801976516790272891376883971650751022179731797396353942446014271471254252715364073643674216304273222424518189019363213753294862956214879690577988523579472961818342229671900733531984885932142541251479251069020423572414095853899089698613626592375734311669413788169062399677790401925193504634584037680018099777911141584100862181112591711560702644759400012182303843292977608506486714794672794985900030869483021222801424576726479018765180131524215867145352937182802831199606597236025142885429165305974005084877777499568854700861102326167998131908087653470460540993463564483809271157928954790222458906283753014147940283947819984211566396060867875331093325509533284598787255383321969917236513305871522734814912899473401452702940859635970876323690131834481221519363415163261208666394328457566695014502496376379763845716199967781287376167374875822563721819136520807623426254550401557079768687519236080214913229185141918232153763611990107584973221167947632698558698025771939636788740999953390572419113413939583744600264334993447420704745846523874632812265937991390647753228829565999081304385127047498714528142110477633738682973495283770791166364161821938755145123712633906053725179247131802225741764907534525418927262322218353355074006275110632717273450758634662312783917762590166083551168407375297545698049874494085697085174062989380967951969723879947679031261529427969660735238458657517048553765665537287326313273807371011428435239590585467028487520557458734098758940303809987198020062420721069406187730442268541954278006729342260924027226726671909302121465071269846273203581606105113461746450012802518007477499281568371021633823242588642499542694030848372716040001287185959417396277771961105955071211182384049139548590139577847180713624537191000926093525479571385468835102563049853689655414314457242336247815389960026971326898612793182194394034317489715555441141052296515718690178030095831296476242642559165237058916528414590127283068017997836219482688993774661595484574882322005459895685579863497386602409709611005517110070513341921204266589698533281405641721824363128936846504869677140826486353004389894006355772024874261312190459885183183325994420703735492031056344453405891031520470390926311490321693400397316633846622306623805804106281576862624789422082203262751460335441189606124537518031524864111521227287076506923867679208599664007980618007755480156804396580166118542264779661305421939700734692056257508599081520531841873888955437891461583076287527399521980986464401969827701877803099421056096351325420982844745465914711146515502712449371705853077975447243481019377995571595535530615661160782391240559267854997588446381297980426737642200623916411124723586635478395155486347442575276094765997399449974859575568733409997086086518840223679147729962044330799636270363078876648250825663706855182976248044186880983921629870243345956632720371669517922976085781410774639375102128370962770030071720830862645254732968118923158978183972128638318900056950602956764810270042530442824615760277848094434942854672620147898397627559559873104714409920851345574763499053402009488197946205485831426378159695272757636622863802005580545978696716557152904894387391502106888345266087779394059117041325713924207169699762747837070299397032492757917845407301279026180438932533482253418552419944040794667292654619513570821065181817979323885216829890636416392887136290972563925677933715410960014942533631153929491625940379482338897318042557391637102814485732528243483358468059422829304653928107531146867929211741988195343910261171782381512575076176323665171792069647281726752739225373363032108383556493354760105520461382683149041184874179528209829500106648526046270224382746498867428408394962513787843590420107230280279329826202624895804046753953713510058159574464540468379063988802045910176360537349977099554884300424769701795328648375702398905109646074552810901663675869112862139100632105341452759609298885228844331036934882051247150168479102808812229209894347681713600801160837533026781031448205290385899966272148744483381041368860456782348541177413273518383472897677137330367678299143848368864693139747460507760552295984808860006768138669456678966375828290466188765194404695780806407991895263329138293840320039272825049666153986038450973723250334606845658775859138648911395351262520280376802569304410107615545496538783105349892257648421542698517986524385618499081483602282634591565408922368810905669130805310492409983282920002551124973494980778134814495651687489001769229698991426307210126645896296727946325119015420413097387436616358948613334193609046767390969171360962659448412374252484548292214722442463398981300061344983267488327431826390183548981097891638831627273480564489703577005542205389394084754058181919883763783313940781996152477813632142698460759488179516743362944499546158381789370094588668777700125070593373817824435002273585088751427841294792590652504430166954919676986209178810698092964863266869928886243407156607383112674390153620650960112959440041010469288597527067629722345631061266140004765035687354537390702861655577398326997939351174679277559159291213625344135968622023512472119500587038831172961682463621717649663308237561772129898720728025768601572316999853689192257599001829911698185266295971093303314075339249712257756299629843485949434255723740916587414941940004359416905001023034579791000789353658130035284318123627337788127912699481294590670546040821965120095206499403119575214053246456968349311032586166906219606513271966198115775255697602984328600118320387204527480629850767948026350210413666340155783591865208743064295821894068134185925072261281641037581179092569686054925087748063202653316063907381853824041928137286250763776093335245741162435742807472231808530873469125586123595254066515590323189039155068960290971225005654455548454639999649790084765979720139933700247741511100803519207935052156960087541015893595009226499657549503945687929888663149612966737096109487716711885468656103652042441156437944996148774169777455073481490810532968764577294485670503844425155243575239640732080022972698936449981366027726754700700281839035728242780739959830177356025766402269641808457144824855628828436604795741416956790849792195886469458745142310207506078308798991536284349589244808535672767030807846400053484306123771980381031834714374463505960393212621190468179463987969257106882980693417014004847933364538090641120207365449154087012325908737451137688948755598948108029878795548095297130132601605577112911398151201726088065721510441266428392895382178408710419350735165635255650501844897976331665538927263798166448832038815575437251889898439237026818542543003849908388580972232419551963854047803645624915893510690343932467230138674840990978427570830728232358333716381202334374794135964080925324705860865938659276256869556637482605142852866465531046445747432283925688777730644658551150940800005933819808678368510896304907997352338927968816889322870155006816610910526522769833504290602431466827889421391040224594849511111021186545515868100040995511432247571582335806188181600790833256172841991847263704718504945024790689906077916767249748276829059438697252312377852800979778151858253004334298547333248152628556243580143983872990276238618292388640665544602209396569899424587069890306627443750695086933103610134533548654386984401130400527476956028085967649659341460634855510973067565601532762921359600016841262383513365538251738063113128253974034138247395037938782356946449063945278468700868146282983866253112475964819166015538581646128269666926606092368527170184655585301660821189272213593701646348037049767974391610687026738793422571939694036251961889441289281820240628361772373975289860880293686002275079902773720761677801361938292472480504499267262814115693146216119865269562323042219316216655346219989405242007533975828120682839259175966957845083001534670271868431369072289146871764340328262921741715206776451757319470377160709802405115817255341915894497167991534950633332497889684404349987895963815407692606267068671091018650537128781966176966070779609583766991417619760703816323959214082230546795502019626246713863362613891017084613698969738182843469865106589119769286941446290502406549980351375917169922684607771464795077739229333330084009292820872765833883150916962690176732650663358832314393449960948104797569235647660295072060106121168857017376927063252530133979273346391602413140129595149209227102259957846554845461930563154714895497358223313650352576842034944381430104550830474446928268648232365734513441113652791437350356225849037785941869095370082931232850782610822522402501191487120064442592609289855992505381638137736770879600864182939978573196063124367723033841345838882262111636942189515072113548613811043355458850892848139728683099302631633013707011631364434991539222613556964624415262091444388859074529539542574343994121780096180198646510354120254193799302091660571563726493700414223717587783201323251130995470300835059209975875836153780340254630727289380815248898041261717162942735749884034139277683939223662133174856364853889227518217351279734587176729067133635400749652298554462367016690333816228366940521438792164339405662796613359772758616514297063318225928939878079657902937909271004458267581664374894865721706481825158504333799933902696759750134206461692343378836349131321202797415061344508598233433894730381796689117257529183733157684329882529503692455879487068148123354566082646383505681069633130049027451469229924618412722108451095407736224573801252286341916751658754705991317169639254733431844930371475464413472351894207607147244367533273034194848797194621913973430746391789140901702160483143762289241926948008068445136557173199611311924401594325422437663229635457127169836174310567315652254084620273114702229340951535198910213786827108642543609486958090442458710433967000271077514751809440000554307899591668410477463801971605909778923859252456719326905856029802101357635456851363056543089559045095217742601452682871328603475244707291959533413870329495286813728984433949890933908978125992843323963347643899346320872209382308706937511040821209453826894354372166097249336079478162939718352642374940167141586813283577386826924114643038119098884680615511085723569013310500717734896399201829923843866545458673132901870810642943067183251180456498571025564250051972658170223328775510785863210672103673021021844241234401390642637472223264514768315101478403425444695138633158753263399806585866078926299919252944741778175877950670672005154473786571454566499272145027031468052005017854724690659639164727641817957567111224313954610269400796071231132650564690522250526901578253227384734429975323939850815311404989697751503860675835204196953169505958338425556220352409612426861249864321496544290297106246124143200840569165003701477756288007970215934987255632139310401359788056418764942566629218977110123337708336668003317182205339375849583384863742270817645385437893832288553589114335645073642262456885708068381054112228856559257479370292029572208259091052391124829688431555663654628982045234199812061692538750217752949183850165553812133525460283024336908491417044567131940700498946630625304691615169138300946190867850117044753814873950707493147074176469908810462862805774453676778671935618531637089153648442033114071075592283823227805838443007759180563405263185119639317646738397481781948835724883044463118822405531809246151043994372592881491408629794370129900872799260058571928321864465724953036784605577081241274011398835813000527557380618554655147002726948675095480492335424073160521359677281174614058770634343049153791688701312644150123165680876038413657547759899196883871548550041656033440356400541589895786214812463059988911961601532262968638874832572536195399572954787222467830262880371510152837160884896428503782833750897013845769266919865656046669334219356040388181153626330573893626665197091511260483221017672392863698236947503428334348845588950381130994441418049049037855920643419478188383480922855083852098332916799635518116341014476033411698545996304620608749401155365203378235793594841108724245142309968734909851858634522589273778059876440444249110588873990362070026396171221456411876142239561535027321450290410862157561521707128633190506019095964778670209974448030703445211483181946094514017846401170144096681967480093777564115118589088588142316524531589940286125992583357972616809191331214670508934605040643109723242901819940529749412481268866955984235133806200440314538658360735971224151202984100553884527408588493254737151398249679329055552253145312501478293143939783253761540352667610704773538853651448329671195828754302733436725569526816727513710930713648669371217539428096982371295778035519553702883538690163828600181271292002925631040895496726263435035539030614935525367580870281522575900341312847371248307482911431204103771834772643170945554821639634995941458266831337306381143362728538453863804921703099858878064610563576963537511909103455775636248106764333510314740484151746962275462936193700212495007073777433832876192620927555489168346746572268681699074099302718158591034123080554862609689201607797168514854548626161695313948283783964212542538850751946114000206131687200155537720566805385108957970454494444257161833479872906921498547979236993534896883985946913807963606542693512087567974890722804912234236295191575597318520079601859097987836166375950957340373920657156447536683408687657276134609756483764552528782520520618708628961238858927459210561279699045495226622599042400322747320461901761693834877067943792262320900768340735021472726267131451916174081318968955905979116708998561428710277605452938317693041817085574467310747533284361644425628096043147454366713521399301463355764544864855908868024588882564326249465774915291074251937133279685863369195935777370272339866511097411303462306459135169485779509407810379972985580034572902354867103450228575798160943822565605637415400711827196873702249342939127116324032447972944862533259387952916633356965913516278301956434771483966402961457276808098048394520027533331049249151100496257200986997137503343842001557457134260116719726559361046389409962740094281986779363470515510717867840990915748357749386532626817039319138951815969167949054877679833039641100024404388268765104329499552489108740861829022297451817961090394831989656015001377443280645210107581390371814337382017269435761665197648226094021037187962737112445051360714093784096993824860178376616091885913295930750697899944140103898722267622865965770034590551998351007390176890665947283440135262050354623360787239964193800885089765118705088210903593152086049898673174562436050023683615029410853416194003436905663804676548521739185199829150869547652935135095328099743253914610003484110712421039336134839277530750664329005779022130232484632470434323772406023782098478416538387491446609756366986677626748891847106511098994303696030797108206687004382371912026274724418802083773835832084364325590118194387354506724351212389218778179517013597807908102452035487696511796117364180722317031873051353170899809379935594622049080675180849701001828498061570788390730182792831419385861761141299713091382159599133478293606207578144508544590475799278880645044662695130955200023528944121745589280659055201964565724528752432718643480224102789457599795819374104723667060437340385836033544584785671347590428909348537804809835507336458531846322463556031520666877718496341325190596761057242714112931952860201680591638422678160662274515969616703655745225857024658535117163196559323286291760428997613501783615291596402433037454545467083421283533825599048339827339239858869200820724740735577773764872750527184935226771857805895365290740568990384070447346162143956384952339725384183556479756012444648924699078324104853639621293050995085872893051656407230874891688932471290040756475397216713042312902212400994237830630181055180083371814561684212755366313337286946471060251582618417745198776090892283210483849209989699752520111583779696492782783757946923998324419418337885494124478181061923129277741971546610936515047477131948187956945229928270923301440894496383381454675811019309548581793479945024344818187073958023589051313812901761994456516422184542977029310475656809639446439678829326749321521884215774368063332873512181936984651951117573769576865283463109048394238162278948300591909350569165347555757200472372444725381564643984601111733740908787468564708262489156431122826234294854426907622752874743707887172123292996977900767229245636223452426037360406062922344225340678074565517010364489705310704841957106299018038760559407464624761533270633424859806102366513051264151032662917769709918088237019548458869655294043517166855443073718440491424257031883155090576335716875631368107961671737030866357278326523884655899449390618975983742221893564441683938913767903879570644507601576800665096176931534646252283238430720586202112519484118287488878231620545216942127494402871847453834584771845220055728686236879446865653607250513736229303712273311293502549713669880715120966661142291003566658897437119783897046843971379621783081615148584989223547022380022779186113390846010851713098621675552404766515345771593248484318794139883403669178248722935749812613105658095558667588364007705546509119872094523626817651640744615086800316189629139303795253181704169702130609307515319282513944983063241790186675396168407298944269224658011602195152420397313061044986037854825706530684326365383862646830718303405944013566293646537331933927830831579208032954152595670998138348074104411476118165967306808018295844901603385509254527632510513298317394217230512448891061400411853491117841846831404550770550233135314719942947277068542441914975340883575878983821023076732944262802257931101366201968354391889445007044783432944608155567761249502886600703186041738899887899452166571592943525865354613134828679942711783830737285843434775065711021858827843720604548995682553266067248718315267955188426092953289493369457661425570379486265862415649839485207172602607121899307442877066802227777845124102815460530852980030234589536540727371251638952599951261183082109135580580971418492367666001043120914322486920719079187497608483070973882782252913758035017005516569848699143109140995159295438292207297270437563029499460358680513609538207935715841747552823913976891337908018699965347067500745186390474689424438317794594395746880152130842249130212419455469209930187060405852993843309294735365603376751540546324359277051030195572932878533060990434422688507841475563256622662699637583340644704204737649379628747690726007491353566360020526772387041564390553255804935113261518045054809283764304676435736006402411126500172101343293575574955016373545301528522368057178565860374859614465833043738237573365132129654127149787129028505729419873773282333746133678777911214635588759727075704837886252225827238695435591984758098294092063278219192154076396382792716941173239434709074705230147770306286634546203131141406086503103325904236378825756033014065595236980498863703642826062327872865749649688500905980335393525544515617744646998356013816208485908530431479563219390452060516564991871961687800631721065086884191187173971392196031556039919832504603083891067375448316240207391043340722119937363572923408582682487641366387442781769348276352430966005608738840960862622203903473270454155080538643522864348941561243967657643603658139459779878572656334306195176593194910458361568677711261901856895551604076580325897186291174911271938189351732767534751076723322495784067629067833478041096408189561117022626041622448280219388399968974375720842202602293014276633047470988337252595136969353560781992391046775628622649438553733504304055157359187408321007133560634895951189240185520746313776174771269688061035828352295260507756050159858604036543390230794388243700562463829729549347051688141931599529084332148690901392827785485948188077344023205413253528992850627423723579056572123387343278293087833113088221437884778170482372494903338990953803682822542019846245427019098280347994098413469910774982142957087147948627415714667466435565744634660686400071734784937207248134785355428109199920988582535825591424613014351279870177345331488545269519749988917533399032823163183225378550282992199256405423302903146628170132091751704204478096730273622193174543312955316716856701663786925885917201655855835757177878865219490408482978732199251992053670072160066928409593745770328240699094461471856964290418580126475783038317583828734469039700035501743557825548604131087399780901579360240006806786363061695743557170087968642455809950750726851355969505566124076439775456114440773786203093396944743907486690883249093935660708124433332527432832941501285996613919131074083300780489983177126043746741114524769684674409651012639781154542456056549193847167587570324169740845602516335275071158185526041766915953760052068338781357217029925256720631740577185720226035372219889276420330856815024834952900481466626798789849738811725343657679451233720386351661318991413256220336717391012778131327770600442235841930730695816259053422245112407860403708863847197156277366125110281091614684799274639502771863808038104691983665331938046921289605872269267492974016873599177357831040159300930730743488814725757914350438452201073240502209110401028824669011048456716123533737704346841099614774916224300866943951822283453167309322252546955228303490834780097581067692083394214821707566618224827548374382512473013335978468805571787349454256800534986397891388879021483136684233602328351166736259619862317367760973440810331426955289609806817997805573567697232765549365727608587493679100663384189854129423040919629829798132904071994600670900721238532528205528285563202142272902172142378778611788485373486452110867199564305957632752174198212992839021339949217035525349529769659800972479745261179366385173590383348232167482494573572470911613456660771350091023646389489376060960514485560683867647204347404291610709479174815437348555007876746128882358546110088318966942791886695498480960338020860534440495902196395342827921962442847005890988232280380517815774993130413610852011075971344912842363654054793595872651214201094353763145251550014933785443729919570171581427510852403838597786622278129895228586983588575346954354223189736815761228987759075444136608084209542845246371559813106838100371488813318942189120362934287164765873583902017960470830787949104328327138556999264749791437345862226840654664610271825344989709371698617448488716104051171165984378580876008131223749905844537728779589301582243794061515753114567724636326789864916112239644103691824666477651828049032253823866740218645654058935260106615835393457105303894249709085448346068345187474986780647074877881005561643786123124659200205241119035300184813053176827814683247701957902840172113552102744973869093509571033806091166724051929566641364867698786904421632587978635267780373407357297602390635363715366491301650306052119188059846114085622021955166447271012022991450209314731056496143650661490870481332436127550658652060662308922716215795202400155936403799355874409209301191383549953785279975082344231774617371833113865109228318678893393778610368855523248039067587814602709668572134432052747273831137213330079806524497917433905775795382725038753464139394957396199311718192483160351708670262320795058489183296965168888222947724767722539226099408750757336320790795931034572729942558715493110942585287784152929829211105448917463783036467492389356336821685316268396180193206896373230549371682521342150981800772135602038437754322297535520487599284815642498843669483586925091201186176358679336299781827147489342828405110913817171517853506364361391393411060754798936182309033377722122000230870289239966282549024247883629191810039961618223985414942365883206077436653388681890820688475879923305509564128377395078594961307196498006754434283834416067120631447732605237826467413322298563401501681900558845866069049539688173794696325178067438764504621400147485016759988938772008424260432614832978667256049878447894830026961987291623974748482998976279659501862325610446365259003862894632552758687957880863010053130829301656605122794183016735472305669769072446509434247822028667406960372156440467069577076078997123398167266977577235666005624820284702866823977194904858922576621907038177137554595539223710711569775491286877407654902363221876609375225405713764975689547554853171957977002364221118024984212436451222485344966134536939419654751798664272314065126817334327583816507954742821342570732310348667933966830213870705346687253821165745681669173958913540972330147103008829436222990897746907520583829097362786801229146240740747401508010569960541517854415476610522184246252181786606852245631882201953153815462076002205660799539640685260996903239615447069590399994836979805660801902420496837186868849364132595071312464125146542152772744432376376468737504856723294322876887974156288411178929303097473647403134388143174821347486342096031870707097595678628681848554131309815504994268476237633673640813607725026218551790865221877406511375742945244835677638340126941086289762899549615946098506584580071394920671212163423181026229192609056172957741926221158641820570368139487099347823089815943267338408186134192091017763586229630500148905992229824746314626532693001721286973994105041599676667328313830074228325448992526825407631080902343140846992282265680320622896087604535418545365813045045849072847732648086738301444096585101554527072571435347529173301346982463344667520725393473686202777223748262777485565019889585019289982043384314514573249714802897355609734974658957782651439779201062828120661473059143828146579487078611280841176665572155906735461936779889316387155728345248356978302011872458688285341098318486955905826079582897484115517890685498880741285383927419003374957382887523186722333245546111228482385271077373061317858387536325835570621854212177209242309987134106230428442412954997874171975743431913971672892846902913790246196782186282459852884185789855259197058199420628104467759771600164002611598936052499902195957066293123829281510648663460379119782876001705522649529329495782522743480413339365733450804577591404133361432356395633252472297826453884932483028229935951799605468364282572398518245658805586768741702551635279457520659482199092406431499278476673006845048269566634942771390276503796832799135510151852063127726574828616710531629366002314686623459230954471498429686746655079994164786571084219469764368994864858474722749590056943770555326762585825469019921022982018408140220967379641034799855384332403614921296179824063960961646687135249070803340748803245069707658729722141124981652307241447477572368177324254882555248168293934503542446025549167931757652580420682681890036265779809245724195800269523528818315063479125963306957684838466406083715699009344334486217371822698737053253435736232608722421790478518674777627105903327247965113713364512620599898811243400582566491879563675238271623534153602340889336153418444393635594838416022537466402070589506469324226839425118057740040906532463265137219825778659962015148172530061041101511551890604696855311737035107865547355632996611700199395919974488951156814698247343057548914064824298032575205893818555923374632117951451844348318887787838825869945494952696743674565746253026128070159191594293337352139564458472881555104291554511807538049094309917525312144555292761512030679816705818389202965763968443648293942222912533733746600563267571956136123558871946031685136239750393923908931930821628397632106796261770347354387935752187349221452712354720248837755083370021938405855785031425719877497989423825989791505422367692504899569856815671281189848625719363055338447905781473407062291666609267084017788825768246799124565989171739979143926716401342762543112593917068017494972447682511536338770890320312422201795108199459505498364664509664866306435406026641737246808823877250408178967961164120289540567341998933308023433278040328469104939643895164155516405681345940889358376006711939281102281247242638076744394282323740001854415373754333903212196738902267734756560730553426336714585502902710195117854267141999058741262931612111387528332544095695713974442461883905672886389451196451980316656140501693351788573145058956740969126974459997719931330206412300042844014200065997421977903651053602160321216035737364632885202343491114171013729162945511177861891752551430476996092914313224574703272082888432436565594060927709336062700597283313419823820271826786584407827743210989391751662891335068968962861366795905759910546312084747930252690641194746663487520827479755622176604051647994830686320135853681206693948018338496123984692403745936738174718618446897558041764935613635177232712438093758394069889116974190503543685854596623006496250198299573456497205098803298054729381805338424964375964402075072584999382736410881100422085172806236825406578781960996206957606181750469985446414533815261905348752594118199519443422638049668133171475782952846250924503478321214823323260126970420878140063111146757669702054822675700036541392931381312472373555025287783873717276504114120293083540360907769072460576920397390324214564138326887174737831071526830430267392056384888074561020616995044936433266079674251816996386147271774124859465343104793372655569496867180618892792817242466583971709531469542712481759593734118789340632782850560598976166791487512978329365015310998639076220134282370391879316213234899221382474340956536620167425788846694689701587583967166497317800767412586683431842070390696263553873369282595337496263193070570633460528916009035956817907105491662436757979383841074200558871946200532084104443321695028162944678989531341713902213322192140545116514250981760146510072272582679852206781773974303566111157731497737959728672431023524154885790760128410613184050668936446238650393350093190464543212609185342835432948097148133828397254421329198991503416300306817649936360153576616573298054359789623159626366594602977569740597712985151023479067294630747047563139638962448704529979992266653275496983733936490478405078008846891092304599606667958306418859796819350495465686550818002207347470179018805542133897011688495628829442583293113025918096950574925040478994408456857511990001307012722827942473836637443418120842160521477866527211650801538508471876408307715542346049683712911358949722750543791712180918689820542376336583669639531681613630871291031008579422705935701089286547592872681256771697827671412791437702612796518198433861138807962775390984892206369822391597127626278991539872188385454038361190715151834287330479539345829671204622384257889466427611650392528165109076452586597547505770183644688828737482416641043943861407991987245629589730689203428026434021531330101800002094327614886094256846724514971349151085314838384333026350895546550740299976534792754826232502565463573388897103869761975850577233697239809374664052479311491967549799975118155848441076971010143072438970552983802285207469304973755761794980393417254682139744465796808013347693608082853506427241858966354359342258636856900304176804009851931471429767834260500178726333887932664094051511588217282275041363083262045073125213199035529899898991246174431685943556241302117517531313274385378648663265038299318560603039587163221026923947853631555407893204694790369256551604728324545963332930960802337059637015223367675503158348217276794837431211485191202632347287822494613946075665923799689339552716073361985963055022103243195604401233363222704990814022446696024235065784018210172612198799826348209894642891652300224051068859266798820137495681677307692557888690344284095818926201605029059943651639547640746658897077010423210768761109483324959473032167274158612631688619741291431293733342594715807857250083789302952641492390043108409860155565985534292014621362479062226141737858792115297056718713815549328168769985189945178331095877470730886729369770596926171659126681753839955468265327788329744770723719035462914597308927538555449621045814230525839018064561698151013604544670809862527183221700480065678907503152218049936127623393855834892262985623419592158398270910382334413727043153468224159981217406349431653675238164672091354415170908961248555971356797285772545144579436530640827670184867691507077517507179084995590929275596805692352429771082285607224423608971544213251543496315009435360204175970010788770046892651940705110528695770494282127377264143955445915016805020374587655003066277675539786696548506079765230103934890791597236152613376884277474306103470459160743177013882140448800415406627995336187913041807966918557121118783838168828282970890810540442603993432614337054786270630030817673449454384863610688568852628407122347334398652446700778047065731007034828702145628100483231373956912330813426844053814757375609406354339986448436927980156812499148323639465416508193140267905210342151201821029580090887656528936552729253688626427553035004702602882202415698784668455313853814839557846613397020246517749113077555875123294658698005888691768772366487488423480635884696418338042837185297452485091048559795951939380693263241454495476926201195030996522793226054549974257482445942877402693635396887930186660944376687945678614321245653981741203737928036924674169404238578209582385399986612297508172336688069450871836623526847928196521204761955931813886849271723446775415894826892673766092958381225797430795963256748521414598551326645332242349434778378043401354619669739344392881881763859251962424436331183815653058475489542218224262297839200805494450378377249387013537506913781685237541998551488797874375632178450805410303961446715633259062353762029519944406694683633399786976999814128631434887474334771438310874781879107173849061955950547768715870731463589970873936341973400467681269123557806623503267841178482290946711698583252788713257696186257781942115743609402221463490346548507229788662717742866444463443506797409298942257947371068152614012719645004532226360976018349129628219764847194427060558337553425306586979237375177062819398858012236033147019705237517908843225378370209560858904052321417029402419313042809707586797659202929499933763093793346778026256497680643485343748621461139634765897575173181101146815002215288116552751864854092034436815415356722323720843626683774869706663371248847410794463547249573506385415051317075164256094917389618434167741042722834164518361623047031066891033303021849920349615696119603973846136922211767519714216622446806864261308460511996996517172246687186550696778056020843769978300698851856644031487807864741998528212182443589660772477872466436075819388061827850028921015432671857344346865624180670481202276867167172639748456535925794467855364684935354258616290521317039272286068352334996900087208680920336871164402233663879001524158045190791240880975887386941453796577034017020015941749161372549763871922407035191484637026507649050329474787091352957025596133839547006166182002826342631096044117878806222464353817107217727154291815612710647237651416220589335075802639225506332380433253399194548174272102730702831774264271856502030855453580172207152107093974765127174156066943630549263684912339508077296326546749788497835527516143645579508249588093595557478495312648929514057841381423678643515588074220136060621001665008077254641272773763306464984708579138136039010235815683256246626047556268250237928918798821962406836156478163673189387159352381011029413297623665779479682174329962739341521386259026775878928390788135363716469251060651749784800202041519936689285455518082512795022580585289560074551241347229936969976601681561161886391802848741845142462084891468143505635983344302416848147350564077969407806551971262932655691897701634118555727526975427016864703765969040194666033862946667581667385145728697906955065148455111467735930657034131495502979113427649191945677482742843479860176673284252913992159414657874237446370350527917149821536238785427488612635622504018958360821715671673618906159562869019579254229418706590638125029949265120950257869403755807807051402600762767989895471322613461625532869932894781792083405586988405407394278056836194573889431266782760041536082501512468793976431184761469419179331321542217967306578767000509342733666876052081852684273495846566725554004624968324990373123044557955892379609541230366379246616138408020278796591507463760000739289420312046843997274090421777665584164310541396544664378390304972395438811522351296800519086454542665145593863728628169617667306786815228749093136731755161596405659747287796241570371040429040111772091330962069331413904542308973534579762645535809938062095388804238762954759975050961311528970597133083883098462673484899843001556561601499349948233168038790056223905246408921643279138487187253418376985489271212713756122686384692696916976519231271466398849609683104340819943317400880584497400279352955398796912545085187953500870615238992436775481784984702444909322002766235731211950604881399985306418943678585369605912588322384855798979664614057638873548389099855057459745667804743396921128472413546465775850415431208850916784574278848993091627582291558630921233443970508010195087769145839567632752538947097490004174735826182521886182098853190474467612974809609377055434474816818588929491843535228089107259518562636693116157066091915359237195470470656621409411638688223402204656693243155508107004773118163500778115736442332655411445358382617040056225906946547444085535659609812314197142199511252886159662049866691746605379926571285215129699979758921478252308680906695885843712475378916544234339475469152694600553390294038694249597687345885520304297297518334173671567915755369138493991118016326623098202728042397749458232903038712965502511015440293722725888033715465832998638697514073189476943355272743537085791389380467815373267712553923229604647505207914516800572982004810780196694390993807522295037453188056731635225753598665287585842731082370120301505455942853337899881289925170049401149400223317874912648314804839851503457910519907416496154262815990504212470443606033820872002438212863026096845061296290814999250931289380632432430989776517851427176102337451989680603966318081722709528999275633493349927241961280449889690740152225604207084350675004065581724600750588365897035812268511454935224172618942301478450435776798993195286013061925860540060485223514273832838506974558739501506097175299877231988897241796778276258855759598250943084996091176736438428912453565886004709157711509028433365459252954746302634940888168238608319225479890022710999309153787804218563682919294917641254203135163029574548758235628961405932841341399004561359564405959445673849953278760323029432124934985522410264944778825027627316770896610651657713645412497503295038035232686600271479531159168462046554450545597612968840199283544461304447894823171654115868919221439573244935940627587313635798453646720692161273837715858818660157367348377003093163579492461687305396323506140108666686908152416548373046131535302421252464290672028668552458541920354456592204508399909423979357758970023759205392787512399646203625405874373218902907898846992057734814203029379576932254025671251273651064953649099742276774417058293824548825301579743087227242453222924716764045896267541564108272616578198700719218298820644204449016778250592410017756139284738897852049585513478807573823331427062693799703344704466227547413482184795904957218485430056708165142038428311225668829702017987568703659032996590644996737804628521860500733340172733355465083358499407980316303721059552082220394389358538088496620579926854030833445776670605314909449259815917741684317203644718978305667471883198719328891653418598755257915620272056594882521614706975175433525157495377822797873732081499275243920156161567424136033563083232375536555265377216619117718597317176390047787455173083290198676630071458810074599831535645546768772458042911372126884715567549911309461606043830877546539616875352176328650298477136055476216489501545541444578181894271781940666660464444174658346512774452104550165234083156360957764169406341018500270668265334450769443602759206289738641750462520555080920790134146317430881260004931846020608880952714392411543542269779634237938986604161288981270989345590446180723205585876318273996651894808016864460698697377215591398393968498017583737084703762886675676731675577411519248307694142784286161029437853776954985492250770630548054486139166149203068553977988856225360702358462707158465803218738303369221796218943963526024258817660324024782681389060267993499328610241382309968483234318364347303921039547188710225636520472138218873652113930242213531689284251183090022108400517706219267241618117517037653118890254559934628540994499730019924129267260904803557023025128139109370869375914592507603176811799406737048879478753105421950484464706180846171001908069515307116154070491585443170801685479384000957275273763882378923312387633006217194130009427139602175888439864649710254446714743849511608514522532736527229488112778413352651219808580957467715802138530661964593263358298406034409508786424924131839470859460049142402484741629439188440612784609936805965116287270728563620636367068360940407573710728831256510743993955945873343466947948723916123582222234002157904122610750692133726978713508265768228008593955935312142723941892523552228718148561336175970925201013642757736563467946659296623982310433963779366236914967382892418545782981494565333169913619230882992157965316386787796071598325836380166123262294898616332601294567800422310863327338288031934277345271495123125277501722066789679719492892336879575327778543040825540288075677118866259790618990731754781186273956199691665726212597096668883985362376609819532179656380077348607134993126397150463513997629324548067046134016938838497737106889164329705461337229299747535514442338615046099716510994892498255075628964086144607592357856386819766407139731400438628278201356575588462943762642071040124060391010694657248034292956862113274316636734155383077502581125431156292819640820406354347004499997721704290494210106384728998254996251214712265050598313800666029037735973809942311474657257328017672555941491669922445645986859484140592044658906149555837743668425386661625135728977972208304366673133041677901723924910059915345157886446194157312713792882580480035412477677545386878994929193293588156529210579801914510475669662110166230204214152992132202537004859832560692253656980927944135737854219865284915519834769651400102422117747168129454464036953276346521945256846709078423456772592744959525343969834868824769670001508266795867779604009381146806652476864992259639723591384874263887948645115085634632260989592615677609058619297704630624079698201850767712356813379425893118599015191224640821882878690630947690952896256908972107301412025005715799096639326066817235705318010495640233417382551446693674128129287572229222044734304841229771451749096610493729499267793877233181930647088193064610445498183984636289273612456961402912703962310862943788806372808879722890146137937896139187390836493808539663983615511365994576751982022815539563004028690894320285107571707121201152558006230257176236616413422031504295943873451192269806192811479453507624628807503238683407569043944255009186149166566497111681085495275055809962626524535185227910419002343021793698573855611907457794278592818276685171835695973248556987922999806821200726005658225682921113490657945906325212909625377220849807716643242090127164634238479508601112774641773864203884418201445710512315669202948656567664999920438835369929565677322130700611890416114065042228065155249477180984959416684382152399694510785247742724301765536185027927732856713787610987462279936263009469577902434806968755436384039936275761201501108250623973855848201339572728952082991768442320504203653966495694786207755781817768672535483930702480058826080643225146321706491640703938305392457292795785951367087009198949986581863478369744525215871223117781477812228122006808188323948037857713339365162134575005691103245267680515016994455165399175479670715305915953352023256148937250543571065890917255067230252759118334798903100644191067551641018126562716591450697374571801642300464993040970734726458881618236370201037092492348678743039278594531078643703825264795263018558779005278223025703818335957594251680136957598149273180502737900564190245170578548026158329121459958378820975761713206185416928603530971554005157822282327182745821910963707034629015785594452460190639442813652385578510311177703900288577730924965973301310618582337648774875148525843259105732657619725301139869562300070929880680905628168224718225491150575540332157141202687496935643047026355724716510232684661259921984391833050968258465313421089428601465907850405439332187343101499445671049728552071043260108721082377561854033748588550172415720605454272761283708007206860069231316182477091423169675070417284620822528297892746864026124859526842828092182016770672571357700605700169462633933210318201248065427359935857095595866232354257388308304052100656986166816868496036697702070060816193725694636474892061685865881833770941019861538866717601906560152238457553159586456535095090181249482944212837068111316117187853392369105119395984636388824175147912640116710867748168433932196842497383655952797758209641976162996784286242832170574161393222895020817902718661840637681891243886811861769449378392224833428222424240208119207107346203531268288783177307014259634079509658402888925847289103557404173494414290171278087968953038775987765759126022922744033776795193434086889537778963149270239787492100320586940870318633137947645176572270459091665802122267999622688232740037115288575383850235192196155749096713918450982476060197310062053620428398900497314491368986877164889473983319878819849335029832874618285337436373396299058515272021630479081519880351896206145669773912247631936219566863324683229912400821060074420082744012016658916641786864265289201932555178364015423794028205982567325332149966192960331972182599050705467976899358505310156571910591940984087535657672668958631774115601210944574483039265360860163079092147835549558159132210954507202953615109281294566562207196762536899120792370896584295790109217369453179788954228524182442860023688588297858694791840808453995150181213182698288675902114243219185949024168276799305731180102260861748946855746519996530779645100958953931095941788752273446392802314694643731681998538952634400103778372628840497822559289680489598307988030411387972868100530301882445435104160053362110082593716400300115668910168823042250421211614137407450920737525396392552645514151052412203706968749600223165472225906255427149746920430821273825164828606419716782743449466799199542890922497954129191374316725371371230475082880997189804275038291805788859782354270381177266718041288044851500831267476250955161116148437856327947651507186228016601626777075680593524941104628529296761498006326380087982764864926776838163292909724960576357032532221499242473737579616483021993220834833568333710544975862120831145754229124556127684803622251357821197455448879706352412747072395841352453873800588362651589960887672297215886118325482708749582667208909256726255603132491843009562434298382424818244560059189974721365516394546295949891718080570205389051890877665601805418283814117413154071472520676940643238824943787010805344815265848319251234979294134198546825158459817587162799743395924776852659492501275170662632822223192647634690974040515621924304944181888286743200198858299432583966620140883838804306292005615247836152630450527133147116903107860012100033595257420088666867478242182002186997912169466127040514099821807879037336805006654293420659831395897539211878065464482690177010141282873212695248619309636285198626105443865275345222551275625907493931469208494297087496444220330435963091498280494933284998909701380006333374282037774516734211915343004197207284373944908920207395597649291950588710473100505416569392293261475059832702189378322044297438742088362145979520278130862108165045048133977227071214104297250674776215416104289713287586497656032294621102996995523423210531237434564629641049867624114343969400900812662223353954504055346878534260041558543619304202136308057203785928450464724877260509625526801050160417829391368976811573939726484549217171160497768901453706233865925297562685748769474096603554765428970982446074374539184321050801206938880016284946878572093596257390434417589070109332717363175759321615694902697257796204417141127978655271493851569855399868995387968433368163943609938630559553716735901902109789029700624303911436140311069813200383639911832883468510605459757634479998543459706337529212907752533852236173042324479260747185134456715740365195625892381333129158286454357165636275134954370568457207517658760588500067507390885937137248890453656404286098595057999196301734861867840942946118765909775287464002337033886629157927467448080366579885971829379571988071380009658367009660377589194838854897539096122022332849539681472316734746650965314226800616618123744620005898124890443268606881771723022439385852072073680602479248719972088893884372621940923710388790548767458600112152263398801394608868636656051640239894460318809666403187790620364838433376657212088329577779438771475622466885830178069701884315982724194741244608533209431554172400403332706324301633948959131963610276069667051403510290792761951242297516193950121014209177325841040205168500748395536564853874309218097255230883266776680573429413691337242619878770563230596130919368900706314493618301706057825461649509943470535727034773787567435972490046650042752386204043781280924555541024211524881782886234949163551458569134934670996924616844974495029367264132560801120094467566839309951578449081745082972486150940356737866402661467988215266929790111612164732924062351712932842156884880191655707526039382851072997700264222752346110276848418603265048691631043740837138073132192886104715045473750440952703357245847439109302203926841427266318898344954849912005479815892210982501560580623286169920222106860756502262322829171573975308236782720700889272161117013298179027728721646606738273892255724547184635313110719191454222044665600146469447017219089780124731632084907028496462186666954903445404524762053230710248612475230640527158448491910320206291650777807667530515765623549799502980191605501514106195987304068858482606791810349949881635165057298264547077410340255624711084579502328094020674742111133014578141300792331637753073694838017931035452449670931884837515683892784932723184951202074138725976029178685817214563100888995342222501003332885947229314651653312194092224715098758564757814038488700463977724820706417593022337721201247822927479727063165309196573484412997999575059643214485342662606765719902199092828426261872119025416441576741431270057737556740291974419683088594804395501132414806935761026073126297919992375206794394748536275085156707061675861965995762996525914399910981182056165766724844436573075303581850074763532188364118085513341291839413706325364036635049345601663226398882521947202780042443302951331719399739592494009415444657461276143095185224851326463701690996832770939557476935240921011830596840608398906757111425413914747784619443508554573604964327653973477885411376875451565769112115406104467737148445058124460776289173024442291006727835977930336310792715093580519987595278847209046146657103471161660257448115473667306578911232229386080110873292762892640148142184778331359200253576130710884430320604489506285912398270134835785526833980863439139283143519037393004336035954013960845932321126638743843285933067557416419280291524907773463342206087626523143348272729112424309361730705818400469193360335276754732310246758639042170191785216945341698140242473343463357509425861450870284161217709474415165611920366377378322662528226846869232051932067405337192108643282541012812700566846640566390287137431289355830508236902895869258367509615089766627164558879019272153815204049312744296184319472192692495110752157763742281725211339015446208882802184224668900043955854715417848702950983711327081697514497294600003620005467503907690065080002717601487540129475937475244514287804398057250207828833596017236899261984784947606741671959543588554320404853984872309183129811319882017479317110571260453412415942549097452794934775028786687562235297776171847054347070776131134903135510947649479306697020694469197379190689052917958078761669450954734782617384185380792771857699360645008344858879695065984488476928332314393651515083568290074265395687300752417053890712954282520871813336396833932985074300969105907756643117287799713898624159940681774668649969692918838688921241176075049773571137279856410829699966967872641796783324356646016399072546363615873105152961640899066082102085975319562793757606834188267006450579206445866094561814932754589010340868039909176854336750838388133626396956137184413583020743163397450962736475402405685124779100747426855046953832098795917843127796261507409733690429219117869354169154999813687123953895383948572621439906845149270777735100076519088403059208417363406023406324843881519793250424514197553312518674241100987994101406562111550346775484298645730873236075858118447595189325567855694381012404367902713491006367193124372445839479092277556887925458501112957916309115195172717771831593818662317014408810447204069423254069525216513893461280085144017234470751570333227607364087837655909935832590020238496642061724708400853745756756976973636338010404122625823217207294365944278756184624783487122082753127335089429486376548619689983710541907923481065632470990783098784990930693807209985792593450039727359207232787185026269996149589334285122849757504016323945968449681547365452620989533416730946930175675667372903074818755893978809258021605716246982781344646649122870913430973373891430975515335484602730293844675764580088952694915719182637790192740560628783849736852121952553812979722392054753840041154567800274814385431947667098610595201350402135972629063860448493993482071377838793867779260695200500456743657775503983639686885232667328229344926435799225326255168396535802321545985225385223384621171400318318562435910062266946219299485052923916849081107263680595758829782700415437125774506259316516988702769084715495173036820982006512697494850672727011947359273497706698573081884327921104583865431393679953249956823311045478125465382085142367199133310650665347807498242152396406636473923353190926756867020544530229892589255698135450803889822174380780057097288669286559956709031584069022331545072092482963278427199283559392330033486055458426041786580637249985005045895378199125716669234123098355742627589392414205419795439771449837935393609876855651659103308826670819873597413026687905208765384815523501414941949849682430927677143060455697725359207382815194472493497075982291415732561183280316361946452636668092108549177197705305261360065487293577235529260962950668472576888214967410120157069216913346898195523156270272907886557101770993725412651465540236136387514756046368338396352436928272809835677192168897805780695041348895345327524914636245001352158495110649275885843201980601115854571685758329783063394685396835950187003748704456220216312574633999697299057371127332473738547296276856013835539081667385425633706585400048277777495789288724732610410436045086949285865578525368110155735492196159073796622413565842092979325066564603885453102045611548072392113376674868318040195474331400432326111105737405738802369033800125856685175469573897629506077931199949287310372379481885695599249516794970612884924415517949049076197126525080079832644676377042768676994684008526192357142370545607661458606423814431390272604833866171554199784785469746978693259082524819435235595458303077124282565762542442698499334432711804576906032712083339125368110494142901693341914657175457116797749478437269911235355796280600346519266557379595151096336768314896753091382802328866684430602497505378062746615716877846291651957348806453821415335709641278364912784199593201826062646385555014526667945496537246166639671327389400215490355228265724651362965981935766295272597535679436372275111029227044772267566368790713165447310221766992299580828854655827674953904077956851550562664312864415454731663399170236391335916296312877320143975115795795213994569914730991155431441900981790033056460631927827790249978276909777231701060819921017973278557227233180460001206714415986483686719176901595566288414732536760871884180221615477793300699218341473657709794184770283120032060057119061992719310300707496631437820159198397493128803286753013888345563274367480009156733224922091591432273014520642336065389803731423798597692992678080375247246993407307060419048760813431734071341025474989125174877520270606496971869777532284197887844404089530850909882172923023230195878120410946640102435766677485173372482430946523285316123276958895930519918065925761944573205414610051890118797667629345576564311703317078875757694920190529430493901205423045691518090632737187608009013314399053852637009973514395814512963682094346936857049259344749815723384461832863153536075041054112231961250519804047612354879256665603969591074261161115449514213403639020770601587528423697975583565697377443228997013786577443988935304112373105694052641776575988204813294233109909065917128579170269437902375554524328718738495926110303587296938275384004619562346274597279506995780590319725064296016053490351124905484406706268672653389200377323902240148702396119343489048726816535293976595516051683892685695647750942123297690930855441598683627491420843089172069894775865057575109060200759637214366443165828884493212652055361636597410581486950729188292384600939105335662663071142279024599363343089091483370752211253003241411959460881093085915551889377101906403888499971445893622118422980898583286687800635692004493525155441431407803457492070447939101771993838144598968529728201746705987845835971346052895838951497798642106090093034145566856102091156900666835524448799690330490659495326370041809810452973687075749391514676520406599281570834520177073437350760340380504336039241198144213927214043406590135098900594710376094352950042165555841295098657066612334957760372283009190533338626580361812890624680120135727190030984175304999795092612232345742399494692950366922602594406225589762695038475548662182100336618888365031162541867434599391609207153834018641425116799088713726592067387479890406407057105354455490367540639803606941931617238274324450317082176223927550746145966164462138905151195463719084432949123625042152665809521206373160550683454294827226944331390570220862117703550613057102003101628107407396205964851103130451385811190198570586842570834384386634163722784882196594308671461657885588178016719239456628270209059143715772998241213360908070396936104775932722120103342663062781486177808391560165915067550433390706730139111247341644510635400363050666037374033375851979913198004557390742329641353167969338820930168133027646253039593314134965597571532594346044561541438457600070560640144332881875505383423745926535359437951686276486921123971185754884531564503514228197691958414592730205852709574255304357527779640633399184938166043542813436988350205895783608030810032478141481119110251102963740338204599797271414648241274924278978470671907166837267728203100267900357472849058025489759374637475143686655427034433575202995173150391318653941611339757360907116615396826691868079109885605692546825849857178647487900439895582719782307690343287856655080979127256403244603838827281355986044953198640176810763483285991383156221697945970826862480019845285142873369727238469123854712973983559615990344116004624442401512136649539331045254366984896214461866835159165308285357110632861397687840350385099141614839833328100893143622841192229857137900588028278377850135281748471616198174567443914663492967072413284205118757751889777322728376896066275893547576908323105169892195594297911067617244215898771821760813293653467349876222103420743531186606719858144916098090372127484219971078264307187477041476705010175989274756852302068463554679045699117273488348695165819672504120698067439317080589145928051278226986277053587946264619802793720082223451276006249278873030695342550878862068045491676508617779742041783241462596117512536916228709573884727102280562431301845442924368286908189863102864500793585512446299880676578476144724138972901565537521413714809710610718791300602886619271177250689440663003803094400868927325539406823679446583365907133877908462679951487598575300820358199376718206885125012918585818173207487777721111963929157073327291055028222742171143828302596996308822230219076427553265827535644856858498990126007065460012752324742741873736294192869511300157107435996265104913092329015164350130451915267687586062392114261859470016298044479123826539601856333552739042882496332728941729757263581387785840140993709846474718670255908500141595679465479985096189906076585215921985306707892938556807323687788158791347472826086587216402341358922398086032608459172380878699099814530572719763129453380852585592239489425859603905376775545123567866530138899125303791180618366723678706413344164147818808025828719700538678901821317764672083574509966832936324371911732702765570398182945680620359183893636958626418785685934276009656706844980520831490964911902934054993744592442547731434290833372009109275193859375738130620156829244299980325700841262957246405039089997445147426918085590442541985827879048260971176452315831116241710364396890628155727748103874403172724749796438784138908578417104237893875426666217995023352744873921148012862379053620322860270337099779700170513491948033764477094628078293280135512224058495358724115083376427885348280975612285026661488904742663814459084436222243709840023174522967876996241651518668045985381447782873512804915130902175794857780164585379381307091378849124639358958152800450723530703109387592623195408318954528571472425338145560367590875266134077994872934006551175855911511560457098122313959259214843684838511664467802724099893138383964162564599944516885222127414347014845906925082649452712767023156195614816949545283969626353400368235005584085663713101716638863149431033378640763890516819949004540383425720975648994047179299425025262268004964564318570444231616140783150366305667727513858054946189715025385416296397844730256078103922974315490358583211715596993006652607593749353367319098693961610080072431232595598494625424185521587131395664298846767181303405758708881118684604231683135866440866513911666434031292728596806920239487575485395629661540279749428279196558492073378461200572975739950584069763261302995606848431533111561211370264324582886257315058642982364030281628734233931849896447499422789142281213320183268146899243494278671222473876824904666855900266681914370315489478688507939283541969250830421540666785570634940622860711524662064928643823072094368373443844972383598554240567746114750275514424814586342954250260873116601322687100344293291426602022255888352757519310050937924104934115397472156294964667809238681984109914130534709259966610091631347270323822297654253822665683758407266915606069493502557948356733250872245840588612192452482000812421722823468653244140388632873016426025111162781722172276443921774304117221356699910734568327910397208421680173943088302583020668990537858676772078618244585980849546079198201462692701250379954040697401765106203652365866819830636796061403597677484587920472573143703617125840927596031832238023109370424462450217684252694036035882037739712582654127364944351036067797104914715770806651227577057525273611337456972762778174062478745597704003516335728778953287170340950929811183013828274090795677003156056217975255596523453025346890188623464078902231667457804261658880298869801259736647507376066842426178010669969482314391294390902780654120488729547111192286640311405035827893855676190490863797192006533677650308130051822548324275217915941257275395243380425063251717518508931708512689675631279273044472018219080611731784865765663829747195318890469857727161185353287859162939617133928555988423999670821912984207787453261368976432201749799923500404174106779844073409375717759112356405027281747342945743043665424950121900310992761701598283622469232659219082075080422361125218672557307341181075323335072247489351169058609494043727276410126176728423403950254452951000447841903119759128510610583588853159551474383941253250981572469019125492062121880010225380235790392905628957278403870788994079632903713144289899594287204009411088341986222895592835390417529151660399065557347253905197694103877280985773550633690974620872641945524056861352795802615814183009872895661647018548385095854270496693486335028336277438365664445843518414986307725528710171965684902163620263661119013997645484892771232244630911359526137209434332167699071465372456729673817350699234625450197935239091078318148872450090485199771637884203404433065776430862754437574939524359388244944613728791976356222192309801508930654876551172785581271611361901616692197138361090833206413055935523582356682190171331145609287359995486160261015482902580946589063945622765904955663269282333033481372651998975639512676979255361671371344697510761823104601177586798914246502149040010872897691025959696403135905621907704845983311243047958700219463030495439756630465028016904689113968732585790248676598549126185893663990545532566977215588688909010097185843802655958733235711293804784407850029994502111852235038598316585796804701841511506114845746917688682308680830304998040815641685999246405939826149479975870387809065253431786617466748189565970545055765498694263723770903599033479261804759944823285808366087873712569848160722443902033697320385334180876096390938025674371980451839894965471104030338717361158087001490412128569054027567527757659043271327453993197714736825365913447984868302202701098184621548612305470344824560965130165383038041300826544753250390780624872140653491913493446586263122200450941961188552006035026478805197187651336393039929315244311579535547151602294153178501877976629214425726636030513567908478843400931549007305291384281487310975339010008187571370888594873945795413601811266868151232813421376420212853034795956776677425512297326214009850677239859395011026414028304620837889130587936395033951278710535131075620854728812430808320022726150846914756387605217415131369634231801479391697895368392598755207251210645084770021006613292407956601030236845694940618598805421021792445734430834478775172926917214581494614919231724242815593337618667002733289396419443395874150491628766669957821108847895224253675410452789797831829541632007696573788976432907691650140028324224874207696079689967888686689096898891672862288723446589487587350131659036681290015538952903572812750117481751649915336550310998657822156072401392696075659116858489785287396435650384869844591154932344684544507900803126052907281142666553903328753783673638387031982584930412873707934408805305812947826565182006747698980215216057454728997471087614491395294711997957685845111562370904115079420895297629397818341836233018939386882430224707751868015895220553750836488254825342781455772974423278624233405918017527379409056333368262056141417157537209448152634823579589817616377519871764773592280964802442893960860802949598967292212712476210066880458650114043811380088760191520335169806313616721338553541404311209637585338179594970517063329514164155540497607177326523436903117037098139715714556271235725376335939814230934442484717067609919746440485333685261197601634420203945375591771557106371824629234972493488984676458937663385552120188136765556376954363771602574566970799480483485318148034720475406048846028134421952880634886158589521165303919867480543650949324999896062150898548218470435442077109109076628462764845672719493840635423080016556401564813314264257764877938316225143015825316046458146421271028288469386724278903984604082383243378239749907904771536905481900564767682156434556962202551401614135426422044670017268548760347116634196498486400896074750547523180875915086876876692767327823993585836874310564922581470882536711001379038415602326943084545082655503302783385234451911112170458017303178582428210245450987717052253198377345653846150968248310157156881565593202651417217350453445707510579153660326174083734062693520991579537775533066675125227385849372051400887322308945082475720632846504008732664597038782872743310892674860250051138066486185955980544619917511563919464917800603878129264935155517455350656812115064688906098234671269368840212885825271680036057346196455691645302929617388620122757655457630456940660516413316418839883440357734691144279727172919203924856294054599685105098024083314812330054775077852455054328627222076296886625071724402458126123254953886946442549966689439639867395468308739231880986443094458354444703172997487159062355721398399851926415508514843571066327930722207649470006523240704075838439586409283407706845037091109564013497066062777802855981808917360549660377910031645481243810249823832568223138080933634245318535451365817051794305782070080552791679476891437342326076837413571499025919867266721347077655249486618447278322821104304392270672716762129083477260618902747932710682431194634214943852940553739031632677892390698399118988278985116078544361762654293301755700117428821800195478776431682714206876926372917352012941804819124806830176282799346995565303825013732440479736859922900215568356455345328771515010088166421102862329521936452820256066249856442974635389489281745165916271342841225747423057637934958810271272444730126547533302326753286558799988076987137591084426298744463098097659257262924119928735909452999559889506112103436413770478791540433993042927959985280529717587379617470016933566332273780606967617613668700385606162717273658521394035214148160354409920100899819385299226069478043478190049910983374848955533044676238833863504763214620918920082272659337026894354889334212754325641585359810485733318265249608116111501813680826240996399695075610616060983780912096733209901508839147397771758203116780834984248059235119424206686903468216636818028612364481998638554839209449023004476280864241126132842708150172108210891566509299834508342260331655600697120190216301237177197660928219002567711892230426715326898318114758505741611268731546967360457271832670436896573249642071957714851314727129110200659174313090195741149924739694183542262254737056857563008419599080638613480072019517662880366396324438750937616271125641894595991941142541060204988741052299598860364218813412820847342178463401291137611038843964757579572933240229413940315163234695386107766560950171590160749521085239351163800693009676241153604540782128165436748244280316286798117572250763961142962347414515236553331404432957025695038542839927596205771322745861416267699958955928346273722123774205779768653192887422134339689429361270642582194586047349610989043911153736653618242732502218293808218964139966569646557756445135757916969375873054467824674990510867273133936053098043624871486177840918767095682594690698764527308589305672756245704344500203502429396658383708360755721856755176091852042123523619412140408373888149309218112403828519831219364071729666080277441526218956185413225955429473454092859243740809313262778986853560612321713209072727738821044579856790670254030665751916356520895610088494130993068535103396949067545618853843741547799525056618894219315088786769728875266537553398586366487755041366114447537248677559723100750787011259939280858635027535120370827165650040884230082723155093005330401009622857840490139915625380433903001301116429495536588723222783184628299301779469708373758854708879539121346353474033741687544452768104126879049981282393202254113333072934691074038445386417555310464699603908685101754584305855032089816573904591710407527394805926827998249316932297656883895620958901071634214432385372704456736948544815674795154759885903384247323593610008040299827427507928369656973677534364498087667672257432930278411726522344483793233402074564314092787633443973521743613715572867837407873151631655519194945270297247148505124511828702132846762467318169108237428553876819232153597334255237759856738853783000990607165055130240199384735785712516951332304377138145039989220805939460428533036333159041509286569690678859427437360374931985609001684187967848508471139076897158190631639336673908838780247847925625802987981764723154227742507070454701165270422874658052447295328536267841733336565769232903257204990528243605669476650527894973702368346666413609516282598769665404516946310400157747789481949940225406110058488026908586009688719559795924302188699071262025431272506111631102472893289180778720066145352461631420024284487142741572977881148138223913197798716165612824287085641675971804612765222399162485857838686536911444559533807397537036010258223456819031079218485128798174970152830715991932322265487218325211493105313424197587832036773599337303013663022462000922081492793913282878689976409341878262375716740769142178557967891419551762666651433701742552239136461956056571727959274487785849341155672684031840847599399423606269973141738129023451486210581716608599423265124480984691601276843908474313558753030477346852098225595086181890286641477466585167589857463973381960918005812650590218993955598027584319656237840227192484120858387323992631824716135603109742354158987664821785032806302131983294470144587348689897861225328677479211613988582357176794630584418883011990060932543945255283361930683106253571723990646266021898464793652204974465936856895583403901609043157747411229777739694141296810802690131516189344203086449024867244215776555421231262314896744843370042192501957213460671638462822992525382192440211050610961600167540091816920565694014250210003203880971355687708984318778214137908156257913277798727079472684373693971839972566763341613356886778493404517170388307326408134057739587147494529268828144014346561834444138033534444692226078878482781722703251610073347476120757882361823358396253391517780921032680124587163400984282165962255102128404923588212464841456588795520113371680966769812570169525396578447542324737429043397994302264980402760355165422585900551911817321578399165113130603556681604721119817366936255237200439117262164118878176706330881039399633088547298219732846843945083352930523342613991378696518181537226506339865018356770059583621387364314068655045363159976492270679520727634301436563184740670674834874429098742091385999917535364537991612320367644111331838376081340108710507043371094857652710510598644975077510489466193342955291729907109381452645051595557705039244166809433436550622659151654401842286659557366700554792269692999838224498412923724893342084890886332111546561258539086690727560277484790318216459933215791052424557953515820626011258751752648424516107247322120824698527647071777159368199932926800398267627494452096534896484966079002019738711189906272022964605334508071477038699481759484373423486239793398251062952819088926970905740416771189687688650193911701991450710130999890448143435297131907324593405014945590584681012725418687831498088108786796654063535680406086108323217569849381262499842097462421672351360295425909073933029825414565139812804228309629723062988232856814718790751274604205992120600450686336695802890914235901319555220979725304697910222361724638789432417140027734731863414665001139826350579908316276868000780402404936180966784409793510183777311908011415458647072812143635674093911798350760003217608028053289909950801729523071882112655421333806514989142033556527774527147269901865359579669910916175204671555237311905119278913263863678393820284990135209521175753081941272642703174341533295714186044555617176691131223305719767385126068790988593659531807528162247975182650376399908948058971844577150985217568080816866653637872720483325232168595708486256290247484614884668486086478524532641898923523784640422054984555847545956985826446283065720132140292310308850165361841927395236690444518829192566381893411311950271812869330495586554038972562451392018573907414434131057185830651292942019583483768047831847362575544157763775608919445932358023670169200193330346916488580823144734305310671967449223352448036851769008807392020352207959700734411891362738306555950179464633843630520191910122756793291520387673284871465794458337031365387557033695136638359393446757838516825106643570294451789353162514485895361461994308495182653156542471618296191291814390238965721169449967135698626681631284683224870846174143115100884157625598268231802962501668604307553276071843540368023149065760109451396719781406150418131518281952766043858265072638264962258741024908775225134909875299548570337652655383952608178476969225869033320548157434428501558487527246859683775092681458056767797028406376038392827452801778909166724717743647928626462742157488613805538922820752426051993416172412149007009068547395071102958467342551632129581988689941602535554920167046418161641125512381541352267331013985998637064503758967705461671114257544526319252164062319735860398079954687427941996447395712253898032731639901600141404776971502163881735098734032602990214911078427201110098873124636251345122980479046108429333466430498821002016383465739412623949254318983502522957764634111820624145136462270213723669845138664358864359466617371165260221578792587522610604631136298091651058900192181787561349105116682636634879607999185195710340242582230796794986058765676647329063598262192992120738746818222309529271910764242793522569825409932573311097991370623215646440059786728197810732072349166276502361444644714923049358829925324333777317974357856621205212561747632423723952488231414069257968260230543630628337493093822966120428707873953191888128628981821360831982128116464211188006082248559292205678806787230816633369271653525932994820291632529254137920531475584837919607574505297761639466181134021448673498595479086817516786705261628295933978049780661524494383562145311360767194418255396407476134171349655678607357706564161303417886775993871254829066722061841858780626979418962018210204011895521965522713592210743131375809767265726890016826514248715991234060867341904099349738395486024504189155390293205377062587019277113876958820547257549340160614597111296998544852656613787430857556716163925708910935102603511424485880833301912311224190357413055698233833452825826094719247105074813820890359497663698405874322596415282488002636724674603886758120640543073329834952708621245427488507863641840357856365503168371557076852126760197113202840574813072121028207239068184988448643841613174962104429073627207575507271952079072741694217056389015578488351797663119372276519576205667216240673794148960483771641566866441811636800016645426200390974536502983146368393413268587760426695349617996804154372077147390175781185475848619531219201867233353785139604285059112660376800118831944910849014024501276854588361122576014486235803629659480250778847241317040815927103376668600425099158624006458339751357365819535172779558089901940131523874013244430982266248977087418262777945627445792965799801030846149957388400774972888007123558941390349873126242538648828958787164866155328488061380407285160994492959226425356552470676961923023648035676228148037294266793639162850768258284758332018574175072458839418482249037202892216670246603855463982859021092873230533148600807957395967780292642135187310028261562515838792016840226491611009625137463668315836383345037466328581953577410527783934101581725045116533583366886595109294874253067418964809262580125892216431302132918019619763063030789947266608793412536762429245974012212975340877758818057652044692709899316803654752480668059916499968485278619450280536948463238030646953486430768852478728644902081855153390982627199447572720008563889511694746890692336966671258762999356876188319146272069556604170299614479533552195484469286362338510030041025935740412779594440978910921649154287890776467968040089625189589153237935849893209145721116973933650088147933059225298243227127949878605949793335429948010723574269940852052970505191171484410340755689710525545143987150049320690216921654079068801447813790167411607440967215568938335984820053978025244204093330577795219313978428231994256975124509593863220871690269128103817462692661492335602661987990433641284290999296128402503396726258184715779879279039744022401042052923708330158582418587784012963559505099314085943321731203008380224171124522179325195858771513122836935209263564095668690007647857312938256579504536754614823987548097620446434846541341896689656986238662041670142446495641821770772929654009166289145692955697691766931445508207948913127373906511800969189187250104459257325653528161781470775488928895455746064510500989351313940593439795326433090942800620608760258555373366635904139984826041634356482683539286291121945510399417795828348788081211114971985044439303920329354599770711684516094353982043135150029948358502266527545486306508380763891385210642503859719939688918597080451596521638659759964742804245858711184784977230741434360012733628991832885442083918086198782840181403870531567570998597836152109495038249331418665963799346727768855677645432339288343694296377667825873115454702226819982794002016582131599224153817192370718633947029015858815423034068679678855338671354485159007310478088726426095897773471710952657766880897828261800000267710008138293295721755038605521497036193938634999846160825061637858440721308349796228199732376104241198163674793403302759148911969313078441732064245099357640103467544670624429646853176571611684099596839066897997462617948399252826231625160843233253127984451413103194778159149078746894021316987490865221080579841756372592162650041782937772346851281750346108648316942998281582881985616128816274924931373295948136737120612945053323917656425445443251514668844420582382053205542306225505168547297428806495326083264162941698890667519807201713954333945784628935621345982377860313567743952305461614407626478144825455861653476979759824549995687628265061730102335121300680415372862360815561391069963373329106182651829950660485486755436183200573586211959323625773742788069669894904511366458976976024031553485687550480670080019123810427871369595183749523601542648698375283035460091045121678279400455292660915689635641025946902245375940134852084327824114787348530970695554592823348538890309611825237830662007373598840866564787760966920896556194683044729574270417242891956220959791842515417543999523069033846387197936694957041117177402365735861207657486950842326460849890560348632265534053645890549401557551485297060152817211642001982033377930713266548572130603501681662446737722227059572780230224381379747341341128646747203311134807134469562150340492983424633663025676415951808503623546820738923975877523367762622664216843028739047974816713395913278605020734646150689593347484888787237729380137480104798211137298572471079051310538689992554148989656662169592842656303811652252942444275145083888289864374747750530350978580783725831618350145099367338929596888164236265157026992441037092735989870105967342983698929018372397507829908858851932925216730053162771197377370900587597338373920086896884803005459383300128242239626988459857330109332054672912423070223251722104578267869389478647998025719412901588947537652052303949892606587385105736105914764816259115434034881162578813688281780261865057469403033877675122321208000679311312818117768466200574852631773955809438001583626692061027701765756343739667219105206130154121869162707825332686052407763748207649114849145830906060910627433516382473307508798073336380760580312474500239424106360008014644092471865459006197335452610113569907898951986578875292770983801899819927687953098640974199450049502537689403831468863198058042650573722852998443124815801092325608049451928035556174785509925450043549799082924051391055226398389119952965342847789478298255170837577118266261039621317454929499300685691269620200107316436289267641096914826858081079697383811747950186171863820163771828612884036477937743986807037136893119770730228491466366982907793328237870022541908504096837819652297619945914286072873757631250897065698640067742210927099286788292041876192843067655675509857974511011902175830646075246069083449431535370668839445850256440114431853172905766710110067186653855223860653845149657059942588440317645158895260891711783808977481209677053830898688811312047705150334227927993302571745851029103345937606292706103183337781402213738107914271958911537063113693359071918042502164586992585729289587871711968441774134987216836179875617633897223239530244553383134862306075903769779321231333878208919526967103982764683492518519915425731495118872434494080153537844049874490247509762611069221519501443545462238957090499229352812365886845205653733919969202259020565292006321175397150691794043521807286913344152950403020053284620964202302376257371859321588445321672041302688508317929894159568060045223633562407653158417371193456600762270786201249101375470354676044725683002287220945779010227196708814377312591147206489631529427145009215311825790434957493570803141647535523490577806210713897317881192244158832714057319664558857031143736672040144969046638022213078555110739800243721372602578591549358697651588135204718520967916657368434686467174266532760957053844469644198011160185864548368130692553155569899904653230409980693489701887647408770555062707845626146876012649681110852923864534161376482210107642894664206548555157103147982543762002599077109798897888203773929870625844501212216126173628922531410529190213863569396404052356302540486456608629489279849463353375344979974671509478827598893566740741045681442081946823532414153567074759045485607708202509912608590671671793325707979083667391686546155759390852891961731446996663183677278873596250181685521965756398259000450744548623309760281873867751381894833419909082992827456385022890162166861330488129968042498651707705879519327897528593796414734927621815455360533656983210863370882423275546335467643770657578179832199507709372328927573474095939339694435499812892637110185488847572799196999236394427198337436818802414972037161429300997164311609667363450416735469086220526118983246844013556930424589805801394585205111465041124441638211579466767373148917273270668226426324974182955295715818806066449521436925782654845815662234778799987813445464556164549083559015941256379372451151968813383042710277213841132675089537501687102673813983491139051021266974235725100131096291236740603447594474951115209821440990701967579471446552697952867635862142969097900665914222222011995046650797608767086733548952659659008553890693439602245404240647610200478230054776298329244581028360970551638811512247033534964510849620699795448309366589561810774718659838080128004241021272678152605967216188185326219544667842624523213634388627706823704361896791495145337269763600808630069143677049529341853743439220313935660997520219741437467705704076449047187637743120872280619161784584848383550758517561666137216672617739217008273569852157496776395286819817866475720735106794498712510651563489873499113967057133666195003910378369998890810159904400136883442706701203515292284491158187292491556475306774854410362955445989170325564847956796756587777461330867344933797606023480298808115912677651779759522743230402316029611938789621842913173786437943377734320925797142243505305734684641874275678985210128355605862741815227144461369056378057022153031023172485360538894638712727402789912278219768375840536597652488895029221722583254214736026252508749332540044085270317287873932514970301511028885706826584532506867788006075486025495489374398523907011730719107362598006898053193642546960585819797982423581593840787895995081169763181437355448995226050022385471153181865460430300967754447926853790803948527094606052422423989976604191768542493356813051170828063688005046673795821351876111397455933828758725309827800105470142986236251332700044126900589682313070490199405587708744209725577588890721457951173181043847977460895744674965504178491299098061553553297761478362871808852267711994155679329237076693476907657364987359161190167537346444405118921692052333631539982476277022435683244113922611348367903035721003654844393614397692332074156586021899218709366529474944270687892630593713681602273147004504333788717188508856004357568553515917820774319293172418550147404102478859986064196504847348427585058280101814732113547693719610221945400969181403408375100443435027265697458683400581820883248164381660351376190280728073199229632951011066543069792942861960905775488926098910383716010124232865625435120890034531852773669363191398971905066115230889580842388916835205892905392436525628174083911236390853889304653214149968444857655107358710856488987565532889122683901474965400098012211651010839591523629526846349714925378096239177829431917949765875583285217142498925316050571121763903096360587321969529597527965865842302059973660114066326743808697698369455831791553546955509309097691686488094083001619636174078506591235014658131480465010350348263552597626309513220298610451041721706873563785544144394154971151449883112021004326919563445843902464761028555560153788989587231090333734041200038799478743668944641777846691745971648917113208843551471867127164316835557299728829501027241359160650040884139788686453781348592034122485182157189423108392960816923530669624463236143388841410291106083421539996729631921665176556422236301796122599610844653932310684744280392683820831092347803588055319120668384127442371026187583533316945621318514887373335934607771248063866522152650241031148102510941585261397335950516903421567376495880752230878192960766440568542299152991642782529975024545434378214589215284509280158499440598403609222151447005390312802778892835220486745425060496111756576551725398280896078046687904218760911205243506404125656500400712310176442652564892619447098320907758648641310737916516544897700108542525840934121631979391503361189504607265108285389918203338828600864129778007270410516713757440484188070369571932474126146805075710721183898920368644900386260890140706908936047716838080642425989609828395011397624148731340272253249864260119215337344105909830440764459421999612418439641239837169404610342526041208386524765887436846160062514350578888893615380122048619924937526737659056152716120563550545429374204743452543431580075891097904169979202370460353075697777564917602584755401182669199988899465242645099596054981459852990921265049673134595244362048273018489362744351091479247908558986991654657727970671137530509444304288771842103388624940936228014286459245536850927330884426902823247418012228800140592843213941619010264749183943883125994771349961624119746572532641138790082062073611300929854610484885133273546487289200941965343374351069906639771051162646777302823044648795250505188950116644118383779969102337127606480267109652235465383764405270300034390000752433857353729749080624340296072197766352827741364469452436548200245446060326049992918244295497314190560255008208181595251586763940324019387447620518991252855680738504616967980436547837705673656862424203306685115309099681360239409013945754760191213692631502166347528753497923300114371009854364412357298761877654794265750475858185012785082995544478035071108006627271897780970148561577941578136037440390173326914495059046593845351387868398271093844711903232195655365290209293969885323949465612526274823559530695850183396655171656808607804317390181873464312805562961812368756435461784025947212269618218697338347305553074643390155042800753159785789846388033889095234706911441282656477735378346740481324913336874386902909442862997007244302657131439582160098482605186903735410750585098647507434711502619467761232917462236739924160925932765543960986872094787446172974441090979209867743278049193036129278544092505286542741141428550517749885260746408415984131750543508533592987401465239007574078446506057497174383029020913655303786718001756541612164743149242579910285321560803125062633308086403962085538098989493141451428928783735679006400940526120978874207556664158504634359476851490264436623729781908032228833816347867258404486926466501302277307556863599640151006550234748228953930249985797459473854352425925628837926865196933845171368900523629325269141492240548139863043771742674596267594175735541833391029663978683834811451116313106198959167931845644179014851754259961125127312073288481200509290024340552583571412333053752802287590546776475602267886583414535964903795392323328406050847014229104654336351165970735758862808589849989273722800013572618153393788101453597508110386878767701319073133623290805201901183577262310301061471770171778150408378429314685211953674221305227211198437570776224264482035882082980736118310062182988996419966750681038255201238830656859198586834506917413595422706081323566441784835943525004498655620898893442645731335993236481634201000110069612905730339163619383145626469583040327794902388789992498241751247222620809789274738941042095907308090184379980862234407443002940361775343629041932504661115693750823349974121466818199022047451193884177615611337862729910862793050862744302305422957647066219192661968562750913522296030842130847546647272316459661170737815416652621096188760159905940559464740466710727820609106242266993026023811097632270929934902734922536939693442987176954781864504448700192469654419879618091110846090103973654655289033858650700022075159106762082752025016509478329967858535279203470530402723333803294785693377625990845645988337886450203687480969060262779196703040914389237630986693447461042981144653921864778554314022829332612712072998062632974660997734070947001924172856235939353126399882555740261805327216907276835496095352513226138630350280967386250152305480658776995597712516842541836908679380003704974423180955852892689245004326180627249614803606772253950084359517943577150845062795244359178390338802264172875379346049457046828673518120986492369829317904996789596358750213143878584023997208825894149817807948721450958503890721969600366873153067773695576317203664192976521275993040041075920489081083364202655607603994731794734602260369254460905409821402425978643418667818178628003380880545037517826657535049129091662450560547328979879924781489108678925303442464733374318853964230639885053716476196276983632763440719096063508005292946952521621365052675034626407133368759018278350298424260702527211274358785352513237789031060927620872611540692646923415229621623698842551201002719134468731720893347728317637442560676760771085577854298435750568420010881008487250895678366178967054972395536831440855025086421009622277236854982315458674734216033941877209029210528009505282623967864181868206495749616393645176121117165912744959925891327836918855623716741871085083642004261359956015414272793891275158843293557256303436429670391662897719197431910283701930910850292113628067421838105035434564364210672214620456729504740306012310413169746589231939540817748398501550961093904348395586918299523736214808877447254776237946345997823155253521630658583622808848257259542611550157882962173963961336408016813243940029353239786110888389268778726392875528154887525890120489848480495466340336350269629904229021012901630387727050549615500070320782472666811506418839932134173242178158939218981220887108597890021369329901702852003503171363585576589797152563323587175456550168510350566623226442923718719305889693411416782947327984139967471568251637608218712395714181194590730515459939942492695779131457558030446773235811548550760832584484926160610396055490450248340572438508569613720588023062090101155345818246511135947231429742812333737025491736656657024494025088480055817851701055078689984250809700926788685220957812154835828957398849372177073202912847179831262832655762046742244254120030210846690673879524003283439691763945801093578495515956298049099838282571756425958057434892019585800834608554377638596766777642720324342564714068190510199826972508974514268702661856615206240657560671468923252886980608970341432695169501860449977687171759143576361885129741630075338574712851743058526564468768614940159245110245535528429984588606450375887685610958696837476930821242686974969301544952693629484428859435240871362702358257515110550058264095587612620498021791243123599750288016448336962776237780023781671875972721489427137021767960575279197581788633044430790063429830537332732605415044231994705335779205553400538833014480353860006276616160196977392032226654682152499590720795340200450122125316168344771879751999684946590595570733980304408589886016435471996319504468549722637712275201114618020162750727247253443048927169383141239862863745250621945164015357925367197425477403266286334317092608907242489457612229749074241786007251856125913002614799559803274329833057043950064476437665075277700238783453992943864887079416660803188601333137983477329331374950986370030456118692288151319530215092488482219802655742857547826218360937341850024084117506274582632991214163265756443563569196410819680157060927033676795823605217515342379352542490635784164607605990378778042291785876809686263940648458419610761821030285133775075461190693869912250724277054936343600504040992688127584937640799988803869456192262264278888145120834393193292510937045677905642532230446862693005194421893404428881163890924050912895204220566532320582633485067145362517540216132503687927014949750140255594515710644104439593301760382402424672571314752753885289031638575455044592167785238183736287276498719686944036351442247134952550344867364731167453628979093226879289483822168062457572576131054875695993754665706734608682394752359225889646011153781591425807687288754992394764117471704354773421649603521646759105979457599074789939816851931081295028390891736763735176218575163390004571354087665255937467822878782831908963957235158200656004186619824999433786795396272609573560120683513741024636485864685575959741803935224821416546274931014029634933906071668862245834723298075258257079698729492716177024656510741670304197287185755786518425375343769563259027513299411006098412214992444939924047038780773934515121690064105315012441122637850461644030341700505831597174407058678668152519114731675683606139253108501774642080602010495536644808226858167872167875248972625915644880042332958667888824778760915569959189848033075508658768301901239008042009331092634428144016571940272974561825732053767034767109063408649574392056053595626451461354720412470853846656358564648434841000850595925188485266947714749329076963141158110562130424098787138861880888265502497702625006743022078990476454792110662419126915271710127152837133136631365721358752497818404926939488489908389987515103629980186486073668915180399034972392465551283418894352613776017289096409785142287153743316615688941149010198205164901230937985252738205187401605199989711369883658102461856563640549709553938445227912967639195677991340504729322890593446140798088060586902670344957604967530241654580418082594255702540273354024199101715089508225006791476854621727991797256024595320529060969779818633518843073346385875438256257747781152926699118056180573313602942854769611173882814014669903563560796844029415102478209496484558598855495564171941559431834510776460968547041494931721600288815269292732789046659464451246849124012093071226514011256940871436335323337749393960979709296169703083474624977443098825070242794074687971549176612951334733097765154587320727874430039537936800953505715498271029022651250251889723863838953443442991097983324585980341310802587624542506170397532875249128866191818955259449450958717393531784315375369858247777242992534836315216853797106306933564338295461551588160967397632555157581531175587589969075411769421105151957346415640622272878538849391939286542479138093311226953652947411329405029463139578923084641535540380970051146689591285406818928151840887028143474620509243393401041762451475628001001007891461997071829738550545878212075895253334324503495839177791125311631418724012382962529694123579026865867248396924519023411680253397812978330528827335806303305127350132317082724186514835150177618792204902827066638726061583877201259124565437123362764704865963512811247253853302659005944314487821848769177562509085876947084511400005428131933026819427205708712760184037111600548329730758538060192022918801994735420636899406533823355842309698554643201087920225608328272062233708444222375462672484692953887237565292207786230728718700337179600763825820430773616697511080275813958423962096869475275469051640363227617843303564830984450761369543534043504509830638329194091534703080337989006215770113900840958470879131247300599830093128183797389167526680871664129411051500714444824555599949089131087799050052227478418963803836148662067456369275436066977364477456023025317263540236084517625527874724060768305928956771971017228978218657440389547372853299106270481172564659605862655721799321914704435724935365090778100803023688264254440234147542274298817737739496550659093197936638743218323446417102759190124136899435421852911201837505046855920496781069731476206165242742403259189808434473745374408600229163968794240459062646583494394318087046016969990203804682172740040766309398558493547945975769637284150530412525871510871242321104702506154345991791640144635887009287380349584995779706785810509486871065549774587941626249329508472902785746678320424316221252449200949467645677819222938039001457386115900222685965083789680227020452193381941821590766616748733653164197833505993333708294421218618404681118798222334531664607530986353130794839588429699419017437337761311766166313628951345069879710812979641077089688381523109844627099585928585002992159660973810460184454521529225226417198134268504533220572978068042142624682059043945556920711645469672683958422854026774216139242095507620122475759455021298796224087240579602674686567548169471017034826420843349056713233078998864986974049782226771723836468939786745259731509607864525159669937068618647652817888349564802956577467728362891798940387104995280753959818498560830257397438759393636603917408116991983454789122899241095092399979571492005466809041369929424796863150245111234094873459928640225644598820468774062279541410155766470333553862943564270910138258962189163537508643843146556116380341524298530690727314978492469384440807514361868875723521021283900300289144090125741245454054241271014068835978194413767583103073635749116100809871973852757612324162888961136718976567986546819799090812710443754794584249770375322182999166073731836622262953170081283034620915044910883518392379918015604762842371599417252165131891397206703240867896793136856514309403358704171753684341656219292490593794125126896697641141077121244939352493136226378884626971572850909572388020023325754958353780148212305059916616570822840311026381387352179728427927411507862608790291084501845755164099380336452716262917106406451090659657864113067760921134901885544984450986097082140048362773708569248692840220893749112184431135904415768718859077400801146705389999780861061505093541148107263343072719631017360574743741060401883697120409352263464401468742889501136619055232160029438788829583543982273959372641482714260746595838276883605365811297213122911797877298174693664098474351514476816463470638883524065145472139267200547963085446101968566215125833599001123398495630622255754192980026884989893977501079580844175434311409235885665122306588901988108099456083675250596947221490392977192465960211866305411776772522453290950766634832852596468643115236906329580949804602409558214244496095958396448230488941736809589713276870780537673610996981893426984287821096727543551363787679954725991545942757558689560605492184533908551464417255218119180781744231059688539044765433921542669641256674475268230238943395867589795723821237590714844686538874360235558563882775254944302347123574663488261190959521140940241488156158136015435894162318800771633454935530404261380904766877835137408730230570690234462302098887729070291932527634326349535581207409870378530499298678079793226643112597942468858224590813925802104357453458457637667347189448834884473802885828568911224627772802600657702612474146783833498245947221914154547504337707297298709441045148090438037905057906909601606298028761327786728108274144272489934895207436877136979447425616295435062184344850434692767526974373436722516381097260198603132343621629875411105377759795123195995603405730023728068515910930695637326803481576577641135871411327372490006323711132068174936713002705069011185485124087852224593519389644331265060679315010216067351105621707915767145840228804677321067605364559261201794622635013686844930657331150808734025588762890840696097371039745835667981969120626638505653454154344627273710958570548640651154834490370321939727773480596203156980023270826623744424993195856857407523475911445940468624152948756824122886181363725099043275498270935488839750354716309535917259937648673923852940053254324926365100771042197125120793662700032975741194772520763161125297258376581315230899565465425033182008794024663194659271056872873577134672719993619665383826030359368906213601932546019097544673350824642418567443051258949198438612495079316187473986686536869272530216857972284455206953959512322577779370363736718999663331554088926632407633435458620480063320784391347380568795528936832149867790096176271328799089593463223155635826141131475357496158620165216640240698903616762182463838343869296739178733214019245060484518632866927920071576449208350641410783006207026399903376395597236933690722447262370515272339040763140433433444940691584918644782091809466680930441662723372387556897508845405913582989137589033542165178632245704489104144319180655596797846435291221669896542520890520885095909422316174691964634009800194464969869802414755280799954818299294263234721510055475409720477999695541684873860690829249541651886292328503712195496631170872628683459829004162826562083647258063723218218745402250950311420374881209816945340388087982726745623070631499672606201265071441971337240394749863001330578995818628668167058549043241754587772412363086497486516822286453357142733641269770769830471402643661536735777978342808381773364849653641032626720834629901202316020456761215152488932859479195730518853640342805295932074180950567275498686069975604973143151958001698529563201131368650102877150600701813467970887194834698282665254262222789072217178991183033842592129921601782123215215772314159659962605702776086818641282080405230795531856074247138504633649358040715374180260595738921627294283397221374326780503500092062168929527257671582286210172198046915224885034139662410103986739947902408152566056634891521786549126482039584266506235749431881156499846156725470216424410570689569895305926792296997701399932552738487038221085064938982629181802325506670567240426481139057531679548830129480521607255479617869270501971048910567923989142601178556631106486341868389185707803899081006981134983776099960262474489477466997989797822297749440718753612479149222492780594354950312138862847517871976317734148117980647330011667365421034799706709541071203031364319266657535290172437374169781274795749225732622098544751142922824262696546657933696826407581875130888993031271328954134790503493321924149906783050905685519272206232359240888267834677067383101017174610271850090139498032790796632287956987529478531475341946225509370868698943183500063380876258889406242231171433015427780017030889625536249743198643500305435384126908532310616076871088540084103640847022230191958384541126627844262380066568641927387326136305456267229206889291473829557288395884584412594037946603024046858486920880173327755410328815082345571439392652364291791411374562826490836927944373184474702428044804761483014301330448611170428260948574037025402942383289666352129975552370300743106400595186472482143828569214651984755158787202502803085740960229615526688233950896586897052497081284764249502514177503560534658029748768503388344299249049211956068162727926956571250880654685623897920894311233193446258488803585719256037735735803774320114922133828010716647006178705231729839249600104799403770297131302611644489040081312087118659125570087526837299708826755669937736403319794595504278347458953901185251975195754342937711976273958653895337489148002614953578590223787689539366960688360999494027692830379884232188025041596972305935357856841983559459777918594754016492870764192507212428586849659371316785231945395828073031089959403885590696197464447037858086883823528033673433878766218335315912246495713866852372065959332622958119213824435791119064344623847862238378149633956677946664374872261589370084541905942044614523285925938525933761086608236128073381982463206817486258172148384211660650754707641665408519699809619802428858781397507631741607098935323117665221406088171685879473519626490824228063500831782088813912975752673693464952277865895295632753527372239150414496514842278659853707379595750586087162725853119992534199174366873539408344287495804290045905362153997371300059711381211688421817496540566764297982869020729582690197404959563279640341985507016432526213287121469874359148070571292695617500187027719457121662219811651196849346569039081320446946759374615934637798025582712436865948249666022221853120310777106190576079025548076931214489247330849121722466233239981587318635283809212602730461703143938949241174390370524117152879411473916765939112228851516288540180666438637028057211956036395903915878711154255378150146983377869219675669891685838149678767034357095464575695026571988621576341942825665338030067640210772948073114344093424101288107118313196340807854354831665726671566908926133686193704746191839814618378482833254294182694528717767848592656197231162440420627059355274539161440659963727469939736588038033535269452650019075594587339954047601261952533543560277398667845960630285920263909090785612162910654199940710859773182792868114020199359856263020621228753017111306320337910986602306304097684649807370079936651918583061085235414635508226729787390236246222729742039207636706897109194837151595365042794293690512354411290436876046257418983538432158356769828038458434640159526686810258554225344187348187522068253620003085101702249464594664180789228519338808898195699606909501187724302274344666837497385417149861373379585524808798737632901071243345344616769730423058799810329152428073224228247934549495677791516386062280064472755927895756108600363207924021597833381592839551433604659079406268242516862722556130193519970279854749099216983042563968993957455493696516059507304045162324955524172183417669268156060207721982121981117032350273822625914422746320686674033310771088564220491031185683897470973751366790753523119296765110677525386259448196309564985296939706041571745468221693751362053413899745008464112392774075408226298705103661421104469305182380122148611079347978238035335071389453241467374833603324952332693347997149811511033138019473389748420520716001480885313778952843010638990197401379117776630410615697180248008222580717820724706259064838133972522966392387586760839282085963354238405969503445548836441215231199246969277100172432282824138926313490421091765179738651429310837252273511583527742160100911023241219557069961852453000705181108646650835769910399077695266869627923063833184707942268044343735896908196290935185756079432853682243535718338467458330840203696524263856031845208570117012697398654616302466574761750289283443696889122288710943307750288650278471524035002411901871839989893681091050394185477188539739247145499619851223312467694846754102067592159781634836722527577435203524243474399345544686593091208938151947302921923893074405757303578154902537317774724328392434176711396258955746003484917719061848343947053955816335175193126856168345046446570093550669329012217546606881789499957782203321710201104600362123928304863621051430053056431138974371316742734555922507491937381582645143148991843958391330561062523568160985654465779741945935556524586535878612127947859134376990722575834439738683877249299034912566459213657845465737907126226480938975378509962774549634147745196629171782952760137783160627067298178966833511369175316088841682010455613221041599355802480156172872669897753806063196659055773026580168242238648635758834396558549800054903742471976085496285159705880244047621650920315730358924788269735566645653098389395587981248694039858983201430178656003676604548340848902512308237488330786161046375190249880182392351346314377783007455014758143246768226012361752079105784124672038456445549895602098629863480504497167489786309372343270278701044476228196771174367773008084656392036123404124662029072569718819303100469387531657717081186661033984139275912674441018724213112546814826106478209371151372318778134943302139979119667135951849367820138384462026134601590720985449588175926207013717035838260320652667419844477296402098225748755680715870795099080032280202097828439569751305277554141340504010348454377228236313261293613343835279017016843471311021467435695225852029755172056758065004523782770972650644355484092596589109764761179081607500100932728517875603784021364102445590288599732413090282698982782025427157161086223732190164025123979013576739539176661732289398852325744790357971692544038071359699066470492316883246934676764365739637101737539748892342247495382065085320872338857209722252013494104264945213544075825388425892016209769565115963544973882226909986019703028255584205177303160357719007348163660388382434928305873381344693828870916076610334477407606965411984995636608233539290489704445394834340893608709946150573224974343629977709334987055011148294013435914002414141475560105737523643908202898003718424359952004759351951261065164743786692415649868983827716689179039596450532657717289391197763942473740820358490870323411029495129564049863483038266139566175218357560283719692827558124858908363117432120462566059914542785006573930891880004437015932056134161685810133587500283220996805927953338032519042922243033501021135052092312179402336290226280515597083777937152874001066788426851280035383646543242714809972910989129047362023803850712936610751944803308553835914970067978873098297431946830344786766329819861766011164497961279177115488834122723036326620748546835558654278609763212041834983785813347981369946485771468872859230156364850642277211643324055720417244057950695669357630298790562056139494024086970749859197252917011540651540493420755447382556788046183171221006888131465299491029499623444460534207700892228364750868189268007795919599809709524968418943330686849991671785706210431491792819267500941137269049243633837934515287659228886972430499732835071965510918587763400072165210210629206009833781961785448035734199454645354113433688047936716450491887841322552366697643857414250412599751367110116768251409372571494849254464955173657723453514345058030790370089868838083199241189531548976359207915269042674232250592849284540372571540228368691978862992502577532074182307807679797610220491184965913045210848079914225069873049437110575938661247206715950941100906085833959890530123046632786579108795525527012578517964890006314461570996717516459809427655542499886558479282048881239072322602141864749579872188750742222755600701877322403536387198733165984386458519204832367583497377994896698755456045573856925142492834760433450507647248413082764961662881547068826024924303658875174074811268981319514563981666493639015450191312939531065167580897262881307378095384609423109960658881906802081902735016623211771839715412316010209568578562827946729190597500783121215173901430468406494669296425706079796589102515831891922791297594341011080842960560089268818349674644353690424153526867767026385213611667456019611048341432992546938864841014309565964888090848541470096377516449563089115873783846289085836722269245513579922148389660395838220076341029097281406596602448003004952092375880227925260055722711446425931340259765704203204916162434641342496744364647799286626956210363150916201029972190238310369389040603609066842793273320385463660691292806337545822373085542721787915665872241875106802299623963571607344235253985226793068356952042907317887577421613751673744417076489527295876454031296563908738138501668826643405104393123182185286646311332723335054056837965155260039284670967101262897284228171492601329415337754660793861343292122897003096051695341033360438985809137276738211273142119296988867158464182024423955952643336209687071746390720975004078961834789637570801329651987441145204077965715630021514913180094690662241230863489095862092817449866419046812159548469718989515840103551537842800822305267212920300163848663627558861417138891050685016950533583643072770200278263743060223951243492269978927216040000622893272840387462610035375059016154344806660048514462352445888228937361439271645070986527928178481435896790526500550907904983431007018853159529860533395426085513070717025498862179990849273922139702110974143765364930317063825967740316629101586730745923357934856961863417005541562296799611234377757646746172943861146446050257470657734137278657533072511454092874389259715371093282626863149939467662301976934831400486662068637254417657424336693705287389380763826303443921797918093555944773509199997826426290218755041278735226810292098058824001152998443433013987922832466381774621191618179690368892996133312305893267478313443852208463780821546866380980354209429700490712237181273329550327116785321627054412777390773815265057011150291422122169545072683462776728241667177044123195342807562420727892496074922553340068040738633105451587139481872964613183642965205553192755449367341463621145499284142074179918273562025273168368159390079349339655421138093229296797250050163255159208594813774499331461131556687079618222706770404687455109788387802352761639485836851562036596665758758461099487327604866870485335454437562639247727992405201120496437434752857747101227312162918598083442990618996218553390041427269565066717065686411735538939244601132339278262670768268478828671224427140547421832874691916038668406209328971262183183383969450830940095206401575908652040779597588628764292799832717348323870162854323525789219102110774330349000761065006125052409211727659737885296506377298408488220484999595473759266822486752538660274879068717494372444926829832070868393709172843878550501922356263457778489968499289744321086929213983033497702911352295462333728994766608011963753910737346159871323407284994507571853187963110790347363845314576377533036749123103926128871873961671631300206255830949452924098771982141809782131686764649538320693527018739440742981777332445070068716113321557687653630460434270992980148212390946549603916190465807129544690384043365068450451485844473981087052330515096425688810974923994876020823118926770480331384893787011696768856727819151938806078573744627961961301040899874172207494278638866305539026617845225338351930168635752848794714533499430016401507314306197633145677145185466715113056662180275808144322637776814548467090948987253345765113067364103190481715378324584030294587049498938242259587985420359822928914896234470893545477461650972542037201164035776604322657168048536154398049977758993460902999149023016815959444030827266629612094926387845592484428249817872077889058260448426449388701539326040705301069506176716713121060454102184174219485887015967857101124034114000177179206184710498346533196448914841851432454259189920602903210291187483839916617990058356167893544887558188160272341803136020915860611656892484637161497347400037414924289503457830791230610215302296335282759079028821297519842951636419892697326835239334372260315800403563463700323983698731579418444082051348993243682266426207622443686425602854881252542074033248191899306578042667775940401893123772208010226712141714797684216573045874404454694438894676454170122735855862874270100894725046263720795393045850583623009449686987389785036768589341847910950929800154315077944574869182622169754964059513298086563484386139059617189176613646027943721034204741639490615902992694043804233977792813822349740155186757712139734316585619649383089449889955044004623259575120334238750507516356798648520048312019848718163877726569841959522448196244888687926370462455344112959725948208815346442641970685989803658305801962081354084826589770046875832153135180112298156139033847861406980378442365024025695779438322097010169114887485186608198620853075961185938087105310679219218946400268047282992013244140117957352592590775542684727875705540038687029022657535176460045503688986708598108033246886310565029088982741244953734557551062609857143664157976505460003620585951188211654191601769739681326276063492014696014400454266517362206840761869939511000604384236222952557126082316282874237663857844518975760272766833879292844799612391564302108874687606319684806285173315945170436413031725260935145856807429825286076750320822132343219580258290577629581076170997389266579777270938248789515456191449470598298723236772384184767177801440315024375721716557336964094220559163872564871140193629709953154733573678242726448614866737503444561028045083600186466132844113568226357813786682486284594007068507829098765922662821760377762788110243805516312240129169211497361243769721948506278278616065456859450997026317414258125608677342220956538093072351647337868079004519836174421937316993403384061201218860055244357364872381915173415002357574587242080685887126107470704348647292170992322393771126065761073022203971555693228431984895424768382056584575268072002996060850818543276900954918070531309124929016541648842326936088014769496598836810432417709366477701911565601199080223482719463427740005026038065301914050520658856204374984095855167410379401954032910566163400139521887292711357472006502638469856786940604888420292774074959049283703493785225019473348021272581563401634627762232609479425999547427230526336992062487391125136119257111190330956522912098439191584271107538341355447395261077102075012725481271070122433657598781596486394342858799310568382290688583889073825396942757096838437075148223662313948752574488076881253566330163891302507845782641317396019712447153703916641453791927443712044903224865581230082712974666585172692172678297825003354041972119031860193069990561711266718597474248037198898282091022513892149882745091630900192567467280271475259365003009325870332613985441981061196568048682804400589147567300396620028206259042379979028475003822527573585255077293845587979857393490278738069146174425312926717745036281924579539190755319426073494453167834769092144724536350001520179713719732170204532408078971155625055455212801423925208913679558735794799297387402347218550798134393029022303433002294745587689251475134354124249582341409428077639358038776991032813737886214215438419822489753723107643949309445185559820138197520285713268269498820146402767321396760371921389542883279532402138801086261301445607887225673176867556301686212977279593715044968260728908755725826595213430949986825489002423583023700178145361378877512810077556857484469780793619705962757829639668411940508582803824142101862918808694058817194737180455729914690677763219352972395866664068541740562682580263391718627838233794417212043740314234577995430137976274100434448580066895101539205853045266486771892263459816529646959257553816368103208872783145002194197439601559448293915318681408027667081815893025281220063150574835928674999105752797604048087743713499717219863270731945843135790058917481165065237771809050665843832297422157129062139942849736967528839674414738771742753205239245687945557381192438587055305600472458554628097775680668510243722942367236207991062996520845071351747387765129016387880695577863939868874011910687966889882949968581329851417666408288765509775066058871549825439961673508978593045798716732212566645787794472097758243014959833682804994537467868459377389507698536248622173944155801276947308592367255903323368907086185760686391310557907121518670447773115154488364188791854174550267457823113364337136060152804556596991704167622266836288345398523621587057306847631176617371794081148239369186981229715020564479617356800271455774670405060354150677791535407593999398135118361492773118501610488926122368188198281094758503612127434831795473284637379585720967544217987114827097108203787336479334845748510698572243692113947279894281316835278644887946434282544038498137697932874072422305536963257388706587205128064777654412102986270659212170640096239277167306005016560053627672348569989215685865545445426636407706019294600566614381723928919957718775363402060327983680011724547167263217723318842102105487389097222848610500088074911819358261350400903683803935324788600148782136128997599910661626907326739908095990306226767917515463692905912238780787378375124707115246497160811532192520469632101620463712899898364003213873984704332428877769148525867901428382533398775205172827413958302084692539594687239539519645637300092466529626788661930164648174160893616650014791064567524247154381804236448699863075351868829148395890985780414588558167348056006250525721571677923449422077911485689478783098363121126550868996910702259569221097813324665549788077672716731877822011093339156643977664339250093248536283248055279611943888745606703888750439794918793213110454701394386501766879646003159496287354270828747349761658047920626823563975167911442292565435800153130148162880725675639480404309052917386814274010450592151503270456522585158068951396846457887771956340036739655086514767798186793895081009577046523828852383296179730159028327677221205557543986022964218028083375428514601304917141904138782421956954089898490625129480871436416145119750392211751806547405600149269547762674350867432169987378722711960392691604221777029798648536896462019331563270829174328459392336601774654573240637586661022086349904277452171589152847488613189891513186017032029078320283709337400402408442449597442532876386064898631811006803961863068101155422241045372144902986382390218357362221216928442358902573221503444795239641287286199284685249444456206620789094456880212681534909254134572782522203445181450219327140218750599213934602851222303663704547066676732336740729586063666733692713913035287145921651112567347009129268572921230040156943662059690343505405539176702155637191769171620439298506778000283757110117654606781006841045070905401251634534655121512047431127272314635047959588057416657936379873893492344734920264444964767416722524364572921139888691086505255113271599526900291242594197256742501771994866668635044570343275951537697224668061418992502794275168107981603849638371309198465464778324144115478097041060105177309933029921654965796979198930196363267497718100141302489741612782026279139208342103345258280844629989434362609935166774465779052625714741173916684630279682830209887898650977915375956089283116426831083525569914225081933127069143346720675018747046541053237402096837694935287221871097966213788244143096469705529632581002934440458445024495326922064423814746261422058395828338093424055997376773686296099954479793354922480129785905918516984879660576161038382631888348937587451675059417388955092562626087943163838820735255467917992780634084500570055547381341680627826338078615078370684185484107406040336768028690696270022803923278185417744764725681162718505193608460141331452772741837554509384498509530404005902329394454250847463648583646146804264280428491200577422681664861505261812223491470644403151375196877290919598749217086464839999993133395301674033019455227298730265147645604438350648214773709647608313811875872244128732643748298017378201344578503502439057437977363267348674297230683258115937083776324326645982768682681165332584897761979472469144127961404697088225426837859697088822147319750807785152547869645789480525287018866276425731213116223684051451952527191366959002564955440504172148681877552664102406360315257171477085417990888005837413626499509645400430368525623586975681650862103000886819224483456144633360854095763004680445754643904919868242871801439497664646542505574785945635016849221648980642991177275920172127273001308825320362288551310997702884569988651630482769794194289274555900785397912207709667987034894399980655285222026585270858960742846047467014452903014816538226739192263713309464383991006260461408190835522630239934714728232769039110804418798117812003350620700144064122158207531562695460038791861585587956491116675536718401156215370487609029684102085773231936627613224909729465311125076289796342594069910330579570727554266712421318792512896857869454794233571743339826026856197772110351142369651282753332171786130239842369901431292136327140655125980494548586139567301036853958124182358010437461619651497175279036606212616863818855709282145130789161387118249003345425287866338707824243674684674056194559338525088038950021707161128560752425992889877563357724482749426059342744544590759169180953066724745545660631649325531011541582899525214754668749680269391682550713396234089568993347088427915464006748428625734231792478658346485788038713349197463997754437735469229509558041674758108007226939389542704461022672257022225156680475322786887207932133050215675635361447191023376249141797854913757516539205208656856536779934464662183971952130290356494313527653126575724963666314489352014412917245168679023841531371706447043648412873027820908642766795321402714882083333138503186842065157633080549750985278390189983326639199193129010219409415470068482078016563466273016774307602394953323653728217907799320692225863726529816257016626702268329859624121110515924525258061817050277628974311121939931306724195487748715448707363590477311102144404285039838579323273720299360056018928646241904327582975289667273371881008822453252645939203472661463378757439038359068539421035220373346836335041729530952184296916812810517422225451144858744983267153009412099692232807851877640783869275572765452295300137958619641186299185162595433003172990645761222560078699724787972003711227719880310000305705630438221138515222653511510036323740793418597999931616567405160194312693049606257372200479446743267468531444703278620375022197451449418613253847360932896487261530454198687458415507674350354714028093727787523274735610946675075574337942204392791987526312457569407038042927506306364873756320458501947556448710237102360026145495604368297959919213530649069228112321885733744994178434886061574474554914490246066363772987494826957892362575638979978394928929375558440656509941993126288737327858807211538820651075338278747421602469198945684269909942007178190211878601470861977009243692730041707191692203629212138536263160129161882729472156981236844499578196645749903222051253356219526875402075702141219669477770626430201146087127609761967375378039142217359761340477137791367751376955237289382811174560731769947491444093524838775114575804052026854280807522042280338171862848502016763179907750578804314434885871355387574615877433943534630065739095489782972860375997333429105707895934501868600129908059616738172827085659317655476356488703887191791039451192631130393647792198100047204858487062737354149375491658523261096217636070466296108176518732543427722460139953003969181174008183999931595167411973693865212053120934071793793681463896607162160571207272928976360168537667104487027398740776633847350243373057715665258199096024354520563737304895637899279176204167720925831759864603088737410820077259338446141131597485615889328662193556238552051715483327430785266526664470082147025205423365965477240356561746132561644478174366313881299497225539591941682459838691545733510778571902559885225777262748873093599587880257707123974477792803077556299011953700034771336732658629490894992238713786927308313258215353654466825583315916027561700231702692211577533216436104975498975897344498587276602020465191207825619729816581297515549545644911533521325968744150011349069909660633485892035452402311797609693028142574912518635432201152650160309669542697360037088172272651274101747753885519641818561487088301635595440299858724677948477291938830088733271939930593841537578207246657989179716228602625505829237055926488444401641596728172510010205825684208475617830456770230964671947686247779282145864292593485130018921940656522608803698248660603038331182879239959943810815036355996411945728651813381244451359964843679127251118718438811523134888466525485679777887937492404139581731350484512269661839630842428178256882652595533337303749183415751708084149359828240388418403180950914791828438103318965353643676916550246898172144507667031591241232798934485121076467961660058451868885086031245430966722708283285303567192094595175904892807465875270299549122124450137361746807601369796594377009431822867270544788036508816590538560561733856516925466146012306714747871137405993214157780813023349375873688063936856598059257006848088229258195976029723491503423760469985192592086308201203003976438881430896984648748362375739706073321883012395260321026501837104063363615299199294430460961265664478832005970984671896526624863499851404165578130388555578885072909355584213983021322365796922036417407892749938529495243647020864632965396953137386049351732452296532285415859132721676495687714627877802807479261799896971666149453085879964072452346679320830329639543440343560437622819120665941623301792311645300765046301337162324517212160152367343718545856614216173178420614064600859265225291638920022499830655053986755933305809266308670754637699141363614408561831518280367825512701056781539285873114850693648442591845316369607141137968131648194700387456886986168852270057016610552951104658483212140257253065889166965540311555883186920709301786613963349176476516126810270959992706794777981269390217413437009033114830610404859683868092819660225293972720619858065517656686959507610565098286354589931913708318496870198862975880911000370092994995139129430094642054865540632191491846712080213450203985928277646030207811458389178333101942194459540305088398015967162274402190889528188094485822311137576106257901471308630041556559692025317059131712405553555550886936256688896259651748940114514354320205531723142287094721069455630127684167437884519291535609945381237157727936609594955429461141340036762771132431500733294668036644202103727084998832005831102010077551621977794578074340223432677095735514055299173289149868526336764349818715193184998335290565056488638548269463470049941938045496441372453564783480443291375919360672715805172226923825661101700098696272124332795275543959526960003814004065815272142879516164890671912983851074497141437819455731312609895648761107492389620985966114733327526377394321584164423831463654462612097138756200460887599841773344205289202117142675508033964582048835551713878136230483019504027201721458704039288628470319105642366553193579912441621689972243852726475073747951859963708983459390568911292274286592250273615061338595390994462722941285945970926027354176740322152377150617273955280703859920449153417934332704867378797670935593247502773903675677502912207342236356629285639438128824724510492554709842202375888790117457699646548936091389971910529435715115513747067744453393360104004708758888550718500630047035182779482187302061703891239064727535991286384129923184034777710598885156210791024046345334585747670530568519549504727025664017719506148009564809640848501083080990041061128131095416770511088978435985621365746474864119128928467784568560393403621462496991687780525893306069182245268175796877311108527841212527056164629219905954695832565184761663456793210976746622526357603348486192705424132996416557036014700647543990953486558065118284053910058514968133264716230197137517115966980482918508863721171880580423870281285192695549816042763707108536376316925671661995859672852001319849447056071039748603058891106683338626830551543164040047773999398333711498649606177707826345846285819749687676066054941461498182727354860947515393149032453330783292675628587001059989394365968157758673724859854469175933124487748537144716049593060631844967111649529420966300322868270784938472940134764909950160275754558120424322730151232579657692411530779980540839419172490901681064040057798432639090192989078249514060337191623744581544808800450204671495713313011405584934232234061408153032292187760091547159540637144645047367316946607617677378884105103510614969188434685464453081365784769602154576190075912435924076034442217812384733886201955095045219934885739982663104694574613938529993975873619724092503297641728225185857740300816408675164145271003615951590891411920000163353285983412297836405616927595983942556536259987836893587604689750364238508080367193268216944515643851415248911574124846720542732029946226313311565637345519670774921076090037382704244521682496816795086400172694682360755549967076786019698770676783148118947313520512168993182380873350539030402932089004757981776642955707224484728007936370804949328669692961100174817373496442802856920985600546483788403562299454132334483019641330395601944441816048151178407173107563805104729036402347376152611109185667267280969005865200275777959444525681537633771138927057474565251268685871842172846835744684029709498945282410903514564913316155331238995787885898997556001449505507399303742478746205112659964507252815449957313848465978392441034318288201185202495853973427588288757755007178232945601737332890525399334027308451556519798421523852480337557510408865979623517391783045093957089676125296833934291350398911092536198263196079467144253528929559337299679835695782379840952325267186390045686756968091461106329289506214517677908354793036898960178066992819268020018053447699102802770715768183895258814009311052855839008160063648359144153665340158373907826973404528756756763820786203122345982935513725537977107784554165553990613262544089120890650075631754962601608308303938479715165819271110323503745225773021394715162306642556403132437490258519159672818314107012569760200256281467846188202655619485081321979525425944674087183069904794366039502014446453736010565655988320668349965386107407306214496648396833057775375860828735136807694144122240623647520755484175863295951880577207465920261904020819485536325694328132091224880242522193760440872348208675833689593744414390077890456458883520129196647521165294482575442353401137079917350030921430543314125285709609102412156686143150495970801954184378272801777878042804535127714265574856799800724917201464210360307646215230395490780269872541881438051185866012198795351736300796551245041149534189561670025963035165396181655922249650911527302853152722228428065545628787156999874956490841659817815143643589880464939931191619999804890894066601831796584697255188547484553389126396886359182132730112181386381641987761731941528045233505017744389783335069554862467877890709125491486795057691478532101525260525735092485246279554335132933056906279407861277854086648295927255249325354832771023806226142099187993828602887175367360840453054747979598687036706019268782577714007024541700328374143817731257445938762876097597670061103651162577494516413069423677420873646565834765975995273852951179724277957493450475841737549823718433646314709330606563228097864127386449449539490416112764647143166041178769940765315876394357712840524554543583526578751093528855812191508261550861329610224485916040049536595093980112927589283358568084181238598267706274516811380113375422032338717263893862061853193166604359582215410369508697652609207561684024626612653071109959439166985350469400350655482043888932832020493414748385540345367923655205950857747078602339780549221011463518486625316224895780724715388709025078027074273456019760466534581852341001254257781026199573107993637717079665817614093796059427482684556606257623096076835795883113408354502421064613601361533581158445345021744001268950297311271866322319003554896625143597292387306871872294272356737031285225819017770993701429241529511850141766227825219745452928657110283409542840979967746493524793460805894671973222687865521162034180432598507517124229066711932530402224874395519396986269182239339659025290395667292167449792728430780776493313033720518725968064118104903298737930912354949782850090846060324302705622196404996702563346861095908599110050953788193941766886397908984350064665888539724331369847496087044293116432333188887223358164589263295098431475466083332001603257549000772135351110801797716444383725670356888595034954673062969023715864007910350659344869413841589938252205912697819364077791607124314400347518411180432126253646766129430393288599910751434528576822310554221712616784679902381052181161457131293599216451851971279941147610960917046360109200783487167632138654888912081660417737436292831152596464383004118542563881716486786217172279545527274055563987271005832562482482960673641586077069677011554045836592627313646699694937590774036784626373878494416388507969303345226725903684966004252337061577733878632487033653718537622790721192267948852883562839330361380943575295557013745948375145192800636478778376293112003048088597635123311774353491768523902086995212299868166528676168470343126607376860581461495246672487165966078057860205821726483871140646179307571741698198158176742947281682730455326420115658364946086614027204406448464550860798850654269144312573689767970258571087155243282094424369415734187471978432922802038585917445452921306644977744117446474831016525844958890490301005695286054757450796151009623534859308443811515904373262119622299333101469147076996606174995215639083467017190636173099807276669180052234386309794950721613387442881707896177753884532268618268819206164950356266302315624595384151455429811149112004143686210758577394885766788952765642138628857159068489992444152529242128907558615303650054668988577853470751849801233886286928484400295666550088037187005905775272890932049850406630915087415196054811720229119741929046000736719119692475787388437886433148573576941494818449366315396778454516600780555197063131480298205841735349370330846496952041011742396486390442173834741318033724914618865389299543598334169364454235739620831420842611859423095932289063176219548137178083992341219443195683267373029646598645407829269730832389784657529660021977051392223263959054429271481782987963309460034215647686178975817388556658628265741423863318292915216276620863954891943219345200822787998912721433904335258599281975259152046117171413627775828706674288358491785307927143723264322454665333742286533932862222550107295844409264082003262201660061104731312317796942901078679942479082905813327203360449707145733551997802375580295777560062602725823310163467134645063138510246768787217635087457075441184318462833823512202300854582020362840633019216297128216699401248172645182206549098770137169097818789781845879535491784501329561882360753422482671897469064695224044062091681213529076959425351733121376323255106868721846957393056727407908347660922541130895155189983003822877622635374062917075777292508361262704180565886168514152593664044018405656954039310007344480345943510887886963317371632264547995564544919351983657488793465387496047093451990801867170686685624061306285452069718447138635420420390624086350547862251939932234463471506065861975067151390580102592210209926584186086270432866380949179532443486201383764521417194908950089835041669177256905802771641942935783034819991632868704709346458234161120758342380239866573004006459488306153750877682640308090076422845606179121335711884543703090793751916181428751185462132595390981074661027227136103980588735927670798540203989249471912759186860732099572746595784071265948060245877386215490638834647674068047850579417697371913592079394580865699066909015563041496872770812137715742739383651778066294494273469236659465882128709883750344112501396032626157258922106577391507812572956612845087461202058336429388314126899474829856297666593301674514509294273836137572230044410871059762548260223680639862618028545369923794779529488739629876053614117323744951825814449536259269533098683106076054182276528172114720005681595914213067426073956451474995873983621603664389396373865596711041727791368316573922344921631154441319738949778086181340358282765839045388467801108830974231975960858560159099077768092601671757857128884963671568373367045567141439148750443638853311184651184755247734953268968736640794249019905438616357021861592955015035073791177745692514028689332736192416154415454668348400391202471566406079176001423782996740372086938508582705624762122525974981640147727040428227561676350518304069887215332432961733133204021520404761141676145759165249458086936696394091132086500761247901522180164512195922036134754288208703960675205416794039262547474238841504725375215820460321528141465884158787908252335258417885499245196234802276051280319388137690665121272379820549265798533015358090502220387004940887487004121849797137067849566737109412069180462694288333740781926095136526653445092614481323383595969977511556891428810773338452717370504487281419152028220312233575862821612900522516808339477936489241144335681864727683711441207903664515880315595221769476797035791378206163032082750154194215944712720596128707039294969986836888953113280793876153054113293200432804540643531262956288654758440898332803249561377937817081038348733101652183664885432553189585062487381896667245152923750882952389121411491970232181385692111454805347473449424082338118523311350699908636167928428690564137267370924231378969930587548847015955807473343730430510450406554215025125874134531029257159450195167261370423233284779813807503452894889445251317518641415683555159231048422186863155264372340258735563249313629556174338662579688569351793170306575176443495705690992099761646124517749912702230157662477998600238261954084081662656989035585616085121455125345379353111149058256582664380104055899517370346873142687688786717570057895360967809459373958750372454165849407772555938932794208786706140670278352628098331811016020663550115807340641376034143203829034460927111711563644298772381496186600490559610157315263048433133387507704745369381957521215213730719569549949303437701918118625440587495333687995102812747688067529292848551549227357843106512252263805955002360598128498991155902635825003262990765963983250948886127570618390764541341240053829910000668403472889261341941801731741934340064105401654791230471051203860262494153815416689933360756180124959559058202002677696186620615152202628958834192245240230912837118617763476541048177641314690868307295687376458957112536278253925211410980952290150760520302510010947532148992787280613736803531323911645815574931781680984295856765167129740172932793952072866729270775711217037435347810508714960351226788885662405254041414137280417616212999621620137174798224260519987244884711108140042929523484643527074054333103908633492356933676278097153618442981705992522482987930696514525967166392985466652165324220981655128098521161689067505111612570584320528301649425090724971553048533169150765871171087056744565245327873299093341565382695520521518579495779239475081154753069745158645711699830795005310629879522005288906611560612191242881604290473176351875592828561161705659558383850659997030069796855979803475218569280412522882004875167146496062040899668435390133470208261895408252710135159113844674128854502017738112734925804222722418088716712288351431641193123764334590333683468255423918628394641268269227835225336765267497510824741445826946695493801280712740866017626809663237520060573935569483194810279560263199598566197099771031154281314883061606405001374054809953262715422399470289228867321346807846807916026012629104254738343222410341974805458621419851863447871971003766508460765426424290833881226899574901399130274327145855707503889763318129293918612060127807462242621899133436998762430513699723777577757829885632114435668449707578288070732688703518937713138007314606481285485176741951949988470357856187498405773342153742181735118359842871371931145144224458097409036561190225441780372384994468388662095013424645795557086368651434067944762727946015940574657491899523000742329269068775903412204404205035134323104594663225273666164401567536783133560943912869903070288562003130777621718790845954632291817433086043412328926743380988942166264804493751127617258941109007219218162732607978048923185043114229905326686060504118585442245930761056652297904719546794992220385259624087014089105433264792954803217252687876649926072894224769232959774606096572642915347158143321999970085627303230481113308861325331191497868330301601433022187166264989829627757096350492841473271108580451276197604298315010581136817948131779851650196274943534699400454961032938486422492361894323958069707279283316849667022568414779147703349907998165402701345871044923464715286701466454719285095227341561228696435891267431094398335380638434230270085967191100291313802383008847818716966300215138361654736902106120945149441291080988620577610888279559356023783935871595466022993775583567867368429490315392573035515245811497261374995826987049941959640797377732856901332202833643139123934139176716207879604783674081121335748657493370378022551717556424781638121579218362673214234916920686979763856438402893379114430063293987194092820517537298514679054128169510251668066262100187269020827713533796272330772397728795429119127825686663117032087135462012635773847066682705190185092318414989273687801722289521871896460606349306498987118167176550516454054422989133759348587396899576549831875443752126296315950119953639897489243416921277300694014606859443285957353928669083212723009549967582057294351624397808442307253616275935961500253952476229752534585970156267535764164921063434142471915962912541041155365111025168659768085948116477095851962501862891702723832614690924496044206015226265385768428780723817531047828908131019130236396785548374885259934374853985810926840368359001724052775752756838545156657001283454966233410152086487501126952293827597225623334787905516222559564046888805875048772614489301600345346509104303600840099841541276453633157812898505441454151608050423944084477327939134773322502992753946755866268697722171767475138560150952454025029087130932002307060329018825225663726972728662818429362994949079825153329410134066609857553942309322810463827145189005433402534878729842798195687079063725503786940928102001341813590816326547608966432507245451496787823195561265598196289801737395897896169273280902428501483030519379765419625708661820513609563227476331454707497483779550532220422120036023593414501321761152692605765250235771345158457519280791137944439856138848689749781755856130133599831944282377372120950480799366959686427393404740613136177475877319222141924623671834190178815358071670919860133676801444650380957241816176079680477635146154008341805797592513473523612966974440127864725654440176917310073866830260033046326504441404278157298738755873467609038317263930258751973673839798714843144332191649805310306029120870677508868293734215643919995850508190391232816958476084590709869680085024993151809698262868202335681776610534823883922454617640872488914498591338718312642167171333406615604144471349254439741475012569857092640557165597828117050661926731997097934464867699201240280377676539528666353185115957344420348401207092076489186078031863276390436378183034706421047152352544159119404996104791662380680349413776997545228411515800504581070621064016856812861499524367051014510345632942473944451268186498459885793191712476773498193277692400189609404075428836529681631444213953337719331565531337267266903031301090992590558351738362146460186882423708524943545704738875764492525448347106983613650648759284630722327506889383323694106357696089128525124306520170926298598097048968711073683789327791889677045494234023274643949489952726705481329874377824841488652440992807469888875739989100753696465946237289476604476099970199074246815155207191167648203110022817345781374279353926519833181815420064267166709291533457983013486509753632429063848759827625004191722871785409567605118191895816100824733530968389226728547485376358376478343727112979230696995711374178397447722282154784560667017712399902219151673710781599400042364865522814406768334013830537500509506294015983510950193742681653810674759162095067190052920967187097394524833361659521153520723481630611144664375422077847662198074721197770772279077833999565162950162823136020734092051048608268586647379458692391647187426498038169632383544128521275610257188980207848130596172137264710911898392957656042091342633262931068968644822309376170699615518835022593113213473880183208935161858488862991049310403686240915643928612797145256052957386407664197317433704970192923809411465623356963313901876844553647987407206313155624832185788792260111467070638220982359405178892858706611748581228881182332597638404995932203161173247842594114875293915721497924760908116947909164529080677427796833257396367854692204069334498645247615143028309679946749034955306904306318149587088822281424987445469629910019257474420823902341962896595351239092492035141668461935171412264274933013062745133141261492985005280560197122327632905760857025663356259858367338708957831133820363680842412986756799085504390028784093356978425840055395467158374652624180565335523698850272730762462500661286085629027481660159095273324718540482237596470631130398139456911734063715885087819303487815819145773479450673557831367725769179054666451178063293955588471106705460850419145883972129664882306413887435410910557828350136491094190019093144488386329071683181176219878716622029314327142942881455344877724034087826741678080348195526121641241559867009084611659515059574143328056521843436470362542466546083163825691162549154370262389921568557063260616260715450987196939336672765502607723046096985802194302065297803145469601050852760648648464526836844943141624358370195398378920829629125358018118642760426865213965127576587789054404120394064458558843308919327075977702371263600672394114468526473468266157972258536342082741933880565208751240663919847249256215200963167866071626207948854512794771726455306324682913690034335436322099245072908955436609417005919492896055632357107476682352559196424480501627498102766622859099224813073398268383991719954006367583041455396680915659440669184740967666646180633221026637138750843261915854297494023236067691349667525378527744034630301509831424790235612041765332504485110614898083293239534955882780652642721171684117400811180726942820246448178491827111905845288404776596984345753685163202502662745022095950502481486801821233643813648947041879236082145472108683108751394548768629305598564843303866184296518680941184111709943213872677283262201156619678119919450908684731354253919870043195932118165787259443096278416342264134937296141188971625336095943501162106982955336352139140897010388796033817950333485099231389448341325408847033757238033609128460526506986512733134538597869602574054198056823187357879293276017046101207774908812649888574692193426232854911848477046199674963779294146272197850033860496495525605220618553600739124585654336929583318827780117574796678827066060689575578982899024269150415574174405418913623158431394403465826877593176535558563031227242861156220602255755082096688981828767009936503935498509407538541333572833280703903176598502327343622580176727216364128946850206267913960986217576316437522190932293854618236333068357788172776536933223870210147308090149126035508735515450240975869483388857250598292393109513287537137559776140289063702907075501040280100348393512277120502337222920798702255220138880462998256760928914356128199238608764555696192525727915574165058284462189382496491440724283082292685045436142562373109472751945363632173446959652086927756840840919529466991992332607719633891723503484395392112342402891903818081283699493508427917973108597622686380700113713545241142864723757841628442633210896168303717322145264306893004875872966642614837512328787369175262354146172713066028877515221754524894283098886627579088593507556853579089588896484500918932678021075110389014366609448838284830240130892197518821274511077135134568208149870304225549857281903112510587872162302296749225951065583300820536601268376123435030947664651504576266527260777060014773944335390618619344672505073514856300682084860315411837856490186925613432770789361861817575133924470738622216176347360929377000214167724621447889199569380961360255348683899704980900118333103733355735628311253571091243804257193205496224940053478331483278108793668603245627827938536027591579765388127765855444383262738236970087054700052954089499528410973323198740151304154492184078559240516606902235518379835087806942330305133483400004525215616413190022370116347161534502495606415335243007051439007886636170774415059142206886498306026102792433224585285636541884126537564578750871509944802293566504839468444867303510474177179244485345705804078448766412756817176306184131782693487738064564970591926826619403965786305553910855988347186188783099265375652116999948653773589712072811413692535247363702503996090114744991121309631826796275779055581877343974656029343750102605962539019073112682951351674159234102762185261453619038633285503045961060047853284067528219594668540812877379724605748560613943889340784332447179570869059940342151105060980459449650762279957639787976312440257767733824337103622477330075827505961860406530830039561293266799940172781168736518078427431702542979776591888219794484802375090580152866368874037490122495776592396486872205455146430971917994051135885643940465625166283298328344649646997259837311769916954782193492156608925812531116222473832017276042237049394217560341182124906759533262183459295656705723427316870275579385533556445095745775607236903889738402527077682547127056492795400340865360348455256138746590416481826829911261323133997210370463670462423070780490593368164813120020445435911011996085795616104609846758817778852754924151131992790327830464407324328434786652942789749497037760533516588687355454499544838162870346041890506170030225597558157827013591799683344576507695162372040651223716938506522714780368485719441095902876411909787638843028725852654433124808653701002440940374437048780164237747623805626041681003243244715940769642300259361950477754695674139269873385813991319643092170410421588224939855457649931582697461024133011382093359702889576742089281281547480747795393000455191673556830047648488989479593929235443781827484208596951481432752396330059500882002886586942065059798359242476339874743486882932874262338316921001177084570890025776633018849495223820501355333064450202129296980176845425124631707913675985842827598900838224071527449267290167365158383458714182492189250571943365550479675029570803998905992501214179796539786902775862073460439257591151580459411472131690389571231302309244050741835719755555418562108432693652101409704097940548779135478902188382548868469172832485204978978167116702969386465572656542848068502033570529615099401492007383496306431022816363659713696298727333480752351652642016500808588829820167643159251755280291394375475918860878753076822408468570164266567441073350669919981502404186879471972483963924035707270469219613410002403632284249078915564890722351615358217221982509409680185777687423334649813447737699847678518686544685668549333041214208457309368345566539985016093630588335434932203187052983126313166030832661558999209535656290308563136959051954982299660859899671015424524800507686047643730928941726043729746301495066156664641998450084088882847899760457805282405135252413216178797507115555628335205419480506535244512860516227618397960938240019585254865419440601628785984660478617868105571912161990666329122324896004431185428062837529068861984463388729987426669171359420348777853615699595940511977346198206499638439599117887564590787066462671619344449596140588847451608927380918370196633753490851468559225498875247860236188980495304206254855605565274884477387293117893424668592706961095382783963252963586539169281319595343365860059000565392957562822835467165824031792966637755262330819835199209034185495288754392936501824368325964997221493061019169170342522821992137205348272038744720984405245255992980788409721080307095322672020371859912925404149534436677960344583725866585157206660441589526783313579808881677979060376192030722933931201129004032139454704191184281025127428064781589391169899284771796934937693919660692138395022618378554928960555996917336139410755336746690786409573634680856275909361575211767602974132864655804689875275460033276696267161540370235736649705804055813040392417869494826632784165388400718864932070507326424035543695765086803868873225770827230685776415478405510446059798674364755326739300539359067516166779168672546691835394853948468212666960800318655337207299701150659954310004252014478545085783740032811452608739411186419125962819803215308385051086983436556352066101664052360078477653700460853340752921299339373073512794634112294777420017921941624509365668876875402557887918410367962037658171051489305140172336506794855659966457856705522204876375960842348809103725109910501112226792298987577130917876320358315766104819658790572723718129303625744593190882382922137768804309029591663221263753714635049676399612150798627797133785396073917698815420152486530850794040542343990362966104511349411626514793515061593286281219157743347970961933678278983302703833034688175100960135260298242663967670003969353152383439304174490701583361040243541613644473613427544246262383551691000271359203603350410461136042622001466507641181591710577496792841226944824969659962024636519317090200409792995423075109065101809597500439061963391384715670291988915610793817142142049008611861192251672435383869026262672772752934762583900823756937439494730466644523529061697066548025469235462891428804240205844533773439318535611355084853536643978849989008171101351564217631201474801665783771088665875310589936137480758175970358554518914656541186659705396270749160357293610643282121363474612425364289633280270150338911785837200441708952275687261931275871282383197004873270079900993233484446630144796234420100326212486835893596796018941408948578651139672526611450990969080707500241672131093776113095922967754164245525257533252209962758769149599926839622060760055552389690866922021905217704902629605959933189040897061483429840221043778269133290517894204196103387940806346643425117925489016577377717363598902750466958950722802709646028949452720373924557458884343462562436464733740558550165254532016389899484494541142452756391112906941978880536698027761479335692699847928020789218425919337581252681488983367659827576585947986922084946553961333825769262717427570408528736342127998529687346867143491348737453179109826584168647271489938050337967651912897980042969771799055526019000493078548544978436107576402793908939463383116731752864119153579765122431606443790120531345589766068409283044936852852170132537757900952404073992788885626811281076340789885278961152184464839248206369614679174431321006281109441039785986831017375432171304891125354199720711503031770284487613986632861235896985778045189029792047113501397589413005504805492451086083221694694624769324306405531244335518967809914989172920983986755928943964558875524523277523899817422232812280896662223381999144312446058087841781580576273331172260467266585933636517259446241308056648964066481052290678069595567067366144674502598349681317755140058695498129001942572328894460635281244241325787463404569127199151898255486155816104362090922998225681106869326612414079050166954433361699930781345202120878273226782629000117754078529865951861964326857550156476090903694277587518267078870449914096424568128937733207435321119748613680740337647344064696366997615678431652970085105724304182528913630486124076626853560386350221905355337818049733540696885849030284037115740877047460472124879520823726585251721619147640886230556656899538199726251000444643182236114199795879479227552462238675447554550633533794105949133071636633295984643981333937930087108854032366327794589653735103654845596381981728313550195343118858906777122587611500883489525244737656158728892838931163079771081522279373372047524121277260574723934378444878788677150047477329222658823001772785147283859373754678853861596273174766173263482944834834015300486788772441768294089292175144079301600796542035678669083104632093848311363101245485422175575679347424203623243931919869827389892299542066550511179848165224895973279697968279152438298286138504571315154168106686997227176934028432335424550381878800028195208138726798856599932337638753778766079756494725085260118801410046124963833234606752797468829229189855793666306353621167302152511826383014975676806639772807729713670163901346636297206666323575154479853122208322599231973352702283646484878605769489874476485628053601333290074337368454321708063393359294839256703210784294872271402391174254522538381437269857307684884796419127004877156334878096543658509849959219043474121675468899574920639920440207209639166988017844115430304134154440916000055738443410859713377362227219555487372178701561320462719968158351206072269273656424252336200708022852480337728181603694874456523166905648664298584189407850647761501869593155750838923224076198883725470335363304346274674715295231069287558445956002091802485482792058100354537824093229741770532073638224713151177046747460318652711425961407483972575376928312832305236547885434966369227154416776208524788418381681388160193938378551956403098323086102518579271835633039937296245564753026018452371168152402467375378966605758541970601366765468579952758850389206229560538435001066929729148447132617463509184022097522299912888034910422691351654449268706306380966644946436953246599666940468304221573626245095109236983939025620895542482743469950397190105878181830736901901533040732956908147367400685325389274720614889294878194129935774438333969256897453891523851379719343190140246151848993493952948387135227048639731543455351422751281846067427513411559836469865454836141294013821318076914701238504469853143715658183399824497092381650897674129618607466413633856060135333749119752466046574678047008604360286334496338058352493095066696649185486529481962261206008730880402623406628634995419427536001748911048192601058694014062734293518492454048138400636031288712364279576415944714769707956890059810423036652386886225596630130227172183035077043173091127655049612583501815683758774266467433936999957331915873732919243736504489211459707370636646237936025125279965342573257415092761916822202425317868365816408698967546366636242952779912174803097332196142004788670661094696973500388551958728784423286695093210963290373446692602227875923610475815561925341742878534536836300040544393184691074396481553591285899527623096101136187320455863288246380600021419917265438953602613062018779471163480284356690737922525918201063189565262685437025883352809515892163352089900973743325078011222384465140473933030008896519802535225004155427483766724592560159462749687226885208005598089611152904646123464745816600189616276595263078762810735517347976633221302995826691113439525526903899367640970535265001110643925646842572379652294668042088372814444026661991262524646471514950967866975845084098366014009759048260601387253756205644377462692091850042808493185174497029178920065386022317104778623261009270466375546718654986577402498347720242481919254225901269033283328113751352613742400653905833030493948070948694243897086581052794879397630049636129228753971402459145214266754709427760632288899421776780431469750411406529439371127097036537496075828810112186544748524826728518750402761267164912721402452706735205726690428206210473959516247708799866555369457814597766260698997440668000041796902723151836757485621712708212461065901606026502113485506330292936147089402601689111922255297778797604006207241931873347502325368086134276574495753684138785886336405169182274152881852076182557880346354796876571336325629403699302509653123956681776814278918197706611906043953792755722870047356756393376373924895730191703414031195826743388432467184472741388056937682048403658756056207494382838971682327082597947314743867035832848089830150323117711066433116547296686589555527845787961078319075622147131213257844943280107628278218498793190133684995915999672721900867175235929994451493087458091789110445110881583891075724581582640548667237278275270027283529338911014134101770903212669273571062853854903140452985305345220368278576474927246930410195052220776355121613006219443339720425616521638875521297335245552850444262628369422413421997534136261949484451211456939680331558139074233771489912211139644707016661547652946784639102058580894792569182290618237623812011501455370782769450224799939923087437688482834449348012499578246710986610464801540920652526123423745679429821109256206268529949236202923659344329340631155726028773434173349040407129554312300557414217032624629188619177157338078668173189389448073129324687737415874194507054916410083249911111293541467979234802005969571922438490230102966470043989265085982247542130345911903313546516042800216968884302891782538475775799768157992964036339873494720171171455195439481103999270628155843833187642249878355736563340989449252479173405719675184836751448090886904565168641058051840074165508516058749491609013941970089787717316887986307328309993779536931784108945582393614159582103149257687383842507734652740079317840173517885404461293046050869267064139394763242895577238068938100307458010377478512218352560616655795387778597598338945413766446439404723344088717732371551146486293011871986823900588749246363014787275212335313887433954704339670068171791833735691488230012301887635252748872866302175184829295261474796056974493349204830076954328983084442275320575243367744204916213180381399259521715901542746316999334307431581296745745110155551318104822745492361485380475656108651565019556839060982946719450389099580080883007807952612159790251308000842006758793710746235271436972203670733181272803092863046147119514562108572437623246158349643389736959617742428764640117393833625845737738320050590205339647636903519928478331112531833955158466876465793379807097626322861143455686808028295643766654528099431306848388591152928792936435094156988802593880649552130750480856410545221600762539195586497253433456251828550155307845905595698771791218853438020264550819277058509252554329000071873793818245136631915522529476894165558295639130511293671357486338270749016435796024736926838978422739118546053589156154381685895461195535665302129291932371782527184939701051646522971247796591475450431014913819352306766431888391686742287532816288392683049653448267589168947933612125642880148152722007486690510393029885644926451381233538296397078196394519235960897521006853538877578584019033786854533931604330494811884512646950343644888365733834758467724293989421750523664559224508359189535345166736872683609375433537546349180457120593961087765617975265352645171569718076608579023553865206141692589726840110793284898843218258216581606780480246233293874019205932926665419792402515927439408382571332719087550511122787395252698904327577934975904177678637913950078283726881509385802774640232717631579250617470524386302439382937631017095480204728609834005396045452633646498697724360949211875527082001499209628821557097944893456573456680118811379149833807230872379407577431278870841897912172482039966915168389518690083595921467818059685937092591669942214891914300534619385603160620526277329662110122231324290603871068341448192752242272813405547794406556554817823558470426895272952513372617181247424585671943516049333627637458561489852476686049975419706143252065245701883270210037554952517735316678034587440127022223364787830801596320640778124717425249278016227874888788303878404156678562996285718552794192400092848289870416830706077040711696888602097542291998297786275417589551788648767521536361180856996357544612915670701023442696649013051219470615028676503997581623902397653208588115880402309346635035527091115065173534596383428914618202926623334434316402156145210549257730306923315159523699121297374833603808905091964678060981047474392891357526801729565246170763030864085581524738790839483490656038053818328593788337809412179916265798250573507686889975832928164042044281043467890420334661545636478952788942426013673119326347409372376284962510771986832554641458297973982847444890271793579582334116705152457128365727473367508237829969416114545347688790409432677510877590389253765553189141307544247317428978152035444763667716491978635350846569789765950182902875897180778171542043781157597341589320438264784509799591960473815272900467216558481923857165236037760646772525674580467112488693042410521725032282287562607241759999718253316330972788129520313082961423043762054024217449891279048082250752848070046355958634033549400446600226845433598221790843226619247863594747954678817584055631179841689506212117921771478778851589133113848258358107717091198353663721104182999335580389973874298916525126595421367607587512252058234024894782264052575475345731838035771757996821491005513269499519520635802593711020968102342828229363064550422909649228739159965618656016603701673049364920844459190511668977844404258134755767878741843830675763831844507411295116318597245248288258592683935075691944758830909350757827578230275890876711106106534685334142107973611373749284106998684898133848946805410383821055986893888881326252626688518637702813612269390136356207250845041465253319914654588004982492831958172808912992849816590765951444954172378578540170261602356175461583406631810909092200593636373555787653810284351639490625851773676727474125255147364409080899739568157702897151105989577067659777661094224573271767584370273060532759049200648746998815176474901652312819488685559265235557594017515778041564119292775595487380852079541508935502698205569376528999348227915289326693322134012831933205902758994054626418240078872045283662531785899543872760184420085505155572428368672795646022558659263834096895071341225699163827410902551466309337208041200077791425907536316248248210111498284665529854393041521121360448203175804441650680443010679924855887060113899621948027769064748620761023151665262705053919042947403737107893465649744667242570508960408990449467149867261001790267102815128120884382771603348133891907966426570577574114486772803184583789069943207236431299844870538725526073963850266849332325181923005527698758904146358920033806111622521191303681420062085179868739531723818283179849157103532433786338007217299519057382960670652036135368804681077866492993740661247913198993105597939776963512333774303136414596821451792586615862177358903208411107712891729449492112670565508546648206954353778705159410695210887823685782415914029521369856906918958692994355719013847182674473423661329237980165467389848818505350848333786327609970557375216551815465015554812021331762440230852387757617747296839395705437989968025580510451531203274006163812583805017701076287078251854264408691247151298962607845696319809205661009121981560004833137692145228901234403641130258872933599786393420414039206845819533953312229857412124343565162255850169338106683815599031410141332255527543775888686812900389630211794984488459878516925073018751053398500344583020284006634671494608574233395000166717273249646322684643420858843864382156230453983694231271233585814360827556278107247242161989286098320393529566413821634860439368102874017293593865596418694637718911595204372400090284234345171823456336646802308345718003989539258688780583732243995583872633658388022373395029245672507814837668396403950634888780027031221317127264842614218221039991674781336216976875099596958578491880207884780086968713734666578466065345874962959286750892795391992644606614025565376816984859253814306124977702804036506837171614356622825813656019571516680783540906361081203835964493845793035772497515906612067134605094712592893193624408234987886990398092051724231088116034852768677773481116547143457172344689744109188264033203915698561056802385524322942587674604011092636694337125177289168818403765363641730730381434318456310425510784855185337083406934027976340528955049402932665735337298161914846999601837038090381068179426023416337682718630591873878221454095336096179409550294069050319049610213897379874697578812367689227985325821894066944810668409586167333204684241480115956754513143204312069186381584807230988359671619181733568760367505491656734605261311104004520092044731011388267818147268042552020766270813142716094569503045733258471095113780468809853680819009925221683333570075277734665940448693923418382698532838130939252900145836139379188799559112142934268352261183744281704554998910142922176646184392886562071931801288099203029757761528319744192075664478687424318644561160274490267756333426720311706302928707753546637528627961295127771074718648745647468463600778859642141262199009074870072421181448837682796893657947783521348137012685225456153546179213364318075008189012519990613829422490070247483455397895504422702369490122667356585587198750782857758329620049774850943946228764011334518739171200092723851910263911892507837006580774673378995449738189079109132438561856457806956518546974386389996625889959367626244877888617328625835569956334066495317949717461020700447875925954579000004736916771290930073814589565111657094719227601973645511000784921969114392654981198843496898148889954065290996993623620876759529659108108567904542709422478012684360445247765016605646975741443000056325778236071841812912604089142248262918139619127149514189026961736684262357415837217301747638233929161109728600343623590941953050128487831487513830138831797878379811416153204070526193712598104194881671740439094702633178719600868566367963144635552988822725392993539997858036634618767169576644141107966199549284291215954173064864803009708384227443242493978381612750628765789371605479824352478068643963354245239733445039812770030067800436999169653813338565987320950086834834511969489009685643885862508161649761373734316178027001627025478428994303793001017069996061600426264879939535173782992089769226757736409912605785080777373110797440490522613729691244788120488181407418481294917117667764869495344025861447420776447510643403341248959127922812509117293678991374011721399177829619960948104268070540087266361531581627755751065450183081401928534338301052407254578586435073019057973393266542823037187962643346734510702244461979887741532120786319767220595347252412637283431984998508552073451660678880874461142154355449171241693791763975197793328180992594604881990271577461303103418043968836930951235691524651701884915637579334642041305856822162899922484224710270582377178937321253711832346237676390143129489695552789484517624356685179863654679604238707296920637800703668274170687870579535512735571280146953984113695964984006306960445574251072902706821516192656583855433361171897742510669036412878911375875954076121055613080936967150680121396502248445018530958538291943565356076572999918360013520374885218426907982475756100158238830338496630931934951408256378822567931473687872830906155949453607740070781552014211406795300809509764150126088331912248644531190197706792406006614195035998869052195864554167951769469982781660156922581344923566612675327577970483465608301621837832680945174377181757794487011082206684087736755614956344372949820416076767076790568835045571766786966898113111768272080661548814814445767542910242541323938302657024669095573607167054898955850645249980049665713121927729544962090048918499170960117246091468184565452114103326864825821872457532984910963822890595714981631855791277163104521592081284824204475626103577087669912243685196075390804550229999956224646900779440641139855117562948015894417445184238776484663883679933344219374961021884657992921347466707581240587307975131903119586909779417565345473619742406960762465111334620418851555051134744515661059841098834856992555553503672005717313495936985806518568115179846346494889557148969598282347531694680407490495620792188319554943639940854139660835435386131897218942685619540260048278364475174058709234142136629611737995790509857161521815619318875810530568829042695887111826618742077561547756435738404218742553405016060311560777418239074844335790483423537414451769620403228335444498188559665924960986611795184546081601130488874938617864125428190674692290573645244291724248617491695099391299477481810579653639146572504295095672920440783619197982804335463229206440062748473256386119851837481266834669485428527773043090403388991311901637342738819499111687567356293271101897958436528074997814506687603114769189302821913938731395975304741380303355730926845988678990634576080794355809214475304008420457853474341179523500872792467007192650169021127729772265798297812362864242930285284874757956612610581041739350491822855791363193625885855201053588093713013408414678143104734199473800950953136157172334995199461063078218419415262063355411166443494561322594795142285384120009170298606159919305184938556365634925786001316315009175885101946562305596723480171275319712070746024773364555523367052689436302687836902195729628947692052744332989826342998478630734809475701256153491756832948554887364325041880601511084058177109492526920840894550340349332470022105650339972014155165138314884983786878605325162433551527910590379043113501073534115261938871234838735905279031850753520398082381291184603659413757983921540468205952124361643054559598731217026350159311555171767007970330851189032461019237056490301228838922620813937922031903256491830767230222463724825428876775579690585283253942579312769998308806706505643375112161938404886463349146073028513796391244226434561821332298643673461169051464035244837739410947335946798335030417331607163035741526295609395480264855544466942944636158078961300433264037892555672982999084983675177675046248656708042712294810097786525301396750417166910737028070081020248038811595798297201252040248299457351283173739593601042244393829328512294246162070956059356653672287120868300888658518723632782484600781193094973814102334157221348953524288802876648767314613680000725211831232470269139854766367158200369478382692829394709415909323265550406413286917375885613532199376022341034019242263866394996305339987719120959890205240161288056830938019073632694527027169616693367186819269987624872616202679604292049645000933129137313565942673582446128819845597288369474104498569282794226072888189837603489316355325552604144025647886635344796711263073300716338677137180525689619185842535444193825873732852636932920945010966077939966742840190960182906342973373812587211013348360586963127753524281899511347881314912332007124409680440060341822264679061532333964659408507398100080766763858107783910833250638053234395627650863018901679631269653891305837463131086598342597820815898203935043211763818030189467869146773750188176624954508292063636921854235039455589259246845697644664319467066758769332125580703575331655673432593268621522570670952188759224851076629927420862931741074268808175661372601416187773250696260936957478531234938770440390383913002636738044837372038021749852951609114048717271260149999536975412243398440644772433352204325826631041465514051849858427828277220152020739221143749817983381395201454425096780573773918077299643788023580997548395071810389767434335710844498921611214431843705320804514010965371966754537975399893730068912857520786377979991410463041839852527010685907289978075100447096199793557117701042125633096864713745506714137328785516431434667055192659577894369633843201762916360147000412799945194486838705832399252961349464991680913322024844745523844317456053219845779566286462564626119023998787735561733315875134666961567782720029674529871138953033379001560843900603596461479405805028204751295265980727405497022753487552947380499201895449972963812363022781182560341778838990264472742341336725451699767765389806830008927039299273215680033055600751776261359472102877699883174868306213283211899945401135179765168366784347704955889612944983205526492507206419470256173825108673245460290532521688208063579754689822735797090477167925891559972702530570455143491147007334731102889288634561823434926038664148636647110118736928668228563803026855546591873234808134981084580215627129587211867282768015659409122697273488127643956346257347451451821625615178022316538967788748521000498812676299984170169321154303120633222869521893094179878179804276017389341483631724662207581167181801000736576994326643198341060673225615190430208175139438358663074557943688966221897085807194279329574816835350136399091768090027981647982094451411657135770167187991568286107790266091653096176773209786045586207981688146551069349345140519146933850909509211515296433966827457865133827114190936720692192615682986925992493199503029161552470342490470950192883258944033857323212284020187649836164671975178053681876815945132420262783761949342579599937071507238807039506472320479625209483104979430934680751133663795145316733232391416862597273457077203919336517542711684794205159861075224046490921487089331528341020175847207497540158754026737373002762096439111336703766187163177681881222475362955353143827441327593203981215008994184743472764192549205418954046511415201556024101293713133476806679295521619756820291589423062583673934830901667559756762735307627176759806371278007957995705391020779938944834627415951347006727330181913322964908933071783731612693393565784023909828495019976445973224391391263987769289274684311669470122701218090401639241633786184869723287791435216175926112332322503163645355253117541115852692275786297895904329096466785393483545716633610503849387667520153909603993736501174714893005974462047951462240526238552943415662211364474529971171974996892788950088812230717523310207418368296714798010127999849308385641257644717438284705401197198046088462762759801365244714849139108953853380085346553438338673621187669604504351051447859394624765647347914459311787604914523875068147526077358196201793363916633977081217501027626734983332334085594896905765209604750915767136965864339734355618150222931486803127282263540807929966500097211425824290648589413335618106386265551229762221406932809583417959155955026237943818007421316656538376055761402702108746917221109977388088018909050363895582448522647118269538265743240329442443959446946291754099313592560479696805462129612041738557938355393357152557382623233693433688230283418798679465008767626287893618147012070119057239360719384088272634505152943699686684434858189334035911082171540221066071038619313453373940391481047493525045852581580445568233789243314323669889454733660070720053140007343080098878249966475430462116435716483990732478935999080655980831141669395521998815177356799773956569851035155720399029938253230344874016636986723787922569785507056148774109098549299178558969926314106214411062911558164323954116602410506611554638581107668694849220229349896496103756541886172022111185512645142869632628647303324391792309028846542195659778869956464796746673002199013455187261508929633706329349432104444775781592579223819347494560057961350775222298008618950529381780794023235747221603859896385459761439959918717804839338228615318919620805419786358253711603237323820441354007631773863446337795287969927265049979415971467546160234001064799293305871582062343924621717238618533030195516496844397982642776738635091529588316012676347381505875370763452077110457129307545565759720069076322976227955216240821540618268315668468754585748469531058611650006037744868044262853021130660687251214605002408443326481172305299151473804458569730218606870565201896741466018083450672534782888264073073937090437437894876016267816345975850806119870546736149845050120915652819199563752231307898552251458107316547161921080646879717881078611194387924275070498592475764246409987951642853214595950464586821732918153299264567755594031852688727346971132032981661734131955544815991256630533890536134694102538851484571867739102829736087953047296079029650690987624630472013725417283920993816327222252858602526261459144376052047710925111208751053525169010425659955220542139781516007320397156549510694930704093435343289396415509832346116545238485766541593273039435093358837604889877074296423690858181604501860430026681373543240410876523701023473558061571671686499792647833611598364617254467140667592788072288531661388682250642625892021850841980616262500455138357313839100974380657223441680478649673542979080902100888386761614388326042232807290860467851690679436801214296519635245165200228495752936083388854713952658813633484294696559399821233237843954050481356030205087526080529962927887761828995382601773627183604714548029593085255407235779374420501151937550907301046369099969508011441660484677960843703446924094714928473734319883303845142158751437494232526020480771478405501297641026176320968866574260360390614679526131438303607328049106845417940297700529627856431351465525410743588804621267008897697366654823447826532129417756397050648793204191532613742122993846822367261441556198715546019839798264277673863509152958831601267634738150587537076345207711045712930754556575972006907632297622795521624082154061826831566846875458574846953105861165000603774486804426285302113066068725121460500240844332648117230529915147380445856973021860687056520189674146601808345067253478288826407307393709043743789487601626781634597585080611987054673614984505012091565281919956375223130789855225145810731654716192108064687971788107861119438792427507049859247576424640998795164285321459595046458682173291815329926456775559403185268872734697113203298166173413195554481599125663053389053613469410253885148457186773910282973608795304729607902965069098762463047201372541728392099381632722225285860252626145914437605204771092511120875105352516901042565995522054213978151600732039715654951069493070409343534328939641550983234611654523848576654159327303943509335883760488987707429642369085818160450186043002668137354324041087652370102347355806157167168649979264783361159836461725446714066759278807228853166138868225064262589202185084198061626250045513835731383910097438065722344168047864967354297908090210088838676161438832604223280729086046785169067943680121429651963524516520022849575293608338885471395265881363348429469655939982123323784395405048135603020508752608052996292788776182899538260177362718360471454802959308525540723577937442050115193755090730104636909996950801144166048467796084370344692409471492847373431988330384514215875143749423252602048077147840550129764102617632096886657426036039061467952613143830360732804910684541794029770052962785643135146552541074358880462126700889769736665482344782653212941775639705064879320419153261374212299384682236726144155619871554601980754556575972006907632297622795521624082154061826831566846875458574846953105861165000603774486804426285302113066068725121460500240844332648117230529915147380445856973021860687056520189674146601808345067253478288826407307393709043743789487601626781634597585080611987054673614984505012091565281919956375223130789855225145810731654716192108064687971788107861119438792427507049859247576424640998795164285321459595046458682173291815329926456775559403185268872734697113203298166173413195554481599125663053389053613469410253885148457186773910282973608795304729607902965069098762463047201372541728392099381632722225285860252626145914437605204771092511120875105352516901042565995522054213978151600732039715654951069493070409343534328939641550983234611654523848576654159327303943509335883760488987707429642369085818160450186043002668137354324041087652370102347355806157167168649979264783361159836461725446714066759278807228853166138868225064262589202185084198061626250045513835731383910097438065722344168047864967354297908090210088838676161438832604223280729086046785169067943680121429651963524516520022849575293608338885471395265881363348429469655939982123323784395405048135603020508752608052996292788776182899538260177362718360471454802959308525540723577937442050115193755090730104636909996950801144166048467796084370344692409471492847373431988330384514215875143749423252602048077147840550129764102617632096886657426036039061467952613143830360732804910684541794029770052962785643135146552541074358880462126700889769736665482344782653212941775639705064879320419153261374212299384682236726144155619871554601982008124839217229433401446000341573707656192443032018232713557907283264228191182681129086906830285382434209862558938484579630071972868284555803337151684883226883672159276145842014697113299819897082560900299542774677199971981248775279743287467233005893884512952811499789071481075523300921007248491092267659973072315142847965983111255739977157213500926698360174629926395998111820274731282841873253310342030296092981765681324055093909319967075986837006190543426252771356621572887009063843791222477287898020043556068535500678897175102535004479427802503611814116641841393492576781431792773945048382730322992943048923909791502713622455646253765553738610838662324328894632816581427566984182641975298816559515548830595238900448328846896785679111291537798258690003130450724529210107513808286217362735729478485725936179226619471496571671692673210960348383840394839742116825276484159626015838653465294500741194333294221658743137428310774394239306156507154894572023774510382738855802543657421269975370104287979743411714644718458123692445251568397577146258570138354313715434235344805356328876499419615932049042656626303529976021315681136976623344352690505046823889918102495545251555588783808313756149095632747616378222059605561240657573307893440683388330554208305951861116497419221416197865414723841230408898512862280787337305203284377228739146583902935141524885681023176019686564125731315566485531494728032908818541995929975777296732550059213897543278011392812598634789534667836977188152408370448310344069834386209113358663947754487646821723538544554544848254771743645056450697242504928335712977644407544965825144759227000515167904370746349152772602817335603144745307458553597495229057042904066923576905086650610147312480630323027695177831754443689929409270287315056067097681207745740184411906187836126021914549058764083802992520659172573315149623460063500808352899907626101802640585050454006939532955099785027701691201370921126003648307376464265210120194384082161334235665152758330431151671418637382266002447172304704195023720391224549266213067590337988111852183532724664989065015911510425265405219256226071467862368733191358211322276735618658654863529593202250423051523210694597192725913423807659478516354245646801146731177790676976815051505244467808602520600194992860511346500143286684179308379699200583852708802319165020428820761822593882244611865742126499480024718117998253305223891842582989273969940103843940705468714252998025882863262006780830108045816835347561301300130697046672295292325370686313234702637506479373863194450520972564798191243856200305583347502508973973415188342937865676868067105020837610057444114473019897434254350647511297319311281909884230072649865185017463394834973891529156900539122245827418852413610337193079148762752260777857148985638145026730625537242229342209043959122711887321400351832319129203048623978935956996299028994598496419804226936543562589800852202268361205402594282183478517570283695892546238041643062617866327820982547062304048435780161876487536398985270238031674729026986694556323893961342606482651315298068755297472707376314726933169902894189251352064692672068849366430072989529564987980030011137606464267896755654383123304396488659626481799391170001003918712997087484083986634361707323873153432554418274330076676558281221229105634645046733592808533281727473335522345581463921633074072505949449075846777437501597986818138694448054341873578312197886981029022670294346345379866162871735807165915711261524422230837562588159476262125821858768134603458821053688020790305005581182908595135734101234631958152707523914986238265443492194536663208119195427406766986918359376045842129887742064444472437350914898774973355645165058244193293629992298947431040719949541749302780186130237200619760909188363446558130336801718294467302469938297500084443577345824175041564091310053431718204291039112436887633757823154014315805753894690615529403413075296657372115274661950464042343730266524092372764940624041004161312554988598512197291130210810123131610018150979963651728447803268346928525424685040541784194190822458981865788560892150177417414582856980060633534478513406276969369865269837568960794385947045389589146430929715030530428748432486305597422744496461694478697061297269311208445106423682598917825053304071636609010849573102310109472721071439204048417155987361113042666501640901757653846222576095043304032753698858601182843239105774018142130161558372177925433551240558030151095950533261965824667513151560404152586670247978357927487795883912505248966612328809834366827828461424049739605758240812141688755262252436029383969614568719330756530784853404445899840439963474541379984101406999918104367661039393232718080791757050541457044461352832464670487968393805233978352042384910264263590753546783064727633223434114688685728116694911254364361882775526677146292174817815405877314413747475509583629503674882950515528502823336136657094289178369972058453698157580702822865806147128432770018406370930505915798346331099601995848958859607315101161466791049258723813435916218513732114290267714961770008982896895010362545370359556364212515243187961923544294783268412645568437533244168905711193227931388782891254398345906851966577137145905004317591036947407742117727554156481893897377501907463102318201359674557219566759124133752747487790171275117809887690880288045094172815253323567380518314545848314159215406445803907311514414313917984859371396807773492594197249354897913181391327276653879980598264122141989552585490191964568380004656129690468307513826664522370963099177324892565672509737978425349050597338556438573629340812804906620503745858427400700391418151521047670898240243265210936608085896411872351173505461642531394926505542801666524844433488244114657167943480632077748198854811438919208654163128220105954300420047544937030765212786047494660614015285672313810780569535146609145769178059605970253220212339569400367795592891092454162192203611841016001986687300902900955301111942662416426560288467188949468307109569604676492580391284733343367547597168387831943917184501503806649642613489010231905370337457549086158488364914225778309480048164913695939740110185082812717906730134393051750587582100917796432767132237200883358885506799879909906962406919723137166055794599530913337985573950947386379016160962049738202759523336599936705252688624848100938472749678618011842703061621503947891498477590128252122617977257120366451414296037414959909545830724544851471574539030817784385194984913417843968296305789680947005005204827018049731738545650716272715709062161964546435165167056446729897701244852493726337930702915939094371254914024989006685863941451363463955719794301859305311019678841849695935177849369107123939905782825992130387538599351309417158537318461357804210382494481447624390156845851089598004446347360607700977052050960172990481929621100417709132938777715264857795296591936311503152108756516540860892253496012600721590907137863392421580304674246926114960995558280540886045501288712498429207955731211418174003284378975035571086001260682662959954873917356474121632649551179328037265504678149919401141133974720393234110179621789018208400183817636550913213444828266418018142609065787001277181564189689951922203595028387412691368452315830011262201327407716415426535387745199110858340366476378231234594511912484792982672051741533606209567036161238871645279736791485262148323223403921213425850383445175159449788531234583443932402807857506690430068741210570606598919387513058915311323471611784749103313152082019663388778675097302421450530164243262674913452570622209468799479924982709509019076053061778259823114651062980533336549337043103843331980471895308606808556845938666211185760265242544618058993308034738349513609943915754814323630018215049599046727434849203463895326451047198148236659076917773347105645565468903382254607885656704677038567528569432319911528509881104849552119390380252179610718642490283412911685326218533689059667451453627188381691994895879001513336487071739210689641685281864366910176194888078067387401392100090541901123112965739569660468487470153088437879506872943385030701822408645816945714657258823019965965136067683476785616837974144451390405274487191832674639148986037464973682367538725181080949838038873374094506373379965178309262933896679367224004517203258444527815951044041239088195066030902696482993434075484821595431089829776650184650758580052901300670899507115787450377617482911898987362691551734511134598090169313314471805436537915673343604582227759946985482210486823429404480841548511022500211481758348101990973583501655810539461049733859217127168096735773655354410990823674588150187366795906607030944322012344891679751243355048879146627325636560398503029964145842999420178052535251860987167556065191705455674397045839064173449667728178256360211907693913310859335664280994435334986052338261008962535809627830748674114935351366621970703116760373446445224380958372847886407145140934086219651768367151366053336237542598095811123403354941287247620490770949036215919251909570786425696285434076219612537815832550106136328396820139663833036008228792889205169791646876739666036740916628895293100521748954148069735963993897656231766076708860589129952645215720494547768076710838939405728623586335368523676159265362804241595637791791626420284459058835361858261268828008116106532185351856623737250386744970186902998708413159522695785711191725014263347306243448462615660440896564979706406565797277195567032071430610742545917053607541242113258456238728039375062532572171299221896707796396277734272255976982846538997191301273843746541643904082257843535305001258581509191863364558524258727626457121698719841813165624931459822361843708321794270107379532032458524446279651250714914027292987925904436543466009085053776628534436729940052065941873227350726923962773911584733433190608350303645514157701890366998228786856177249233619926232256432108135319313463637808710277657956906960665072516264624591458059602118072588029895740262579752958094086820545654557042836223873463110577605336527379529266302502115828073096915430198667400568264703679260388163776291250864058873829816926978355882474147414900689955233541701036593697031077957273923120401510657953308725915748663674009437967156917329751034397760126027681000382681036602878883974656535502335605424192318170895743167809053681034635646755777840420075989704914287894643202420131139392932967925292842728253966368961352737632516434119103403388266439201886166617333541260177717402551005396285479566923335922237019069839034090808954319407492878534068736347127122618070375566585264116477528765990522305687416559588731342244652753065650456208253510379553295517858657563776186691466287305384018650280621562209257179711635769705877239385366970216920363679162376347320373094395877715796172210104902647054286545590673592867980423063450849291115548295670518834005714512911986011661765520245604534031546911983746760854213466358913870198360450172072721677053715946939423485113598335378258004118591279087216840059290117351527030928759998826256847896172252174462792178372031525099251311889227055952259494455613356765351341062513930507673409913279781159743608456981272888892333762772912967864164104837489067153054240662081097752617639253834656162841264682572094504355135631981135089060048731746435554257539781113070647857593418087508994613591145199740487307166288027874310976437117193743890100960105995420001203986477738576672211712151838660371766872752177305805176584559955970485976357535546876592535511981101011867561145803123631977583118803787382165722619271057861286864735778176439801185683156504803011767308651019921363173964506225601712221249937963790270008846845864562508168283513582182848427548351043148806321557968952880661785557141085635018482922100814210284803598628339678551294407757772807442010890915645908623479063891377744783946504055024403618246384537110180344104727485026572739906255364562871429929835929351576473943053812918476862564833710968017052693649112698913052455846900594989481122928156379587482686487485599620177914635908733939215741297272406347520585182533541646831197340761579975630142873614186555621130987559011536215321334952276714197155848963034299433009490065590389839983539264778020673138713874058518887564123209822160413705098853770938755687970594344182317527416532676894484198315934341280001165381848415909750833567898220842286143876564883273221447627226073274761462830658226771841579688154780378790216103858593755072718419840585821683196513173811557496613540543859310831961866732044407232860695754936362855709618428774454370099689059222566458806531452579047131613367238829833022706881931929458843887893811082098652275374974734213587003773256278796097791612711781217232553814898124502670654782391185089488394591072893090182246820341333368083419054360555599415929363894111032725855812576599344916453523549055548472485086644077031710632823563887359688632527526006529181849525242082659167789383546354326288131124440569156090110497939401494764378541501105964954110539273448074688686806447432049210171947250445337298199800904114429250801853260313042949080994085030460294192197081981800871801111846094555523534892567967047457834013122267022348281145939649588748103940633245011445220678681249047025618302622580883434829599720435826050165831834094463154524096968005473316841351917736503021963547643288456639030529193968198030688150128899584972907337401851382008199665641835112904216388502032579457857838698651641740162266800088154194808830683610008887553914650469183016096539142998452128598129825626070396920736791674124080897008736069532461948987022233607728260074073410454121459892407791141083554939209727331581945619564552617144725778847495653846039211300185617783847626208562446896820196178561911005534373531449837212447214618556227001254091293103333938646404253222575075126937341133932598428666737646235727379683886770942302929944511337234071142666229414615957280985012747183914268615858270864434672917787166677168056605102977814371767529879991004338951588382667467541083577089144541923021856731451764608833223682041114729519066170125179157127204209948066376106557530186806012492162144769134711798628221073382410554156427149453717812416452222269394812940660152308753499972834516398844996489106232233547996578045544586947814785507230343278777006240177527231967194650142578880296267969506179547749709138517961303623730103030128530945840841071946431513519465360520802567682033636106125671128060722304494844979096865048799038957288575702032780076038682094685743691343230244561819838061211027046932436276479352644818245214353672204889533885025785338880735539001677390357215685509606744654956396279075737938327443216741654861469452170235591632538320128291097174064508018956103105278932776555439624707487138178770460034337966425612597288258760568323801165257487658797048402851803533778644763801701919574427601713200655576560097120654934316139997356596096134413994201412814487537370028010872489546948772464531668937053321926128994602264987945115440840140862890065792274241732615680492466276772163256907044128585994256783547530055781164489018678487206926042932793039357118604723090218504185155802142082711831541274669486314574008127683324727132876542640429868144693718530770741470722025403964736801461884449675511310093786906865824595078747987969245319522464455884821225465829105666580901426976541767069742125138661924242897358238317904325130013963317817746410638787573126861651111672291123524795178474077414014748852159683524180943570494957251569332879698063082790186583543670220900318175392617074458545623354134161219848292121749326072754721825388093793057347367405396677289048544958248613642289609772989317789736206314764889909750958472318251030169176807443868820888621443356986318444076180323076977669371872297672084494940286591755982474706283130677606699825977844296107445279759008815435850711040888117700107759116060072376926655700811647892833471141625248417668310038663326061977448893357150683976985312624037778651769807651343846353823291542326743156900634483448293591367151268170144869981355619703554556592856950778456164871991793073335459742016943042207148648342874578571190246597352886435598361335257562748923334732969973261664145570101718880258041674705054116173582804959306990056780399528099804549265479984556352601491951613432669959421607175348195095234639858940020830181409368288306362519290509878152078809046499728812927526482393506513484643965546132906854626358155878176700493254745276305513990457711098283990751530492329299155301660361522595097774510187113634303824646573171233137136692671722846087039758939365784208942394426615676630324059590577337194569657053265697391489795089533235010672106841719834411250849041790078457932700503226829661458309989593092175616040177915815684600533017814128924897272868634032471975844881041050646854365981682004516269164534563082989540207236181607244634231429128081589669430561199965744070934770060759675823780236761276643171545897046871688270096239480958146226075031066798311933396816403199289957389933718336460703052227396387551085994698919318084806286643769204468119978703777082320489659968736271382629636151738343714231238783625179838325202104904510755959598184137128127953859651735223183524731392172950562296391086033601334123766674776300241679925724295408355232042680522864989798518374918742634018700494993381020461747569593645153904700123847329005327385039995367850462718006968181071645290338148535398164098152050936704839042108725767541873672708991605359813195542654477011707333105583095315416613603566139466640419093527866377091252407306716279487338373793357036720869299985450442263046664402939066178930270153682514482245002431569393839676161811171319498916814807848116183582700787752510237469517359232997883498445221309777812991898415316501694973426864685814256546114875966141762480045142657515637423014528910724009136368542692132241508545024541407668665553877284852950763854424255133833873300154943028566301817980724881124730590666187642204809717810082901343233778582961460313132094498672891189200856272812481162049686495302547562341137117694892840254042892798839408094183704990924805254001992310776245765754877860700912207986450137131379575724483510024928203829777914888876066473305805477174518541024940257170143830055887321991202574920194223251068680754736269224925551861457253037102648398255126124128844894883024430529063995060720948332917122343159795801809369488134199036691202741673951665055289815443917433775100622372168977122896619696685108808163468934007474223284463062540782540394678617762967467368723331515498471748919073212639588975033168823145867159093282933829490450596598150269256021822472081125729472068686381266020561598755703776802639906493754593102111758713424076883473151882373610230710221104988522853379715902938403276691993926990100941122959762061301712925295915414124292925416272094370320587516176963567561421431647003122778779342500222754168980819660530672998360273829663341027471412529704114921288366513319327770404221239861761064936343467800768329956754678544742158665135394711446918783161613236585157692418321875315229137664866752692689580161654238732858295189575947639752756693348813780891579656183398772284095475545520447754455418283551628803912207144050937526126399747930908242956024767769307684029143639703342441259665689891831305749075408405542311303412531743985715965973137601922044572810586716462484673961590203520073731936226601955029406105114558804285846013283330643820047825371606052406562327986754889405077408268914300588753562020500488573990261603488311189372740113485567314689402263721617163536430357585678100642144805003781816661099714563389828529120535139753632700863376405103552987572347538496341965567584991916124305760675738855135491055842815511649607454551436000177541232696332043612936879826355214671783732271859154968631723065873353635229478761824936320498805170658365482876461112745538663274964038947810698027423835542335727974121738034065683873586243155787570969804304088672129145332760350579131214152520483262661132448404553225240279515094762070009077430984964590584986882432795236532815732329393253960214844456397002168671593370605510445977167070243651360803303711654991417096986235752826760403572046200350823357461645787218799822992343346574516753716793203309026776480672730221759833264094623970651105352101879272641775054359634462485002398509022348535263218680627468666071006468496460361735422336547370309073238671303459567221021845889522368517427842018757882331435308710954416421494038429057550911991068829370159149202114639226901745126284662654493048991353108879960398382157622321802636310254795470317666451241650901232101332071533902065726475770753458332987701617441991850663292125538424338003476399479984488472744783934293207577155227952246337784131843726285827273588445192000847253167597949747528783433515436800235258913378196702016386258528437411892878316146327620549822055949171576185415865116549621400592269359553161467526817823849168586466994843879363072134956079758107822047115985355321704433581627106579640399448408059705384501695090699974456325163824915868902424298343265902778410262826620650751012135044931665531082679515766559247740414791071056136601899142636753596861239002906673640464413695671362004626161959651345081663438073686571506732522404962299770610049538130216414025077091409187361479087420703217030202745424902701601154244791118746622890071022931870147549204586709142463757645718668763920412462960263954647546132678583044577314611739038765906658534559643844674256289338115417329738237055520909213119899893920149947163534162628115880001797103231071237586106834217359498810026678730149086160545965901852592519358859303882808314476846020056564464847654968922718629038043989079347810263096715224719967800154170860796464053323851044035807034766151549224535475103298779602693411382756411804825558587783371559655778064077317071865056425128123674217893934111839568447816212403596841719129720646282644802879608031325921905371350479685354685278841945145242200895054372566120591255667794285025521051533368540980872256396665336482454000163336307769740138252032957661204209352265491449481640534412100955420024862949146033172675490491625539849000374158585940331786215728114588050241130653039671283776059074545368904271058665083002140348983291589952985151172549472154708782331149565183972755289669836895444353771078065941964204621852794485991914551866785333696416485503843075790902782265553299289131875943643810399098330127665509069983839140717713693601139435626484086060273021648917292819561280658284152243064756814270514877835508426164240858892608198456451475700026657705454489965991535329354122780483671758712347600099514870410180763928583339002375370955953671176774129125685370848928958982346777128844630879406819496647276198090555310309086586345377788853164062329423140254525870269206612268997278616226670178020955812908975632740249252905115621679379595741126219064415257476078241107607264116463036954065467043835527495167287403362597373543128305905275774478043326060820293085815265153829453888852016016460143726338113709537486502641252518916172952299052920626164366903907064275286911938905894872822483195418554257067420701995822139267020902360237289997991390583272534580221921351572668125880888907010661402843924351133388413143542993713835277520249281842151749337086345260779465346084197165410017359280417192985669493266005072921753845239842192912935161205895653674579689088419908311862315166969027636983426147032297571717116711339303120256514258067812374986536358295507587995334882297599801325850515101022443548399421662486725359801857498118394650920524927850733909158390992200499225905439359489041388853783333093278004146165173450645497261514816323990439712429246752982847287393640120818608971872958066142699008029968640630393586718246521162165694291695266156972797527146670182333289327198580559861046114483882775221131784947847844612127053743489528054816447295510551047780776680636211002537793619650969659812725515529251959800063633010150603649238765554294572597445067283094470587876030163453174544162019650184111726106219270718244642670180798056992843839443938251368928949489744525941146514886244710329186103725730824649284917000583864744354595436361958429805468367364813366413978678635790669923446197539741425508318893079668909874997055938276753914702678305453483040123002391851184001556020508366363567669665595375030421386549356190888604427693170562084119580029556925213724067236168886019976610403602958785469868482851575830217563771960583009838888951929544304652693068841085777509309967187320107873040039184179986484583330559446813476864616383928328528002576660472836451023401682464931507096175040059162041856366670418051624020765387678079117392487054189405247667846895080895874674385271551848766769154758295839693712691202452932770710517961574108879905987654870357246696886940835699113263456232898867722905985209529263027061494827569222028016786316227505422055750067906647346670286963650101903545307450021225720513901739787105488888269109633631982459693482825237934505672089786057490056999786107254535284584847847139034000146677945812698718617242912088883818292887735571798967425515381234575051536629288436824974437228762888659665233397176699947986764566150094940548098870288811836370811482130449177407344668563261018934126211900151841487760750145777581563771932737780068210700342187750594143033125382082706764161177801285834522568042544465992378764644144896465549433853080678958677970615197260898340102264972859017694190558943139886075258467346920136621161516276467013547610834982717555479401485673239965059105912595126796507683903728706746378525765529927581403534100370334314614894407609377862445809178303882310270128826162918909768355021887424195220319928894335087175105794455216202079641052361246293440193323293353641601472090516867138141180143829878453713207465587996778380599040875959706024833030235607634518562375262456092882277923744725293124081216366614448154549382764733516579765653530040808248755796055896971617093607664365273011557668152587708560029681917476196933208144026797200192136409898151899404319942713923299068077683734986016132300907788752985924291014873907969554707463740021881275824565070172769215184428929317759521849425429228964539223489430941436567898218401509628505517815540778761722355249337706967444298825856873915128852486506446132685002688536634578517533317738460243149971090669589152218334473076400561082910803156299210736425969177635713695821151749172214425641324438477117950374221263345225033406621983614068423574212906166941240480986090099849814206252434712788953853179980204855737167147351469415670725686947944396017340730190152256686275125560657555521571776279710019388545529688868106875320679352700567575737055739667949832840849249918379493702393472304522637561923184966867984612230385402086911990511950845868089472738105214705994613904166637020633009969026321321487828816297925520772769557409595834301247515602287732491249018183525157886115271395277828440966070391359274126961679243504505669657793282519890589472925562395155840667859977085017785515068147072847043055281861097515966478692135722577945004171327765136567190748183617854703928917655522773455318840108973954536795599309331304305358200344933019618473001018512772101355354860520426569054054283809802388501856886235921404839227564170281083718318186556247214196266583223098211110728717264662102517067186347558373228474336564690971718876821204108963150282218080984264770856280432455043497012922129382768094994228673296904019470211639859975051860965167105356811428809186955683422404065794524008875011258359911884051007129694881143902741104670326388429513106784404883551520841461067570558614085465671395969938643027731829048662911728696430240635294393367256308429664882893352394671200319323937765785975850513853298378653903458725443509502566815770760199408315530914320427961928624273982590564960470392278990799522436534937139146877587182227532858714978817866823287985592087671950709648375740382000033045741405232563836918942197375751883865147885478680922566867288470459669196512294396288333179969897770653237952629833723056656628491618703196850977193841941106980709496187718279990156614162609206764501623158500257573076134357419179320021730601448868241822532549861955788192391483180470063489221012340029385833653692492322922506320644641795497970730743177511684736429644976828032742161054163772848954316066683110821328077008258747095028887217793950700597565888530664564741946119479318597464081381836697560545052048347442862975935168885752620829318947803792590297879871827683977538721604195154943078433097805283600132547960607565004160092055264993363385478958380748342871898578642268321553037714442364841954464591471022005562051425653697665832092521821096637656468886553628567897613126134364795839600305283011096769375673323551710176593119891482950174284384093110485842245893815538338450026886814596139899364004478958622816283011013780879240816124391812661345957343816361580801751204890921963828236692926399856438747005427211241081242618343980211398520174741438128155151165413639963076591884203451124827931658142659635234549263669193256921114492830916409974735766705146007644584760912133279028205932213597335127975117274762214068163276011934667625770715790001965912472043381959495370847136182999006135062930226116361391843194135788987661939115684869272758996348590860708999531532895693732948349884261619089387286067989542653307748947509890060992719465140299945983071143145892305786894818151570860105444088556875949488038665874662446718787469149672280221227059528387302006675893901152542662708515529284674708552833166224509354697883729841648847996541351410416929966118027468458572135957910625675261513688016241873709496636414648540062239994659037470541763207310486213677631534256797908817489411352580632371707537579750908517006234694043795470523569598042682140950233167113772118589101800416789952660116246694418779114312759958860719435745222474635398337641971937896337785688822417824173192620877525631452287166491539079262539154466708386728251133354869716936782965415217553812524034945384836373891756608128095367321662115187761539675778278955652062738002837103963879427804182288590024922618154444539707582416264282339092522641214627178167311779591206920776984394580930522416995227251260787378373219146419986020635976238862718679519742155231365410360704600095516025754831539714447962589704233909466231414146366599726271387754011661628597572149745912100594032659290921145237742459013277214551002687892742603104198998982135467240993225070920003138213048639056240140708875666952561662229862096900921167627211179139491548161472478084553001445845749140367803217193953248375737698672790998688502943073932413599715779807654194738602707881140301903410320644095209293918755518181792096739438679153671639707184099405573654885864841667160170489317133954672964252227203440007493035959924646896885026103588647798580659926425559381817814376613726287676275721641743080051553934535053273671130300601096073257809971276637354261538489350792884748287764209271370162335786843327522093805502828955214404817061234880967368906315132565714095415517473847450967005479599668904980963017340013941009859958008500129013990289115921299762998915580844393814026811522137018370013062552262519780754646843804252568102810760391491305441014287348597888901487715677317457514221325537989984127110551404756355447476792345674682193140027046604462761309200803947253906580043942877075498693189344065574106547369195050755962052834347913657663283995244990775246133134492775595806478367364175918377279743269694909718205640796255811235267698653715885754271116111133508739012516791848163623943677894429758983665288988591775304990855941550165920905830655786596193507677534650784552900054210322167482561226191819148351573781501867974404306534695213374265448779960575435498254612121816278419830852654029029091306913345586601656044731273485937979234860744244252992920160807783721630189917563683931560013364409659314834269105927018162959778067045820206434272174228352738097483266184795931435685947115154268601422989282758319900851467711560931619473728411669178452110493949997073992594734538101147160018185106567860451379730375976127312595641787085324154770982194137172345264080877578075638757839438741186383885901587473235878812649275699097085725095815532318401875386097450876839466357035040823874843224638704655926290481389803288101207729299740106084787634841210504030998114843822190293390734495003359983310042477807721261551452850265087119522100990123616928505775910864308560700591863687790414239392339330984063874503366094709019199275746620894710515008765108421790403411890281555513420932929629687680294347280720560999033996301089914039689737732346299218359244438883102452101673621583920221567411725340713813424331217063974011257201684520764426177177361546894684166665882134215166817100273810545369780044187054923617214282608736728361485530141695819598507533079935527590964742544512356407006211857437717232832703679672896774385907965314395778653117337473419819050369964067766145515381752900510793668661610457153672967789636280759821183731865565822052279008413785928113665531784393134142838122127622986862198247626912793818474223826406933457025146060539593767041239539383943531429876494721972641795599948281721039157676486118317785988167648027225228073441420127611539332439529323812980765668321631288998287032557727155979015257780902793492729562462186724080051390029940091433205775049443393720915782075151071672761602536867732480898705497395186783676985572814274387712993351449257488536462404554065283200542814411510859049800272977205020854583912221365309379680464224574965023308375345512842021270802183041269861327468721462168174183653866944043903894998871609177927465483373797692043653386689071449232768487376554826560191752454097024376054358796235255477407190117335361307416574124744550822239010187984187294164993382394934328658471923303568516651824708973599862066788786029743258885212123514959108653267026306813364464602115547310887046498963186221553831902283778716298564297641368537464534261890085125197007187200481338738153598757917871438769731542785027789799976634409573099352101076800385924756310505580391974497998240051358967439904699304086027353475987001679206177948939387088361763734654968228880005439411652695415364360869418688929524393430390156167918308537050515475352789087218148137409403586725990978631736280147766621507285580778018074446388749529806925366026092900675828501597632887124749422582892371086207843989451593710896358925173568997364520497896100025202025362283420210273407549687463695355309716443743260820195887308045638105090883668262483929998931692414794460683322985005318556523113960473503340461052647818882103142794792895420396571331702279474107422717580096200314397924334183379150095908266343054942385688418765615949455341934287185129021682019693750734578812629481132822131301339662098541336887455770301026609702713185077845543819827532118061969215084764902392094075495351731554560942138394485085889433084210206091716918877815475273931407417443725682206788989824633769786999847318385195122837325090043041201195262259713898078005525653749816089327996922249482137439487478270793947721744399210899626957391143329832708982418785059730979065788091760926349970661000897098398631540601266072402375829491456507157817879715999613701198040303829444635062952864280392414045603390144274778911394061431871650513578365351528975376470482827814716761984674851620745942825614030084168472334472220252604057616137158383592392711401824655387102718772018766077592862816379353257981986605673334492069859837847406262364752129248280315681317287754792379316307162907393835902854652228285335679788057517223037082304918269358160345451292864484226201151250680949693084932428698908972493876880592813291704284467551910649958762492649073002930723089979790680871860602186060902221810558865866280656932944068530615033114074380172252858310167249890588687063233690372939773511694595189246599155565957872936166094436614238170019977859811055632801941122213037977291361528811327843503329713537495645090086758262327524542575259616079322294871401848112260330524059867651890723289009820800761002133594699982273744567080450982586267643833105800262432891834284136407644585330828348418954035846896232173188335541609941803010481258705300168302702214491395137730212887694055435560460882900160454602412291803634055820921823803135463630964902378285665434689109241801586681241553621338038744223058901144692232629504335161190583672706981007861287770723368522261665608172261214937339510733695000804821310997123053987231821084057483284058542445183982034849623161691769977977999671987423501468868897363002835420820205909318635062132518402063672921301653489036569242148199843485123668317177304686820247151285039862621936090925808905337368711629098161795655740589840435908367203447654316893788694585623821073910376257391749599439753273949907048234874256253393271443797804824902079309234243423888721729620849770794728015945220405672926031915251810201822113693099388681509623683818620472432291734700332356395722404855980026984491883874843208405134865004457190822456036604922755107558847512399162959914363160881083215088874859992203757091745078165455783116585952825417579709272930644207499038884998177790328676512570712715032627302026917991540394734836726989376263366673345403003816696786994696530671565747355907325968264738206516231292310302751253310537371003386000228984666780587224653350562900002680212376034642780123227007298780480952944089187689798219005836530698207465482515943902115749050285048063339329491290217484557461295710928650198544973784484435056832947646785590548268571760760010979625190155353982181966485974096128937309523022261058343821932332448977533767291131630851633097699659245440339059230453600853278346770826965032604693226551700201609505824849195283011997103873902487517517636596068955354174164374970755886234532172166201603880261055311981853015715719740827191929475600504280775870040431202798728530474761965094580413808251887841664600775645598007952424478506581491768663142936774469478149172903386824600212346574195219593772338139879903332856738280044650392675571242337293437338096503751532969462326459049046031588198999429988634566388882023240213381230349140709473859186655191676443827550363960322564547076436167895988493082824369468172424717745433083744998696553465921768357111513151739412718428055623816551483256781935312024484154218768753232780917185817918343501088922650115086894605312314794552923005357269450262439135561605078374360597065823227588645076119307244300288646582805559114503350617431982929382696770320851136578622497525530185999952363828738712853724303526818506741298557363719665508993790703150606275442370343461826456756933926309168096759599636036996085478226183342415085523816389819332812073164047809721039843312134947131768228743104115240320282248677514170798431866430005730543906547716207183886408269283458468661362159083617882296117191394057227185776862819191626062701918712634224779524837275893864098549428236559803161462866028559394496902095749418493006250706646737325661300420824839317361203371008012295666722047094614759811506238738398202742626044645108871171454963679488715104911315890164338508108264252698606638156957920716834704113048869488357273184644821768711197389238512490775335369964890605849072798150825459140792269519842995393531357449914085899171803948349692305980867512356105835993766926477485589228781336255329282283274560488297354136860495376926276779452515552657432674308780440917632725088546747160522307212691230861137860880969833416482862652309402028927791264519784538096112535205277708851214841684528539660730374069381701242762926159643628416142739873134639758599022702517736032820593873088165519051151778163587362404793767260297965345298051814320334338516631360132809397210900215519570117344733532270056304033084264283359095207790252367664282800211539227281297478388954488609833460626646722916703888965131777192398294701405268309699045754003482713325854628622359168940072282584921270087424771504593882862330374492298544797230601981311733119090500585302682332337238038061605522294905986521395675921265539595525738973413925107690629178162335174138379112861625560350871770390107969612409795150281458043304369120276972477484048171265919436762980033370614757650624086612883199335334220676403684408608855931283600309903045573290154790590425598045204691745722873688907039347798433100837924327091830731985609322745608434243341703017632964126449644008928520273297784480613753181807603588195185325698696327057080817951650243020437839034969888213507577628202645639254314035337797940834606567601329782297683389605051496751077020705369434620672846593076059963780688450178103559661749238993169706800802203850514343487122020079172082606123035921155163846814464227288841309503295685713821134822214258180063066548956009800696491610861969735820259060086014171770735017284569473553547256707309622236549238276540587430780594967372192331133540440666201795244676490424206773310932310649144736479388790729782466534006803275989549948490153892630298666849158793007113318167104614298845620982858188928743165830944035259538465473828142957360264295352724888612692890709203280893318395780111251374175792941776916902285402301470457544512406047173718461981901104839780632246150036511783038751601401212524645447593343592094209532414214269732378041008665358823358659557053421924557632706475820859703978737901658150123525785222173829593827136567264600868881925766739091588087068246378188107213674582948298555633075890935649117020907809116882140889054812212948591505362247505393538790655769105308561594887275035910377603734105876722166180001952428552365451899582195911068454785917066401700494496972859890509816803355201649924295223239525709419260329279861522843141767520663306166014915435709679261133598539737077265748152117905788799625039230335726808535397257789156647415184404318029308268571559095411480087320341054117657285918195581432653529690522280284325307625416061034950830257031056133013637373963918938465772500348630377828436917453932654631134388622947413582328287066219267614137819050108341484872019222924671831908915185127336703360807228518813424298815333541862178996205984259422572829463200160290781100990304711294818131159617221784942004584884032876258901354964256889479332930101816433012425128524206050384030816669231013856283133154915189525440573777544524364224221690401510639160875699276527420547182467072329788322663546539406454233086853711566621337600398654325951058006502909961208874620555992558591542529443169083516010769939430358520237383678957195311123992534108330089623320546535677786482979182461160815731041826274910302996619438075577799792486522893098844528561477261941134285265226366564630817859551026542362347661333290367171845713486866833672731827358025237995358728285110274122014654892208074931776922488438213491122380661831079945509213369927170220192142818925107559061743897021664607743109078009308901814203777186453877542026286400107362142496186912425189296350326630718334546119337469224449015402639673188972037683850812978539591672549227466509930144862749744614571836301599118270923517401209484539385571256645553890012323536424008809074055517474395900739649864181854247678314005740417639731075789370433876325917238801677779601908759007543789818778026544646645620942476693753922672599757568472117769946463166030962268814094583929475242045666697017946476504930741325939761588100346654593322088760503587239432388934493992733691403779984867693956635413618419458508477200510969478322635878958192602988575314643496644631276004332360874521105193578111358802222338616421007708938983112875766797246690702894200112391344899230216774904743916850397374382648102511183396387907905793140032012627177949057165623143406705082973259526139244373486897395919538912356359822574374807254241201323902277234313753264070125941518829035781578447614680095991262163934767747561099356701324482036771114432014615027915256789396980533811895971921758305623786630202459185372394834584663838722780005807139818971581562947482860992216730467164211847205420518946335164956385284415299564699287650187482234157868607392540908167363954446379154361654385761816072828903138541945888635267928920153234349960336101698023354747956982855931628975221668713128882150090236570877341574632255368577452050981176183936388448717024595982779239131296661645750223212748637296336343120809415367633074477351360579367181118398468990475730657893125534647710129817640274725000253655811883451352876366795125110166709038656910402368794294877862975043329060044667072941712230782626910920793857647398011351145791352503751467342475557437475392624013677311853724803923809017502317668941001378958581195006944159387277138202897853397809048976357794709819478188308275208412415510228320896632643924703109434414491070734784484419570752194054392589195953882633037253032789289799824593607661233847237848054494967422053823344591267709744544980087653083922397457381838513911358281063000169462376406685541182914483871353714670034736515108878593768668300166452132158524486988014430158375901163706397147507450273503676817014519311444089511754718379616514305394380866741473157687235083957119438430847199812960286592107916680829970920720129852479886751306451122061225995789046139768062907743645159224765101212721380358937611844281180713834995092584820104249389635630599881896422033223963732247422805998664926983602295922794716923302616340112694319964454090591696251907503653561651411221971077996131809027348252552431371404281423445316567989296016186878694746862948099302069011865932597380842440205146067165362344816239401518258476109999993984689867389506824206842162387883556184612825116501057206660846946540056304802917303099135260575043237439409990120784477018021014049890218184623577498794152091065123807727795610219988166647311958176501955389295273431411965031483929924873029201208562728693386412261058680757141125725597135219700786922698173463703787699883552015981251137902603222620700535842897628185097445237771437438864847750793159047394289679964328357196804199462864874618761211741121736712172901709280112990772128631800978154839327083670987725566992007058605412111668989749432777390832702608251346883506444710314935260043520248093954794250526661713191020222813511850937169432044063564121212740145829423616344928861687858097878555653159903976379964718331982468664569548272894933828267552534361124594903399353916589095308420232202076073006499306096925461583498981635886827896724157557442563229564837832442657855471629627872280365656318120025322986859280465838841669404143990980348720360815350530847595387387570305632948147552048001771216418799338818454898812746769990288323073878090608736169954436464700258550515026158720305308011995491142264477506365571509147613573817674571339320434629654737026495100077999190916971530126152975265741495520382001734479750959284003755584529001862576777671098564923690935219621753143592173847848942721676104679132893109903107037111634948074245139592667135528742850223813421074113856855547493716546782928472144912977657815725632964873887926233427854322024828509372653586724789423849614465616734253987130667886778084364141365330233701544713984054909706212189014418112946596566669683800921834627494957193190285193922874820252191755285982166716446523050040026029502238768864874046152741923382501347519670562551688602426134714604206457293088172930815706384673947989234394697613449806430088303796260883118421984286729770175737506236823329275209291932137311197074713162784154369364500370677027553420254043592204133860494950079447755881980316727300587737960066529849203294921304213074552840038854349518087073509518020459262328110439659903718127338105973979626530590483049917766953540937386884831375814861031472404827257064178421025010368745925505235566879624856962742464322832686552223706636363344778131321408400475073500923177444086004356609588864539171468809543215404212509682388251087156590555832632204227612724192312133109500413924378982029924243143979726595089611152694913710833180434542772063709240286845471366480195928305667532481441242831744281347037522593773691538203021980053997490151062727266221354475314354550149399012205230788304324241309577421529321794647857611995542949593021479711137682694083648815412851397358489406468474423830947612822790149841732074828022864330661935514028315324978302724482380963758012865027934283388566547539576002394796482743828318423228115530094143979099852495330031879526767574969428242505710983361236608346156350030731206951255940172228479456494340837234308205128930390875006507898191811471056331470535082801964856661029557538383530274721877397651121434730297622754262533622328777179622921099678828112192459046003772229506328492731380619758931049946454646247595647173808607293454001035650532400296027460617318549224121057264736996105031999981046917436717292355776742632203284074583312057865499003698519863413935108412869718715642800238474800355184741287697019948247014370976853074936183401506098592156721643711280827573066803216431623939089027841194681275821901335093682674070589672100394583524298064377722334860025771370400382182048967916906793658362691366076348538853370297367638353649873741684824855020645706547560655337981306203808234361200067252557427304122369313462834888912730717384678447139055119147643978792063520908306471851599079617110207033924061165728689219629625044837571893323083395524005930640558483781148380235735085430538900185274033076987512572054877890362605482360458281401018002197462708757684490956105260190234238063331537828344070194973770847925762700019842623291265924338439297960868254252421037593714265666476611796843999427107025574762108676518580514629781058634273689365491240236597579571882057755081912536225468936339315013645302542860392237416560473674884609493373542148685925514187632533491304417930865451495531488471403757297531005915670448682160874704927986538589287518319617919975376500679204485371696119274104756851623370310269277031172770848881304798453734496858037239868971342378914503713098711081095022068786121470451580898243808122639921781573016694324365842537815262468040179089335841978264303644779236307003716017280266731911739087641567982092511265131595093977606039216839743899598599286318503039502438380125835483100492346909398664936464266868649873227256505466216452096394034695688996701028825767083271149070512080088493987725218456307435428015994040681571355220648819716550869670056177400158146304034057595957093628238349777910448535110130986336683707889095821831258748213984549599611855342819323245057325181528056519233711683758286111863659534143806242998727216877853747969451773313676655274436495626296436780064105364471297991129061742275752841746083167777468229253839009852747460008955929648422467374671326696511776829422989816737402220072160018201783985766278186410201345959099820418954263702541272231882959665213662470094737979815687989737266423149342543670316790132326994727248233030715303726541197892928948723307164074855332278918330694225613843046479633504997807815352803533551989086217458809871739135922636081798014773171561397375881348306873111845072854887527099512153463771040451890276080728996268282246420519611293783983132630432855599935960999124597081772968170547561209723520981272844984481946941454770601352541567776991357593917774837789064856674028155896863569366938307430535273480522436712324507369977724230576726569141017226456408159443606770392388666945830159701238441596622586271150593812697008728219959708850511638266055944551225448168866794469503191989447458187291785374821433824928969722978704790133815157046875844524667420132685497610608360239941895138425813270832534473777417091102184867958851726511210028038724861093056125652553482303047536920545071220006285412834283503961033072598705255559206185124948336685910608699803105557340382173466698718732138925023901471175126660909424657876783914186475643200567090565602983397455692078189853923195898966131920988584018999244091474607620915598146883325245880221339513981493714710832724078190995143927127999101913240290760173919158907919943211208738945121004620052018433175332378503459887075932690836874428226156633083320303306066903762565501272111725132622154540966804985816187967029933102439398864417332092644994936165171549470426709181966423206219979340252952330208559548219981848174594385069820378551523320771531043417259924296339378229950956318734978443448994704141345333256236368684248714391205867546369571689374474205058633244233532598500579243499085185037901005436250846119827621704992917508706771072584791003958133909973278760411453504192194176833664187400864037836669284296118918042132942571514184424607404879110568050118594607463084818133711560600786903855673651618585579420188439241736453110395754629283067489043545991172901418386641543335998065238212943598232175849894619253039914771322664397625038134163936306486012166893610928657944486893405446172796964382127759960330888700886029387937320399052805825032096808143025686580794528674592410199934441163387873029692710873617856361354296233392615652191288269731285162634515719466212179234166076277766873839929805771469511655994378308739335524836187516178035056498631202894873363165241983701939152281730870548550899726472902902906057760523472182781083271619878144681331279996764017892875687689736768170741924566727303025362323497307775171419560938430593792060969179035201747155208089569044313021426575370668126597095999296407611868999723690617456107477223471440108067372129668364779678022746158391079208394259872402056157336937420818767433351804341017161012500510463590242001829296736020956536217413729167809527563763130567400614966927400330956057048015193779718389311285785747034968725318229052442503589952592565134804080260513437518573648373452098200664808314589100911854570188249377306110425400991861650677971351518944322114376569133301216382229597981417725102988633883874505753436906798833258981011946140865781195801267984024805565132467963682665415985479523043108680580530093109011700302961745171435957570124709678439834850301093496227674901247076488456636832990047160034168849167553540849461327324839084591559757529824812802078895017948735696723248629608631062591532902757976183086661930589131486696072689928201814274815708943894116560766808936582884086569442548954186812506913566425829251003499675474056415401437561990867370757306426348005783984240471151590669210047137041328533430281662014316164732998800403744205109873640740656401780677479242152902554089305224730285935507242111274486555714661500290746115337884751305753152475387245173225309174231773211897428209766215272904153173985043805788644818966278662248059440665508897792312514538655743313178336496452160026840093978909474909350982029951370843148717359616617700374306120700855953440228138262186422789288166467699233635527870258839111322882019750633621686891509927285906025411066555731605875487066265687435079164490183664164149524444271609904505957873809945908936877116571661137864100779934325234787003445230289837765128187577706720719842488833055977405643825187914082171564411252162890327900811740835291802664136787785816216052682468875923429878224679594288246706940622773177041314425197194442901154032954160439637748276065344724174122893991719594413947268963710315961704929887695036267570397667453842265792522479254601704773743029330909222186889495302939430104713800802603128985024855491890038274869049946630341247430930193626729082712439604425686345685113597090660395549582532747352792501453526482902692249605507124926900774227248453434945595369590727744246911477244615517257862006926637172745432040694552309386362332086222475306792088171221476063208877703700159146280157382508427629284246621585387661689447198541147527418459654784381658227263525283450503525915257783070223730076131450942055420734678252314854225617980852858988426371565619568143639454008774298938757733685375100697959443626220428214189392186902265320698868925461378534698754653041652957086146357741348289015013603176703710675862601180233878521243755912699478431294159197337375352465260464826791215348157948137124311845197487645059121947856598653298052320932648729930792372710515637395177815741406279111138581964097613654760394459051240209932813790212239965337795372221762688074978667701341107221888361268185322423893762331857968617892133353966825421144759579451126469068815558724744163704527991175058063150023989618185406074804010199987191998875844721716441079690779362330530551996715087569414425850296118657428354301803221466840023893766771451760959047441089576000810354838335202223997308132499987263408435157553150409450277856229050916263688748584659431033620530708524723215685639444396409788860626848599757924541098267511798092273676378682272900121602167760956066970419296945077661448952136501014659393909753884811877061173670970382776114938503764735951494315627731364093299532029821179925887418674670164302647514124925209879183893352034757844531978713332171084586730970434611921327145858742250889488268959382986607473620879664634862184702448628704908900004491790154322031110407050206902964381004693249875232645064420709504279208887170718953753862467221615934798837672546498729005623217822002567234385924173762258683988459148143109265959780788448408922615866264286379341161305362550876303024796449069361205368663680223358277370379698261208384954512376331091973579052163840439557812427147815138136353020067518680943185966903204723917486060534405045674293639717623359324167373821120894675108853262305124786150473142334591648863278901795018268292929065468085062302185400189580783991337536605475540709011292015632617283234543744853553972676943299623522818418549057460364103141100001445662755459849463050183499819650173469063337693931444496027004656440758344287989845866317420430088670030991464432498420514047727739487373768765425742291658737565904192867242130691704881801661328413086019183503990902943161181513006028887047602158477303261595545760823436692220920111176255151132276912352192686776065698284954787117292709016025544959045624758735553935393855138920437202401812203654323908937670124381731361069011055202739508903157672235974548246445163850183533135550812446882827627092145425789673920734215949432147082316027111265191999494056298812913114909594399493822567428903439929397608422408340017807036186979165108819301051819822538552063818000972875006802426636462812981129210553460822942386037478245149804513874065224493786076022970755885953941344765853299038136220800988575258110347483891976554311836347553356548254605021772077643565722700445693656266181923335394160697130818880289289803049320684745181350809699344708130691618088180966426148746553522019545020368970341181254307631659716502959161492557512916102727314585025817860867987125753600036988194622431351884518817439152554152253276130567473991561378816229910411805555233740777976836500130716409952844421526967401949060238839055252755819976912870747004931768407873565939198385974063500303545396286951821992573168086176589820386464867973746421599120619077022584180357704638740890552955724638590273047257147837076738072817995098491050002445237377470275621584228709695326290112677154943641615415309411654545395770455953788544019941448193103786170974806096491610143159934021103967507909192573183961118860619219028301330757092815883418977960093286393426196323920180507737905078767883142508422963341041750537352593825281911417681145118349952397900757706275236822950564386584013646317926105761508384502535038076587299026739342555442312450132806643982446529880661291602710987104262752924959179989507214761819739753145030205774902714957769870960276472494394481509730373270938558857398641871248122956640555970776177964174357027025015467351065028029094581087304418151938503443570427353603262043866580175947758346165329914307161160174727416432262029068567007248865914017384156538538354116194741128329023958779672695204250269557292693389735881226865407778448985528834158649691963793358231458816646641758246959757771360474354050579334094183375542094004922058339414974228823166511831239072701010958156802145860459122501853674710194676922206823502537593839498934911936666281285148343072977090762108032552191237225172520835495281054155943619776101560175238936192801217456519313931726585310777720365050936654434798332298053370587070228020249376471432798559739880047466495512129330132545756536791401264630359673243979096505909980533294767256094523975181957510280386260297826942986049134114648797302650882317683369490781590903106962066127640048750543544307753979250045003246538453379593519084254133120186572517729129500240099931885387037983031611607380905546527627138698023246696418701803391131843558445082310508878986093412105132954178340922644402683305886965268105071509609215672439856017965795618657780051005464138771699719570074943609221733074491794839754888470912114587357621164471111650695621543619983182275805843396093919604876634849699070236787529499494808759533812664110074828531743271954372020307326284606335102617507642478650157149987432622662023624295947864025070897258107232741390240292325327142308545053094382006966061314557375505703485272992952363683316469638425694691910030371681071499236083481457263230448513265092099597063426681449996629040588333691852725976807744613732532757733964352356089488876110770075763394179740198513219946001800881149836619429581746262098855031827802222752470204430904852689312315110711471184989413037595304551195256830675517995343308088626711761814081079119956688725772455063113564629195281317112683799171717479292200852485790986211817617799885247015059070435309478519175629550541403296677667041690397372582742082883004446714196852942171938606518187557358967527280000233307484150688341074963689927750017540956145663816819292966230212607560970031300365609630715567932138798358124723117737068494502067633299389378446211480351082189748249933229676737464827957351181847368262273754859589185145130513296853013109875737030168065343773864499302105450292171173078085154094124253198932456736084749691417672151193890409297788646762679156185112363724401630700956388981956174014563987668122037702539458584810233661954057543126511334932382715331930747246920343627283370081941102003046702135340864430127917148298399535196967865459765077079246754218204655921822390607694635966194159600504779901748988527447014043079105219155473716347075995296883503592934670583024094528153136039168861627341445071449163424560887817150950134413014681479971116122273646950189044132089262398827132236265871076432837361257531525385112094773735268561533596085674112874582309729724733569611455051712357280441844356465138139909520086660582600518122637506186924210043048163340254403467924879829907927962883463573003531493277013103873761544804625424914781317812455139613036368019797887731682912528261434083548049591657106753332202708765877550592560501667509900294553003055391480941637335212152290540222474353913113909263187720212481130434895700042090700782051261249724858853885840106650637609073792753894637653158837206567122449537900650220559686221518251410741461419310900789437122778821567441065969477764502597313958270264898499318356559616766763987334253337301900097281831923044878736554049817654984870947589544572440197677079515993819345107275786394098596942704069882835153946731454903026014121713299643441325808301371754306209245698651977385018166695457149986925193695210871969970349677642759015048562210998747014281872067781167630555119018355644964531459172513739580478142922259459232571112260603851598878253573190744335037748955818517714363487957078831336017998264710726614693077273610501434739224769846889150755897501940601584774524586592434264753700787396615439347159673634759248044599075836769914192191954982259171158815606155494933561213733639091652331471489279986248123598179967565420777615937767234121106403032029810805925640401274866575863562171626033387841704073064222757854080271139907688968373932932422940405707222783614369223535871013233180465340267860479704321439568823763070752062785840264947636218663825482406324265371393053341340870385350414842672147112510162109043218120741117858133758265231780466165751022021242172873311058347713799868049442503355211138805868612702238862520119203604226377618955055658188954923697709019381724829706643157514992165751947130068622399159001733262687896520339126877787859895095948731780261689616102660555650572114153962061629246290736435449148806215879945415333969378662633980942972810334082204508694971806785356935525180714854397087154768774378481377656636483925980869816631838824844423949672212656862468490358518132102660974047837771811195043414893609812000355828350221635176434020330725650931976056143829553992410346078350408374411038108422073336035475521482530069876001683876873841905679262279829584814831054027594980466243161650417705466393674781864510126647545869863499812068254872132695862813722723081649970302845108304724761279014610540727668414244929283342013752536818840237597391474647227837840289941297221047521926194664899414428738033556598865195260301635102132996565789469430731510598249309360002990198315943679170919768350377173139969702758353250548217067164204720090213338349678328782265788510758764386069622411909326467135353786334559458317409445161569335446288492790698694705939379983209143705674999396221181397216364361051420997726891051485416300086722900826877408363887625805569882950044175958190415949169214014191084636922430309223990764100494551208397096607847232024718909635940557366279409885689106565085671467000290084527776864539422274057903833733330844562659353589491920245749546674587965058415360534182728659065988689643789864903644595016780487624171408648632140129269519124114022011887493404568019765167902728913768839716507510221797317973963539424460142714712542527153640736436742163042732224245181890193632137532948629562148796905779885235794729618183422296719007335319848859321425412514792510690204235724140958538990896986136265923757343116694137881690623996777904019251935046345840376800180997779111415841008621811125917115607026447594000121823038432929776085064867147946727949859000308694830212228014245767264790187651801315242158671453529371828028311996065972360251428854291653059740050848777774995688547008611023261679981319080876534704605409934635644838092711579289547902224589062837530141479402839478199842115663960608678753310933255095332845987872553833219699172365133058715227348149128994734014527029408596359708763236901318344812215193634151632612086663943284575666950145024963763797638457161999677812873761673748758225637218191365208076234262545504015570797686875192360802149132291851419182321537636119901075849732211679476326985586980257719396367887409999533905724191134139395837446002643349934474207047458465238746328122659379913906477532288295659990813043851270474987145281421104776337386829734952837707911663641618219387551451237126339060537251792471318022257417649075345254189272623222183533550740062751106327172734507586346623127839177625901660835511684073752975456980498744940856970851740629893809679519697238799476790312615294279696607352384586575170485537656655372873263132738073710114284352395905854670284875205574587340987589403038099871980200624207210694061877304422685419542780067293422609240272267266719093021214650712698462732035816061051134617464500128025180074774992815683710216338232425886424995426940308483727160400012871859594173962777719611059550712111823840491395485901395778471807136245371910009260935254795713854688351025630498536896554143144572423362478153899600269713268986127931821943940343174897155554411410522965157186901780300958312964762426425591652370589165284145901272830680179978362194826889937746615954845748823220054598956855798634973866024097096110055171100705133419212042665896985332814056417218243631289368465048696771408264863530043898940063557720248742613121904598851831833259944207037354920310563444534058910315204703909263114903216934003973166338466223066238058041062815768626247894220822032627514603354411896061245375180315248641115212272870765069238676792085996640079806180077554801568043965801661185422647796613054219397007346920562575085990815205318418738889554378914615830762875273995219809864644019698277018778030994210560963513254209828447454659147111465155027124493717058530779754472434810193779955715955355306156611607823912405592678549975884463812979804267376422006239164111247235866354783951554863474425752760947659973994499748595755687334099970860865188402236791477299620443307996362703630788766482508256637068551829762480441868809839216298702433459566327203716695179229760857814107746393751021283709627700300717208308626452547329681189231589781839721286383189000569506029567648102700425304428246157602778480944349428546726201478983976275595598731047144099208513455747634990534020094881979462054858314263781596952727576366228638020055805459786967165571529048943873915021068883452660877793940591170413257139242071696997627478370702993970324927579178454073012790261804389325334822534185524199440407946672926546195135708210651818179793238852168298906364163928871362909725639256779337154109600149425336311539294916259403794823388973180425573916371028144857325282434833584680594228293046539281075311468679292117419881953439102611717823815125750761763236651717920696472817267527392253733630321083835564933547601055204613826831490411848741795282098295001066485260462702243827464988674284083949625137878435904201072302802793298262026248958040467539537135100581595744645404683790639888020459101763605373499770995548843004247697017953286483757023989051096460745528109016636758691128621391006321053414527596092988852288443310369348820512471501684791028088122292098943476817136008011608375330267810314482052903858999662721487444833810413688604567823485411774132735183834728976771373303676782991438483688646931397474605077605522959848088600067681386694566789663758282904661887651944046957808064079918952633291382938403200392728250496661539860384509737232503346068456587758591386489113953512625202803768025693044101076155454965387831053498922576484215426985179865243856184990814836022826345915654089223688109056691308053104924099832829200025511249734949807781348144956516874890017692296989914263072101266458962967279463251190154204130973874366163589486133341936090467673909691713609626594484123742524845482922147224424633989813000613449832674883274318263901835489810978916388316272734805644897035770055422053893940847540581819198837637833139407819961524778136321426984607594881795167433629444995461583817893700945886687777001250705933738178244350022735850887514278412947925906525044301669549196769862091788106980929648632668699288862434071566073831126743901536206509601129594400410104692885975270676297223456310612661400047650356873545373907028616555773983269979393511746792775591592912136253441359686220235124721195005870388311729616824636217176496633082375617721298987207280257686015723169998536891922575990018299116981852662959710933033140753392497122577562996298434859494342557237409165874149419400043594169050010230345797910007893536581300352843181236273377881279126994812945906705460408219651200952064994031195752140532464569683493110325861669062196065132719661981157752556976029843286001183203872045274806298507679480263502104136663401557835918652087430642958218940681341859250722612816410375811790925696860549250877480632026533160639073818538240419281372862507637760933352457411624357428074722318085308734691255861235952540665155903231890391550689602909712250056544555484546399996497900847659797201399337002477415111008035192079350521569600875410158935950092264996575495039456879298886631496129667370961094877167118854686561036520424411564379449961487741697774550734814908105329687645772944856705038444251552435752396407320800229726989364499813660277267547007002818390357282427807399598301773560257664022696418084571448248556288284366047957414169567908497921958864694587451423102075060783087989915362843495892448085356727670308078464000534843061237719803810318347143744635059603932126211904681794639879692571068829806934170140048479333645380906411202073654491540870123259087374511376889487555989481080298787955480952971301326016055771129113981512017260880657215104412664283928953821784087104193507351656352556505018448979763316655389272637981664488320388155754372518898984392370268185425430038499083885809722324195519638540478036456249158935106903439324672301386748409909784275708307282323583337163812023343747941359640809253247058608659386592762568695566374826051428528664655310464457474322839256887777306446585511509408000059338198086783685108963049079973523389279688168893228701550068166109105265227698335042906024314668278894213910402245948495111110211865455158681000409955114322475715823358061881816007908332561728419918472637047185049450247906899060779167672497482768290594386972523123778528009797781518582530043342985473332481526285562435801439838729902762386182923886406655446022093965698994245870698903066274437506950869331036101345335486543869844011304005274769560280859676496593414606348555109730675656015327629213596000168412623835133655382517380631131282539740341382473950379387823569464490639452784687008681462829838662531124759648191660155385816461282696669266060923685271701846555853016608211892722135937016463480370497679743916106870267387934225719396940362519618894412892818202406283617723739752898608802936860022750799027737207616778013619382924724805044992672628141156931462161198652695623230422193162166553462199894052420075339758281206828392591759669578450830015346702718684313690722891468717643403282629217417152067764517573194703771607098024051158172553419158944971679915349506333324978896844043499878959638154076926062670686710910186505371287819661769660707796095837669914176197607038163239592140822305467955020196262467138633626138910170846136989697381828434698651065891197692869414462905024065499803513759171699226846077714647950777392293333300840092928208727658338831509169626901767326506633588323143934499609481047975692356476602950720601061211688570173769270632525301339792733463916024131401295951492092271022599578465548454619305631547148954973582233136503525768420349443814301045508304744469282686482323657345134411136527914373503562258490377859418690953700829312328507826108225224025011914871200644425926092898559925053816381377367708796008641829399785731960631243677230338413458388822621116369421895150721135486138110433554588508928481397286830993026316330137070116313644349915392226135569646244152620914443888590745295395425743439941217800961801986465103541202541937993020916605715637264937004142237175877832013232511309954703008350592099758758361537803402546307272893808152488980412617171629427357498840341392776839392236621331748563648538892275182173512797345871767290671336354007496522985544623670166903338162283669405214387921643394056627966133597727586165142970633182259289398780796579029379092710044582675816643748948657217064818251585043337999339026967597501342064616923433788363491313212027974150613445085982334338947303817966891172575291837331576843298825295036924558794870681481233545660826463835056810696331300490274514692299246184127221084510954077362245738012522863419167516587547059913171696392547334318449303714754644134723518942076071472443675332730341948487971946219139734307463917891409017021604831437622892419269480080684451365571731996113119244015943254224376632296354571271698361743105673156522540846202731147022293409515351989102137868271086425436094869580904424587104339670002710775147518094400005543078995916684104774638019716059097789238592524567193269058560298021013576354568513630565430895590450952177426014526828713286034752447072919595334138703294952868137289844339498909339089781259928433239633476438993463208722093823087069375110408212094538268943543721660972493360794781629397183526423749401671415868132835773868269241146430381190988846806155110857235690133105007177348963992018299238438665454586731329018708106429430671832511804564985710255642500519726581702233287755107858632106721036730210218442412344013906426374722232645147683151014784034254446951386331587532633998065858660789262999192529447417781758779506706720051544737865714545664992721450270314680520050178547246906596391647276418179575671112243139546102694007960712311326505646905222505269015782532273847344299753239398508153114049896977515038606758352041969531695059583384255562203524096124268612498643214965442902971062461241432008405691650037014777562880079702159349872556321393104013597880564187649425666292189771101233377083366680033171822053393758495833848637422708176453854378938322885535891143356450736422624568857080683810541122288565592574793702920295722082590910523911248296884315556636546289820452341998120616925387502177529491838501655538121335254602830243369084914170445671319407004989466306253046916151691383009461908678501170447538148739507074931470741764699088104628628057744536767786719356185316370891536484420331140710755922838232278058384430077591805634052631851196393176467383974817819488357248830444631188224055318092461510439943725928814914086297943701299008727992600585719283218644657249530367846055770812412740113988358130005275573806185546551470027269486750954804923354240731605213596772811746140587706343430491537916887013126441501231656808760384136575477598991968838715485500416560334403564005415898957862148124630599889119616015322629686388748325725361953995729547872224678302628803715101528371608848964285037828337508970138457692669198656560466693342193560403881811536263305738936266651970915112604832210176723928636982369475034283343488455889503811309944414180490490378559206434194781883834809228550838520983329167996355181163410144760334116985459963046206087494011553652033782357935948411087242451423099687349098518586345225892737780598764404442491105888739903620700263961712214564118761422395615350273214502904108621575615217071286331905060190959647786702099744480307034452114831819460945140178464011701440966819674800937775641151185890885881423165245315899402861259925833579726168091913312146705089346050406431097232429018199405297494124812688669559842351338062004403145386583607359712241512029841005538845274085884932547371513982496793290555522531453125014782931439397832537615403526676107047735388536514483296711958287543027334367255695268167275137109307136486693712175394280969823712957780355195537028835386901638286001812712920029256310408954967262634350355390306149355253675808702815225759003413128473712483074829114312041037718347726431709455548216396349959414582668313373063811433627285384538638049217030998588780646105635769635375119091034557756362481067643335103147404841517469622754629361937002124950070737774338328761926209275554891683467465722686816990740993027181585910341230805548626096892016077971685148545486261616953139482837839642125425388507519461140002061316872001555377205668053851089579704544944442571618334798729069214985479792369935348968839859469138079636065426935120875679748907228049122342362951915755973185200796018590979878361663759509573403739206571564475366834086876572761346097564837645525287825205206187086289612388589274592105612796990454952266225990424003227473204619017616938348770679437922623209007683407350214727262671314519161740813189689559059791167089985614287102776054529383176930418170855744673107475332843616444256280960431474543667135213993014633557645448648559088680245888825643262494657749152910742519371332796858633691959357773702723398665110974113034623064591351694857795094078103799729855800345729023548671034502285757981609438225656056374154007118271968737022493429391271163240324479729448625332593879529166333569659135162783019564347714839664029614572768080980483945200275333310492491511004962572009869971375033438420015574571342601167197265593610463894099627400942819867793634705155107178678409909157483577493865326268170393191389518159691679490548776798330396411000244043882687651043294995524891087408618290222974518179610903948319896560150013774432806452101075813903718143373820172694357616651976482260940210371879627371124450513607140937840969938248601783766160918859132959307506978999441401038987222676228659657700345905519983510073901768906659472834401352620503546233607872399641938008850897651187050882109035931520860498986731745624360500236836150294108534161940034369056638046765485217391851998291508695476529351350953280997432539146100034841107124210393361348392775307506643290057790221302324846324704343237724060237820984784165383874914466097563669866776267488918471065110989943036960307971082066870043823719120262747244188020837738358320843643255901181943873545067243512123892187781795170135978079081024520354876965117961173641807223170318730513531708998093799355946220490806751808497010018284980615707883907301827928314193858617611412997130913821595991334782936062075781445085445904757992788806450446626951309552000235289441217455892806590552019645657245287524327186434802241027894575997958193741047236670604373403858360335445847856713475904289093485378048098355073364585318463224635560315206668777184963413251905967610572427141129319528602016805916384226781606622745159696167036557452258570246585351171631965593232862917604289976135017836152915964024330374545454670834212835338255990483398273392398588692008207247407355777737648727505271849352267718578058953652907405689903840704473461621439563849523397253841835564797560124446489246990783241048536396212930509950858728930516564072308748916889324712900407564753972167130423129022124009942378306301810551800833718145616842127553663133372869464710602515826184177451987760908922832104838492099896997525201115837796964927827837579469239983244194183378854941244781810619231292777419715466109365150474771319481879569452299282709233014408944963833814546758110193095485817934799450243448181870739580235890513138129017619944565164221845429770293104756568096394464396788293267493215218842157743680633328735121819369846519511175737695768652834631090483942381622789483005919093505691653475557572004723724447253815646439846011117337409087874685647082624891564311228262342948544269076227528747437078871721232929969779007672292456362234524260373604060629223442253406780745655170103644897053107048419571062990180387605594074646247615332706334248598061023665130512641510326629177697099180882370195484588696552940435171668554430737184404914242570318831550905763357168756313681079616717370308663572783265238846558994493906189759837422218935644416839389137679038795706445076015768006650961769315346462522832384307205862021125194841182874888782316205452169421274944028718474538345847718452200557286862368794468656536072505137362293037122733112935025497136698807151209666611422910035666588974371197838970468439713796217830816151485849892235470223800227791861133908460108517130986216755524047665153457715932484843187941398834036691782487229357498126131056580955586675883640077055465091198720945236268176516407446150868003161896291393037952531817041697021306093075153192825139449830632417901866753961684072989442692246580116021951524203973130610449860378548257065306843263653838626468307183034059440135662936465373319339278308315792080329541525956709981383480741044114761181659673068080182958449016033855092545276325105132983173942172305124488910614004118534911178418468314045507705502331353147199429472770685424419149753408835758789838210230767329442628022579311013662019683543918894450070447834329446081555677612495028866007031860417388998878994521665715929435258653546131348286799427117838307372858434347750657110218588278437206045489956825532660672487183152679551884260929532894933694576614255703794862658624156498394852071726026071218993074428770668022277778451241028154605308529800302345895365407273712516389525999512611830821091355805809714184923676660010431209143224869207190791874976084830709738827822529137580350170055165698486991431091409951592954382922072972704375630294994603586805136095382079357158417475528239139768913379080186999653470675007451863904746894244383177945943957468801521308422491302124194554692099301870604058529938433092947353656033767515405463243592770510301955729328785330609904344226885078414755632566226626996375833406447042047376493796287476907260074913535663600205267723870415643905532558049351132615180450548092837643046764357360064024111265001721013432935755749550163735453015285223680571785658603748596144658330437382375733651321296541271497871290285057294198737732823337461336787779112146355887597270757048378862522258272386954355919847580982940920632782191921540763963827927169411732394347090747052301477703062866345462031311414060865031033259042363788257560330140655952369804988637036428260623278728657496496885009059803353935255445156177446469983560138162084859085304314795632193904520605165649918719616878006317210650868841911871739713921960315560399198325046030838910673754483162402073910433407221199373635729234085826824876413663874427817693482763524309660056087388409608626222039034732704541550805386435228643489415612439676576436036581394597798785726563343061951765931949104583615686777112619018568955516040765803258971862911749112719381893517327675347510767233224957840676290678334780410964081895611170226260416224482802193883999689743757208422026022930142766330474709883372525951369693535607819923910467756286226494385537335043040551573591874083210071335606348959511892401855207463137761747712696880610358283522952605077560501598586040365433902307943882437005624638297295493470516881419315995290843321486909013928277854859481880773440232054132535289928506274237235790565721233873432782930878331130882214378847781704823724949033389909538036828225420198462454270190982803479940984134699107749821429570871479486274157146674664355657446346606864000717347849372072481347853554281091999209885825358255914246130143512798701773453314885452695197499889175333990328231631832253785502829921992564054233029031466281701320917517042044780967302736221931745433129553167168567016637869258859172016558558357571778788652194904084829787321992519920536700721600669284095937457703282406990944614718569642904185801264757830383175838287344690397000355017435578255486041310873997809015793602400068067863630616957435571700879686424558099507507268513559695055661240764397754561144407737862030933969447439074866908832490939356607081244333325274328329415012859966139191310740833007804899831771260437467411145247696846744096510126397811545424560565491938471675875703241697408456025163352750711581855260417669159537600520683387813572170299252567206317405771857202260353722198892764203308568150248349529004814666267987898497388117253436576794512337203863516613189914132562203367173910127781313277706004422358419307306958162590534222451124078604037088638471971562773661251102810916146847992746395027718638080381046919836653319380469212896058722692674929740168735991773578310401593009307307434888147257579143504384522010732405022091104010288246690110484567161235337377043468410996147749162243008669439518222834531673093222525469552283034908347800975810676920833942148217075666182248275483743825124730133359784688055717873494542568005349863978913888790214831366842336023283511667362596198623173677609734408103314269552896098068179978055735676972327655493657276085874936791006633841898541294230409196298297981329040719946006709007212385325282055282855632021422729021721423787786117884853734864521108671995643059576327521741982129928390213399492170355253495297696598009724797452611793663851735903833482321674824945735724709116134566607713500910236463894893760609605144855606838676472043474042916107094791748154373485550078767461288823585461100883189669427918866954984809603380208605344404959021963953428279219624428470058909882322803805178157749931304136108520110759713449128423636540547935958726512142010943537631452515500149337854437299195701715814275108524038385977866222781298952285869835885753469543542231897368157612289877590754441366080842095428452463715598131068381003714888133189421891203629342871647658735839020179604708307879491043283271385569992647497914373458622268406546646102718253449897093716986174484887161040511711659843785808760081312237499058445377287795893015822437940615157531145677246363267898649161122396441036918246664776518280490322538238667402186456540589352601066158353934571053038942497090854483460683451874749867806470748778810055616437861231246592002052411190353001848130531768278146832477019579028401721135521027449738690935095710338060911667240519295666413648676987869044216325879786352677803734073572976023906353637153664913016503060521191880598461140856220219551664472710120229914502093147310564961436506614908704813324361275506586520606623089227162157952024001559364037993558744092093011913835499537852799750823442317746173718331138651092283186788933937786103688555232480390675878146027096685721344320527472738311372133300798065244979174339057757953827250387534641393949573961993117181924831603517086702623207950584891832969651688882229477247677225392260994087507573363207907959310345727299425587154931109425852877841529298292111054489174637830364674923893563368216853162683961801932068963732305493716825213421509818007721356020384377543222975355204875992848156424988436694835869250912011861763586793362997818271474893428284051109138171715178535063643613913934110607547989361823090333777221220002308702892399662825490242478836291918100399616182239854149423658832060774366533886818908206884758799233055095641283773950785949613071964980067544342838344160671206314477326052378264674133222985634015016819005588458660690495396881737946963251780674387645046214001474850167599889387720084242604326148329786672560498784478948300269619872916239747484829989762796595018623256104463652590038628946325527586879578808630100531308293016566051227941830167354723056697690724465094342478220286674069603721564404670695770760789971233981672669775772356660056248202847028668239771949048589225766219070381771375545955392237107115697754912868774076549023632218766093752254057137649756895475548531719579770023642211180249842124364512224853449661345369394196547517986642723140651268173343275838165079547428213425707323103486679339668302138707053466872538211657456816691739589135409723301471030088294362229908977469075205838290973627868012291462407407474015080105699605415178544154766105221842462521817866068522456318822019531538154620760022056607995396406852609969032396154470695903999948369798056608019024204968371868688493641325950713124641251465421527727444323763764687375048567232943228768879741562884111789293030974736474031343881431748213474863420960318707070975956786286818485541313098155049942684762376336736408136077250262185517908652218774065113757429452448356776383401269410862897628995496159460985065845800713949206712121634231810262291926090561729577419262211586418205703681394870993478230898159432673384081861341920910177635862296305001489059922298247463146265326930017212869739941050415996766673283138300742283254489925268254076310809023431408469922822656803206228960876045354185453658130450458490728477326480867383014440965851015545270725714353475291733013469824633446675207253934736862027772237482627774855650198895850192899820433843145145732497148028973556097349746589577826514397792010628281206614730591438281465794870786112808411766655721559067354619367798893163871557283452483569783020118724586882853410983184869559058260795828974841155178906854988807412853839274190033749573828875231867223332455461112284823852710773730613178583875363258355706218542121772092423099871341062304284424129549978741719757434319139716728928469029137902461967821862824598528841857898552591970581994206281044677597716001640026115989360524999021959570662931238292815106486634603791197828760017055226495293294957825227434804133393657334508045775914041333614323563956332524722978264538849324830282299359517996054683642825723985182456588055867687417025516352794575206594821990924064314992784766730068450482695666349427713902765037968327991355101518520631277265748286167105316293660023146866234592309544714984296867466550799941647865710842194697643689948648584747227495900569437705553267625858254690199210229820184081402209673796410347998553843324036149212961798240639609616466871352490708033407488032450697076587297221411249816523072414474775723681773242548825552481682939345035424460255491679317576525804206826818900362657798092457241958002695235288183150634791259633069576848384664060837156990093443344862173718226987370532534357362326087224217904785186747776271059033272479651137133645126205998988112434005825664918795636752382716235341536023408893361534184443936355948384160225374664020705895064693242268394251180577400409065324632651372198257786599620151481725300610411015115518906046968553117370351078655473556329966117001993959199744889511568146982473430575489140648242980325752058938185559233746321179514518443483188877878388258699454949526967436745657462530261280701591915942933373521395644584728815551042915545118075380490943099175253121445552927615120306798167058183892029657639684436482939422229125337337466005632675719561361235588719460316851362397503939239089319308216283976321067962617703473543879357521873492214527123547202488377550833700219384058557850314257198774979894238259897915054223676925048995698568156712811898486257193630553384479057814734070622916666092670840177888257682467991245659891717399791439267164013427625431125939170680174949724476825115363387708903203124222017951081994595054983646645096648663064354060266417372468088238772504081789679611641202895405673419989333080234332780403284691049396438951641555164056813459408893583760067119392811022812472426380767443942823237400018544153737543339032121967389022677347565607305534263367145855029027101951178542671419990587412629316121113875283325440956957139744424618839056728863894511964519803166561405016933517885731450589567409691269744599977199313302064123000428440142000659974219779036510536021603212160357373646328852023434911141710137291629455111778618917525514304769960929143132245747032720828884324365655940609277093360627005972833134198238202718267865844078277432109893917516628913350689689628613667959057599105463120847479302526906411947466634875208274797556221766040516479948306863201358536812066939480183384961239846924037459367381747186184468975580417649356136351772327124380937583940698891169741905035436858545966230064962501982995734564972050988032980547293818053384249643759644020750725849993827364108811004220851728062368254065787819609962069576061817504699854464145338152619053487525941181995194434226380496681331714757829528462509245034783212148233232601269704208781400631111467576697020548226757000365413929313813124723735550252877838737172765041141202930835403609077690724605769203973903242145641383268871747378310715268304302673920563848880745610206169950449364332660796742518169963861472717741248594653431047933726555694968671806188927928172424665839717095314695427124817595937341187893406327828505605989761667914875129783293650153109986390762201342823703918793162132348992213824743409565366201674257888466946897015875839671664973178007674125866834318420703906962635538733692825953374962631930705706334605289160090359568179071054916624367579793838410742005588719462005320841044433216950281629446789895313417139022133221921405451165142509817601465100722725826798522067817739743035661111577314977379597286724310235241548857907601284106131840506689364462386503933500931904645432126091853428354329480971481338283972544213291989915034163003068176499363601535766165732980543597896231596263665946029775697405977129851510234790672946307470475631396389624487045299799922666532754969837339364904784050780088468910923045996066679583064188597968193504954656865508180022073474701790188055421338970116884956288294425832931130259180969505749250404789944084568575119900013070127228279424738366374434181208421605214778665272116508015385084718764083077155423460496837129113589497227505437917121809186898205423763365836696395316816136308712910310085794227059357010892865475928726812567716978276714127914377026127965181984338611388079627753909848922063698223915971276262789915398721883854540383611907151518342873304795393458296712046223842578894664276116503925281651090764525865975475057701836446888287374824166410439438614079919872456295897306892034280264340215313301018000020943276148860942568467245149713491510853148383843330263508955465507402999765347927548262325025654635733888971038697619758505772336972398093746640524793114919675497999751181558484410769710101430724389705529838022852074693049737557617949803934172546821397444657968080133476936080828535064272418589663543593422586368569003041768040098519314714297678342605001787263338879326640940515115882172822750413630832620450731252131990355298998989912461744316859435562413021175175313132743853786486632650382993185606030395871632210269239478536315554078932046947903692565516047283245459633329309608023370596370152233676755031583482172767948374312114851912026323472878224946139460756659237996893395527160733619859630550221032431956044012333632227049908140224466960242350657840182101726121987998263482098946428916523002240510688592667988201374956816773076925578886903442840958189262016050290599436516395476407466588970770104232107687611094833249594730321672741586126316886197412914312937333425947158078572500837893029526414923900431084098601555659855342920146213624790622261417378587921152970567187138155493281687699851899451783310958774707308867293697705969261716591266817538399554682653277883297447707237190354629145973089275385554496210458142305258390180645616981510136045446708098625271832217004800656789075031522180499361276233938558348922629856234195921583982709103823344137270431534682241599812174063494316536752381646720913544151709089612485559713567972857725451445794365306408276701848676915070775175071790849955909292755968056923524297710822856072244236089715442132515434963150094353602041759700107887700468926519407051105286957704942821273772641439554459150168050203745876550030662776755397866965485060797652301039348907915972361526133768842774743061034704591607431770138821404488004154066279953361879130418079669185571211187838381688282829708908105404426039934326143370547862706300308176734494543848636106885688526284071223473343986524467007780470657310070348287021456281004832313739569123308134268440538147573756094063543399864484369279801568124991483236394654165081931402679052103421512018210295800908876565289365527292536886264275530350047026028822024156987846684553138538148395578466133970202465177491130775558751232946586980058886917687723664874884234806358846964183380428371852974524850910485597959519393806932632414544954769262011950309965227932260545499742574824459428774026936353968879301866609443766879456786143212456539817412037379280369246741694042385782095823853999866122975081723366880694508718366235268479281965212047619559318138868492717234467754158948268926737660929583812257974307959632567485214145985513266453322423494347783780434013546196697393443928818817638592519624244363311838156530584754895422182242622978392008054944503783772493870135375069137816852375419985514887978743756321784508054103039614467156332590623537620295199444066946836333997869769998141286314348874743347714383108747818791071738490619559505477687158707314635899708739363419734004676812691235578066235032678411784822909467116985832527887132576961862577819421157436094022214634903465485072297886627177428664444634435067974092989422579473710681526140127196450045322263609760183491296282197648471944270605583375534253065869792373751770628193988580122360331470197052375179088432253783702095608589040523214170294024193130428097075867976592029294999337630937933467780262564976806434853437486214611396347658975751731811011468150022152881165527518648540920344368154153567223237208436266837748697066633712488474107944635472495735063854150513170751642560949173896184341677410427228341645183616230470310668910333030218499203496156961196039738461369222117675197142166224468068642613084605119969965171722466871865506967780560208437699783006988518566440314878078647419985282121824435896607724778724664360758193880618278500289210154326718573443468656241806704812022768671671726397484565359257944678553646849353542586162905213170392722860683523349969000872086809203368711644022336638790015241580451907912408809758873869414537965770340170200159417491613725497638719224070351914846370265076490503294747870913529570255961338395470061661820028263426310960441178788062224643538171072177271542918156127106472376514162205893350758026392255063323804332533991945481742721027307028317742642718565020308554535801722071521070939747651271741560669436305492636849123395080772963265467497884978355275161436455795082495880935955574784953126489295140578413814236786435155880742201360606210016650080772546412727737633064649847085791381360390102358156832562466260475562682502379289187988219624068361564781636731893871593523810110294132976236657794796821743299627393415213862590267758789283907881353637164692510606517497848002020415199366892854555180825127950225805852895600745512413472299369699766016815611618863918028487418451424620848914681435056359833443024168481473505640779694078065519712629326556918977016341185557275269754270168647037659690401946660338629466675816673851457286979069550651484551114677359306570341314955029791134276491919456774827428434798601766732842529139921594146578742374463703505279171498215362387854274886126356225040189583608217156716736189061595628690195792542294187065906381250299492651209502578694037558078070514026007627679898954713226134616255328699328947817920834055869884054073942780568361945738894312667827600415360825015124687939764311847614694191793313215422179673065787670005093427336668760520818526842734958465667255540046249683249903731230445579558923796095412303663792466161384080202787965915074637600007392894203120468439972740904217776655841643105413965446643783903049723954388115223512968005190864545426651455938637286281696176673067868152287490931367317551615964056597472877962415703710404290401117720913309620693314139045423089735345797626455358099380620953888042387629547599750509613115289705971330838830984626734848998430015565616014993499482331680387900562239052464089216432791384871872534183769854892712127137561226863846926969169765192312714663988496096831043408199433174008805844974002793529553987969125450851879535008706152389924367754817849847024449093220027662357312119506048813999853064189436785853696059125883223848557989796646140576388735483890998550574597456678047433969211284724135464657758504154312088509167845742788489930916275822915586309212334439705080101950877691458395676327525389470974900041747358261825218861820988531904744676129748096093770554344748168185889294918435352280891072595185626366931161570660919153592371954704706566214094116386882234022046566932431555081070047731181635007781157364423326554114453583826170400562259069465474440855356596098123141971421995112528861596620498666917466053799265712852151296999797589214782523086809066958858437124753789165442343394754691526946005533902940386942495976873458855203042972975183341736715679157553691384939911180163266230982027280423977494582329030387129655025110154402937227258880337154658329986386975140731894769433552727435370857913893804678153732677125539232296046475052079145168005729820048107801966943909938075222950374531880567316352257535986652875858427310823701203015054559428533378998812899251700494011494002233178749126483148048398515034579105199074164961542628159905042124704436060338208720024382128630260968450612962908149992509312893806324324309897765178514271761023374519896806039663180817227095289992756334933499272419612804498896907401522256042070843506750040655817246007505883658970358122685114549352241726189423014784504357767989931952860130619258605400604852235142738328385069745587395015060971752998772319888972417967782762588557595982509430849960911767364384289124535658860047091577115090284333654592529547463026349408881682386083192254798900227109993091537878042185636829192949176412542031351630295745487582356289614059328413413990045613595644059594456738499532787603230294321249349855224102649447788250276273167708966106516577136454124975032950380352326866002714795311591684620465544505455976129688401992835444613044478948231716541158689192214395732449359406275873136357984536467206921612738377158588186601573673483770030931635794924616873053963235061401086666869081524165483730461315353024212524642906720286685524585419203544565922045083999094239793577589700237592053927875123996462036254058743732189029078988469920577348142030293795769322540256712512736510649536490997422767744170582938245488253015797430872272424532229247167640458962675415641082726165781987007192182988206442044490167782505924100177561392847388978520495855134788075738233314270626937997033447044662275474134821847959049572184854300567081651420384283112256688297020179875687036590329965906449967378046285218605007333401727333554650833584994079803163037210595520822203943893585380884966205799268540308334457766706053149094492598159177416843172036447189783056674718831987193288916534185987552579156202720565948825216147069751754335251574953778227978737320814992752439201561615674241360335630832323755365552653772166191177185973171763900477874551730832901986766300714588100745998315356455467687724580429113721268847155675499113094616060438308775465396168753521763286502984771360554762164895015455414445781818942717819406666604644441746583465127744521045501652340831563609577641694063410185002706682653344507694436027592062897386417504625205550809207901341463174308812600049318460206088809527143924115435422697796342379389866041612889812709893455904461807232055858763182739966518948080168644606986973772155913983939684980175837370847037628866756767316755774115192483076941427842861610294378537769549854922507706305480544861391661492030685539779888562253607023584627071584658032187383033692217962189439635260242588176603240247826813890602679934993286102413823099684832343183643473039210395471887102256365204721382188736521139302422135316892842511830900221084005177062192672416181175170376531188902545599346285409944997300199241292672609048035570230251281391093708693759145925076031768117994067370488794787531054219504844647061808461710019080695153071161540704915854431708016854793840009572752737638823789233123876330062171941300094271396021758884398646497102544467147438495116085145225327365272294881127784133526512198085809574677158021385306619645932633582984060344095087864249241318394708594600491424024847416294391884406127846099368059651162872707285636206363670683609404075737107288312565107439939559458733434669479487239161235822222340021579041226107506921337269787135082657682280085939559353121427239418925235522287181485613361759709252010136427577365634679466592966239823104339637793662369149673828924185457829814945653331699136192308829921579653163867877960715983258363801661232622948986163326012945678004223108633273382880319342773452714951231252775017220667896797194928923368795753277785430408255402880756771188662597906189907317547811862739561996916657262125970966688839853623766098195321796563800773486071349931263971504635139976293245480670461340169388384977371068891643297054613372292997475355144423386150460997165109948924982550756289640861446075923578563868197664071397314004386282782013565755884629437626420710401240603910106946572480342929568621132743166367341553830775025811254311562928196408204063543470044999977217042904942101063847289982549962512147122650505983138006660290377359738099423114746572573280176725559414916699224456459868594841405920446589061495558377436684253866616251357289779722083043666731330416779017239249100599153451578864461941573127137928825804800354124776775453868789949291932935881565292105798019145104756696621101662302042141529921322025370048598325606922536569809279441357378542198652849155198347696514001024221177471681294544640369532763465219452568467090784234567725927449595253439698348688247696700015082667958677796040093811468066524768649922596397235913848742638879486451150856346322609895926156776090586192977046306240796982018507677123568133794258931185990151912246408218828786906309476909528962569089721073014120250057157990966393260668172357053180104956402334173825514466936741281292875722292220447343048412297714517490966104937294992677938772331819306470881930646104454981839846362892736124569614029127039623108629437888063728088797228901461379378961391873908364938085396639836155113659945767519820228155395630040286908943202851075717071212011525580062302571762366164134220315042959438734511922698061928114794535076246288075032386834075690439442550091861491665664971116810854952750558099626265245351852279104190023430217936985738556119074577942785928182766851718356959732485569879229998068212007260056582256829211134906579459063252129096253772208498077166432420901271646342384795086011127746417738642038844182014457105123156692029486565676649999204388353699295656773221307006118904161140650422280651552494771809849594166843821523996945107852477427243017655361850279277328567137876109874622799362630094695779024348069687554363840399362757612015011082506239738558482013395727289520829917684423205042036539664956947862077557818177686725354839307024800588260806432251463217064916407039383053924572927957859513670870091989499865818634783697445252158712231177814778122281220068081883239480378577133393651621345750056911032452676805150169944551653991754796707153059159533520232561489372505435710658909172550672302527591183347989031006441910675516410181265627165914506973745718016423004649930409707347264588816182363702010370924923486787430392785945310786437038252647952630185587790052782230257038183359575942516801369575981492731805027379005641902451705785480261583291214599583788209757617132061854169286035309715540051578222823271827458219109637070346290157855944524601906394428136523855785103111777039002885777309249659733013106185823376487748751485258432591057326576197253011398695623000709298806809056281682247182254911505755403321571412026874969356430470263557247165102326846612599219843918330509682584653134210894286014659078504054393321873431014994456710497285520710432601087210823775618540337485885501724157206054542727612837080072068600692313161824770914231696750704172846208225282978927468640261248595268428280921820167706725713577006057001694626339332103182012480654273599358570955958662323542573883083040521006569861668168684960366977020700608161937256946364748920616858658818337709410198615388667176019065601522384575531595864565350950901812494829442128370681113161171878533923691051193959846363888241751479126401167108677481684339321968424973836559527977582096419761629967842862428321705741613932228950208179027186618406376818912438868118617694493783922248334282224242402081192071073462035312682887831773070142596340795096584028889258472891035574041734944142901712780879689530387759877657591260229227440337767951934340868895377789631492702397874921003205869408703186331379476451765722704590916658021222679996226882327400371152885753838502351921961557490967139184509824760601973100620536204283989004973144913689868771648894739833198788198493350298328746182853374363733962990585152720216304790815198803518962061456697739122476319362195668633246832299124008210600744200827440120166589166417868642652892019325551783640154237940282059825673253321499661929603319721825990507054679768993585053101565719105919409840875356576726689586317741156012109445744830392653608601630790921478355495581591322109545072029536151092812945665622071967625368991207923708965842957901092173694531797889542285241824428600236885882978586947918408084539951501812131826982886759021142432191859490241682767993057311801022608617489468557465199965307796451009589539310959417887522734463928023146946437316819985389526344001037783726288404978225592896804895983079880304113879728681005303018824454351041600533621100825937164003001156689101688230422504212116141374074509207375253963925526455141510524122037069687496002231654722259062554271497469204308212738251648286064197167827434494667991995428909224979541291913743167253713712304750828809971898042750382918057888597823542703811772667180412880448515008312674762509551611161484378563279476515071862280166016267770756805935249411046285292967614980063263800879827648649267768381632929097249605763570325322214992424737375796164830219932208348335683337105449758621208311457542291245561276848036222513578211974554488797063524127470723958413524538738005883626515899608876722972158861183254827087495826672089092567262556031324918430095624342983824248182445600591899747213655163945462959498917180805702053890518908776656018054182838141174131540714725206769406432388249437870108053448152658483192512349792941341985468251584598175871627997433959247768526594925012751706626328222231926476346909740405156219243049441818882867432001988582994325839666201408838388043062920056152478361526304505271331471169031078600121000335952574200886668674782421820021869979121694661270405140998218078790373368050066542934206598313958975392118780654644826901770101412828732126952486193096362851986261054438652753452225512756259074939314692084942970874964442203304359630914982804949332849989097013800063333742820377745167342119153430041972072843739449089202073955976492919505887104731005054165693922932614750598327021893783220442974387420883621459795202781308621081650450481339772270712141042972506747762154161042897132875864976560322946211029969955234232105312374345646296410498676241143439694009008126622233539545040553468785342600415585436193042021363080572037859284504647248772605096255268010501604178293913689768115739397264845492171711604977689014537062338659252975626857487694740966035547654289709824460743745391843210508012069388800162849468785720935962573904344175890701093327173631757593216156949026972577962044171411279786552714938515698553998689953879684333681639436099386305595537167359019021097890297006243039114361403110698132003836399118328834685106054597576344799985434597063375292129077525338522361730423244792607471851344567157403651956258923813331291582864543571656362751349543705684572075176587605885000675073908859371372488904536564042860985950579991963017348618678409429461187659097752874640023370338866291579274674480803665798859718293795719880713800096583670096603775891948388548975390961220223328495396814723167347466509653142268006166181237446200058981248904432686068817717230224393858520720736806024792487199720888938843726219409237103887905487674586001121522633988013946088686366560516402398944603188096664031877906203648384333766572120883295777794387714756224668858301780697018843159827241947412446085332094315541724004033327063243016339489591319636102760696670514035102907927619512422975161939501210142091773258410402051685007483955365648538743092180972552308832667766805734294136913372426198787705632305961309193689007063144936183017060578254616495099434705357270347737875674359724900466500427523862040437812809245555410242115248817828862349491635514585691349346709969246168449744950293672641325608011200944675668393099515784490817450829724861509403567378664026614679882152669297901116121647329240623517129328421568848801916557075260393828510729977002642227523461102768484186032650486916310437408371380731321928861047150454737504409527033572458474391093022039268414272663188983449548499120054798158922109825015605806232861699202221068607565022623228291715739753082367827207008892721611170132981790277287216466067382738922557245471846353131107191914542220446656001464694470172190897801247316320849070284964621866669549034454045247620532307102486124752306405271584484919103202062916507778076675305157656235497995029801916055015141061959873040688584826067918103499498816351650572982645470774103402556247110845795023280940206747421111330145781413007923316377530736948380179310354524496709318848375156838927849327231849512020741387259760291786858172145631008889953422225010033328859472293146516533121940922247150987585647578140384887004639777248207064175930223377212012478229274797270631653091965734844129979995750596432144853426626067657199021990928284262618721190254164415767414312700577375567402919744196830885948043955011324148069357610260731262979199923752067943947485362750851567070616758619659957629965259143999109811820561657667248444365730753035818500747635321883641180855133412918394137063253640366350493456016632263988825219472027800424433029513317193997395924940094154446574612761430951852248513264637016909968327709395574769352409210118305968406083989067571114254139147477846194435085545736049643276539734778854113768754515657691121154061044677371484450581244607762891730244422910067278359779303363107927150935805199875952788472090461466571034711616602574481154736673065789112322293860801108732927628926401481421847783313592002535761307108844303206044895062859123982701348357855268339808634391392831435190373930043360359540139608459323211266387438432859330675574164192802915249077734633422060876265231433482727291124243093617307058184004691933603352767547323102467586390421701917852169453416981402424733434633575094258614508702841612177094744151656119203663773783226625282268468692320519320674053371921086432825410128127005668466405663902871374312893558305082369028958692583675096150897666271645588790192721538152040493127442961843194721926924951107521577637422817252113390154462088828021842246689000439558547154178487029509837113270816975144972946000036200054675039076900650800027176014875401294759374752445142878043980572502078288335960172368992619847849476067416719595435885543204048539848723091831298113198820174793171105712604534124159425490974527949347750287866875622352977761718470543470707761311349031355109476494793066970206944691973791906890529179580787616694509547347826173841853807927718576993606450083448588796950659844884769283323143936515150835682900742653956873007524170538907129542825208718133363968339329850743009691059077566431172877997138986241599406817746686499696929188386889212411760750497735711372798564108296999669678726417967833243566460163990725463636158731051529616408990660821020859753195627937576068341882670064505792064458660945618149327545890103408680399091768543367508383881336263969561371844135830207431633974509627364754024056851247791007474268550469538320987959178431277962615074097336904292191178693541691549998136871239538953839485726214399068451492707777351000765190884030592084173634060234063248438815197932504245141975533125186742411009879941014065621115503467754842986457308732360758581184475951893255678556943810124043679027134910063671931243724458394790922775568879254585011129579163091151951727177718315938186623170144088104472040694232540695252165138934612800851440172344707515703332276073640878376559099358325900202384966420617247084008537457567569769736363380104041226258232172072943659442787561846247834871220827531273350894294863765486196899837105419079234810656324709907830987849909306938072099857925934500397273592072327871850262699961495893342851228497575040163239459684496815473654526209895334167309469301756756673729030748187558939788092580216057162469827813446466491228709134309733738914309755153354846027302938446757645800889526949157191826377901927405606287838497368521219525538129797223920547538400411545678002748143854319476670986105952013504021359726290638604484939934820713778387938677792606952005004567436577755039836396868852326673282293449264357992253262551683965358023215459852253852233846211714003183185624359100622669462192994850529239168490811072636805957588297827004154371257745062593165169887027690847154951730368209820065126974948506727270119473592734977066985730818843279211045838654313936799532499568233110454781254653820851423671991333106506653478074982421523964066364739233531909267568670205445302298925892556981354508038898221743807800570972886692865599567090315840690223315450720924829632784271992835593923300334860554584260417865806372499850050458953781991257166692341230983557426275893924142054197954397714498379353936098768556516591033088266708198735974130266879052087653848155235014149419498496824309276771430604556977253592073828151944724934970759822914157325611832803163619464526366680921085491771977053052613600654872935772355292609629506684725768882149674101201570692169133468981955231562702729078865571017709937254126514655402361363875147560463683383963524369282728098356771921688978057806950413488953453275249146362450013521584951106492758858432019806011158545716857583297830633946853968359501870037487044562202163125746339996972990573711273324737385472962768560138355390816673854256337065854000482777774957892887247326104104360450869492858655785253681101557354921961590737966224135658420929793250665646038854531020456115480723921133766748683180401954743314004323261111057374057388023690338001258566851754695738976295060779311999492873103723794818856955992495167949706128849244155179490490761971265250800798326446763770427686769946840085261923571423705456076614586064238144313902726048338661715541997847854697469786932590825248194352355954583030771242825657625424426984993344327118045769060327120833391253681104941429016933419146571754571167977494784372699112353557962806003465192665573795951510963367683148967530913828023288666844306024975053780627466157168778462916519573488064538214153357096412783649127841995932018260626463855550145266679454965372461666396713273894002154903552282657246513629659819357662952725975356794363722751110292270447722675663687907131654473102217669922995808288546558276749539040779568515505626643128644154547316633991702363913359162963128773201439751157957952139945699147309911554314419009817900330564606319278277902499782769097772317010608199210179732785572272331804600012067144159864836867191769015955662884147325367608718841802216154777933006992183414736577097941847702831200320600571190619927193103007074966314378201591983974931288032867530138883455632743674800091567332249220915914322730145206423360653898037314237985976929926780803752472469934073070604190487608134317340713410254749891251748775202706064969718697775322841978878444040895308509098821729230232301958781204109466401024357666774851733724824309465232853161232769588959305199180659257619445732054146100518901187976676293455765643117033170788757576949201905294304939012054230456915180906327371876080090133143990538526370099735143958145129636820943469368570492593447498157233844618328631535360750410541122319612505198040476123548792566656039695910742611611154495142134036390207706015875284236979755835656973774432289970137865774439889353041123731056940526417765759882048132942331099090659171285791702694379023755545243287187384959261103035872969382753840046195623462745972795069957805903197250642960160534903511249054844067062686726533892003773239022401487023961193434890487268165352939765955160516838926856956477509421232976909308554415986836274914208430891720698947758650575751090602007596372143664431658288844932126520553616365974105814869507291882923846009391053356626630711422790245993633430890914833707522112530032414119594608810930859155518893771019064038884999714458936221184229808985832866878006356920044935251554414314078034574920704479391017719938381445989685297282017467059878458359713460528958389514977986421060900930341455668561020911569006668355244487996903304906594953263700418098104529736870757493915146765204065992815708345201770734373507603403805043360392411981442139272140434065901350989005947103760943529500421655558412950986570666123349577603722830091905333386265803618128906246801201357271900309841753049997950926122323457423994946929503669226025944062255897626950384755486621821003366188883650311625418674345993916092071538340186414251167990887137265920673874798904064070571053544554903675406398036069419316172382743244503170821762239275507461459661644621389051511954637190844329491236250421526658095212063731605506834542948272269443313905702208621177035506130571020031016281074073962059648511031304513858111901985705868425708343843866341637227848821965943086714616578855881780167192394566282702090591437157729982412133609080703969361047759327221201033426630627814861778083915601659150675504333907067301391112473416445106354003630506660373740333758519799131980045573907423296413531679693388209301681330276462530395933141349655975715325943460445615414384576000705606401443328818755053834237459265353594379516862764869211239711857548845315645035142281976919584145927302058527095742553043575277796406333991849381660435428134369883502058957836080308100324781414811191102511029637403382045997972714146482412749242789784706719071668372677282031002679003574728490580254897593746374751436866554270344335752029951731503913186539416113397573609071166153968266918680791098856056925468258498571786474879004398955827197823076903432878566550809791272564032446038388272813559860449531986401768107634832859913831562216979459708268624800198452851428733697272384691238547129739835596159903441160046244424015121366495393310452543669848962144618668351591653082853571106328613976878403503850991416148398333281008931436228411922298571379005880282783778501352817484716161981745674439146634929670724132842051187577518897773227283768960662758935475769083231051698921955942979110676172442158987718217608132936534673498762221034207435311866067198581449160980903721274842199710782643071874770414767050101759892747568523020684635546790456991172734883486951658196725041206980674393170805891459280512782269862770535879462646198027937200822234512760062492788730306953425508788620680454916765086177797420417832414625961175125369162287095738847271022805624313018454429243682869081898631028645007935855124462998806765784761447241389729015655375214137148097106107187913006028866192711772506894406630038030944008689273255394068236794465833659071338779084626799514875985753008203581993767182068851250129185858181732074877777211119639291570733272910550282227421711438283025969963088222302190764275532658275356448568584989901260070654600127523247427418737362941928695113001571074359962651049130923290151643501304519152676875860623921142618594700162980444791238265396018563335527390428824963327289417297572635813877858401409937098464747186702559085001415956794654799850961899060765852159219853067078929385568073236877881587913474728260865872164023413589223980860326084591723808786990998145305727197631294533808525855922394894258596039053767755451235678665301388991253037911806183667236787064133441641478188080258287197005386789018213177646720835745099668329363243719117327027655703981829456806203591838936369586264187856859342760096567068449805208314909649119029340549937445924425477314342908333720091092751938593757381306201568292442999803257008412629572464050390899974451474269180855904425419858278790482609711764523158311162417103643968906281557277481038744031727247497964387841389085784171042378938754266662179950233527448739211480128623790536203228602703370997797001705134919480337644770946280782932801355122240584953587241150833764278853482809756122850266614889047426638144590844362222437098400231745229678769962416515186680459853814477828735128049151309021757948577801645853793813070913788491246393589581528004507235307031093875926231954083189545285714724253381455603675908752661340779948729340065511758559115115604570981223139592592148436848385116644678027240998931383839641625645999445168852221274143470148459069250826494527127670231561956148169495452839696263534003682350055840856637131017166388631494310333786407638905168199490045403834257209756489940471792994250252622680049645643185704442316161407831503663056677275138580549461897150253854162963978447302560781039229743154903585832117155969930066526075937493533673190986939616100800724312325955984946254241855215871313956642988467671813034057587088811186846042316831358664408665139116664340312927285968069202394875754853956296615402797494282791965584920733784612005729757399505840697632613029956068484315331115612113702643245828862573150586429823640302816287342339318498964474994227891422812133201832681468992434942786712224738768249046668559002666819143703154894786885079392835419692508304215406667855706349406228607115246620649286438230720943683734438449723835985542405677461147502755144248145863429542502608731166013226871003442932914266020222558883527575193100509379241049341153974721562949646678092386819841099141305347092599666100916313472703238222976542538226656837584072669156060694935025579483567332508722458405886121924524820008124217228234686532441403886328730164260251111627817221722764439217743041172213566999107345683279103972084216801739430883025830206689905378586767720786182445859808495460791982014626927012503799540406974017651062036523658668198306367960614035976774845879204725731437036171258409275960318322380231093704244624502176842526940360358820377397125826541273649443510360677971049147157708066512275770575252736113374569727627781740624787455977040035163357287789532871703409509298111830138282740907956770031560562179752555965234530253468901886234640789022316674578042616588802988698012597366475073760668424261780106699694823143912943909027806541204887295471111922866403114050358278938556761904908637971920065336776503081300518225483242752179159412572753952433804250632517175185089317085126896756312792730444720182190806117317848657656638297471953188904698577271611853532878591629396171339285559884239996708219129842077874532613689764322017497999235004041741067798440734093757177591123564050272817473429457430436654249501219003109927617015982836224692326592190820750804223611252186725573073411810753233350722474893511690586094940437272764101261767284234039502544529510004478419031197591285106105835888531595514743839412532509815724690191254920621218800102253802357903929056289572784038707889940796329037131442898995942872040094110883419862228955928353904175291516603990655573472539051976941038772809857735506336909746208726419455240568613527958026158141830098728956616470185483850958542704966934863350283362774383656644458435184149863077255287101719656849021636202636611190139976454848927712322446309113595261372094343321676990714653724567296738173506992346254501979352390910783181488724500904851997716378842034044330657764308627544375749395243593882449446137287919763562221923098015089306548765511727855812716113619016166921971383610908332064130559355235823566821901713311456092873599954861602610154829025809465890639456227659049556632692823330334813726519989756395126769792553616713713446975107618231046011775867989142465021490400108728976910259596964031359056219077048459833112430479587002194630304954397566304650280169046891139687325857902486765985491261858936639905455325669772155886889090100971858438026559587332357112938047844078500299945021118522350385983165857968047018415115061148457469176886823086808303049980408156416859992464059398261494799758703878090652534317866174667481895659705450557654986942637237709035990334792618047599448232858083660878737125698481607224439020336973203853341808760963909380256743719804518398949654711040303387173611580870014904121285690540275675277576590432713274539931977147368253659134479848683022027010981846215486123054703448245609651301653830380413008265447532503907806248721406534919134934465862631222004509419611885520060350264788051971876513363930399293152443115795355471516022941531785018779766292144257266360305135679084788434009315490073052913842814873109753390100081875713708885948739457954136018112668681512328134213764202128530347959567766774255122973262140098506772398593950110264140283046208378891305879363950339512787105351310756208547288124308083200227261508469147563876052174151313696342318014793916978953683925987552072512106450847700210066132924079566010302368456949406185988054210217924457344308344787751729269172145814946149192317242428155933376186670027332893964194433958741504916287666699578211088478952242536754104527897978318295416320076965737889764329076916501400283242248742076960796899678886866890968988916728622887234465894875873501316590366812900155389529035728127501174817516499153365503109986578221560724013926960756591168584897852873964356503848698445911549323446845445079008031260529072811426665539033287537836736383870319825849304128737079344088053058129478265651820067476989802152160574547289974710876144913952947119979576858451115623709041150794208952976293978183418362330189393868824302247077518680158952205537508364882548253427814557729744232786242334059180175273794090563333682620561414171575372094481526348235795898176163775198717647735922809648024428939608608029495989672922127124762100668804586501140438113800887601915203351698063136167213385535414043112096375853381795949705170633295141641555404976071773265234369031170370981397157145562712357253763359398142309344424847170676099197464404853336852611976016344202039453755917715571063718246292349724934889846764589376633855521201881367655563769543637716025745669707994804834853181480347204754060488460281344219528806348861585895211653039198674805436509493249998960621508985482184704354420771091090766284627648456727194938406354230800165564015648133142642577648779383162251430158253160464581464212710282884693867242789039846040823832433782397499079047715369054819005647676821564345569622025514016141354264220446700172685487603471166341964984864008960747505475231808759150868768766927673278239935858368743105649225814708825367110013790384156023269430845450826555033027833852344519111121704580173031785824282102454509877170522531983773456538461509682483101571568815655932026514172173504534457075105791536603261740837340626935209915795377755330666751252273858493720514008873223089450824757206328465040087326645970387828727433108926748602500511380664861859559805446199175115639194649178006038781292649351555174553506568121150646889060982346712693688402128858252716800360573461964556916453029296173886201227576554576304569406605164133164188398834403577346911442797271729192039248562940545996851050980240833148123300547750778524550543286272220762968866250717244024581261232549538869464425499666894396398673954683087392318809864430944583544447031729974871590623557213983998519264155085148435710663279307222076494700065232407040758384395864092834077068450370911095640134970660627778028559818089173605496603779100316454812438102498238325682231380809336342453185354513658170517943057820700805527916794768914373423260768374135714990259198672667213470776552494866184472783228211043043922706727167621290834772606189027479327106824311946342149438529405537390316326778923906983991189882789851160785443617626542933017557001174288218001954787764316827142068769263729173520129418048191248068301762827993469955653038250137324404797368599229002155683564553453287715150100881664211028623295219364528202560662498564429746353894892817451659162713428412257474230576379349588102712724447301265475333023267532865587999880769871375910844262987444630980976592572629241199287359094529995598895061121034364137704787915404339930429279599852805297175873796174700169335663322737806069676176136687003856061627172736585213940352141481603544099201008998193852992260694780434781900499109833748489555330446762388338635047632146209189200822726593370268943548893342127543256415853598104857333182652496081161115018136808262409963996950756106160609837809120967332099015088391473977717582031167808349842480592351194242066869034682166368180286123644819986385548392094490230044762808642411261328427081501721082108915665092998345083422603316556006971201902163012371771976609282190025677118922304267153268983181147585057416112687315469673604572718326704368965732496420719577148513147271291102006591743130901957411499247396941835422622547370568575630084195990806386134800720195176628803663963244387509376162711256418945959919411425410602049887410522995988603642188134128208473421784634012911376110388439647575795729332402294139403151632346953861077665609501715901607495210852393511638006930096762411536045407821281654367482442803162867981175722507639611429623474145152365533314044329570256950385428399275962057713227458614162676999589559283462737221237742057797686531928874221343396894293612706425821945860473496109890439111537366536182427325022182938082189641399665696465577564451357579169693758730544678246749905108672731339360530980436248714861778409187670956825946906987645273085893056727562457043445002035024293966583837083607557218567551760918520421235236194121404083738881493092181124038285198312193640717296660802774415262189561854132259554294734540928592437408093132627789868535606123217132090727277388210445798567906702540306657519163565208956100884941309930685351033969490675456188538437415477995250566188942193150887867697288752665375533985863664877550413661144475372486775597231007507870112599392808586350275351203708271656500408842300827231550930053304010096228578404901399156253804339030013011164294955365887232227831846282993017794697083737588547088795391213463534740337416875444527681041268790499812823932022541133330729346910740384453864175553104646996039086851017545843058550320898165739045917104075273948059268279982493169322976568838956209589010716342144323853727044567369485448156747951547598859033842473235936100080402998274275079283696569736775343644980876676722574329302784117265223444837932334020745643140927876334439735217436137155728678374078731516316555191949452702972471485051245118287021328467624673181691082374285538768192321535973342552377598567388537830009906071650551302401993847357857125169513323043771381450399892208059394604285330363331590415092865696906788594274373603749319856090016841879678485084711390768971581906316393366739088387802478479256258029879817647231542277425070704547011652704228746580524472953285362678417333365657692329032572049905282436056694766505278949737023683466664136095162825987696654045169463104001577477894819499402254061100584880269085860096887195597959243021886990712620254312725061116311024728932891807787200661453524616314200242844871427415729778811481382239131977987161656128242870856416759718046127652223991624858578386865369114445595338073975370360102582234568190310792184851287981749701528307159919323222654872183252114931053134241975878320367735993373030136630224620009220814927939132828786899764093418782623757167407691421785579678914195517626666514337017425522391364619560565717279592744877858493411556726840318408475993994236062699731417381290234514862105817166085994232651244809846916012768439084743135587530304773468520982255950861818902866414774665851675898574639733819609180058126505902189939555980275843196562378402271924841208583873239926318247161356031097423541589876648217850328063021319832944701445873486898978612253286774792116139885823571767946305844188830119900609325439452552833619306831062535717239906462660218984647936522049744659368568955834039016090431577474112297777396941412968108026901315161893442030864490248672442157765554212312623148967448433700421925019572134606716384628229925253821924402110506109616001675400918169205656940142502100032038809713556877089843187782141379081562579132777987270794726843736939718399725667633416133568867784934045171703883073264081340577395871474945292688281440143465618344441380335344446922260788784827817227032516100733474761207578823618233583962533915177809210326801245871634009842821659622551021284049235882124648414565887955201133716809667698125701695253965784475423247374290433979943022649804027603551654225859005519118173215783991651131306035566816047211198173669362552372004391172621641188781767063308810393996330885472982197328468439450833529305233426139913786965181815372265063398650183567700595836213873643140686550453631599764922706795207276343014365631847406706748348744290987420913859999175353645379916123203676441113318383760813401087105070433710948576527105105986449750775104894661933429552917299071093814526450515955577050392441668094334365506226591516544018422866595573667005547922696929998382244984129237248933420848908863321115465612585390866907275602774847903182164599332157910524245579535158206260112587517526484245161072473221208246985276470717771593681999329268003982676274944520965348964849660790020197387111899062720229646053345080714770386994817594843734234862397933982510629528190889269709057404167711896876886501939117019914507101309998904481434352971319073245934050149455905846810127254186878314980881087867966540635356804060861083232175698493812624998420974624216723513602954259090739330298254145651398128042283096297230629882328568147187907512746042059921206004506863366958028909142359013195552209797253046979102223617246387894324171400277347318634146650011398263505799083162768680007804024049361809667844097935101837773119080114154586470728121436356740939117983507600032176080280532899099508017295230718821126554213338065149891420335565277745271472699018653595796699109161752046715552373119051192789132638636783938202849901352095211757530819412726427031743415332957141860445556171766911312233057197673851260687909885936595318075281622479751826503763999089480589718445771509852175680808168666536378727204833252321685957084862562902474846148846684860864785245326418989235237846404220549845558475459569858264462830657201321402923103088501653618419273952366904445188291925663818934113119502718128693304955865540389725624513920185739074144341310571858306512929420195834837680478318473625755441577637756089194459323580236701692001933303469164885808231447343053106719674492233524480368517690088073920203522079597007344118913627383065559501794646338436305201919101227567932915203876732848714657944583370313653875570336951366383593934467578385168251066435702944517893531625144858953614619943084951826531565424716182961912918143902389657211694499671356986266816312846832248708461741431151008841576255982682318029625016686043075532760718435403680231490657601094513967197814061504181315182819527660438582650726382649622587410249087752251349098752995485703376526553839526081784769692258690333205481574344285015584875272468596837750926814580567677970284063760383928274528017789091667247177436479286264627421574886138055389228207524260519934161724121490070090685473950711029584673425516321295819886899416025355549201670464181616411255123815413522673310139859986370645037589677054616711142575445263192521640623197358603980799546874279419964473957122538980327316399016001414047769715021638817350987340326029902149110784272011100988731246362513451229804790461084293334664304988210020163834657394126239492543189835025229577646341118206241451364622702137236698451386643588643594666173711652602215787925875226106046311362980916510589001921817875613491051166826366348796079991851957103402425822307967949860587656766473290635982621929921207387468182223095292719107642427935225698254099325733110979913706232156464400597867281978107320723491662765023614446447149230493588299253243337773179743578566212052125617476324237239524882314140692579682602305436306283374930938229661204287078739531918881286289818213608319821281164642111880060822485592922056788067872308166333692716535259329948202916325292541379205314755848379196075745052977616394661811340214486734985954790868175167867052616282959339780497806615244943835621453113607671944182553964074761341713496556786073577065641613034178867759938712548290667220618418587806269794189620182102040118955219655227135922107431313758097672657268900168265142487159912340608673419040993497383954860245041891553902932053770625870192771138769588205472575493401606145971112969985448526566137874308575567161639257089109351026035114244858808333019123112241903574130556982338334528258260947192471050748138208903594976636984058743225964152824880026367246746038867581206405430733298349527086212454274885078636418403578563655031683715570768521267601971132028405748130721210282072390681849884486438416131749621044290736272075755072719520790727416942170563890155784883517976631193722765195762056672162406737941489604837716415668664418116368000166454262003909745365029831463683934132685877604266953496179968041543720771473901757811854758486195312192018672333537851396042850591126603768001188319449108490140245012768545883611225760144862358036296594802507788472413170408159271033766686004250991586240064583397513573658195351727795580899019401315238740132444309822662489770874182627779456274457929657998010308461499573884007749728880071235589413903498731262425386488289587871648661553284880613804072851609944929592264253565524706769619230236480356762281480372942667936391628507682582847583320185741750724588394184822490372028922166702466038554639828590210928732305331486008079573959677802926421351873100282615625158387920168402264916110096251374636683158363833450374663285819535774105277839341015817250451165335833668865951092948742530674189648092625801258922164313021329180196197630630307899472666087934125367624292459740122129753408777588180576520446927098993168036547524806680599164999684852786194502805369484632380306469534864307688524787286449020818551533909826271994475727200085638895116947468906923369666712587629993568761883191462720695566041702996144795335521954844692863623385100300410259357404127795944409789109216491542878907764679680400896251895891532379358498932091457211169739336500881479330592252982432271279498786059497933354299480107235742699408520529705051911714844103407556897105255451439871500493206902169216540790688014478137901674116074409672155689383359848200539780252442040933305777952193139784282319942569751245095938632208716902691281038174626926614923356026619879904336412842909992961284025033967262581847157798792790397440224010420529237083301585824185877840129635595050993140859433217312030083802241711245221793251958587715131228369352092635640956686900076478573129382565795045367546148239875480976204464348465413418966896569862386620416701424464956418217707729296540091662891456929556976917669314455082079489131273739065118009691891872501044592573256535281617814707754889288954557460645105009893513139405934397953264330909428006206087602585553733666359041399848260416343564826835392862911219455103994177958283487880812111149719850444393039203293545997707116845160943539820431351500299483585022665275454863065083807638913852106425038597199396889185970804515965216386597599647428042458587111847849772307414343600127336289918328854420839180861987828401814038705315675709985978361521094950382493314186659637993467277688556776454323392883436942963776678258731154547022268199827940020165821315992241538171923707186339470290158588154230340686796788553386713544851590073104780887264260958977734717109526577668808978282618000002677100081382932957217550386055214970361939386349998461608250616378584407213083497962281997323761042411981636747934033027591489119693130784417320642450993576401034675446706244296468531765716116840995968390668979974626179483992528262316251608432332531279844514131031947781591490787468940213169874908652210805798417563725921626500417829377723468512817503461086483169429982815828819856161288162749249313732959481367371206129450533239176564254454432515146688444205823820532055423062255051685472974288064953260832641629416988906675198072017139543339457846289356213459823778603135677439523054616144076264781448254558616534769797598245499956876282650617301023351213006804153728623608155613910699633733291061826518299506604854867554361832005735862119593236257737427880696698949045113664589769760240315534856875504806700800191238104278713695951837495236015426486983752830354600910451216782794004552926609156896356410259469022453759401348520843278241147873485309706955545928233485388903096118252378306620073735988408665647877609669208965561946830447295742704172428919562209597918425154175439995230690338463871979366949570411171774023657358612076574869508423264608498905603486322655340536458905494015575514852970601528172116420019820333779307132665485721306035016816624467377222270595727802302243813797473413411286467472033111348071344695621503404929834246336630256764159518085036235468207389239758775233677626226642168430287390479748167133959132786050207346461506895933474848887872377293801374801047982111372985724710790513105386899925541489896566621695928426563038116522529424442751450838882898643747477505303509785807837258316183501450993673389295968881642362651570269924410370927359898701059673429836989290183723975078299088588519329252167300531627711973773709005875973383739200868968848030054593833001282422396269884598573301093320546729124230702232517221045782678693894786479980257194129015889475376520523039498926065873851057361059147648162591154340348811625788136882817802618650574694030338776751223212080006793113128181177684662005748526317739558094380015836266920610277017657563437396672191052061301541218691627078253326860524077637482076491148491458309060609106274335163824733075087980733363807605803124745002394241063600080146440924718654590061973354526101135699078989519865788752927709838018998199276879530986409741994500495025376894038314688631980580426505737228529984431248158010923256080494519280355561747855099254500435497990829240513910552263983891199529653428477894782982551708375771182662610396213174549294993006856912696202001073164362892676410969148268580810796973838117479501861718638201637718286128840364779377439868070371368931197707302284914663669829077933282378700225419085040968378196522976199459142860728737576312508970656986400677422109270992867882920418761928430676556755098579745110119021758306460752460690834494315353706688394458502564401144318531729057667101100671866538552238606538451496570599425884403176451588952608917117838089774812096770538308986888113120477051503342279279933025717458510291033459376062927061031833377814022137381079142719589115370631136933590719180425021645869925857292895878717119684417741349872168361798756176338972232395302445533831348623060759037697793212313338782089195269671039827646834925185199154257314951188724344940801535378440498744902475097626110692215195014435454622389570904992293528123658868452056537339199692022590205652920063211753971506917940435218072869133441529504030200532846209642023023762573718593215884453216720413026885083179298941595680600452236335624076531584173711934566007622707862012491013754703546760447256830022872209457790102271967088143773125911472064896315294271450092153118257904349574935708031416475355234905778062107138973178811922441588327140573196645588570311437366720401449690466380222130785551107398002437213726025785915493586976515881352047185209679166573684346864671742665327609570538444696441980111601858645483681306925531555698999046532304099806934897018876474087705550627078456261468760126496811108529238645341613764822101076428946642065485551571031479825437620025990771097988978882037739298706258445012122161261736289225314105291902138635693964040523563025404864566086294892798494633533753449799746715094788275988935667407410456814420819468235324141535670747590454856077082025099126085906716717933257079790836673916865461557593908528919617314469966631836772788735962501816855219657563982590004507445486233097602818738677513818948334199090829928274563850228901621668613304881299680424986517077058795193278975285937964147349276218154553605336569832108633708824232755463354676437706575781798321995077093723289275734740959393396944354998128926371101854888475727991969992363944271983374368188024149720371614293009971643116096673634504167354690862205261189832468440135569304245898058013945852051114650411244416382115794667673731489172732706682264263249741829552957158188060664495214369257826548458156622347787999878134454645561645490835590159412563793724511519688133830427102772138411326750895375016871026738139834911390510212669742357251001310962912367406034475944749511152098214409907019675794714465526979528676358621429690979006659142222220119950466507976087670867335489526596590085538906934396022454042406476102004782300547762983292445810283609705516388115122470335349645108496206997954483093665895618107747186598380801280042410212726781526059672161881853262195446678426245232136343886277068237043618967914951453372697636008086300691436770495293418537434392203139356609975202197414374677057040764490471876377431208722806191617845848483835507585175616661372166726177392170082735698521574967763952868198178664757207351067944987125106515634898734991139670571336661950039103783699988908101599044001368834427067012035152922844911581872924915564753067748544103629554459891703255648479567967565877774613308673449337976060234802988081159126776517797595227432304023160296119387896218429131737864379433777343209257971422435053057346846418742756789852101283556058627418152271444613690563780570221530310231724853605388946387127274027899122782197683758405365976524888950292217225832542147360262525087493325400440852703172878739325149703015110288857068265845325068677880060754860254954893743985239070117307191073625980068980531936425469605858197979824235815938407878959950811697631814373554489952260500223854711531818654604303009677544479268537908039485270946060524224239899766041917685424933568130511708280636880050466737958213518761113974559338287587253098278001054701429862362513327000441269005896823130704901994055877087442097255775888907214579511731810438479774608957446749655041784912990980615535532977614783628718088522677119941556793292370766934769076573649873591611901675373464444051189216920523336315399824762770224356832441139226113483679030357210036548443936143976923320741565860218992187093665294749442706878926305937136816022731470045043337887171885088560043575685535159178207743192931724185501474041024788599860641965048473484275850582801018147321135476937196102219454009691814034083751004434350272656974586834005818208832481643816603513761902807280731992296329510110665430697929428619609057754889260989103837160101242328656254351208900345318527736693631913989719050661152308895808423889168352058929053924365256281740839112363908538893046532141499684448576551073587108564889875655328891226839014749654000980122116510108395915236295268463497149253780962391778294319179497658755832852171424989253160505711217639030963605873219695295975279658658423020599736601140663267438086976983694558317915535469555093090976916864880940830016196361740785065912350146581314804650103503482635525976263095132202986104510417217068735637855441443941549711514498831120210043269195634458439024647610285555601537889895872310903337340412000387994787436689446417778466917459716489171132088435514718671271643168355572997288295010272413591606500408841397886864537813485920341224851821571894231083929608169235306696244632361433888414102911060834215399967296319216651765564222363017961225996108446539323106847442803926838208310923478035880553191206683841274423710261875835333169456213185148873733359346077712480638665221526502410311481025109415852613973359505169034215673764958807522308781929607664405685422991529916427825299750245454343782145892152845092801584994405984036092221514470053903128027788928352204867454250604961117565765517253982808960780466879042187609112052435064041256565004007123101764426525648926194470983209077586486413107379165165448977001085425258409341216319793915033611895046072651082853899182033388286008641297780072704105167137574404841880703695719324741261468050757107211838989203686449003862608901407069089360477168380806424259896098283950113976241487313402722532498642601192153373441059098304407644594219996124184396412398371694046103425260412083865247658874368461600625143505788888936153801220486199249375267376590561527161205635505454293742047434525434315800758910979041699792023704603530756977775649176025847554011826691999888994652426450995960549814598529909212650496731345952443620482730184893627443510914792479085589869916546577279706711375305094443042887718421033886249409362280142864592455368509273308844269028232474180122288001405928432139416190102647491839438831259947713499616241197465725326411387900820620736113009298546104848851332735464872892009419653433743510699066397710511626467773028230446487952505051889501166441183837799691023371276064802671096522354653837644052703000343900007524338573537297490806243402960721977663528277413644694524365482002454460603260499929182442954973141905602550082081815952515867639403240193874476205189912528556807385046169679804365478377056736568624242033066851153090996813602394090139457547601912136926315021663475287534979233001143710098543644123572987618776547942657504758581850127850829955444780350711080066272718977809701485615779415781360374403901733269144950590465938453513878683982710938447119032321956553652902092939698853239494656125262748235595306958501833966551716568086078043173901818734643128055629618123687564354617840259472122696182186973383473055530746433901550428007531597857898463880338890952347069114412826564777353783467404813249133368743869029094428629970072443026571314395821600984826051869037354107505850986475074347115026194677612329174622367399241609259327655439609868720947874461729744410909792098677432780491930361292785440925052865427411414285505177498852607464084159841317505435085335929874014652390075740784465060574971743830290209136553037867180017565416121647431492425799102853215608031250626333080864039620855380989894931414514289287837356790064009405261209788742075566641585046343594768514902644366237297819080322288338163478672584044869264665013022773075568635996401510065502347482289539302499857974594738543524259256288379268651969338451713689005236293252691414922405481398630437717426745962675941757355418333910296639786838348114511163131061989591679318456441790148517542599611251273120732884812005092900243405525835714123330537528022875905467764756022678865834145359649037953923233284060508470142291046543363511659707357588628085898499892737228000135726181533937881014535975081103868787677013190731336232908052019011835772623103010614717701717781504083784293146852119536742213052272111984375707762242644820358820829807361183100621829889964199667506810382552012388306568591985868345069174135954227060813235664417848359435250044986556208988934426457313359932364816342010001100696129057303391636193831456264695830403277949023887899924982417512472226208097892747389410420959073080901843799808622344074430029403617753436290419325046611156937508233499741214668181990220474511938841776156113378627299108627930508627443023054229576470662191926619685627509135222960308421308475466472723164596611707378154166526210961887601599059405594647404667107278206091062422669930260238110976322709299349027349225369396934429871769547818645044487001924696544198796180911108460901039736546552890338586507000220751591067620827520250165094783299678585352792034705304027233338032947856933776259908456459883378864502036874809690602627791967030409143892376309866934474610429811446539218647785543140228293326127120729980626329746609977340709470019241728562359393531263998825557402618053272169072768354960953525132261386303502809673862501523054806587769955977125168425418369086793800037049744231809558528926892450043261806272496148036067722539500843595179435771508450627952443591783903388022641728753793460494570468286735181209864923698293179049967895963587502131438785840239972088258941498178079487214509585038907219696003668731530677736955763172036641929765212759930400410759204890810833642026556076039947317947346022603692544609054098214024259786434186678181786280033808805450375178266575350491290916624505605473289798799247814891086789253034424647333743188539642306398850537164761962769836327634407190960635080052929469525216213650526750346264071333687590182783502984242607025272112743587853525132377890310609276208726115406926469234152296216236988425512010027191344687317208933477283176374425606767607710855778542984357505684200108810084872508956783661789670549723955368314408550250864210096222772368549823154586747342160339418772090292105280095052826239678641818682064957496163936451761211171659127449599258913278369188556237167418710850836420042613599560154142727938912751588432935572563034364296703916628977191974319102837019309108502921136280674218381050354345643642106722146204567295047403060123104131697465892319395408177483985015509610939043483955869182995237362148088774472547762379463459978231552535216306585836228088482572595426115501578829621739639613364080168132439400293532397861108883892687787263928755281548875258901204898484804954663403363502696299042290210129016303877270505496155000703207824726668115064188399321341732421781589392189812208871085978900213693299017028520035031713635855765897971525633235871754565501685103505666232264429237187193058896934114167829473279841399674715682516376082187123957141811945907305154599399424926957791314575580304467732358115485507608325844849261606103960554904502483405724385085696137205880230620901011553458182465111359472314297428123337370254917366566570244940250884800558178517010550786899842508097009267886852209578121548358289573988493721770732029128471798312628326557620467422442541200302108466906738795240032834396917639458010935784955159562980490998382825717564259580574348920195858008346085543776385967667776427203243425647140681905101998269725089745142687026618566152062406575606714689232528869806089703414326951695018604499776871717591435763618851297416300753385747128517430585265644687686149401592451102455355284299845886064503758876856109586968374769308212426869749693015449526936294844288594352408713627023582575151105500582640955876126204980217912431235997502880164483369627762377800237816718759727214894271370217679605752791975817886330444307900634298305373327326054150442319947053357792055534005388330144803538600062766161601969773920322266546821524995907207953402004501221253161683447718797519996849465905955707339803044085898860164354719963195044685497226377122752011146180201627507272472534430489271693831412398628637452506219451640153579253671974254774032662863343170926089072424894576122297490742417860072518561259130026147995598032743298330570439500644764376650752777002387834539929438648870794166608031886013331379834773293313749509863700304561186922881513195302150924884822198026557428575478262183609373418500240841175062745826329912141632657564435635691964108196801570609270336767958236052175153423793525424906357841646076059903787780422917858768096862639406484584196107618210302851337750754611906938699122507242770549363436005040409926881275849376407999888038694561922622642788881451208343931932925109370456779056425322304468626930051944218934044288811638909240509128952042205665323205826334850671453625175402161325036879270149497501402555945157106441044395933017603824024246725713147527538852890316385754550445921677852381837362872764987196869440363514422471349525503448673647311674536289790932268792894838221680624575725761310548756959937546657067346086823947523592258896460111537815914258076872887549923947641174717043547734216496035216467591059794575990747899398168519310812950283908917367637351762185751633900045713540876652559374678228787828319089639572351582006560041866198249994337867953962726095735601206835137410246364858646855759597418039352248214165462749310140296349339060716688622458347232980752582570796987294927161770246565107416703041972871857557865184253753437695632590275132994110060984122149924449399240470387807739345151216900641053150124411226378504616440303417005058315971744070586786681525191147316756836061392531085017746420806020104955366448082268581678721678752489726259156448800423329586678888247787609155699591898480330755086587683019012390080420093310926344281440165719402729745618257320537670347671090634086495743920560535956264514613547204124708538466563585646484348410008505959251884852669477147493290769631411581105621304240987871388618808882655024977026250067430220789904764547921106624191269152717101271528371331366313657213587524978184049269394884899083899875151036299801864860736689151803990349723924655512834188943526137760172890964097851422871537433166156889411490101982051649012309379852527382051874016051999897113698836581024618565636405497095539384452279129676391956779913405047293228905934461407980880605869026703449576049675302416545804180825942557025402733540241991017150895082250067914768546217279917972560245953205290609697798186335188430733463858754382562577477811529266991180561805733136029428547696111738828140146699035635607968440294151024782094964845585988554955641719415594318345107764609685470414949317216002888152692927327890466594644512468491240120930712265140112569408714363353233377493939609797092961697030834746249774430988250702427940746879715491766129513347330977651545873207278744300395379368009535057154982710290226512502518897238638389534434429910979833245859803413108025876245425061703975328752491288661918189552594494509587173935317843153753698582477772429925348363152168537971063069335643382954615515881609673976325551575815311755875899690754117694211051519573464156406222728785388493919392865424791380933112269536529474113294050294631395789230846415355403809700511466895912854068189281518408870281434746205092433934010417624514756280010010078914619970718297385505458782120758952533343245034958391777911253116314187240123829625296941235790268658672483969245190234116802533978129783305288273358063033051273501323170827241865148351501776187922049028270666387260615838772012591245654371233627647048659635128112472538533026590059443144878218487691775625090858769470845114000054281319330268194272057087127601840371116005483297307585380601920229188019947354206368994065338233558423096985546432010879202256083282720622337084442223754626724846929538872375652922077862307287187003371796007638258204307736166975110802758139584239620968694752754690516403632276178433035648309844507613695435340435045098306383291940915347030803379890062157701139008409584708791312473005998300931281837973891675266808716641294110515007144448245555999490891310877990500522274784189638038361486620674563692754360669773644774560230253172635402360845176255278747240607683059289567719710172289782186574403895473728532991062704811725646596058626557217993219147044357249353650907781008030236882642544402341475422742988177377394965506590931979366387432183234464171027591901241368994354218529112018375050468559204967810697314762061652427424032591898084344737453744086002291639687942404590626465834943943180870460169699902038046821727400407663093985584935479459757696372841505304125258715108712423211047025061543459917916401446358870092873803495849957797067858105094868710655497745879416262493295084729027857466783204243162212524492009494676456778192229380390014573861159002226859650837896802270204521933819418215907666167487336531641978335059933337082944212186184046811187982223345316646075309863531307948395884296994190174373377613117661663136289513450698797108129796410770896883815231098446270995859285850029921596609738104601844545215292252264171981342685045332205729780680421426246820590439455569207116454696726839584228540267742161392420955076201224757594550212987962240872405796026746865675481694710170348264208433490567132330789988649869740497822267717238364689397867452597315096078645251596699370686186476528178883495648029565774677283628917989403871049952807539598184985608302573974387593936366039174081169919834547891228992410950923999795714920054668090413699294247968631502451112340948734599286402256445988204687740622795414101557664703335538629435642709101382589621891635375086438431465561163803415242985306907273149784924693844408075143618688757235210212839003002891440901257412454540542412710140688359781944137675831030736357491161008098719738527576123241628889611367189765679865468197990908127104437547945842497703753221829991660737318366222629531700812830346209150449108835183923799180156047628423715994172521651318913972067032408678967931368565143094033587041717536843416562192924905937941251268966976411410771212449393524931362263788846269715728509095723880200233257549583537801482123050599166165708228403110263813873521797284279274115078626087902910845018457551640993803364527162629171064064510906596578641130677609211349018855449844509860970821400483627737085692486928402208937491121844311359044157687188590774008011467053899997808610615050935411481072633430727196310173605747437410604018836971204093522634644014687428895011366190552321600294387888295835439822739593726414827142607465958382768836053658112972131229117978772981746936640984743515144768164634706388835240651454721392672005479630854461019685662151258335990011233984956306222557541929800268849898939775010795808441754343114092358856651223065889019881080994560836752505969472214903929771924659602118663054117767725224532909507666348328525964686431152369063295809498046024095582142444960959583964482304889417368095897132768707805376736109969818934269842878210967275435513637876799547259915459427575586895606054921845339085514644172552181191807817442310596885390447654339215426696412566744752682302389433958675897957238212375907148446865388743602355585638827752549443023471235746634882611909595211409402414881561581360154358941623188007716334549355304042613809047668778351374087302305706902344623020988877290702919325276343263495355812074098703785304992986780797932266431125979424688582245908139258021043574534584576376673471894488348844738028858285689112246277728026006577026124741467838334982459472219141545475043377072972987094410451480904380379050579069096016062980287613277867281082741442724899348952074368771369794474256162954350621843448504346927675269743734367225163810972601986031323436216298754111053777597951231959956034057300237280685159109306956373268034815765776411358714113273724900063237111320681749367130027050690111854851240878522245935193896443312650606793150102160673511056217079157671458402288046773210676053645592612017946226350136868449306573311508087340255887628908406960973710397458356679819691206266385056534541543446272737109585705486406511548344903703219397277734805962031569800232708266237444249931958568574075234759114459404686241529487568241228861813637250990432754982709354888397503547163095359172599376486739238529400532543249263651007710421971251207936627000329757411947725207631611252972583765813152308995654654250331820087940246631946592710568728735771346727199936196653838260303593689062136019325460190975446733508246424185674430512589491984386124950793161874739866865368692725302168579722844552069539595123225777793703637367189996633315540889266324076334354586204800633207843913473805687955289368321498677900961762713287990895934632231556358261411314753574961586201652166402406989036167621824638383438692967391787332140192450604845186328669279200715764492083506414107830062070263999033763955972369336907224472623705152723390407631404334334449406915849186447820918094666809304416627233723875568975088454059135829891375890335421651786322457044891041443191806555967978464352912216698965425208905208850959094223161746919646340098001944649698698024147552807999548182992942632347215100554754097204779996955416848738606908292495416518862923285037121954966311708726286834598290041628265620836472580637232182187454022509503114203748812098169453403880879827267456230706314996726062012650714419713372403947498630013305789958186286681670585490432417545877724123630864974865168222864533571427336412697707698304714026436615367357779783428083817733648496536410326267208346299012023160204567612151524889328594791957305188536403428052959320741809505672754986860699756049731431519580016985295632011313686501028771506007018134679708871948346982826652542622227890722171789911830338425921299216017821232152157723141596599626057027760868186412820804052307955318560742471385046336493580407153741802605957389216272942833972213743267805035000920621689295272576715822862101721980469152248850341396624101039867399479024081525660566348915217865491264820395842665062357494318811564998461567254702164244105706895698953059267922969977013999325527384870382210850649389826291818023255066705672404264811390575316795488301294805216072554796178692705019710489105679239891426011785566311064863418683891857078038990810069811349837760999602624744894774669979897978222977494407187536124791492224927805943549503121388628475178719763177341481179806473300116673654210347997067095410712030313643192666575352901724373741697812747957492257326220985447511429228242626965466579336968264075818751308889930312713289541347905034933219241499067830509056855192722062323592408882678346770673831010171746102718500901394980327907966322879569875294785314753419462255093708686989431835000633808762588894062422311714330154277800170308896255362497431986435003054353841269085323106160768710885400841036408470222301919583845411266278442623800665686419273873261363054562672292068892914738295572883958845844125940379466030240468584869208801733277554103288150823455714393926523642917914113745628264908369279443731844747024280448047614830143013304486111704282609485740370254029423832896663521299755523703007431064005951864724821438285692146519847551587872025028030857409602296155266882339508965868970524970812847642495025141775035605346580297487685033883442992490492119560681627279269565712508806546856238979208943112331934462584888035857192560377357358037743201149221338280107166470061787052317298392496001047994037702971313026116444890400813120871186591255700875268372997088267556699377364033197945955042783474589539011852519751957543429377119762739586538953374891480026149535785902237876895393669606883609994940276928303798842321880250415969723059353578568419835594597779185947540164928707641925072124285868496593713167852319453958280730310899594038855906961974644470378580868838235280336734338787662183353159122464957138668523720659593326229581192138244357911190643446238478622383781496339566779466643748722615893700845419059420446145232859259385259337610866082361280733819824632068174862581721483842116606507547076416654085196998096198024288587813975076317416070989353231176652214060881716858794735196264908242280635008317820888139129757526736934649522778658952956327535273722391504144965148422786598537073795957505860871627258531199925341991743668735394083442874958042900459053621539973713000597113812116884218174965405667642979828690207295826901974049595632796403419855070164325262132871214698743591480705712926956175001870277194571216622198116511968493465690390813204469467593746159346377980255827124368659482496660222218531203107771061905760790255480769312144892473308491217224662332399815873186352838092126027304617031439389492411743903705241171528794114739167659391122288515162885401806664386370280572119560363959039158787111542553781501469833778692196756698916858381496787670343570954645756950265719886215763419428256653380300676402107729480731143440934241012881071183131963408078543548316657266715669089261336861937047461918398146183784828332542941826945287177678485926561972311624404206270593552745391614406599637274699397365880380335352694526500190755945873399540476012619525335435602773986678459606302859202639090907856121629106541999407108597731827928681140201993598562630206212287530171113063203379109866023063040976846498073700799366519185830610852354146355082267297873902362462227297420392076367068971091948371515953650427942936905123544112904368760462574189835384321583567698280384584346401595266868102585542253441873481875220682536200030851017022494645946641807892285193388088981956996069095011877243022743446668374973854171498613733795855248087987376329010712433453446167697304230587998103291524280732242282479345494956777915163860622800644727559278957561086003632079240215978333815928395514336046590794062682425168627225561301935199702798547490992169830425639689939574554936965160595073040451623249555241721834176692681560602077219821219811170323502738226259144227463206866740333107710885642204910311856838974709737513667907535231192967651106775253862594481963095649852969397060415717454682216937513620534138997450084641123927740754082262987051036614211044693051823801221486110793479782380353350713894532414673748336033249523326933479971498115110331380194733897484205207160014808853137789528430106389901974013791177766304106156971802480082225807178207247062590648381339725229663923875867608392820859633542384059695034455488364412152311992469692771001724322828241389263134904210917651797386514293108372522735115835277421601009110232412195570699618524530007051811086466508357699103990776952668696279230638331847079422680443437358969081962909351857560794328536822435357183384674583308402036965242638560318452085701170126973986546163024665747617502892834436968891222887109433077502886502784715240350024119018718399898936810910503941854771885397392471454996198512233124676948467541020675921597816348367225275774352035242434743993455446865930912089381519473029219238930744057573035781549025373177747243283924341767113962589557460034849177190618483439470539558163351751931268561683450464465700935506693290122175466068817894999577822033217102011046003621239283048636210514300530564311389743713167427345559225074919373815826451431489918439583913305610625235681609856544657797419459355565245865358786121279478591343769907225758344397386838772492990349125664592136578454657379071262264809389753785099627745496341477451966291717829527601377831606270672981789668335113691753160888416820104556132210415993558024801561728726698977538060631966590557730265801682422386486357588343965585498000549037424719760854962851597058802440476216509203157303589247882697355666456530983893955879812486940398589832014301786560036766045483408489025123082374883307861610463751902498801823923513463143777830074550147581432467682260123617520791057841246720384564455498956020986298634805044971674897863093723432702787010444762281967711743677730080846563920361234041246620290725697188193031004693875316577170811866610339841392759126744410187242131125468148261064782093711513723187781349433021399791196671359518493678201383844620261346015907209854495881759262070137170358382603206526674198444772964020982257487556807158707950990800322802020978284395697513052775541413405040103484543772282363132612936133438352790170168434713110214674356952258520297551720567580650045237827709726506443554840925965891097647611790816075001009327285178756037840213641024455902885997324130902826989827820254271571610862237321901640251239790135767395391766617322893988523257447903579716925440380713596990664704923168832469346767643657396371017375397488923422474953820650853208723388572097222520134941042649452135440758253884258920162097695651159635449738822269099860197030282555842051773031603577190073481636603883824349283058733813446938288709160766103344774076069654119849956366082335392904897044453948343408936087099461505732249743436299777093349870550111482940134359140024141414755601057375236439082028980037184243599520047593519512610651647437866924156498689838277166891790395964505326577172893911977639424737408203584908703234110294951295640498634830382661395661752183575602837196928275581248589083631174321204625660599145427850065739308918800044370159320561341616858101335875002832209968059279533380325190429222430335010211350520923121794023362902262805155970837779371528740010667884268512800353836465432427148099729109891290473620238038507129366107519448033085538359149700679788730982974319468303447867663298198617660111644979612791771154888341227230363266207485468355586542786097632120418349837858133479813699464857714688728592301563648506422772116433240557204172440579506956693576302987905620561394940240869707498591972529170115406515404934207554473825567880461831712210068881314652994910294996234444605342077008922283647508681892680077959195998097095249684189433306868499916717857062104314917928192675009411372690492436338379345152876592288869724304997328350719655109185877634000721652102106292060098337819617854480357341994546453541134336880479367164504918878413225523666976438574142504125997513671101167682514093725714948492544649551736577234535143450580307903700898688380831992411895315489763592079152690426742322505928492845403725715402283686919788629925025775320741823078076797976102204911849659130452108480799142250698730494371105759386612472067159509411009060858339598905301230466327865791087955255270125785179648900063144615709967175164598094276555424998865584792820488812390723226021418647495798721887507422227556007018773224035363871987331659843864585192048323675834973779948966987554560455738569251424928347604334505076472484130827649616628815470688260249243036588751740748112689813195145639816664936390154501913129395310651675808972628813073780953846094231099606588819068020819027350166232117718397154123160102095685785628279467291905975007831212151739014304684064946692964257060797965891025158318919227912975943410110808429605600892688183496746443536904241535268677670263852136116674560196110483414329925469388648410143095659648880908485414700963775164495630891158737838462890858367222692455135799221483896603958382200763410290972814065966024480030049520923758802279252600557227114464259313402597657042032049161624346413424967443646477992866269562103631509162010299721902383103693890406036090668427932733203854636606912928063375458223730855427217879156658722418751068022996239635716073442352539852267930683569520429073178875774216137516737444170764895272958764540312965639087381385016688266434051043931231821852866463113327233350540568379651552600392846709671012628972842281714926013294153377546607938613432921228970030960516953410333604389858091372767382112731421192969888671584641820244239559526433362096870717463907209750040789618347896375708013296519874411452040779657156300215149131800946906622412308634890958620928174498664190468121595484697189895158401035515378428008223052672129203001638486636275588614171388910506850169505335836430727702002782637430602239512434922699789272160400006228932728403874626100353750590161543448066600485144623524458882289373614392716450709865279281784814358967905265005509079049834310070188531595298605333954260855130707170254988621799908492739221397021109741437653649303170638259677403166291015867307459233579348569618634170055415622967996112343777576467461729438611464460502574706577341372786575330725114540928743892597153710932826268631499394676623019769348314004866620686372544176574243366937052873893807638263034439217979180935559447735091999978264262902187550412787352268102920980588240011529984434330139879228324663817746211916181796903688929961333123058932674783134438522084637808215468663809803542094297004907122371812733295503271167853216270544127773907738152650570111502914221221695450726834627767282416671770441231953428075624207278924960749225533400680407386331054515871394818729646131836429652055531927554493673414636211454992841420741799182735620252731683681593900793493396554211380932292967972500501632551592085948137744993314611315566870796182227067704046874551097883878023527616394858368515620365966657587584610994873276048668704853354544375626392477279924052011204964374347528577471012273121629185980834429906189962185533900414272695650667170656864117355389392446011323392782626707682684788286712244271405474218328746919160386684062093289712621831833839694508309400952064015759086520407795975886287642927998327173483238701628543235257892191021107743303490007610650061250524092117276597378852965063772984084882204849995954737592668224867525386602748790687174943724449268298320708683937091728438785505019223562634577784899684992897443210869292139830334977029113522954623337289947666080119637539107373461598713234072849945075718531879631107903473638453145763775330367491231039261288718739616716313002062558309494529240987719821418097821316867646495383206935270187394407429817773324450700687161133215576876536304604342709929801482123909465496039161904658071295446903840433650684504514858444739810870523305150964256888109749239948760208231189267704803313848937870116967688567278191519388060785737446279619613010408998741722074942786388663055390266178452253383519301686357528487947145334994300164015073143061976331456771451854667151130566621802758081443226377768145484670909489872533457651130673641031904817153783245840302945870494989382422595879854203598229289148962344708935454774616509725420372011640357766043226571680485361543980499777589934609029991490230168159594440308272666296120949263878455924844282498178720778890582604484264493887015393260407053010695061767167131210604541021841742194858870159678571011240341140001771792061847104983465331964489148418514324542591899206029032102911874838399166179900583561678935448875581881602723418031360209158606116568924846371614973474000374149242895034578307912306102153022963352827590790288212975198429516364198926973268352393343722603158004035634637003239836987315794184440820513489932436822664262076224436864256028548812525420740332481918993065780426677759404018931237722080102267121417147976842165730458744044546944388946764541701227358558628742701008947250462637207953930458505836230094496869873897850367685893418479109509298001543150779445748691826221697549640595132980865634843861390596171891766136460279437210342047416394906159029926940438042339777928138223497401551867577121397343165856196493830894498899550440046232595751203342387505075163567986485200483120198487181638777265698419595224481962448886879263704624553441129597259482088153464426419706859898036583058019620813540848265897700468758321531351801122981561390338478614069803784423650240256957794383220970101691148874851866081986208530759611859380871053106792192189464002680472829920132441401179573525925907755426847278757055400386870290226575351764600455036889867085981080332468863105650290889827412449537345575510626098571436641579765054600036205859511882116541916017697396813262760634920146960144004542665173622068407618699395110006043842362229525571260823162828742376638578445189757602727668338792928447996123915643021088746876063196848062851733159451704364130317252609351458568074298252860767503208221323432195802582905776295810761709973892665797772709382487895154561914494705982987232367723841847671778014403150243757217165573369640942205591638725648711401936297099531547335736782427264486148667375034445610280450836001864661328441135682263578137866824862845940070685078290987659226628217603777627881102438055163122401291692114973612437697219485062782786160654568594509970263174142581256086773422209565380930723516473378680790045198361744219373169934033840612012188600552443573648723819151734150023575745872420806858871261074707043486472921709923223937711260657610730222039715556932284319848954247683820565845752680720029960608508185432769009549180705313091249290165416488423269360880147694965988368104324177093664777019115656011990802234827194634277400050260380653019140505206588562043749840958551674103794019540329105661634001395218872927113574720065026384698567869406048884202927740749590492837034937852250194733480212725815634016346277622326094794259995474272305263369920624873911251361192571111903309565229120984391915842711075383413554473952610771020750127254812710701224336575987815964863943428587993105683822906885838890738253969427570968384370751482236623139487525744880768812535663301638913025078457826413173960197124471537039166414537919274437120449032248655812300827129746665851726921726782978250033540419721190318601930699905617112667185974742480371988982820910225138921498827450916309001925674672802714752593650030093258703326139854419810611965680486828044005891475673003966200282062590423799790284750038225275735852550772938455879798573934902787380691461744253129267177450362819245795391907553194260734944531678347690921447245363500015201797137197321702045324080789711556250554552128014239252089136795587357947992973874023472185507981343930290223034330022947455876892514751343541242495823414094280776393580387769910328137378862142154384198224897537231076439493094451855598201381975202857132682694988201464027673213967603719213895428832795324021388010862613014456078872256731768675563016862129772795937150449682607289087557258265952134309499868254890024235830237001781453613788775128100775568574844697807936197059627578296396684119405085828038241421018629188086940588171947371804557299146906777632193529723958666640685417405626825802633917186278382337944172120437403142345779954301379762741004344485800668951015392058530452664867718922634598165296469592575538163681032088727831450021941974396015594482939153186814080276670818158930252812200631505748359286749991057527976040480877437134997172198632707319458431357900589174811650652377718090506658438322974221571290621399428497369675288396744147387717427532052392456879455573811924385870553056004724585546280977756806685102437229423672362079910629965208450713517473877651290163878806955778639398688740119106879668898829499685813298514176664082887655097750660588715498254399616735089785930457987167322125666457877944720977582430149598336828049945374678684593773895076985362486221739441558012769473085923672559033233689070861857606863913105579071215186704477731151544883641887918541745502674578231133643371360601528045565969917041676222668362883453985236215870573068476311766173717940811482393691869812297150205644796173568002714557746704050603541506777915354075939993981351183614927731185016104889261223681881982810947585036121274348317954732846373795857209675442179871148270971082037873364793348457485106985722436921139472798942813168352786448879464342825440384981376979328740724223055369632573887065872051280647776544121029862706592121706400962392771673060050165600536276723485699892156858655454454266364077060192946005666143817239289199577187753634020603279836800117245471672632177233188421021054873890972228486105000880749118193582613504009036838039353247886001487821361289975999106616269073267399080959903062267679175154636929059122387807873783751247071152464971608115321925204696321016204637128998983640032138739847043324288777691485258679014283825333987752051728274139583020846925395946872395395196456373000924665296267886619301646481741608936166500147910645675242471543818042364486998630753518688291483958909857804145885581673480560062505257215716779234494220779114856894787830983631211265508689969107022595692210978133246655497880776727167318778220110933391566439776643392500932485362832480552796119438887456067038887504397949187932131104547013943865017668796460031594962873542708287473497616580479206268235639751679114422925654358001531301481628807256756394804043090529173868142740104505921515032704565225851580689513968464578877719563400367396550865147677981867938950810095770465238288523832961797301590283276772212055575439860229642180280833754285146013049171419041387824219569540898984906251294808714364161451197503922117518065474056001492695477626743508674321699873787227119603926916042217770297986485368964620193315632708291743284593923366017746545732406375866610220863499042774521715891528474886131898915131860170320290783202837093374004024084424495974425328763860648986318110068039618630681011554222410453721449029863823902183573622212169284423589025732215034447952396412872861992846852494444562066207890944568802126815349092541345727825222034451814502193271402187505992139346028512223036637045470666767323367407295860636667336927139130352871459216511125673470091292685729212300401569436620596903435054055391767021556371917691716204392985067780002837571101176546067810068410450709054012516345346551215120474311272723146350479595880574166579363798738934923447349202644449647674167225243645729211398886910865052551132715995269002912425941972567425017719948666686350445703432759515376972246680614189925027942751681079816038496383713091984654647783241441154780970410601051773099330299216549657969791989301963632674977181001413024897416127820262791392083421033452582808446299894343626099351667744657790526257147411739166846302796828302098878986509779153759560892831164268310835255699142250819331270691433467206750187470465410532374020968376949352872218710979662137882441430964697055296325810029344404584450244953269220644238147462614220583958283380934240559973767736862960999544797933549224801297859059185169848796605761610383826318883489375874516750594173889550925626260879431638388207352554679179927806340845005700555473813416806278263380786150783706841854841074060403367680286906962700228039232781854177447647256811627185051936084601413314527727418375545093844985095304040059023293944542508474636485836461468042642804284912005774226816648615052618122234914706444031513751968772909195987492170864648399999931333953016740330194552272987302651476456044383506482147737096476083138118758722441287326437482980173782013445785035024390574379773632673486742972306832581159370837763243266459827686826811653325848977619794724691441279614046970882254268378596970888221473197508077851525478696457894805252870188662764257312131162236840514519525271913669590025649554405041721486818775526641024063603152571714770854179908880058374136264995096454004303685256235869756816508621030008868192244834561446333608540957630046804457546439049198682428718014394976646465425055747859456350168492216489806429911772759201721272730013088253203622885513109977028845699886516304827697941942892745559007853979122077096679870348943999806552852220265852708589607428460474670144529030148165382267391922637133094643839910062604614081908355226302399347147282327690391108044187981178120033506207001440641221582075315626954600387918615855879564911166755367184011562153704876090296841020857732319366276132249097294653111250762897963425940699103305795707275542667124213187925128968578694547942335717433398260268561977721103511423696512827533321717861302398423699014312921363271406551259804945485861395673010368539581241823580104374616196514971752790366062126168638188557092821451307891613871182490033454252878663387078242436746846740561945593385250880389500217071611285607524259928898775633577244827494260593427445445907591691809530667247455456606316493255310115415828995252147546687496802693916825507133962340895689933470884279154640067484286257342317924786583464857880387133491974639977544377354692295095580416747581080072269393895427044610226722570222251566804753227868872079321330502156756353614471910233762491417978549137575165392052086568565367799344646621839719521302903564943135276531265757249636663144893520144129172451686790238415313717064470436484128730278209086427667953214027148820833331385031868420651576330805497509852783901899833266391991931290102194094154700684820780165634662730167743076023949533236537282179077993206922258637265298162570166267022683298596241211105159245252580618170502776289743111219399313067241954877487154487073635904773111021444042850398385793232737202993600560189286462419043275829752896672733718810088224532526459392034726614633787574390383590685394210352203733468363350417295309521842969168128105174222254511448587449832671530094120996922328078518776407838692755727654522953001379586196411862991851625954330031729906457612225600786997247879720037112277198803100003057056304382211385152226535115100363237407934185979999316165674051601943126930496062573722004794467432674685314447032786203750221974514494186132538473609328964872615304541986874584155076743503547140280937277875232747356109466750755743379422043927919875263124575694070380429275063063648737563204585019475564487102371023600261454956043682979599192135306490692281123218857337449941784348860615744745549144902460663637729874948269578923625756389799783949289293755584406565099419931262887373278588072115388206510753382787474216024691989456842699099420071781902118786014708619770092436927300417071916922036292121385362631601291618827294721569812368444995781966457499032220512533562195268754020757021412196694777706264302011460871276097619673753780391422173597613404771377913677513769552372893828111745607317699474914440935248387751145758040520268542808075220422803381718628485020167631799077505788043144348858713553875746158774339435346300657390954897829728603759973334291057078959345018686001299080596167381728270856593176554763564887038871917910394511926311303936477921981000472048584870627373541493754916585232610962176360704662961081765187325434277224601399530039691811740081839999315951674119736938652120531209340717937936814638966071621605712072729289763601685376671044870273987407766338473502433730577156652581990960243545205637373048956378992791762041677209258317598646030887374108200772593384461411315974856158893286621935562385520517154833274307852665266644700821470252054233659654772403565617461325616444781743663138812994972255395919416824598386915457335107785719025598852257772627488730935995878802577071239744777928030775562990119537000347713367326586294908949922387137869273083132582153536544668255833159160275617002317026922115775332164361049754989758973444985872766020204651912078256197298165812975155495456449115335213259687441500113490699096606334858920354524023117976096930281425749125186354322011526501603096695426973600370881722726512741017477538855196418185614870883016355954402998587246779484772919388300887332719399305938415375782072466579891797162286026255058292370559264884444016415967281725100102058256842084756178304567702309646719476862477792821458642925934851300189219406565226088036982486606030383311828792399599438108150363559964119457286518133812444513599648436791272511187184388115231348884665254856797778879374924041395817313504845122696618396308424281782568826525955333373037491834157517080841493598282403884184031809509147918284381033189653536436769165502468981721445076670315912412327989344851210764679616600584518688850860312454309667227082832853035671920945951759048928074658752702995491221244501373617468076013697965943770094318228672705447880365088165905385605617338565169254661460123067147478711374059932141577808130233493758736880639368565980592570068480882292581959760297234915034237604699851925920863082012030039764388814308969846487483623757397060733218830123952603210265018371040633636152991992944304609612656644788320059709846718965266248634998514041655781303885555788850729093555842139830213223657969220364174078927499385294952436470208646329653969531373860493517324522965322854158591327216764956877146278778028074792617998969716661494530858799640724523466793208303296395434403435604376228191206659416233017923116453007650463013371623245172121601523673437185458566142161731784206140646008592652252916389200224998306550539867559333058092663086707546376991413636144085618315182803678255127010567815392858731148506936484425918453163696071411379681316481947003874568869861688522700570166105529511046584832121402572530658891669655403115558831869207093017866139633491764765161268102709599927067947779812693902174134370090331148306104048596838680928196602252939727206198580655176566869595076105650982863545899319137083184968701988629758809110003700929949951391294300946420548655406321914918467120802134502039859282776460302078114583891783331019421944595403050883980159671622744021908895281880944858223111375761062579014713086300415565596920253170591317124055535555508869362566888962596517489401145143543202055317231422870947210694556301276841674378845192915356099453812371577279366095949554294611413400367627711324315007332946680366442021037270849988320058311020100775516219777945780743402234326770957355140552991732891498685263367643498187151931849983352905650564886385482694634700499419380454964413724535647834804432913759193606727158051722269238256611017000986962721243327952755439595269600038140040658152721428795161648906719129838510744971414378194557313126098956487611074923896209859661147333275263773943215841644238314636544626120971387562004608875998417733442052892021171426755080339645820488355517138781362304830195040272017214587040392886284703191056423665531935799124416216899722438527264750737479518599637089834593905689112922742865922502736150613385953909944627229412859459709260273541767403221523771506172739552807038599204491534179343327048673787976709355932475027739036756775029122073422363566292856394381288247245104925547098422023758887901174576996465489360913899719105294357151155137470677444533933601040047087588885507185006300470351827794821873020617038912390647275359912863841299231840347777105988851562107910240463453345857476705305685195495047270256640177195061480095648096408485010830809900410611281310954167705110889784359856213657464748641191289284677845685603934036214624969916877805258933060691822452681757968773111085278412125270561646292199059546958325651847616634567932109767466225263576033484861927054241329964165570360147006475439909534865580651182840539100585149681332647162301971375171159669804829185088637211718805804238702812851926955498160427637071085363763169256716619958596728520013198494470560710397486030588911066833386268305515431640400477739993983337114986496061777078263458462858197496876760660549414614981827273548609475153931490324533307832926756285870010599893943659681577586737248598544691759331244877485371447160495930606318449671116495294209663003228682707849384729401347649099501602757545581204243227301512325796576924115307799805408394191724909016810640400577984326390901929890782495140603371916237445815448088004502046714957133130114055849342322340614081530322921877600915471595406371446450473673169466076176773788841051035106149691884346854644530813657847696021545761900759124359240760344422178123847338862019550950452199348857399826631046945746139385299939758736197240925032976417282251858577403008164086751641452710036159515908914119200001633532859834122978364056169275959839425565362599878368935876046897503642385080803671932682169445156438514152489115741248467205427320299462263133115656373455196707749210760900373827042445216824968167950864001726946823607555499670767860196987706767831481189473135205121689931823808733505390304029320890047579817766429557072244847280079363708049493286696929611001748173734964428028569209856005464837884035622994541323344830196413303956019444418160481511784071731075638051047290364023473761526111091856672672809690058652002757779594445256815376337711389270574745652512686858718421728468357446840297094989452824109035145649133161553312389957878858989975560014495055073993037424787462051126599645072528154499573138484659783924410343182882011852024958539734275882887577550071782329456017373328905253993340273084515565197984215238524803375575104088659796235173917830450939570896761252968339342913503989110925361982631960794671442535289295593372996798356957823798409523252671863900456867569680914611063292895062145176779083547930368989601780669928192680200180534476991028027707157681838952588140093110528558390081600636483591441536653401583739078269734045287567567638207862031223459829355137255379771077845541655539906132625440891208906500756317549626016083083039384797151658192711103235037452257730213947151623066425564031324374902585191596728183141070125697602002562814678461882026556194850813219795254259446740871830699047943660395020144464537360105656559883206683499653861074073062144966483968330577753758608287351368076941441222406236475207554841758632959518805772074659202619040208194855363256943281320912248802425221937604408723482086758336895937444143900778904564588835201291966475211652944825754423534011370799173500309214305433141252857096091024121566861431504959708019541843782728017778780428045351277142655748567998007249172014642103603076462152303954907802698725418814380511858660121987953517363007965512450411495341895616700259630351653961816559222496509115273028531527222284280655456287871569998749564908416598178151436435898804649399311916199998048908940666018317965846972551885474845533891263968863591821327301121813863816419877617319415280452335050177443897833350695548624678778907091254914867950576914785321015252605257350924852462795543351329330569062794078612778540866482959272552493253548327710238062261420991879938286028871753673608404530547479795986870367060192687825777140070245417003283741438177312574459387628760975976700611036511625774945164130694236774208736465658347659759952738529511797242779574934504758417375498237184336463147093306065632280978641273864494495394904161127646471431660411787699407653158763943577128405245545435835265787510935288558121915082615508613296102244859160400495365950939801129275892833585680841812385982677062745168113801133754220323387172638938620618531931666043595822154103695086976526092075616840246266126530711099594391669853504694003506554820438889328320204934147483855403453679236552059508577470786023397805492210114635184866253162248957807247153887090250780270742734560197604665345818523410012542577810261995731079936377170796658176140937960594274826845566062576230960768357958831134083545024210646136013615335811584453450217440012689502973112718663223190035548966251435972923873068718722942723567370312852258190177709937014292415295118501417662278252197454529286571102834095428409799677464935247934608058946719732226878655211620341804325985075171242290667119325304022248743955193969862691822393396590252903956672921674497927284307807764933130337205187259680641181049032987379309123549497828500908460603243027056221964049967025633468610959085991100509537881939417668863979089843500646658885397243313698474960870442931164323331888872233581645892632950984314754660833320016032575490007721353511108017977164443837256703568885950349546730629690237158640079103506593448694138415899382522059126978193640777916071243144003475184111804321262536467661294303932885999107514345285768223105542217126167846799023810521811614571312935992164518519712799411476109609170463601092007834871676321386548889120816604177374362928311525964643830041185425638817164867862171722795455272740555639872710058325624824829606736415860770696770115540458365926273136466996949375907740367846263738784944163885079693033452267259036849660042523370615777338786324870336537185376227907211922679488528835628393303613809435752955570137459483751451928006364787783762931120030480885976351233117743534917685239020869952122998681665286761684703431266073768605814614952466724871659660780578602058217264838711406461793075717416981981581767429472816827304553264201156583649460866140272044064484645508607988506542691443125736897679702585710871552432820944243694157341874719784329228020385859174454529213066449777441174464748310165258449588904903010056952860547574507961510096235348593084438115159043732621196222993331014691470769966061749952156390834670171906361730998072766691800522343863097949507216133874428817078961777538845322686182688192061649503562663023156245953841514554298111491120041436862107585773948857667889527656421386288571590684899924441525292421289075586153036500546689885778534707518498012338862869284844002956665500880371870059057752728909320498504066309150874151960548117202291197419290460007367191196924757873884378864331485735769414948184493663153967784545166007805551970631314802982058417353493703308464969520410117423964863904421738347413180337249146188653892995435983341693644542357396208314208426118594230959322890631762195481371780839923412194431956832673730296465986454078292697308323897846575296600219770513922232639590544292714817829879633094600342156476861789758173885566586282657414238633182929152162766208639548919432193452008227879989127214339043352585992819752591520461171714136277758287066742883584917853079271437232643224546653337422865339328622225501072958444092640820032622016600611047313123177969429010786799424790829058133272033604497071457335519978023755802957775600626027258233101634671346450631385102467687872176350874570754411843184628338235122023008545820203628406330192162971282166994012481726451822065490987701371690978187897818458795354917845013295618823607534224826718974690646952240440620916812135290769594253517331213763232551068687218469573930567274079083476609225411308951551899830038228776226353740629170757772925083612627041805658861685141525936640440184056569540393100073444803459435108878869633173716322645479955645449193519836574887934653874960470934519908018671706866856240613062854520697184471386354204203906240863505478622519399322344634715060658619750671513905801025922102099265841860862704328663809491795324434862013837645214171949089500898350416691772569058027716419429357830348199916328687047093464582341611207583423802398665730040064594883061537508776826403080900764228456061791213357118845437030907937519161814287511854621325953909810746610272271361039805887359276707985402039892494719127591868607320995727465957840712659480602458773862154906388346476740680478505794176973719135920793945808656990669090155630414968727708121377157427393836517780662944942734692366594658821287098837503441125013960326261572589221065773915078125729566128450874612020583364293883141268994748298562976665933016745145092942738361375722300444108710597625482602236806398626180285453699237947795294887396298760536141173237449518258144495362592695330986831060760541822765281721147200056815959142130674260739564514749958739836216036643893963738655967110417277913683165739223449216311544413197389497780861813403582827658390453884678011088309742319759608585601590990777680926016717578571288849636715683733670455671414391487504436388533111846511847552477349532689687366407942490199054386163570218615929550150350737911777456925140286893327361924161544154546683484003912024715664060791760014237829967403720869385085827056247621225259749816401477270404282275616763505183040698872153324329617331332040215204047611416761457591652494580869366963940911320865007612479015221801645121959220361347542882087039606752054167940392625474742388415047253752158204603215281414658841587879082523352584178854992451962348022760512803193881376906651212723798205492657985330153580905022203870049408874870041218497971370678495667371094120691804626942883337407819260951365266534450926144813233835959699775115568914288107733384527173705044872814191520282203122335758628216129005225168083394779364892411443356818647276837114412079036645158803155952217694767970357913782061630320827501541942159447127205961287070392949699868368889531132807938761530541132932004328045406435312629562886547584408983328032495613779378170810383487331016521836648854325531895850624873818966672451529237508829523891214114919702321813856921114548053474734494240823381185233113506999086361679284286905641372673709242313789699305875488470159558074733437304305104504065542150251258741345310292571594501951672613704232332847798138075034528948894452513175186414156835551592310484221868631552643723402587355632493136295561743386625796885693517931703065751764434957056909920997616461245177499127022301576624779986002382619540840816626569890355856160851214551253453793531111490582565826643801040558995173703468731426876887867175700578953609678094593739587503724541658494077725559389327942087867061406702783526280983318110160206635501158073406413760341432038290344609271117115636442987723814961866004905596101573152630484331333875077047453693819575212152137307195695499493034377019181186254405874953336879951028127476880675292928485515492273578431065122522638059550023605981284989911559026358250032629907659639832509488861275706183907645413412400538299100006684034728892613419418017317419343400641054016547912304710512038602624941538154166899333607561801249595590582020026776961866206151522026289588341922452402309128371186177634765410481776413146908683072956873764589571125362782539252114109809522901507605203025100109475321489927872806137368035313239116458155749317816809842958567651671297401729327939520728667292707757112170374353478105087149603512267888856624052540414141372804176162129996216201371747982242605199872448847111081400429295234846435270740543331039086334923569336762780971536184429817059925224829879306965145259671663929854666521653242209816551280985211616890675051116125705843205283016494250907249715530485331691507658711710870567445652453278732990933415653826955205215185794957792394750811547530697451586457116998307950053106298795220052889066115606121912428816042904731763518755928285611617056595583838506599970300697968559798034752185692804125228820048751671464960620408996684353901334702082618954082527101351591138446741288545020177381127349258042227224180887167122883514316411931237643345903336834682554239186283946412682692278352253367652674975108247414458269466954938012807127408660176268096632375200605739355694831948102795602631995985661970997710311542813148830616064050013740548099532627154223994702892288673213468078468079160260126291042547383432224103419748054586214198518634478719710037665084607654264242908338812268995749013991302743271458557075038897633181292939186120601278074622426218991334369987624305136997237775777578298856321144356684497075782880707326887035189377131380073146064812854851767419519499884703578561874984057733421537421817351183598428713719311451442244580974090365611902254417803723849944683886620950134246457955570863686514340679447627279460159405746574918995230007423292690687759034122044042050351343231045946632252736661644015675367831335609439128699030702885620031307776217187908459546322918174330860434123289267433809889421662648044937511276172589411090072192181627326079780489231850431142299053266860605041185854422459307610566522979047195467949922203852596240870140891054332647929548032172526878766499260728942247692329597746060965726429153471581433219999700856273032304811133088613253311914978683303016014330221871662649898296277570963504928414732711085804512761976042983150105811368179481317798516501962749435346994004549610329384864224923618943239580697072792833168496670225684147791477033499079981654027013458710449234647152867014664547192850952273415612286964358912674310943983353806384342302700859671911002913138023830088478187169663002151383616547369021061209451494412910809886205776108882795593560237839358715954660229937755835678673684294903153925730355152458114972613749958269870499419596407973777328569013322028336431391239341391767162078796047836740811213357486574933703780225517175564247816381215792183626732142349169206869797638564384028933791144300632939871940928205175372985146790541281695102516680662621001872690208277135337962723307723977287954291191278256866631170320871354620126357738470666827051901850923184149892736878017222895218718964606063493064989871181671765505164540544229891337593485873968995765498318754437521262963159501199536398974892434169212773006940146068594432859573539286690832127230095499675820572943516243978084423072536162759359615002539524762297525345859701562675357641649210634341424719159629125410411553651110251686597680859481164770958519625018628917027238326146909244960442060152262653857684287807238175310478289081310191302363967855483748852599343748539858109268403683590017240527757527568385451566570012834549662334101520864875011269522938275972256233347879055162225595640468888058750487726144893016003453465091043036008400998415412764536331578128985054414541516080504239440844773279391347733225029927539467558662686977221717674751385601509524540250290871309320023070603290188252256637269727286628184293629949490798251533294101340666098575539423093228104638271451890054334025348787298427981956870790637255037869409281020013418135908163265476089664325072454514967878231955612655981962898017373958978961692732809024285014830305193797654196257086618205136095632274763314547074974837795505322204221200360235934145013217611526926057652502357713451584575192807911379444398561388486897497817558561301335998319442823773721209504807993669596864273934047406131361774758773192221419246236718341901788153580716709198601336768014446503809572418161760796804776351461540083418057975925134735236129669744401278647256544401769173100738668302600330463265044414042781572987387558734676090383172639302587519736738397987148431443321916498053103060291208706775088682937342156439199958505081903912328169584760845907098696800850249931518096982628682023356817766105348238839224546176408724889144985913387183126421671713334066156041444713492544397414750125698570926405571655978281170506619267319970979344648676992012402803776765395286663531851159573444203484012070920764891860780318632763904363781830347064210471523525441591194049961047916623806803494137769975452284115158005045810706210640168568128614995243670510145103456329424739444512681864984598857931917124767734981932776924001896094040754288365296816314442139533377193315655313372672669030313010909925905583517383621464601868824237085249435457047388757644925254483471069836136506487592846307223275068893833236941063576960891285251243065201709262985980970489687110736837893277918896770454942340232746439494899527267054813298743778248414886524409928074698888757399891007536964659462372894766044760999701990742468151552071911676482031100228173457813742793539265198331818154200642671667092915334579830134865097536324290638487598276250041917228717854095676051181918958161008247335309683892267285474853763583764783437271129792306969957113741783974477222821547845606670177123999022191516737107815994000423648655228144067683340138305375005095062940159835109501937426816538106747591620950671900529209671870973945248333616595211535207234816306111446643754220778476621980747211977707722790778339995651629501628231360207340920510486082685866473794586923916471874264980381696323835441285212756102571889802078481305961721372647109118983929576560420913426332629310689686448223093761706996155188350225931132134738801832089351618584888629910493104036862409156439286127971452560529573864076641973174337049701929238094114656233569633139018768445536479874072063131556248321857887922601114670706382209823594051788928587066117485812288811823325976384049959322031611732478425941148752939157214979247609081169479091645290806774277968332573963678546922040693344986452476151430283096799467490349553069043063181495870888222814249874454696299100192574744208239023419628965953512390924920351416684619351714122642749330130627451331412614929850052805601971223276329057608570256633562598583673387089578311338203636808424129867567990855043900287840933569784258400553954671583746526241805653355236988502727307624625006612860856290274816601590952733247185404822375964706311303981394569117340637158850878193034878158191457734794506735578313677257691790546664511780632939555884711067054608504191458839721296648823064138874354109105578283501364910941900190931444883863290716831811762198787166220293143271429428814553448777240340878267416780803481955261216412415598670090846116595150595741433280565218434364703625424665460831638256911625491543702623899215685570632606162607154509871969393366727655026077230460969858021943020652978031454696010508527606486484645268368449431416243583701953983789208296291253580181186427604268652139651275765877890544041203940644585588433089193270759777023712636006723941144685264734682661579722585363420827419338805652087512406639198472492562152009631678660716262079488545127947717264553063246829136900343354363220992450729089554366094170059194928960556323571074766823525591964244805016274981027666228590992248130733982683839917199540063675830414553966809156594406691847409676666461806332210266371387508432619158542974940232360676913496675253785277440346303015098314247902356120417653325044851106148980832932395349558827806526427211716841174008111807269428202464481784918271119058452884047765969843457536851632025026627450220959505024814868018212336438136489470418792360821454721086831087513945487686293055985648433038661842965186809411841117099432138726772832622011566196781199194509086847313542539198700431959321181657872594430962784163422641349372961411889716253360959435011621069829553363521391408970103887960338179503334850992313894483413254088470337572380336091284605265069865127331345385978696025740541980568231873578792932760170461012077749088126498885746921934262328549118484770461996749637792941462721978500338604964955256052206185536007391245856543369295833188277801175747966788270660606895755789828990242691504155741744054189136231584313944034658268775931765355585630312272428611562206022557550820966889818287670099365039354985094075385413335728332807039031765985023273436225801767272163641289468502062679139609862175763164375221909322938546182363330683577881727765369332238702101473080901491260355087355154502409758694833888572505982923931095132875371375597761402890637029070755010402801003483935122771205023372229207987022552201388804629982567609289143561281992386087645556961925257279155741650582844621893824964914407242830822926850454361425623731094727519453636321734469596520869277568408409195294669919923326077196338917235034843953921123424028919038180812836994935084279179731085976226863807001137135452411428647237578416284426332108961683037173221452643068930048758729666426148375123287873691752623541461727130660288775152217545248942830988866275790885935075568535790895888964845009189326780210751103890143666094488382848302401308921975188212745110771351345682081498703042255498572819031125105878721623022967492259510655833008205366012683761234350309476646515045762665272607770600147739443353906186193446725050735148563006820848603154118378564901869256134327707893618618175751339244707386222161763473609293770002141677246214478891995693809613602553486838997049809001183331037333557356283112535710912438042571932054962249400534783314832781087936686032456278279385360275915797653881277658554443832627382369700870547000529540894995284109733231987401513041544921840785592405166069022355183798350878069423303051334834000045252156164131900223701163471615345024956064153352430070514390078866361707744150591422068864983060261027924332245852856365418841265375645787508715099448022935665048394684448673035104741771792444853457058040784487664127568171763061841317826934877380645649705919268266194039657863055539108559883471861887830992653756521169999486537735897120728114136925352473637025039960901147449911213096318267962757790555818773439746560293437501026059625390190731126829513516741592341027621852614536190386332855030459610600478532840675282195946685408128773797246057485606139438893407843324471795708690599403421511050609804594496507622799576397879763124402577677338243371036224773300758275059618604065308300395612932667999401727811687365180784274317025429797765918882197944848023750905801528663688740374901224957765923964868722054551464309719179940511358856439404656251662832983283446496469972598373117699169547821934921566089258125311162224738320172760422370493942175603411821249067595332621834592956567057234273168702755793855335564450957457756072369038897384025270776825471270564927954003408653603484552561387465904164818268299112613231339972103704636704624230707804905933681648131200204454359110119960857956161046098467588177788527549241511319927903278304644073243284347866529427897494970377605335165886873554544995448381628703460418905061700302255975581578270135917996833445765076951623720406512237169385065227147803684857194410959028764119097876388430287258526544331248086537010024409403744370487801642377476238056260416810032432447159407696423002593619504777546956741392698733858139913196430921704104215882249398554576499315826974610241330113820933597028895767420892812815474807477953930004551916735568300476484889894795939292354437818274842085969514814327523963300595008820028865869420650597983592424763398747434868829328742623383169210011770845708900257766330188494952238205013553330644502021292969801768454251246317079136759858428275989008382240715274492672901673651583834587141824921892505719433655504796750295708039989059925012141797965397869027758620734604392575911515804594114721316903895712313023092440507418357197555554185621084326936521014097040979405487791354789021883825488684691728324852049789781671167029693864655726565428480685020335705296150994014920073834963064310228163636597136962987273334807523516526420165008085888298201676431592517552802913943754759188608787530768224084685701642665674410733506699199815024041868794719724839639240357072704692196134100024036322842490789155648907223516153582172219825094096801857776874233346498134477376998476785186865446856685493330412142084573093683455665399850160936305883354349322031870529831263131660308326615589992095356562903085631369590519549822996608598996710154245248005076860476437309289417260437297463014950661566646419984500840888828478997604578052824051352524132161787975071155556283352054194805065352445128605162276183979609382400195852548654194406016287859846604786178681055719121619906663291223248960044311854280628375290688619844633887299874266691713594203487778536156995959405119773461982064996384395991178875645907870664626716193444495961405888474516089273809183701966337534908514685592254988752478602361889804953042062548556055652748844773872931178934246685927069610953827839632529635865391692813195953433658600590005653929575628228354671658240317929666377552623308198351992090341854952887543929365018243683259649972214930610191691703425228219921372053482720387447209844052452559929807884097210803070953226720203718599129254041495344366779603445837258665851572066604415895267833135798088816779790603761920307229339312011290040321394547041911842810251274280647815893911698992847717969349376939196606921383950226183785549289605559969173361394107553367466907864095736346808562759093615752117676029741328646558046898752754600332766962671615403702357366497058040558130403924178694948266327841653884007188649320705073264240355436957650868038688732257708272306857764154784055104460597986743647553267393005393590675161667791686725466918353948539484682126669608003186553372072997011506599543100042520144785450857837400328114526087394111864191259628198032153083850510869834365563520661016640523600784776537004608533407529212993393730735127946341122947774200179219416245093656688768754025578879184103679620376581710514893051401723365067948556599664578567055222048763759608423488091037251099105011122267922989875771309178763203583157661048196587905727237181293036257445931908823829221377688043090295916632212637537146350496763996121507986277971337853960739176988154201524865308507940405423439903629661045113494116265147935150615932862812191577433479709619336782789833027038330346881751009601352602982426639676700039693531523834393041744907015833610402435416136444736134275442462623835516910002713592036033504104611360426220014665076411815917105774967928412269448249696599620246365193170902004097929954230751090651018095975004390619633913847156702919889156107938171421420490086118611922516724353838690262626727727529347625839008237569374394947304666445235290616970665480254692354628914288042402058445337734393185356113550848535366439788499890081711013515642176312014748016657837710886658753105899361374807581759703585545189146565411866597053962707491603572936106432821213634746124253642896332802701503389117858372004417089522756872619312758712823831970048732700799009932334844466301447962344201003262124868358935967960189414089485786511396725266114509909690807075002416721310937761130959229677541642455252575332522099627587691495999268396220607600555523896908669220219052177049026296059599331890408970614834298402210437782691332905178942041961033879408063466434251179254890165773777173635989027504669589507228027096460289494527203739245574588843434625624364647337405585501652545320163898994844945411424527563911129069419788805366980277614793356926998479280207892184259193375812526814889833676598275765859479869220849465539613338257692627174275704085287363421279985296873468671434913487374531791098265841686472714899380503379676519128979800429697717990555260190004930785485449784361075764027939089394633831167317528641191535797651224316064437901205313455897660684092830449368528521701325377579009524040739927888856268112810763407898852789611521844648392482063696146791744313210062811094410397859868310173754321713048911253541997207115030317702844876139866328612358969857780451890297920471135013975894130055048054924510860832216946946247693243064055312443355189678099149891729209839867559289439645588755245232775238998174222328122808966622233819991443124460580878417815805762733311722604672665859336365172594462413080566489640664810522906780695955670673661446745025983496813177551400586954981290019425723288944606352812442413257874634045691271991518982554861558161043620909229982256811068693266124140790501669544333616999307813452021208782732267826290001177540785298659518619643268575501564760909036942775875182670788704499140964245681289377332074353211197486136807403376473440646963669976156784316529700851057243041825289136304861240766268535603863502219053553378180497335406968858490302840371157408770474604721248795208237265852517216191476408862305566568995381997262510004446431822361141997958794792275524622386754475545506335337941059491330716366332959846439813339379300871088540323663277945896537351036548455963819817283135501953431188589067771225876115008834895252447376561587288928389311630797710815222793733720475241212772605747239343784448787886771500474773292226588230017727851472838593737546788538615962731747661732634829448348340153004867887724417682940892921751440793016007965420356786690831046320938483113631012454854221755756793474242036232439319198698273898922995420665505111798481652248959732796979682791524382982861385045713151541681066869972271769340284323354245503818788000281952081387267988565999323376387537787660797564947250852601188014100461249638332346067527974688292291898557936663063536211673021525118263830149756768066397728077297136701639013466362972066663235751544798531222083225992319733527022836464848786057694898744764856280536013332900743373684543217080633933592948392567032107842948722714023911742545225383814372698573076848847964191270048771563348780965436585098499592190434741216754688995749206399204402072096391669880178441154303041341544409160000557384434108597133773622272195554873721787015613204627199681583512060722692736564242523362007080228524803377281816036948744565231669056486642985841894078506477615018695931557508389232240761988837254703353633043462746747152952310692875584459560020918024854827920581003545378240932297417705320736382247131511770467474603186527114259614074839725753769283128323052365478854349663692271544167762085247884183816813881601939383785519564030983230861025185792718356330399372962455647530260184523711681524024673753789666057585419706013667654685799527588503892062295605384350010669297291484471326174635091840220975222999128880349104226913516544492687063063809666449464369532465996669404683042215736262450951092369839390256208955424827434699503971901058781818307369019015330407329569081473674006853253892747206148892948781941299357744383339692568974538915238513797193431901402461518489934939529483871352270486397315434553514227512818460674275134115598364698654548361412940138213180769147012385044698531437156581833998244970923816508976741296186074664136338560601353337491197524660465746780470086043602863344963380583524930950666966491854865294819622612060087308804026234066286349954194275360017489110481926010586940140627342935184924540481384006360312887123642795764159447147697079568900598104230366523868862255966301302271721830350770431730911276550496125835018156837587742664674339369999573319158737329192437365044892114597073706366462379360251252799653425732574150927619168222024253178683658164086989675463666362429527799121748030973321961420047886706610946969735003885519587287844232866950932109632903734466926022278759236104758155619253417428785345368363000405443931846910743964815535912858995276230961011361873204558632882463806000214199172654389536026130620187794711634802843566907379225259182010631895652626854370258833528095158921633520899009737433250780112223844651404739330300088965198025352250041554274837667245925601594627496872268852080055980896111529046461234647458166001896162765952630787628107355173479766332213029958266911134395255269038993676409705352650011106439256468425723796522946680420883728144440266619912625246464715149509678669758450840983660140097590482606013872537562056443774626920918500428084931851744970291789200653860223171047786232610092704663755467186549865774024983477202424819192542259012690332833281137513526137424006539058330304939480709486942438970865810527948793976300496361292287539714024591452142667547094277606322888994217767804314697504114065294393711270970365374960758288101121865447485248267285187504027612671649127214024527067352057266904282062104739595162477087998665553694578145977662606989974406680000417969027231518367574856217127082124610659016060265021134855063302929361470894026016891119222552977787976040062072419318733475023253680861342765744957536841387858863364051691822741528818520761825578803463547968765713363256294036993025096531239566817768142789181977066119060439537927557228700473567563933763739248957301917034140311958267433884324671844727413880569376820484036587560562074943828389716823270825979473147438670358328480898301503231177110664331165472966865895555278457879610783190756221471312132578449432801076282782184987931901336849959159996727219008671752359299944514930874580917891104451108815838910757245815826405486672372782752700272835293389110141341017709032126692735710628538549031404529853053452203682785764749272469304101950522207763551216130062194433397204256165216388755212973352455528504442626283694224134219975341362619494844512114569396803315581390742337714899122111396447070166615476529467846391020585808947925691822906182376238120115014553707827694502247999399230874376884828344493480124995782467109866104648015409206525261234237456794298211092562062685299492362029236593443293406311557260287734341733490404071295543123005574142170326246291886191771573380786681731893894480731293246877374158741945070549164100832499111112935414679792348020059695719224384902301029664700439892650859822475421303459119033135465160428002169688843028917825384757757997681579929640363398734947201711714551954394811039992706281558438331876422498783557365633409894492524791734057196751848367514480908869045651686410580518400741655085160587494916090139419700897877173168879863073283099937795369317841089455823936141595821031492576873838425077346527400793178401735178854044612930460508692670641393947632428955772380689381003074580103774785122183525606166557953877785975983389454137664464394047233440887177323715511464862930118719868239005887492463630147872752123353138874339547043396700681717918337356914882300123018876352527488728663021751848292952614747960569744933492048300769543289830844422753205752433677442049162131803813992595217159015427463169993343074315812967457451101555513181048227454923614853804756561086515650195568390609829467194503890995800808830078079526121597902513080008420067587937107462352714369722036707331812728030928630461471195145621085724376232461583496433897369596177424287646401173938336258457377383200505902053396476369035199284783311125318339551584668764657933798070976263228611434556868080282956437666545280994313068483885911529287929364350941569888025938806495521307504808564105452216007625391955864972534334562518285501553078459055956987717912188534380202645508192770585092525543290000718737938182451366319155225294768941655582956391305112936713574863382707490164357960247369268389784227391185460535891561543816858954611955356653021292919323717825271849397010516465229712477965914754504310149138193523067664318883916867422875328162883926830496534482675891689479336121256428801481527220074866905103930298856449264513812335382963970781963945192359608975210068535388775785840190337868545339316043304948118845126469503436448883657338347584677242939894217505236645592245083591895353451667368726836093754335375463491804571205939610877656179752653526451715697180766085790235538652061416925897268401107932848988432182582165816067804802462332938740192059329266654197924025159274394083825713327190875505111227873952526989043275779349759041776786379139500782837268815093858027746402327176315792506174705243863024393829376310170954802047286098340053960454526336464986977243609492118755270820014992096288215570979448934565734566801188113791498338072308723794075774312788708418979121724820399669151683895186900835959214678180596859370925916699422148919143005346193856031606205262773296621101222313242906038710683414481927522422728134055477944065565548178235584704268952729525133726171812474245856719435160493336276374585614898524766860499754197061432520652457018832702100375549525177353166780345874401270222233647878308015963206407781247174252492780162278748887883038784041566785629962857185527941924000928482898704168307060770407116968886020975422919982977862754175895517886487675215363611808569963575446129156707010234426966490130512194706150286765039975816239023976532085881158804023093466350355270911150651735345963834289146182029266233344343164021561452105492577303069233151595236991212973748336038089050919646780609810474743928913575268017295652461707630308640855815247387908394834906560380538183285937883378094121799162657982505735076868899758329281640420442810434678904203346615456364789527889424260136731193263474093723762849625107719868325546414582979739828474448902717935795823341167051524571283657274733675082378299694161145453476887904094326775108775903892537655531891413075442473174289781520354447636677164919786353508465697897659501829028758971807781715420437811575973415893204382647845097995919604738152729004672165584819238571652360377606467725256745804671124886930424105217250322822875626072417599997182533163309727881295203130829614230437620540242174498912790480822507528480700463559586340335494004466002268454335982217908432266192478635947479546788175840556311798416895062121179217714787788515891331138482583581077170911983536637211041829993355803899738742989165251265954213676075875122520582340248947822640525754753457318380357717579968214910055132694995195206358025937110209681023428282293630645504229096492287391599656186560166037016730493649208444591905116689778444042581347557678787418438306757638318445074112951163185972452482882585926839350756919447588309093507578275782302758908767111061065346853341421079736113737492841069986848981338489468054103838210559868938888813262526266885186377028136122693901363562072508450414652533199146545880049824928319581728089129928498165907659514449541723785785401702616023561754615834066318109090922005936363735557876538102843516394906258517736767274741252551473644090808997395681577028971511059895770676597776610942245732717675843702730605327590492006487469988151764749016523128194886855592652355575940175157780415641192927755954873808520795415089355026982055693765289993482279152893266933221340128319332059027589940546264182400788720452836625317858995438727601844200855051555724283686727956460225586592638340968950713412256991638274109025514663093372080412000777914259075363162482482101114982846655298543930415211213604482031758044416506804430106799248558870601138996219480277690647486207610231516652627050539190429474037371078934656497446672425705089604089904494671498672610017902671028151281208843827716033481338919079664265705775741144867728031845837890699432072364312998448705387255260739638502668493323251819230055276987589041463589200338061116225211913036814200620851798687395317238182831798491571035324337863380072172995190573829606706520361353688046810778664929937406612479131989931055979397769635123337743031364145968214517925866158621773589032084111077128917294494921126705655085466482069543537787051594106952108878236857824159140295213698569069189586929943557190138471826744734236613292379801654673898488185053508483337863276099705573752165518154650155548120213317624402308523877576177472968393957054379899680255805104515312032740061638125838050177010762870782518542644086912471512989626078456963198092056610091219815600048331376921452289012344036411302588729335997863934204140392068458195339533122298574121243435651622558501693381066838155990314101413322555275437758886868129003896302117949844884598785169250730187510533985003445830202840066346714946085742333950001667172732496463226846434208588438643821562304539836942312712335858143608275562781072472421619892860983203935295664138216348604393681028740172935938655964186946377189115952043724000902842343451718234563366468023083457180039895392586887805837322439955838726336583880223733950292456725078148376683964039506348887800270312213171272648426142182210399916747813362169768750995969585784918802078847800869687137346665784660653458749629592867508927953919926446066140255653768169848592538143061249777028040365068371716143566228258136560195715166807835409063610812038359644938457930357724975159066120671346050947125928931936244082349878869903980920517242310881160348527686777734811165471434571723446897441091882640332039156985610568023855243229425876746040110926366943371251772891688184037653636417307303814343184563104255107848551853370834069340279763405289550494029326657353372981619148469996018370380903810681794260234163376827186305918738782214540953360961794095502940690503190496102138973798746975788123676892279853258218940669448106684095861673332046842414801159567545131432043120691863815848072309883596716191817335687603675054916567346052613111040045200920447310113882678181472680425520207662708131427160945695030457332584710951137804688098536808190099252216833335700752777346659404486939234183826985328381309392529001458361393791887995591121429342683522611837442817045549989101429221766461843928865620719318012880992030297577615283197441920756644786874243186445611602744902677563334267203117063029287077535466375286279612951277710747186487456474684636007788596421412621990090748700724211814488376827968936579477835213481370126852254561535461792133643180750081890125199906138294224900702474834553978955044227023694901226673565855871987507828577583296200497748509439462287640113345187391712000927238519102639118925078370065807746733789954497381890791091324385618564578069565185469743863899966258899593676262448778886173286258355699563340664953179497174610207004478759259545790000047369167712909300738145895651116570947192276019736455110007849219691143926549811988434968981488899540652909969936236208767595296591081085679045427094224780126843604452477650166056469757414430000563257782360718418129126040891422482629181396191271495141890269617366842623574158372173017476382339291611097286003436235909419530501284878314875138301388317978783798114161532040705261937125981041948816717404390947026331787196008685663679631446355529888227253929935399978580366346187671695766441411079661995492842912159541730648648030097083842274432424939783816127506287657893716054798243524780686439633542452397334450398127700300678004369991696538133385659873209500868348345119694890096856438858625081616497613737343161780270016270254784289943037930010170699960616004262648799395351737829920897692267577364099126057850807773731107974404905226137296912447881204881814074184812949171176677648694953440258614474207764475106434033412489591279228125091172936789913740117213991778296199609481042680705400872663615315816277557510654501830814019285343383010524072545785864350730190579733932665428230371879626433467345107022444619798877415321207863197672205953472524126372834319849985085520734516606788808744611421543554491712416937917639751977933281809925946048819902715774613031034180439688369309512356915246517018849156375793346420413058568221628999224842247102705823771789373212537118323462376763901431294896955527894845176243566851798636546796042387072969206378007036682741706878705795355127355712801469539841136959649840063069604455742510729027068215161926565838554333611718977425106690364128789113758759540761210556130809369671506801213965022484450185309585382919435653560765729999183600135203748852184269079824757561001582388303384966309319349514082563788225679314736878728309061559494536077400707815520142114067953008095097641501260883319122486445311901977067924060066141950359988690521958645541679517694699827816601569225813449235666126753275779704834656083016218378326809451743771817577944870110822066840877367556149563443729498204160767670767905688350455717667869668981131117682720806615488148144457675429102425413239383026570246690955736071670548989558506452499800496657131219277295449620900489184991709601172460914681845654521141033268648258218724575329849109638228905957149816318557912771631045215920812848242044756261035770876699122436851960753908045502299999562246469007794406411398551175629480158944174451842387764846638836799333442193749610218846579929213474667075812405873079751319031195869097794175653454736197424069607624651113346204188515550511347445156610598410988348569925555535036720057173134959369858065185681151798463464948895571489695982823475316946804074904956207921883195549436399408541396608354353861318972189426856195402600482783644751740587092341421366296117379957905098571615218156193188758105305688290426958871118266187420775615477564357384042187425534050160603115607774182390748443357904834235374144517696204032283354444981885596659249609866117951845460816011304888749386178641254281906746922905736452442917242486174916950993912994774818105796536391465725042950956729204407836191979828043354632292064400627484732563861198518374812668346694854285277730430904033889913119016373427388194991116875673562932711018979584365280749978145066876031147691893028219139387313959753047413803033557309268459886789906345760807943558092144753040084204578534743411795235008727924670071926501690211277297722657982978123628642429302852848747579566126105810417393504918228557913631936258858552010535880937130134084146781431047341994738009509531361571723349951994610630782184194152620633554111664434945613225947951422853841200091702986061599193051849385563656349257860013163150091758851019465623055967234801712753197120707460247733645555233670526894363026878369021957296289476920527443329898263429984786307348094757012561534917568329485548873643250418806015110840581771094925269208408945503403493324700221056503399720141551651383148849837868786053251624335515279105903790431135010735341152619388712348387359052790318507535203980823812911846036594137579839215404682059521243616430545595987312170263501593115551717670079703308511890324610192370564903012288389226208139379220319032564918307672302224637248254288767755796905852832539425793127699983088067065056433751121619384048864633491460730285137963912442264345618213322986436734611690514640352448377394109473359467983350304173316071630357415262956093954802648555444669429446361580789613004332640378925556729829990849836751776750462486567080427122948100977865253013967504171669107370280700810202480388115957982972012520402482994573512831737395936010422443938293285122942461620709560593566536722871208683008886585187236327824846007811930949738141023341572213489535242888028766487673146136800007252118312324702691398547663671582003694783826928293947094159093232655504064132869173758856135321993760223410340192422638663949963053399877191209598902052401612880568309380190736326945270271696166933671868192699876248726162026796042920496450009331291373135659426735824461288198455972883694741044985692827942260728881898376034893163553255526041440256478866353447967112630733007163386771371805256896191858425354441938258737328526369329209450109660779399667428401909601829063429733738125872110133483605869631277535242818995113478813149123320071244096804400603418222646790615323339646594085073981000807667638581077839108332506380532343956276508630189016796312696538913058374631310865983425978208158982039350432117638180301894678691467737501881766249545082920636369218542350394555892592468456976446643194670667587693321255807035753316556734325932686215225706709521887592248510766299274208629317410742688081756613726014161877732506962609369574785312349387704403903839130026367380448373720380217498529516091140487172712601499995369754122433984406447724333522043258266310414655140518498584278282772201520207392211437498179833813952014544250967805737739180772996437880235809975483950718103897674343357108444989216112144318437053208045140109653719667545379753998937300689128575207863779799914104630418398525270106859072899780751004470961997935571177010421256330968647137455067141373287855164314346670551926595778943696338432017629163601470004127999451944868387058323992529613494649916809133220248447455238443174560532198457795662864625646261190239987877355617333158751346669615677827200296745298711389530333790015608439006035964614794058050282047512952659807274054970227534875529473804992018954499729638123630227811825603417788389902644727423413367254516997677653898068300089270392992732156800330556007517762613594721028776998831748683062132832118999454011351797651683667843477049558896129449832055264925072064194702561738251086732454602905325216882080635797546898227357970904771679258915599727025305704551434911470073347311028892886345618234349260386641486366471101187369286682285638030268555465918732348081349810845802156271295872118672827680156594091226972734881276439563462573474514518216256151780223165389677887485210004988126762999841701693211543031206332228695218930941798781798042760173893414836317246622075811671818010007365769943266431983410606732256151904302081751394383586630745579436889662218970858071942793295748168353501363990917680900279816479820944514116571357701671879915682861077902660916530961767732097860455862079816881465510693493451405191469338509095092115152964339668274578651338271141909367206921926156829869259924931995030291615524703424904709501928832589440338573232122840201876498361646719751780536818768159451324202627837619493425795999370715072388070395064723204796252094831049794309346807511336637951453167332323914168625972734570772039193365175427116847942051598610752240464909214870893315283410201758472074975401587540267373730027620964391113367037661871631776818812224753629553531438274413275932039812150089941847434727641925492054189540465114152015560241012937131334768066792955216197568202915894230625836739348309016675597567627353076271767598063712780079579957053910207799389448346274159513470067273301819133229649089330717837316126933935657840239098284950199764459732243913912639877692892746843116694701227012180904016392416337861848697232877914352161759261123323225031636453552531175411158526922757862978959043290964667853934835457166336105038493876675201539096039937365011747148930059744620479514622405262385529434156622113644745299711719749968927889500888122307175233102074183682967147980101279998493083856412576447174382847054011971980460884627627598013652447148491391089538533800853465534383386736211876696045043510514478593946247656473479144593117876049145238750681475260773581962017933639166339770812175010276267349833323340855948969057652096047509157671369658643397343556181502229314868031272822635408079299665000972114258242906485894133356181063862655512297622214069328095834179591559550262379438180074213166565383760557614027021087469172211099773880880189090503638955824485226471182695382657432403294424439594469462917540993135925604796968054621296120417385579383553933571525573826232336934336882302834187986794650087676262878936181470120701190572393607193840882726345051529436996866844348581893340359110821715402210660710386193134533739403914810474935250458525815804455682337892433143236698894547336600707200531400073430800988782499664754304621164357164839907324789359990806559808311416693955219988151773567997739565698510351557203990299382532303448740166369867237879225697855070561487741090985492991785589699263141062144110629115581643239541166024105066115546385811076686948492202293498964961037565418861720221111855126451428696326286473033243917923090288465421956597788699564647967466730021990134551872615089296337063293494321044447757815925792238193474945600579613507752222980086189505293817807940232357472216038598963854597614399599187178048393382286153189196208054197863582537116032373238204413540076317738634463377952879699272650499794159714675461602340010647992933058715820623439246217172386185330301955164968443979826427767386350915295883160126763473815058753707634520771104571293075455657597200690763229762279552162408215406182683156684687545857484695310586116500060377448680442628530211306606872512146050024084433264811723052991514738044585697302186068705652018967414660180834506725347828882640730739370904374378948760162678163459758508061198705467361498450501209156528191995637522313078985522514581073165471619210806468797178810786111943879242750704985924757642464099879516428532145959504645868217329181532992645677555940318526887273469711320329816617341319555448159912566305338905361346941025388514845718677391028297360879530472960790296506909876246304720137254172839209938163272222528586025262614591443760520477109251112087510535251690104256599552205421397815160073203971565495106949307040934353432893964155098323461165452384857665415932730394350933588376048898770742964236908581816045018604300266813735432404108765237010234735580615716716864997926478336115983646172544671406675927880722885316613886822506426258920218508419806118866720303948146739891639328338178655482830446690050233895807677749773560982483146366350251160030212866220470891724028286536564054239891062351638878673349682120144673324976448013233311009420251058175160970697619161382722905933972800102187182336142255247223638292995230397422479216345377373881413891739077632955978799347438003326563570812481539507091080222882880205504269679306744590802820339055441278054291360628603230520719704240871219978012154317820481963064261265399364417610885137392529708130335954051604091832229646638942297797065106585000532196308224352859544236942612927538387340441004073822085219825733992997137908044405851332803967035515667377435244018866670092047894892586906411603131554296345315231344977523850704429827145404904516038759318284529141050633190097718516781200837414759712225917033799380878627420769016679529403825441534252045437222153081618897124244332146718475770629890733609790964940602865970576573463764488687449623104693803562028368801353762701708848430826078752237668253699853657170907030322742795643812331210680977936646563466194014508208427346990887505526516161864277015753878957536150182376539704466653584110566312986132134635269424543305266811076822249964185483078633605774106514070995484821655853187748288485820022999907425284177062005855462642076394261119679238068597082436513124268017045983587316670974958305181874940513408048049850975049536887569058718592778941931634512234813373868096481053354481945788613735435976340743609036751369390186540517928907068568256106631750578539145076742999994326534441211371409020313090191640171463471438602807408944938629648732441139044519612333473631894068496485423797647022695718149984876820955441721350944934735222453319740882917194780262165538566218396332792124871823243651752024085051270265491284383236155309833710250130440212874593967991058343751239027648228261521706924591054016007399558416292375972764688440070535067631221469331898288787206903420869479215129223083726320822312682936501432223419664011729122438423169231137111278522204655069081591032752317211144669543258875984816087598653844561041278503800145731646210074114441071931445514581894371676796316137227923339237782146204270744217228392102325447970365339895945683187973666263729995447026646860027788899194347901155283382248772979969213738553914863817981519660458939447852687890920513724032497286005728222994747994201972347880205011490886913486636125354906561605873515062390973187545570841984480603532173607968741128244161262297594178947480588263669579648531809764472721052708738767893649273148816824559137831185785875860442449132837887615940284096459411349725000643429847442335462566039415701041707934554124282005683159727181387375048425319790285592558983410093851214564248644509394479051837336587532443875485677276491246124677935954441160030584733192493299808676452267388252019104033572233817351790678752321200644064591300654263032785586074082830176447155993585792999108777158408955494162688144445441737970203024157461093064025013516865090840001867421141771125560062948264537394381242039372406077888579518713689812961602510917180337133642609540055215310097840353175853339810491536386766598981207374016085897373887051955664387649596895769352357098081899166205175660252223049395123181031927122670025816206474062550346227732994468127550399718376998581636541711200617429788368238445238779887669304779343967349245551739149258074600850725269300900373927039670456851578229046600171077958571670160633447592883473176882955757249470149074847635413952982674539509433019412373744325391737511463465578319515662013720392441483205926642833436446330064230048047272508203842518877127731377145733786342565948449099341168470012879942788321272335797863827044640610993174731971470468863747916371191450755544352667890850687912767183904234876747611528077447686906852439533449971105701327214786073264793292271184608848803635972579983090598164871732943766901690114340120876555025127873881285401772075939885764892231845783483443882385459443859547523915741189542172393141717326517105013616411838082217029060980469508618851531706945141514143513393675062861673052057784291634026980141084401810922040685103179111543317435164647164546448303706746809535207475607074236481692303505843217119769022812898693475084024727663265150921910723105150453268462572949232565834246054730943290560736509081484511309354763883629197205912068910363949244554471607572691959417993746396548090765931305535334539214219477454702482166385615951144081028573918900986109773292870083609947332126148633906117893141813249476842878533639949988918053790476913608298235031198995477102382140158963851040508996340198910001599233830162553372974465992462819692222134927262921567688779209995152717845507230087240493711005017724366172522065147620538240218608484393581191034200432746478819432356251023794683041740579193019051003984003526940868007307213331380202331353287780353133746336257594789538251868774264828413705215375434175045992560530916480825551133010967299046138116782307835337596525160858515475088779053197496664121035778097644428748139510894598051087172271468065441446245998035953748997285065118125946962669940565752365717163882949857252798705692714948163327868915073060136414727135851063429431157312385747555494619286710599007878960319197609173998972324927726029831484880146586977367523302218183372035497443046033866519246684041980439429861492799620270957054221065365444303378125830002510347180997075825389433997224021097662846648910635058716940886858584143255318675182901773456414160648634879999582617193050528950613063872360477129724854860729334213622889070511870776604981230548002871294963547473193394594007369333699601644940945531009093879119714813043304906744347432871462386994538913590203858627149624545941989123507460008253153501598620213405151251186880922675529841301440820179680547639762785753775461430757136801516827389929517687840777687511394492832361638198199039276369661955220002317590805439683511426881536890059024545722414776328813464235449475599296216565972193608802351307184470745963549681490496728419701908370422311910726107870006801089744542070130331834513520979148339317235939153149689135802900915737210707916590769624493198524263678506920552499932903450211273564209656121912581777012363823881930723348857447170912711609092012216900459029332067089691725672689008054843212567277112400634921897665293670269602510929804529259420436890055727586893092769007316986242738135190236783072868090054385177744291668661777858662738408132280673401852982628518433636902374455482248710991496148330074994747529301905994976552838148617235047282950361539215536313114320724815376025427954980221897869530951678880847481445183025562043765038380914237129516603669426190546200714190841980555709900930498022366898566415672968232446245179434824166153553343544323046210120163694195596202782967547798083480292610440121742092172898910316737118300940954430272163185896686502347507593853651298062222404276510170896957489798382256178286056929509642430962645611446385333858000786981306287765071977779682759806398142836008282571644684164960599387903277853861992908417802496180213015919847319947284439141726163318319850617737574138136944273313984608997826572875710277591592563546013383167250267914602751608808657340449838504056903015706106771072507407785856900054351071177557752046952793052533627725945618295501014519364575013525810333142369139245308634367706329439490557170697142258605085725487368634218684153534201464982425895801050020082531534295798582464393285600071398277359816924005595896385947297487708286824227559876353765464520447634682927810298810123955563341153580914927125383364680322637324710835704190150426740590347031984545004243786413808192557416581706113276129574119014008700421946375543677009490888618625078111691475587656517296229698999916081642183988377617820667072828605327859440394991242381602528702114067974959854358224120555055387353311302936151493547295484357606213136599164124059136402503656082812421133926965332294433077158985095362613171410771700188102201529314592064855443811537383136731641965285748984745439499378389575895704391847637134321744960273744083012366331375872327617968623845727848124377751600237865390634089608729168113215087603033067923183674093338419995055346156374565139274206845837714035105971949883552668433606421745025656481446989014167983757169384099468173048434239237547655802761957428376841758090155876476311944303123595781594119826104992299461625063461722478315225876206157076693597396761048518521033865251925004967065363974468751030295305498851985558395156401624792165130805228105694624407285597791905788406445336526610116231945866682637235476967087064371726675401981571185452474215443016445425025772618470509691018093353968433921133246730727767166289067496836505963418847403338242026135109655989507335401315072695373038882008057589565796145865362864606994265433473199238151066346590864067448422909424439062106231833711622257066474915104171196939192303574638391060382551524240310500990301401462409309101942664405432572260848544975048474923582599617871309677205268604845673609422280242538370417769749125136812659302607505838805077187791088324445821111645167368691232287182672146209665020611353936652277065232811715760900966537497301095906230328726510265403583302420312115420692701984984527927094068086508835996362716824480106410191350689517999815887301917145687090975417768659328516956545543129941186985669398854535942815101599972938389610382240538679307450598432758028901965651025351788658262019114100818719643941998274939849840055801530063936222611745030186824001129331307955977238511672480549663883464051773586026595960010041943489449940974750624056775668804189548585302695598472256843023559998398103408924239952207821820452371028641450581935512722778950314427806982807604977063467194352075727575432537700842805104381336641396430978786772670375997939508379434814200675534760082879041975885224243393663068694183574007391924806002730349157316235987256569760330805046756912681890322421181062064296335331638931508738312424878479316923245601338657162602418756064862761627529902168572751645131761608242683757470177759094348047654573744149274964740941502532147981005349116636247885386165760088976751996415427357133867214999102656911435009835631134537712650604104122081006493385849466711655909026247688294517889147326145608432321375624965447175725274273825408056056877309519148515188813791199877252422438106495147809696435527192585037047338513339781885904041769101295890022985398132416095834934480782954048460536122664994131313454158216481946630725908302138564073272629536453350685280852934351745104757796332184813344633298669100640820931723416333512638601574712498236696822924073167142103095925243423688637561849552998669130215671185700675868243128097974586790867328292177651085101742570652117166457564803977331814660156253085434528847219376832670597803715131457853091774558339055159719794791482770727165013810679611132285252059973473458439541959063797019114758693789467410921268422262538918199203997315319960034478612647334419401095477707945571967131131957862334948336046275437851621641782556195412707353790961961533227334672677481947910385256185687206420121707750647189094967357042198057392542969730423556273390205331767628596442732777782224560411314887662395995931892779461982831073798057191771628712528524593818598856949391899583293125674531921458373627381718307411771722901050588844595631168411615245568273411711817179908655309432907001209029243367533866502569117478476697855157677757985650584305789935638192838002319375167472681780006326336581772646681882577564709542122036440990444073844000650093606862154393899519024097021253413953615373225297667732996609410927155182097407180369984797755086472232821602604997139374121522904737725246240714263219308820588561499116338195213143418206041439074015708806583548309596505972978534797008425174667362489427481720029483711706957081852525685748314690176929513736615192532083895428989768288791085150613811470139725754913500066729794048607215506113710108711517373008186562647134998545104344144865067002567908094180244690320485060203786863107737616428162414522621366456681587752852232296620086811906667025475675295404132635901212715730345941281917347815746696674181033736721319387513266151329757902684551027869774717705389187429069137103544288686082594856514039128478584876507783945130432096782728971905451075863359199617570759607540898980582000627603056892342765545453423430688221168367026061242138177287426659259686745190445108457555257807674238188088711914528265359754585954617571973555468743197266350058754919986574817973469701887911625572066424323085100494391708049037950537179730921098665927242590373915463717947791895377648187664208796307712803998383829025564634740937113416084453948492152016227311195049000613540693063164365396877748787227280243152669746302077072746968138753695916825171499953597904228425361136398656418896462099383260996125111506171636758318774237941789992918211496904279764376519793625178451606231367172696288342489739535452178446422592183883626889848890058095590956412717560436186817775155329453945785917125179158573268718591158971763437822368331765457046139030375383351561593247520513558289468665153404439360676080726634689879228737185306732180817810451934702915413760909584055559945376840990360727687826892997254553684573569709016355189510732956898599613085415057216056752915364622138654725832348986430739835569379661213267183027904211164851294488352933545881016423549373298355989826352793294781357382479653271835492687102636113222507452473218283439126429806659526325234847017880329430762011147851648926414918217845863004095778781538792749341037040883114471970126512861772446772589948927900379018176158970359671865556131114050555431949789288514963504220066878957515620180485887835460765734776825283204979139100314204699433868912491618646855288981664277428542226185138681606792280459496953201146922000293496003163247436530475793837710458693795770412967156275890327201994985265443760325696433927732289788644245393156663207977614545731101649039847549133848098090411764689842517924897681131909056391595169573787662253696111316956987854274601065315671704622277423748583531333794175546725196445881199440700968389755494806304672659473949674942351229200629053942007390359603509659654096900706184477942743838005629174585404214956750849091666265891252937616253685134437833600649492951879643877926139864328850207263156807510692046669247256450612493597785914022094907019276093160126816067708281955482947010971862152023175599763325271146029311514544850154547829884649098248199275487400973484481778380599553724296814760186024793154259189205530119507383079455437616507148665291873452393996049636617864471618296525688416486829471547305620180933332687244626605411440114090553081378090799262095580202170608602917258687007751407965233145688077121817384745904426031730666850573456414922148347612257406034172152558629918564551243297713092426009236838404829556986786323640980045143767329069584947261280144649118938756638045628842753740230889310639043751830358640304344259241608541952799893468218977179094621956163394115672742095897607087656342297688948059586216802426466740074123338008346617422721103500680386345595158992938193755179699411519276406849951220960661801152026543913855139519951473025867326503958707954044307528179623667043464536075113999650026195126741156858133844530376206272385792941453090737156736873435506454165869445157714768338433615023678403976274741289457955221610305369437087435945038674625288802075432014811959797644291706789530385101078908673612736369797289913736921033152970279731779958025771753263211637617930381509428793484321939034203149189404087114178707573240216510772782252281483518278288998200230656352345691167636368637458001491141718245802530619084932085863900761875739139459231875388451052579886643231935058239572711396157010941088483249408519255763618190888024694336954170892009560485901378594813330898373571494901179511756135659799653425763673545407589208130090806201482760650490621074582102496526774914486698745347125595713664574295024114912149982005098569381791098011630532739399283459132759374187463101700837393483710769105053392325222117968567787973183970321439643405484231242459784575230515435897153798178318302460732360321455850526918476511931656927986864072210572219831636784233206986613620400876543051487546342270101657296985254070352243459933083403068122972094823167607944313291299276358604270646341637797761425683176718554982482044026129587900317020464101862109697978023202533034945476543669122307453000929138739758714240639804816631928848862321612113776377088513670622226563292312372255814758796194169890828804306363248442889218489191086683216350613373696068002063094547901883103381460156377998970127125611250455671774167092150414704848911622974879383742710154707839424278685083334182022082604061846756895469672676980583998226297021533536144188432216000967978327361082174646147430273804721014932996731409939810257308009320463040930736708594317840966357943617474466065093178987321542336941348530312955281581779034743968762137936748219624681942895162460482705847050720404308650685784164642896069629884246981402271305071522095269186653579605948836845611683754864475572658245368614389823558641289143389045683645577348670795762065125870965264408374990899087970465740632456388715848451348376572715970583301735476236280131313765338074438578004571677456499869639511550548999484835946185510307377510504927572258521734705861671912656403686539422841914489957368707102044511767270854772987783784523710668213593906177917861518131762932362254207244779991038301875852819507398148442072176989380474761646266728694790080359245691301657935790216283452893087991811718082135454294763688388332625097621397465155006564676291391781564453124141168299575131535124168210164874506448784583173375617946588659263011454425533985942069245017950080888036842087417160231903719342210574747049796193049251916122088726124314063691343825041674472373905280076622677822628786561141291065236012701244520068837044422429456931253292845538970074962741888344828446225245981719467644798175087455684032222139997090709619124972334666819392988553193617315363398083502206757804321101699153181820151963338762147497348727141144895878059446413590885240619355584412613497292253514241253122465115479338660587199759565431504920667615643102586373674261902885094141319125421193032676408910745500101205543016548029922409425130045355765519648023139382572801156665437589195254837281541636695369605894798721284058750388671528468232342607962164670749185964810274438449610854468835489018894469628599911147859978442259079411470274709116032592292171255699278785809676839076128944847127700594966766067848791016951298076431790004404795540983732771452534960979212824180949323261943446136212921814394688683421237790845982638654410498790431633094594885034959337917306741069721607088027672528188578292114098158897920406994626318909573376304421959029530207271003482180370791127296022314921979916487530579012903469440272873468501987623732174848914410151196048018682050911498502207418762704137385524092444472227242600172640345825721553154376413996447026712819988083509804451724862174739347241495541027790049595746158305262647085414260621471011637514899929811506700238748806482276428911254770243196674446239469429862772207975234288660094780028422702971627623672527459614326515159659645709201788887736321686662140508477450516580414248625961142755946648280373169931516604457172695168862816159630916024691683514815869276064798101338039839412805672288405972813425700667054356227318153684609257222943915609477652196136955055788349477426195475994327064615866149128301690108463842681513922016872550966813679389253367259357851122568974653412221386603033481558936728882173462920767590031239619880325761131211522907657237554292649492001252377233789321297573416992257855643651210787689253380830454098240518165845799775212060572787681681505910093729391264210184775886012294830028048111444040141995945979495648586190048841646383781209709896577971635172023257002141669013891557912129218937469592196140636679531715207001712214307517479122213163013402680227775081002857039960130624530853046740835320595795564605798301145357855807952389860498671237967607494414135590499147515084571341414188611624420922837520975067350449012752688865483175945127984120024470252697084373199233579270392637182272445968643774741107309680212783162402091898864374974462433212312528720823839144987506898717077644207222072637281981618972982520146666513873457943914017085775778208843007557435377190607638138148910632176144307735599771021066395274139299849731693487683118333289067512965466889436460752835216892359972336867470922480400177547112014620605296246239647988806903720760738365331035911859918901295641195928269798899802476069662976333470886844018966584452254516436889359879020932084875000013202601115078487920927759941881681179617531051473654542791937512458970073356804436570579786643357827010322993156273596653574058055959553235401860711683399066077062447351824998035206342792900845180618161015016905807927441477210852080412823781516617566287449057323134119600566797749953412461742447897088359715524547397513738155735028822633496985802333386507675949325002652780grave712849957536908846653855137148183485340998525773604891289205707040190544427661789350963928586306948680405297487988116911795762982701231814623210933947223734666768153244336663890822256294739858458049206369198323079434182559892570437164596477314567230180822766991231229707121172028187952981402111725378176591929364069260806506687367600597814507759239957666389383374409872266955268034783334398310422119046524945518022603307274662751001067759183851699660786767764654835270778662099580438186958923283554866412126645716655866264662798293400478771789930323218791451331675893400488359717251483157003444125046867721455160039300067258920862095855097956743580067622865899058023327289596161805233397452106779955521723631216220714396129292210633726584943188037302601513362509668374845217663277852953003968716427798836399448273024637747414751998406712988364792325064755825646534588841594754576951018808462348030850451880800615805812747109447894027305776853679187299434066455980982672016855888994154624918654041199732445982634820561232397277027059116488630465095341260127016072422404343632068773009459729217390750845227016910864868326029751646153308301298442183162063102951158939318522338254952819257286775753818793373922556387278782641481666375043396114105369514003761865713654582271610450659111305969966417174774240954368385071840039165705816212407278932751544390129775146935911879031545524737301740057860529285676496310893635996347765925872077760674485412851185061351422728281643945953744886969911800344190216141672329320361932382076769521932268757147993546435567294159341674163195509232939112079671186903690586055272208639366852384759132884585276709951219854649794154935511080033514737193317189651911253254486050172187466476655651143891159761525012028436100465772225836731858451566076215883410365075784498333668347444566532599439809080604295787205516773402617756861759682453703714072881892705821506337629926902157152335235292528188620836307629025249107503507959504837710257814784967911mistake450236710152213733704541356288767390460821845396006147633212388107006865608618836374692096645028594733487049064700060162708501160241268244831702679047960058151491470731090414792274074559844486952523010778746739717335905632875873572877202390134899249104295057368262967424225850960545712301255337204628211890266407824279938940841989546194547110137203561825816736680015086565101216590699102049107838451848886088848568400150424694053924619481325185284908094746693484248815065605623641677799517343715001437649228926316534123121092220409840793162283743158626882753197985748964673255279438395290761141587667593058905500011906626424217233023462878712751481092592883494321534151606004206561696960432791230287377418822702141476868017328157810891141787816580385434837931024994145216640897626734077068077373991321185613664550300445166049621546065826780529243524516062334413447634189034705495587853027126199575755809948508670063307910331058487800607042207564643271926144691733994746639664731140604269679523796727049597261667916926114366835817437398017975272983379671307627945411393922485909137707798397592437021272844672183969776589066929805833746824269951572974904628067835700004911568934877307331985301617644794236096619983358680995646904777911951171452614750997997806697023871256641689574745311131934384367522353359349519418158118039675724504308022679955902393318215273884598100979280022144708970649835900960325714073382767791674598317373870191381523151306582311438289103679309825993403490531271910770155665010105774508540731299147819355107393830979969412116197379333417141010396941554117439317012809272873578468477661247111587291259683720384816885152067362293983081132983051328094266939852869885181607246991795529241495793003885375819462396832275294921313034392103335472753926639819825199147060153580115458076667801325294209563527568675305133204886026566780439150269745706017254076319817086248370865167103565573187243232426147453310316860716955677239387293955941983611412540836182694877756217769337124236255298107349844394949733263702785129070608589521367736523531219873433132848573631438661394640614008638320503954194754224818896768886424865062141219453624975893008895901565425352383633190224022827873336888454979122094366454093108927041996851488699915306428723827162474623768157836731338645856311901265361145819777993435150000748967884114562245842751144112932679746799108816935683508394042501081474934023200014878965329447563507895630947886965537382336641593246074589202040521326944852764606031185692147310792192806645946857423730999299834056692917298712972569817508922594037236040772337477510963930610244151396928434486834162795342889008965495747337296040990490647380861839941000187483820195262618446210026172473363998816107530525606493516787382812877687418894913600048732134524023010422877465573962137105654925746814554688855612933898522538163250668964318260497028671264751061345872413263544449118894179523879000028461952032279554805175121206454599907064943267182965167259760283247923687004024305622426955270481838555505130229433934269269217632748861645177531287300325114064470834262592512583171869911617774173433617709585303896205441468931370332280479368458277318784906009067499101364030408771642175424661855473913122270455733570612490516070828720769521025640891573386501513175008329455839083917636992751695316163801385033191371335532556599829702493300788679276895740968552837122471501713529601539890329902763498224586435483468933390609903548181125826843135917913842035269313867484584290704388765588231085857921095011792362446785688618991587653052791842840944373554927201049748425813313786361345503815409486201483898140984122358878895983501609428697069197626163310098179837134093076316912743803945665071797304666592099010591041265340967364430957025042917971836372569678804484753137439048777310579900812441418806385256148509770793670102380828078426920612838771098300413273234878081520214709359128915632312873965921015425432370347646328735434531117051132395441463173778962206698492149942007553555303838388145884260759378418557523826751394982321505329456464265279564355266048399499752533149750468169173078385623392840728781012504415090561789036146630083460371221358464969412099215546997632861013242210571942981985333291063473175870781659856142930166979785683675551838771172211814986580540102398836964568409293850550698449654721228172831420349901739100057616140247168311826843447600698265695437710644636056994011225907482707443649440765137778272495039680174120123258533094419626663424408237434527727992716564324635665810224541284526735605760405435164654086560670824187894116292226961270446206423609091410539367534786867725951162775451871683397353453295749861622785240865482146785442825702403063158924163703913146739645727989317807463496270436629560386582495127951512401158621166762177636343776504747782595041744203531858657299433720962646741709813163779055671998254256670860193408519425819624943989007562672375237824040531769899650636211763530211805121083230104364242284536441620088835973530973734012999463939227876700272676109732334182631413524759203573229944167305239334758070908754942020042315783946199701052763122540222765710857053864333906155761864659784440356775039303501241377772935837247531217108619197766709893865636135932201498288507209283999376277627038038646321711000606177294168038097249267053313162523428429548549970782509853452262979703726452425575391330517583103531789221240437298036879998045023350419171954686361202782719721630904401130864480596664723462499314065210910211076698652474359497807239460351946693899134987565022196500465780249655550109182244413552656904404384501118495778725763516439981461059840440462417273990330269484519686702649562976312259088120480558658381152553414569546624876253960633381362514777070150582382244643086509231956165614063903520525708360516162983246324322729587007663160368999399817923546218970276357566461367276417409857505965635296141990445257312691142211819943260495958508573283938419248922273607259360186060753125603166717386685301041929278081716466727042202948612187722418242937677824921409261487918489795460293455597958718205665398470543786932051348995814081751236732817574583635317886757567060117485486424824289396382763299301703547216533842044695883747607357363717983704080102856495899489149617824053863882612803097270861644170767374816898231807289317931509547008134895837022261011628896536495422907068224195825955654818368874072157951394109561710791550499115786471798719884764706670646624753632169910782285492627101103060508774484220040227968983566796914713855552335487776298654000598065479188416652064271664035380197610076706948295121409400113939141458279311388244111071747951095870653166612150304393325834312510410435511498560691379981302121861679184516348364362240168137440722778380187537462700041463172371414996369013434005849632799412369776772640658414040194620822147756607844270186479457896623555706774811465647283116464501466093994283831650972601108315006078828496566732787942275998799970950404436418694424431478263459728194504896157822716510334323828288055997598566518749036041510081028556038341373118223413867025335541795466322239541758100216187262617694082063367665687211618114704916236155677598857563232357293299273433193965981828242021593399311012787538587631483451909590844054641234270486200280455524855216122741262349763326770357681354432053016897471136478307529318713642531062244708231727451295536240858321595948849032079448528394668947501453023065109528250033451978143505788479600769802297044061424302689394916914663634795372032626672854533054447888050200470601071686370560752186310365237653011765441820845652143625566882961955968214388295618184983235784947576921910485084276971671158745670349344145584157769366263674125110017095206894546231094229370363677909193754388421379758226243488191208870591470728278993557502391452016487679410224966642429103290555404286442576441271487839258255661118974967324706198953212797360672249330309905357879247173124466893995292485583735339940677283000160445367918895382611403800345668779595361118903439642885373661013558945931951501242858560345691561411559526282576479855533624754242307965890917547844109164497194298604684585444898284114105462277901082014101382268064352321562976723057440623527374935524804099491769262475584295333184799387074277857036600315929990323213329850112022604824315715727171611211901301922409953260191825411535558541061183770539817191531951098047631167510618874301920014781815713765664904824041708236019680643186954638141279445626318682243771249973448751958501567481550768314445794675572813655235454988787517064857114675262265719407015478608291388117192823714680563857227045838723003667717553391566996539560760618998271673082269165208660930132488064404675158560676734699464522088503527901795205039265948686927630663189357113087411125456834784351775190845387061213850458309225385207134733134678109812212856277202900635863608621239020232026955107796193885420391765950955883470023719062203919334662895928427943347867182943114230572941921569777356552509338334718646678132173185765694084378487717826536646406676231434023203514732670423268949206070333974065170729082934239397458860890545376880029323490966610247216985043520245072441430756801966483962558113029599473645765047047184052053979067284571811763651071710402345047001036942822472431559670122570396969395567089093666733162489227274371505850887416382546557097325626190811071571764363854040042934016340901389578682584865247674413676979398225101038341882801187892076892495132500452768157829170640104491032965073915487281585530750015678547798396981643093570801559050426040413161808135872070482720570776648388281646060116317794572710962268128578476643437817923228660056976328086031274805700998029118330850245717094584887624976393432907473683271667057319892349282457973819506010736852861621158981118008209506535586969550815747033457987292421955914820906838196786320448871337339799583320758527488506099411447176597514644458814748522383627936147759419957043291349183472062170497062575593393138428319753639157811112403287464541001943304872426769182982160403919783257991817410800242231175630973954948651665712358554709660178757106911001465900130762886188722059884694973277756186727059001321675637190450050905759657894109966251892599244985125116058878452153555528330070428649901207816098740204552040586396969668680068821177035682252714875677619204424390951071786053119769310017834071758000675607094894164367998084965996067925174070493564939228012981578668898208206586970484846051288387773856341998981494996333676474510397566313484362707623283185705032635218457428387051453642419132648833118559267440871209193762302527086463959340170982143105488912735269051378479375702582836681691813377957189945894076535564157115557500515424624348412188124142851421508388874050019251540228114593361474189350660959941616507516272028169937005937024494470945885332834083597875217264860267561086884313638214599319287250628598967951975446779767685803832044899785921919264145481231035468490757565006828430743970765480805106459780159736494075034816961208381910687377711755744491086848190889739141312455096124796786024767971860773706230976869478102003002951929743721792499332955828559189273745647263320204204069356248492526349040327328172065386963500747212407086072461929901305901137782154606989390722048373955421692079481356489683974156140727544013301022142023112320312964065927122150583806001641117298535339503900136108401861871915199279215894440960240794918912732472406278193980673258271550087775800361812087446708379524204691894276759306750081537135538352594485693687459444958398477941146441683364983309614987928737190994938375134621305097943319798957257180850243022781473194323837195607668867816534740909991280379031859201926853936088937380486343449570714125388501409310331265748496035686955566136119498071406771791929099619935162662006840311651171116542986947179538023403655851945936063408311672795965083313975802359582975712873968012942501811159092465139142170041788531963930231212034954599281460821572315949345328746775793975398559815490418192014887747289453978842148072511986641377636252907726773145542886902893348066630696780769286853277120853373956337707635524942212850062227906170558066589451078330719778107655092076265950479739814545544788200569606083055209823150635457371738414628710037599765694775393650127974079562958301202720742394750583480411098138461149882416812092593457929039222947346478319235151623786285697302927894651712114045856588214561678258021216343083012374630313259216967948762085319185253994853571033034624502327823432550577589630962925096570771434383150490233450552634896006119201997090242321226497352108238782590296269272788273646089340262422380561257095069235431857519740573052068397588310994590317277263875771380231821243062885416314074595364267686756504042489075749221724751196429187066782997416317020580274299847804669755643709092518127382751402527315860506306990833164843439306365130382709800439559616960398031508166637597343842533945301757771014024526392279526866639951785640628200148855160395713445986842360665436244923685505094541503290371238889306469852144064462359039742886895327985895773049692104307317431973968286919317151104154268302857946656936963114726299353090016326380369615612087651722107200537537147111576911063383593501309003466727554245961590506451236668080960413806333799042988257011483601966858993864520937513400527845858725853024106742751737501090798138757240478415449274576176253162328300617249382811555975128342967305711923988500928750173176391455247522582493899406805067657505364840346545352477037966941761471195733350591551395331141873857476632175053496065307577645455276762136351285990333375998348425190570791589224269589885158349539949490081174058888330678047173217525830460308646892226480168954057162306036212727427117022321026688766795629194507654318164257442192004474256490954634046172376422561861571206920185821811554628882069532036793885032429776442573601635137712002450324475316751550561513325265675614158476381786718653749564680193367690786279446325340727480895685563470330907314154979631995021307637853867383683753545423640510921770708111355904681661739594771582698756354705319493378671598291019884465671113178258547954993276560557152420827516387213122555599893126960026491674767137424257559556741195179288665460679130181386070589572168147539427255282175789485243398405273779584601721252311863314573489284386318268565151608995997919979264462714594488163021545394374956590357762174859510172574136967784934096703751670864478925010821328346371120242300061647015883521854353011085074706637950658815857411694718313566995413658289974998143511701255860977431499799512504942441878226336503199139819661567017924978026543649851138618540110675560061275198232828362863019402114304530286152360780787252715749527314236918902551112340575253962294683148255257595879334729371333330548682018681525913408068712571254891549748982602523386745777573256948255673067230701714112314185663472329359772423839636153781162396510853153110210691750138531049906811288782781271344570639546532875384805352937832481731743681621954474964292165372062482354456768324625027495807144592527388206955882642079691015688699055800653006246099800881567568872805223229350665571424691183776498029719974506753894402131176294555495656900392103085530587344543455589017115285644502588587618081354746315595468948418308291045421579714795612860041585884379978916293673813882810259025042810123327794710170291345282481182468412906366380595567174878529367851124474890578524935912225848402232592291927443556839042150997339383169399784514870584795008101205408215252580107084992437187324714192310183955171943070138925265057512357005502884866252504989062098731601934326193933409669216227123134263011193176629509031445465109941178754016310656559807403095004347302659147439642760590564632520024623292702697297180654499819825298979026186593570068028878134925390957285708076060618928912074006931046612890705007852022988645488993608605558835610140590071238993759353077526781616813407262509702590124592931302429878819601014360881033649621921390764159905891435549522792443602814003358740310808658861370837963010115491939320047996956436384026541201614303869347257689694347966791720728142988585253183128976055423437489569548592595724135395837353997431605706850447303376832759736330816918044836155902833440399461809353434499149513995734856459365598653842045895926102385019472181503662211184962282108474211458494359684060726903015724730545136290502417110677288849630286795149174613819744711795092741437288813948975583839953038566031229767873588088251236376944525576698788690833858664403401062199752396910851418743618700964288499587028992754694404898315616278165541463146513543177561451710922186403158514247599007203207854999352593585910714353048387474005365669423979319239958773332833860787689322970218838249713413801405683340936145998464596812767042518927252900997571912713558738465414623203279875454982431791152433964784605582197742392590276761608912182453135453980535377886287556956735791644695688566782219422624037479189814578908900183678693001685392826478511830933175151927455190830094922773553689449484654518956374916302774021401401601774477182667825577359019955681991355300293075642612219747325422572681691399272723461683278746573520341621540483035213478513997711980134555518926858649668284369555319977821620550582455719308721331771818871247604958297977017099857112889589433466155595325159450950767016536968936623446169625696668641577006154712839861979059872758713069523087035370860509746878341538950756560159906158941797338600422515936573012456873570518033628074765993872665415446973194668769157239946219354769769019518347513490147880207984978018437735326188873339126185812378996495960486821508236940081146802437883157391086474147203037567227155898972572923628953547053079193361329674019206455079719928586498970112634151954626443687221726965779605421433681794010878234150903991009635940242787628567245448057824671172733468065846653278621670223672786703511548091267202232462574162207515814663723908337113324738552403129431198891841054055243857961526303418202563364196968581272838852904967755705425901490822190213950704698286635815364789104962741416760638171337373024413180045835741604795121802828252611252779768715597037754862279140757982050589558646587908632914493110805289169708565479540073234963451550693181316976729994849092515888893206751036945702781604714829654065112873352883405570155525408888614804095641924784795729968214807446073265931448951692303246915247402545839307712396108134580164445963324720283526015571188376125137655857290142319517145023779006953472373771807358616911604464195817748444875158892995007366406983363039321309741680808730850182438077864554375135225195293456485894759915938053932559629372742858777112953657709623385928327074132635454639996125394721238210377357606554661405799640119435806747393526091502823947767961726426104129613745039318443111039745941535056597194715961277550175770613532028288431724709868265930639820970776004956918122894154888795878589990950107855165167332632692953291183024060714618618992823596664174064237973139141526263390154199024575237133240730725709034178704271130526662054325346786192989080795703909488451280861925947547644516957163239698328039387095286743902024080223302038798536754618658106369309915724814273741910852302137314923927944969391084101790905151754262323372608839479021564175089636510816373179928377547693049212810812223385251315712382991530165111999441227175730278571233733130081701005657406363601577126899066296599386403872483823070561489102594493070192609187647311049327465442014139756885060280779740997866277595051630614252087365699768252437284690355073850059863101195194062261968199287235525402826193118422693292490133746673732926850218297376947317922209916484265943410033156913021240964217278447069873359628908293367267083864414931137737052238384749724859861509808912412504514111108895151713456695494717761313631646690525789431206138867047386547739864788297370362631785129124956703666996687695269159662775568435706870638162336997914773067184413973971701000141403707488921986158099171524977785844283887851201126843348332204404620066193804369359564960590181182068063425965968185985032004378731498927182385053218595654727561558794294164982541660058488534964868264271035497459723811806289996108138181739073918111482714698591888075356939881454763712250953365957804214363615672814784262877800761489739810593721113305535070276274864335545383119386917899094261402540453465046462950195831040262836553044001411465551369115500083832309867346405261131055407198231017665208272754891819358576196344275833664903517259720711793439520268713847627405811411993749705004617122011082775519279220441532928597486690523912397255824934882652122767325898997907099164009336250636718270359597921516621627159533720004042033512954949682966081833877314606245897800782468561310983714145011604398319405518917108258655767133077356766121568873129599439858214119662024310734785176211883932674213898609962664144750383986240386684638936230557110025136518751088893397938358941806028807605830581681613866374574972236155461820792455815056361836511781929090377622803742114093032278151763066472648307363527816561253737754492429208158980415380277598063824521716437126200079932572151019239472377633842123439952489168955598652149165950438756748056849510424680565411770117726500901466451311110433613602256520305870433881189988565618681828921366767089119496651824010271436023657585287122365678341151080485812476701557619038524588532836474313640308602202227565009731800704259816240795786339334092769429153695862575644855930459657617136607578335615774561213261896251533415819534804052533594646766554516018671958103485631720011874601781444611410980388793791992254569638200575504191443527632293513540190428027401573489938818888774544790568917073507484831294169593543021222819252212767652851828671081744301351509316760770115987745038824735871351756251327757595254963000974350728756993901131039160129232716928954126597649997912248789879017588806092112334598317968530231011016168486244313442589237337578584086488309534167211984204165354498964107627207888312653694276652113524637772270383987923631523397670587342402263095023525284738216197844399810516941602088232468484537486619028372535047998559448655001588758608369567574300982863697551148454850464129714956494288710033393420279253044665943827281617651116258639817057712002732391459776432371568244784599179974548591085053256576176747395075835329466162537022426526894570390761861693855982233172353626519920891481016047341876764101514784020241578516623883008618086733278623746886386276203907054265310168518105914135025123491292978851949717754018830314791111137418016248266975658620241258973306777170357646098956871255910215551146887217179156512596630161426807066720680703066846831805101910640015977760200520217205817491774778388224657506937866079007099791757506235587039637995166386261878046646485284526151159373259663776231504579346600303948387821333547799319848696799401975622996930049004808530412352747017917983200253714108558699809076833816761607142167654688767783285227505071447086863704088105414597580748517416510327113869526630381412345432565030024722738361894593096238482137359370548048799152705229324130016761526803159592368989418112842777893861738625172115176057297421517342312099530419745186108937162873270780449321927268985372354748411951071214186339705602539725707896363809507516168384598919382949412991265647956731196869779593280185267821566868188800150885910079075769533318670122185826517139147122653102946474924829341308237839496142377841929406690394402199643944650842738012344328016879222337267572893006809122540977754828975505853814070139639513228034398328009776400326496702022137634119677720342025889941321544905219959008596500058812563296018093249120765418765730031539920107085996784824924119601105718672315624155779617606787349099790662515327542579515557422019852494329895455684356631176803416712866641156353847080233750324097582206575013856014538240769545702031561045303457620476935342001145574920722330818472249897597288856371470576399502490679123572739444232636700157146372677588480706232534898969552158863776929888982307268257600858018809805002332361957191715749869804097296021726257199454575277242736807805511504484171565983164833572464343557814083133603306642949138950613332920002206642332588778742126590113807922644178789575814560699302217979299960330707982798870161552240737135049867312659087472093286125096071973202863649830170597981111397031836151415475116582080007608687424244089830426638040759512700009398836134429904472191575770612817993629873143933008692285771383053199853628896347557970391492619183811227600232599408218831263468518021011886122891689334372596079948377475096578509757725231020236742756076913069971409527528484077300558116254310959456241516154249369020154068506736411549693051853370333240243306283129334002903996183623615857929365213144890331893178692037825696915137028519068268612668947199672195540874642375544055228695462146984712940302600262486921211645500119415748267742899739909669671884362320949009314822607939014446252000316928716269107813508857288269453050511244161379298303040157069822301174580297838142197545012015898894405538694681913346779282098656851278310011631956290256483841755852507004607045378321246991181808479425657342347289721814360419045607216462028102706684282051382663323944806485502094956616308856599207717507685862469581059730525351084201287256082922404238499896416912493024954011930494103036981133903228242300185120153344890093359688042876410282193651836131825887284134949607955751247254974312914131347369538623421194811955825259754456799848713361416251589476157453986540216510755605113111431382756774375082743575507789161219115882605628849574424595319063776022967032587475901674715796206257182707101448081565206526686839898119137543531218845245944368573767534580305553114772066392439699588790858413417086577935542010246497658847360361565483710800183239641316903082044673712008203242074705819318212848785641930673036299383485269821556476694700421695059129688181548229661909645102340533498128289682399609726842144518294410444035051322923748052007846511467548305539079439145822087504057333417590888787752722567949090580130815912890942605908327803356386264753857852947545976064097057399619444795627462050154415223267253196836698137412840958074608060475557980706373391458942826172070502158015490515011559191310646237629742914122707541600605088322447009177690328483713080187349925212180051425431447949194885199492541449434312956580931016026876857016951033284860931463301968061225851010049169518495903501302232544198729518278960535942175558644264120827789757139612665759804448321201416921825362019658067241660301012175578961388050288989238019072266204221961488056379072066691568163657323021578297864370475605013763224800224897327031124735235242097337539645986247443355379127154655513402247240574264818431710718060592092846630767363488537327117687597873699148330641316450150459159667003257582245284441065033436831570671974392257748345005333474420648239261506313916706900826281461314690454563296116699364407978626319026482247140789207917605608965790601103558222331170516824530897639138632990515821720184364595534210047389592397281017587253749260315602804504548446806249141168178437359309533871025161562191362344445032558730394705686461032486688476286080836287421395228248602564110331902389498013032145971655697061799832322429402145210424886102276666306573224443699328447841898196331663818210159693815845351524354538328705469122441474267517566905518387748673243091018224952066631329395423520218836848709469080061674649356165421680405980777399965646401301874457690516436317121690962569255824086955595501284020165788850408253043401449815863424111883597231920857885695025378317725941056130962286659048765559317767844972555325241198083694987058881325869524150004620879087423794598825215964451383045754679018644494530880627753166336487952713669217950268910164454759881707671373113892516115795266711407893604121290138639484650724872692150911917094001011733094015116592150224435876455456145176741828296614958338846083336879811474616363633704353678846436718682896299363700008247056452076480246750899095138426920283029945776052164459899081009974884930125395672579031822869941060376882045197573627496672971421104639492772030452881518778749104991513057140929252544187878123492544875984937867071675243102111295815517097644613232721237522078997591713576731612395313595760892815542909015389632046658392295133497187114608484706695281886896110866548053075940245053968348040733660100533465904380544796651915743068632758423467685089819600042026546635777363323316175888892366057347398106958260489619928977035544186847366236740207808152423042484816116322866620179263424403450481627173053477260232092337734859895681389862065418040607360518438817928943859784836837710911316887852980976223349074064169230732738168521327948316760288331392667291153798863626535606710801778692169633734876344809641109728377612619223601473667641378306918892500588980963303335890437915256097391147736816495497277032554910564559840343047058468154169431375137628978449473740486489831599390732062302122235759178971576017100396746851013797188660396759354286892885931325489190635221817036911239293833947010919595395712106965089867060522322111657196334843738985226418646249303552677544222314482318275935900576849359962685079353645472314007798986800450499142369628233971083991860782499255509109187088411976555889445970396790323530425663594542816382363718778667605837515315712793905757055259780312877193320668488584263025335430858689505749667509085727787151410109717074230188385763131784095666240077954021317398221815583828454681291053562193869095460788393526532390190764522696838282672114347805446246776665024774155273735008848223078601288558442771571172978013145015582969276608031636569541277684527061155692199329350031912100539342249169192837246149005167072154771057229325269159205574100622374988876961847905202129620389300556377639043378761979373733333414545778635619225157350530404215018230985222654013615535825547328936498586332904095985320447645210030680836519127711205379631951082473144863283110946247567732421945397233911105359580058292005956006499046949816455894386125384386145867888077669529345356876396990745177359567083924431872309147936129945545726849920436572219369923993488224252887909967543821977645864187795823155055046744170344975275474864923360864083320616124997845629411838047840668337025070258151636098560363297077479515351493432108377557804124433445997478983602099802626546996590866137388488584003081152877931482301265109422621585242984609048669885137136153770813133733728322635746155336452409615786199779100459018874301342323506414709926252573172842545686289152270490275445710902331474880256142844990961096306595332017101706435744984829661940725249503397636433556173670111818085564743376773928501648092733899333344350255590489141951991909721038469488323540166346166299311179084804394903875153337372797059262360994340498807742433497429546137962971766078014343032533065078734654032086752071613740792621295753036557586047464600181211423651460699576123847812139159883011387416873835928782916124458389854030721541898820205426263793470226596758516171856883874463371755408574175209719713302866075069584339802031145617737257381669414435775920285247800041766138245612300597677403133118204374624774924227673857757435165087781841717200305814191485586864547334858396332797727194668660829636639378086991451888733677477818735106425671632895498285163519454049085917519831913120760513822026300342438089310114845791305069051521316245049047238328570568822471762058952579664150284020291329196684311582929633733653357217756358081733163287428353412535918695650748931041465486227620017353268252916454886915950788729317307714673294910330116998292867116270036196054533210534632561677823970797101699533336829190698814915941965029610895404326351747665106745758061478463471781132218739787620181787804784022728606188183949861206493032852886748764959915784796074197926773156444911045663586526653879271927886076738977954676306727738866285654932200471158610144454610253296087489677558028925042104914453712585964526500849422174845886503893287567080423693203907259076195579139932112421937245455134698839500347151920922175166689583921522801413560898236058092409119046759009603823721403203008157269531068541460099985291618707476326915443521401310684595712223745591154480838088626357517589923079016801569633668615108721724364132651559496152839488387309574291255396897548471456320504083159721342702463230106671653572234587484091989430619654675607887894551900009899248560743307110190341153159694016231326259060352508090820363254776541604031995930754601679194030345205264609652002917801676392430479304272262776157799902997495313691828941450943497199164563784934818201913212950238781742539858890851116213823862514508028729286136315436559460318626637340587995488291415729785375775743948200333128003133070877052840417603965519158366939630550305720592295161458722383449012120344726898798434769364711562574470510926652676766107394974102047149277422900269519116943142352341642688017492123246933889868756573892204934799784571196704202333693173887564423379715214483414275266927257106462178094985641457854319202564782525746559794358651367210670424912621712128086481968183058363775406343998812629562528969378769124405594585327621143272570956240580082370546858929707979542589207375694437127513463946175297983202181739398711571030100162393782367908114700575895706596612292822792594819909347508321480727561615227829064198564551187642828974000717611963069377609114439371761412411739985361685784303898657558176249421407575618974784848813708174783429697340408818763540565508275893916552222353918884909884413257139232562050018156550065254801015760458386907073637625781115890166379948982208565318390479150383043594922480888421373111267632791183520924513401779747042948499663477078905602434094197930628768156609993753883235950529323798992313371744060456884911802401096270511195301610983106401944472093564369220960043547969865497331297995697243277678736261496539712667023219218800374232992505745148209888266869115783067312930977198808781642323814001175316365207920775281686022950817615780293480127527084622134959856173836877155575835625108238317898558942594725908621705947867469250521611403311315106290067890432163181561883920252665232871701770949041245350168587271478590839115364576802992294344076222873432057450329459078951367422209158820037338609487000366325184958446970265403411145592142714863403084485378741967374567658785850366887789576803392017008998875236568605875487093156195919066473588921638642727518587674241684891879878058882675327524877891158414309278360108150032120999284623763382416417163665968939078540930080035654095981278293756543936329195032608014806013916389500848524515102351055791869778310576388868299486959588135850906033615729488863747556727068073666594074337398383323116877641466331917226852702954315082635327038801857412708680081435275225540137370920878105716191832663988481272132950205517091075548127225122450016727844455709842276800363787784201168219940044679961398691032279822408743470098762273911617831369752692425019838705517529076170001320012173905994427942491255078312891107821027221875672714330820977640014173625287581376705699182458513154706830583630170642558219222494903927053851585228910413310249262350410736581756837459616224352186515943038485565479599492669685727268193315402290130526774717201081940489183000674118854883533382808784915224996756202575244189782584550813434102873056921471449238818545063362865970277301724077489033229682933871180999541680068061846472948179485863061067819596257357037567112994453848348459620312648323395110390342755812093509657080195521993612215779325131474288621179040004551575690374828444899058995916674917711033073652579413237056095386676673937388354005172084721039511983953025024860353582430714768059805357168880239347399011965444584726493247865498238656554459362084225487209716110709507443785582583301896298202833791420072819290147811732870129307234476088224810449635342509973492927887908102782015596652423793840824688802029166187494020551197567119217210629192484669773633580789922955584374080094963805315503504320485395124037411501494669574939643053896380638122043830757894391219512292629927917933829005037326067637262844225798972500358688880558280776068889686394827849457572826944112417136067928836500272498519254064305977522747632262643359321491546729730131905712859385031491621502844290781642767402886536179656130391741415486139542226953959285496556965609269227747547744507286888096005857864043935877560002741755999198442463065508240272327425095950554638988743420324834294726999423238667612221528827603067640301711748920855801818056121742540665076854068619139470274946570370550477600544644754026301590485728109625906874644202548607429280910181061595523349121212711016638360475203709031621843576281820160209215687878181561923771101164232418659945244745822244363030877152884724717164491436043705607471425758045982731033654994484722106697608178122380713125413480286300487850293311004070787059409063744999895996651665920502562127750135118359985472319576651165343735770777823760248040957726586068024904184285444930717128105925067651855186612445206112288647532854859551255236185648135590295790469820433873467266345093317090735702079020378670621611307585680122043803704865320832071697414937618556689683462292721555742185179844280538968308004708425191736675120901949920108542970806682469390190326316452256450441091742337418916517763453352329446645704670147684606293665161197706807720926539995495103959162965098190196488202651389006007179484424210880067536200838491525619358085164211826885114586280629556884365052532782260105556525932806292277761945682987731372978744937615674316677330683871053909633157761875815338833099298991792268944395366946337205397651411495888157414408382350640117547272024134594128532381212765197974830650693091424042360689017913623643055432645041358620572021063093657598877220725761080740199439496634365941653867779809952849893853743265034410444801628476807575970727748574948116157270814196602687449678833029969931753397144302434735890611265342407800271777514294113869436734704253242086788601103294373175573678579560771428004493954685783695222646546684223629018452039127159375030434758385055873163242630499852500897337087531429747676378451842682327347444071927683608172344735420610603960565178308444258527254384554248168066810393706165756859854899029579905375172159856511715095983785280123675752340974127598322538052889994491107832115653229773719083339085726627934530499369338560159821714422256675535112188212009893803133866605649448605345527317942538930315837620321517614551855404366643993266988617160542333429511026628508501884024975819160937525159175552053614985381410685533023128263518486019641004363136368327853866371505596996161761351363872563135846057720564834226080656204073691610759888990726498377536773748355230061018414010131002494805796977102771106821039524310484533398043606186460253669087072310214802750415243602603994263027587353910098251674653125667874790312964718984019298423673948416857303453630747321438205757055410108701912241554623012722532208855996126910864189348365548165274176487153604245885023435904675132343640558831304504659876060469887923931821601591401038264905428927086759298787324570215472601832063006475669164609251235454514814824778579223837729016121545395739595377436327832486684318492994646204251365173688847041408716515254494924067370181151548205061040385577993914240956809182103070398135077761563385462052622818002973680639833525541151857014658302054862994382657378278354784178428844248172299706967288483600686061921716017717771209770552225496568554132736723706763602044691473369243070188856605440515047046141078373623834204520415923905140091762741000152060115940791853706114706214111499743465993972678429085874364285040903255994541173653011523810648552584957263594631985914621063524806324045501008869386839972056186466106372420205308863075112371912786981073529687314935138818118622667915934412358270451527593746033236139107217842163968507514601621372944353123237871849233332544425548435171413939701196928945413376781629268327991353354470901064668224107535912768374119145781844558652996281622825317468802352830528045118137906223881114717556092215946043666064623326964421671715344566692234681726268119559072956951768511505109424532213951162797491875518761427378781048448935096311985751276300302813648830750761984849539294198568014051512628009767744238316502174947964293534514017540430467897357555168073417326181558342571653937661687969359357608903737870181900871917266189647905611169162032452702369518484978899419236524748624252072579494229691459791786593745299217686203791944408369411595524294543743559206688631630275339117807846532553839632764159014736349566167363928842002541868942938393887389665105875556206138541395916875272504106557145213197929664013745118486586097656040021927759364229023966147664280011091161390985312847182512473226275499658510458234695508585635977570774137659566218993199660938010730401908992975851487529580839035103562346312466755143325193499926626319821096775617461662944907147558410158402553375813370592390382121110559124994354155953312302965428989251909034383481504837507117052639273554509855491779178551885856723865032212503229909156376164979871951131788640412880318881718234013284625283303747167290335224869240809596314242862877633568381912980932112238463069331350536609900948259809076895435716069532519399716076067317106240444465438734251095759197849295970629189297822342824180036289083446996234146844166355933154478147209041917447043092497024816063902849838870106044206335122133446764704715163683114884357539770359883026965740046450162841790021191031239948256555701144824810081181615305706490980650176597992390365743932479977412670404637043902454895531512975698255117767908089853848352819409515861248855340129927750210336188238846371710052738535714684823269098029929393879215741761656655194616922197593066803633521008864438161116359582865730683163602891958496805053748947539398454989585290970853138206873289447315036085734130610126916978862558851977288258534272104244885021171041023807963618580862746420000058451643735322530316375225640743736049746455036798553374573429982165102817822122843716965810971614757997592307710793827586371442123515499028443954664203127975867037763999761395568382071647324702407106880524698896054046478397287845678064722442273804417986303578842891991886008489790110324195603140626999836502165412087899463334750391966548579717412114070891320128182697296606672566433711844742493658043121709769043315902547598028130570041422275069389232177618898273963356609355163660388889020698603783028232883223021939834502881026671892006193577224127422535440223624132314911365326826276762690398980937083354133298474912894110223983598254783644918984637629050632045756072376650841066459881817158449111211947979787001511852876480609157559306786261878444419180327340562912694054837539936845015926484887693769108323315451457764013514379967505461639518025392688416937697039531980266230266875910962540390975360272658501190637703961826935083378956681031511625212815418273274592450659712906859801169924817176457448694970432223250799755401859240089693719794726084361587656764386525522417551233948720713706662324525996114082080676057541672721006739416267084463379628360956857486740832872970590514312115052628843279475783388990647423397650569259311048944032665442383516529307387653790220500486364207514694794583017288046003321258116349481787588865269866609749984153084681721958050032465943007236128106029140155841685023515812358365436677466853328191043924833515691540832341782791045389157647174793637594503623513512466766494690632145820475116916177255458779713779932277051941965359007885108387714454099692519830919969892147047457250506529085009684664604159986282908425614121828390181386700554007799984740362691929730502819067197593454784124945391737033758776793104155581447151375526537850795732077498277634147098445778563261840064850798853882156170474964761980045923191936408872436193586992868716580925677551381379312124957967888320099037201953408929276339988349720357829067848523048293235823047682517712274173022571639490002452887131013089957456306065182274816943831137276788534523148054747839290595956253927702511643570326724249718077979115554368839675009376906802315463918513423817964199450095834236662028802867915567301434987767693030125677547537208549550649685351279116692579245758996786870947116416126432694806845507560410147948530216033600199969181733333833189545896711683972054240437841810527960431846600936920192961680164718009202219096010198074616648123726154938872657349834146190027628907253131853255592292782429021888075034655189439109395814017782890858441759018645726824414892764665639638417725298061766326763208990624279156549094745602760764101235287319385687457002446158707302356222928865731313965161104129679827483452792430627729491453084188076622277877402079622001211004971457986982454070006488126637828356496141765195620999005157253381443038564136021880976035873782544521246524318511848836345489425562783119306593758198020096140157154265957216449083430292626855257712273005004698227357275894081298774073061504505447183433753534705916792294596863360951981184475591027810790500360885546210241753143068663547706181449464418465596539830850802917060369818540938198148655880712889739038227772243932959835023878365789542491049634678562789399755386636020080823485576322720353152050487226995134405248496686374474057955092485393833302725798051326970367314286660139429022258409347085090631463112530729775188244741737714793807354401754405195970841714061271030060704345432575307691918218989760701928362037270234429695841723214215238145128239894605652861918904281646611689160227666258673237381273053824749006374425306705274783031013697679934177859693484980994806459627878294395057522583505334225768293078936359834255633704152970209776306277879272735983490342324924423640180732499973543614447136720684013503060164968649191579133729741004536340232175390810014395152952309638312101853434530847870171414861800168635109900628753646267499777909026791768062835063533073574235046136727751049773294378147447166057642748222755989617624803172976691926072728440981742681114457161553476811963123433518076256701331830715563941861234501538437799746736307409817824803484046251956810251482425204104234717839085767890549049865471861490490861836363336447822953046777075388602018507714355188828466106504821699099394079568120606726409502728101072354473475580778342587215020985740063492213845590602167709458516491070463469710043550332899181905145718702600869550857209130918158599773089254417148734381279208795209313069428101970766689183146593919029576467843694207636058003516715411977441118641537898258732299203879931070690806840705360457165147540585217242044709648080959906060725663994248098737369317664749652829449315988103715419724841598595927106587486147557377495936032038606887414564157663362799553045041880931469784819349601219036724458329302398882930998702829031041446149435617809119326989060304332773245155951673853249412355801058184743694344023566005516214109153339669063552923781302814182766091636152527563594503276891100251820843924497022521745500359950132300001448056015396087073900729280038463006594595977062455398617438422610281040275646511064396134483174320926093342885303035097351763260477336843842983289255847242433589501230350425381010250135335360824335523956241311985911829917174669525286023275490259975849989971394512745087283394943696685871138271451681367557863011563669852785238181833409072197856734849842022407874779874265640072229428381556753135594442042104713412647106119090453458276823901271543276447823320656045401770142719788816245924062114784416968169179410950677196286347724602992627663682339140308281847673361239863267324178992595934113069405292015020983087560194691114523327879196003143379877083220042080693210777877862198610571206680264833955537053216592100932822385590367757260046450791488937615644984721898063338162354160082581973206091499648588409293886437382793484141229708376664651388509178905908366252468563324833694606137803232720543043937833582218531485084428560975329610125260541566886602469930003938455963921784783114892560223077965352130972219190151974528962583587661958229073724608393908780282560048819726620899895853552607070714644742288492007790404300862795482654347970160054590043162986508850588865858644122570241903514062785643906028133482946751003679404635084843761323226957547360359409472514291276273792162461138351428480353563841782964400248079343034590502981887720428263930116269137603184216538088294960822698027923429103522627687055570392219258208472113042514095170934422869966512492701301127793659445718751434906755957237694980236021916142315567443607503323039593029870183690602047135956719690820469019687611187906478764083556021562614367481236365111695261306365328999942173495088121530225770419050410958331020200240914344335467006429539793746262584042148058325016553834488331478785073840378051782671602353896667208096547881360888426062904527653862066156838885801248559760886536101128475439074992771243816543504751915955427915659513061343534446487487428459382981330913659598665227192928643277963209248743269273877441982976216459310161902301027788649359701971793008795434860366591823454832920084034994497251718385486421879129969764241459487745226685678508741471546779042986685924699905662324218960070181666481939634790648458892803164219087424424780435067090976322440037523085761276179185397541078030196108863110504556171660850834650108589406392307408047732347580760338144058184866752087479803788220588171541133605629665771414376285477717874530869397584189822091308373200098473985968610783402230870835615180833150549001202365520224577692144917256307100619211188951794561683284523503813459394806380304954970911764198887431059924431234308441786231203466057916250552224090592749845086997607146105842395483170210952587031527403054066830633220433910746440656318695202659272647067478494481618933504651125438417116309022339143033949002598761462044502166932278656360129513722479891010611481496559515663296919378441635763787399340907453060579179616203765107401713468401126937575853029607673179291505992622330017424500032335590115740865759020570503683280029883556315766426733003219114014532012194919932004122867089464852933745255482523533916510835948571693865198942383409664241870048867364674832178374112769202043565782150595670264566834719854676509260890263685830468125591141800309334461077449433104694282511430980834692000876497529912616413369890493510470459315761093201050430505298591940484357628594359849913567418616908411873522604912193558854399604631066399242757298566172776248030679005241345126372029346791444860290306519752328098978553348222414586475689890842679654710734767251652635361940146134525753620593438157271824090906927831900592884880245037185464705692426198186329814334560935153136861090588601775486286552779811947016788916370083133697569786848963571514425321353009970481657037420311123044799026701646337860038241777744905788963046106443672675357187683543024025401061106923365094891700143253871445698914179115873947829481470927515173253617055776124509008742618449965831237332617197670065705109360626693915339771720827815517369013205043524031296590537702273374548165186962630362334635790986449171266283500055835698681863320931024411235890428625455136933497154244527878658516446355971300281046648552365181157129644656818862172805873034395616223989939916609610625124177029358064737628679855662376107420697616535368563133524039978568651783156572563102993392554060535440740646057405351070891753275609855302405244101757124890329042309187297819680204353735160753227026317474561205984610669146579803927389177209785944801918152295233244909185871265826232946504893173330891288507718934874401308149380447528806165428170163209409636011507509437175182708771072248456457899096881156572304072844850490704532962244062796635489494402321056758820040580062753734403488098420652715593273717965914057602390287258676291594503552841268770977895809894285768666850285501440751219839399183988544870987773944088710585735605116852049950784171064595762864975506626982120062174090188855494897650321054994721879863642621106002611575893591052973856143610360182315964252164832993142403646128201116008786455371697028840401127597288910770576678406071292369199877627226314619972425446437144214140087430097107278469658278988515263845935490425896296574466123125181305457756962016442797216018889941924824652101322427796124445804880576054181887641986334968431648889808227198199831688506247727677601353641000153825043775407212675603941477190527404030273556013729609402669482832677516749882636464766957746814862127828399106247787034801597653918783901089461662938165600498532263729439327830366253313966097030532209097853779702736950013583372202459274293891309410315249539125824305531793301832971547163077432690399316234013234120843313997083181373081299170872888656992793452332990849539668693181264193699215654600692287477320850645914862536275414343335422791064436428608774044592750676574979677178197566622232341220271163722419109259284732649064649372266665547002265937999186943201895370350399747649964680709019655491660319479603550817129611792271338487008281121173817840280136382599559554478097834570885104672294439005422742515256188358259413906085494935348343577110051561991420618281930713100416129180472491760503332860212257449824415854614591565260897679367390605924831997231763489805467760703003021807165211536661427840812694122387052296522255667641046639257012272241679733767565750034623611049170295679748714973618400366479663782321556474635671573255673773074729122229324657634435960502905056523121034035288783594354054442486075356313173277732329548186859035457479971822876874301665138405227766559571864988224208083441729266976422192008809584407079649514970224560238821619765278622757492492632211681395544757588978974562750037853556443958459956582897218656641882595248293894896980225868469372923886859768788099156241336246262625554085991978801785249552907436767965514252345856174464482634839851571762437260957347657545143122836473471805973345672069085739065279608521972809222812321766468162838810939048387605511635106111920925862438129957278999039883489872787403416695984026257334054151621670868309599185568938631591725341972242228661889738156635146639522092167134443797942690391214574222612321655506500591334797795594397615396405306362338156556870418370741856906858350544258418937209548050907704739734035870772713341322115521145905396606542122769375690237063973686506977954352831115399668657338376774354538589376371020594665408808871163301661862948250607743323402174085499835118168555476371396117647532827580721720680689700898902631241542563383509769410126264076466205479568938128461027930330402930565299841318159143883970580909744869007914047137264622960075944341238674033598643152910896110232342793224173778880270201488781713298800063320094103183313001847892707792369611227342200967642318013359946201091618361330850563889182891056653622666357352887328013248366732545497189113254773142041650704577356859116797141230100930313830513094901553021464938528792930402456326595553990431461373697198315038699018962227881207657977989094938895305799412203968151278308077332023845983578457601713719672466871698060388736932615568852852692501635087074670793658075015483454354338487966357197651350188736376991628415849434404444558633346288080179797777502169001667610329013297596731668125544730180816181795461539559391783965056677935769290506620847886095957680530296536635998653655096713948723112400853697564272015442717686400197137305680706766419361538422404729860068397208121489578073525991433480716457785010352785574767148446554083454390325393583003058994693815537791013534495808949238903779929834090635961935474826946104505073678548317767124386462822599990054478022248678612821849262971989390200748070085379542752625027511469238544519359473102294217811274562344386154016207527182317664914087290393293000231329134060650411869234026575172976815437214429205449717018252184749704581114548649086040862640642597971394911454876430514509824540468643800673601218117794275468029068416517792646318128859496699840795575908482828392783793485237515398105324010196654546582666669991443656838840690362039264070650935698900893507798278120175204349971346104819162366828862691189869908105752398291163841538017619198708851341853362747833874430156158841604261715947755400147441544725511791747899411093339492693644744225580132436998011982636895477621125117132605584742162872600055856235795792833747620848415123487208840163796150575572067504471103706790749347189658259076241104290327329978190139875618666672604781163724754597510853724999771109574145682390646269352099322257394664485086396976722423463376355789269261418767414822844467542690923046370885576657498982418040485129296731017297332776553525338063253938691648594937842750900345816565108583941710114623948510650237304280144212427537865857827076773259983201977442966971756400540083707984359276398622734269547891918234634086300154059448700043733896375712531569990627913526514643299915496113814939431578747585428278142999920976656486920328077372607246786973666217238293103764263866791649393615807796158738347428304013220377976426987634993750506202487987236238784288029733878769160971338455933707865623582960341069126710603779662725277043829610801513982755831442378376195248144350128769465213096955224860290694809763139700624101529945128581153273196563207267351638840443301858391264763852339446550241641147175562711002841137082207017075442336157094810357220278494165918791237993239339224312568066892409396489226765236741809187384468957596878759700011104607652785612714626458622821922250292475012021442653428174394587992788274899340701714332158247613893865499025743892414098843726028764579495911594925226672939616373282018693243376056041533972999765607410381789933550069770429482563903102453370292403548141613431958259220615908598853215644558907273646825889134652719995661979094261613469525598556616757828165689253779222352917137812066114260217747903001100042201660801249466294528650643947775242041248393195310306588317319791856194456771037424174302686975604948315408914622866059267687708740005318366516358736919717874103164331152850712238257726415546854482290393053755168448770711140610791692114284526748111308947396330786769342912561751746147909777505576479375773550016544699201903524165179593153772347042773388429192385878359903912067779829262699574807433660095512738211771707426102541922100879969321227198793791452126842694177221253367370853443983232815683151016658750694055303602469943098118217144063638295966500420013639689840175358507301663715000408620854606559467480255152036387132137341553783767451279099929365137827019011530604620968856464399088198904817840527199132953472738350395759996310341656201053088536319294547070965980299987468363287556973993672235145893594293491229974180085483517476754287586893418852987340917676952808508449211990270769025789965192134042106981943208159472884373439570511114963148443595539214952056549020579316741736723422585185784208191966666391904202700514461901760687910124676879911851581760121934497449375365886912668209566267381706232378182286603856692361689762656380889400005600557978388182179549695812560466768109495297474565126891928863446083363775757079113625496027149460291569993310476524070282868670791992849211978518166226026654881803565501050594881501209280890220948347308451711806923672606370805953071968341118130368578179882103694151054253515179388592798034352611161733943583794491873539143768585624520337371006718350113406908243956241234405526904114184319916804101796556285639117699160687017951171202973666104432856837346096863309887286138487568441047921699945566391468498529858126973054070046040148108225460380925118147144693593061419053246105091106080931538182280126878429111694612823347997291735571880995230874497606672972089342021056848902046999824732481998440873168140202982268835015722394097677336387661196085868154191039489745371295893759153424262190102485988210786741674292531998239663145140657544880736766727378400549649858315633702209365254672724992465291078645673483803454030803490052491917733019854869907029305309439312658914057062608245164964514862870130993025640966938748977924509584251897423922533712595010125853844634492813954568421937057211328103866597414588171024284077329222692171297580046889616754036220261270031062902311944586631806130364625439878213085994195662384030862857700975308884768113264534312884106929468309259528645259660823143982275706148184492023864555858464875637484813405310242084852794020142775327759285951967128856706113196059776684473551121674238388191725423300063010343751097180403274945394022136450964306860208795531758951702942733173810996947196350777882662585400894540283244589276504160937335515713794350877547341025117111896263185078329873435009825115684397585194457986493845834989768775328692843563548748603501663271328917301199235933651857841852175496799698937707819771731901177195913224525869035346453471439887266516613286969325846341456217940629351141998455099225113999232962271969188006863568213707970126565915888752381089616765328540239029219207997565293404400041850653729094008742662894170597028726510103425859031292306762567580452064478185012580982215536228280496305355210585905664065503124221116158316024743619115746709012665942800288338678493832392150071725599717776517191752564843371307112689924820549773909492684813002388974286452830624209583591920988145704286440781024703892898919242439611532456747754561325960597530745061226528605272182648305667333079706796830830077923331924873714766427988830711858657779420363366326025550002871886689349786397165151556653023373735636729238569347152158204929319551242670739620407452161219159514458441456812300773290390212760254105810540218275724150054586499388193409118536087135674897314093787820309388685304639057107150803622189948461590797343946278383830105736952211894386410599186885573413298458104238764418788932969509646180941610858659750000510649479187916702818646024957830561245466469724943085109952024485813167302474717408397473163978520100482660099092773181608913423855779182154370980797081689275684433659196145913227195384575707308694301568887921819654446041898612499396941904983601976894657919317099374898501101975769253517067035267044366647759078034833317942811210311613796400383830395825749004595715960931913285478923406630896373278403920419598792216275118825807600860122941220564007814039281725580279286665788830971576969406871962422730377992997920824368308587382250924262534348768454639772138407043986628763466169929627515523101773048390245422738403904488110293669615428068317537162539991458282234945274240393005536289793901047654234257991736032208070694641444903541115998710340969282392420489277889628118064352845543637703651637488894267625166996891193069832380020390659411970470430677952245166158104231309315626585031149282289591538312825277873565788945713473926048535735123054142902185000680284126837170100001206281544389046951208650302594927355861892036570891072748479193076090596197654737269223270667503874545435449636713501596921498227365888196130656941613191465923060049646526758298315177287913756642607462064005610439631588615736134161402881012895430502817543343214396740706894659212833042775876228617900578008563931814558610102545369552194859312650186844445177872494486493983012276061200271762595574588498457369987344355035341915183971066332472558330508769892743805056927294126107716987530774182696412828357549087040540459697127839674948098726201470560724069389951221050903771346526585151178980610114186705588321081265958807723505586520793750133604088939771767775471555984630954782968884034793950121622456790019247771928490723721340885990027595717859796018868859582907715367862031978538250743337813350255177709093953185391266532854022892360728183743417358719208951067989234070373134684202202656243759201421988992899840056787650081651739641532190656804033213568849779794865692275233452492562905453249931381684314707127970370953079907988950099136261945168850439672820508797207095860142618662754559299283453232390415823425253814531601620949923798212083193344923481310584536794056779090553682160072632634224959932446474172646227112109589373635621269452551348734728419252308243595888463397382045990476923003052590279695475687427181722784307255690390682698367624228823497416571169114695183138930487052056071213941618266932812641646748550181168440075812357828018272918169381182135806686678085611393536972916159660361025796270607169797163877603368222679226319815830821156053346647385886411791949641792311624696859647896994581561163053099640425691326177624464340250341645675115436230878509765150440594515027503504918010227682916422094957390135056244120850010752561248792928867891812728136816347222644014287924694843785388881406189942762506505097723341603607448095888444486801278795823465719159398258746997813794023549628159217721152459269780873813836480554013091073792136755786514845946714982442225485917050016868658445582086858914547819134090549879259557588219098377125797737372107382921091761803303169514621977549357279723748286430951374000284533057332119148468562336896404787145085270829826599805547870701321052611605054960728486601699920255133269967692196129101069918094665599954064493453082008782742268304335859281010864903325718790262294665181959903552064762201993141178763995627916212855868163214556673194579852446663972989898648398107448671074632338118483366738428319735265510906691869218458873563336473150458365653741543385459219892970777028831307545188879638235495323770746150218668345573919307884278464789979649510369063491606945433812331716772498812572247304478430331475862803958430274972013540146442082234226391026758976136949114613057883214302244216840906128960733172613819514469760668864620445124409423452908706662858453292523864546006422289009337675682710261304085181539822000613545322692791455172784001103271007975315943256296640531784267888046915294858825411568997255281236559499653735854713405383166563658603780187469981410024100651863878255888959255803995711599446797443299472458609593975396030939922012675518499467702740651520522140952400586801521165463269408618727148875548640335388573389529584792417617845780972706025265173028653194242903607276269900149120686801126303038863442304642825330362921302920111245646143417436603294811217923925239479609383085927438556259302510621354090331420165355805447797510440582605512542538695451106745807873339429271877431751006367781923100976776041203952627741111432961763314538997120994603256879351616691575312795069655660847164855568064432843466990266274114912627062406965538431842684243992938924320001317836002031255838131214164154719976659452075995999325298836024744298019377852374158975750590769632180727296333202832231673887214338980449011185060292937127052593738555208230766097629922149619029238342687097680048686070719867751167343850465262517336775385842049154595633788054634787863189049261555620543500364567822646371237591325029495508249638010338992002429482048691551545348629642591047858431358332068930147722272362474074515345483964966999294960180589617433219067675321336248704357242706631441159549734306241693336730939150312337640496562923791267633354609573868367359170213183852692680081227839380459553733069463150373775248965112645357272589245868969853036097930546340307334511358848788149481393042930294286352723693678459979611740001922801836442695680981181321297841239657886513994730857846403458565946654672675461184448375926446195086118318943579126447359545523713538656772893345508740126682086937071674249916842540643615355877106345014593182305964905136972455775483123936075755296666263081172160974312411899891706754971040992271712553366344148102239393779427105312704622632824787703025801731015973551422450580675810115029828275831645857030545089984632959998093104145912521996571010632763825679183955093377907965261126038892120222130757639829678654290959014823189509485673767670724358798899778248556339068374473341595328848294687600393167906846312558555382904691490605960535900593040461683477939601457008216721569053892055446110238665415231266051022598355136381808814229928419849027999177438132036628892861064560783584602308194167923453555799263640770041339350475608551521244059657167298950677331778936401843663665510655618849380242408298125691839396843462525120518197388811549297539034486286247218535874490249366918490714949015405721524579136274892123661339624012904521960911975716802824379729525250311088589644085532815027400383185861287734558929115982324412252624188121042619002466581551712253820182229395050660151193255623796210898077622127596111111458438204658282612804117889408564181467887806841597881320325642448752660375821392998443392870873821055462864085724291919100609535820113668991979131392833552352186540326877207473220803310205033402642486569940296303523925964556471725969684150579102721455873312552812356937115670312660518907250330380545992303634210051722405543650607634422103456395585754850144507186190003082705051189854885212011976900364273454423040383210841011723518635933526752318405560181693772430276436315530684170964234997789166938738097384239246534390852970413407435571909896308960294538777162434619585347517493156718097033962730751830083268854347796448232805566569323599620154440071434117873532002392834828663748877642385062454196810218403580287173340367229124974575021738019612253569694363332959906342299099387411711623807463782235534338027486537860859110673652153003090244705721468596637938509097690921951964211986761385944296637961195536028472326520081500117234722543024581383386289114634613554069267664236276091077468058864875787214673792793351370058323641455403580989820772411697845625879648469350147085102620105237454707032352409086028864176564046150020517819920264714106157490799279689887650871310908824013840794522378912618858846865982394905877516545985019084620779476417462189518124704117541921521326077655026699955164832159366222061734933060442233365834085502820414112944631591730777746535687106671318806123320778840823112346455119150990464192646290750713535457924177873668530913554247599684455565808443575460758671527503027912035854624612492136757171749396562023681206530534369585583366692998288599008735759076184398363385392749866667101096417840705870196040596359517419417900730015237115934264630971425561003019329531914074768691752375567754675002437326344756796630135145016270947702707869280647817126304321723854125553203707312166123324179110643719994168014409582696904410161475586539614986753756866361504371177609102678506903018123811130255434891884272348620550003208366903722443323577033687824108747063648431737942058239345297844034647956571776499463577795279824803907470528201752719570259786908086237723279739133168413133294246481238154113222595013178837877945763399677589046418938878745526398334642295898895465934620352991339319233583029231350422489160708543007238697885994985872692115257357815364873287502092385689833746933419019438735393647322471472292853987809704510763167540867155343509066583776547120607774829863620086331473794843232524306774098826035253583466344458273007160836573257992471685810158719139851015509559055890061603948351092531594602029918964230862743594890834607910461996965691862108620491004483169437425164511529319669328462799198670453785082037156728058339020973316617995897210291210015495018515512826056418434266007904834299745431889350270983145606616784035880653207681666581906674653987165876250299415534855828334516331611614417151379631464262222279592038696082996653839312307080401414166722007380065188553466732768682399896104187057666429260790600018041222342213586188174386165318263754825755761369329718454802963731377416589774712522021457043775444886356324274094267830729313032704846227390708222444084524587762892990541561223848230894611148277129999055417915800400283963984470905891185509053955114667904477697395401614850339447149364167941773726603397034506902532274681896439245512059571845907963217818916950150843713612812094859974126958290767669233549395444517405928599051989335348422840303576961730771109018945794199607277011483031865735363945785956091508032331492596973896044494366802943394272254245072181020700281031514850160233566720009321315830091638938609469502817406294569445875831825313417793173956516849056783154620019527125534401224332685018904650667861564554724737826001045614969124550222843901490071749617842649372134219526244419963668782159039330076624243705655329884178551615834414989390564477095941686682892937689240899547908984235314203890396971389021066411112689225224199260186372935940746355348107240924975742275861114997950395508105578854893776882910795320558291687332103920853965222013588668252102465648701302877434056977774783812454493972819861334935707874711901003693423601056139610510172530529245048979190809605097365449394030637695357139925254930777437384293071349252843957069971445158351411378964325065024057299363762211641048970435958720468008111085617834189175754480295423246116606956526051922892411883961981211103835305667359012318466202775694637879472167626130050043852248826443375410737998413346778483264879833948233643173380825708235775093081731051672938879951579613211622128302036642127955035521872260210621905713459856247622045068813721569190828460042932586733902497451055083935733224663379250159375875851792579281939861203089193658951111228878702861594898817086012464912338395567070898668841384471756778574657523457973630047280668241380619791887884943084577843396625730732665298945804042483188076619658825357899956445143727392195355526430593078052721583897465406515828139403675757984430686389700921081911724029785279448280778943734847003678430830243394873993549210848468493984432289552398368760013112820230435753393909467150387986258679826703793798031237603998665099120884261901990775045293430128524165707778310932600923324060703315099555827344410457164725857254384323502445679823753732143186472504990627777283448194673022404394936188691058364600018333461614300168346896404620263237702981794742684463596083957630035042765830901737257481857270398311799939054016237030425207247983022193461577244572916321272203648838834936840713826132028238071638811249229877430885163473033862405049921237619859938109142912041382190441965527080571783272059911766401768864616048668160322286680524043199789595842427946404080679893421641161047997591929237826889094511658565718850329525070325523956553605221397339224547509437016931544124695301904242389123696397685344923699918289378838654340086273286084577307481690948444013902755820303277807303722800951705485120283489132535999182821251160784072812313264588906068893249939214352161249503942598429854960111024905797377818005320393249949830756080710905048007607168452564479648823921597168421137616607270736730941077214414146133370183647653222789312306256221136926305043689908168995806550595808290519082315379541570495376536712566389579334371470053759390032606685604020414866008821187969423002188170540655103322457414484575480688427814903272460967044243533980597648544204718713557690880967018059679394323773203417921502124216218334316141636736721551462502044556748847766665790230365367955484637789175479412511976060755094928798969413685866865783633143678797137444561104454985438929759120941907774387828144091647750214922232933584369900948129127617468622910599108495290182453025249587835948277958019659043114168667923041404548254936152411569273980320126133869642434454843656662761548310887490450130274457855776543214107176951307659305155953028808976323323157923149569508707563344161991259796795402109807211448389655069943859639926112459611626032510572060661682613726892673889621516480686529346158613776001438622058258133655101056778206867635143938898099152621135505004272132911017094378481907676327571276872308408889542513746518627003112933753932334495444045417959901422360494957907954283625383353602029857819760886713102023512746693648502562062694091445435214415611983435560567572234860245197806739853981887557249855961856328180516496168318822605628064108860116008803097605999874002879398653985932960159449330738172111745569561905683884201673905554401944963532180076421462008291609088633383970319282073164230616165943189736196152563937410107320678683537987651275135425672424146662031983669076529115087745647299353923722022515376944982741719480357784583932807447253151063781674514233661056841693342666803319295821682570922551776552401093661313364883535655047324026707327143685410836944481663327386735540635391271786996813217338430802697801022570794544784756989687498759934542909692823645586844842263530504870357327481200462005152873919488597340456988876618517449076241644382628032912915534986418475104084193391245700416279296937872477157801821588968669314101284069989328776060330179374921406667130167418284480379580732575349628286887243068978481031587559056579019281435606772600267092036336964915333565257944802298320389839012789655029755496300888123450801518051201018902085475996173029008503694595116779339352724250882068883174987902486437399947065825192762559340023168647895829674357506668039772926110985662964573424076131401652873958114109687512622081185600147280190640661881026634829916562506256018566229038904083758336189592908478607478477114699527974766130655117159598311749585987036042841499851743074296762304889368516308017482830366487151215505364486104842469965423186233040071723933696372721546399916194755658950236827546242862649487397705349548171238536699070997619666043293505057364511125612197290008555309757115636011077858299409556123617002306753791778819944918758109683439595155857111995902415517695724002414806843338060938463357698596733083526276219494250321694983970991207113550970673540593852313655143384988048406245014470789878094717902285995238477853319143148826841271191280214709846293184019771455487898737891144882454018442928571416411303161332043695434070019937248804475427477760986092782604285992084090407306761633764079673773248202981622637894208510475508062924038288415174064832539753068622268123539532423404325516688527941003841102814777525938750972300497887034539787179744296146985031214267609166362825896309352138436023988836656608979125362517937586931243423846434225789739234002882647435133922467209899940488854964876287926836450158023846410900063311240704016705301408025329117869895984811553992080077591284696408745796058501137836467274684663197604054313418115981549995635612868615709768254730379887433885025375881111459080688323633778468040294157483496040085928722654763198190241693987645384762334200822894955382969382892659630108866963589764065419067596021481705152405999359812752559697968342745866029052512125598386475818013455894205271195395445359215416602500910634680240414738788284403355223666175521604764276138533365112632068608090295071761998102605735932996109412174748950630459513944937509997621482443475389627036093110111788493148716759799814146062008346315927816214808706545902479112538876315265167849826128064193401995693142877218531090893987195866706124536971010387620754099268748188933216303426904171164248910981139195436221695753448991090283519847610143917680718359957420273901269487376263517252794544370523982029553702976733065710816064867917476881249286572213978060103441782469231786400234184610229043563685184888314317665502270273560042621244209723465835463749468201541596396004901308164827077743692307141929241751199140315428206959601830142368740869840840838699140555909708603449289194658863477226867240466273055358794660134408731249886410878991960424573021266374457465450149591786288136597739831433497900011274012772639039376450207189606203268783772538820225112428135962372905337948703472601810658942704667640422055954558889193108906310730589410105742196937515181519845947134507473541488001487480367754167368633901235379076871868381769192088963842186170943448925278021638252476453890021095328416106345328346728449313985398103558261814769115969507477914723561872573731744521342508080349611869143278339044107997207983576776155547363473717987814556455816346240810528303008286074525174420558042679158597576259062691746817811316921441955220303906232155187537113822633947249836256782633379016633493465497640917340954643210111249359326168189318356947008025807545167413309195962085653282568951913011502366059925261452981069638988574244936569327066120783625489748852592334383970581759294847624297275403813787164944447070624408665283990359281606556287926679232651068086457132415307682926976139568298598285846729495691936369825159848135468054118037863024377925030591684329028988570372250322247844333749469363308202597289956509892296580620862152641193104519445151346259551928416157762599987600696606044464979091144987601856819126267819718266368953607773201665758944555573606889815529086674133241446202535955614734016968139419094934044937553915395724946058095666655178971434794124826408168728456506701325629242464459711317658076025573084218624578040821890750023300773406033064888502576585907578510557417760005093235290417132136026951164171115743721084081088285184460170500054902943694383212517167548578057343500149324344441173417473462529653642814671610102670934548173070227488912983596076299672142148353950613712210614451173548380821196380513423662937569947009468141760623125786999009563676614015569875335839752705947548778522747678256228664272437941508993385533148742300920396003248073085782952167028597572520526760683450979492525349829583638794510399936179478808236947828771273790095259843925155373177332710143957799526109127415458860699622327531907352360441345734011437348760009868900042070289949076222172077606453767399006346165214302539472613504696882275661282505311268919861931655758444841725695006146011002618505473491439793935976692287081306092897618260427780962074036194787317292459118339017482415438512208907408144101189527319800640590031335634746435911314675985957119261455143276636371024718282335876254837177228124797173112939098543693921873629101042651077328005375546331390734522176072031963733467660235647047579096292968792924015468016955927208459183132588398341061452431491225552507365897038695453990003771320516290529257579615627638261121200826681317451343275955489695919804566920210109752981964761782882604699288934793328698465417153255607849592869357427249615040386070957486059119874953291250697010559743143757626804184442488599475923690311107256039914655208792680634294521437178635479943530013900849110548671959187405639770201040682696490498847267755715085377290399204582426653554117794944151039099095112214576312197432832103616458568165715246918426370871429801035166015535944300127197502988080455784516813955148735111861324457488181110271837814833885399377647636203040047035235620697046720116693027889478384313256253060472293013021555191519088958061461203758063783474076711474195638616186161724024712197387883433959493310599277910822385863376722581893728659874494912027666625706016999425358382934154864759122328118070111692812084383795636087004556797896692732599107950475414546682240887304615306194374051145174771356828977742358817477694232289233771902080810970778471976720269981422018557419462014866888705422846646152639304708899016817285025798819791843419020075931511352376292225896417370207349831108676811618710637735970853070934817597107182585792146487233626091917114233743005411000429386852351793647715323242737350135736604913205857363596075147285818488608614870069738426911974248543889246865469989569150126598011310604635456030768104159997327720774213981605064658568979972351478274045290330871464018173772791460006730658649822417208945657750904000847964988693992202969853164684563299866970954342523794744691080501587553196286388494820249161481463423364083180659940295874243240210432942903232609914953154876199603567439370540651257493651101579263848841195222401331988762032969028744489100676476708240240834167729464188038376554022731366567618645404793853634341364576389756006215117309120188037151015001856935740366679212105956885506722527783789928940879592417340293607816582981057598936416189571325437700784322536320654708652377144302818775258515043457529368956137914544494146360243357461710461331482758419807616777707290959696463126956180358736276165672536633812150166970213352185183050372294657403194149305398993396416234001808704822695403822093608738614898054935619884917086436844468305801552813419219633297628028631123536290761943152457327552136841177624989680693791618319420214712524182832964871365085052079443331702842699062489175129320516745871203207668543141828723433775850077675210997603043802014287456564341618667864892664419636939998408563418522076064464857747102447499944081664577699401516756047794369413878730712609276713102462932651047741468904073387917187828017327858263335500491471787693165401821206044401388183532833116488564466611110354236861018709498087943278638391325252894659953146556150940637985558649662343913414006640808081127419614053459655339380888829010688100209237624032689733496382176670024343498480905384245900407757245955202761472732006035975718700686855585302301203057507276105481143885201565522604499553533322722149158423214611604797839255713180540893042326413621394022067791201048181726813442478953313020664683550866736974526321145507577386054551550718174110974467777347811384314723692467528795924831103568804576586421179435800230527627284507885932283337428345016703191346064453994957730710313113962721447894774125244165249431524884736788310340661778047569984213665744327772368394935901056333655840066209304456263185026397912411244472063724695346790834453076769695163597078666364464612785303558850601611315405192449482620107633823411169989963720100921619090407986859061235555073968565753170490937553402757400826494730434891133177479939709764624878622058512821708946026515776440479204128031565668622226186236831341525030125066062106532720771442732399476653894344421790514704302914242469475856689068994401077799812061460406418758458689001405854675481417207229775942716876383575929071665754446821754941014750409346486204209662886602306652807180050070433355305050970536333207223685787397787167854622953644858237605376267754560685343538265055318382512390988023108182004970849373540925877000717050713502844947512662728937998172064395659310558380924809148224064929770962760320389038582791598340889722841479902017431950836527181213884542437052349291872031923106093776678340932048760020905202152471303788375314403271241385473480746189259234419744119900376045458991270748748212769483319469234820219038337225544725359047037454469264171752861553156504999356283357937867302277584818683255056813005986196049651961986725889872893657145459724667164743917690600225791178554423434624407570634240144663306704813317605359652821628144197882690033379484091297894396437965733336399316873989882575057297133454222750505566911210310074930199679982778470621278023583551226600916154977372248205053484867768383732066035615909911107563406422893618144399672322495678843224800761566354185776051322346765770006300883207079237356336824938691305973195154578524559526993228892234403729391113550321776056341969311940221230375151334646392093608444664446222126667325641148884982741173691671842273306486924114697738493654153775136858786219034082143475599781206741584883471323906312820305358126245411402165528154350340128244990544720329709087646952292354101697687847695920008917107741623022608454805564277537534017816738489477269517912985072920937622255128652531449681480972078841100204493087902416763299854492942060908627231262486172696801799267736633225910027911165638812352628060568465043972165164637609775428330009265892906157678735192172530135708057353637009747225385675431879137566806099660244597261829491802656619750378433473302511964547447014827513127148966440337308902066738258499012663466225182779351822251866560061471911025951512512310711383682130919848391895666494162064485335518810319473509016263935155022121879596678670499007813526302382808739407367570791581125105835339078477869109165168817724725563639126127318187869209503897326949289622787382354900004814987859876786650259480321089643402447061010023207063071478639527660746535365104801684245597928470614441283744589693979615637924552381394642379301708313350746383590727817068647982449287868444716117057781144331953102414849685595891509995308534197703217518936192659978950015773978791908208084964399457126851185471349920899198741349873443270375686608193999927856504114917571790892917024038152431442269531142874825317591224831212791298031103323923305242536271059751712302158625992083939574778261201318684142722793790282399781439696871338040963867780872773011771872558441702953418349460713920189343549912612760493912788520579602290012330496522683462063218059708928258743706945961655028499284748720632023790874311651222741200779774062865064468633474867525552916055890696538401099254286249507054747574434373085696103021872168327700498970001323094762218215842358875407051329932712620647482009086674016381545669990137457193868309288493063341244264539235375308665143500316045670869722689460389622987229851770113994902884450173725271227505298270236903394653764634797352913096501919798757625740280461818148781083468262617517075701446019032411229721611492883377705669719008984340624068258657818234908974470258415552374568023789043346609648394263644124490982376307660200547845802486573424832054072363654787099729846027570721507831868997673656883840905209138979279700599595552428913645441699360713961381018385348689745171077316623674300086226146224897530336326662977867375443283749081997824489472708718428763308969040932324963889438071777897034867063960270196932025264048791897620820481812898523208014026896308555605152742035103634757599134253953637580755488950344749656368900124316197708193866937512009591289883962546486222457345916119285025289905011246861599078468860001745959995839458397851471286044981814891846704683344759498964259473663639801143947965817526303785155461758074768270246842680332739308887280970341896965029806141666534249857009865869229851589518068608933962327386807937714016181953414295945713001860630843815529647990599003642775429343766794443208324442449157318171474139782606460498294167784323601267288790004714078278659995635563112538217356779946835706430707324065041183989566796996095810503583984749676788277994303742224779654107945463707078910080911550359093947524346926954016045956583065847008600071348591905553430245625662930858639551270644749419038435719885592814561215201741252803535182435580687671514882207072902137473716679737626990653688596543479005326243356535046636854974081585844746942908873855475801471265072192557393060241228640302189289014375731598147665600291235155398143528164110007868785360859774005642054320021424262130401626260431244738149107534258528461676905191987424561666663946813038658318333101496170092756388159879915414659530056102818609530061530026976327373787480660080793004641387147367445118994076861365232110069856331686124110866714554081633829634120859530892669300608354733336365158512649296921269014744323259028596366495044244390482001850918338723345500229360999830834958310151022025351151629027443697468807679183982457685066160562560863187079588413544763529066033519574692193426232854911848477046199674963779294146272197850033860496495525605220618553600739124585654336929583318827780117574796678827066060689575578982899024269150415574174405418913623158431394403465826877593176535558563031227242861156220602255755082096688981828767009936503935498509407538541333572833280703903176598502327343622580176727216364128946850206267913960986217576316437522190932293854618236333068357788172776536933223870210147308090149126035508735515450240975869483388857250598292393109513287537137559776140289063702907075501040280100348393512277120502337222920798702255220138880462998256760928914356128199238608764555696192525727915574165058284462189382496491440724283082292685045436142562373109472751945363632173446959652086927756840840919529466991992332607719633891723503484395392112342402891903818081283699493508427917973108597622686380700113713545241142864723757841628442633210896168303717322145264306893004875872966642614837512328787369175262354146172713066028877515221754524894283098886627579088593507556853579089588896484500918932678021075110389014366609448838284830240130892197518821274511077135134568208149870304225549857281903112510587872162302296749225951065583300820536601268376123435030947664651504576266527260777060014773944335390618619344672505073514856300682084860315411837856490186925613432770789361861817575133924470738622216176347360929377000214167724621447889199569380961360255348683899704980900118333103733355735628311253571091243804257193205496224940053478331483278108793668603245627827938536027591579765388127765855444383262738236970087054700052954089499528410973323198740151304154492184078559240516606902235518379835087806942330305133483400004525215616413190022370116347161534502495606415335243007051439007886636170774415059142206886498306026102792433224585285636541884126537564578750871509944802293566504839468444867303510474177179244485345705804078448766412756817176306184131782693487738064564970591926826619403965786305553910855988347186188783099265375652116999948653773589712072811413692535247363702503996090114744991121309631826796275779055581877343974656029343750102605962539019073112682951351674159234102762185261453619038633285503045961060047853284067528219594668540812877379724605748560613943889340784332447179570869059940342151105060980459449650762279957639787976312440257767733824337103622477330075827505961860406530830039561293266799940172781168736518078427431702542979776591888219794484802375090580152866368874037490122495776592396486872205455146430971917994051135885643940465625166283298328344649646997259837311769916954782193492156608925812531116222473832017276042237049394217560341182124906759533262183459295656705723427316870275579385533556445095745775607236903889738402527077682547127056492795400340865360348455256138746590416481826829911261323133997210370463670462423070780490593368164813120020445435911011996085795616104609846758817778852754924151131992790327830464407324328434786652942789749497037760533516588687355454499544838162870346041890506170030225597558157827013591799683344576507695162372040651223716938506522714780368485719441095902876411909787638843028725852654433124808653701002440940374437048780164237747623805626041681003243244715940769642300259361950477754695674139269873385813991319643092170410421588224939855457649931582697461024133011382093359702889576742089281281547480747795393000455191673556830047648488989479593929235443781827484208596951481432752396330059500882002886586942065059798359242476339874743486882932874262338316921001177084570890025776633018849495223820501355333064450202129296980176845425124631707913675985842827598900838224071527449267290167365158383458714182492189250571943365550479675029570803998905992501214179796539786902775862073460439257591151580459411472131690389571231302309244050741835719755555418562108432693652101409704097940548779135478902188382548868469172832485204978978167116702969386465572656542848068502033570529615099401492007383496306431022816363659713696298727333480752351652642016500808588829820167643159251755280291394375475918860878753076822408468570164266567441073350669919981502404186879471972483963924035707270469219613410002403632284249078915564890722351615358217221982509409680185777687423334649813447737699847678518686544685668549333041214208457309368345566539985016093630588335434932203187052983126313166030832661558999209535656290308563136959051954982299660859899671015424524800507686047643730928941726043729746301495066156664641998450084088882847899760457805282405135252413216178797507115555628335205419480506535244512860516227618397960938240019585254865419440601628785984660478617868105571912161990666329122324896004431185428062837529068861984463388729987426669171359420348777853615699595940511977346198206499638439599117887564590787066462671619344449596140588847451608927380918370196633753490851468559225498875247860236188980495304206254855605565274884477387293117893424668592706961095382783963252963586539169281319595343365860059000565392957562822835467165824031792966637755262330819835199209034185495288754392936501824368325964997221493061019169170342522821992137205348272038744720984405245255992980788409721080307095322672020371859912925404149534436677960344583725866585157206660441589526783313579808881677979060376192030722933931201129004032139454704191184281025127428064781589391169899284771796934937693919660692138395022618378554928960555996917336139410755336746690786409573634680856275909361575211767602974132864655804689875275460033276696267161540370235736649705804055813040392417869494826632784165388400718864932070507326424035543695765086803868873225770827230685776415478405510446059798674364755326739300539359067516166779168672546691835394853948468212666960800318655337207299701150659954310004252014478545085783740032811452608739411186419125962819803215308385051086983436556352066101664052360078477653700460853340752921299339373073512794634112294777420017921941624509365668876875402557887918410367962037658171051489305140172336506794855659966457856705522204876375960842348809103725109910501112226792298987577130917876320358315766104819658790572723718129303625744593190882382922137768804309029591663221263753714635049676399612150798627797133785396073917698815420152486530850794040542343990362966104511349411626514793515061593286281219157743347970961933678278983302703833034688175100960135260298242663967670003969353152383439304174490701583361040243541613644473613427544246262383551691000271359203603350410461136042622001466507641181591710577496792841226944824969659962024636519317090200409792995423075109065101809597500439061963391384715670291988915610793817142142049008611861192251672435383869026262672772752934762583900823756937439494730466644523529061697066548025469235462891428804240205844533773439318535611355084853536643978849989008171101351564217631201474801665783771088665875310589936137480758175970358554518914656541186659705396270749160357293610643282121363474612425364289633280270150338911785837200441708952275687261931275871282383197004873270079900993233484446630144796234420100326212486835893596796018941408948578651139672526611450990969080707500241672131093776113095922967754164245525257533252209962758769149599926839622060760055552389690866922021905217704902629605959933189040897061483429840221043778269133290517894204196103387940806346643425117925489016577377717363598902750466958950722802709646028949452720373924557458884343462562436464733740558550165254532016389899484494541142452756391112906941978880536698027761479335692699847928020789218425919337581252681488983367659827576585947986922084946553961333825769262717427570408528736342127998529687346867143491348737453179109826584168647271489938050337967651912897980042969771799055526019000493078548544978436107576402793908939463383116731752864119153579765122431606443790120531345589766068409283044936852852170132537757900952404073992788885626811281076340789885278961152184464839248206369614679174431321006281109441039785986831017375432171304891125354199720711503031770284487613986632861235896985778045189029792047113501397589413005504805492451086083221694694624769324306405531244335518967809914989172920983986755928943964558875524523277523899817422232812280896662223381999144312446058087841781580576273331172260467266585933636517259446241308056648964066481052290678069595567067366144674502598349681317755140058695498129001942572328894460635281244241325787463404569127199151898255486155816104362090922998225681106869326612414079050166954433361699930781345202120878273226782629000117754078529865951861964326857550156476090903694277587518267078870449914096424568128937733207435321119748613680740337647344064696366997615678431652970085105724304182528913630486124076626853560386350221905355337818049733540696885849030284037115740877047460472124879520823726585251721619147640886230556656899538199726251000444643182236114199795879479227552462238675447554550633533794105949133071636633295984643981333937930087108854032366327794589653735103654845596381981728313550195343118858906777122587611500883489525244737656158728892838931163079771081522279373372047524121277260574723934378444878788677150047477329222658823001772785147283859373754678853861596273174766173263482944834834015300486788772441768294089292175144079301600796542035678669083104632093848311363101245485422175575679347424203623243931919869827389892299542066550511179848165224895973279697968279152438298286138504571315154168106686997227176934028432335424550381878800028195208138726798856599932337638753778766079756494725085260118801410046124963833234606752797468829229189855793666306353621167302152511826383014975676806639772807729713670163901346636297206666323575154479853122208322599231973352702283646484878605769489874476485628053601333290074337368454321708063393359294839256703210784294872271402391174254522538381437269857307684884796419127004877156334878096543658509849959219043474121675468899574920639920440207209639166988017844115430304134154440916000055738443410859713377362227219555487372178701561320462719968158351206072269273656424252336200708022852480337728181603694874456523166905648664298584189407850647761501869593155750838923224076198883725470335363304346274674715295231069287558445956002091802485482792058100354537824093229741770532073638224713151177046747460318652711425961407483972575376928312832305236547885434966369227154416776208524788418381681388160193938378551956403098323086102518579271835633039937296245564753026018452371168152402467375378966605758541970601366765468579952758850389206229560538435001066929729148447132617463509184022097522299912888034910422691351654449268706306380966644946436953246599666940468304221573626245095109236983939025620895542482743469950397190105878181830736901901533040732956908147367400685325389274720614889294878194129935774438333969256897453891523851379719343190140246151848993493952948387135227048639731543455351422751281846067427513411559836469865454836141294013821318076914701238504469853143715658183399824497092381650897674129618607466413633856060135333749119752466046574678047008604360286334496338058352493095066696649185486529481962261206008730880402623406628634995419427536001748911048192601058694014062734293518492454048138400636031288712364279576415944714769707956890059810423036652386886225596630130227172183035077043173091127655049612583501815683758774266467433936999957331915873732919243736504489211459707370636646237936025125279965342573257415092761916822202425317868365816408698967546366636242952779912174803097332196142004788670661094696973500388551958728784423286695093210963290373446692602227875923610475815561925341742878534536836300040544393184691074396481553591285899527623096101136187320455863288246380600021419917265438953602613062018779471163480284356690737922525918201063189565262685437025883352809515892163352089900973743325078011222384465140473933030008896519802535225004155427483766724592560159462749687226885208005598089611152904646123464745816600189616276595263078762810735517347976633221302995826691113439525526903899367640970535265001110643925646842572379652294668042088372814444026661991262524646471514950967866975845084098366014009759048260601387253756205644377462692091850042808493185174497029178920065386022317104778623261009270466375546718654986577402498347720242481919254225901269033283328113751352613742400653905833030493948070948694243897086581052794879397630049636129228753971402459145214266754709427760632288899421776780431469750411406529439371127097036537496075828810112186544748524826728518750402761267164912721402452706735205726690428206210473959516247708799866555369457814597766260698997440668000041796902723151836757485621712708212461065901606026502113485506330292936147089402601689111922255297778797604006207241931873347502325368086134276574495753684138785886336405169182274152881852076182557880346354796876571336325629403699302509653123956681776814278918197706611906043953792755722870047356756393376373924895730191703414031195826743388432467184472741388056937682048403658756056207494382838971682327082597947314743867035832848089830150323117711066433116547296686589555527845787961078319075622147131213257844943280107628278218498793190133684995915999672721900867175235929994451493087458091789110445110881583891075724581582640548667237278275270027283529338911014134101770903212669273571062853854903140452985305345220368278576474927246930410195052220776355121613006219443339720425616521638875521297335245552850444262628369422413421997534136261949484451211456939680331558139074233771489912211139644707016661547652946784639102058580894792569182290618237623812011501455370782769450224799939923087437688482834449348012499578246710986610464801540920652526123423745679429821109256206268529949236202923659344329340631155726028773434173349040407129554312300557414217032624629188619177157338078668173189389448073129324687737415874194507054916410083249911111293541467979234802005969571922438490230102966470043989265085982247542130345911903313546516042800216968884302891782538475775799768157992964036339873494720171171455195439481103999270628155843833187642249878355736563340989449252479173405719675184836751448090886904565168641058051840074165508516058749491609013941970089787717316887986307328309993779536931784108945582393614159582103149257687383842507734652740079317840173517885404461293046050869267064139394763242895577238068938100307458010377478512218352560616655795387778597598338945413766446439404723344088717732371551146486293011871986823900588749246363014787275212335313887433954704339670068171791833735691488230012301887635252748872866302175184829295261474796056974493349204830076954328983084442275320575243367744204916213180381399259521715901542746316999334307431581296745745110155551318104822745492361485380475656108651565019556839060982946719450389099580080883007807952612159790251308000842006758793710746235271436972203670733181272803092863046147119514562108572437623246158349643389736959617742428764640117393833625845737738320050590205339647636903519928478331112531833955158466876465793379807097626322861143455686808028295643766654528099431306848388591152928792936435094156988802593880649552130750480856410545221600762539195586497253433456251828550155307845905595698771791218853438020264550819277058509252554329000071873793818245136631915522529476894165558295639130511293671357486338270749016435796024736926838978422739118546053589156154381685895461195535665302129291932371782527184939701051646522971247796591475450431014913819352306766431888391686742287532816288392683049653448267589168947933612125642880148152722007486690510393029885644926451381233538296397078196394519235960897521006853538877578584019033786854533931604330494811884512646950343644888365733834758467724293989421750523664559224508359189535345166736872683609375433537546349180457120593961087765617975265352645171569718076608579023553865206141692589726840110793284898843218258216581606780480246233293874019205932926665419792402515927439408382571332719087550511122787395252698904327577934975904177678637913950078283726881509385802774640232717631579250617470524386302439382937631017095480204728609834005396045452633646498697724360949211875527082001499209628821557097944893456573456680118811379149833807230872379407577431278870841897912172482039966915168389518690083595921467818059685937092591669942214891914300534619385603160620526277329662110122231324290603871068341448192752242272813405547794406556554817823558470426895272952513372617181247424585671943516049333627637458561489852476686049975419706143252065245701883270210037554952517735316678034587440127022223364787830801596320640778124717425249278016227874888788303878404156678562996285718552794192400092848289870416830706077040711696888602097542291998297786275417589551788648767521536361180856996357544612915670701023442696649013051219470615028676503997581623902397653208588115880402309346635035527091115065173534596383428914618202926623334434316402156145210549257730306923315159523699121297374833603808905091964678060981047474392891357526801729565246170763030864085581524738790839483490656038053818328593788337809412179916265798250573507686889975832928164042044281043467890420334661545636478952788942426013673119326347409372376284962510771986832554641458297973982847444890271793579582334116705152457128365727473367508237829969416114545347688790409432677510877590389253765553189141307544247317428978152035444763667716491978635350846569789765950182902875897180778171542043781157597341589320438264784509799591960473815272900467216558481923857165236037760646772525674580467112488693042410521725032282287562607241759999718253316330972788129520313082961423043762054024217449891279048082250752848070046355958634033549400446600226845433598221790843226619247863594747954678817584055631179841689506212117921771478778851589133113848258358107717091198353663721104182999335580389973874298916525126595421367607587512252058234024894782264052575475345731838035771757996821491005513269499519520635802593711020968102342828229363064550422909649228739159965618656016603701673049364920844459190511668977844404258134755767878741843830675763831844507411295116318597245248288258592683935075691944758830909350757827578230275890876711106106534685334142107973611373749284106998684898133848946805410383821055986893888881326252626688518637702813612269390136356207250845041465253319914654588004982492831958172808912992849816590765951444954172378578540170261602356175461583406631810909092200593636373555787653810284351639490625851773676727474125255147364409080899739568157702897151105989577067659777661094224573271767584370273060532759049200648746998815176474901652312819488685559265235557594017515778041564119292775595487380852079541508935502698205569376528999348227915289326693322134012831933205902758994054626418240078872045283662531785899543872760184420085505155572428368672795646022558659263834096895071341225699163827410902551466309337208041200077791425907536316248248210111498284665529854393041521121360448203175804441650680443010679924855887060113899621948027769064748620761023151665262705053919042947403737107893465649744667242570508960408990449467149867261001790267102815128120884382771603348133891907966426570577574114486772803184583789069943207236431299844870538725526073963850266849332325181923005527698758904146358920033806111622521191303681420062085179868739531723818283179849157103532433786338007217299519057382960670652036135368804681077866492993740661247913198993105597939776963512333774303136414596821451792586615862177358903208411107712891729449492112670565508546648206954353778705159410695210887823685782415914029521369856906918958692994355719013847182674473423661329237980165467389848818505350848333786327609970557375216551815465015554812021331762440230852387757617747296839395705437989968025580510451531203274006163812583805017701076287078251854264408691247151298962607845696319809205661009121981560004833137692145228901234403641130258872933599786393420414039206845819533953312229857412124343565162255850169338106683815599031410141332255527543775888686812900389630211794984488459878516925073018751053398500344583020284006634671494608574233395000166717273249646322684643420858843864382156230453983694231271233585814360827556278107247242161989286098320393529566413821634860439368102874017293593865596418694637718911595204372400090284234345171823456336646802308345718003989539258688780583732243995583872633658388022373395029245672507814837668396403950634888780027031221317127264842614218221039991674781336216976875099596958578491880207884780086968713734666578466065345874962959286750892795391992644606614025565376816984859253814306124977702804036506837171614356622825813656019571516680783540906361081203835964493845793035772497515906612067134605094712592893193624408234987886990398092051724231088116034852768677773481116547143457172344689744109188264033203915698561056802385524322942587674604011092636694337125177289168818403765363641730730381434318456310425510784855185337083406934027976340528955049402932665735337298161914846999601837038090381068179426023416337682718630591873878221454095336096179409550294069050319049610213897379874697578812367689227985325821894066944810668409586167333204684241480115956754513143204312069186381584807230988359671619181733568760367505491656734605261311104004520092044731011388267818147268042552020766270813142716094569503045733258471095113780468809853680819009925221683333570075277734665940448693923418382698532838130939252900145836139379188799559112142934268352261183744281704554998910142922176646184392886562071931801288099203029757761528319744192075664478687424318644561160274490267756333426720311706302928707753546637528627961295127771074718648745647468463600778859642141262199009074870072421181448837682796893657947783521348137012685225456153546179213364318075008189012519990613829422490070247483455397895504422702369490122667356585587198750782857758329620049774850943946228764011334518739171200092723851910263911892507837006580774673378995449738189079109132438561856457806956518546974386389996625889959367626244877888617328625835569956334066495317949717461020700447875925954579000004736916771290930073814589565111657094719227601973645511000784921969114392654981198843496898148889954065290996993623620876759529659108108567904542709422478012684360445247765016605646975741443000056325778236071841812912604089142248262918139619127149514189026961736684262357415837217301747638233929161109728600343623590941953050128487831487513830138831797878379811416153204070526193712598104194881671740439094702633178719600868566367963144635552988822725392993539997858036634618767169576644141107966199549284291215954173064864803009708384227443242493978381612750628765789371605479824352478068643963354245239733445039812770030067800436999169653813338565987320950086834834511969489009685643885862508161649761373734316178027001627025478428994303793001017069996061600426264879939535173782992089769226757736409912605785080777373110797440490522613729691244788120488181407418481294917117667764869495344025861447420776447510643403341248959127922812509117293678991374011721399177829619960948104268070540087266361531581627755751065450183081401928534338301052407254578586435073019057973393266542823037187962643346734510702244461979887741532120786319767220595347252412637283431984998508552073451660678880874461142154355449171241693791763975197793328180992594604881990271577461303103418043968836930951235691524651701884915637579334642041305856822162899922484224710270582377178937321253711832346237676390143129489695552789484517624356685179863654679604238707296920637800703668274170687870579535512735571280146953984113695964984006306960445574251072902706821516192656583855433361171897742510669036412878911375875954076121055613080936967150680121396502248445018530958538291943565356076572999918360013520374885218426907982475756100158238830338496630931934951408256378822567931473687872830906155949453607740070781552014211406795300809509764150126088331912248644531190197706792406006614195035998869052195864554167951769469982781660156922581344923566612675327577970483465608301621837832680945174377181757794487011082206684087736755614956344372949820416076767076790568835045571766786966898113111768272080661548814814445767542910242541323938302657024669095573607167054898955850645249980049665713121927729544962090048918499170960117246091468184565452114103326864825821872457532984910963822890595714981631855791277163104521592081284824204475626103577087669912243685196075390804550229999956224646900779440641139855117562948015894417445184238776484663883679933344219374961021884657992921347466707581240587307975131903119586909779417565345473619742406960762465111334620418851555051134744515661059841098834856992555553503672005717313495936985806518568115179846346494889557148969598282347531694680407490495620792188319554943639940854139660835435386131897218942685619540260048278364475174058709234142136629611737995790509857161521815619318875810530568829042695887111826618742077561547756435738404218742553405016060311560777418239074844335790483423537414451769620403228335444498188559665924960986611795184546081601130488874938617864125428190674692290573645244291724248617491695099391299477481810579653639146572504295095672920440783619197982804335463229206440062748473256386119851837481266834669485428527773043090403388991311901637342738819499111687567356293271101897958436528074997814506687603114769189302821913938731395975304741380303355730926845988678990634576080794355809214475304008420457853474341179523500872792467007192650169021127729772265798297812362864242930285284874757956612610581041739350491822855791363193625885855201053588093713013408414678143104734199473800950953136157172334995199461063078218419415262063355411166443494561322594795142285384120009170298606159919305184938556365634925786001316315009175885101946562305596723480171275319712070746024773364555523367052689436302687836902195729628947692052744332989826342998478630734809475701256153491756832948554887364325041880601511084058177109492526920840894550340349332470022105650339972014155165138314884983786878605325162433551527910590379043113501073534115261938871234838735905279031850753520398082381291184603659413757983921540468205952124361643054559598731217026350159311555171767007970330851189032461019237056490301228838922620813937922031903256491830767230222463724825428876775579690585283253942579312769998308806706505643375112161938404886463349146073028513796391244226434561821332298643673461169051464035244837739410947335946798335030417331607163035741526295609395480264855544466942944636158078961300433264037892555672982999084983675177675046248656708042712294810097786525301396750417166910737028070081020248038811595798297201252040248299457351283173739593601042244393829328512294246162070956059356653672287120868300888658518723632782484600781193094973814102334157221348953524288802876648767314613680000725211831232470269139854766367158200369478382692829394709415909323265550406413286917375885613532199376022341034019242263866394996305339987719120959890205240161288056830938019073632694527027169616693367186819269987624872616202679604292049645000933129137313565942673582446128819845597288369474104498569282794226072888189837603489316355325552604144025647886635344796711263073300716338677137180525689619185842535444193825873732852636932920945010966077939966742840190960182906342973373812587211013348360586963127753524281899511347881314912332007124409680440060341822264679061532333964659408507398100080766763858107783910833250638053234395627650863018901679631269653891305837463131086598342597820815898203935043211763818030189467869146773750188176624954508292063636921854235039455589259246845697644664319467066758769332125580703575331655673432593268621522570670952188759224851076629927420862931741074268808175661372601416187773250696260936957478531234938770440390383913002636738044837372038021749852951609114048717271260149999536975412243398440644772433352204325826631041465514051849858427828277220152020739221143749817983381395201454425096780573773918077299643788023580997548395071810389767434335710844498921611214431843705320804514010965371966754537975399893730068912857520786377979991410463041839852527010685907289978075100447096199793557117701042125633096864713745506714137328785516431434667055192659577894369633843201762916360147000412799945194486838705832399252961349464991680913322024844745523844317456053219845779566286462564626119023998787735561733315875134666961567782720029674529871138953033379001560843900603596461479405805028204751295265980727405497022753487552947380499201895449972963812363022781182560341778838990264472742341336725451699767765389806830008927039299273215680033055600751776261359472102877699883174868306213283211899945401135179765168366784347704955889612944983205526492507206419470256173825108673245460290532521688208063579754689822735797090477167925891559972702530570455143491147007334731102889288634561823434926038664148636647110118736928668228563803026855546591873234808134981084580215627129587211867282768015659409122697273488127643956346257347451451821625615178022316538967788748521000498812676299984170169321154303120633222869521893094179878179804276017389341483631724662207581167181801000736576994326643198341060673225615190430208175139438358663074557943688966221897085807194279329574816835350136399091768090027981647982094451411657135770167187991568286107790266091653096176773209786045586207981688146551069349345140519146933850909509211515296433966827457865133827114190936720692192615682986925992493199503029161552470342490470950192883258944033857323212284020187649836164671975178053681876815945132420262783761949342579599937071507238807039506472320479625209483104979430934680751133663795145316733232391416862597273457077203919336517542711684794205159861075224046490921487089331528341020175847207497540158754026737373002762096439111336703766187163177681881222475362955353143827441327593203981215008994184743472764192549205418954046511415201556024101293713133476806679295521619756820291589423062583673934830901667559756762735307627176759806371278007957995705391020779938944834627415951347006727330181913322964908933071783731612693393565784023909828495019976445973224391391263987769289274684311669470122701218090401639241633786184869723287791435216175926112332322503163645355253117541115852692275786297895904329096466785393483545716633610503849387667520153909603993736501174714893005974462047951462240526238552943415662211364474529971171974996892788950088812230717523310207418368296714798010127999849308385641257644717438284705401197198046088462762759801365244714849139108953853380085346553438338673621187669604504351051447859394624765647347914459311787604914523875068147526077358196201793363916633977081217501027626734983332334085594896905765209604750915767136965864339734355618150222931486803127282263540807929966500097211425824290648589413335618106386265551229762221406932809583417959155955026237943818007421316656538376055761402702108746917221109977388088018909050363895582448522647118269538265743240329442443959446946291754099313592560479696805462129612041738557938355393357152557382623233693433688230283418798679465008767626287893618147012070119057239360719384088272634505152943699686684434858189334035911082171540221066071038619313453373940391481047493525045852581580445568233789243314323669889454733660070720053140007343080098878249966475430462116435716483990732478935999080655980831141669395521998815177356799773956569851035155720399029938253230344874016636986723787922569785507056148774109098549299178558969926314106214411062911558164323954116602410506611554638581107668694849220229349896496103756541886172022111185512645142869632628647303324391792309028846542195659778869956464796746673002199013455187261508929633706329349432104444775781592579223819347494560057961350775222298008618950529381780794023235747221603859896385459761439959918717804839338228615318919620805419786358253711603237323820441354007631773863446337795287969927265049979415971467546160234001064799293305871582062343924621717238618533030195516496844252351222272805676768698139772892042911660266628112622521089888380300044982092473189752772591688359427732602562997577566951154347501998769129028336044185171785059876827855858276245541934174347255193661345568605827481232801981220173917374963528104920891439142031591047711114425923578833758914592359165300446082425212126505558886583633553583010776628771580669924355642406454225557436764696189899577760391669566186566835384917155287394059483881389780879243521693627344605920399955160470983159486947395403474392087274665229230395758353283186427416121252987832140518744033113262403862598635019727106863118887124994462635148891194166144634570873758805371988984817496129108835960587008584157959949328830021228944416023372544787337706565384263606541633954110205056978099422075751012709338937381182364139157565266807490633555962369400658554409794383014649233221809535960863949400085051673053193433857027291410035275998026005565076360819646150912657616751704570509328065810846363216945139773355456541003082180102319023027968339713397986827441459145090918533326638540903565705641513556535786894808427629662121267626658119086020624959083721621999811832743878604482658103922633552947722323642713363195565728050275371058662334891935351300523979598083712201841355000345931689897027734961924530844260625005977696116619099047813439091114992530660242073422464041421921411704779549709417240313367463513953656478780690302493013242568265425812370437082304308171905198119220862909815373706090330653297650836563080556338381261018868019534974666326815920081248392172294334014460003415737076561924430320182327135579072832642281911826811290869068302853824342098625589384845796300719728682845558033371516848832268836721592761458420146971132998198970825609002995427746771999719812487752797432874672330058938845129528114997890714810755233009210072484910922676599730723151428479659831112557399771572135009266983601746299263959981118202747312828418732533103420302960929817656813240550939093199670759868370061905434262527713566215728870090638437912224772878980200435560685355006788971751025350044794278025036118141166418413934925767814317927739450483827303229929430489239097915027136224556462537655537386108386623243288946328165814275669841826419752988165595155488305952389004483288468967856791112915377982586900031304507245292101075138082862173627357294784857259361792266194714965716716926732109603483838403948397421168252764841596260158386534652945007411943332942216587431374283107743942393061565071548945720237745103827388558025436574212699753701042879797434117146447184581236924452515683975771462585701383543137154342353448053563288764994196159320490426566263035299760213156811369766233443526905050468238899181024955452515555887838083137561490956327476163782220596055612406575733078934406833883305542083059518611164974192214161978654147238412304088985128622807873373052032843772287391465839029351415248856810231760196865641257313155664855314947280329088185419959299757772967325500592138975432780113928125986347895346678369771881524083704483103440698343862091133586639477544876468217235385445545448482547717436450564506972425049283357129776444075449658251447592270005151679043707463491527726028173356031447453074585535974952290570429040669235769050866506101473124806303230276951778317544436899294092702873150560670976812077457401844119061878361260219145490587640838029925206591725733151496234600635008083528999076261018026405850504540069395329550997850277016912013709211260036483073764642652101201943840821613342356651527583304311516714186373822660024471723047041950237203912245492662130675903379881118521835327246649890650159115104252654052192562260714678623687331913582113222767356186586548635295932022504230515232106945971927259134238076594785163542456468011467311777906769768150515052444678086025206001949928605113465001432866841793083796992005838527088023191650204288207618225938822446118657421264994800247181179982533052238918425829892739699401038439407054687142529980258828632620067808301080458168353475613013001306970466722952923253706863132347026375064793738631944505209725647981912438562003055833475025089739734151883429378656768680671050208376100574441144730198974342543506475112973193112819098842300726498651850174633948349738915291569005391222458274188524136103371930791487627522607778571489856381450267306255372422293422090439591227118873214003518323191292030486239789359569962990289945984964198042269365435625898008522022683612054025942821834785175702836958925462380416430626178663278209825470623040484357801618764875363989852702380316747290269866945563238939613426064826513152980687552974727073763147269331699028941892513520646926720688493664300729895295649879800300111376064642678967556543831233043964886596264817993911700010039187129970874840839866343617073238731534325544182743300766765582812212291056346450467335928085332817274733355223455814639216330740725059494490758467774375015979868181386944480543418735783121978869810290226702943463453798661628717358071659157112615244222308375625881594762621258218587681346034588210536880207903050055811829085951357341012346319581527075239149862382654434921945366632081191954274067669869183593760458421298877420644444724373509148987749733556451650582441932936299922989474310407199495417493027801861302372006197609091883634465581303368017182944673024699382975000844435773458241750415640913100534317182042910391124368876337578231540143158057538946906155294034130752966573721152746619504640423437302665240923727649406240410041613125549885985121972911302108101231316100181509799636517284478032683469285254246850405417841941908224589818657885608921501774174145828569800606335344785134062769693698652698375689607943859470453895891464309297150305304287484324863055974227444964616944786970612972693112084451064236825989178250533040716366090108495731023101094727210714392040484171559873611130426665016409017576538462225760950433040327536988586011828432391057740181421301615583721779254335512405580301510959505332619658246675131515604041525866702479783579274877958839125052489666123288098343668278284614240497396057582408121416887552622524360293839696145687193307565307848534044458998404399634745413799841014069999181043676610393932327180807917570505414570444613528324646704879683938052339783520423849102642635907535467830647276332234341146886857281166949112543643618827755266771462921748178154058773144137474755095836295036748829505155285028233361366570942891783699720584536981575807028228658061471284327700184063709305059157983463310996019958489588596073151011614667910492587238134359162185137321142902677149617700089828968950103625453703595563642125152431879619235442947832684126455684375332441689057111932279313887828912543983459068519665771371459050043175910369474077421177275541564818938973775019074631023182013596745572195667591241337527474877901712751178098876908802880450941728152533235673805183145458483141592154064458039073115144143139179848593713968077734925941972493548979131813913272766538799805982641221419895525854901919645683800046561296904683075138266645223709630991773248925656725097379784253490505973385564385736293408128049066205037458584274007003914181515210476708982402432652109366080858964118723511735054616425313949265055428016665248444334882441146571679434806320777481988548114389192086541631282201059543004200475449370307652127860474946606140152856723138107805695351466091457691780596059702532202123395694003677955928910924541621922036118410160019866873009029009553011119426624164265602884671889494683071095696046764925803912847333433675475971683878319439171845015038066496426134890102319053703374575490861584883649142257783094800481649136959397401101850828127179067301343930517505875821009177964327671322372008833588855067998799099069624069197231371660557945995309133379855739509473863790161609620497382027595233365999367052526886248481009384727496786180118427030616215039478914984775901282521226179772571203664514142960374149599095458307245448514715745390308177843851949849134178439682963057896809470050052048270180497317385456507162727157090621619645464351651670564467298977012448524937263379307029159390943712549140249890066858639414513634639557197943018593053110196788418496959351778493691071239399057828259921303875385993513094171585373184613578042103824944814476243901568458510895980044463473606077009770520509601729904819296211004177091329387777152648577952965919363115031521087565165408608922534960126007215909071378633924215803046742469261149609955582805408860455012887124984292079557312114181740032843789750355710860012606826629599548739173564741216326495511793280372655046781499194011411339747203932341101796217890182084001838176365509132134448282664180181426090657870012771815641896899519222035950283874126913684523158300112622013274077164154265353877451991108583403664763782312345945119124847929826720517415336062095670361612388716452797367914852621483232234039212134258503834451751594497885312345834439324028078575066904300687412105706065989193875130589153113234716117847491033131520820196633887786750973024214505301642432626749134525706222094687994799249827095090190760530617782598231146510629805333365493370431038433319804718953086068085568459386662111857602652425446180589933080347383495136099439157548143236300182150495990467274348492034638953264510471981482366590769177733471056455654689033822546078856567046770385675285694323199115285098811048495521193903802521796107186424902834129116853262185336890596674514536271883816919948958790015133364870717392106896416852818643669101761948880780673874013921000905419011231129657395696604684874701530884378795068729433850307018224086458169457146572588230199659651360676834767856168379741444513904052744871918326746391489860374649736823675387251810809498380388733740945063733799651783092629338966793672240045172032584445278159510440412390881950660309026964829934340754848215954310898297766501846507585800529013006708995071157874503776174829118989873626915517345111345980901693133144718054365379156733436045822277599469854822104868234294044808415485110225002114817583481019909735835016558105394610497338592171271680967357736553544109908236745881501873667959066070309443220123448916797512433550488791466273256365603985030299641458429994201780525352518609871675560651917054556743970458390641734496677281782563602119076939133108593356642809944353349860523382610089625358096278307486741149353513666219707031167603734464452243809583728478864071451409340862196517683671513660533362375425980958111234033549412872476204907709490362159192519095707864256962854340762196125378158325501061363283968201396638330360082287928892051697916468767396660367409166288952931005217489541480697359639938976562317660767088605891299526452157204945477680767108389394057286235863353685236761592653628042415956377917916264202844590588353618582612688280081161065321853518566237372503867449701869029987084131595226957857111917250142633473062434484626156604408965649797064065657972771955670320714306107425459170536075412421132584562387280393750625325721712992218967077963962777342722559769828465389971913012738437465416439040822578435353050012585815091918633645585242587276264571216987198418131656249314598223618437083217942701073795320324585244462796512507149140272929879259044365434660090850537766285344367299400520659418732273507269239627739115847334331906083503036455141577018903669982287868561772492336199262322564321081353193134636378087102776579569069606650725162646245914580596021180725880298957402625797529580940868205456545570428362238734631105776053365273795292663025021158280730969154301986674005682647036792603881637762912508640588738298169269783558824741474149006899552335417010365936970310779572739231204015106579533087259157486636740094379671569173297510343977601260276810003826810366028788839746565355023356054241923181708957431678090536810346356467557778404200759897049142878946432024201311393929329679252928427282539663689613527376325164341191034033882664392018861666173335412601777174025510053962854795669233359222370190698390340908089543194074928785340687363471271226180703755665852641164775287659905223056874165595887313422446527530656504562082535103795532955178586575637761866914662873053840186502806215622092571797116357697058772393853669702169203636791623763473203730943958777157961722101049026470542865455906735928679804230634508492911155482956705188340057145129119860116617655202456045340315469119837467608542134663589138701983604501720727216770537159469394234851135983353782580041185912790872168400592901173515270309287599988262568478961722521744627921783720315250992513118892270559522594944556133567653513410625139305076734099132797811597436084569812728888923337627729129678641641048374890671530542406620810977526176392538346561628412646825720945043551356319811350890600487317464355542575397811130706478575934180875089946135911451997404873071662880278743109764371171937438901009601059954200012039864777385766722117121518386603717668727521773058051765845599559704859763575355468765925355119811010118675611458031236319775831188037873821657226192710578612868647357781764398011856831565048030117673086510199213631739645062256017122212499379637902700088468458645625081682835135821828484275483510431488063215579689528806617855571410856350184829221008142102848035986283396785512944077577728074420108909156459086234790638913777447839465040550244036182463845371101803441047274850265727399062553645628714299298359293515764739430538129184768625648337109680170526936491126989130524558469005949894811229281563795874826864874855996201779146359087339392157412972724063475205851825335416468311973407615799756301428736141865556211309875590115362153213349522767141971558489630342994330094900655903898399835392647780206731387138740585188875641232098221604137050988537709387556879705943441823175274165326768944841983159343412800011653818484159097508335678982208422861438765648832732214476272260732747614628306582267718415796881547803787902161038585937550727184198405858216831965131738115574966135405438593108319618667320444072328606957549363628557096184287744543700996890592225664588065314525790471316133672388298330227068819319294588438878938110820986522753749747342135870037732562787960977916127117812172325538148981245026706547823911850894883945910728930901822468203413333680834190543605555994159293638941110327258558125765993449164535235490555484724850866440770317106328235638873596886325275260065291818495252420826591677893835463543262881311244405691560901104979394014947643785415011059649541105392734480746886868064474320492101719472504453372981998009041144292508018532603130429490809940850304602941921970819818008718011118460945555235348925679670474578340131222670223482811459396495887481039406332450114452206786812490470256183026225808834348295997204358260501658318340944631545240969680054733168413519177365030219635476432884566390305291939681980306881501288995849729073374018513820081996656418351129042163885020325794578578386986516417401622668000881541948088306836100088875539146504691830160965391429984521285981298256260703969207367916741240808970087360695324619489870222336077282600740734104541214598924077911410835549392097273315819456195645526171447257788474956538460392113001856177838476262085624468968201961785619110055343735314498372124472146185562270012540912931033339386464042532225750751269373411339325984286667376462357273796838867709423029299445113372340711426662294146159572809850127471839142686158582708644346729177871666771680566051029778143717675298799910043389515883826674675410835770891445419230218567314517646088332236820411147295190661701251791571272042099480663761065575301868060124921621447691347117986282210733824105541564271494537178124164522222693948129406601523087534999728345163988449964891062322335479965780455445869478147855072303432787770062401775272319671946501425788802962679695061795477497091385179613036237301030301285309458408410719464315135194653605208025676820336361061256711280607223044948449790968650487990389572885757020327800760386820946857436913432302445618198380612110270469324362764793526448182452143536722048895338850257853388807355390016773903572156855096067446549563962790757379383274432167416548614694521702355916325383201282910971740645080189561031052789327765554396247074871381787704600343379664256125972882587605683238011652574876587970484028518035337786447638017019195744276017132006555765600971206549343161399973565960961344139942014128144875373700280108724895469487724645316689370533219261289946022649879451154408401408628900657922742417326156804924662767721632569070441285859942567835475300557811644890186784872069260429327930393571186047230902185041851558021420827118315412746694863145740081276833247271328765426404298681446937185307707414707220254039647368014618844496755113100937869068658245950787479879692453195224644558848212254658291056665809014269765417670697421251386619242428973582383179043251300139633178177464106387875731268616511116722911235247951784740774140147488521596835241809435704949572515693328796980630827901865835436702209003181753926170744585456233541341612198482921217493260727547218253880937930573473674053966772890485449582486136422896097729893177897362063147648899097509584723182510301691768074438688208886214433569863184440761803230769776693718722976720844949402865917559824747062831306776066998259778442961074452797590088154358507110408881177001077591160600723769266557008116478928334711416252484176683100386633260619774488933571506839769853126240377786517698076513438463538232915423267431569006344834482935913671512681701448699813556197035545565928569507784561648719917930733354597420169430422071486483428745785711902465973528864355983613352575627489233347329699732616641455701017188802580416747050541161735828049593069900567803995280998045492654799845563526014919516134326699594216071753481950952346398589400208301814093682883063625192905098781520788090464997288129275264823935065134846439655461329068546263581558781767004932547452763055139904577110982839907515304923292991553016603615225950977745101871136343038246465731712331371366926717228460870397589393657842089423944266156766303240595905773371945696570532656973914897950895332350106721068417198344112508490417900784579327005032268296614583099895930921756160401779158156846005330178141289248972728686340324719758448810410506468543659816820045162691645345630829895402072361816072446342314291280815896694305611999657440709347700607596758237802367612766431715458970468716882700962394809581462260750310667983119333968164031992899573899337183364607030522273963875510859946989193180848062866437692044681199787037770823204896599687362713826296361517383437142312387836251798383252021049045107559595981841371281279538596517352231835247313921729505622963910860336013341237666747763002416799257242954083552320426805228649897985183749187426340187004949933810204617475695936451539047001238473290053273850399953678504627180069681810716452903381485353981640981520509367048390421087257675418736727089916053598131955426544770117073331055830953154166136035661394666404190935278663770912524073067162794873383737933570367208692999854504422630466644029390661789302701536825144822450024315693938396761618111713194989168148078481161835827007877525102374695173592329978834984452213097778129918984153165016949734268646858142565461148759661417624800451426575156374230145289107240091363685426921322415085450245414076686655538772848529507638544242551338338733001549430285663018179807248811247305906661876422048097178100829013432337785829614603131320944986728911892008562728124811620496864953025475623411371176948928402540428927988394080941837049909248052540019923107762457657548778607009122079864501371313795757244835100249282038297779148888760664733058054771745185410249402571701438300558873219912025749201942232510686807547362692249255518614572530371026483982551261241288448948830244305290639950607209483329171223431597958018093694881341990366912027416739516650552898154439174337751006223721689771228966196966851088081634689340074742232844630625407825403946786177629674673687233315154984717489190732126395889750331688231458671590932829338294904505965981502692560218224720811257294720686863812660205615987557037768026399064937545931021117587134240768834731518823736102307102211049885228533797159029384032766919939269901009411229597620613017129252959154141242929254162720943703205875161769635675614214316470031227787793425002227541689808196605306729983602738296633410274714125297041149212883665133193277704042212398617610649363434678007683299567546785447421586651353947114469187831616132365851576924183218753152291376648667526926895801616542387328582951895759476397527566933488137808915796561833987722840954755455204477544554182835516288039122071440509375261263997479309082429560247677693076840291436397033424412596656898918313057490754084055423113034125317439857159659731376019220445728105867164624846739615902035200737319362266019550294061051145588042858460132833306438200478253716060524065623279867548894050774082689143005887535620205004885739902616034883111893727401134855673146894022637216171635364303575856781006421448050037818166610997145633898285291205351397536327008633764051035529875723475384963419655675849919161243057606757388551354910558428155116496074545514360001775412326963320436129368798263552146717837322718591549686317230658733536352294787618249363204988051706583654828764611127455386632749640389478106980274238355423357279741217380340656838735862431557875709698043040886721291453327603505791312141525204832626611324484045532252402795150947620700090774309849645905849868824327952365328157323293932539602148444563970021686715933706055104459771670702436513608033037116549914170969862357528267604035720462003508233574616457872187998229923433465745167537167932033090267764806727302217598332640946239706511053521018792726417750543596344624850023985090223485352632186806274686660710064684964603617354223365473703090732386713034595672210218458895223685174278420187578823314353087109544164214940384290575509119910688293701591492021146392269017451262846626544930489913531088799603983821576223218026363102547954703176664512416509012321013320715339020657264757707534583329877016174419918506632921255384243380034763994799844884727447839342932075771552279522463377841318437262858272735884451920008472531675979497475287834335154368002352589133781967020163862585284374118928783161463276205498220559491715761854158651165496214005922693595531614675268178238491685864669948438793630721349560797581078220471159853553217044335816271065796403994484080597053845016950906999744563251638249158689024242983432659027784102628266206507510121350449316655310826795157665592477404147910710561366018991426367535968612390029066736404644136956713620046261619596513450816634380736865715067325224049622997706100495381302164140250770914091873614790874207032170302027454249027016011542447911187466228900710229318701475492045867091424637576457186687639204124629602639546475461326785830445773146117390387659066585345596438446742562893381154173297382370555209092131198998939201499471635341626281158800017971032310712375861068342173594988100266787301490861605459659018525925193588593038828083144768460200565644648476549689227186290380439890793478102630967152247199678001541708607964640533238510440358070347661515492245354751032987796026934113827564118048255585877833715596557780640773170718650564251281236742178939341118395684478162124035968417191297206462826448028796080313259219053713504796853546852788419451452422008950543725661205912556677942850255210515333685409808722563966653364824540001633363077697401382520329576612042093522654914494816405344121009554200248629491460331726754904916255398490003741585859403317862157281145880502411306530396712837760590745453689042710586650830021403489832915899529851511725494721547087823311495651839727552896698368954443537710780659419642046218527944859919145518667853336964164855038430757909027822655532992891318759436438103990983301276655090699838391407177136936011394356264840860602730216489172928195612806582841522430647568142705148778355084261642408588926081984564514757000266577054544899659915353293541227804836717587123476000995148704101807639285833390023753709559536711767741291256853708489289589823467771288446308794068194966472761980905553103090865863453777888531640623294231402545258702692066122689972786162266701780209558129089756327402492529051156216793795957411262190644152574760782411076072641164630369540654670438355274951672874033625973735431283059052757744780433260608202930858152651538294538888520160164601437263381137095374865026412525189161729522990529206261643669039070642752869119389058948728224831954185542570674207019958221392670209023602372899979913905832725345802219213515726681258808889070106614028439243511333884131435429937138352775202492818421517493370863452607794653460841971654100173592804171929856694932660050729217538452398421929129351612058956536745796890884199083118623151669690276369834261470322975717171167113393031202565142580678123749865363582955075879953348822975998013258505151010224435483994216624867253598018574981183946509205249278507339091583909922004992259054393594890413888537833330932780041461651734506454972615148163239904397124292467529828472873936401208186089718729580661426990080299686406303935867182465211621656942916952661569727975271466701823332893271985805598610461144838827752211317849478478446121270537434895280548164472955105510477807766806362110025377936196509696598127255155292519598000636330101506036492387655542945725974450672830944705878760301634531745441620196501841117261062192707182446426701807980569928438394439382513689289494897445259411465148862447103291861037257308246492849170005838647443545954363619584298054683673648133664139786786357906699234461975397414255083188930796689098749970559382767539147026783054534830401230023918511840015560205083663635676696655953750304213865493561908886044276931705620841195800295569252137240672361688860199766104036029587854698684828515758302175637719605830098388889519295443046526930688410857775093099671873201078730400391841799864845833305594468134768646163839283285280025766604728364510234016824649315070961750400591620418563666704180516240207653876780791173924870541894052476678468950808958746743852715518487667691547582958396937126912024529327707105179615741088799059876548703572466968869408356991132634562328988677229059852095292630270614948275692220280167863162275054220557500679066473466702869636501019035453074500212257205139017397871054888882691096336319824596934828252379345056720897860574900569997861072545352845848478471390340001466779458126987186172429120888838182928877355717989674255153812345750515366292884368249744372287628886596652333971766999479867645661500949405480988702888118363708114821304491774073446685632610189341262119001518414877607501457775815637719327377800682107003421877505941430331253820827067641611778012858345225680425444659923787646441448964655494338530806789586779706151972608983401022649728590176941905589431398860752584673469201366211615162764670135476108349827175554794014856732399650591059125951267965076839037287067463785257655299275814035341003703343146148944076093778624458091783038823102701288261629189097683550218874241952203199288943350871751057944552162020796410523612462934401933232933536416014720905168671381411801438298784537132074655879967783805990408759597060248330302356076345185623752624560928822779237447252931240812163666144481545493827647335165797656535300408082487557960558969716170936076643652730115576681525877085600296819174761969332081440267972001921364098981518994043199427139232990680776837349860161323009077887529859242910148739079695547074637400218812758245650701727692151844289293177595218494254292289645392234894309414365678982184015096285055178155407787617223552493377069674442988258568739151288524865064461326850026885366345785175333177384602431499710906695891522183344730764005610829108031562992107364259691776357136958211517491722144256413244384771179503742212633452250334066219836140684235742129061669412404809860900998498142062524347127889538531799802048557371671473514694156707256869479443960173407301901522566862751255606575555215717762797100193885455296888681068753206793527005675757370557396679498328408492499183794937023934723045226375619231849668679846122303854020869119905119508458680894727381052147059946139041666370206330099690263213214878288162979255207727695574095958343012475156022877324912490181835251578861152713952778284409660703913592741269616792435045056696577932825198905894729255623951558406678599770850177855150681470728470430552818610975159664786921357225779450041713277651365671907481836178547039289176555227734553188401089739545367955993093313043053582003449330196184730010185127721013553548605204265690540542838098023885018568862359214048392275641702810837183181865562472141962665832230982111107287172646621025170671863475583732284743365646909717188768212041089631502822180809842647708562804324550434970129221293827680949942286732969040194702116398599750518609651671053568114288091869556834224040657945240088750112583599118840510071296948811439027411046703263884295131067844048835515208414610675705586140854656713959699386430277318290486629117286964302406352943933672563084296648828933523946712003193239377657859758505138532983786539034587254435095025668157707601994083155309143204279619286242739825905649604703922789907995224365349371391468775871822275328587149788178668232879855920876719507096483757403820000330457414052325638369189421973757518838651478854786809225668672884704596691965122943962883331799698977706532379526298337230566566284916187031968509771938419411069807094961877182799901566141626092067645016231585002575730761343574191793200217306014488682418225325498619557881923914831804700634892210123400293858336536924923229225063206446417954979707307431775116847364296449768280327421610541637728489543160666831108213280770082587470950288872177939507005975658885306645647419461194793185974640813818366975605450520483474428629759351688857526208293189478037925902978798718276839775387216041951549430784330978052836001325479606075650041600920552649933633854789583807483428718985786422683215530377144423648419544645914710220055620514256536976658320925218210966376564688865536285678976131261343647958396003052830110967693756733235517101765931198914829501742843840931104858422458938155383384500268868145961398993640044789586228162830110137808792408161243918126613459573438163615808017512048909219638282366929263998564387470054272112410812426183439802113985201747414381281551511654136399630765918842034511248279316581426596352345492636691932569211144928309164099747357667051460076445847609121332790282059322135973351279751172747622140681632760119346676257707157900019659124720433819594953708471361829990061350629302261163613918431941357889876619391156848692727589963485908607089995315328956937329483498842616190893872860679895426533077489475098900609927194651402999459830711431458923057868948181515708601054440885568759494880386658746624467187874691496722802212270595283873020066758939011525426627085155292846747085528331662245093546978837298416488479965413514104169299661180274684585721359579106256752615136880162418737094966364146485400622399946590374705417632073104862136776315342567979088174894113525806323717075375797509085170062346940437954705235695980426821409502331671137721185891018004167899526601162466944187791143127599588607194357452224746353983376419719378963377856888224178241731926208775256314522871664915390792625391544667083867282511333548697169367829654152175538125240349453848363738917566081280953673216621151877615396757782789556520627380028371039638794278041822885900249226181544445397075824162642823390925226412146271781673117795912069207769843945809305224169952272512607873783732191464199860206359762388627186795197421552313654103607046000955160257548315397144479625897042339094662314141463665997262713877540116616285975721497459121005940326592909211452377424590132772145510026878927426031041989989821354672409932250709200031382130486390562401407088756669525616622298620969009211676272111791394915481614724780845530014458457491403678032171939532483757376986727909986885029430739324135997157798076541947386027078811403019034103206440952092939187555181817920967394386791536716397071840994055736548858648416671601704893171339546729642522272034400074930359599246468968850261035886477985806599264255593818178143766137262876762757216417430800515539345350532736711303006010960732578099712766373542615384893507928847482877642092713701623357868433275220938055028289552144048170612348809673689063151325657140954155174738474509670054795996689049809630173400139410098599580085001290139902891159212997629989155808443938140268115221370183700130625522625197807546468438042525681028107603914913054410142873485978889014877156773174575142213255379899841271105514047563554474767923456746821931400270466044627613092008039472539065800439428770754986931893440655741065473691950507559620528343479136576632839952449907752461331344927755958064783673641759183772797432696949097182056407962558112352676986537158857542711161111335087390125167918481636239436778944297589836652889885917753049908559415501659209058306557865961935076775346507845529000542103221674825612261918191483515737815018679744043065346952133742654487799605754354982546121218162784198308526540290290913069133455866016560447312734859379792348607442442529929201608077837216301899175636839315600133644096593148342691059270181629597780670458202064342721742283527380974832661847959314356859471151542686014229892827583199008514677115609316194737284116691784521104939499970739925947345381011471600181851065678604513797303759761273125956417870853241547709821941371723452640808775780756387578394387411863838859015874732358788126492756990970857250958155323184018753860974508768394663570350408238748432246387046559262904813898032881012077292997401060847876348412105040309981148438221902933907344950033599833100424778077212615514528502650871195221009901236169285057759108643085607005918636877904142393923393309840638745033660947090191992757466208947105150087651084217904034118902815555134209329296296876802943472807205609990339963010899140396897377323462992183592444388831024521016736215839202215674117253407138134243312170639740112572016845207644261771773615468946841666658821342151668171002738105453697800441870549236172142826087367283614855301416958195985075330799355275909647425445123564070062118574377172328327036796728967743859079653143957786531173374734198190503699640677661455153817529005107936686616104571536729677896362807598211837318655658220522790084137859281136655317843931341428381221276229868621982476269127938184742238264069334570251460605395937670412395393839435314298764947219726417955999482817210391576764861183177859881676480272252280734414201276115393324395293238129807656683216312889982870325577271559790152577809027934927295624621867240800513900299400914332057750494433937209157820751510716727616025368677324808987054973951867836769855728142743877129933514492574885364624045540652832005428144115108590498002729772050208545839122213653093796804642245749650233083753455128420212708021830412698613274687214621681741836538669440439038949988716091779274654833737976920436533866890714492327684873765548265601917524540970243760543587962352554774071901173353613074165741247445508222390101879841872941649933823949343286584719233035685166518247089735998620667887860297432588852121235149591086532670263068133644646021155473108870464989631862215538319022837787162985642976413685374645342618900851251970071872004813387381535987579178714387697315427850277897999766344095730993521010768003859247563105055803919744979982400513589674399046993040860273534759870016792061779489393870883617637346549682288800054394116526954153643608694186889295243934303901561679183085370505154753527890872181481374094035867259909786317362801477666215072855807780180744463887495298069253660260929006758285015976328871247494225828923710862078439894515937108963589251735689973645204978961000252020253622834202102734075496874636953553097164437432608201958873080456381050908836682624839299989316924147944606833229850053185565231139604735033404610526478188821031427947928954203965713317022794741074227175800962003143979243341833791500959082663430549423856884187656159494553419342871851290216820196937507345788126294811328221313013396620985413368874557703010266097027131850778455438198275321180619692150847649023920940754953517315545609421383944850858894330842102060917169188778154752739314074174437256822067889898246337697869998473183851951228373250900430412011952622597138980780055256537498160893279969222494821374394874782707939477217443992108996269573911433298327089824187850597309790657880917609263499706610008970983986315406012660724023758294914565071578178797159996137011980403038294446350629528642803924140456033901442747789113940614318716505135783653515289753764704828278147167619846748516207459428256140300841684723344722202526040576161371583835923927114018246553871027187720187660775928628163793532579819866056733344920698598378474062623647521292482803156813172877547923793163071629073938359028546522282853356797880575172230370823049182693581603454512928644842262011512506809496930849324286989089724938768805928132917042844675519106499587624926490730029307230899797906808718606021860609022218105588658662806569329440685306150331140743801722528583101672498905886870632336903729397735116945951892465991555659578729361660944366142381700199778598110556328019411222130379772913615288113278435033297135374956450900867582623275245425752596160793222948714018481122603305240598676518907232890098208007610021335946999822737445670804509825862676438331058002624328918342841364076445853308283484189540358468962321731883355416099418030104812587053001683027022144913951377302128876940554355604608829001604546024122918036340558209218238031354636309649023782856654346891092418015866812415536213380387442230589011446922326295043351611905836727069810078612877707233685222616656081722612149373395107336950008048213109971230539872318210840574832840585424451839820348496231616917699779779996719874235014688688973630028354208202059093186350621325184020636729213016534890365692421481998434851236683171773046868202471512850398626219360909258089053373687116290981617956557405898404359083672034476543168937886945856238210739103762573917495994397532739499070482348742562533932714437978048249020793092342434238887217296208497707947280159452204056729260319152518102018221136930993886815096236838186204724322917347003323563957224048559800269844918838748432084051348650044571908224560366049227551075588475123991629599143631608810832150888748599922037570917450781654557831165859528254175797092729306442074990388849981777903286765125707127150326273020269179915403947348367269893762633666733454030038166967869946965306715657473559073259682647382065162312923103027512533105373710033860002289846667805872246533505629000026802123760346427801232270072987804809529440891876897982190058365306982074654825159439021157490502850480633393294912902174845574612957109286501985449737844844350568329476467855905482685717607600109796251901553539821819664859740961289373095230222610583438219323324489775337672911316308516330976996592454403390592304536008532783467708269650326046932265517002016095058248491952830119971038739024875175176365960689553541741643749707558862345321721662016038802610553119818530157157197408271919294756005042807758700404312027987285304747619650945804138082518878416646007756455980079524244785065814917686631429367744694781491729033868246002123465741952195937723381398799033328567382800446503926755712423372934373380965037515329694623264590490460315881989994299886345663888820232402133812303491407094738591866551916764438275503639603225645470764361678959884930828243694681724247177454330837449986965534659217683571115131517394127184280556238165514832567819353120244841542187687532327809171858179183435010889226501150868946053123147945529230053572694502624391355616050783743605970658232275886450761193072443002886465828055591145033506174319829293826967703208511365786224975255301859999523638287387128537243035268185067412985573637196655089937907031506062754423703434618264567569339263091680967595996360369960854782261833424150855238163898193328120731640478097210398433121349471317682287431041152403202822486775141707984318664300057305439065477162071838864082692834584686613621590836178822961171913940572271857768628191916260627019187126342247795248372758938640985494282365598031614628660285593944969020957494184930062507066467373256613004208248393173612033710080122956667220470946147598115062387383982027426260446451088711714549636794887151049113158901643385081082642526986066381569579207168347041130488694883572731846448217687111973892385124907753353699648906058490727981508254591407922695198429953935313574499140858991718039483496923059808675123561058359937669264774855892287813362553292822832745604882973541368604953769262767794525155526574326743087804409176327250885467471605223072126912308611378608809698334164828626523094020289277912645197845380961125352052777088512148416845285396607303740693817012427629261596436284161427398731346397585990227025177360328205938730881655190511517781635873624047937672602979653452980518143203343385166313601328093972109002155195701173447335322700563040330842642833590952077902523676642828002115392272812974783889544886098334606266467229167038889651317771923982947014052683096990457540034827133258546286223591689400722825849212700874247715045938828623303744922985447972306019813117331190905005853026823323372380380616055222949059865213956759212655395955257389734139251076906291781623351741383791128616255603508717703901079696124097951502814580433043691202769724774840481712659194367629800333706147576506240866128831993353342206764036844086088559312836003099030455732901547905904255980452046917457228736889070393477984331008379243270918307319856093227456084342433417030176329641264496440089285202732977844806137531818076035881951853256986963270570808179516502430204378390349698882135075776282026456392543140353377979408346065676013297822976833896050514967510770207053694346206728465930760599637806884501781035596617492389931697068008022038505143434871220200791720826061230359211551638468144642272888413095032956857138211348222142581800630665489560098006964916108619697358202590600860141717707350172845694735535472567073096222365492382765405874307805949673721923311335404406662017952446764904242067733109323106491447364793887907297824665340068032759895499484901538926302986668491587930071133181671046142988456209828581889287431658309440352595384654738281429573602642953527248886126928907092032808933183957801112513741757929417769169022854023014704575445124060471737184619819011048397806322461500365117830387516014012125246454475933435920942095324142142697323780410086653588233586595570534219245576327064758208597039787379016581501235257852221738295938271365672646008688819257667390915880870682463781881072136745829482985556330758909356491170209078091168821408890548122129485915053622475053935387906557691053085615948872750359103776037341058767221661800019524285523654518995821959110684547859170664017004944969728598905098168033552016499242952232395257094192603292798615228431417675206633061660149154357096792611335985397370772657481521179057887996250392303357268085353972577891566474151844043180293082685715590954114800873203410541176572859181955814326535296905222802843253076254160610349508302570310561330136373739639189384657725003486303778284369174539326546311343886229474135823282870662192676141378190501083414848720192229246718319089151851273367033608072285188134242988153335418621789962059842594225728294632001602907811009903047112948181311596172217849420045848840328762589013549642568894793329301018164330124251285242060503840308166692310138562831331549151895254405737775445243642242216904015106391608756992765274205471824670723297883226635465394064542330868537115666213376003986543259510580065029099612088746205559925585915425294431690835160107699394303585202373836789571953111239925341083300896233205465356777864829791824611608157310418262749103029966194380755777997924865228930988445285614772619411342852652263665646308178595510265423623476613332903671718457134868668336727318273580252379953587282851102741220146548922080749317769224884382134911223806618310799455092133699271702201921428189251075590617438970216646077431090780093089018142037771864538775420262864001073621424961869124251892963503266307183345461193374692244490154026396731889720376838508129785395916725492274665099301448627497446145718363015991182709235174012094845393855712566455538900123235364240088090740555174743959007396498641818542476783140057404176397310757893704338763259172388016777796019087590075437898187780265446466456209424766937539226725997575684721177699464631660309622688140945839294752420456666970179464765049307413259397615881003466545933220887605035872394323889344939927336914037799848676939566354136184194585084772005109694783226358789581926029885753146434966446312760043323608745211051935781113588022223386164210077089389831128757667972466907028942001123913448992302167749047439168503973743826481025111833963879079057931400320126271779490571656231434067050829732595261392443734868973959195389123563598225743748072542412013239022772343137532640701259415188290357815784476146800959912621639347677475610993567013244820367711144320146150279152567893969805338118959719217583056237866302024591853723948345846638387227800058071398189715815629474828609922167304671642118472054205189463351649563852844152995646992876501874822341578686073925409081673639544463791543616543857618160728289031385419458886352679289201532343499603361016980233547479569828559316289752216687131288821500902365708773415746322553685774520509811761839363884487170245959827792391312966616457502232127486372963363431208094153676330744773513605793671811183984689904757306578931255346477101298176402747250002536558118834513528763667951251101667090386569104023687942948778629750433290600446670729417122307826269109207938576473980113511457913525037514673424755574374753926240136773118537248039238090175023176689410013789585811950069441593872771382028978533978090489763577947098194781883082752084124155102283208966326439247031094344144910707347844844195707521940543925891959538826330372530327892897998245936076612338472378480544949674220538233445912677097445449800876530839223974573818385139113582810630001694623764066855411829144838713537146700347365151088785937686683001664521321585244869880144301583759011637063971475074502735036768170145193114440895117547183796165143053943808667414731576872350839571194384308471998129602865921079166808299709207201298524798867513064511220612259957890461397680629077436451592247651012127213803589376118442811807138349950925848201042493896356305998818964220332239637322474228059986649269836022959227947169233026163401126943199644540905916962519075036535616514112219710779961318090273482525524313714042814234453165679892960161868786947468629480993020690118659325973808424402051460671653623448162394015182584761099999939846898673895068242068421623878835561846128251165010572066608469465400563048029173030991352605750432374394099901207844770180210140498902181846235774987941520910651238077277956102199881666473119581765019553892952734314119650314839299248730292012085627286933864122610586807571411257255971352197007869226981734637037876998835520159812511379026032226207005358428976281850974452377714374388648477507931590473942896799643283571968041994628648746187612117411217367121729017092801129907721286318009781548393270836709877255669920070586054121116689897494327773908327026082513468835064447103149352600435202480939547942505266617131910202228135118509371694320440635641212127401458294236163449288616878580978785556531599039763799647183319824686645695482728949338282675525343611245949033993539165890953084202322020760730064993060969254615834989816358868278967241575574425632295648378324426578554716296278722803656563181200253229868592804658388416694041439909803487203608153505308475953873875703056329481475520480017712164187993388184548988127467699902883230738780906087361699544364647002585505150261587203053080119954911422644775063655715091476135738176745713393204346296547370264951000779991909169715301261529752657414955203820017344797509592840037555845290018625767776710985649236909352196217531435921738478489427216761046791328931099031070371116349480742451395926671355287428502238134210741138568555474937165467829284721449129776578157256329648738879262334278543220248285093726535867247894238496144656167342539871306678867780843641413653302337015447139840549097062121890144181129465965666696838009218346274949571931902851939228748202521917552859821667164465230500400260295022387688648740461527419233825013475196705625516886024261347146042064572930881729308157063846739479892343946976134498064300883037962608831184219842867297701757375062368233292752092919321373111970747131627841543693645003706770275534202540435922041338604949500794477558819803167273005877379600665298492032949213042130745528400388543495180870735095180204592623281104396599037181273381059739796265305904830499177669535409373868848313758148610314724048272570641784210250103687459255052355668796248569627424643228326865522237066363633447781313214084004750735009231774440860043566095888645391714688095432154042125096823882510871565905558326322042276127241923121331095004139243789820299242431439797265950896111526949137108331804345427720637092402868454713664801959283056675324814412428317442813470375225937736915382030219800539974901510627272662213544753143545501493990122052307883043242413095774215293217946478576119955429495930214797111376826940836488154128513973584894064684744238309476128227901498417320748280228643306619355140283153249783027244823809637580128650279342833885665475395760023947964827438283184232281155300941439790998524953300318795267675749694282425057109833612366083461563500307312069512559401722284794564943408372343082051289303908750065078981918114710563314705350828019648566610295575383835302747218773976511214347302976227542625336223287771796229210996788281121924590460037722295063284927313806197589310499464546462475956471738086072934540010356505324002960274606173185492241210572647369961050319999810469174367172923557767426322032840745833120578654990036985198634139351084128697187156428002384748003551847412876970199482470143709768530749361834015060985921567216437112808275730668032164316239390890278411946812758219013350936826740705896721003945835242980643777223348600257713704003821820489679169067936583626913660763485388533702973676383536498737416848248550206457065475606553379813062038082343612000672525574273041223693134628348889127307173846784471390551191476439787920635209083064718515990796171102070339240611657286892196296250448375718933230833955240059306405584837811483802357350854305389001852740330769875125720548778903626054823604582814010180021974627087576844909561052601902342380633315378283440701949737708479257627000198426232912659243384392979608682542524210375937142656664766117968439994271070255747621086765185805146297810586342736893654912402365975795718820577550819125362254689363393150136453025428603922374165604736748846094933735421486859255141876325334913044179308654514955314884714037572975310059156704486821608747049279865385892875183196179199753765006792044853716961192741047568516233703102692770311727708488813047984537344968580372398689713423789145037130987110810950220687861214704515808982438081226399217815730166943243658425378152624680401790893358419782643036447792363070037160172802667319117390876415679820925112651315950939776060392168397438995985992863185030395024383801258354831004923469093986649364642668686498732272565054662164520963940346956889967010288257670832711490705120800884939877252184563074354280159940406815713552206488197165508696700561774001581463040340575959570936282383497779104485351101309863366837078890958218312587482139845495996118553428193232450573251815280565192337116837582861118636595341438062429987272168778537479694517733136766552744364956262964367800641053644712979911290617422757528417460831677774682292538390098527474600089559296484224673746713266965117768294229898167374022200721600182017839857662781864102013459590998204189542637025412722318829596652136624700947379798156879897372664231493425436703167901323269947272482330307153037265411978929289487233071640748553322789183306942256138430464796335049978078153528035335519890862174588098717391359226360817980147731715613973758813483068731118450728548875270995121534637710404518902760807289962682822464205196112937839831326304328555999359609991245970817729681705475612097235209812728449844819469414547706013525415677769913575939177748377890648566740281558968635693669383074305352734805224367123245073699777242305767265691410172264564081594436067703923886669458301597012384415966225862711505938126970087282199597088505116382660559445512254481688667944695031919894474581872917853748214338249289697229787047901338151570468758445246674201326854976106083602399418951384258132708325344737774170911021848679588517265112100280387248610930561256525534823030475369205450712200062854128342835039610330725987052555592061851249483366859106086998031055573403821734666987187321389250239014711751266609094246578767839141864756432005670905656029833974556920781898539231958989661319209885840189992440914746076209155981468833252458802213395139814937147108327240781909951439271279991019132402907601739191589079199432112087389451210046200520184331753323785034598870759326908368744282261566330833203033060669037625655012721117251326221545409668049858161879670299331024393988644173320926449949361651715494704267091819664232062199793402529523302085595482199818481745943850698203785515233207715310434172599242963393782299509563187349784434489947041413453332562363686842487143912058675463695716893744742050586332442335325985005792434990851850379010054362508461198276217049929175087067710725847910039581339099732787604114535041921941768336641874008640378366692842961189180421329425715141844246074048791105680501185946074630848181337115606007869038556736516185855794201884392417364531103957546292830674890435459911729014183866415433359980652382129435982321758498946192530399147713226643976250381341639363064860121668936109286579444868934054461727969643821277599603308887008860293879373203990528058250320968081430256865807945286745924101999344411633878730296927108736178563613542962333926156521912882697312851626345157194662121792341660762777668738399298057714695116559943783087393355248361875161780350564986312028948733631652419837019391522817308705485508997264729029029060577605234721827810832716198781446813312799967640178928756876897367681707419245667273030253623234973077751714195609384305937920609691790352017471552080895690443130214265753706681265970959992964076118689997236906174561074772234714401080673721296683647796780227461583910792083942598724020561573369374208187674333518043410171610125005104635902420018292967360209565362174137291678095275637631305674006149669274003309560570480151937797183893112857857470349687253182290524425035899525925651348040802605134375185736483734520982006648083145891009118545701882493773061104254009918616506779713515189443221143765691333012163822295979814177251029886338838745057534369067988332589810119461408657811958012679840248055651324679636826654159854795230431086805805300931090117003029617451714359575701247096784398348503010934962276749012470764884566368329900471600341688491675535408494613273248390845915597575298248128020788950179487356967232486296086310625915329027579761830866619305891314866960726899282018142748157089438941165607668089365828840865694425489541868125069135664258292510034996754740564154014375619908673707573064263480057839842404711515906692100471370413285334302816620143161647329988004037442051098736407406564017806774792421529025540893052247302859355072421112744865557146615002907461153378847513057531524753872451732253091742317732118974282097662152729041531739850438057886448189662786622480594406655088977923125145386557433131783364964521600268400939789094749093509820299513708431487173596166177003743061207008559534402281382621864227892881664676992336355278702588391113228820197506336216868915099272859060254110665557316058754870662656874350791644901836641641495244442716099045059578738099459089368771165716611378641007799343252347870034452302898377651281875777067207198424888330559774056438251879140821715644112521628903279008117408352918026641367877858162160526824688759234298782246795942882467069406227731770413144251971944429011540329541604396377482760653447241741228939917195944139472689637103159617049298876950362675703976674538422657925224792546017047737430293309092221868894953029394301047138008026031289850248554918900382748690499466303412474309301936267290827124396044256863456851135970906603955495825327473527925014535264829026922496055071249269007742272484534349455953695907277442469114772446155172578620069266371727454320406945523093863623320862224753067920881712214760632088777037001591462801573825084276292842466215853876616894471985411475274184596547843816582272635252834505035259152577830702237300761314509420554207346782523148542256179808528589884263715656195681436394540087742989387577336853751006979594436262204282141893921869022653206988689254613785346987546530416529570861463577413482890150136031767037106758626011802338785212437559126994784312941591973373753524652604648267912153481579481371243118451974876450591219478565986532980523209326487299307923727105156373951778157414062791111385819640976136547603944590512402099328137902122399653377953722217626880749786677013411072218883612681853224238937623318579686178921333539668254211447595794511264690688155587247441637045279911750580631500239896181854060748040101999871919988758447217164410796907793623305305519967150875694144258502961186574283543018032214668400238937667714517609590474410895760008103548383352022239973081324999872634084351575531504094502778562290509162636887485846594310336205307085247232156856394443964097888606268485997579245410982675117980922736763786822729001216021677609560669704192969450776614489521365010146593939097538848118770611736709703827761149385037647359514943156277313640932995320298211799258874186746701643026475141249252098791838933520347578445319787133321710845867309704346119213271458587422508894882689593829866074736208796646348621847024486287049089000044917901543220311104070502069029643810046932498752326450644207095042792088871707189537538624672216159347988376725464987290056232178220025672343859241737622586839884591481431092659597807884484089226158662642863793411613053625508763030247964490693612053686636802233582773703796982612083849545123763310919735790521638404395578124271478151381363530200675186809431859669032047239174860605344050456742936397176233593241673738211208946751088532623051247861504731423345916488632789017950182682929290654680850623021854001895807839913375366054755407090112920156326172832345437448535539726769432996235228184185490574603641031411000014456627554598494630501834998196501734690633376939314444960270046564407583442879898458663174204300886700309914644324984205140477277394873737687654257422916587375659041928672421306917048818016613284130860191835039909029431611815130060288870476021584773032615955457608234366922209201111762551511322769123521926867760656982849547871172927090160255449590456247587355539353938551389204372024018122036543239089376701243817313610690110552027395089031576722359745482464451638501835331355508124468828276270921454257896739207342159494321470823160271112651919994940562988129131149095943994938225674289034399293976084224083400178070361869791651088193010518198225385520638180009728750068024266364628129811292105534608229423860374782451498045138740652244937860760229707558859539413447658532990381362208009885752581103474838919765543118363475533565482546050217720776435657227004456936562661819233353941606971308188802892898030493206847451813508096993447081306916180881809664261487465535220195450203689703411812543076316597165029591614925575129161027273145850258178608679871257536000369881946224313518845188174391525541522532761305674739915613788162299104118055552337407779768365001307164099528444215269674019490602388390552527558199769128707470049317684078735659391983859740635003035453962869518219925731680861765898203864648679737464215991206190770225841803577046387408905529557246385902730472571478370767380728179950984910500024452373774702756215842287096953262901126771549436416154153094116545453957704559537885440199414481931037861709748060964916101431599340211039675079091925731839611188606192190283013307570928158834189779600932863934261963239201805077379050787678831425084229633410417505373525938252819114176811451183499523979007577062752368229505643865840136463179261057615083845025350380765872990267393425554423124501328066439824465298806612916027109871042627529249591799895072147618197397531450302057749027149577698709602764724943944815097303732709385588573986418712481229566405559707761779641743570270250154673510650280290945810873044181519385034435704273536032620438665801759477583461653299143071611601747274164322620290685670072488659140173841565385383541161947411283290239587796726952042502695572926933897358812268654077784489855288341586496919637933582314588166466417582469597577713604743540505793340941833755420940049220583394149742288231665118312390727010109581568021458604591225018536747101946769222068235025375938394989349119366662812851483430729770907621080325521912372251725208354952810541559436197761015601752389361928012174565193139317265853107777203650509366544347983322980533705870702280202493764714327985597398800474664955121293301325457565367914012646303596732439790965059099805332947672560945239751819575102803862602978269429860491341146487973026508823176833694907815909031069620661276400487505435443077539792500450032465384533795935190842541331201865725177291295002400999318853870379830316116073809055465276271386980232466964187018033911318435584450823105088789860934121051329541783409226444026833058869652681050715096092156724398560179657956186577800510054641387716997195700749436092217330744917948397548884709121145873576211644711116506956215436199831822758058433960939196048766348496990702367875294994948087595338126641100748285317432719543720203073262846063351026175076424786501571499874326226620236242959478640250708972581072327413902402923253271423085450530943820069660613145573755057034852729929523636833164696384256946919100303716810714992360834814572632304485132650920995970634266814499966290405883336918527259768077446137325327577339643523560894888761107700757633941797401985132199460018008811498366194295817462620988550318278022227524702044309048526893123151107114711849894130375953045511952568306755179953433080886267117618140810791199566887257724550631135646291952813171126837991717174792922008524857909862118176177998852470150590704353094785191756295505414032966776670416903973725827420828830044467141968529421719386065181875573589675272800002333074841506883410749636899277500175409561456638168192929662302126075609700313003656096307155679321387983581247231177370684945020676332993893784462114803510821897482499332296767374648279573511818473682622737548595891851451305132968530131098757370301680653437738644993021054502921711730780851540941242531989324567360847496914176721511938904092977886467626791561851123637244016307009563889819561740145639876681220377025394585848102336619540575431265113349323827153319307472469203436272833700819411020030467021353408644301279171482983995351969678654597650770792467542182046559218223906076946359661941596005047799017489885274470140430791052191554737163470759952968835035929346705830240945281531360391688616273414450714491634245608878171509501344130146814799711161222736469501890441320892623988271322362658710764328373612575315253851120947737352685615335960856741128745823097297247335696114550517123572804418443564651381399095200866605826005181226375061869242100430481633402544034679248798299079279628834635730035314932770131038737615448046254249147813178124551396130363680197978877316829125282614340835480495916571067533322027087658775505925605016675099002945530030553914809416373352121522905402224743539131139092631877202124811304348957000420907007820512612497248588538858401066506376090737927538946376531588372065671224495379006502205596862215182514107414614193109007894371227788215674410659694777645025973139582702648984993183565596167667639873342533373019000972818319230448787365540498176549848709475895445724401976770795159938193451072757863940985969427040698828351539467314549030260141217132996434413258083013717543062092456986519773850181666954571499869251936952108719699703496776427590150485622109987470142818720677811676305551190183556449645314591725137395804781429222594592325711122606038515988782535731907443350377489558185177143634879570788313360179982647107266146930772736105014347392247698468891507558975019406015847745245865924342647537007873966154393471596736347592480445990758367699141921919549822591711588156061554949335612137336390916523314714892799862481235981799675654207776159377672341211064030320298108059256404012748665758635621716260333878417040730642227578540802711399076889683739329324229404057072227836143692235358710132331804653402678604797043214395688237630707520627858402649476362186638254824063242653713930533413408703853504148426721471125101621090432181207411178581337582652317804661657510220212421728733110583477137998680494425033552111388058686127022388625201192036042263776189550556581889549236977090193817248297066431575149921657519471300686223991590017332626878965203391268777878598950959487317802616896161026605556505721141539620616292462907364354491488062158799454153339693786626339809429728103340822045086949718067853569355251807148543970871547687743784813776566364839259808698166318388248444239496722126568624684903585181321026609740478377718111950434148936098120003558283502216351764340203307256509319760561438295539924103460783504083744110381084220733360354755214825300698760016838768738419056792622798295848148310540275949804662431616504177054663936747818645101266475458698634998120682548721326958628137227230816499703028451083047247612790146105407276684142449292833420137525368188402375973914746472278378402899412972210475219261946648994144287380335565988651952603016351021329965657894694307315105982493093600029901983159436791709197683503771731399697027583532505482170671642047200902133383496783287822657885107587643860696224119093264671353537863345594583174094451615693354462884927906986947059393799832091437056749993962211813972163643610514209977268910514854163000867229008268774083638876258055698829500441759581904159491692140141910846369224303092239907641004945512083970966078472320247189096359405573662794098856891065650856714670002900845277768645394222740579038337333308445626593535894919202457495466745879650584153605341827286590659886896437898649036445950167804876241714086486321401292695191241140220118874934045680197651679027289137688397165075102217973179739635394244601427147125425271536407364367421630427322242451818901936321375329486295621487969057798852357947296181834222967190073353198488593214254125147925106902042357241409585389908969861362659237573431166941378816906239967779040192519350463458403768001809977791114158410086218111259171156070264475940001218230384329297760850648671479467279498590003086948302122280142457672647901876518013152421586714535293718280283119960659723602514288542916530597400508487777749956885470086110232616799813190808765347046054099346356448380927115792895479022245890628375301414794028394781998421156639606086787533109332550953328459878725538332196991723651330587152273481491289947340145270294085963597087632369013183448122151936341516326120866639432845756669501450249637637976384571619996778128737616737487582256372181913652080762342625455040155707976868751923608021491322918514191823215376361199010758497322116794763269855869802577193963678874099995339057241911341393958374460026433499344742070474584652387463281226593799139064775322882956599908130438512704749871452814211047763373868297349528377079116636416182193875514512371263390605372517924713180222574176490753452541892726232221835335507400627511063271727345075863466231278391776259016608355116840737529754569804987449408569708517406298938096795196972387994767903126152942796966073523845865751704855376566553728732631327380737101142843523959058546702848752055745873409875894030380998719802006242072106940618773044226854195427800672934226092402722672667190930212146507126984627320358160610511346174645001280251800747749928156837102163382324258864249954269403084837271604000128718595941739627777196110595507121118238404913954859013957784718071362453719100092609352547957138546883510256304985368965541431445724233624781538996002697132689861279318219439403431748971555544114105229651571869017803009583129647624264255916523705891652841459012728306801799783621948268899377466159548457488232200545989568557986349738660240970961100551711007051334192120426658969853328140564172182436312893684650486967714082648635300438989400635577202487426131219045988518318332599442070373549203105634445340589103152047039092631149032169340039731663384662230662380580410628157686262478942208220326275146033544118960612453751803152486411152122728707650692386767920859966400798061800775548015680439658016611854226477966130542193970073469205625750859908152053184187388895543789146158307628752739952198098646440196982770187780309942105609635132542098284474546591471114651550271244937170585307797544724348101937799557159553553061566116078239124055926785499758844638129798042673764220062391641112472358663547839515548634744257527609476599739944997485957556873340999708608651884022367914772996204433079963627036307887664825082566370685518297624804418688098392162987024334595663272037166951792297608578141077463937510212837096277003007172083086264525473296811892315897818397212863831890005695060295676481027004253044282461576027784809443494285467262014789839762755955987310471440992085134557476349905340200948819794620548583142637815969527275763662286380200558054597869671655715290489438739150210688834526608777939405911704132571392420716969976274783707029939703249275791784540730127902618043893253348225341855241994404079466729265461951357082106518181797932388521682989063641639288713629097256392567793371541096001494253363115392949162594037948233889731804255739163710281448573252824348335846805942282930465392810753114686792921174198819534391026117178238151257507617632366517179206964728172675273922537336303210838355649335476010552046138268314904118487417952820982950010664852604627022438274649886742840839496251378784359042010723028027932982620262489580404675395371351005815957446454046837906398880204591017636053734997709955488430042476970179532864837570239890510964607455281090166367586911286213910063210534145275960929888522884433103693488205124715016847910280881222920989434768171360080116083753302678103144820529038589996627214874448338104136886045678234854117741327351838347289767713733036767829914384836886469313974746050776055229598480886000676813866945667896637582829046618876519440469578080640799189526332913829384032003927282504966615398603845097372325033460684565877585913864891139535126252028037680256930441010761554549653878310534989225764842154269851798652438561849908148360228263459156540892236881090566913080531049240998328292000255112497349498077813481449565168748900176922969899142630721012664589629672794632511901542041309738743661635894861333419360904676739096917136096265944841237425248454829221472244246339898130006134498326748832743182639018354898109789163883162727348056448970357700554220538939408475405818191988376378331394078199615247781363214269846075948817951674336294449954615838178937009458866877770012507059337381782443500227358508875142784129479259065250443016695491967698620917881069809296486326686992888624340715660738311267439015362065096011295944004101046928859752706762972234563106126614000476503568735453739070286165557739832699793935117467927755915929121362534413596862202351247211950058703883117296168246362171764966330823756177212989872072802576860157231699985368919225759900182991169818526629597109330331407533924971225775629962984348594943425572374091658741494194000435941690500102303457979100078935365813003528431812362733778812791269948129459067054604082196512009520649940311957521405324645696834931103258616690621960651327196619811577525569760298432860011832038720452748062985076794802635021041366634015578359186520874306429582189406813418592507226128164103758117909256968605492508774806320265331606390738185382404192813728625076377609333524574116243574280747223180853087346912558612359525406651559032318903915506896029097122500565445554845463999964979008476597972013993370024774151110080351920793505215696008754101589359500922649965754950394568792988866314961296673709610948771671188546865610365204244115643794499614877416977745507348149081053296876457729448567050384442515524357523964073208002297269893644998136602772675470070028183903572824278073995983017735602576640226964180845714482485562882843660479574141695679084979219588646945874514231020750607830879899153628434958924480853567276703080784640005348430612377198038103183471437446350596039321262119046817946398796925710688298069341701400484793336453809064112020736544915408701232590873745113768894875559894810802987879554809529713013260160557711291139815120172608806572151044126642839289538217840871041935073516563525565050184489797633166553892726379816644883203881557543725188989843923702681854254300384990838858097223241955196385404780364562491589351069034393246723013867484099097842757083072823235833371638120233437479413596408092532470586086593865927625686955663748260514285286646553104644574743228392568877773064465855115094080000593381980867836851089630490799735233892796881688932287015500681661091052652276983350429060243146682788942139104022459484951111102118654551586810004099551143224757158233580618818160079083325617284199184726370471850494502479068990607791676724974827682905943869725231237785280097977815185825300433429854733324815262855624358014398387299027623861829238864066554460220939656989942458706989030662744375069508693310361013453354865438698440113040052747695602808596764965934146063485551097306756560153276292135960001684126238351336553825173806311312825397403413824739503793878235694644906394527846870086814628298386625311247596481916601553858164612826966692660609236852717018465558530166082118927221359370164634803704976797439161068702673879342257193969403625196188944128928182024062836177237397528986088029368600227507990277372076167780136193829247248050449926726281411569314621611986526956232304221931621665534621998940524200753397582812068283925917596695784508300153467027186843136907228914687176434032826292174171520677645175731947037716070980240511581725534191589449716799153495063333249788968440434998789596381540769260626706867109101865053712878196617696607077960958376699141761976070381632395921408223054679550201962624671386336261389101708461369896973818284346986510658911976928694144629050240654998035137591716992268460777146479507773922933333008400929282087276583388315091696269017673265066335883231439344996094810479756923564766029507206010612116885701737692706325253013397927334639160241314012959514920922710225995784655484546193056315471489549735822331365035257684203494438143010455083047444692826864823236573451344111365279143735035622584903778594186909537008293123285078261082252240250119148712006444259260928985599250538163813773677087960086418293997857319606312436772303384134583888226211163694218951507211354861381104335545885089284813972868309930263163301370701163136443499153922261355696462441526209144438885907452953954257434399412178009618019864651035412025419379930209166057156372649370041422371758778320132325113099547030083505920997587583615378034025463072728938081524889804126171716294273574988403413927768393922366213317485636485388922751821735127973458717672906713363540074965229855446236701669033381622836694052143879216433940566279661335977275861651429706331822592893987807965790293790927100445826758166437489486572170648182515850433379993390269675975013420646169234337883634913132120279741506134450859823343389473038179668911725752918373315768432988252950369245587948706814812335456608264638350568106963313004902745146922992461841272210845109540773622457380125228634191675165875470599131716963925473343184493037147546441347235189420760714724436753327303419484879719462191397343074639178914090170216048314376228924192694800806844513655717319961131192440159432542243766322963545712716983617431056731565225408462027311470222934095153519891021378682710864254360948695809044245871043396700027107751475180944000055430789959166841047746380197160590977892385925245671932690585602980210135763545685136305654308955904509521774260145268287132860347524470729195953341387032949528681372898443394989093390897812599284332396334764389934632087220938230870693751104082120945382689435437216609724933607947816293971835264237494016714158681328357738682692411464303811909888468061551108572356901331050071773489639920182992384386654545867313290187081064294306718325118045649857102556425005197265817022332877551078586321067210367302102184424123440139064263747222326451476831510147840342544469513863315875326339980658586607892629991925294474177817587795067067200515447378657145456649927214502703146805200501785472469065963916472764181795756711122431395461026940079607123113265056469052225052690157825322738473442997532393985081531140498969775150386067583520419695316950595833842555622035240961242686124986432149654429029710624612414320084056916500370147775628800797021593498725563213931040135978805641876494256662921897711012333770833666800331718220533937584958338486374227081764538543789383228855358911433564507364226245688570806838105411222885655925747937029202957220825909105239112482968843155566365462898204523419981206169253875021775294918385016555381213352546028302433690849141704456713194070049894663062530469161516913830094619086785011704475381487395070749314707417646990881046286280577445367677867193561853163708915364844203311407107559228382322780583844300775918056340526318511963931764673839748178194883572488304446311882240553180924615104399437259288149140862979437012990087279926005857192832186446572495303678460557708124127401139883581300052755738061855465514700272694867509548049233542407316052135967728117461405877063434304915379168870131264415012316568087603841365754775989919688387154855004165603344035640054158989578621481246305998891196160153226296863887483257253619539957295478722246783026288037151015283716088489642850378283375089701384576926691986565604666933421935604038818115362633057389362666519709151126048322101767239286369823694750342833434884558895038113099444141804904903785592064341947818838348092285508385209833291679963551811634101447603341169854599630462060874940115536520337823579359484110872424514230996873490985185863452258927377805987644044424911058887399036207002639617122145641187614223956153502732145029041086215756152170712863319050601909596477867020997444803070344521148318194609451401784640117014409668196748009377756411511858908858814231652453158994028612599258335797261680919133121467050893460504064310972324290181994052974941248126886695598423513380620044031453865836073597122415120298410055388452740858849325473715139824967932905555225314531250147829314393978325376154035266761070477353885365144832967119582875430273343672556952681672751371093071364866937121753942809698237129577803551955370288353869016382860018127129200292563104089549672626343503553903061493552536758087028152257590034131284737124830748291143120410377183477264317094555482163963499594145826683133730638114336272853845386380492170309985887806461056357696353751190910345577563624810676433351031474048415174696227546293619370021249500707377743383287619262092755548916834674657226868169907409930271815859103412308055486260968920160779716851485454862616169531394828378396421254253885075194611400020613168720015553772056680538510895797045449444425716183347987290692149854797923699353489688398594691380796360654269351208756797489072280491223423629519157559731852007960185909798783616637595095734037392065715644753668340868765727613460975648376455252878252052061870862896123885892745921056127969904549522662259904240032274732046190176169383487706794379226232090076834073502147272626713145191617408131896895590597911670899856142871027760545293831769304181708557446731074753328436164442562809604314745436671352139930146335576454486485590886802458888256432624946577491529107425193713327968586336919593577737027233986651109741130346230645913516948577950940781037997298558003457290235486710345022857579816094382256560563741540071182719687370224934293912711632403244797294486253325938795291663335696591351627830195643477148396640296145727680809804839452002753333104924915110049625720098699713750334384200155745713426011671972655936104638940996274009428198677936347051551071786784099091574835774938653262681703931913895181596916794905487767983303964110002440438826876510432949955248910874086182902229745181796109039483198965601500137744328064521010758139037181433738201726943576166519764822609402103718796273711244505136071409378409699382486017837661609188591329593075069789994414010389872226762286596577003459055199835100739017689066594728344013526205035462336078723996419380088508976511870508821090359315208604989867317456243605002368361502941085341619400343690566380467654852173918519982915086954765293513509532809974325391461000348411071242103933613483927753075066432900577902213023248463247043432377240602378209847841653838749144660975636698667762674889184710651109899430369603079710820668700438237191202627472441880208377383583208436432559011819438735450672435121238921877817951701359780790810245203548769651179611736418072231703187305135317089980937993559462204908067518084970100182849806157078839073018279283141938586176114129971309138215959913347829360620757814450854459047579927888064504466269513095520002352894412174558928065905520196456572452875243271864348022410278945759979581937410472366706043734038583603354458478567134759042890934853780480983550733645853184632246355603152066687771849634132519059676105724271411293195286020168059163842267816066227451596961670365574522585702465853511716319655932328629176042899761350178361529159640243303745454546708342128353382559904833982733923985886920082072474073557777376487275052718493522677185780589536529074056899038407044734616214395638495233972538418355647975601244464892469907832410485363962129305099508587289305165640723087489168893247129004075647539721671304231290221240099423783063018105518008337181456168421275536631333728694647106025158261841774519877609089228321048384920998969975252011158377969649278278375794692399832441941833788549412447818106192312927774197154661093651504747713194818795694522992827092330144089449638338145467581101930954858179347994502434481818707395802358905131381290176199445651642218454297702931047565680963944643967882932674932152188421577436806333287351218193698465195111757376957686528346310904839423816227894830059190935056916534755575720047237244472538156464398460111173374090878746856470826248915643112282623429485442690762275287474370788717212329299697790076722924563622345242603736040606292234422534067807456551701036448970531070484195710629901803876055940746462476153327063342485980610236651305126415103266291776970991808823701954845886965529404351716685544307371844049142425703188315509057633571687563136810796167173703086635727832652388465589944939061897598374222189356444168393891376790387957064450760157680066509617693153464625228323843072058620211251948411828748887823162054521694212749440287184745383458477184522005572868623687944686565360725051373622930371227331129350254971366988071512096666114229100356665889743711978389704684397137962178308161514858498922354702238002277918611339084601085171309862167555240476651534577159324848431879413988340366917824872293574981261310565809555866758836400770554650911987209452362681765164074461508680031618962913930379525318170416970213060930751531928251394498306324179018667539616840729894426922465801160219515242039731306104498603785482570653068432636538386264683071830340594401356629364653733193392783083157920803295415259567099813834807410441147611816596730680801829584490160338550925452763251051329831739421723051244889106140041185349111784184683140455077055023313531471994294727706854244191497534088357587898382102307673294426280225793110136620196835439188944500704478343294460815556776124950288660070318604173889988789945216657159294352586535461313482867994271178383073728584343477506571102185882784372060454899568255326606724871831526795518842609295328949336945766142557037948626586241564983948520717260260712189930744287706680222777784512410281546053085298003023458953654072737125163895259995126118308210913558058097141849236766600104312091432248692071907918749760848307097388278225291375803501700551656984869914310914099515929543829220729727043756302949946035868051360953820793571584174755282391397689133790801869996534706750074518639047468942443831779459439574688015213084224913021241945546920993018706040585299384330929473536560337675154054632435927705103019557293287853306099043442268850784147556325662266269963758334064470420473764937962874769072600749135356636002052677238704156439055325580493511326151804505480928376430467643573600640241112650017210134329357557495501637354530152852236805717856586037485961446583304373823757336513212965412714978712902850572941987377328233374613367877791121463558875972707570483788625222582723869543559198475809829409206327821919215407639638279271694117323943470907470523014777030628663454620313114140608650310332590423637882575603301406559523698049886370364282606232787286574964968850090598033539352554451561774464699835601381620848590853043147956321939045206051656499187196168780063172106508688419118717397139219603155603991983250460308389106737544831624020739104334072211993736357292340858268248764136638744278176934827635243096600560873884096086262220390347327045415508053864352286434894156124396765764360365813945977987857265633430619517659319491045836156867771126190185689555160407658032589718629117491127193818935173276753475107672332249578406762906783347804109640818956111702262604162244828021938839996897437572084220260229301427663304747098833725259513696935356078199239104677562862264943855373350430405515735918740832100713356063489595118924018552074631377617477126968806103582835229526050775605015985860403654339023079438824370056246382972954934705168814193159952908433214869090139282778548594818807734402320541325352899285062742372357905657212338734327829308783311308822143788477817048237249490333899095380368282254201984624542701909828034799409841346991077498214295708714794862741571466746643556574463466068640007173478493720724813478535542810919992098858253582559142461301435127987017734533148854526951974998891753339903282316318322537855028299219925640542330290314662817013209175170420447809673027362219317454331295531671685670166378692588591720165585583575717787886521949040848297873219925199205367007216006692840959374577032824069909446147185696429041858012647578303831758382873446903970003550174355782554860413108739978090157936024000680678636306169574355717008796864245580995075072685135596950556612407643977545611444077378620309339694474390748669088324909393566070812443333252743283294150128599661391913107408330078048998317712604374674111452476968467440965101263978115454245605654919384716758757032416974084560251633527507115818552604176691595376005206833878135721702992525672063174057718572022603537221988927642033085681502483495290048146662679878984973881172534365767945123372038635166131899141325622033671739101277813132777060044223584193073069581625905342224511240786040370886384719715627736612511028109161468479927463950277186380803810469198366533193804692128960587226926749297401687359917735783104015930093073074348881472575791435043845220107324050220911040102882466901104845671612353373770434684109961477491622430086694395182228345316730932225254695522830349083478009758106769208339421482170756661822482754837438251247301333597846880557178734945425680053498639789138887902148313668423360232835116673625961986231736776097344081033142695528960980681799780557356769723276554936572760858749367910066338418985412942304091962982979813290407199460067090072123853252820552828556320214227290217214237877861178848537348645211086719956430595763275217419821299283902133994921703552534952976965980097247974526117936638517359038334823216748249457357247091161345666077135009102364638948937606096051448556068386764720434740429161070947917481543734855500787674612888235854611008831896694279188669549848096033802086053444049590219639534282792196244284700589098823228038051781577499313041361085201107597134491284236365405479359587265121420109435376314525155001493378544372991957017158142751085240383859778662227812989522858698358857534695435422318973681576122898775907544413660808420954284524637155981310683810037148881331894218912036293428716476587358390201796047083078794910432832713855699926474979143734586222684065466461027182534498970937169861744848871610405117116598437858087600813122374990584453772877958930158224379406151575311456772463632678986491611223964410369182466647765182804903225382386674021864565405893526010661583539345710530389424970908544834606834518747498678064707487788100556164378612312465920020524111903530018481305317682781468324770195790284017211355210274497386909350957103380609116672405192956664136486769878690442163258797863526778037340735729760239063536371536649130165030605211918805984611408562202195516644727101202299145020931473105649614365066149087048133243612755065865206066230892271621579520240015593640379935587440920930119138354995378527997508234423177461737183311386510922831867889339377861036885552324803906758781460270966857213443205274727383113721333007980652449791743390577579538272503875346413939495739619931171819248316035170867026232079505848918329696516888822294772476772253922609940875075733632079079593103457272994255871549311094258528778415292982921110544891746378303646749238935633682168531626839618019320689637323054937168252134215098180077213560203843775432229753552048759928481564249884366948358692509120118617635867933629978182714748934282840511091381717151785350636436139139341106075479893618230903337772212200023087028923996628254902424788362919181003996161822398541494236588320607743665338868189082068847587992330550956412837739507859496130719649800675443428383441606712063144773260523782646741332229856340150168190055884586606904953968817379469632517806743876450462140014748501675998893877200842426043261483297866725604987844789483002696198729162397474848299897627965950186232561044636525900386289463255275868795788086301005313082930165660512279418301673547230566976907244650943424782202866740696037215644046706957707607899712339816726697757723566600562482028470286682397719490485892257662190703817713755459553922371071156977549128687740765490236322187660937522540571376497568954755485317195797700236422111802498421243645122248534496613453693941965475179866427231406512681733432758381650795474282134257073231034866793396683021387070534668725382116574568166917395891354097233014710300882943622299089774690752058382909736278680122914624074074740150801056996054151785441547661052218424625218178660685224563188220195315381546207600220566079953964068526099690323961544706959039999483697980566080190242049683718686884936413259507131246412514654215277274443237637646873750485672329432287688797415628841117892930309747364740313438814317482134748634209603187070709759567862868184855413130981550499426847623763367364081360772502621855179086522187740651137574294524483567763834012694108628976289954961594609850658458007139492067121216342318102622919260905617295774192622115864182057036813948709934782308981594326733840818613419209101776358622963050014890599222982474631462653269300172128697399410504159967666732831383007422832544899252682540763108090234314084699228226568032062289608760453541854536581304504584907284773264808673830144409658510155452707257143534752917330134698246334466752072539347368620277722374826277748556501988958501928998204338431451457324971480289735560973497465895778265143977920106282812066147305914382814657948707861128084117666557215590673546193677988931638715572834524835697830201187245868828534109831848695590582607958289748411551789068549888074128538392741900337495738288752318672233324554611122848238527107737306131785838753632583557062185421217720924230998713410623042844241295499787417197574343191397167289284690291379024619678218628245985288418578985525919705819942062810446775977160016400261159893605249990219595706629312382928151064866346037911978287600170552264952932949578252274348041333936573345080457759140413336143235639563325247229782645388493248302822993595179960546836428257239851824565880558676874170255163527945752065948219909240643149927847667300684504826956663494277139027650379683279913551015185206312772657482861671053162936600231468662345923095447149842968674665507999416478657108421946976436899486485847472274959005694377055532676258582546901992102298201840814022096737964103479985538433240361492129617982406396096164668713524907080334074880324506970765872972214112498165230724144747757236817732425488255524816829393450354244602554916793175765258042068268189003626577980924572419580026952352881831506347912596330695768483846640608371569900934433448621737182269873705325343573623260872242179047851867477762710590332724796511371336451262059989881124340058256649187956367523827162353415360234088933615341844439363559483841602253746640207058950646932422683942511805774004090653246326513721982577865996201514817253006104110151155189060469685531173703510786554735563299661170019939591997448895115681469824734305754891406482429803257520589381855592337463211795145184434831888778783882586994549495269674367456574625302612807015919159429333735213956445847288155510429155451180753804909430991752531214455529276151203067981670581838920296576396844364829394222291253373374660056326757195613612355887194603168513623975039392390893193082162839763210679626177034735438793575218734922145271235472024883775508337002193840585578503142571987749798942382598979150542236769250489956985681567128118984862571936305533844790578147340706229166660926708401778882576824679912456598917173997914392671640134276254311259391706801749497244768251153633877089032031242220179510819945950549836466450966486630643540602664173724680882387725040817896796116412028954056734199893330802343327804032846910493964389516415551640568134594088935837600671193928110228124724263807674439428232374000185441537375433390321219673890226773475656073055342633671458550290271019511785426714199905874126293161211138752833254409569571397444246188390567288638945119645198031665614050169335178857314505895674096912697445999771993133020641230004284401420006599742197790365105360216032121603573736463288520234349111417101372916294551117786189175255143047699609291431322457470327208288843243656559406092770933606270059728331341982382027182678658440782774321098939175166289133506896896286136679590575991054631208474793025269064119474666348752082747975562217660405164799483068632013585368120669394801833849612398469240374593673817471861844689755804176493561363517723271243809375839406988911697419050354368585459662300649625019829957345649720509880329805472938180533842496437596440207507258499938273641088110042208517280623682540657878196099620695760618175046998544641453381526190534875259411819951944342263804966813317147578295284625092450347832121482332326012697042087814006311114675766970205482267570003654139293138131247237355502528778387371727650411412029308354036090776907246057692039739032421456413832688717473783107152683043026739205638488807456102061699504493643326607967425181699638614727177412485946534310479337265556949686718061889279281724246658397170953146954271248175959373411878934063278285056059897616679148751297832936501531099863907622013428237039187931621323489922138247434095653662016742578884669468970158758396716649731780076741258668343184207039069626355387336928259533749626319307057063346052891600903595681790710549166243675797938384107420055887194620053208410444332169502816294467898953134171390221332219214054511651425098176014651007227258267985220678177397430356611115773149773795972867243102352415488579076012841061318405066893644623865039335009319046454321260918534283543294809714813382839725442132919899150341630030681764993636015357661657329805435978962315962636659460297756974059771298515102347906729463074704756313963896244870452997999226665327549698373393649047840507800884689109230459960666795830641885979681935049546568655081800220734747017901880554213389701168849562882944258329311302591809695057492504047899440845685751199000130701272282794247383663744341812084216052147786652721165080153850847187640830771554234604968371291135894972275054379171218091868982054237633658366963953168161363087129103100857942270593570108928654759287268125677169782767141279143770261279651819843386113880796277539098489220636982239159712762627899153987218838545403836119071515183428733047953934582967120462238425788946642761165039252816510907645258659754750577018364468882873748241664104394386140799198724562958973068920342802643402153133010180000209432761488609425684672451497134915108531483838433302635089554655074029997653479275482623250256546357338889710386976197585057723369723980937466405247931149196754979997511815584844107697101014307243897055298380228520746930497375576179498039341725468213974446579680801334769360808285350642724185896635435934225863685690030417680400985193147142976783426050017872633388793266409405151158821728227504136308326204507312521319903552989989899124617443168594355624130211751753131327438537864866326503829931856060303958716322102692394785363155540789320469479036925655160472832454596333293096080233705963701522336767550315834821727679483743121148519120263234728782249461394607566592379968933955271607336198596305502210324319560440123336322270499081402244669602423506578401821017261219879982634820989464289165230022405106885926679882013749568167730769255788869034428409581892620160502905994365163954764074665889707701042321076876110948332495947303216727415861263168861974129143129373334259471580785725008378930295264149239004310840986015556598553429201462136247906222614173785879211529705671871381554932816876998518994517833109587747073088672936977059692617165912668175383995546826532778832974477072371903546291459730892753855544962104581423052583901806456169815101360454467080986252718322170048006567890750315221804993612762339385583489226298562341959215839827091038233441372704315346822415998121740634943165367523816467209135441517090896124855597135679728577254514457943653064082767018486769150707751750717908499559092927559680569235242977108228560722442360897154421325154349631500943536020417597001078877004689265194070511052869577049428212737726414395544591501680502037458765500306627767553978669654850607976523010393489079159723615261337688427747430610347045916074317701388214044880041540662799533618791304180796691855712111878383816882828297089081054044260399343261433705478627063003081767344945438486361068856885262840712234733439865244670077804706573100703482870214562810048323137395691233081342684405381475737560940635433998644843692798015681249914832363946541650819314026790521034215120182102958009088765652893655272925368862642755303500470260288220241569878466845531385381483955784661339702024651774911307755587512329465869800588869176877236648748842348063588469641833804283718529745248509104855979595193938069326324145449547692620119503099652279322605454997425748244594287740269363539688793018666094437668794567861432124565398174120373792803692467416940423857820958238539998661229750817233668806945087183662352684792819652120476195593181388684927172344677541589482689267376609295838122579743079596325674852141459855132664533224234943477837804340135461966973934439288188176385925196242443633118381565305847548954221822426229783920080549445037837724938701353750691378168523754199855148879787437563217845080541030396144671563325906235376202951994440669468363339978697699981412863143488747433477143831087478187910717384906195595054776871587073146358997087393634197340046768126912355780662350326784117848229094671169858325278871325769618625778194211574360940222146349034654850722978866271774286644446344350679740929894225794737106815261401271964500453222636097601834912962821976484719442706055833755342530658697923737517706281939885801223603314701970523751790884322537837020956085890405232141702940241931304280970758679765920292949993376309379334677802625649768064348534374862146113963476589757517318110114681500221528811655275186485409203443681541535672232372084362668377486970666337124884741079446354724957350638541505131707516425609491738961843416774104272283416451836162304703106689103330302184992034961569611960397384613692221176751971421662244680686426130846051199699651717224668718655069677805602084376997830069885185664403148780786474199852821218244358966077247787246643607581938806182785002892101543267185734434686562418067048120227686716717263974845653592579446785536468493535425861629052131703927228606835233499690008720868092033687116440223366387900152415804519079124088097588738694145379657703401702001594174916137254976387192240703519148463702650764905032947478709135295702559613383954700616618200282634263109604411787880622246435381710721772715429181561271064723765141622058933507580263922550633238043325339919454817427210273070283177426427185650203085545358017220715210709397476512717415606694363054926368491233950807729632654674978849783552751614364557950824958809359555747849531264892951405784138142367864351558807422013606062100166500807725464127277376330646498470857913813603901023581568325624662604755626825023792891879882196240683615647816367318938715935238101102941329762366577947968217432996273934152138625902677587892839078813536371646925106065174978480020204151993668928545551808251279502258058528956007455124134722993696997660168156116188639180284874184514246208489146814350563598334430241684814735056407796940780655197126293265569189770163411855572752697542701686470376596904019466603386294666758166738514572869790695506514845511146773593065703413149550297911342764919194567748274284347986017667328425291399215941465787423744637035052791714982153623878542748861263562250401895836082171567167361890615956286901957925422941870659063812502994926512095025786940375580780705140260076276798989547132261346162553286993289478179208340558698840540739427805683619457388943126678276004153608250151246879397643118476146941917933132154221796730657876700050934273366687605208185268427349584656672555400462496832499037312304455795589237960954123036637924661613840802027879659150746376000073928942031204684399727409042177766558416431054139654466437839030497239543881152235129680051908645454266514559386372862816961766730678681522874909313673175516159640565974728779624157037104042904011177209133096206933141390454230897353457976264553580993806209538880423876295475997505096131152897059713308388309846267348489984300155656160149934994823316803879005622390524640892164327913848718725341837698548927121271375612268638469269691697651923127146639884960968310434081994331740088058449740027935295539879691254508518795350087061523899243677548178498470244490932200276623573121195060488139998530641894367858536960591258832238485579897966461405763887354838909985505745974566780474339692112847241354646577585041543120885091678457427884899309162758229155863092123344397050801019508776914583956763275253894709749000417473582618252188618209885319047446761297480960937705543447481681858892949184353522808910725951856263669311615706609191535923719547047065662140941163868822340220465669324315550810700477311816350077811573644233265541144535838261704005622590694654744408553565960981231419714219951125288615966204986669174660537992657128521512969997975892147825230868090669588584371247537891654423433947546915269460055339029403869424959768734588552030429729751833417367156791575536913849399111801632662309820272804239774945823290303871296550251101544029372272588803371546583299863869751407318947694335527274353708579138938046781537326771255392322960464750520791451680057298200481078019669439099380752229503745318805673163522575359866528758584273108237012030150545594285333789988128992517004940114940022331787491264831480483985150345791051990741649615426281599050421247044360603382087200243821286302609684506129629081499925093128938063243243098977651785142717610233745198968060396631808172270952899927563349334992724196128044988969074015222560420708435067500406558172460075058836589703581226851145493522417261894230147845043577679899319528601306192586054006048522351427383283850697455873950150609717529987723198889724179677827625885575959825094308499609117673643842891245356588600470915771150902843336545925295474630263494088816823860831922547989002271099930915378780421856368291929491764125420313516302957454875823562896140593284134139900456135956440595944567384995327876032302943212493498552241026494477882502762731677089661065165771364541249750329503803523268660027147953115916846204655445054559761296884019928354446130444789482317165411586891922143957324493594062758731363579845364672069216127383771585881866015736734837700309316357949246168730539632350614010866668690815241654837304613153530242125246429067202866855245854192035445659220450839990942397935775897002375920539278751239964620362540587437321890290789884699205773481420302937957693225402567125127365106495364909974227677441705829382454882530157974308722724245322292471676404589626754156410827261657819870071921829882064420444901677825059241001775613928473889785204958551347880757382333142706269379970334470446622754741348218479590495721848543005670816514203842831122566882970201798756870365903299659064499673780462852186050073334017273335546508335849940798031630372105955208222039438935853808849662057992685403083344577667060531490944925981591774168431720364471897830566747188319871932889165341859875525791562027205659488252161470697517543352515749537782279787373208149927524392015616156742413603356308323237553655526537721661911771859731717639004778745517308329019867663007145881007459983153564554676877245804291137212688471556754991130946160604383087754653961687535217632865029847713605547621648950154554144457818189427178194066666046444417465834651277445210455016523408315636095776416940634101850027066826533445076944360275920628973864175046252055508092079013414631743088126000493184602060888095271439241154354226977963423793898660416128898127098934559044618072320558587631827399665189480801686446069869737721559139839396849801758373708470376288667567673167557741151924830769414278428616102943785377695498549225077063054805448613916614920306855397798885622536070235846270715846580321873830336922179621894396352602425881766032402478268138906026799349932861024138230996848323431836434730392103954718871022563652047213821887365211393024221353168928425118309002210840051770621926724161811751703765311889025455993462854099449973001992412926726090480355702302512813910937086937591459250760317681179940673704887947875310542195048446470618084617100190806951530711615407049158544317080168547938400095727527376388237892331238763300621719413000942713960217588843986464971025444671474384951160851452253273652722948811277841335265121980858095746771580213853066196459326335829840603440950878642492413183947085946004914240248474162943918844061278460993680596511628727072856362063636706836094040757371072883125651074399395594587334346694794872391612358222223400215790412261075069213372697871350826576822800859395593531214272394189252355222871814856133617597092520101364275773656346794665929662398231043396377936623691496738289241854578298149456533316991361923088299215796531638678779607159832583638016612326229489861633260129456780042231086332733828803193427734527149512312527750172206678967971949289233687957532777854304082554028807567711886625979061899073175478118627395619969166572621259709666888398536237660981953217965638007734860713499312639715046351399762932454806704613401693883849773710688916432970546133722929974753551444233861504609971651099489249825507562896408614460759235785638681976640713973140043862827820135657558846294376264207104012406039101069465724803429295686211327431663673415538307750258112543115629281964082040635434700449999772170429049421010638472899825499625121471226505059831380066602903773597380994231147465725732801767255594149166992244564598685948414059204465890614955583774366842538666162513572897797220830436667313304167790172392491005991534515788644619415731271379288258048003541247767754538687899492919329358815652921057980191451047566966211016623020421415299213220253700485983256069225365698092794413573785421986528491551983476965140010242211774716812945446403695327634652194525684670907842345677259274495952534396983486882476967000150826679586777960400938114680665247686499225963972359138487426388794864511508563463226098959261567760905861929770463062407969820185076771235681337942589311859901519122464082188287869063094769095289625690897210730141202500571579909663932606681723570531801049564023341738255144669367412812928757222922204473430484122977145174909661049372949926779387723318193064708819306461044549818398463628927361245696140291270396231086294378880637280887972289014613793789613918739083649380853966398361551136599457675198202281553956300402869089432028510757170712120115255800623025717623661641342203150429594387345119226980619281147945350762462880750323868340756904394425500918614916656649711168108549527505580996262652453518522791041900234302179369857385561190745779427859281827668517183569597324855698792299980682120072600565822568292111349065794590632521290962537722084980771664324209012716463423847950860111277464177386420388441820144571051231566920294865656766499992043883536992956567732213070061189041611406504222806515524947718098495941668438215239969451078524774272430176553618502792773285671378761098746227993626300946957790243480696875543638403993627576120150110825062397385584820133957272895208299176844232050420365396649569478620775578181776867253548393070248005882608064322514632170649164070393830539245729279578595136708700919894998658186347836974452521587122311778147781222812200680818832394803785771333936516213457500569110324526768051501699445516539917547967071530591595335202325614893725054357106589091725506723025275911833479890310064419106755164101812656271659145069737457180164230046499304097073472645888161823637020103709249234867874303927859453107864370382526479526301855877900527822302570381833595759425168013695759814927318050273790056419024517057854802615832912145995837882097576171320618541692860353097155400515782228232718274582191096370703462901578559445246019063944281365238557851031117770390028857773092496597330131061858233764877487514852584325910573265761972530113986956230007092988068090562816822471822549115057554033215714120268749693564304702635572471651023268466125992198439183305096825846531342108942860146590785040543933218734310149944567104972855207104326010872108237756185403374858855017241572060545427276128370800720686006923131618247709142316967507041728462082252829789274686402612485952684282809218201677067257135770060570016946263393321031820124806542735993585709559586623235425738830830405210065698616681686849603669770207006081619372569463647489206168586588183377094101986153886671760190656015223845755315958645653509509018124948294421283706811131611718785339236910511939598463638882417514791264011671086774816843393219684249738365595279775820964197616299678428624283217057416139322289502081790271866184063768189124388681186176944937839222483342822242424020811920710734620353126828878317730701425963407950965840288892584728910355740417349441429017127808796895303877598776575912602292274403377679519343408688953777896314927023978749210032058694087031863313794764517657227045909166580212226799962268823274003711528857538385023519219615574909671391845098247606019731006205362042839890049731449136898687716488947398331987881984933502983287461828533743637339629905851527202163047908151988035189620614566977391224763193621956686332468322991240082106007442008274401201665891664178686426528920193255517836401542379402820598256732533214996619296033197218259905070546797689935850531015657191059194098408753565767266895863177411560121094457448303926536086016307909214783554955815913221095450720295361510928129456656220719676253689912079237089658429579010921736945317978895422852418244286002368858829785869479184080845399515018121318269828867590211424321918594902416827679930573118010226086174894685574651999653077964510095895393109594178875227344639280231469464373168199853895263440010377837262884049782255928968048959830798803041138797286810053030188244543510416005336211008259371640030011566891016882304225042121161413740745092073752539639255264551415105241220370696874960022316547222590625542714974692043082127382516482860641971678274344946679919954289092249795412919137431672537137123047508288099718980427503829180578885978235427038117726671804128804485150083126747625095516111614843785632794765150718622801660162677707568059352494110462852929676149800632638008798276486492677683816329290972496057635703253222149924247373757961648302199322083483356833371054497586212083114575422912455612768480362225135782119745544887970635241274707239584135245387380058836265158996088767229721588611832548270874958266720890925672625560313249184300956243429838242481824456005918997472136551639454629594989171808057020538905189087766560180541828381411741315407147252067694064323882494378701080534481526584831925123497929413419854682515845981758716279974339592477685265949250127517066263282222319264763469097404051562192430494418188828674320019885829943258396662014088383880430629200561524783615263045052713314711690310786001210003359525742008866686747824218200218699791216946612704051409982180787903733680500665429342065983139589753921187806546448269017701014128287321269524861930963628519862610544386527534522255127562590749393146920849429708749644422033043596309149828049493328499890970138000633337428203777451673421191534300419720728437394490892020739559764929195058871047310050541656939229326147505983270218937832204429743874208836214597952027813086210816504504813397722707121410429725067477621541610428971328758649765603229462110299699552342321053123743456462964104986762411434396940090081266222335395450405534687853426004155854361930420213630805720378592845046472487726050962552680105016041782939136897681157393972648454921717116049776890145370623386592529756268574876947409660355476542897098244607437453918432105080120693888001628494687857209359625739043441758907010933271736317575932161569490269725779620441714112797865527149385156985539986899538796843336816394360993863055955371673590190210978902970062430391143614031106981320038363991183288346851060545975763447999854345970633752921290775253385223617304232447926074718513445671574036519562589238133312915828645435716563627513495437056845720751765876058850006750739088593713724889045365640428609859505799919630173486186784094294611876590977528746400233703388662915792746744808036657988597182937957198807138000965836700966037758919483885489753909612202233284953968147231673474665096531422680061661812374462000589812489044326860688177172302243938585207207368060247924871997208889388437262194092371038879054876745860011215226339880139460886863665605164023989446031880966640318779062036483843337665721208832957777943877147562246688583017806970188431598272419474124460853320943155417240040333270632430163394895913196361027606966705140351029079276195124229751619395012101420917732584104020516850074839553656485387430921809725523088326677668057342941369133724261987877056323059613091936890070631449361830170605782546164950994347053572703477378756743597249004665004275238620404378128092455554102421152488178288623494916355145856913493467099692461684497449502936726413256080112009446756683930995157844908174508297248615094035673786640266146798821526692979011161216473292406235171293284215688488019165570752603938285107299770026422275234611027684841860326504869163104374083713807313219288610471504547375044095270335724584743910930220392684142726631889834495484991200547981589221098250156058062328616992022210686075650226232282917157397530823678272070088927216111701329817902772872164660673827389225572454718463531311071919145422204466560014646944701721908978012473163208490702849646218666695490344540452476205323071024861247523064052715844849191032020629165077780766753051576562354979950298019160550151410619598730406885848260679181034994988163516505729826454707741034025562471108457950232809402067474211113301457814130079233163775307369483801793103545244967093188483751568389278493272318495120207413872597602917868581721456310088899534222250100333288594722931465165331219409222471509875856475781403848870046397772482070641759302233772120124782292747972706316530919657348441299799957505964321448534266260676571990219909282842626187211902541644157674143127005773755674029197441968308859480439550113241480693576102607312629791999237520679439474853627508515670706167586196599576299652591439991098118205616576672484443657307530358185007476353218836411808551334129183941370632536403663504934560166322639888252194720278004244330295133171939973959249400941544465746127614309518522485132646370169099683277093955747693524092101183059684060839890675711142541391474778461944350855457360496432765397347788541137687545156576911211540610446773714844505812446077628917302444229100672783597793033631079271509358051998759527884720904614665710347116166025744811547366730657891123222938608011087329276289264014814218477833135920025357613071088443032060448950628591239827013483578552683398086343913928314351903739300433603595401396084593232112663874384328593306755741641928029152490777346334220608762652314334827272911242430936173070581840046919336033527675473231024675863904217019178521694534169814024247334346335750942586145087028416121770947441516561192036637737832266252822684686923205193206740533719210864328254101281270056684664056639028713743128935583050823690289586925836750961508976662716455887901927215381520404931274429618431947219269249511075215776374228172521133901544620888280218422466890004395585471541784870295098371132708169751449729460000362000546750390769006508000271760148754012947593747524451428780439805725020782883359601723689926198478494760674167195954358855432040485398487230918312981131988201747931711057126045341241594254909745279493477502878668756223529777617184705434707077613113490313551094764947930669702069446919737919068905291795807876166945095473478261738418538079277185769936064500834485887969506598448847692833231439365151508356829007426539568730075241705389071295428252087181333639683393298507430096910590775664311728779971389862415994068177466864996969291883868892124117607504977357113727985641082969996696787264179678332435664601639907254636361587310515296164089906608210208597531956279375760683418826700645057920644586609456181493275458901034086803990917685433675083838813362639695613718441358302074316339745096273647540240568512477910074742685504695383209879591784312779626150740973369042921911786935416915499981368712395389538394857262143990684514927077773510007651908840305920841736340602340632484388151979325042451419755331251867424110098799410140656211155034677548429864573087323607585811844759518932556785569438101240436790271349100636719312437244583947909227755688792545850111295791630911519517271777183159381866231701440881044720406942325406952521651389346128008514401723447075157033322760736408783765590993583259002023849664206172470840085374575675697697363633801040412262582321720729436594427875618462478348712208275312733508942948637654861968998371054190792348106563247099078309878499093069380720998579259345003972735920723278718502626999614958933428512284975750401632394596844968154736545262098953341673094693017567566737290307481875589397880925802160571624698278134464664912287091343097337389143097551533548460273029384467576458008895269491571918263779019274056062878384973685212195255381297972239205475384004115456780027481438543194766709861059520135040213597262906386044849399348207137783879386777926069520050045674365777550398363968688523266732822934492643579922532625516839653580232154598522538522338462117140031831856243591006226694621929948505292391684908110726368059575882978270041543712577450625931651698870276908471549517303682098200651269749485067272701194735927349770669857308188432792110458386543139367995324995682331104547812546538208514236719913331065066534780749824215239640663647392335319092675686702054453022989258925569813545080388982217438078005709728866928655995670903158406902233154507209248296327842719928355939233003348605545842604178658063724998500504589537819912571666923412309835574262758939241420541979543977144983793539360987685565165910330882667081987359741302668790520876538481552350141494194984968243092767714306045569772535920738281519447249349707598229141573256118328031636194645263666809210854917719770530526136006548729357723552926096295066847257688821496741012015706921691334689819552315627027290788655710177099372541265146554023613638751475604636833839635243692827280983567719216889780578069504134889534532752491463624500135215849511064927588584320198060111585457168575832978306339468539683595018700374870445622021631257463399969729905737112733247373854729627685601383553908166738542563370658540004827777749578928872473261041043604508694928586557852536811015573549219615907379662241356584209297932506656460388545310204561154807239211337667486831804019547433140043232611110573740573880236903380012585668517546957389762950607793119994928731037237948188569559924951679497061288492441551794904907619712652508007983264467637704276867699468400852619235714237054560766145860642381443139027260483386617155419978478546974697869325908252481943523559545830307712428256576254244269849933443271180457690603271208333912536811049414290169334191465717545711679774947843726991123535579628060034651926655737959515109633676831489675309138280232886668443060249750537806274661571687784629165195734880645382141533570964127836491278419959320182606264638555501452666794549653724616663967132738940021549035522826572465136296598193576629527259753567943637227511102922704477226756636879071316544731022176699229958082885465582767495390407795685155056266431286441545473166339917023639133591629631287732014397511579579521399456991473099115543144190098179003305646063192782779024997827690977723170106081992101797327855722723318046000120671441598648368671917690159556628841473253676087188418022161547779330069921834147365770979418477028312003206005711906199271931030070749663143782015919839749312880328675301388834556327436748000915673322492209159143227301452064233606538980373142379859769299267808037524724699340730706041904876081343173407134102547498912517487752027060649697186977753228419788784440408953085090988217292302323019587812041094664010243576667748517337248243094652328531612327695889593051991806592576194457320541461005189011879766762934557656431170331707887575769492019052943049390120542304569151809063273718760800901331439905385263700997351439581451296368209434693685704925934474981572338446183286315353607504105411223196125051980404761235487925666560396959107426116111544951421340363902077060158752842369797558356569737744322899701378657744398893530411237310569405264177657598820481329423310990906591712857917026943790237555452432871873849592611030358729693827538400461956234627459727950699578059031972506429601605349035112490548440670626867265338920037732390224014870239611934348904872681653529397659551605168389268569564775094212329769093085544159868362749142084308917206989477586505757510906020075963721436644316582888449321265205536163659741058148695072918829238460093910533566266307114227902459936334308909148337075221125300324141195946088109308591555188937710190640388849997144589362211842298089858328668780063569200449352515544143140780345749207044793910177199383814459896852972820174670598784583597134605289583895149779864210609009303414556685610209115690066683552444879969033049065949532637004180981045297368707574939151467652040659928157083452017707343735076034038050433603924119814421392721404340659013509890059471037609435295004216555584129509865706661233495776037228300919053333862658036181289062468012013572719003098417530499979509261223234574239949469295036692260259440622558976269503847554866218210033661888836503116254186743459939160920715383401864142511679908871372659206738747989040640705710535445549036754063980360694193161723827432445031708217622392755074614596616446213890515119546371908443294912362504215266580952120637316055068345429482722694433139057022086211770355061305710200310162810740739620596485110313045138581119019857058684257083438438663416372278488219659430867146165788558817801671923945662827020905914371577299824121336090807039693610477593272212010334266306278148617780839156016591506755043339070673013911124734164451063540036305066603737403337585197991319800455739074232964135316796933882093016813302764625303959331413496559757153259434604456154143845760007056064014433288187550538342374592653535943795168627648692112397118575488453156450351422819769195841459273020585270957425530435752777964063339918493816604354281343698835020589578360803081003247814148111911025110296374033820459979727141464824127492427897847067190716683726772820310026790035747284905802548975937463747514368665542703443357520299517315039131865394161133975736090711661539682669186807910988560569254682584985717864748790043989558271978230769034328785665508097912725640324460383882728135598604495319864017681076348328599138315622169794597082686248001984528514287336972723846912385471297398355961599034411600462444240151213664953933104525436698489621446186683515916530828535711063286139768784035038509914161483983332810089314362284119222985713790058802827837785013528174847161619817456744391466349296707241328420511875775188977732272837689606627589354757690832310516989219559429791106761724421589877182176081329365346734987622210342074353118660671985814491609809037212748421997107826430718747704147670501017598927475685230206846355467904569911727348834869516581967250412069806743931708058914592805127822698627705358794626461980279372008222345127600624927887303069534255087886206804549167650861777974204178324146259611751253691622870957388472710228056243130184544292436828690818986310286450079358551244629988067657847614472413897290156553752141371480971061071879130060288661927117725068944066300380309440086892732553940682367944658336590713387790846267995148759857530082035819937671820688512501291858581817320748777772111196392915707332729105502822274217114382830259699630882223021907642755326582753564485685849899012600706546001275232474274187373629419286951130015710743599626510491309232901516435013045191526768758606239211426185947001629804447912382653960185633355273904288249633272894172975726358138778584014099370984647471867025590850014159567946547998509618990607658521592198530670789293855680732368778815879134747282608658721640234135892239808603260845917238087869909981453057271976312945338085258559223948942585960390537677554512356786653013889912530379118061836672367870641334416414781880802582871970053867890182131776467208357450996683293632437191173270276557039818294568062035918389363695862641878568593427600965670684498052083149096491190293405499374459244254773143429083337200910927519385937573813062015682924429998032570084126295724640503908999744514742691808559044254198582787904826097117645231583111624171036439689062815572774810387440317272474979643878413890857841710423789387542666621799502335274487392114801286237905362032286027033709977970017051349194803376447709462807829328013551222405849535872411508337642788534828097561228502666148890474266381445908443622224370984002317452296787699624165151866804598538144778287351280491513090217579485778016458537938130709137884912463935895815280045072353070310938759262319540831895452857147242533814556036759087526613407799487293400655117585591151156045709812231395925921484368483851166446780272409989313838396416256459994451688522212741434701484590692508264945271276702315619561481694954528396962635340036823500558408566371310171663886314943103337864076389051681994900454038342572097564899404717929942502526226800496456431857044423161614078315036630566772751385805494618971502538541629639784473025607810392297431549035858321171559699300665260759374935336731909869396161008007243123259559849462542418552158713139566429884676718130340575870888111868460423168313586644086651391166643403129272859680692023948757548539562966154027974942827919655849207337846120057297573995058406976326130299560684843153311156121137026432458288625731505864298236403028162873423393184989644749942278914228121332018326814689924349427867122247387682490466685590026668191437031548947868850793928354196925083042154066678557063494062286071152466206492864382307209436837344384497238359855424056774611475027551442481458634295425026087311660132268710034429329142660202225588835275751931005093792410493411539747215629496466780923868198410991413053470925996661009163134727032382229765425382266568375840726691560606949350255794835673325087224584058861219245248200081242172282346865324414038863287301642602511116278172217227644392177430411722135669991073456832791039720842168017394308830258302066899053785867677207861824458598084954607919820146269270125037995404069740176510620365236586681983063679606140359767748458792047257314370361712584092759603183223802310937042446245021768425269403603588203773971258265412736494435103606779710491471577080665122757705752527361133745697276277817406247874559770400351633572877895328717034095092981118301382827409079567700315605621797525559652345302534689018862346407890223166745780426165888029886980125973664750737606684242617801066996948231439129439090278065412048872954711119228664031140503582789385567619049086379719200653367765030813005182254832427521791594125727539524338042506325171751850893170851268967563127927304447201821908061173178486576566382974719531889046985772716118535328785916293961713392855598842399967082191298420778745326136897643220174979992350040417410677984407340937571775911235640502728174734294574304366542495012190031099276170159828362246923265921908207508042236112521867255730734118107532333507224748935116905860949404372727641012617672842340395025445295100044784190311975912851061058358885315955147438394125325098157246901912549206212188001022538023579039290562895727840387078899407963290371314428989959428720400941108834198622289559283539041752915166039906555734725390519769410387728098577355063369097462087264194552405686135279580261581418300987289566164701854838509585427049669348633502833627743836566444584351841498630772552871017196568490216362026366111901399764548489277123224463091135952613720943433216769907146537245672967381735069923462545019793523909107831814887245009048519977163788420340443306577643086275443757493952435938824494461372879197635622219230980150893065487655117278558127161136190161669219713836109083320641305593552358235668219017133114560928735999548616026101548290258094658906394562276590495566326928233303348137265199897563951267697925536167137134469751076182310460117758679891424650214904001087289769102595969640313590562190770484598331124304795870021946303049543975663046502801690468911396873258579024867659854912618589366399054553256697721558868890901009718584380265595873323571129380478440785002999450211185223503859831658579680470184151150611484574691768868230868083030499804081564168599924640593982614947997587038780906525343178661746674818956597054505576549869426372377090359903347926180475994482328580836608787371256984816072244390203369732038533418087609639093802567437198045183989496547110403033871736115808700149041212856905402756752775765904327132745399319771473682536591344798486830220270109818462154861230547034482456096513016538303804130082654475325039078062487214065349191349344658626312220045094196118855200603502647880519718765133639303992931524431157953554715160229415317850187797662921442572663603051356790847884340093154900730529138428148731097533901000818757137088859487394579541360181126686815123281342137642021285303479595677667742551229732621400985067723985939501102641402830462083788913058793639503395127871053513107562085472881243080832002272615084691475638760521741513136963423180147939169789536839259875520725121064508477002100661329240795660103023684569494061859880542102179244573443083447877517292691721458149461491923172424281559333761866700273328939641944339587415049162876666995782110884789522425367541045278979783182954163200769657378897643290769165014002832422487420769607968996788868668909689889167286228872344658948758735013165903668129001553895290357281275011748175164991533655031099865782215607240139269607565911685848978528739643565038486984459115493234468454450790080312605290728114266655390332875378367363838703198258493041287370793440880530581294782656518200674769898021521605745472899747108761449139529471199795768584511156237090411507942089529762939781834183623301893938688243022470775186801589522055375083648825482534278145577297442327862423340591801752737940905633336826205614141715753720944815263482357958981761637751987176477359228096480244289396086080294959896729221271247621006688045865011404381138008876019152033516980631361672133855354140431120963758533817959497051706332951416415554049760717732652343690311703709813971571455627123572537633593981423093444248471706760991974644048533368526119760163442020394537559177155710637182462923497249348898467645893766338555212018813676555637695436377160257456697079948048348531814803472047540604884602813442195288063488615858952116530391986748054365094932499989606215089854821847043544207710910907662846276484567271949384063542308001655640156481331426425776487793831622514301582531604645814642127102828846938672427890398460408238324337823974990790477153690548190056476768215643455696220255140161413542642204467001726854876034711663419649848640089607475054752318087591508687687669276732782399358583687431056492258147088253671100137903841560232694308454508265550330278338523445191111217045801730317858242821024545098771705225319837734565384615096824831015715688156559320265141721735045344570751057915366032617408373406269352099157953777553306667512522738584937205140088732230894508247572063284650400873266459703878287274331089267486025005113806648618595598054461991751156391946491780060387812926493515551745535065681211506468890609823467126936884021288582527168003605734619645569164530292961738862012275765545763045694066051641331641883988344035773469114427972717291920392485629405459968510509802408331481233005477507785245505432862722207629688662507172440245812612325495388694644254996668943963986739546830873923188098644309445835444470317299748715906235572139839985192641550851484357106632793072220764947000652324070407583843958640928340770684503709110956401349706606277780285598180891736054966037791003164548124381024982383256822313808093363424531853545136581705179430578207008055279167947689143734232607683741357149902591986726672134707765524948661844727832282110430439227067271676212908347726061890274793271068243119463421494385294055373903163267789239069839911898827898511607854436176265429330175570011742882180019547877643168271420687692637291735201294180481912480683017628279934699556530382501373244047973685992290021556835645534532877151501008816642110286232952193645282025606624985644297463538948928174516591627134284122574742305763793495881027127244473012654753330232675328655879998807698713759108442629874446309809765925726292411992873590945299955988950611210343641377047879154043399304292795998528052971758737961747001693356633227378060696761761366870038560616271727365852139403521414816035440992010089981938529922606947804347819004991098337484895553304467623883386350476321462091892008227265933702689435488933421275432564158535981048573331826524960811611150181368082624099639969507561061606098378091209673320990150883914739777175820311678083498424805923511942420668690346821663681802861236448199863855483920944902300447628086424112613284270815017210821089156650929983450834226033165560069712019021630123717719766092821900256771189223042671532689831811475850574161126873154696736045727183267043689657324964207195771485131472712911020065917431309019574114992473969418354226225473705685756300841959908063861348007201951766288036639632443875093761627112564189459599194114254106020498874105229959886036421881341282084734217846340129113761103884396475757957293324022941394031516323469538610776656095017159016074952108523935116380069300967624115360454078212816543674824428031628679811757225076396114296234741451523655333140443295702569503854283992759620577132274586141626769995895592834627372212377420577976865319288742213433968942936127064258219458604734961098904391115373665361824273250221829380821896413996656964655775644513575791696937587305446782467499051086727313393605309804362487148617784091876709568259469069876452730858930567275624570434450020350242939665838370836075572185675517609185204212352361941214040837388814930921811240382851983121936407172966608027744152621895618541322595542947345409285924374080931326277898685356061232171320907272773882104457985679067025403066575191635652089561008849413099306853510339694906754561885384374154779952505661889421931508878676972887526653755339858636648775504136611444753724867755972310075078701125993928085863502753512037082716565004088423008272315509300533040100962285784049013991562538043390300130111642949553658872322278318462829930177946970837375885470887953912134635347403374168754445276810412687904998128239320225411333307293469107403844538641755531046469960390868510175458430585503208981657390459171040752739480592682799824931693229765688389562095890107163421443238537270445673694854481567479515475988590338424732359361000804029982742750792836965697367753436449808766767225743293027841172652234448379323340207456431409278763344397352174361371557286783740787315163165551919494527029724714850512451182870213284676246731816910823742855387681923215359733425523775985673885378300099060716505513024019938473578571251695133230437713814503998922080593946042853303633315904150928656969067885942743736037493198560900168418796784850847113907689715819063163933667390883878024784792562580298798176472315422774250707045470116527042287465805244729532853626784173333656576923290325720499052824360566947665052789497370236834666641360951628259876966540451694631040015774778948194994022540611005848802690858600968871955979592430218869907126202543127250611163110247289328918077872006614535246163142002428448714274157297788114813822391319779871616561282428708564167597180461276522239916248585783868653691144455953380739753703601025822345681903107921848512879817497015283071599193232226548721832521149310531342419758783203677359933730301366302246200092208149279391328287868997640934187826237571674076914217855796789141955176266665143370174255223913646195605657172795927448778584934115567268403184084759939942360626997314173812902345148621058171660859942326512448098469160127684390847431355875303047734685209822559508618189028664147746658516758985746397338196091800581265059021899395559802758431965623784022719248412085838732399263182471613560310974235415898766482178503280630213198329447014458734868989786122532867747921161398858235717679463058441888301199006093254394525528336193068310625357172399064626602189846479365220497446593685689558340390160904315774741122977773969414129681080269013151618934420308644902486724421577655542123126231489674484337004219250195721346067163846282299252538219244021105061096160016754009181692056569401425021000320388097135568770898431877821413790815625791327779872707947268437369397183997256676334161335688677849340451717038830732640813405773958714749452926882814401434656183444413803353444469222607887848278172270325161007334747612075788236182335839625339151778092103268012458716340098428216596225510212840492358821246484145658879552011337168096676981257016952539657844754232473742904339799430226498040276035516542258590055191181732157839916511313060355668160472111981736693625523720043911726216411887817670633088103939963308854729821973284684394508335293052334261399137869651818153722650633986501835677005958362138736431406865504536315997649227067952072763430143656318474067067483487442909874209138599991753536453799161232036764411133183837608134010871050704337109485765271051059864497507751048946619334295529172990710938145264505159555770503924416680943343655062265915165440184228665955736670055479226969299983822449841292372489334208489088633211154656125853908669072756027748479031821645993321579105242455795351582062601125875175264842451610724732212082469852764707177715936819993292680039826762749445209653489648496607900201973871118990627202296460533450807147703869948175948437342348623979339825106295281908892697090574041677118968768865019391170199145071013099989044814343529713190732459340501494559058468101272541868783149808810878679665406353568040608610832321756984938126249984209746242167235136029542590907393302982541456513981280422830962972306298823285681471879075127460420599212060045068633669580289091423590131955522097972530469791022236172463878943241714002773473186341466500113982635057990831627686800078040240493618096678440979351018377731190801141545864707281214363567409391179835076000321760802805328990995080172952307188211265542133380651498914203355652777452714726990186535957966991091617520467155523731190511927891326386367839382028499013520952117575308194127264270317434153329571418604455561717669113122330571976738512606879098859365953180752816224797518265037639990894805897184457715098521756808081686665363787272048332523216859570848625629024748461488466848608647852453264189892352378464042205498455584754595698582644628306572013214029231030885016536184192739523669044451882919256638189341131195027181286933049558655403897256245139201857390741443413105718583065129294201958348376804783184736257554415776377560891944593235802367016920019333034691648858082314473430531067196744922335244803685176900880739202035220795970073441189136273830655595017946463384363052019191012275679329152038767328487146579445833703136538755703369513663835939344675783851682510664357029445178935316251448589536146199430849518265315654247161829619129181439023896572116944996713569862668163128468322487084617414311510088415762559826823180296250166860430755327607184354036802314906576010945139671978140615041813151828195276604385826507263826496225874102490877522513490987529954857033765265538395260817847696922586903332054815743442850155848752724685968377509268145805676779702840637603839282745280177890916672471774364792862646274215748861380553892282075242605199341617241214900700906854739507110295846734255163212958198868994160253555492016704641816164112551238154135226733101398599863706450375896770546167111425754452631925216406231973586039807995468742794199644739571225389803273163990160014140477697150216388173509873403260299021491107842720111009887312463625134512298047904610842933346643049882100201638346573941262394925431898350252295776463411182062414513646227021372366984513866435886435946661737116526022157879258752261060463113629809165105890019218178756134910511668263663487960799918519571034024258223079679498605876567664732906359826219299212073874681822230952927191076424279352256982540993257331109799137062321564644005978672819781073207234916627650236144464471492304935882992532433377731797435785662120521256174763242372395248823141406925796826023054363062833749309382296612042870787395319188812862898182136083198212811646421118800608224855929220567880678723081663336927165352593299482029163252925413792053147558483791960757450529776163946618113402144867349859547908681751678670526162829593397804978066152449438356214531136076719441825539640747613417134965567860735770656416130341788677599387125482906672206184185878062697941896201821020401189552196552271359221074313137580976726572689001682651424871599123406086734190409934973839548602450418915539029320537706258701927711387695882054725754934016061459711129699854485265661378743085755671616392570891093510260351142448588083330191231122419035741305569823383345282582609471924710507481382089035949766369840587432259641528248800263672467460388675812064054307332983495270862124542748850786364184035785636550316837155707685212676019711320284057481307212102820723906818498844864384161317496210442907362720757550727195207907274169421705638901557848835179766311937227651957620566721624067379414896048377164156686644181163680001664542620039097453650298314636839341326858776042669534961799680415437207714739017578118547584861953121920186723335378513960428505911266037680011883194491084901402450127685458836112257601448623580362965948025077884724131704081592710337666860042509915862400645833975135736581953517277955808990194013152387401324443098226624897708741826277794562744579296579980103084614995738840077497288800712355894139034987312624253864882895878716486615532848806138040728516099449295922642535655247067696192302364803567622814803729426679363916285076825828475833201857417507245883941848224903720289221667024660385546398285902109287323053314860080795739596778029264213518731002826156251583879201684022649161100962513746366831583638334503746632858195357741052778393410158172504511653358336688659510929487425306741896480926258012589221643130213291801961976306303078994726660879341253676242924597401221297534087775881805765204469270989931680365475248066805991649996848527861945028053694846323803064695348643076885247872864490208185515339098262719944757272000856388951169474689069233696667125876299935687618831914627206955660417029961447953355219548446928636233851003004102593574041277959444097891092164915428789077646796804008962518958915323793584989320914572111697393365008814793305922529824322712794987860594979333542994801072357426994085205297050519117148441034075568971052554514398715004932069021692165407906880144781379016741160744096721556893833598482005397802524420409333057779521931397842823199425697512450959386322087169026912810381746269266149233560266198799043364128429099929612840250339672625818471577987927903974402240104205292370833015858241858778401296355950509931408594332173120300838022417112452217932519585877151312283693520926356409566869000764785731293825657950453675461482398754809762044643484654134189668965698623866204167014244649564182177077292965400916628914569295569769176693144550820794891312737390651180096918918725010445925732565352816178147077548892889545574606451050098935131394059343979532643309094280062060876025855537336663590413998482604163435648268353928629112194551039941779582834878808121111497198504443930392032935459977071168451609435398204313515002994835850226652754548630650838076389138521064250385971993968891859708045159652163865975996474280424585871118478497723074143436001273362899183288544208391808619878284018140387053156757099859783615210949503824933141866596379934672776885567764543233928834369429637766782587311545470222681998279400201658213159922415381719237071863394702901585881542303406867967885533867135448515900731047808872642609589777347171095265776688089782826180000026771000813829329572175503860552149703619393863499984616082506163785844072130834979622819973237610424119816367479340330275914891196931307844173206424509935764010346754467062442964685317657161168409959683906689799746261794839925282623162516084323325312798445141310319477815914907874689402131698749086522108057984175637259216265004178293777234685128175034610864831694299828158288198561612881627492493137329594813673712061294505332391765642544544325151466884442058238205320554230622550516854729742880649532608326416294169889066751980720171395433394578462893562134598237786031356774395230546161440762647814482545586165347697975982454999568762826506173010233512130068041537286236081556139106996337332910618265182995066048548675543618320057358621195932362577374278806966989490451136645897697602403155348568755048067008001912381042787136959518374952360154264869837528303546009104512167827940045529266091568963564102594690224537594013485208432782411478734853097069555459282334853889030961182523783066200737359884086656478776096692089655619468304472957427041724289195622095979184251541754399952306903384638719793669495704111717740236573586120765748695084232646084989056034863226553405364589054940155755148529706015281721164200198203337793071326654857213060350168166244673772222705957278023022438137974734134112864674720331113480713446956215034049298342463366302567641595180850362354682073892397587752336776262266421684302873904797481671339591327860502073464615068959334748488878723772938013748010479821113729857247107905131053868999255414898965666216959284265630381165225294244427514508388828986437474775053035097858078372583161835014509936733892959688816423626515702699244103709273598987010596734298369892901837239750782990885885193292521673005316277119737737090058759733837392008689688480300545938330012824223962698845985733010933205467291242307022325172210457826786938947864799802571941290158894753765205230394989260658738510573610591476481625911543403488116257881368828178026186505746940303387767512232120800067931131281811776846620057485263177395580943800158362669206102770176575634373966721910520613015412186916270782533268605240776374820764911484914583090606091062743351638247330750879807333638076058031247450023942410636000801464409247186545900619733545261011356990789895198657887529277098380189981992768795309864097419945004950253768940383146886319805804265057372285299844312481580109232560804945192803555617478550992545004354979908292405139105522639838911995296534284778947829825517083757711826626103962131745492949930068569126962020010731643628926764109691482685808107969738381174795018617186382016377182861288403647793774398680703713689311977073022849146636698290779332823787002254190850409683781965229761994591428607287375763125089706569864006774221092709928678829204187619284306765567550985797451101190217583064607524606908344943153537066883944585025644011443185317290576671011006718665385522386065384514965705994258844031764515889526089171178380897748120967705383089868881131204770515033422792799330257174585102910334593760629270610318333778140221373810791427195891153706311369335907191804250216458699258572928958787171196844177413498721683617987561763389722323953024455338313486230607590376977932123133387820891952696710398276468349251851991542573149511887243449408015353784404987449024750976261106922151950144354546223895709049922935281236588684520565373391996920225902056529200632117539715069179404352180728691334415295040302005328462096420230237625737185932158844532167204130268850831792989415956806004522363356240765315841737119345660076227078620124910137547035467604472568300228722094577901022719670881437731259114720648963152942714500921531182579043495749357080314164753552349057780621071389731788119224415883271405731966455885703114373667204014496904663802221307855511073980024372137260257859154935869765158813520471852096791665736843468646717426653276095705384446964419801116018586454836813069255315556989990465323040998069348970188764740877055506270784562614687601264968111085292386453416137648221010764289466420654855515710314798254376200259907710979889788820377392987062584450121221612617362892253141052919021386356939640405235630254048645660862948927984946335337534497997467150947882759889356674074104568144208194682353241415356707475904548560770820250991260859067167179332570797908366739168654615575939085289196173144699666318367727887359625018168552196575639825900045074454862330976028187386775138189483341990908299282745638502289016216686133048812996804249865170770587951932789752859379641473492762181545536053365698321086337088242327554633546764377065757817983219950770937232892757347409593933969443549981289263711018548884757279919699923639442719833743681880241497203716142930099716431160966736345041673546908622052611898324684401355693042458980580139458520511146504112444163821157946676737314891727327066822642632497418295529571581880606644952143692578265484581566223477879998781344546455616454908355901594125637937245115196881338304271027721384113267508953750168710267381398349113905102126697423572510013109629123674060344759447495111520982144099070196757947144655269795286763586214296909790066591422222201199504665079760876708673354895265965900855389069343960224540424064761020047823005477629832924458102836097055163881151224703353496451084962069979544830936658956181077471865983808012800424102127267815260596721618818532621954466784262452321363438862770682370436189679149514533726976360080863006914367704952934185374343922031393566099752021974143746770570407644904718763774312087228061916178458484838355075851756166613721667261773921700827356985215749677639528681981786647572073510679449871251065156348987349911396705713366619500391037836999889081015990440013688344270670120351529228449115818729249155647530677485441036295544598917032556484795679675658777746133086734493379760602348029880811591267765177975952274323040231602961193878962184291317378643794337773432092579714224350530573468464187427567898521012835560586274181522714446136905637805702215303102317248536053889463871272740278991227821976837584053659765248889502922172258325421473602625250874933254004408527031728787393251497030151102888570682658453250686778800607548602549548937439852390701173071910736259800689805319364254696058581979798242358159384078789599508116976318143735544899522605002238547115318186546043030096775444792685379080394852709460605242242398997660419176854249335681305117082806368800504667379582135187611139745593382875872530982780010547014298623625133270004412690058968231307049019940558770874420972557758889072145795117318104384797746089574467496550417849129909806155355329776147836287180885226771199415567932923707669347690765736498735916119016753734644440511892169205233363153998247627702243568324411392261134836790303572100365484439361439769233207415658602189921870936652947494427068789263059371368160227314700450433378871718850885600435756855351591782077431929317241855014740410247885998606419650484734842758505828010181473211354769371961022194540096918140340837510044343502726569745868340058182088324816438166035137619028072807319922963295101106654306979294286196090577548892609891038371601012423286562543512089003453185277366936319139897190506611523088958084238891683520589290539243652562817408391123639085388930465321414996844485765510735871085648898756553288912268390147496540009801221165101083959152362952684634971492537809623917782943191794976587558328521714249892531605057112176390309636058732196952959752796586584230205997366011406632674380869769836945583179155354695550930909769168648809408300161963617407850659123501465813148046501035034826355259762630951322029861045104172170687356378554414439415497115144988311202100432691956344584390246476102855556015378898958723109033373404120003879947874366894464177784669174597164891711320884355147186712716431683555729972882950102724135916065004088413978868645378134859203412248518215718942310839296081692353066962446323614338884141029110608342153999672963192166517655642223630179612259961084465393231068474428039268382083109234780358805531912066838412744237102618758353331694562131851488737333593460777124806386652215265024103114810251094158526139733595051690342156737649588075223087819296076644056854229915299164278252997502454543437821458921528450928015849944059840360922215144700539031280277889283522048674542506049611175657655172539828089607804668790421876091120524350640412565650040071231017644265256489261944709832090775864864131073791651654489770010854252584093412163197939150336118950460726510828538991820333882860086412977800727041051671375744048418807036957193247412614680507571072118389892036864490038626089014070690893604771683808064242598960982839501139762414873134027225324986426011921533734410590983044076445942199961241843964123983716940461034252604120838652476588743684616006251435057888889361538012204861992493752673765905615271612056355054542937420474345254343158007589109790416997920237046035307569777756491760258475540118266919998889946524264509959605498145985299092126504967313459524436204827301848936274435109147924790855898699165465772797067113753050944430428877184210338862494093622801428645924553685092733088442690282324741801222880014059284321394161901026474918394388312599477134996162411974657253264113879008206207361130092985461048488513327354648728920094196534337435106990663977105116264677730282304464879525050518895011664411838377996910233712760648026710965223546538376440527030003439000075243385735372974908062434029607219776635282774136446945243654820024544606032604999291824429549731419056025500820818159525158676394032401938744762051899125285568073850461696798043654783770567365686242420330668511530909968136023940901394575476019121369263150216634752875349792330011437100985436441235729876187765479426575047585818501278508299554447803507110800662727189778097014856157794157813603744039017332691449505904659384535138786839827109384471190323219565536529020929396988532394946561252627482355953069585018339665517165680860780431739018187346431280556296181236875643546178402594721226961821869733834730555307464339015504280075315978578984638803388909523470691144128265647773537834674048132491333687438690290944286299700724430265713143958216009848260518690373541075058509864750743471150261946776123291746223673992416092593276554396098687209478744617297444109097920986774327804919303612927854409250528654274114142855051774988526074640841598413175054350853359298740146523900757407844650605749717438302902091365530378671800175654161216474314924257991028532156080312506263330808640396208553809898949314145142892878373567900640094052612097887420755666415850463435947685149026443662372978190803222883381634786725840448692646650130227730755686359964015100655023474822895393024998579745947385435242592562883792686519693384517136890052362932526914149224054813986304377174267459626759417573554183339102966397868383481145111631310619895916793184564417901485175425996112512731207328848120050929002434055258357141233305375280228759054677647560226788658341453596490379539232332840605084701422910465433635116597073575886280858984998927372280001357261815339378810145359750811038687876770131907313362329080520190118357726231030106147177017177815040837842931468521195367422130522721119843757077622426448203588208298073611831006218298899641996675068103825520123883065685919858683450691741359542270608132356644178483594352500449865562089889344264573133599323648163420100011006961290573033916361938314562646958304032779490238878999249824175124722262080978927473894104209590730809018437998086223440744300294036177534362904193250466111569375082334997412146681819902204745119388417761561133786272991086279305086274430230542295764706621919266196856275091352229603084213084754664727231645966117073781541665262109618876015990594055946474046671072782060910624226699302602381109763227092993490273492253693969344298717695478186450444870019246965441987961809111084609010397365465528903385865070002207515910676208275202501650947832996785853527920347053040272333380329478569337762599084564598833788645020368748096906026277919670304091438923763098669344746104298114465392186477855431402282933261271207299806263297466099773407094700192417285623593935312639988255574026180532721690727683549609535251322613863035028096738625015230548065877699559771251684254183690867938000370497442318095585289268924500432618062724961480360677225395008435951794357715084506279524435917839033880226417287537934604945704682867351812098649236982931790499678959635875021314387858402399720882589414981780794872145095850389072196960036687315306777369557631720366419297652127599304004107592048908108336420265560760399473179473460226036925446090540982140242597864341866781817862800338088054503751782665753504912909166245056054732897987992478148910867892530344246473337431885396423063988505371647619627698363276344071909606350800529294695252162136505267503462640713336875901827835029842426070252721127435878535251323778903106092762087261154069264692341522962162369884255120100271913446873172089334772831763744256067676077108557785429843575056842001088100848725089567836617896705497239553683144085502508642100962227723685498231545867473421603394187720902921052800950528262396786418186820649574961639364517612111716591274495992589132783691885562371674187108508364200426135995601541427279389127515884329355725630343642967039166289771919743191028370193091085029211362806742183810503543456436421067221462045672950474030601231041316974658923193954081774839850155096109390434839558691829952373621480887744725477623794634599782315525352163065858362280884825725954261155015788296217396396133640801681324394002935323978611088838926877872639287552815488752589012048984848049546634033635026962990422902101290163038772705054961550007032078247266681150641883993213417324217815893921898122088710859789002136932990170285200350317136358557658979715256332358717545655016851035056662322644292371871930588969341141678294732798413996747156825163760821871239571418119459073051545993994249269577913145755803044677323581154855076083258448492616061039605549045024834057243850856961372058802306209010115534581824651113594723142974281233373702549173665665702449402508848005581785170105507868998425080970092678868522095781215483582895739884937217707320291284717983126283265576204674224425412003021084669067387952400328343969176394580109357849551595629804909983828257175642595805743489201958580083460855437763859676677764272032434256471406819051019982697250897451426870266185661520624065756067146892325288698060897034143269516950186044997768717175914357636188512974163007533857471285174305852656446876861494015924511024553552842998458860645037588768561095869683747693082124268697496930154495269362948442885943524087136270235825751511055005826409558761262049802179124312359975028801644833696277623778002378167187597272148942713702176796057527919758178863304443079006342983053733273260541504423199470533577920555340053883301448035386000627661616019697739203222665468215249959072079534020045012212531616834477187975199968494659059557073398030440858988601643547199631950446854972263771227520111461802016275072724725344304892716938314123986286374525062194516401535792536719742547740326628633431709260890724248945761222974907424178600725185612591300261479955980327432983305704395006447643766507527770023878345399294386488707941666080318860133313798347732933137495098637003045611869228815131953021509248848221980265574285754782621836093734185002408411750627458263299121416326575644356356919641081968015706092703367679582360521751534237935254249063578416460760599037877804229178587680968626394064845841961076182103028513377507546119069386991225072427705493634360050404099268812758493764079998880386945619226226427888814512083439319329251093704567790564253223044686269300519442189340442888116389092405091289520422056653232058263348506714536251754021613250368792701494975014025559451571064410443959330176038240242467257131475275388528903163857545504459216778523818373628727649871968694403635144224713495255034486736473116745362897909322687928948382216806245757257613105487569599375466570673460868239475235922588964601115378159142580768728875499239476411747170435477342164960352164675910597945759907478993981685193108129502839089173676373517621857516339000457135408766525593746782287878283190896395723515820065600418661982499943378679539627260957356012068351374102463648586468557595974180393522482141654627493101402963493390607166886224583472329807525825707969872949271617702465651074167030419728718575578651842537534376956325902751329941100609841221499244493992404703878077393451512169006410531501244112263785046164403034170050583159717440705867866815251911473167568360613925310850177464208060201049553664480822685816787216787524897262591564488004233295866788882477876091556995918984803307550865876830190123900804200933109263442814401657194027297456182573205376703476710906340864957439205605359562645146135472041247085384665635856464843484100085059592518848526694771474932907696314115811056213042409878713886188088826550249770262500674302207899047645479211066241912691527171012715283713313663136572135875249781840492693948848990838998751510362998018648607366891518039903497239246555128341889435261377601728909640978514228715374331661568894114901019820516490123093798525273820518740160519998971136988365810246185656364054970955393844522791296763919567799134050472932289059344614079808806058690267034495760496753024165458041808259425570254027335402419910171508950822500679147685462172799179725602459532052906096977981863351884307334638587543825625774778115292669911805618057331360294285476961117388281401466990356356079684402941510247820949648455859885549556417194155943183451077646096854704149493172160028881526929273278904665946445124684912401209307122651401125694087143633532333774939396097970929616970308347462497744309882507024279407468797154917661295133473309776515458732072787443003953793680095350571549827102902265125025188972386383895344344299109798332458598034131080258762454250617039753287524912886619181895525944945095871739353178431537536985824777724299253483631521685379710630693356433829546155158816096739763255515758153117558758996907541176942110515195734641564062227287853884939193928654247913809331122695365294741132940502946313957892308464153554038097005114668959128540681892815184088702814347462050924339340104176245147562800100100789146199707182973855054587821207589525333432450349583917779112531163141872401238296252969412357902686586724839692451902341168025339781297833052882733580630330512735013231708272418651483515017761879220490282706663872606158387720125912456543712336276470486596351281124725385330265900594431448782184876917756250908587694708451140000542813193302681942720570871276018403711160054832973075853806019202291880199473542063689940653382335584230969855464320108792022560832827206223370844422237546267248469295388723756529220778623072871870033717960076382582043077361669751108027581395842396209686947527546905164036322761784330356483098445076136954353404350450983063832919409153470308033798900621577011390084095847087913124730059983009312818379738916752668087166412941105150071444482455559994908913108779905005222747841896380383614866206745636927543606697736447745602302531726354023608451762552787472406076830592895677197101722897821865744038954737285329910627048117256465960586265572179932191470443572493536509077810080302368826425444023414754227429881773773949655065909319793663874321832344641710275919012413689943542185291120183750504685592049678106973147620616524274240325918980843447374537440860022916396879424045906264658349439431808704601696999020380468217274004076630939855849354794597576963728415053041252587151087124232110470250615434599179164014463588700928738034958499577970678581050948687106554977458794162624932950847290278574667832042431622125244920094946764567781922293803900145738611590022268596508378968022702045219338194182159076661674873365316419783350599333370829442121861840468111879822233453166460753098635313079483958842969941901743733776131176616631362895134506987971081297964107708968838152310984462709958592858500299215966097381046018445452152922522641719813426850453322057297806804214262468205904394555692071164546967268395842285402677421613924209550762012247575945502129879622408724057960267468656754816947101703482642084334905671323307899886498697404978222677172383646893978674525973150960786452515966993706861864765281788834956480295657746772836289179894038710499528075395981849856083025739743875939363660391740811699198345478912289924109509239997957149200546680904136992942479686315024511123409487345992864022564459882046877406227954141015576647033355386294356427091013825896218916353750864384314655611638034152429853069072731497849246938444080751436186887572352102128390030028914409012574124545405424127101406883597819441376758310307363574911610080987197385275761232416288896113671897656798654681979909081271044375479458424977037532218299916607373183662226295317008128303462091504491088351839237991801560476284237159941725216513189139720670324086789679313685651430940335870417175368434165621929249059379412512689669764114107712124493935249313622637888462697157285090957238802002332575495835378014821230505991661657082284031102638138735217972842792741150786260879029108450184575516409938033645271626291710640645109065965786411306776092113490188554498445098609708214004836277370856924869284022089374911218443113590441576871885907740080114670538999978086106150509354114810726334307271963101736057474374106040188369712040935226346440146874288950113661905523216002943878882958354398227395937264148271426074659583827688360536581129721312291179787729817469366409847435151447681646347063888352406514547213926720054796308544610196856621512583359900112339849563062225575419298002688498989397750107958084417543431140923588566512230658890198810809945608367525059694722149039297719246596021186630541177677252245329095076663483285259646864311523690632958094980460240955821424449609595839644823048894173680958971327687078053767361099698189342698428782109672754355136378767995472599154594275755868956060549218453390855146441725521811918078174423105968853904476543392154266964125667447526823023894339586758979572382123759071484468653887436023555856388277525494430234712357466348826119095952114094024148815615813601543589416231880077163345493553040426138090476687783513740873023057069023446230209888772907029193252763432634953558120740987037853049929867807979322664311259794246885822459081392580210435745345845763766734718944883488447380288582856891122462777280260065770261247414678383349824594722191415454750433770729729870944104514809043803790505790690960160629802876132778672810827414427248993489520743687713697944742561629543506218434485043469276752697437343672251638109726019860313234362162987541110537775979512319599560340573002372806851591093069563732680348157657764113587141132737249000632371113206817493671300270506901118548512408785222459351938964433126506067931501021606735110562170791576714584022880467732106760536455926120179462263501368684493065733115080873402558876289084069609737103974583566798196912062663850565345415434462727371095857054864065115483449037032193972777348059620315698002327082662374442499319585685740752347591144594046862415294875682412288618136372509904327549827093548883975035471630953591725993764867392385294005325432492636510077104219712512079366270003297574119477252076316112529725837658131523089956546542503318200879402466319465927105687287357713467271999361966538382603035936890621360193254601909754467335082464241856744305125894919843861249507931618747398668653686927253021685797228445520695395951232257777937036373671899966333155408892663240763343545862048006332078439134738056879552893683214986779009617627132879908959346322315563582614113147535749615862016521664024069890361676218246383834386929673917873321401924506048451863286692792007157644920835064141078300620702639990337639559723693369072244726237051527233904076314043343344494069158491864478209180946668093044166272337238755689750884540591358298913758903354216517863224570448910414431918065559679784643529122166989654252089052088509590942231617469196463400980019446496986980241475528079995481829929426323472151005547540972047799969554168487386069082924954165188629232850371219549663117087262868345982900416282656208364725806372321821874540225095031142037488120981694534038808798272674562307063149967260620126507144197133724039474986300133057899581862866816705854904324175458777241236308649748651682228645335714273364126977076983047140264366153673577797834280838177336484965364103262672083462990120231602045676121515248893285947919573051885364034280529593207418095056727549868606997560497314315195800169852956320113136865010287715060070181346797088719483469828266525426222278907221717899118303384259212992160178212321521577231415965996260570277608681864128208040523079553185607424713850463364935804071537418026059573892162729428339722137432678050350009206216892952725767158228621017219804691522488503413966241010398673994790240815256605663489152178654912648203958426650623574943188115649984615672547021642441057068956989530592679229699770139993255273848703822108506493898262918180232550667056724042648113905753167954883012948052160725547961786927050197104891056792398914260117855663110648634186838918570780389908100698113498377609996026247448947746699798979782229774944071875361247914922249278059435495031213886284751787197631773414811798064733001166736542103479970670954107120303136431926665753529017243737416978127479574922573262209854475114292282426269654665793369682640758187513088899303127132895413479050349332192414990678305090568551927220623235924088826783467706738310101717461027185009013949803279079663228795698752947853147534194622550937086869894318350006338087625888940624223117143301542778001703088962553624974319864350030543538412690853231061607687108854008410364084702223019195838454112662784426238006656864192738732613630545626722920688929147382955728839588458441259403794660302404685848692088017332775541032881508234557143939265236429179141137456282649083692794437318447470242804480476148301430133044861117042826094857403702540294238328966635212997555237030074310640059518647248214382856921465198475515878720250280308574096022961552668823395089658689705249708128476424950251417750356053465802974876850338834429924904921195606816272792695657125088065468562389792089431123319344625848880358571925603773573580377432011492213382801071664700617870523172983924960010479940377029713130261164448904008131208711865912557008752683729970882675566993773640331979459550427834745895390118525197519575434293771197627395865389533748914800261495357859022378768953936696068836099949402769283037988423218802504159697230593535785684198355945977791859475401649287076419250721242858684965937131678523194539582807303108995940388559069619746444703785808688382352803367343387876621833531591224649571386685237206595933262295811921382443579111906434462384786223837814963395667794666437487226158937008454190594204461452328592593852593376108660823612807338198246320681748625817214838421166065075470764166540851969980961980242885878139750763174160709893532311766522140608817168587947351962649082422806350083178208881391297575267369346495227786589529563275352737223915041449651484227865985370737959575058608716272585311999253419917436687353940834428749580429004590536215399737130005971138121168842181749654056676429798286902072958269019740495956327964034198550701643252621328712146987435914807057129269561750018702771945712166221981165119684934656903908132044694675937461593463779802558271243686594824966602222185312031077710619057607902554807693121448924733084912172246623323998158731863528380921260273046170314393894924117439037052411715287941147391676593911222885151628854018066643863702805721195603639590391587871115425537815014698337786921967566989168583814967876703435709546457569502657198862157634194282566533803006764021077294807311434409342410128810711831319634080785435483166572667156690892613368619370474619183981461837848283325429418269452871776784859265619723116244042062705935527453916144065996372746993973658803803353526945265001907559458733995404760126195253354356027739866784596063028592026390909078561216291065419994071085977318279286811402019935985626302062122875301711130632033791098660230630409768464980737007993665191858306108523541463550822672978739023624622272974203920763670689710919483715159536504279429369051235441129043687604625741898353843215835676982803845843464015952668681025855422534418734818752206825362000308510170224946459466418078922851933880889819569960690950118772430227434466683749738541714986137337958552480879873763290107124334534461676973042305879981032915242807322422824793454949567779151638606228006447275592789575610860036320792402159783338159283955143360465907940626824251686272255613019351997027985474909921698304256396899395745549369651605950730404516232495552417218341766926815606020772198212198111703235027382262591442274632068667403331077108856422049103118568389747097375136679075352311929676511067752538625944819630956498529693970604157174546822169375136205341389974500846411239277407540822629870510366142110446930518238012214861107934797823803533507138945324146737483360332495233269334799714981151103313801947338974842052071600148088531377895284301063899019740137911777663041061569718024800822258071782072470625906483813397252296639238758676083928208596335423840596950344554883644121523119924696927710017243228282413892631349042109176517973865142931083725227351158352774216010091102324121955706996185245300070518110864665083576991039907769526686962792306383318470794226804434373589690819629093518575607943285368224353571833846745833084020369652426385603184520857011701269739865461630246657476175028928344369688912228871094330775028865027847152403500241190187183998989368109105039418547718853973924714549961985122331246769484675410206759215978163483672252757743520352424347439934554468659309120893815194730292192389307440575730357815490253731777472432839243417671139625895574600348491771906184834394705395581633517519312685616834504644657009355066932901221754660688178949995778220332171020110460036212392830486362105143005305643113897437131674273455592250749193738158264514314899184395839133056106252356816098565446577974194593555652458653587861212794785913437699072257583443973868387724929903491256645921365784546573790712622648093897537850996277454963414774519662917178295276013778316062706729817896683351136917531608884168201045561322104159935580248015617287266989775380606319665905577302658016824223864863575883439655854980005490374247197608549628515970588024404762165092031573035892478826973556664565309838939558798124869403985898320143017865600367660454834084890251230823748833078616104637519024988018239235134631437778300745501475814324676822601236175207910578412467203845644554989560209862986348050449716748978630937234327027870104447622819677117436777300808465639203612340412466202907256971881930310046938753165771708118666103398413927591267444101872421311254681482610647820937115137231877813494330213997911966713595184936782013838446202613460159072098544958817592620701371703583826032065266741984447729640209822574875568071587079509908003228020209782843956975130527755414134050401034845437722823631326129361334383527901701684347131102146743569522585202975517205675806500452378277097265064435548409259658910976476117908160750010093272851787560378402136410244559028859973241309028269898278202542715716108622373219016402512397901357673953917666173228939885232574479035797169254403807135969906647049231688324693467676436573963710173753974889234224749538206508532087233885720972225201349410426494521354407582538842589201620976956511596354497388222690998601970302825558420517730316035771900734816366038838243492830587338134469382887091607661033447740760696541198499563660823353929048970444539483434089360870994615057322497434362997770933498705501114829401343591400241414147556010573752364390820289800371842435995200475935195126106516474378669241564986898382771668917903959645053265771728939119776394247374082035849087032341102949512956404986348303826613956617521835756028371969282755812485890836311743212046256605991454278500657393089188000443701593205613416168581013358750028322099680592795333803251904292224303350102113505209231217940233629022628051559708377793715287400106678842685128003538364654324271480997291098912904736202380385071293661075194480330855383591497006797887309829743194683034478676632981986176601116449796127917711548883412272303632662074854683555865427860976321204183498378581334798136994648577146887285923015636485064227721164332405572041724405795069566935763029879056205613949402408697074985919725291701154065154049342075544738255678804618317122100688813146529949102949962344446053420770089222836475086818926800779591959980970952496841894333068684999167178570621043149179281926750094113726904924363383793451528765922888697243049973283507196551091858776340007216521021062920600983378196178544803573419945464535411343368804793671645049188784132255236669764385741425041259975136711011676825140937257149484925446495517365772345351434505803079037008986883808319924118953154897635920791526904267423225059284928454037257154022836869197886299250257753207418230780767979761022049118496591304521084807991422506987304943711057593866124720671595094110090608583395989053012304663278657910879552552701257851796489000631446157099671751645980942765554249988655847928204888123907232260214186474957987218875074222275560070187732240353638719873316598438645851920483236758349737799489669875545604557385692514249283476043345050764724841308276496166288154706882602492430365887517407481126898131951456398166649363901545019131293953106516758089726288130737809538460942310996065888190680208190273501662321177183971541231601020956857856282794672919059750078312121517390143046840649466929642570607979658910251583189192279129759434101108084296056008926881834967464435369042415352686776702638521361166745601961104834143299254693886484101430956596488809084854147009637751644956308911587378384628908583672226924551357992214838966039583822007634102909728140659660244800300495209237588022792526005572271144642593134025976570420320491616243464134249674436464779928662695621036315091620102997219023831036938904060360906684279327332038546366069129280633754582237308554272178791566587224187510680229962396357160734423525398522679306835695204290731788757742161375167374441707648952729587645403129656390873813850166882664340510439312318218528664631133272333505405683796515526003928467096710126289728422817149260132941533775466079386134329212289700309605169534103336043898580913727673821127314211929698886715846418202442395595264333620968707174639072097500407896183478963757080132965198744114520407796571563002151491318009469066224123086348909586209281744986641904681215954846971898951584010355153784280082230526721292030016384866362755886141713889105068501695053358364307277020027826374306022395124349226997892721604000062289327284038746261003537505901615434480666004851446235244588822893736143927164507098652792817848143589679052650055090790498343100701885315952986053339542608551307071702549886217999084927392213970211097414376536493031706382596774031662910158673074592335793485696186341700554156229679961123437775764674617294386114644605025747065773413727865753307251145409287438925971537109328262686314993946766230197693483140048666206863725441765742433669370528738938076382630344392179791809355594477350919999782642629021875504127873522681029209805882400115299844343301398792283246638177462119161817969036889299613331230589326747831344385220846378082154686638098035420942970049071223718127332955032711678532162705441277739077381526505701115029142212216954507268346277672824166717704412319534280756242072789249607492255334006804073863310545158713948187296461318364296520555319275544936734146362114549928414207417991827356202527316836815939007934933965542113809322929679725005016325515920859481377449933146113155668707961822270677040468745510978838780235276163948583685156203659666575875846109948732760486687048533545443756263924772799240520112049643743475285774710122731216291859808344299061899621855339004142726956506671706568641173553893924460113233927826267076826847882867122442714054742183287469191603866840620932897126218318338396945083094009520640157590865204077959758862876429279983271734832387016285432352578921910211077433034900076106500612505240921172765973788529650637729840848822048499959547375926682248675253866027487906871749437244492682983207086839370917284387855050192235626345777848996849928974432108692921398303349770291135229546233372899476660801196375391073734615987132340728499450757185318796311079034736384531457637753303674912310392612887187396167163130020625583094945292409877198214180978213168676464953832069352701873944074298177733244507006871611332155768765363046043427099298014821239094654960391619046580712954469038404336506845045148584447398108705233051509642568881097492399487602082311892677048033138489378701169676885672781915193880607857374462796196130104089987417220749427863886630553902661784522533835193016863575284879471453349943001640150731430619763314567714518546671511305666218027580814432263777681454846709094898725334576511306736410319048171537832458403029458704949893824225958798542035982292891489623447089354547746165097254203720116403577660432265716804853615439804997775899346090299914902301681595944403082726662961209492638784559248442824981787207788905826044842644938870153932604070530106950617671671312106045410218417421948588701596785710112403411400017717920618471049834653319644891484185143245425918992060290321029118748383991661799005835616789354488755818816027234180313602091586061165689248463716149734740003741492428950345783079123061021530229633528275907902882129751984295163641989269732683523933437226031580040356346370032398369873157941844408205134899324368226642620762244368642560285488125254207403324819189930657804266777594040189312377220801022671214171479768421657304587440445469443889467645417012273585586287427010089472504626372079539304585058362300944968698738978503676858934184791095092980015431507794457486918262216975496405951329808656348438613905961718917661364602794372103420474163949061590299269404380423397779281382234974015518675771213973431658561964938308944988995504400462325957512033423875050751635679864852004831201984871816387772656984195952244819624488868792637046245534411295972594820881534644264197068598980365830580196208135408482658977004687583215313518011229815613903384786140698037844236502402569577943832209701016911488748518660819862085307596118593808710531067921921894640026804728299201324414011795735259259077554268472787570554003868702902265753517646004550368898670859810803324688631056502908898274124495373455755106260985714366415797650546000362058595118821165419160176973968132627606349201469601440045426651736220684076186993951100060438423622295255712608231628287423766385784451897576027276683387929284479961239156430210887468760631968480628517331594517043641303172526093514585680742982528607675032082213234321958025829057762958107617099738926657977727093824878951545619144947059829872323677238418476717780144031502437572171655733696409422055916387256487114019362970995315473357367824272644861486673750344456102804508360018646613284411356822635781378668248628459400706850782909876592266282176037776278811024380551631224012916921149736124376972194850627827861606545685945099702631741425812560867734222095653809307235164733786807900451983617442193731699340338406120121886005524435736487238191517341500235757458724208068588712610747070434864729217099232239377112606576107302220397155569322843198489542476838205658457526807200299606085081854327690095491807053130912492901654164884232693608801476949659883681043241770936647770191156560119908022348271946342774000502603806530191405052065885620437498409585516741037940195403291056616340013952188729271135747200650263846985678694060488842029277407495904928370349378522501947334802127258156340163462776223260947942599954742723052633699206248739112513611925711119033095652291209843919158427110753834135544739526107710207501272548127107012243365759878159648639434285879931056838229068858388907382539694275709683843707514822366231394875257448807688125356633016389130250784578264131739601971244715370391664145379192744371204490322486558123008271297466658517269217267829782500335404197211903186019306999056171126671859747424803719889828209102251389214988274509163090019256746728027147525936500300932587033261398544198106119656804868280440058914756730039662002820625904237997902847500382252757358525507729384558797985739349027873806914617442531292671774503628192457953919075531942607349445316783476909214472453635000152017971371973217020453240807897115562505545521280142392520891367955873579479929738740234721855079813439302902230343300229474558768925147513435412424958234140942807763935803877699103281373788621421543841982248975372310764394930944518555982013819752028571326826949882014640276732139676037192138954288327953240213880108626130144560788722567317686755630168621297727959371504496826072890875572582659521343094998682548900242358302370017814536137887751281007755685748446978079361970596275782963966841194050858280382414210186291880869405881719473718045572991469067776321935297239586666406854174056268258026339171862783823379441721204374031423457799543013797627410043444858006689510153920585304526648677189226345981652964695925755381636810320887278314500219419743960155944829391531868140802766708181589302528122006315057483592867499910575279760404808774371349971721986327073194584313579005891748116506523777180905066584383229742215712906213994284973696752883967441473877174275320523924568794555738119243858705530560047245855462809777568066851024372294236723620799106299652084507135174738776512901638788069557786393986887401191068796688988294996858132985141766640828876550977506605887154982543996167350897859304579871673221256664578779447209775824301495983368280499453746786845937738950769853624862217394415580127694730859236725590332336890708618576068639131055790712151867044777311515448836418879185417455026745782311336433713606015280455659699170416762226683628834539852362158705730684763117661737179408114823936918698122971502056447961735680027145577467040506035415067779153540759399939813511836149277311850161048892612236818819828109475850361212743483179547328463737958572096754421798711482709710820378733647933484574851069857224369211394727989428131683527864488794643428254403849813769793287407242230553696325738870658720512806477765441210298627065921217064009623927716730600501656005362767234856998921568586554544542663640770601929460056661438172392891995771877536340206032798368001172454716726321772331884210210548738909722284861050008807491181935826135040090368380393532478860014878213612899759991066162690732673990809599030622676791751546369290591223878078737837512470711524649716081153219252046963210162046371289989836400321387398470433242887776914852586790142838253339877520517282741395830208469253959468723953951964563730009246652962678866193016464817416089361665001479106456752424715438180423644869986307535186882914839589098578041458855816734805600625052572157167792344942207791148568947878309836312112655086899691070225956922109781332466554978807767271673187782201109333915664397766433925009324853628324805527961194388874560670388875043979491879321311045470139438650176687964600315949628735427082874734976165804792062682356397516791144229256543580015313014816288072567563948040430905291738681427401045059215150327045652258515806895139684645788777195634003673965508651476779818679389508100957704652382885238329617973015902832767722120555754398602296421802808337542851460130491714190413878242195695408989849062512948087143641614511975039221175180654740560014926954776267435086743216998737872271196039269160422177702979864853689646201933156327082917432845939233660177465457324063758666102208634990427745217158915284748861318989151318601703202907832028370933740040240844244959744253287638606489863181100680396186306810115542224104537214490298638239021835736222121692844235890257322150344479523964128728619928468524944445620662078909445688021268153490925413457278252220344518145021932714021875059921393460285122230366370454706667673233674072958606366673369271391303528714592165111256734700912926857292123004015694366205969034350540553917670215563719176917162043929850677800028375711011765460678100684104507090540125163453465512151204743112727231463504795958805741665793637987389349234473492026444496476741672252436457292113988869108650525511327159952690029124259419725674250177199486666863504457034327595153769722466806141899250279427516810798160384963837130919846546477832414411547809704106010517730993302992165496579697919893019636326749771810014130248974161278202627913920834210334525828084462998943436260993516677446577905262571474117391668463027968283020988789865097791537595608928311642683108352556991422508193312706914334672067501874704654105323740209683769493528722187109796621378824414309646970552963258100293444045844502449532692206442381474626142205839582833809342405599737677368629609995447979335492248012978590591851698487966057616103838263188834893758745167505941738895509256262608794316383882073525546791799278063408450057005554738134168062782633807861507837068418548410740604033676802869069627002280392327818541774476472568116271850519360846014133145277274183755450938449850953040400590232939445425084746364858364614680426428042849120057742268166486150526181222349147064440315137519687729091959874921708646483999999313339530167403301945522729873026514764560443835064821477370964760831381187587224412873264374829801737820134457850350243905743797736326734867429723068325811593708377632432664598276868268116533258489776197947246914412796140469708822542683785969708882214731975080778515254786964578948052528701886627642573121311622368405145195252719136695900256495544050417214868187755266410240636031525717147708541799088800583741362649950964540043036852562358697568165086210300088681922448345614463336085409576300468044575464390491986824287180143949766464654250557478594563501684922164898064299117727592017212727300130882532036228855131099770288456998865163048276979419428927455590078539791220770966798703489439998065528522202658527085896074284604746701445290301481653822673919226371330946438399100626046140819083552263023993471472823276903911080441879811781200335062070014406412215820753156269546003879186158558795649111667553671840115621537048760902968410208577323193662761322490972946531112507628979634259406991033057957072755426671242131879251289685786945479423357174333982602685619777211035114236965128275333217178613023984236990143129213632714065512598049454858613956730103685395812418235801043746161965149717527903660621261686381885570928214513078916138711824900334542528786633870782424367468467405619455933852508803895002170716112856075242599288987756335772448274942605934274454459075916918095306672474554566063164932553101154158289952521475466874968026939168255071339623408956899334708842791546400674842862573423179247865834648578803871334919746399775443773546922950955804167475810800722693938954270446102267225702222515668047532278688720793213305021567563536144719102337624914179785491375751653920520865685653677993446466218397195213029035649431352765312657572496366631448935201441291724516867902384153137170644704364841287302782090864276679532140271488208333313850318684206515763308054975098527839018998332663919919312901021940941547006848207801656346627301677430760239495332365372821790779932069222586372652981625701662670226832985962412111051592452525806181705027762897431112193993130672419548774871544870736359047731110214440428503983857932327372029936005601892864624190432758297528966727337188100882245325264593920347266146337875743903835906853942103522037334683633504172953095218429691681281051742222545114485874498326715300941209969223280785187764078386927557276545229530013795861964118629918516259543300317299064576122256007869972478797200371122771988031000030570563043822113851522265351151003632374079341859799993161656740516019431269304960625737220047944674326746853144470327862037502219745144941861325384736093289648726153045419868745841550767435035471402809372778752327473561094667507557433794220439279198752631245756940703804292750630636487375632045850194755644871023710236002614549560436829795991921353064906922811232188573374499417843488606157447455491449024606636377298749482695789236257563897997839492892937555844065650994199312628873732785880721153882065107533827874742160246919894568426990994200717819021187860147086197700924369273004170719169220362921213853626316012916188272947215698123684449957819664574990322205125335621952687540207570214121966947777062643020114608712760976196737537803914221735976134047713779136775137695523728938281117456073176994749144409352483877511457580405202685428080752204228033817186284850201676317990775057880431443488587135538757461587743394353463006573909548978297286037599733342910570789593450186860012990805961673817282708565931765547635648870388719179103945119263113039364779219810004720485848706273735414937549165852326109621763607046629610817651873254342772246013995300396918117400818399993159516741197369386521205312093407179379368146389660716216057120727292897636016853766710448702739874077663384735024337305771566525819909602435452056373730489563789927917620416772092583175986460308873741082007725933844614113159748561588932866219355623855205171548332743078526652666447008214702520542336596547724035656174613256164447817436631388129949722553959194168245983869154573351077857190255988522577726274887309359958788025770712397447779280307755629901195370003477133673265862949089499223871378692730831325821535365446682558331591602756170023170269221157753321643610497549897589734449858727660202046519120782561972981658129751554954564491153352132596874415001134906990966063348589203545240231179760969302814257491251863543220115265016030966954269736003708817227265127410174775388551964181856148708830163559544029985872467794847729193883008873327193993059384153757820724665798917971622860262550582923705592648844440164159672817251001020582568420847561783045677023096467194768624777928214586429259348513001892194065652260880369824866060303833118287923995994381081503635599641194572865181338124445135996484367912725111871843881152313488846652548567977788793749240413958173135048451226966183963084242817825688265259553333730374918341575170808414935982824038841840318095091479182843810331896535364367691655024689817214450766703159124123279893448512107646796166005845186888508603124543096672270828328530356719209459517590489280746587527029954912212445013736174680760136979659437700943182286727054478803650881659053856056173385651692546614601230671474787113740599321415778081302334937587368806393685659805925700684808822925819597602972349150342376046998519259208630820120300397643888143089698464874836237573970607332188301239526032102650183710406336361529919929443046096126566447883200597098467189652662486349985140416557813038855557888507290935558421398302132236579692203641740789274993852949524364702086463296539695313738604935173245229653228541585913272167649568771462787780280747926179989697166614945308587996407245234667932083032963954344034356043762281912066594162330179231164530076504630133716232451721216015236734371854585661421617317842061406460085926522529163892002249983065505398675593330580926630867075463769914136361440856183151828036782551270105678153928587311485069364844259184531636960714113796813164819470038745688698616885227005701661055295110465848321214025725306588916696554031155588318692070930178661396334917647651612681027095999270679477798126939021741343700903311483061040485968386809281966022529397272061985806551765668695950761056509828635458993191370831849687019886297588091100037009299499513912943009464205486554063219149184671208021345020398592827764603020781145838917833310194219445954030508839801596716227440219088952818809448582231113757610625790147130863004155655969202531705913171240555355555088693625668889625965174894011451435432020553172314228709472106945563012768416743788451929153560994538123715772793660959495542946114134003676277113243150073329466803664420210372708499883200583110201007755162197779457807434022343267709573551405529917328914986852633676434981871519318499833529056505648863854826946347004994193804549644137245356478348044329137591936067271580517222692382566110170009869627212433279527554395952696000381400406581527214287951616489067191298385107449714143781945573131260989564876110749238962098596611473332752637739432158416442383146365446261209713875620046088759984177334420528920211714267550803396458204883555171387813623048301950402720172145870403928862847031910564236655319357991244162168997224385272647507374795185996370898345939056891129227428659225027361506133859539099446272294128594597092602735417674032215237715061727395528070385992044915341793433270486737879767093559324750277390367567750291220734223635662928563943812882472451049255470984220237588879011745769964654893609138997191052943571511551374706774445339336010400470875888855071850063004703518277948218730206170389123906472753599128638412992318403477771059888515621079102404634533458574767053056851954950472702566401771950614800956480964084850108308099004106112813109541677051108897843598562136574647486411912892846778456856039340362146249699168778052589330606918224526817579687731110852784121252705616462921990595469583256518476166345679321097674662252635760334848619270542413299641655703601470064754399095348655806511828405391005851496813326471623019713751711596698048291850886372117188058042387028128519269554981604276370710853637631692567166199585967285200131984944705607103974860305889110668333862683055154316404004777399939833371149864960617770782634584628581974968767606605494146149818272735486094751539314903245333078329267562858700105998939436596815775867372485985446917593312448774853714471604959306063184496711164952942096630032286827078493847294013476490995016027575455812042432273015123257965769241153077998054083941917249090168106404005779843263909019298907824951406033719162374458154480880045020467149571331301140558493423223406140815303229218776009154715954063714464504736731694660761767737888410510351061496918843468546445308136578476960215457619007591243592407603444221781238473388620195509504521993488573998266310469457461393852999397587361972409250329764172822518585774030081640867516414527100361595159089141192000016335328598341229783640561692759598394255653625998783689358760468975036423850808036719326821694451564385141524891157412484672054273202994622631331156563734551967077492107609003738270424452168249681679508640017269468236075554996707678601969877067678314811894731352051216899318238087335053903040293208900475798177664295570722448472800793637080494932866969296110017481737349644280285692098560054648378840356229945413233448301964133039560194444181604815117840717310756380510472903640234737615261110918566726728096900586520027577795944452568153763377113892705747456525126868587184217284683574468402970949894528241090351456491331615533123899578788589899755600144950550739930374247874620511265996450725281544995731384846597839244103431828820118520249585397342758828875775500717823294560173733289052539933402730845155651979842152385248033755751040886597962351739178304509395708967612529683393429135039891109253619826319607946714425352892955933729967983569578237984095232526718639004568675696809146110632928950621451767790835479303689896017806699281926802001805344769910280277071576818389525881400931105285583900816006364835914415366534015837390782697340452875675676382078620312234598293551372553797710778455416555399061326254408912089065007563175496260160830830393847971516581927111032350374522577302139471516230664255640313243749025851915967281831410701256976020025628146784618820265561948508132197952542594467408718306990479436603950201444645373601056565598832066834996538610740730621449664839683305777537586082873513680769414412224062364752075548417586329595188057720746592026190402081948553632569432813209122488024252219376044087234820867583368959374441439007789045645888352012919664752116529448257544235340113707991735003092143054331412528570960910241215668614315049597080195418437827280177787804280453512771426557485679980072491720146421036030764621523039549078026987254188143805118586601219879535173630079655124504114953418956167002596303516539618165592224965091152730285315272222842806554562878715699987495649084165981781514364358988046493993119161999980489089406660183179658469725518854748455338912639688635918213273011218138638164198776173194152804523350501774438978333506955486246787789070912549148679505769147853210152526052573509248524627955433513293305690627940786127785408664829592725524932535483277102380622614209918799382860288717536736084045305474797959868703670601926878257771400702454170032837414381773125744593876287609759767006110365116257749451641306942367742087364656583476597599527385295117972427795749345047584173754982371843364631470933060656322809786412738644944953949041611276464714316604117876994076531587639435771284052455454358352657875109352885581219150826155086132961022448591604004953659509398011292758928335856808418123859826770627451681138011337542203233871726389386206185319316660435958221541036950869765260920756168402462661265307110995943916698535046940035065548204388893283202049341474838554034536792365520595085774707860233978054922101146351848662531622489578072471538870902507802707427345601976046653458185234100125425778102619957310799363771707966581761409379605942748268455660625762309607683579588311340835450242106461360136153358115844534502174400126895029731127186632231900355489662514359729238730687187229427235673703128522581901777099370142924152951185014176622782521974545292865711028340954284097996774649352479346080589467197322268786552116203418043259850751712422906671193253040222487439551939698626918223933965902529039566729216744979272843078077649331303372051872596806411810490329873793091235494978285009084606032430270562219640499670256334686109590859911005095378819394176688639790898435006466588853972433136984749608704429311643233318888722335816458926329509843147546608333200160325754900077213535111080179771644438372567035688859503495467306296902371586400791035065934486941384158993825220591269781936407779160712431440034751841118043212625364676612943039328859991075143452857682231055422171261678467990238105218116145713129359921645185197127994114761096091704636010920078348716763213865488891208166041773743629283115259646438300411854256388171648678621717227954552727405556398727100583256248248296067364158607706967701155404583659262731364669969493759077403678462637387849441638850796930334522672590368496600425233706157773387863248703365371853762279072119226794885288356283933036138094357529555701374594837514519280063647877837629311200304808859763512331177435349176852390208699521229986816652867616847034312660737686058146149524667248716596607805786020582172648387114064617930757174169819815817674294728168273045532642011565836494608661402720440644846455086079885065426914431257368976797025857108715524328209442436941573418747197843292280203858591744545292130664497774411744647483101652584495889049030100569528605475745079615100962353485930844381151590437326211962229933310146914707699660617499521563908346701719063617309980727666918005223438630979495072161338744288170789617775388453226861826881920616495035626630231562459538415145542981114911200414368621075857739488576678895276564213862885715906848999244415252924212890755861530365005466898857785347075184980123388628692848440029566655008803718700590577527289093204985040663091508741519605481172022911974192904600073671911969247578738843788643314857357694149481844936631539677845451660078055519706313148029820584173534937033084649695204101174239648639044217383474131803372491461886538929954359833416936445423573962083142084261185942309593228906317621954813717808399234121944319568326737302964659864540782926973083238978465752966002197705139222326395905442927148178298796330946003421564768617897581738855665862826574142386331829291521627662086395489194321934520082278799891272143390433525859928197525915204611717141362777582870667428835849178530792714372326432245466533374228653393286222255010729584440926408200326220166006110473131231779694290107867994247908290581332720336044970714573355199780237558029577756006260272582331016346713464506313851024676878721763508745707544118431846283382351220230085458202036284063301921629712821669940124817264518220654909877013716909781878978184587953549178450132956188236075342248267189746906469522404406209168121352907695942535173312137632325510686872184695739305672740790834766092254113089515518998300382287762263537406291707577729250836126270418056588616851415259366404401840565695403931000734448034594351088788696331737163226454799556454491935198365748879346538749604709345199080186717068668562406130628545206971844713863542042039062408635054786225193993223446347150606586197506715139058010259221020992658418608627043286638094917953244348620138376452141719490895008983504166917725690580277164194293578303481999163286870470934645823416112075834238023986657300400645948830615375087768264030809007642284560617912133571188454370309079375191618142875118546213259539098107466102722713610398058873592767079854020398924947191275918686073209957274659578407126594806024587738621549063883464767406804785057941769737191359207939458086569906690901556304149687277081213771574273938365177806629449427346923665946588212870988375034411250139603262615725892210657739150781257295661284508746120205833642938831412689947482985629766659330167451450929427383613757223004441087105976254826022368063986261802854536992379477952948873962987605361411732374495182581444953625926953309868310607605418227652817211472000568159591421306742607395645147499587398362160366438939637386559671104172779136831657392234492163115444131973894977808618134035828276583904538846780110883097423197596085856015909907776809260167175785712888496367156837336704556714143914875044363885331118465118475524773495326896873664079424901990543861635702186159295501503507379117774569251402868933273619241615441545466834840039120247156640607917600142378299674037208693850858270562476212252597498164014772704042822756167635051830406988721533243296173313320402152040476114167614575916524945808693669639409113208650076124790152218016451219592203613475428820870396067520541679403926254747423884150472537521582046032152814146588415878790825233525841788549924519623480227605128031938813769066512127237982054926579853301535809050222038700494088748700412184979713706784956673710941206918046269428833374078192609513652665344509261448132338359596997751155689142881077333845271737050448728141915202822031223357586282161290052251680833947793648924114433568186472768371144120790366451588031559522176947679703579137820616303208275015419421594471272059612870703929496998683688895311328079387615305411329320043280454064353126295628865475844089833280324956137793781708103834873310165218366488543255318958506248738189666724515292375088295238912141149197023218138569211145480534747344942408233811852331135069990863616792842869056413726737092423137896993058754884701595580747334373043051045040655421502512587413453102925715945019516726137042323328477981380750345289488944525131751864141568355515923104842218686315526437234025873556324931362955617433866257968856935179317030657517644349570569099209976164612451774991270223015766247799860023826195408408166265698903558561608512145512534537935311114905825658266438010405589951737034687314268768878671757005789536096780945937395875037245416584940777255593893279420878670614067027835262809833181101602066355011580734064137603414320382903446092711171156364429877238149618660049055961015731526304843313338750770474536938195752121521373071956954994930343770191811862544058749533368799510281274768806752929284855154922735784310651225226380595500236059812849899115590263582500326299076596398325094888612757061839076454134124005382991000066840347288926134194180173174193434006410540165479123047105120386026249415381541668993336075618012495955905820200267769618662061515220262895883419224524023091283711861776347654104817764131469086830729568737645895711253627825392521141098095229015076052030251001094753214899278728061373680353132391164581557493178168098429585676516712974017293279395207286672927077571121703743534781050871496035122678888566240525404141413728041761621299962162013717479822426051998724488471110814004292952348464352707405433310390863349235693367627809715361844298170599252248298793069651452596716639298546665216532422098165512809852116168906750511161257058432052830164942509072497155304853316915076587117108705674456524532787329909334156538269552052151857949577923947508115475306974515864571169983079500531062987952200528890661156061219124288160429047317635187559282856116170565955838385065999703006979685597980347521856928041252288200487516714649606204089966843539013347020826189540825271013515911384467412885450201773811273492580422272241808871671228835143164119312376433459033368346825542391862839464126826922783522533676526749751082474144582694669549380128071274086601762680966323752006057393556948319481027956026319959856619709977103115428131488306160640500137405480995326271542239947028922886732134680784680791602601262910425473834322241034197480545862141985186344787197100376650846076542642429083388122689957490139913027432714585570750388976331812929391861206012780746224262189913343699876243051369972377757775782988563211443566844970757828807073268870351893771313800731460648128548517674195194998847035785618749840577334215374218173511835984287137193114514422445809740903656119022544178037238499446838866209501342464579555708636865143406794476272794601594057465749189952300074232926906877590341220440420503513432310459466322527366616440156753678313356094391286990307028856200313077762171879084595463229181743308604341232892674338098894216626480449375112761725894110900721921816273260797804892318504311422990532668606050411858544224593076105665229790471954679499222038525962408701408910543326479295480321725268787664992607289422476923295977460609657264291534715814332199997008562730323048111330886132533119149786833030160143302218716626498982962775709635049284147327110858045127619760429831501058113681794813177985165019627494353469940045496103293848642249236189432395806970727928331684966702256841477914770334990799816540270134587104492346471528670146645471928509522734156122869643589126743109439833538063843423027008596719110029131380238300884781871696630021513836165473690210612094514944129108098862057761088827955935602378393587159546602299377558356786736842949031539257303551524581149726137499582698704994195964079737773285690133220283364313912393413917671620787960478367408112133574865749337037802255171755642478163812157921836267321423491692068697976385643840289337911443006329398719409282051753729851467905412816951025166806626210018726902082771353379627233077239772879542911912782568666311703208713546201263577384706668270519018509231841498927368780172228952187189646060634930649898711816717655051645405442298913375934858739689957654983187544375212629631595011995363989748924341692127730069401460685944328595735392866908321272300954996758205729435162439780844230725361627593596150025395247622975253458597015626753576416492106343414247191596291254104115536511102516865976808594811647709585196250186289170272383261469092449604420601522626538576842878072381753104782890813101913023639678554837488525993437485398581092684036835900172405277575275683854515665700128345496623341015208648750112695229382759722562333478790551622255956404688880587504877261448930160034534650910430360084009984154127645363315781289850544145415160805042394408447732793913477332250299275394675586626869772217176747513856015095245402502908713093200230706032901882522566372697272866281842936299494907982515332941013406660985755394230932281046382714518900543340253487872984279819568707906372550378694092810200134181359081632654760896643250724545149678782319556126559819628980173739589789616927328090242850148303051937976541962570866182051360956322747633145470749748377955053222042212003602359341450132176115269260576525023577134515845751928079113794443985613884868974978175585613013359983194428237737212095048079936695968642739340474061313617747587731922214192462367183419017881535807167091986013367680144465038095724181617607968047763514615400834180579759251347352361296697444012786472565444017691731007386683026003304632650444140427815729873875587346760903831726393025875197367383979871484314433219164980531030602912087067750886829373421564391999585050819039123281695847608459070986968008502499315180969826286820233568177661053482388392245461764087248891449859133871831264216717133340661560414447134925443974147501256985709264055716559782811705066192673199709793446486769920124028037767653952866635318511595734442034840120709207648918607803186327639043637818303470642104715235254415911940499610479166238068034941377699754522841151580050458107062106401685681286149952436705101451034563294247394445126818649845988579319171247677349819327769240018960940407542883652968163144421395333771933156553133726726690303130109099259055835173836214646018688242370852494354570473887576449252544834710698361365064875928463072232750688938332369410635769608912852512430652017092629859809704896871107368378932779188967704549423402327464394948995272670548132987437782484148865244099280746988887573998910075369646594623728947660447609997019907424681515520719116764820311002281734578137427935392651983318181542006426716670929153345798301348650975363242906384875982762500419172287178540956760511819189581610082473353096838922672854748537635837647834372711297923069699571137417839744772228215478456066701771239990221915167371078159940004236486552281440676833401383053750050950629401598351095019374268165381067475916209506719005292096718709739452483336165952115352072348163061114466437542207784766219807472119777077227907783399956516295016282313602073409205104860826858664737945869239164718742649803816963238354412852127561025718898020784813059617213726471091189839295765604209134263326293106896864482230937617069961551883502259311321347388018320893516185848886299104931040368624091564392861279714525605295738640766419731743370497019292380941146562335696331390187684455364798740720631315562483218578879226011146707063822098235940517889285870661174858122888118233259763840499593220316117324784259411487529391572149792476090811694790916452908067742779683325739636785469220406933449864524761514302830967994674903495530690430631814958708882228142498744546962991001925747442082390234196289659535123909249203514166846193517141226427493301306274513314126149298500528056019712232763290576085702566335625985836733870895783113382036368084241298675679908550439002878409335697842584005539546715837465262418056533552369885027273076246250066128608562902748166015909527332471854048223759647063113039813945691173406371588508781930348781581914577347945067355783136772576917905466645117806329395558847110670546085041914588397212966488230641388743541091055782835013649109419001909314448838632907168318117621987871662202931432714294288145534487772403408782674167808034819552612164124155986700908461165951505957414332805652184343647036254246654608316382569116254915437026238992156855706326061626071545098719693933667276550260772304609698580219430206529780314546960105085276064864846452683684494314162435837019539837892082962912535801811864276042686521396512757658778905440412039406445855884330891932707597770237126360067239411446852647346826615797225853634208274193388056520875124066391984724925621520096316786607162620794885451279477172645530632468291369003433543632209924507290895543660941700591949289605563235710747668235255919642448050162749810276662285909922481307339826838399171995400636758304145539668091565944066918474096766664618063322102663713875084326191585429749402323606769134966752537852774403463030150983142479023561204176533250448511061489808329323953495588278065264272117168411740081118072694282024644817849182711190584528840477659698434575368516320250266274502209595050248148680182123364381364894704187923608214547210868310875139454876862930559856484330386618429651868094118411170994321387267728326220115661967811991945090868473135425391987004319593211816578725944309627841634226413493729614118897162533609594350116210698295533635213914089701038879603381795033348509923138944834132540884703375723803360912846052650698651273313453859786960257405419805682318735787929327601704610120777490881264988857469219342623285491184847704619967496377929414627219785003386049649552560522061855360073912458565433692958331882778011757479667882706606068957557898289902426915041557417440541891362315843139440346582687759317653555856303122724286115622060225575508209668898182876700993650393549850940753854133357283328070390317659850232734362258017672721636412894685020626791396098621757631643752219093229385461823633306835778817277653693322387021014730809014912603550873551545024097586948338885725059829239310951328753713755977614028906370290707550104028010034839351227712050233722292079870225522013888046299825676092891435612819923860876455569619252572791557416505828446218938249649144072428308229268504543614256237310947275194536363217344695965208692775684084091952946699199233260771963389172350348439539211234240289190381808128369949350842791797310859762268638070011371354524114286472375784162844263321089616830371732214526430689300487587296664261483751232878736917526235414617271306602887751522175452489428309888662757908859350755685357908958889648450091893267802107511038901436660944883828483024013089219751882127451107713513456820814987030422554985728190311251058787216230229674922595106558330082053660126837612343503094766465150457626652726077706001477394433539061861934467250507351485630068208486031541183785649018692561343277078936186181757513392447073862221617634736092937700021416772462144788919956938096136025534868389970498090011833310373335573562831125357109124380425719320549622494005347833148327810879366860324562782793853602759157976538812776585544438326273823697008705470005295408949952841097332319874015130415449218407855924051660690223551837983508780694233030513348340000452521561641319002237011634716153450249560641533524300705143900788663617077441505914220688649830602610279243322458528563654188412653756457875087150994480229356650483946844486730351047417717924448534570580407844876641275681717630618413178269348773806456497059192682661940396578630555391085598834718618878309926537565211699994865377358971207281141369253524736370250399609011474499112130963182679627577905558187734397465602934375010260596253901907311268295135167415923410276218526145361903863328550304596106004785328406752821959466854081287737972460574856061394388934078433244717957086905994034215110506098045944965076227995763978797631244025776773382433710362247733007582750596186040653083003956129326679994017278116873651807842743170254297977659188821979448480237509058015286636887403749012249577659239648687220545514643097191799405113588564394046562516628329832834464964699725983731176991695478219349215660892581253111622247383201727604223704939421756034118212490675953326218345929565670572342731687027557938553355644509574577560723690388973840252707768254712705649279540034086536034845525613874659041648182682991126132313399721037046367046242307078049059336816481312002044543591101199608579561610460984675881777885275492415113199279032783046440732432843478665294278974949703776053351658868735545449954483816287034604189050617003022559755815782701359179968334457650769516237204065122371693850652271478036848571944109590287641190978763884302872585265443312480865370100244094037443704878016423774762380562604168100324324471594076964230025936195047775469567413926987338581399131964309217041042158822493985545764993158269746102413301138209335970288957674208928128154748074779539300045519167355683004764848898947959392923544378182748420859695148143275239633005950088200288658694206505979835924247633987474348688293287426233831692100117708457089002577663301884949522382050135533306445020212929698017684542512463170791367598584282759890083822407152744926729016736515838345871418249218925057194336555047967502957080399890599250121417979653978690277586207346043925759115158045941147213169038957123130230924405074183571975555541856210843269365210140970409794054877913547890218838254886846917283248520497897816711670296938646557265654284806850203357052961509940149200738349630643102281636365971369629872733348075235165264201650080858882982016764315925175528029139437547591886087875307682240846857016426656744107335066991998150240418687947197248396392403570727046921961341000240363228424907891556489072235161535821722198250940968018577768742333464981344773769984767851868654468566854933304121420845730936834556653998501609363058833543493220318705298312631316603083266155899920953565629030856313695905195498229966085989967101542452480050768604764373092894172604372974630149506615666464199845008408888284789976045780528240513525241321617879750711555562833520541948050653524451286051622761839796093824001958525486541944060162878598466047861786810557191216199066632912232489600443118542806283752906886198446338872998742666917135942034877785361569959594051197734619820649963843959911788756459078706646267161934444959614058884745160892738091837019663375349085146855922549887524786023618898049530420625485560556527488447738729311789342466859270696109538278396325296358653916928131959534336586005900056539295756282283546716582403179296663775526233081983519920903418549528875439293650182436832596499722149306101916917034252282199213720534827203874472098440524525599298078840972108030709532267202037185991292540414953443667796034458372586658515720666044158952678331357980888167797906037619203072293393120112900403213945470419118428102512742806478158939116989928477179693493769391966069213839502261837855492896055599691733613941075533674669078640957363468085627590936157521176760297413286465580468987527546003327669626716154037023573664970580405581304039241786949482663278416538840071886493207050732642403554369576508680386887322577082723068577641547840551044605979867436475532673930053935906751616677916867254669183539485394846821266696080031865533720729970115065995431000425201447854508578374003281145260873941118641912596281980321530838505108698343655635206610166405236007847765370046085334075292129933937307351279463411229477742001792194162450936566887687540255788791841036796203765817105148930514017233650679485565996645785670552220487637596084234880910372510991050111222679229898757713091787632035831576610481965879057272371812930362574459319088238292213776880430902959166322126375371463504967639961215079862779713378539607391769881542015248653085079404054234399036296610451134941162651479351506159328628121915774334797096193367827898330270383303468817510096013526029824266396767000396935315238343930417449070158336104024354161364447361342754424626238355169100027135920360335041046113604262200146650764118159171057749679284122694482496965996202463651931709020040979299542307510906510180959750043906196339138471567029198891561079381714214204900861186119225167243538386902626267277275293476258390082375693743949473046664452352906169706654802546923546289142880424020584453377343931853561135508485353664397884998900817110135156421763120147480166578377108866587531058993613748075817597035855451891465654118665970539627074916035729361064328212136347461242536428963328027015033891178583720044170895227568726193127587128238319700487327007990099323348444663014479623442010032621248683589359679601894140894857865113967252661145099096908070750024167213109377611309592296775416424552525753325220996275876914959992683962206076005555238969086692202190521770490262960595993318904089706148342984022104377826913329051789420419610338794080634664342511792548901657737771736359890275046695895072280270964602894945272037392455745888434346256243646473374055855016525453201638989948449454114245275639111290694197888053669802776147933569269984792802078921842591933758125268148898336765982757658594798692208494655396133382576926271742757040852873634212799852968734686714349134873745317910982658416864727148993805033796765191289798004296977179905552601900049307854854497843610757640279390893946338311673175286411915357976512243160644379012053134558976606840928304493685285217013253775790095240407399278888562681128107634078988527896115218446483924820636961467917443132100628110944103978598683101737543217130489112535419972071150303177028448761398663286123589698577804518902979204711350139758941300550480549245108608322169469462476932430640553124433551896780991498917292098398675592894396455887552452327752389981742223281228089666222338199914431244605808784178158057627333117226046726658593363651725944624130805664896406648105229067806959556706736614467450259834968131775514005869549812900194257232889446063528124424132578746340456912719915189825548615581610436209092299822568110686932661241407905016695443336169993078134520212087827322678262900011775407852986595186196432685755015647609090369427758751826707887044991409642456812893773320743532111974861368074033764734406469636699761567843165297008510572430418252891363048612407662685356038635022190535533781804973354069688584903028403711574087704746047212487952082372658525172161914764088623055665689953819972625100044464318223611419979587947922755246223867544755455063353379410594913307163663329598464398133393793008710885403236632779458965373510365484559638198172831355019534311885890677712258761150088348952524473765615872889283893116307977108152227937337204752412127726057472393437844487878867715004747732922265882300177278514728385937375467885386159627317476617326348294483483401530048678877244176829408929217514407930160079654203567866908310463209384831136310124548542217557567934742420362324393191986982738989229954206655051117984816522489597327969796827915243829828613850457131515416810668699722717693402843233542455038187880002819520813872679885659993233763875377876607975649472508526011880141004612496383323460675279746882922918985579366630635362116730215251182638301497567680663977280772971367016390134663629720666632357515447985312220832259923197335270228364648487860576948987447648562805360133329007433736845432170806339335929483925670321078429487227140239117425452253838143726985730768488479641912700487715633487809654365850984995921904347412167546889957492063992044020720963916698801784411543030413415444091600005573844341085971337736222721955548737217870156132046271996815835120607226927365642425233620070802285248033772818160369487445652316690564866429858418940785064776150186959315575083892322407619888372547033536330434627467471529523106928755844595600209180248548279205810035453782409322974177053207363822471315117704674746031865271142596140748397257537692831283230523654788543496636922715441677620852478841838168138816019393837855195640309832308610251857927183563303993729624556475302601845237116815240246737537896660575854197060136676546857995275885038920622956053843500106692972914844713261746350918402209752229991288803491042269135165444926870630638096664494643695324659966694046830422157362624509510923698393902562089554248274346995039719010587818183073690190153304073295690814736740068532538927472061488929487819412993577443833396925689745389152385137971934319014024615184899349395294838713522704863973154345535142275128184606742751341155983646986545483614129401382131807691470123850446985314371565818339982449709238165089767412961860746641363385606013533374911975246604657467804700860436028633449633805835249309506669664918548652948196226120600873088040262340662863499541942753600174891104819260105869401406273429351849245404813840063603128871236427957641594471476970795689005981042303665238688622559663013022717218303507704317309112765504961258350181568375877426646743393699995733191587373291924373650448921145970737063664623793602512527996534257325741509276191682220242531786836581640869896754636663624295277991217480309733219614200478867066109469697350038855195872878442328669509321096329037344669260222787592361047581556192534174287853453683630004054439318469107439648155359128589952762309610113618732045586328824638060002141991726543895360261306201877947116348028435669073792252591820106318956526268543702588335280951589216335208990097374332507801122238446514047393303000889651980253522500415542748376672459256015946274968722688520800559808961115290464612346474581660018961627659526307876281073551734797663322130299582669111343952552690389936764097053526500111064392564684257237965229466804208837281444402666199126252464647151495096786697584508409836601400975904826060138725375620564437746269209185004280849318517449702917892006538602231710477862326100927046637554671865498657740249834772024248191925422590126903328332811375135261374240065390583303049394807094869424389708658105279487939763004963612922875397140245914521426675470942776063228889942177678043146975041140652943937112709703653749607582881011218654474852482672851875040276126716491272140245270673520572669042820621047395951624770879986655536945781459776626069899744066800004179690272315183675748562171270821246106590160602650211348550633029293614708940260168911192225529777879760400620724193187334750232536808613427657449575368413878588633640516918227415288185207618255788034635479687657133632562940369930250965312395668177681427891819770661190604395379275572287004735675639337637392489573019170341403119582674338843246718447274138805693768204840365875605620749438283897168232708259794731474386703583284808983015032311771106643311654729668658955552784578796107831907562214713121325784494328010762827821849879319013368499591599967272190086717523592999445149308745809178911044511088158389107572458158264054866723727827527002728352933891101413410177090321266927357106285385490314045298530534522036827857647492724693041019505222077635512161300621944333972042561652163887552129733524555285044426262836942241342199753413626194948445121145693968033155813907423377148991221113964470701666154765294678463910205858089479256918229061823762381201150145537078276945022479993992308743768848283444934801249957824671098661046480154092065252612342374567942982110925620626852994923620292365934432934063115572602877343417334904040712955431230055741421703262462918861917715733807866817318938944807312932468773741587419450705491641008324991111129354146797923480200596957192243849023010296647004398926508598224754213034591190331354651604280021696888430289178253847577579976815799296403633987349472017117145519543948110399927062815584383318764224987835573656334098944925247917340571967518483675144809088690456516864105805184007416550851605874949160901394197008978771731688798630732830999377953693178410894558239361415958210314925768738384250773465274007931784017351788540446129304605086926706413939476324289557723806893810030745801037747851221835256061665579538777859759833894541376644643940472334408871773237155114648629301187198682390058874924636301478727521233531388743395470433967006817179183373569148823001230188763525274887286630217518482929526147479605697449334920483007695432898308444227532057524336774420491621318038139925952171590154274631699933430743158129674574511015555131810482274549236148538047565610865156501955683906098294671945038909958008088300780795261215979025130800084200675879371074623527143697220367073318127280309286304614711951456210857243762324615834964338973695961774242876464011739383362584573773832005059020533964763690351992847833111253183395515846687646579337980709762632286114345568680802829564376665452809943130684838859115292879293643509415698880259388064955213075048085641054522160076253919558649725343345625182855015530784590559569877179121885343802026455081927705850925255432900007187379381824513663191552252947689416555829563913051129367135748633827074901643579602473692683897842273911854605358915615438168589546119553566530212929193237178252718493970105164652297124779659147545043101491381935230676643188839168674228753281628839268304965344826758916894793361212564288014815272200748669051039302988564492645138123353829639707819639451923596089752100685353887757858401903378685453393160433049481188451264695034364488836573383475846772429398942175052366455922450835918953534516673687268360937543353754634918045712059396108776561797526535264517156971807660857902355386520614169258972684011079328489884321825821658160678048024623329387401920593292666541979240251592743940838257133271908755051112278739525269890432757793497590417767863791395007828372688150938580277464023271763157925061747052438630243938293763101709548020472860983400539604545263364649869772436094921187552708200149920962882155709794489345657345668011881137914983380723087237940757743127887084189791217248203996691516838951869008359592146781805968593709259166994221489191430053461938560316062052627732966211012223132429060387106834144819275224227281340554779440655655481782355847042689527295251337261718124742458567194351604933362763745856148985247668604997541970614325206524570188327021003755495251773531667803458744012702222336478783080159632064077812471742524927801622787488878830387840415667856299628571855279419240009284828987041683070607704071169688860209754229199829778627541758955178864876752153636118085699635754461291567070102344269664901305121947061502867650399758162390239765320858811588040230934663503552709111506517353459638342891461820292662333443431640215614521054925773030692331515952369912129737483360380890509196467806098104747439289135752680172956524617076303086408558152473879083948349065603805381832859378833780941217991626579825057350768688997583292816404204428104346789042033466154563647895278894242601367311932634740937237628496251077198683255464145829797398284744489027179357958233411670515245712836572747336750823782996941611454534768879040943267751087759038925376555318914130754424731742897815203544476366771649197863535084656978976595018290287589718077817154204378115759734158932043826478450979959196047381527290046721655848192385716523603776064677252567458046711248869304241052172503228228756260724175999971825331633097278812952031308296142304376205402421744989127904808225075284807004635595863403354940044660022684543359822179084322661924786359474795467881758405563117984168950621211792177147877885158913311384825835810771709119835366372110418299933558038997387429891652512659542136760758751225205823402489478226405257547534573183803577175799682149100551326949951952063580259371102096810234282822936306455042290964922873915996561865601660370167304936492084445919051166897784440425813475576787874184383067576383184450741129511631859724524828825859268393507569194475883090935075782757823027589087671110610653468533414210797361137374928410699868489813384894680541038382105598689388888132625262668851863770281361226939013635620725084504146525331991465458800498249283195817280891299284981659076595144495417237857854017026160235617546158340663181090909220059363637355578765381028435163949062585177367672747412525514736440908089973956815770289715110598957706765977766109422457327176758437027306053275904920064874699881517647490165231281948868555926523555759401751577804156411929277559548738085207954150893550269820556937652899934822791528932669332213401283193320590275899405462641824007887204528366253178589954387276018442008550515557242836867279564602255865926383409689507134122569916382741090255146630933720804120007779142590753631624824821011149828466552985439304152112136044820317580444165068044301067992485588706011389962194802776906474862076102315166526270505391904294740373710789346564974466724257050896040899044946714986726100179026710281512812088438277160334813389190796642657057757411448677280318458378906994320723643129984487053872552607396385026684933232518192300552769875890414635892003380611162252119130368142006208517986873953172381828317984915710353243378633800721729951905738296067065203613536880468107786649299374066124791319899310559793977696351233377430313641459682145179258661586217735890320841110771289172944949211267056550854664820695435377870515941069521088782368578241591402952136985690691895869299435571901384718267447342366132923798016546738984881850535084833378632760997055737521655181546501555481202133176244023085238775761774729683939570543798996802558051045153120327400616381258380501770107628707825185426440869124715129896260784569631980920566100912198156000483313769214522890123440364113025887293359978639342041403920684581953395331222985741212434356516225585016933810668381559903141014133225552754377588868681290038963021179498448845987851692507301875105339850034458302028400663467149460857423339500016671727324964632268464342085884386438215623045398369423127123358581436082755627810724724216198928609832039352956641382163486043936810287401729359386559641869463771891159520437240009028423434517182345633664680230834571800398953925868878058373224399558387263365838802237339502924567250781483766839640395063488878002703122131712726484261421822103999167478133621697687509959695857849188020788478008696871373466657846606534587496295928675089279539199264460661402556537681698485925381430612497770280403650683717161435662282581365601957151668078354090636108120383596449384579303577249751590661206713460509471259289319362440823498788699039809205172423108811603485276867777348111654714345717234468974410918826403320391569856105680238552432294258767460401109263669433712517728916881840376536364173073038143431845631042551078485518533708340693402797634052895504940293266573533729816191484699960183703809038106817942602341633768271863059187387822145409533609617940955029406905031904961021389737987469757881236768922798532582189406694481066840958616733320468424148011595675451314320431206918638158480723098835967161918173356876036750549165673460526131110400452009204473101138826781814726804255202076627081314271609456950304573325847109511378046880985368081900992522168333357007527773466594044869392341838269853283813093925290014583613937918879955911214293426835226118374428170455499891014292217664618439288656207193180128809920302975776152831974419207566447868742431864456116027449026775633342672031170630292870775354663752862796129512777107471864874564746846360077885964214126219900907487007242118144883768279689365794778352134813701268522545615354617921336431807500818901251999061382942249007024748345539789550442270236949012266735658558719875078285775832962004977485094394622876401133451873917120009272385191026391189250783700658077467337899544973818907910913243856185645780695651854697438638999662588995936762624487788861732862583556995633406649531794971746102070044787592595457900000473691677129093007381458956511165709471922760197364551100078492196911439265498119884349689814888995406529099699362362087675952965910810856790454270942247801268436044524776501660564697574144300005632577823607184181291260408914224826291813961912714951418902696173668426235741583721730174763823392916110972860034362359094195305012848783148751383013883179787837981141615320407052619371259810419488167174043909470263317871960086856636796314463555298882272539299353999785803663461876716957664414110796619954928429121595417306486480300970838422744324249397838161275062876578937160547982435247806864396335424523973344503981277003006780043699916965381333856598732095008683483451196948900968564388586250816164976137373431617802700162702547842899430379300101706999606160042626487993953517378299208976922675773640991260578508077737311079744049052261372969124478812048818140741848129491711766776486949534402586144742077644751064340334124895912792281250911729367899137401172139917782961996094810426807054008726636153158162775575106545018308140192853433830105240725457858643507301905797339326654282303718796264334673451070224446197988774153212078631976722059534725241263728343198499850855207345166067888087446114215435544917124169379176397519779332818099259460488199027157746130310341804396883693095123569152465170188491563757933464204130585682216289992248422471027058237717893732125371183234623767639014312948969555278948451762435668517986365467960423870729692063780070366827417068787057953551273557128014695398411369596498400630696044557425107290270682151619265658385543336117189774251066903641287891137587595407612105561308093696715068012139650224844501853095853829194356535607657299991836001352037488521842690798247575610015823883033849663093193495140825637882256793147368787283090615594945360774007078155201421140679530080950976415012608833191224864453119019770679240600661419503599886905219586455416795176946998278166015692258134492356661267532757797048346560830162183783268094517437718175779448701108220668408773675561495634437294982041607676707679056883504557176678696689811311176827208066154881481444576754291024254132393830265702466909557360716705489895585064524998004966571312192772954496209004891849917096011724609146818456545211410332686482582187245753298491096382289059571498163185579127716310452159208128482420447562610357708766991224368519607539080455022999995622464690077944064113985511756294801589441744518423877648466388367993334421937496102188465799292134746670758124058730797513190311958690977941756534547361974240696076246511133462041885155505113474451566105984109883485699255555350367200571731349593698580651856811517984634649488955714896959828234753169468040749049562079218831955494363994085413966083543538613189721894268561954026004827836447517405870923414213662961173799579050985716152181561931887581053056882904269588711182661874207756154775643573840421874255340501606031156077741823907484433579048342353741445176962040322833544449818855966592496098661179518454608160113048887493861786412542819067469229057364524429172424861749169509939129947748181057965363914657250429509567292044078361919798280433546322920644006274847325638611985183748126683466948542852777304309040338899131190163734273881949911168756735629327110189795843652807499781450668760311476918930282191393873139597530474138030335573092684598867899063457608079435580921447530400842045785347434117952350087279246700719265016902112772977226579829781236286424293028528487475795661261058104173935049182285579136319362588585520105358809371301340841467814310473419947380095095313615717233499519946106307821841941526206335541116644349456132259479514228538412000917029860615991930518493855636563492578600131631500917588510194656230559672348017127531971207074602477336455552336705268943630268783690219572962894769205274433298982634299847863073480947570125615349175683294855488736432504188060151108405817710949252692084089455034034933247002210565033997201415516513831488498378687860532516243355152791059037904311350107353411526193887123483873590527903185075352039808238129118460365941375798392154046820595212436164305455959873121702635015931155517176700797033085118903246101923705649030122883892262081393792203190325649183076723022246372482542887677557969058528325394257931276999830880670650564337511216193840488646334914607302851379639124422643456182133229864367346116905146403524483773941094733594679833503041733160716303574152629560939548026485554446694294463615807896130043326403789255567298299908498367517767504624865670804271229481009778652530139675041716691073702807008102024803881159579829720125204024829945735128317373959360104224439382932851229424616207095605935665367228712086830088865851872363278248460078119309497381410233415722134895352428880287664876731461368000072521183123247026913985476636715820036947838269282939470941590932326555040641328691737588561353219937602234103401924226386639499630533998771912095989020524016128805683093801907363269452702716961669336718681926998762487261620267960429204964500093312913731356594267358244612881984559728836947410449856928279422607288818983760348931635532555260414402564788663534479671126307330071633867713718052568961918584253544419382587373285263693292094501096607793996674284019096018290634297337381258721101334836058696312775352428189951134788131491233200712440968044006034182226467906153233396465940850739810008076676385810778391083325063805323439562765086301890167963126965389130583746313108659834259782081589820393504321176381803018946786914677375018817662495450829206363692185423503945558925924684569764466431946706675876933212558070357533165567343259326862152257067095218875922485107662992742086293174107426880817566137260141618777325069626093695747853123493877044039038391300263673804483737203802174985295160911404871727126014999953697541224339844064477243335220432582663104146551405184985842782827722015202073922114374981798338139520145442509678057377391807729964378802358099754839507181038976743433571084449892161121443184370532080451401096537196675453797539989373006891285752078637797999141046304183985252701068590728997807510044709619979355711770104212563309686471374550671413732878551643143466705519265957789436963384320176291636014700041279994519448683870583239925296134946499168091332202484474552384431745605321984577956628646256462611902399878773556173331587513466696156778272002967452987113895303337900156084390060359646147940580502820475129526598072740549702275348755294738049920189544997296381236302278118256034177883899026447274234133672545169976776538980683000892703929927321568003305560075177626135947210287769988317486830621328321189994540113517976516836678434770495588961294498320552649250720641947025617382510867324546029053252168820806357975468982273579709047716792589155997270253057045514349114700733473110288928863456182343492603866414863664711011873692866822856380302685554659187323480813498108458021562712958721186728276801565940912269727348812764395634625734745145182162561517802231653896778874852100049881267629998417016932115430312063322286952189309417987817980427601738934148363172466220758116718180100073657699432664319834106067322561519043020817513943835866307455794368896622189708580719427932957481683535013639909176809002798164798209445141165713577016718799156828610779026609165309617677320978604558620798168814655106934934514051914693385090950921151529643396682745786513382711419093672069219261568298692599249319950302916155247034249047095019288325894403385732321228402018764983616467197517805368187681594513242026278376194934257959993707150723880703950647232047962520948310497943093468075113366379514531673323239141686259727345707720391933651754271168479420515986107522404649092148708933152834102017584720749754015875402673737300276209643911133670376618716317768188122247536295535314382744132759320398121500899418474347276419254920541895404651141520155602410129371313347680667929552161975682029158942306258367393483090166755975676273530762717675980637127800795799570539102077993894483462741595134700672733018191332296490893307178373161269339356578402390982849501997644597322439139126398776928927468431166947012270121809040163924163378618486972328779143521617592611233232250316364535525311754111585269227578629789590432909646678539348354571663361050384938766752015390960399373650117471489300597446204795146224052623855294341566221136447452997117197499689278895008881223071752331020741836829671479801012799984930838564125764471743828470540119719804608846276275980136524471484913910895385338008534655343833867362118766960450435105144785939462476564734791445931178760491452387506814752607735819620179336391663397708121750102762673498333233408559489690576520960475091576713696586433973435561815022293148680312728226354080792996650009721142582429064858941333561810638626555122976222140693280958341795915595502623794381800742131665653837605576140270210874691722110997738808801890905036389558244852264711826953826574324032944244395944694629175409931359256047969680546212961204173855793835539335715255738262323369343368823028341879867946500876762628789361814701207011905723936071938408827263450515294369968668443485818933403591108217154022106607103861931345337394039148104749352504585258158044556823378924331432366988945473366007072005314000734308009887824996647543046211643571648399073247893599908065598083114166939552199881517735679977395656985103515572039902993825323034487401663698672378792256978550705614877410909854929917855896992631410621441106291155816432395411660241050661155463858110766869484922022934989649610375654188617202211118551264514286963262864730332439179230902884654219565977886995646479674667300219901345518726150892963370632934943210444477578159257922381934749456005796135077522229800861895052938178079402323574722160385989638545976143995991871780483933822861531891962080541978635825371160323732382044135400763177386344633779528796992726504997941597146754616023400106479929330587158206234392462171723861853303019551649684439798264277673863509152958831601267634738150587537076345207711045712930754556575972006907632297622795521624082154061826831566846875458574846953105861165000603774486804426285302113066068725121460500240844332648117230529915147380445856973021860687056520189674146601808345067253478288826407307393709043743789487601626781634597585080611987054673614984505012091565281919956375223130789855225145810731654716192108064687971788107861119438792427507049859247576424640998795164285321459595046458682173291815329926456775559403185268872734697113203298166173413195554481599125663053389053613469410253885148457186773910282973608795304729607902965069098762463047201372541728392099381632722225285860252626145914437605204771092511120875105352516901042565995522054213978151600732039715654951069493070409343534328939641550983234611654523848576654159327303943509335883760488987707429642369085818160450186043002668137354324041087652370102347355806157167168649979264783361159836461725446714066759278807228853166138868225064262589202185084198061626250045513835731383910097438065722344168047864967354297908090210088838676161438832604223280729086046785169067943680121429651963524516520022849575293608338885471395265881363348429469655939982123323784395405048135603020508752608052996292788776182899538260177362718360471454802959308525540723577937442050115193755090730104636909996950801144166048467796084370344692409471492847373431988330384514215875143749423252602048077147840550129764102617632096886657426036039061467952613143830360732804910684541794029770052962785643135146552541074358880462126700889769736665482344782653212941775639705064879320419153261374212299384682236726144155619871554601983979826427767386350915295883160126763473815058753707634520771104571293075455657597200690763229762279552162408215406182683156684687545857484695310586116500060377448680442628530211306606872512146050024084433264811723052991514738044585697302186068705652018967414660180834506725347828882640730739370904374378948760162678163459758508061198705467361498450501209156528191995637522313078985522514581073165471619210806468797178810786111943879242750704985924757642464099879516428532145959504645868217329181532992645677555940318526887273469711320329816617341319555448159912566305338905361346941025388514845718677391028297360879530472960790296506909876246304720137254172839209938163272222528586025262614591443760520477109251112087510535251690104256599552205421397815160073203971565495106949307040934353432893964155098323461165452384857665415932730394350933588376048898770742964236908581816045018604300266813735432404108765237010234735580615716716864997926478336115983646172544671406675927880722885316613886822506426258920218508419806162625004551383573138391009743806572234416804786496735429790809021008883867616143883260422328072908604678516906794368012142965196352451652002284957529360833888547139526588136334842946965593998212332378439540504813560302050875260805299629278877618289953826017736271836047145480295930852554072357793744205011519375509073010463690999695080114416604846779608437034469240947149284737343198833038451421587514374942325260204807714784055012976410261763209688665742603603906146795261314383036073280491068454179402977005296278564313514655254107435888046212670088976973666548234478265321294177563970506487932041915326137421229938468223672614415561987155460198075455657597200690763229762279552162408215406182683156684687545857484695310586116500060377448680442628530211306606872512146050024084433264811723052991514738044585697302186068705652018967414660180834506725347828882640730739370904374378948760162678163459758508061198705467361498450501209156528191995637522313078985522514581073165471619210806468797178810786111943879242750704985924757642464099879516428532145959504645868217329181532992645677555940318526887273469711320329816617341319555448159912566305338905361346941025388514845718677391028297360879530472960790296506909876246304720137254172839209938163272222528586025262614591443760520477109251112087510535251690104256599552205421397815160073203971565495106949307040934353432893964155098323461165452384857665415932730394350933588376048898770742964236908581816045018604300266813735432404108765237010234735580615716716864997926478336115983646172544671406675927880722885316613886822506426258920218508419806162625004551383573138391009743806572234416804786496735429790809021008883867616143883260422328072908604678516906794368012142965196352451652002284957529360833888547139526588136334842946965593998212332378439540504813560302050875260805299629278877618289953826017736271836047145480295930852554072357793744205011519375509073010463690999695080114416604846779608437034469240947149284737343198833038451421587514374942325260204807714784055012976410261763209688665742603603906146795261314383036073280491068454179402977005296278564313514655254107435888046212670088976973666548234478265321294177563970506487932041915326137421229938468223672614415561987155460198200812483921722943340144600034157370765619244303201823271355790728326422819118268112908690683028538243420986255893848457963007197286828455580333715168488322688367215927614584201469711329981989708256090029954277467719997198124877527974328746723300589388451295281149978907148107552330092100724849109226765997307231514284796598311125573997715721350092669836017462992639599811182027473128284187325331034203029609298176568132405509390931996707598683700619054342625277135662157288700906384379122247728789802004355606853550067889717510253500447942780250361181411664184139349257678143179277394504838273032299294304892390979150271362245564625376555373861083866232432889463281658142756698418264197529881655951554883059523890044832884689678567911129153779825869000313045072452921010751380828621736273572947848572593617922661947149657167169267321096034838384039483974211682527648415962601583865346529450074119433329422165874313742831077439423930615650715489457202377451038273885580254365742126997537010428797974341171464471845812369244525156839757714625857013835431371543423534480535632887649941961593204904265662630352997602131568113697662334435269050504682388991810249554525155558878380831375614909563274761637822205960556124065757330789344068338833055420830595186111649741922141619786541472384123040889851286228078733730520328437722873914658390293514152488568102317601968656412573131556648553149472803290881854199592997577729673255005921389754327801139281259863478953466783697718815240837044831034406983438620911335866394775448764682172353854455454484825477174364505645069724250492833571297764440754496582514475922700051516790437074634915277260281733560314474530745855359749522905704290406692357690508665061014731248063032302769517783175444368992940927028731505606709768120774574018441190618783612602191454905876408380299252065917257331514962346006350080835289990762610180264058505045400693953295509978502770169120137092112600364830737646426521012019438408216133423566515275833043115167141863738226600244717230470419502372039122454926621306759033798811185218353272466498906501591151042526540521925622607146786236873319135821132227673561865865486352959320225042305152321069459719272591342380765947851635424564680114673117779067697681505150524446780860252060019499286051134650014328668417930837969920058385270880231916502042882076182259388224461186574212649948002471811799825330522389184258298927396994010384394070546871425299802588286326200678083010804581683534756130130013069704667229529232537068631323470263750647937386319445052097256479819124385620030558334750250897397341518834293786567686806710502083761005744411447301989743425435064751129731931128190988423007264986518501746339483497389152915690053912224582741885241361033719307914876275226077785714898563814502673062553724222934220904395912271188732140035183231912920304862397893595699629902899459849641980422693654356258980085220226836120540259428218347851757028369589254623804164306261786632782098254706230404843578016187648753639898527023803167472902698669455632389396134260648265131529806875529747270737631472693316990289418925135206469267206884936643007298952956498798003001113760646426789675565438312330439648865962648179939117000100391871299708748408398663436170732387315343255441827433007667655828122122910563464504673359280853328172747333552234558146392163307407250594944907584677743750159798681813869444805434187357831219788698102902267029434634537986616287173580716591571126152442223083756258815947626212582185876813460345882105368802079030500558118290859513573410123463195815270752391498623826544349219453666320811919542740676698691835937604584212988774206444447243735091489877497335564516505824419329362999229894743104071994954174930278018613023720061976090918836344655813033680171829446730246993829750008444357734582417504156409131005343171820429103911243688763375782315401431580575389469061552940341307529665737211527466195046404234373026652409237276494062404100416131255498859851219729113021081012313161001815097996365172844780326834692852542468504054178419419082245898186578856089215017741741458285698006063353447851340627696936986526983756896079438594704538958914643092971503053042874843248630559742274449646169447869706129726931120844510642368259891782505330407163660901084957310231010947272107143920404841715598736111304266650164090175765384622257609504330403275369885860118284323910577401814213016155837217792543355124055803015109595053326196582466751315156040415258667024797835792748779588391250524896661232880983436682782846142404973960575824081214168875526225243602938396961456871933075653078485340444589984043996347454137998410140699991810436766103939323271808079175705054145704446135283246467048796839380523397835204238491026426359075354678306472763322343411468868572811669491125436436188277552667714629217481781540587731441374747550958362950367488295051552850282333613665709428917836997205845369815758070282286580614712843277001840637093050591579834633109960199584895885960731510116146679104925872381343591621851373211429026771496177000898289689501036254537035955636421251524318796192354429478326841264556843753324416890571119322793138878289125439834590685196657713714590500431759103694740774211772755415648189389737750190746310231820135967455721956675912413375274748779017127511780988769088028804509417281525332356738051831454584831415921540644580390731151441431391798485937139680777349259419724935489791318139132727665387998059826412214198955258549019196456838000465612969046830751382666452237096309917732489256567250973797842534905059733855643857362934081280490662050374585842740070039141815152104767089824024326521093660808589641187235117350546164253139492650554280166652484443348824411465716794348063207774819885481143891920865416312822010595430042004754493703076521278604749466061401528567231381078056953514660914576917805960597025322021233956940036779559289109245416219220361184101600198668730090290095530111194266241642656028846718894946830710956960467649258039128473334336754759716838783194391718450150380664964261348901023190537033745754908615848836491422577830948004816491369593974011018508281271790673013439305175058758210091779643276713223720088335888550679987990990696240691972313716605579459953091333798557395094738637901616096204973820275952333659993670525268862484810093847274967861801184270306162150394789149847759012825212261797725712036645141429603741495990954583072454485147157453903081778438519498491341784396829630578968094700500520482701804973173854565071627271570906216196454643516516705644672989770124485249372633793070291593909437125491402498900668586394145136346395571979430185930531101967884184969593517784936910712393990578282599213038753859935130941715853731846135780421038249448144762439015684585108959800444634736060770097705205096017299048192962110041770913293877771526485779529659193631150315210875651654086089225349601260072159090713786339242158030467424692611496099555828054088604550128871249842920795573121141817400328437897503557108600126068266295995487391735647412163264955117932803726550467814991940114113397472039323411017962178901820840018381763655091321344482826641801814260906578700127718156418968995192220359502838741269136845231583001126220132740771641542653538774519911085834036647637823123459451191248479298267205174153360620956703616123887164527973679148526214832322340392121342585038344517515944978853123458344393240280785750669043006874121057060659891938751305891531132347161178474910331315208201966338877867509730242145053016424326267491345257062220946879947992498270950901907605306177825982311465106298053333654933704310384333198047189530860680855684593866621118576026524254461805899330803473834951360994391575481432363001821504959904672743484920346389532645104719814823665907691777334710564556546890338225460788565670467703856752856943231991152850988110484955211939038025217961071864249028341291168532621853368905966745145362718838169199489587900151333648707173921068964168528186436691017619488807806738740139210009054190112311296573956966046848747015308843787950687294338503070182240864581694571465725882301996596513606768347678561683797414445139040527448719183267463914898603746497368236753872518108094983803887337409450637337996517830926293389667936722400451720325844452781595104404123908819506603090269648299343407548482159543108982977665018465075858005290130067089950711578745037761748291189898736269155173451113459809016931331447180543653791567334360458222775994698548221048682342940448084154851102250021148175834810199097358350165581053946104973385921712716809673577365535441099082367458815018736679590660703094432201234489167975124335504887914662732563656039850302996414584299942017805253525186098716755606519170545567439704583906417344966772817825636021190769391331085933566428099443533498605233826100896253580962783074867411493535136662197070311676037344644522438095837284788640714514093408621965176836715136605333623754259809581112340335494128724762049077094903621591925190957078642569628543407621961253781583255010613632839682013966383303600822879288920516979164687673966603674091662889529310052174895414806973596399389765623176607670886058912995264521572049454776807671083893940572862358633536852367615926536280424159563779179162642028445905883536185826126882800811610653218535185662373725038674497018690299870841315952269578571119172501426334730624344846261566044089656497970640656579727719556703207143061074254591705360754124211325845623872803937506253257217129922189670779639627773427225597698284653899719130127384374654164390408225784353530500125858150919186336455852425872762645712169871984181316562493145982236184370832179427010737953203245852444627965125071491402729298792590443654346600908505377662853443672994005206594187322735072692396277391158473343319060835030364551415770189036699822878685617724923361992623225643210813531931346363780871027765795690696066507251626462459145805960211807258802989574026257975295809408682054565455704283622387346311057760533652737952926630250211582807309691543019866740056826470367926038816377629125086405887382981692697835588247414741490068995523354170103659369703107795727392312040151065795330872591574866367400943796715691732975103439776012602768100038268103660287888397465653550233560542419231817089574316780905368103463564675577784042007598970491428789464320242013113939293296792529284272825396636896135273763251643411910340338826643920188616661733354126017771740255100539628547956692333592223701906983903409080895431940749287853406873634712712261807037556658526411647752876599052230568741655958873134224465275306565045620825351037955329551785865756377618669146628730538401865028062156220925717971163576970587723938536697021692036367916237634732037309439587771579617221010490264705428654559067359286798042306345084929111554829567051883400571451291198601166176552024560453403154691198374676085421346635891387019836045017207272167705371594693942348511359833537825800411859127908721684005929011735152703092875999882625684789617225217446279217837203152509925131188922705595225949445561335676535134106251393050767340991327978115974360845698127288889233376277291296786416410483748906715305424066208109775261763925383465616284126468257209450435513563198113508906004873174643555425753978111307064785759341808750899461359114519974048730716628802787431097643711719374389010096010599542000120398647773857667221171215183866037176687275217730580517658455995597048597635753554687659253551198110101186756114580312363197758311880378738216572261927105786128686473577817643980118568315650480301176730865101992136317396450622560171222124993796379027000884684586456250816828351358218284842754835104314880632155796895288066178555714108563501848292210081421028480359862833967855129440775777280744201089091564590862347906389137774478394650405502440361824638453711018034410472748502657273990625536456287142992983592935157647394305381291847686256483371096801705269364911269891305245584690059498948112292815637958748268648748559962017791463590873393921574129727240634752058518253354164683119734076157997563014287361418655562113098755901153621532133495227671419715584896303429943300949006559038983998353926477802067313871387405851888756412320982216041370509885377093875568797059434418231752741653267689448419831593434128000116538184841590975083356789822084228614387656488327322144762722607327476146283065822677184157968815478037879021610385859375507271841984058582168319651317381155749661354054385931083196186673204440723286069575493636285570961842877445437009968905922256645880653145257904713161336723882983302270688193192945884388789381108209865227537497473421358700377325627879609779161271178121723255381489812450267065478239118508948839459107289309018224682034133336808341905436055559941592936389411103272585581257659934491645352354905554847248508664407703171063282356388735968863252752600652918184952524208265916778938354635432628813112444056915609011049793940149476437854150110596495411053927344807468868680644743204921017194725044533729819980090411442925080185326031304294908099408503046029419219708198180087180111184609455552353489256796704745783401312226702234828114593964958874810394063324501144522067868124904702561830262258088343482959972043582605016583183409446315452409696800547331684135191773650302196354764328845663903052919396819803068815012889958497290733740185138200819966564183511290421638850203257945785783869865164174016226680008815419480883068361000888755391465046918301609653914299845212859812982562607039692073679167412408089700873606953246194898702223360772826007407341045412145989240779114108355493920972733158194561956455261714472577884749565384603921130018561778384762620856244689682019617856191100553437353144983721244721461855622700125409129310333393864640425322257507512693734113393259842866673764623572737968388677094230292994451133723407114266622941461595728098501274718391426861585827086443467291778716667716805660510297781437176752987999100433895158838266746754108357708914454192302185673145176460883322368204111472951906617012517915712720420994806637610655753018680601249216214476913471179862822107338241055415642714945371781241645222226939481294066015230875349997283451639884499648910623223354799657804554458694781478550723034327877700624017752723196719465014257888029626796950617954774970913851796130362373010303012853094584084107194643151351946536052080256768203363610612567112806072230449484497909686504879903895728857570203278007603868209468574369134323024456181983806121102704693243627647935264481824521435367220488953388502578533888073553900167739035721568550960674465495639627907573793832744321674165486146945217023559163253832012829109717406450801895610310527893277655543962470748713817877046003433796642561259728825876056832380116525748765879704840285180353377864476380170191957442760171320065557656009712065493431613999735659609613441399420141281448753737002801087248954694877246453166893705332192612899460226498794511544084014086289006579227424173261568049246627677216325690704412858599425678354753005578116448901867848720692604293279303935711860472309021850418515580214208271183154127466948631457400812768332472713287654264042986814469371853077074147072202540396473680146188444967551131009378690686582459507874798796924531952246445588482122546582910566658090142697654176706974212513866192424289735823831790432513001396331781774641063878757312686165111167229112352479517847407741401474885215968352418094357049495725156933287969806308279018658354367022090031817539261707445854562335413416121984829212174932607275472182538809379305734736740539667728904854495824861364228960977298931778973620631476488990975095847231825103016917680744386882088862144335698631844407618032307697766937187229767208449494028659175598247470628313067760669982597784429610744527975900881543585071104088811770010775911606007237692665570081164789283347114162524841766831003866332606197744889335715068397698531262403777865176980765134384635382329154232674315690063448344829359136715126817014486998135561970355455659285695077845616487199179307333545974201694304220714864834287457857119024659735288643559836133525756274892333473296997326166414557010171888025804167470505411617358280495930699005678039952809980454926547998455635260149195161343266995942160717534819509523463985894002083018140936828830636251929050987815207880904649972881292752648239350651348464396554613290685462635815587817670049325474527630551399045771109828399075153049232929915530166036152259509777451018711363430382464657317123313713669267172284608703975893936578420894239442661567663032405959057733719456965705326569739148979508953323501067210684171983441125084904179007845793270050322682966145830998959309217561604017791581568460053301781412892489727286863403247197584488104105064685436598168200451626916453456308298954020723618160724463423142912808158966943056119996574407093477006075967582378023676127664317154589704687168827009623948095814622607503106679831193339681640319928995738993371833646070305222739638755108599469891931808480628664376920446811997870377708232048965996873627138262963615173834371423123878362517983832520210490451075595959818413712812795385965173522318352473139217295056229639108603360133412376667477630024167992572429540835523204268052286498979851837491874263401870049499338102046174756959364515390470012384732900532738503999536785046271800696818107164529033814853539816409815205093670483904210872576754187367270899160535981319554265447701170733310558309531541661360356613946664041909352786637709125240730671627948733837379335703672086929998545044226304666440293906617893027015368251448224500243156939383967616181117131949891681480784811618358270078775251023746951735923299788349844522130977781299189841531650169497342686468581425654611487596614176248004514265751563742301452891072400913636854269213224150854502454140766866555387728485295076385442425513383387330015494302856630181798072488112473059066618764220480971781008290134323377858296146031313209449867289118920085627281248116204968649530254756234113711769489284025404289279883940809418370499092480525400199231077624576575487786070091220798645013713137957572448351002492820382977791488887606647330580547717451854102494025717014383005588732199120257492019422325106868075473626922492555186145725303710264839825512612412884489488302443052906399506072094833291712234315979580180936948813419903669120274167395166505528981544391743377510062237216897712289661969668510880816346893400747422328446306254078254039467861776296746736872333151549847174891907321263958897503316882314586715909328293382949045059659815026925602182247208112572947206868638126602056159875570377680263990649375459310211175871342407688347315188237361023071022110498852285337971590293840327669199392699010094112295976206130171292529591541412429292541627209437032058751617696356756142143164700312277877934250022275416898081966053067299836027382966334102747141252970411492128836651331932777040422123986176106493634346780076832995675467854474215866513539471144691878316161323658515769241832187531522913766486675269268958016165423873285829518957594763975275669334881378089157965618339877228409547554552044775445541828355162880391220714405093752612639974793090824295602476776930768402914363970334244125966568989183130574907540840554231130341253174398571596597313760192204457281058671646248467396159020352007373193622660195502940610511455880428584601328333064382004782537160605240656232798675488940507740826891430058875356202050048857399026160348831118937274011348556731468940226372161716353643035758567810064214480500378181666109971456338982852912053513975363270086337640510355298757234753849634196556758499191612430576067573885513549105584281551164960745455143600017754123269633204361293687982635521467178373227185915496863172306587335363522947876182493632049880517065836548287646111274553866327496403894781069802742383554233572797412173803406568387358624315578757096980430408867212914533276035057913121415252048326266113244840455322524027951509476207000907743098496459058498688243279523653281573232939325396021484445639700216867159337060551044597716707024365136080330371165499141709698623575282676040357204620035082335746164578721879982299234334657451675371679320330902677648067273022175983326409462397065110535210187927264177505435963446248500239850902234853526321868062746866607100646849646036173542233654737030907323867130345956722102184588952236851742784201875788233143530871095441642149403842905755091199106882937015914920211463922690174512628466265449304899135310887996039838215762232180263631025479547031766645124165090123210133207153390206572647577075345833298770161744199185066329212553842433800347639947998448847274478393429320757715522795224633778413184372628582727358844519200084725316759794974752878343351543680023525891337819670201638625852843741189287831614632762054982205594917157618541586511654962140059226935955316146752681782384916858646699484387936307213495607975810782204711598535532170443358162710657964039944840805970538450169509069997445632516382491586890242429834326590277841026282662065075101213504493166553108267951576655924774041479107105613660189914263675359686123900290667364046441369567136200462616195965134508166343807368657150673252240496229977061004953813021641402507709140918736147908742070321703020274542490270160115424479111874662289007102293187014754920458670914246375764571866876392041246296026395464754613267858304457731461173903876590665853455964384467425628933811541732973823705552090921311989989392014994716353416262811588000179710323107123758610683421735949881002667873014908616054596590185259251935885930388280831447684602005656446484765496892271862903804398907934781026309671522471996780015417086079646405332385104403580703476615154922453547510329877960269341138275641180482555858778337155965577806407731707186505642512812367421789393411183956844781621240359684171912972064628264480287960803132592190537135047968535468527884194514524220089505437256612059125566779428502552105153336854098087225639666533648245400016333630776974013825203295766120420935226549144948164053441210095542002486294914603317267549049162553984900037415858594033178621572811458805024113065303967128377605907454536890427105866508300214034898329158995298515117254947215470878233114956518397275528966983689544435377107806594196420462185279448599191455186678533369641648550384307579090278226555329928913187594364381039909833012766550906998383914071771369360113943562648408606027302164891729281956128065828415224306475681427051487783550842616424085889260819845645147570002665770545448996599153532935412278048367175871234760009951487041018076392858333900237537095595367117677412912568537084892895898234677712884463087940681949664727619809055531030908658634537778885316406232942314025452587026920661226899727861622667017802095581290897563274024925290511562167937959574112621906441525747607824110760726411646303695406546704383552749516728740336259737354312830590527577447804332606082029308581526515382945388885201601646014372633811370953748650264125251891617295229905292062616436690390706427528691193890589487282248319541855425706742070199582213926702090236023728999799139058327253458022192135157266812588088890701066140284392435113338841314354299371383527752024928184215174933708634526077946534608419716541001735928041719298566949326600507292175384523984219291293516120589565367457968908841990831186231516696902763698342614703229757171711671133930312025651425806781237498653635829550758799533488229759980132585051510102244354839942166248672535980185749811839465092052492785073390915839099220049922590543935948904138885378333309327800414616517345064549726151481632399043971242924675298284728739364012081860897187295806614269900802996864063039358671824652116216569429169526615697279752714667018233328932719858055986104611448388277522113178494784784461212705374348952805481644729551055104778077668063621100253779361965096965981272551552925195980006363301015060364923876555429457259744506728309447058787603016345317454416201965018411172610621927071824464267018079805699284383944393825136892894948974452594114651488624471032918610372573082464928491700058386474435459543636195842980546836736481336641397867863579066992344619753974142550831889307966890987499705593827675391470267830545348304012300239185118400155602050836636356766966559537503042138654935619088860442769317056208411958002955692521372406723616888601997661040360295878546986848285157583021756377196058300983888895192954430465269306884108577750930996718732010787304003918417998648458333055944681347686461638392832852800257666047283645102340168246493150709617504005916204185636667041805162402076538767807911739248705418940524766784689508089587467438527155184876676915475829583969371269120245293277071051796157410887990598765487035724669688694083569911326345623289886772290598520952926302706149482756922202801678631622750542205575006790664734667028696365010190354530745002122572051390173978710548888826910963363198245969348282523793450567208978605749005699978610725453528458484784713903400014667794581269871861724291208888381829288773557179896742551538123457505153662928843682497443722876288865966523339717669994798676456615009494054809887028881183637081148213044917740734466856326101893412621190015184148776075014577758156377193273778006821070034218775059414303312538208270676416117780128583452256804254446599237876464414489646554943385308067895867797061519726089834010226497285901769419055894313988607525846734692013662116151627646701354761083498271755547940148567323996505910591259512679650768390372870674637852576552992758140353410037033431461489440760937786244580917830388231027012882616291890976835502188742419522031992889433508717510579445521620207964105236124629344019332329335364160147209051686713814118014382987845371320746558799677838059904087595970602483303023560763451856237526245609288227792374472529312408121636661444815454938276473351657976565353004080824875579605589697161709360766436527301155766815258770856002968191747619693320814402679720019213640989815189940431994271392329906807768373498601613230090778875298592429101487390796955470746374002188127582456507017276921518442892931775952184942542922896453922348943094143656789821840150962850551781554077876172235524933770696744429882585687391512885248650644613268500268853663457851753331773846024314997109066958915221833447307640056108291080315629921073642596917763571369582115174917221442564132443847711795037422126334522503340662198361406842357421290616694124048098609009984981420625243471278895385317998020485573716714735146941567072568694794439601734073019015225668627512556065755552157177627971001938854552968886810687532067935270056757573705573966794983284084924991837949370239347230452263756192318496686798461223038540208691199051195084586808947273810521470599461390416663702063300996902632132148782881629792552077276955740959583430124751560228773249124901818352515788611527139527782844096607039135927412696167924350450566965779328251989058947292556239515584066785997708501778551506814707284704305528186109751596647869213572257794500417132776513656719074818361785470392891765552277345531884010897395453679559930933130430535820034493301961847300101851277210135535486052042656905405428380980238850185688623592140483922756417028108371831818655624721419626658322309821111072871726466210251706718634755837322847433656469097171887682120410896315028221808098426477085628043245504349701292212938276809499422867329690401947021163985997505186096516710535681142880918695568342240406579452400887501125835991188405100712969488114390274110467032638842951310678440488355152084146106757055861408546567139596993864302773182904866291172869643024063529439336725630842966488289335239467120031932393776578597585051385329837865390345872544350950256681577076019940831553091432042796192862427398259056496047039227899079952243653493713914687758718222753285871497881786682328798559208767195070964837574038200003304574140523256383691894219737575188386514788547868092256686728847045966919651229439628833317996989777065323795262983372305665662849161870319685097719384194110698070949618771827999015661416260920676450162315850025757307613435741917932002173060144886824182253254986195578819239148318047006348922101234002938583365369249232292250632064464179549797073074317751168473642964497682803274216105416377284895431606668311082132807700825874709502888721779395070059756588853066456474194611947931859746408138183669756054505204834744286297593516888575262082931894780379259029787987182768397753872160419515494307843309780528360013254796060756500416009205526499336338547895838074834287189857864226832155303771444236484195446459147102200556205142565369766583209252182109663765646888655362856789761312613436479583960030528301109676937567332355171017659311989148295017428438409311048584224589381553833845002688681459613989936400447895862281628301101378087924081612439181266134595734381636158080175120489092196382823669292639985643874700542721124108124261834398021139852017474143812815515116541363996307659188420345112482793165814265963523454926366919325692111449283091640997473576670514600764458476091213327902820593221359733512797511727476221406816327601193466762577071579000196591247204338195949537084713618299900613506293022611636139184319413578898766193911568486927275899634859086070899953153289569373294834988426161908938728606798954265330774894750989006099271946514029994598307114314589230578689481815157086010544408855687594948803866587466244671878746914967228022122705952838730200667589390115254266270851552928467470855283316622450935469788372984164884799654135141041692996611802746845857213595791062567526151368801624187370949663641464854006223999465903747054176320731048621367763153425679790881748941135258063237170753757975090851700623469404379547052356959804268214095023316711377211858910180041678995266011624669441877911431275995886071943574522247463539833764197193789633778568882241782417319262087752563145228716649153907926253915446670838672825113335486971693678296541521755381252403494538483637389175660812809536732166211518776153967577827895565206273800283710396387942780418228859002492261815444453970758241626428233909252264121462717816731177959120692077698439458093052241699522725126078737837321914641998602063597623886271867951974215523136541036070460009551602575483153971444796258970423390946623141414636659972627138775401166162859757214974591210059403265929092114523774245901327721455100268789274260310419899898213546724099322507092000313821304863905624014070887566695256166222986209690092116762721117913949154816147247808455300144584574914036780321719395324837573769867279099868850294307393241359971577980765419473860270788114030190341032064409520929391875551818179209673943867915367163970718409940557365488586484166716017048931713395467296425222720344000749303595992464689688502610358864779858065992642555938181781437661372628767627572164174308005155393453505327367113030060109607325780997127663735426153848935079288474828776420927137016233578684332752209380550282895521440481706123488096736890631513256571409541551747384745096700547959966890498096301734001394100985995800850012901399028911592129976299891558084439381402681152213701837001306255226251978075464684380425256810281076039149130544101428734859788890148771567731745751422132553798998412711055140475635544747679234567468219314002704660446276130920080394725390658004394287707549869318934406557410654736919505075596205283434791365766328399524499077524613313449277559580647836736417591837727974326969490971820564079625581123526769865371588575427111611113350873901251679184816362394367789442975898366528898859177530499085594155016592090583065578659619350767753465078455290005421032216748256122619181914835157378150186797440430653469521337426544877996057543549825461212181627841983085265402902909130691334558660165604473127348593797923486074424425299292016080778372163018991756368393156001336440965931483426910592701816295977806704582020643427217422835273809748326618479593143568594711515426860142298928275831990085146771156093161947372841166917845211049394999707399259473453810114716001818510656786045137973037597612731259564178708532415477098219413717234526408087757807563875783943874118638388590158747323587881264927569909708572509581553231840187538609745087683946635703504082387484322463870465592629048138980328810120772929974010608478763484121050403099811484382219029339073449500335998331004247780772126155145285026508711952210099012361692850577591086430856070059186368779041423939233933098406387450336609470901919927574662089471051500876510842179040341189028155551342093292962968768029434728072056099903399630108991403968973773234629921835924443888310245210167362158392022156741172534071381342433121706397401125720168452076442617717736154689468416666588213421516681710027381054536978004418705492361721428260873672836148553014169581959850753307993552759096474254451235640700621185743771723283270367967289677438590796531439577865311733747341981905036996406776614551538175290051079366866161045715367296778963628075982118373186556582205227900841378592811366553178439313414283812212762298686219824762691279381847422382640693345702514606053959376704123953938394353142987649472197264179559994828172103915767648611831778598816764802722522807344142012761153933243952932381298076566832163128899828703255772715597901525778090279349272956246218672408005139002994009143320577504944339372091578207515107167276160253686773248089870549739518678367698557281427438771299335144925748853646240455406528320054281441151085904980027297720502085458391222136530937968046422457496502330837534551284202127080218304126986132746872146216817418365386694404390389499887160917792746548337379769204365338668907144923276848737655482656019175245409702437605435879623525547740719011733536130741657412474455082223901018798418729416499338239493432865847192330356851665182470897359986206678878602974325888521212351495910865326702630681336446460211554731088704649896318622155383190228377871629856429764136853746453426189008512519700718720048133873815359875791787143876973154278502778979997663440957309935210107680038592475631050558039197449799824005135896743990469930408602735347598700167920617794893938708836176373465496822888000543941165269541536436086941868892952439343039015616791830853705051547535278908721814813740940358672599097863173628014776662150728558077801807444638874952980692536602609290067582850159763288712474942258289237108620784398945159371089635892517356899736452049789610002520202536228342021027340754968746369535530971644374326082019588730804563810509088366826248392999893169241479446068332298500531855652311396047350334046105264781888210314279479289542039657133170227947410742271758009620031439792433418337915009590826634305494238568841876561594945534193428718512902168201969375073457881262948113282213130133966209854133688745577030102660970271318507784554381982753211806196921508476490239209407549535173155456094213839448508588943308421020609171691887781547527393140741744372568220678898982463376978699984731838519512283732509004304120119526225971389807800552565374981608932799692224948213743948747827079394772174439921089962695739114332983270898241878505973097906578809176092634997066100089709839863154060126607240237582949145650715781787971599961370119804030382944463506295286428039241404560339014427477891139406143187165051357836535152897537647048282781471676198467485162074594282561403008416847233447222025260405761613715838359239271140182465538710271877201876607759286281637935325798198660567333449206985983784740626236475212924828031568131728775479237931630716290739383590285465222828533567978805751722303708230491826935816034545129286448422620115125068094969308493242869890897249387688059281329170428446755191064995876249264907300293072308997979068087186060218606090222181055886586628065693294406853061503311407438017225285831016724989058868706323369037293977351169459518924659915556595787293616609443661423817001997785981105563280194112221303797729136152881132784350332971353749564509008675826232752454257525961607932229487140184811226033052405986765189072328900982080076100213359469998227374456708045098258626764383310580026243289183428413640764458533082834841895403584689623217318833554160994180301048125870530016830270221449139513773021288769405543556046088290016045460241229180363405582092182380313546363096490237828566543468910924180158668124155362133803874422305890114469223262950433516119058367270698100786128777072336852226166560817226121493733951073369500080482131099712305398723182108405748328405854244518398203484962316169176997797799967198742350146886889736300283542082020590931863506213251840206367292130165348903656924214819984348512366831717730468682024715128503986262193609092580890533736871162909816179565574058984043590836720344765431689378869458562382107391037625739174959943975327394990704823487425625339327144379780482490207930923424342388872172962084977079472801594522040567292603191525181020182211369309938868150962368381862047243229173470033235639572240485598002698449188387484320840513486500445719082245603660492275510755884751239916295991436316088108321508887485999220375709174507816545578311658595282541757970927293064420749903888499817779032867651257071271503262730202691799154039473483672698937626336667334540300381669678699469653067156574735590732596826473820651623129231030275125331053737100338600022898466678058722465335056290000268021237603464278012322700729878048095294408918768979821900583653069820746548251594390211574905028504806333932949129021748455746129571092865019854497378448443505683294764678559054826857176076001097962519015535398218196648597409612893730952302226105834382193233244897753376729113163085163309769965924544033905923045360085327834677082696503260469322655170020160950582484919528301199710387390248751751763659606895535417416437497075588623453217216620160388026105531198185301571571974082719192947560050428077587004043120279872853047476196509458041380825188784166460077564559800795242447850658149176866314293677446947814917290338682460021234657419521959377233813987990333285673828004465039267557124233729343733809650375153296946232645904904603158819899942998863456638888202324021338123034914070947385918665519167644382755036396032256454707643616789598849308282436946817242471774543308374499869655346592176835711151315173941271842805562381655148325678193531202448415421876875323278091718581791834350108892265011508689460531231479455292300535726945026243913556160507837436059706582322758864507611930724430028864658280555911450335061743198292938269677032085113657862249752553018599995236382873871285372430352681850674129855736371966550899379070315060627544237034346182645675693392630916809675959963603699608547822618334241508552381638981933281207316404780972103984331213494713176822874310411524032028224867751417079843186643000573054390654771620718388640826928345846866136215908361788229611719139405722718577686281919162606270191871263422477952483727589386409854942823655980316146286602855939449690209574941849300625070664673732566130042082483931736120337100801229566672204709461475981150623873839820274262604464510887117145496367948871510491131589016433850810826425269860663815695792071683470411304886948835727318464482176871119738923851249077533536996489060584907279815082545914079226951984299539353135744991408589917180394834969230598086751235610583599376692647748558922878133625532928228327456048829735413686049537692627677945251555265743267430878044091763272508854674716052230721269123086113786088096983341648286265230940202892779126451978453809611253520527770885121484168452853966073037406938170124276292615964362841614273987313463975859902270251773603282059387308816551905115177816358736240479376726029796534529805181432033433851663136013280939721090021551957011734473353227005630403308426428335909520779025236766428280021153922728129747838895448860983346062664672291670388896513177719239829470140526830969904575400348271332585462862235916894007228258492127008742477150459388286233037449229854479723060198131173311909050058530268233233723803806160552229490598652139567592126553959552573897341392510769062917816233517413837911286162556035087177039010796961240979515028145804330436912027697247748404817126591943676298003337061475765062408661288319933533422067640368440860885593128360030990304557329015479059042559804520469174572287368890703934779843310083792432709183073198560932274560843424334170301763296412644964400892852027329778448061375318180760358819518532569869632705708081795165024302043783903496988821350757762820264563925431403533779794083460656760132978229768338960505149675107702070536943462067284659307605996378068845017810355966174923899316970680080220385051434348712202007917208260612303592115516384681446422728884130950329568571382113482221425818006306654895600980069649161086196973582025906008601417177073501728456947355354725670730962223654923827654058743078059496737219233113354044066620179524467649042420677331093231064914473647938879072978246653400680327598954994849015389263029866684915879300711331816710461429884562098285818892874316583094403525953846547382814295736026429535272488861269289070920328089331839578011125137417579294177691690228540230147045754451240604717371846198190110483978063224615003651178303875160140121252464544759334359209420953241421426973237804100866535882335865955705342192455763270647582085970397873790165815012352578522217382959382713656726460086888192576673909158808706824637818810721367458294829855563307589093564911702090780911688214088905481221294859150536224750539353879065576910530856159488727503591037760373410587672216618000195242855236545189958219591106845478591706640170049449697285989050981680335520164992429522323952570941926032927986152284314176752066330616601491543570967926113359853973707726574815211790578879962503923033572680853539725778915664741518440431802930826857155909541148008732034105411765728591819558143265352969052228028432530762541606103495083025703105613301363737396391893846577250034863037782843691745393265463113438862294741358232828706621926761413781905010834148487201922292467183190891518512733670336080722851881342429881533354186217899620598425942257282946320016029078110099030471129481813115961722178494200458488403287625890135496425688947933293010181643301242512852420605038403081666923101385628313315491518952544057377754452436422422169040151063916087569927652742054718246707232978832266354653940645423308685371156662133760039865432595105800650290996120887462055599255859154252944316908351601076993943035852023738367895719531112399253410833008962332054653567778648297918246116081573104182627491030299661943807557779979248652289309884452856147726194113428526522636656463081785955102654236234766133329036717184571348686683367273182735802523799535872828511027412201465489220807493177692248843821349112238066183107994550921336992717022019214281892510755906174389702166460774310907800930890181420377718645387754202628640010736214249618691242518929635032663071833454611933746922444901540263967318897203768385081297853959167254922746650993014486274974461457183630159911827092351740120948453938557125664555389001232353642400880907405551747439590073964986418185424767831400574041763973107578937043387632591723880167777960190875900754378981877802654464664562094247669375392267259975756847211776994646316603096226881409458392947524204566669701794647650493074132593976158810034665459332208876050358723943238893449399273369140377998486769395663541361841945850847720051096947832263587895819260298857531464349664463127600433236087452110519357811135880222233861642100770893898311287576679724669070289420011239134489923021677490474391685039737438264810251118339638790790579314003201262717794905716562314340670508297325952613924437348689739591953891235635982257437480725424120132390227723431375326407012594151882903578157844761468009599126216393476774756109935670132448203677111443201461502791525678939698053381189597192175830562378663020245918537239483458466383872278000580713981897158156294748286099221673046716421184720542051894633516495638528441529956469928765018748223415786860739254090816736395444637915436165438576181607282890313854194588863526792892015323434996033610169802335474795698285593162897522166871312888215009023657087734157463225536857745205098117618393638844871702459598277923913129666164575022321274863729633634312080941536763307447735136057936718111839846899047573065789312553464771012981764027472500025365581188345135287636679512511016670903865691040236879429487786297504332906004466707294171223078262691092079385764739801135114579135250375146734247555743747539262401367731185372480392380901750231766894100137895858119500694415938727713820289785339780904897635779470981947818830827520841241551022832089663264392470310943441449107073478448441957075219405439258919595388263303725303278928979982459360766123384723784805449496742205382334459126770974454498008765308392239745738183851391135828106300016946237640668554118291448387135371467003473651510887859376866830016645213215852448698801443015837590116370639714750745027350367681701451931144408951175471837961651430539438086674147315768723508395711943843084719981296028659210791668082997092072012985247988675130645112206122599578904613976806290774364515922476510121272138035893761184428118071383499509258482010424938963563059988189642203322396373224742280599866492698360229592279471692330261634011269431996445409059169625190750365356165141122197107799613180902734825255243137140428142344531656798929601618687869474686294809930206901186593259738084244020514606716536234481623940151825847610999999398468986738950682420684216238788355618461282511650105720666084694654005630480291730309913526057504323743940999012078447701802101404989021818462357749879415209106512380772779561021998816664731195817650195538929527343141196503148392992487302920120856272869338641226105868075714112572559713521970078692269817346370378769988355201598125113790260322262070053584289762818509744523777143743886484775079315904739428967996432835719680419946286487461876121174112173671217290170928011299077212863180097815483932708367098772556699200705860541211166898974943277739083270260825134688350644471031493526004352024809395479425052666171319102022281351185093716943204406356412121274014582942361634492886168785809787855565315990397637996471833198246866456954827289493382826755253436112459490339935391658909530842023220207607300649930609692546158349898163588682789672415755744256322956483783244265785547162962787228036565631812002532298685928046583884166940414399098034872036081535053084759538738757030563294814755204800177121641879933881845489881274676999028832307387809060873616995443646470025855051502615872030530801199549114226447750636557150914761357381767457133932043462965473702649510007799919091697153012615297526574149552038200173447975095928400375558452900186257677767109856492369093521962175314359217384784894272167610467913289310990310703711163494807424513959266713552874285022381342107411385685554749371654678292847214491297765781572563296487388792623342785432202482850937265358672478942384961446561673425398713066788677808436414136533023370154471398405490970621218901441811294659656666968380092183462749495719319028519392287482025219175528598216671644652305004002602950223876886487404615274192338250134751967056255168860242613471460420645729308817293081570638467394798923439469761344980643008830379626088311842198428672977017573750623682332927520929193213731119707471316278415436936450037067702755342025404359220413386049495007944775588198031672730058773796006652984920329492130421307455284003885434951808707350951802045926232811043965990371812733810597397962653059048304991776695354093738688483137581486103147240482725706417842102501036874592550523556687962485696274246432283268655222370663636334477813132140840047507350092317744408600435660958886453917146880954321540421250968238825108715659055583263220422761272419231213310950041392437898202992424314397972659508961115269491371083318043454277206370924028684547136648019592830566753248144124283174428134703752259377369153820302198005399749015106272726622135447531435455014939901220523078830432424130957742152932179464785761199554294959302147971113768269408364881541285139735848940646847442383094761282279014984173207482802286433066193551402831532497830272448238096375801286502793428338856654753957600239479648274382831842322811553009414397909985249533003187952676757496942824250571098336123660834615635003073120695125594017222847945649434083723430820512893039087500650789819181147105633147053508280196485666102955753838353027472187739765112143473029762275426253362232877717962292109967882811219245904600377222950632849273138061975893104994645464624759564717380860729345400103565053240029602746061731854922412105726473699610503199998104691743671729235577674263220328407458331205786549900369851986341393510841286971871564280023847480035518474128769701994824701437097685307493618340150609859215672164371128082757306680321643162393908902784119468127582190133509368267407058967210039458352429806437772233486002577137040038218204896791690679365836269136607634853885337029736763835364987374168482485502064570654756065533798130620380823436120006725255742730412236931346283488891273071738467844713905511914764397879206352090830647185159907961711020703392406116572868921962962504483757189332308339552400593064055848378114838023573508543053890018527403307698751257205487789036260548236045828140101800219746270875768449095610526019023423806333153782834407019497377084792576270001984262329126592433843929796086825425242103759371426566647661179684399942710702557476210867651858051462978105863427368936549124023659757957188205775508191253622546893633931501364530254286039223741656047367488460949337354214868592551418763253349130441793086545149553148847140375729753100591567044868216087470492798653858928751831961791997537650067920448537169611927410475685162337031026927703117277084888130479845373449685803723986897134237891450371309871108109502206878612147045158089824380812263992178157301669432436584253781526246804017908933584197826430364477923630700371601728026673191173908764156798209251126513159509397760603921683974389959859928631850303950243838012583548310049234690939866493646426686864987322725650546621645209639403469568899670102882576708327114907051208008849398772521845630743542801599404068157135522064881971655086967005617740015814630403405759595709362823834977791044853511013098633668370788909582183125874821398454959961185534281932324505732518152805651923371168375828611186365953414380624299872721687785374796945177331367665527443649562629643678006410536447129799112906174227575284174608316777746822925383900985274746000895592964842246737467132669651177682942298981673740222007216001820178398576627818641020134595909982041895426370254127223188295966521366247009473797981568798973726642314934254367031679013232699472724823303071530372654119789292894872330716407485533227891833069422561384304647963350499780781535280353355198908621745880987173913592263608179801477317156139737588134830687311184507285488752709951215346377104045189027608072899626828224642051961129378398313263043285559993596099912459708177296817054756120972352098127284498448194694145477060135254156777699135759391777483778906485667402815589686356936693830743053527348052243671232450736997772423057672656914101722645640815944360677039238866694583015970123844159662258627115059381269700872821995970885051163826605594455122544816886679446950319198944745818729178537482143382492896972297870479013381515704687584452466742013268549761060836023994189513842581327083253447377741709110218486795885172651121002803872486109305612565255348230304753692054507122000628541283428350396103307259870525555920618512494833668591060869980310555734038217346669871873213892502390147117512666090942465787678391418647564320056709056560298339745569207818985392319589896613192098858401899924409147460762091559814688332524588022133951398149371471083272407819099514392712799910191324029076017391915890791994321120873894512100462005201843317533237850345988707593269083687442822615663308332030330606690376256550127211172513262215454096680498581618796702993310243939886441733209264499493616517154947042670918196642320621997934025295233020855954821998184817459438506982037855152332077153104341725992429633937822995095631873497844344899470414134533325623636868424871439120586754636957168937447420505863324423353259850057924349908518503790100543625084611982762170499291750870677107258479100395813390997327876041145350419219417683366418740086403783666928429611891804213294257151418442460740487911056805011859460746308481813371156060078690385567365161858557942018843924173645311039575462928306748904354599117290141838664154333599806523821294359823217584989461925303991477132266439762503813416393630648601216689361092865794448689340544617279696438212775996033088870088602938793732039905280582503209680814302568658079452867459241019993444116338787302969271087361785636135429623339261565219128826973128516263451571946621217923416607627776687383992980577146951165599437830873933552483618751617803505649863120289487336316524198370193915228173087054855089972647290290290605776052347218278108327161987814468133127999676401789287568768973676817074192456672730302536232349730777517141956093843059379206096917903520174715520808956904431302142657537066812659709599929640761186899972369061745610747722347144010806737212966836477967802274615839107920839425987240205615733693742081876743335180434101716101250051046359024200182929673602095653621741372916780952756376313056740061496692740033095605704801519377971838931128578574703496872531822905244250358995259256513480408026051343751857364837345209820066480831458910091185457018824937730611042540099186165067797135151894432211437656913330121638222959798141772510298863388387450575343690679883325898101194614086578119580126798402480556513246796368266541598547952304310868058053009310901170030296174517143595757012470967843983485030109349622767490124707648845663683299004716003416884916755354084946132732483908459155975752982481280207889501794873569672324862960863106259153290275797618308666193058913148669607268992820181427481570894389411656076680893658288408656944254895418681250691356642582925100349967547405641540143756199086737075730642634800578398424047115159066921004713704132853343028166201431616473299880040374420510987364074065640178067747924215290255408930522473028593550724211127448655571466150029074611533788475130575315247538724517322530917423177321189742820976621527290415317398504380578864481896627866224805944066550889779231251453865574331317833649645216002684009397890947490935098202995137084314871735961661770037430612070085595344022813826218642278928816646769923363552787025883911132288201975063362168689150992728590602541106655573160587548706626568743507916449018366416414952444427160990450595787380994590893687711657166113786410077993432523478700344523028983776512818757770672071984248883305597740564382518791408217156441125216289032790081174083529180266413678778581621605268246887592342987822467959428824670694062277317704131442519719444290115403295416043963774827606534472417412289399171959441394726896371031596170492988769503626757039766745384226579252247925460170477374302933090922218688949530293943010471380080260312898502485549189003827486904994663034124743093019362672908271243960442568634568511359709066039554958253274735279250145352648290269224960550712492690077422724845343494559536959072774424691147724461551725786200692663717274543204069455230938636233208622247530679208817122147606320887770370015914628015738250842762928424662158538766168944719854114752741845965478438165822726352528345050352591525778307022373007613145094205542073467825231485422561798085285898842637156561956814363945400877429893875773368537510069795944362622042821418939218690226532069886892546137853469875465304165295708614635774134828901501360317670371067586260118023387852124375591269947843129415919733737535246526046482679121534815794813712431184519748764505912194785659865329805232093264872993079237271051563739517781574140627911113858196409761365476039445905124020993281379021223996533779537222176268807497866770134110722188836126818532242389376233185796861789213335396682542114475957945112646906881555872474416370452799117505806315002398961818540607480401019998719199887584472171644107969077936233053055199671508756941442585029611865742835430180322146684002389376677145176095904744108957600081035483833520222399730813249998726340843515755315040945027785622905091626368874858465943103362053070852472321568563944439640978886062684859975792454109826751179809227367637868227290012160216776095606697041929694507766144895213650101465939390975388481187706117367097038277611493850376473595149431562773136409329953202982117992588741867467016430264751412492520987918389335203475784453197871333217108458673097043461192132714585874225088948826895938298660747362087966463486218470244862870490890000449179015432203111040705020690296438100469324987523264506442070950427920888717071895375386246722161593479883767254649872900562321782200256723438592417376225868398845914814310926595978078844840892261586626428637934116130536255087630302479644906936120536866368022335827737037969826120838495451237633109197357905216384043955781242714781513813635302006751868094318596690320472391748606053440504567429363971762335932416737382112089467510885326230512478615047314233459164886327890179501826829292906546808506230218540018958078399133753660547554070901129201563261728323454374485355397267694329962352281841854905746036410314110000144566275545984946305018349981965017346906333769393144449602700465644075834428798984586631742043008867003099146443249842051404772773948737376876542574229165873756590419286724213069170488180166132841308601918350399090294316118151300602888704760215847730326159554576082343669222092011117625515113227691235219268677606569828495478711729270901602554495904562475873555393539385513892043720240181220365432390893767012438173136106901105520273950890315767223597454824644516385018353313555081244688282762709214542578967392073421594943214708231602711126519199949405629881291311490959439949382256742890343992939760842240834001780703618697916510881930105181982253855206381800097287500680242663646281298112921055346082294238603747824514980451387406522449378607602297075588595394134476585329903813622080098857525811034748389197655431183634755335654825460502177207764356572270044569365626618192333539416069713081888028928980304932068474518135080969934470813069161808818096642614874655352201954502036897034118125430763165971650295916149255751291610272731458502581786086798712575360003698819462243135188451881743915255415225327613056747399156137881622991041180555523374077797683650013071640995284442152696740194906023883905525275581997691287074700493176840787356593919838597406350030354539628695182199257316808617658982038646486797374642159912061907702258418035770463874089055295572463859027304725714783707673807281799509849105000244523737747027562158422870969532629011267715494364161541530941165454539577045595378854401994144819310378617097480609649161014315993402110396750790919257318396111886061921902830133075709281588341897796009328639342619632392018050773790507876788314250842296334104175053735259382528191141768114511834995239790075770627523682295056438658401364631792610576150838450253503807658729902673934255544231245013280664398244652988066129160271098710426275292495917998950721476181973975314503020577490271495776987096027647249439448150973037327093855885739864187124812295664055597077617796417435702702501546735106502802909458108730441815193850344357042735360326204386658017594775834616532991430716116017472741643226202906856700724886591401738415653853835411619474112832902395877967269520425026955729269338973588122686540777844898552883415864969196379335823145881664664175824695975777136047435405057933409418337554209400492205833941497422882316651183123907270101095815680214586045912250185367471019467692220682350253759383949893491193666628128514834307297709076210803255219123722517252083549528105415594361977610156017523893619280121745651931393172658531077772036505093665443479833229805337058707022802024937647143279855973988004746649551212933013254575653679140126463035967324397909650590998053329476725609452397518195751028038626029782694298604913411464879730265088231768336949078159090310696206612764004875054354430775397925004500324653845337959351908425413312018657251772912950024009993188538703798303161160738090554652762713869802324669641870180339113184355844508231050887898609341210513295417834092264440268330588696526810507150960921567243985601796579561865778005100546413877169971957007494360922173307449179483975488847091211458735762116447111165069562154361998318227580584339609391960487663484969907023678752949949480875953381266411007482853174327195437202030732628460633510261750764247865015714998743262266202362429594786402507089725810723274139024029232532714230854505309438200696606131455737550570348527299295236368331646963842569469191003037168107149923608348145726323044851326509209959706342668144999662904058833369185272597680774461373253275773396435235608948887611077007576339417974019851321994600180088114983661942958174626209885503182780222275247020443090485268931231511071147118498941303759530455119525683067551799534330808862671176181408107911995668872577245506311356462919528131711268379917171747929220085248579098621181761779988524701505907043530947851917562955054140329667766704169039737258274208288300444671419685294217193860651818755735896752728000023330748415068834107496368992775001754095614566381681929296623021260756097003130036560963071556793213879835812472311773706849450206763329938937844621148035108218974824993322967673746482795735118184736826227375485958918514513051329685301310987573703016806534377386449930210545029217117307808515409412425319893245673608474969141767215119389040929778864676267915618511236372440163070095638898195617401456398766812203770253945858481023366195405754312651133493238271533193074724692034362728337008194110200304670213534086443012791714829839953519696786545976507707924675421820465592182239060769463596619415960050477990174898852744701404307910521915547371634707599529688350359293467058302409452815313603916886162734144507144916342456088781715095013441301468147997111612227364695018904413208926239882713223626587107643283736125753152538511209477373526856153359608567411287458230972972473356961145505171235728044184435646513813990952008666058260051812263750618692421004304816334025440346792487982990792796288346357300353149327701310387376154480462542491478131781245513961303636801979788773168291252826143408354804959165710675333220270876587755059256050166750990029455300305539148094163733521215229054022247435391311390926318772021248113043489570004209070078205126124972485885388584010665063760907379275389463765315883720656712244953790065022055968622151825141074146141931090078943712277882156744106596947776450259731395827026489849931835655961676676398733425333730190009728183192304487873655404981765498487094758954457244019767707951599381934510727578639409859694270406988283515394673145490302601412171329964344132580830137175430620924569865197738501816669545714998692519369521087196997034967764275901504856221099874701428187206778116763055511901835564496453145917251373958047814292225945923257111226060385159887825357319074433503774895581851771436348795707883133601799826471072661469307727361050143473922476984688915075589750194060158477452458659243426475370078739661543934715967363475924804459907583676991419219195498225917115881560615549493356121373363909165233147148927998624812359817996756542077761593776723412110640303202981080592564040127486657586356217162603338784170407306422275785408027113990768896837393293242294040570722278361436922353587101323318046534026786047970432143956882376307075206278584026494763621866382548240632426537139305334134087038535041484267214711251016210904321812074111785813375826523178046616575102202124217287331105834771379986804944250335521113880586861270223886252011920360422637761895505565818895492369770901938172482970664315751499216575194713006862239915900173326268789652033912687778785989509594873178026168961610266055565057211415396206162924629073643544914880621587994541533396937866263398094297281033408220450869497180678535693552518071485439708715476877437848137765663648392598086981663183882484442394967221265686246849035851813210266097404783777181119504341489360981200035582835022163517643402033072565093197605614382955399241034607835040837441103810842207333603547552148253006987600168387687384190567926227982958481483105402759498046624316165041770546639367478186451012664754586986349981206825487213269586281372272308164997030284510830472476127901461054072766841424492928334201375253681884023759739147464722783784028994129722104752192619466489941442873803355659886519526030163510213299656578946943073151059824930936000299019831594367917091976835037717313996970275835325054821706716420472009021333834967832878226578851075876438606962241190932646713535378633455945831740944516156933544628849279069869470593937998320914370567499939622118139721636436105142099772689105148541630008672290082687740836388762580556988295004417595819041594916921401419108463692243030922399076410049455120839709660784723202471890963594055736627940988568910656508567146700029008452777686453942227405790383373333084456265935358949192024574954667458796505841536053418272865906598868964378986490364459501678048762417140864863214012926951912411402201188749340456801976516790272891376883971650751022179731797396353942446014271471254252715364073643674216304273222424518189019363213753294862956214879690577988523579472961818342229671900733531984885932142541251479251069020423572414095853899089698613626592375734311669413788169062399677790401925193504634584037680018099777911141584100862181112591711560702644759400012182303843292977608506486714794672794985900030869483021222801424576726479018765180131524215867145352937182802831199606597236025142885429165305974005084877777499568854700861102326167998131908087653470460540993463564483809271157928954790222458906283753014147940283947819984211566396060867875331093325509533284598787255383321969917236513305871522734814912899473401452702940859635970876323690131834481221519363415163261208666394328457566695014502496376379763845716199967781287376167374875822563721819136520807623426254550401557079768687519236080214913229185141918232153763611990107584973221167947632698558698025771939636788740999953390572419113413939583744600264334993447420704745846523874632812265937991390647753228829565999081304385127047498714528142110477633738682973495283770791166364161821938755145123712633906053725179247131802225741764907534525418927262322218353355074006275110632717273450758634662312783917762590166083551168407375297545698049874494085697085174062989380967951969723879947679031261529427969660735238458657517048553765665537287326313273807371011428435239590585467028487520557458734098758940303809987198020062420721069406187730442268541954278006729342260924027226726671909302121465071269846273203581606105113461746450012802518007477499281568371021633823242588642499542694030848372716040001287185959417396277771961105955071211182384049139548590139577847180713624537191000926093525479571385468835102563049853689655414314457242336247815389960026971326898612793182194394034317489715555441141052296515718690178030095831296476242642559165237058916528414590127283068017997836219482688993774661595484574882322005459895685579863497386602409709611005517110070513341921204266589698533281405641721824363128936846504869677140826486353004389894006355772024874261312190459885183183325994420703735492031056344453405891031520470390926311490321693400397316633846622306623805804106281576862624789422082203262751460335441189606124537518031524864111521227287076506923867679208599664007980618007755480156804396580166118542264779661305421939700734692056257508599081520531841873888955437891461583076287527399521980986464401969827701877803099421056096351325420982844745465914711146515502712449371705853077975447243481019377995571595535530615661160782391240559267854997588446381297980426737642200623916411124723586635478395155486347442575276094765997399449974859575568733409997086086518840223679147729962044330799636270363078876648250825663706855182976248044186880983921629870243345956632720371669517922976085781410774639375102128370962770030071720830862645254732968118923158978183972128638318900056950602956764810270042530442824615760277848094434942854672620147898397627559559873104714409920851345574763499053402009488197946205485831426378159695272757636622863802005580545978696716557152904894387391502106888345266087779394059117041325713924207169699762747837070299397032492757917845407301279026180438932533482253418552419944040794667292654619513570821065181817979323885216829890636416392887136290972563925677933715410960014942533631153929491625940379482338897318042557391637102814485732528243483358468059422829304653928107531146867929211741988195343910261171782381512575076176323665171792069647281726752739225373363032108383556493354760105520461382683149041184874179528209829500106648526046270224382746498867428408394962513787843590420107230280279329826202624895804046753953713510058159574464540468379063988802045910176360537349977099554884300424769701795328648375702398905109646074552810901663675869112862139100632105341452759609298885228844331036934882051247150168479102808812229209894347681713600801160837533026781031448205290385899966272148744483381041368860456782348541177413273518383472897677137330367678299143848368864693139747460507760552295984808860006768138669456678966375828290466188765194404695780806407991895263329138293840320039272825049666153986038450973723250334606845658775859138648911395351262520280376802569304410107615545496538783105349892257648421542698517986524385618499081483602282634591565408922368810905669130805310492409983282920002551124973494980778134814495651687489001769229698991426307210126645896296727946325119015420413097387436616358948613334193609046767390969171360962659448412374252484548292214722442463398981300061344983267488327431826390183548981097891638831627273480564489703577005542205389394084754058181919883763783313940781996152477813632142698460759488179516743362944499546158381789370094588668777700125070593373817824435002273585088751427841294792590652504430166954919676986209178810698092964863266869928886243407156607383112674390153620650960112959440041010469288597527067629722345631061266140004765035687354537390702861655577398326997939351174679277559159291213625344135968622023512472119500587038831172961682463621717649663308237561772129898720728025768601572316999853689192257599001829911698185266295971093303314075339249712257756299629843485949434255723740916587414941940004359416905001023034579791000789353658130035284318123627337788127912699481294590670546040821965120095206499403119575214053246456968349311032586166906219606513271966198115775255697602984328600118320387204527480629850767948026350210413666340155783591865208743064295821894068134185925072261281641037581179092569686054925087748063202653316063907381853824041928137286250763776093335245741162435742807472231808530873469125586123595254066515590323189039155068960290971225005654455548454639999649790084765979720139933700247741511100803519207935052156960087541015893595009226499657549503945687929888663149612966737096109487716711885468656103652042441156437944996148774169777455073481490810532968764577294485670503844425155243575239640732080022972698936449981366027726754700700281839035728242780739959830177356025766402269641808457144824855628828436604795741416956790849792195886469458745142310207506078308798991536284349589244808535672767030807846400053484306123771980381031834714374463505960393212621190468179463987969257106882980693417014004847933364538090641120207365449154087012325908737451137688948755598948108029878795548095297130132601605577112911398151201726088065721510441266428392895382178408710419350735165635255650501844897976331665538927263798166448832038815575437251889898439237026818542543003849908388580972232419551963854047803645624915893510690343932467230138674840990978427570830728232358333716381202334374794135964080925324705860865938659276256869556637482605142852866465531046445747432283925688777730644658551150940800005933819808678368510896304907997352338927968816889322870155006816610910526522769833504290602431466827889421391040224594849511111021186545515868100040995511432247571582335806188181600790833256172841991847263704718504945024790689906077916767249748276829059438697252312377852800979778151858253004334298547333248152628556243580143983872990276238618292388640665544602209396569899424587069890306627443750695086933103610134533548654386984401130400527476956028085967649659341460634855510973067565601532762921359600016841262383513365538251738063113128253974034138247395037938782356946449063945278468700868146282983866253112475964819166015538581646128269666926606092368527170184655585301660821189272213593701646348037049767974391610687026738793422571939694036251961889441289281820240628361772373975289860880293686002275079902773720761677801361938292472480504499267262814115693146216119865269562323042219316216655346219989405242007533975828120682839259175966957845083001534670271868431369072289146871764340328262921741715206776451757319470377160709802405115817255341915894497167991534950633332497889684404349987895963815407692606267068671091018650537128781966176966070779609583766991417619760703816323959214082230546795502019626246713863362613891017084613698969738182843469865106589119769286941446290502406549980351375917169922684607771464795077739229333330084009292820872765833883150916962690176732650663358832314393449960948104797569235647660295072060106121168857017376927063252530133979273346391602413140129595149209227102259957846554845461930563154714895497358223313650352576842034944381430104550830474446928268648232365734513441113652791437350356225849037785941869095370082931232850782610822522402501191487120064442592609289855992505381638137736770879600864182939978573196063124367723033841345838882262111636942189515072113548613811043355458850892848139728683099302631633013707011631364434991539222613556964624415262091444388859074529539542574343994121780096180198646510354120254193799302091660571563726493700414223717587783201323251130995470300835059209975875836153780340254630727289380815248898041261717162942735749884034139277683939223662133174856364853889227518217351279734587176729067133635400749652298554462367016690333816228366940521438792164339405662796613359772758616514297063318225928939878079657902937909271004458267581664374894865721706481825158504333799933902696759750134206461692343378836349131321202797415061344508598233433894730381796689117257529183733157684329882529503692455879487068148123354566082646383505681069633130049027451469229924618412722108451095407736224573801252286341916751658754705991317169639254733431844930371475464413472351894207607147244367533273034194848797194621913973430746391789140901702160483143762289241926948008068445136557173199611311924401594325422437663229635457127169836174310567315652254084620273114702229340951535198910213786827108642543609486958090442458710433967000271077514751809440000554307899591668410477463801971605909778923859252456719326905856029802101357635456851363056543089559045095217742601452682871328603475244707291959533413870329495286813728984433949890933908978125992843323963347643899346320872209382308706937511040821209453826894354372166097249336079478162939718352642374940167141586813283577386826924114643038119098884680615511085723569013310500717734896399201829923843866545458673132901870810642943067183251180456498571025564250051972658170223328775510785863210672103673021021844241234401390642637472223264514768315101478403425444695138633158753263399806585866078926299919252944741778175877950670672005154473786571454566499272145027031468052005017854724690659639164727641817957567111224313954610269400796071231132650564690522250526901578253227384734429975323939850815311404989697751503860675835204196953169505958338425556220352409612426861249864321496544290297106246124143200840569165003701477756288007970215934987255632139310401359788056418764942566629218977110123337708336668003317182205339375849583384863742270817645385437893832288553589114335645073642262456885708068381054112228856559257479370292029572208259091052391124829688431555663654628982045234199812061692538750217752949183850165553812133525460283024336908491417044567131940700498946630625304691615169138300946190867850117044753814873950707493147074176469908810462862805774453676778671935618531637089153648442033114071075592283823227805838443007759180563405263185119639317646738397481781948835724883044463118822405531809246151043994372592881491408629794370129900872799260058571928321864465724953036784605577081241274011398835813000527557380618554655147002726948675095480492335424073160521359677281174614058770634343049153791688701312644150123165680876038413657547759899196883871548550041656033440356400541589895786214812463059988911961601532262968638874832572536195399572954787222467830262880371510152837160884896428503782833750897013845769266919865656046669334219356040388181153626330573893626665197091511260483221017672392863698236947503428334348845588950381130994441418049049037855920643419478188383480922855083852098332916799635518116341014476033411698545996304620608749401155365203378235793594841108724245142309968734909851858634522589273778059876440444249110588873990362070026396171221456411876142239561535027321450290410862157561521707128633190506019095964778670209974448030703445211483181946094514017846401170144096681967480093777564115118589088588142316524531589940286125992583357972616809191331214670508934605040643109723242901819940529749412481268866955984235133806200440314538658360735971224151202984100553884527408588493254737151398249679329055552253145312501478293143939783253761540352667610704773538853651448329671195828754302733436725569526816727513710930713648669371217539428096982371295778035519553702883538690163828600181271292002925631040895496726263435035539030614935525367580870281522575900341312847371248307482911431204103771834772643170945554821639634995941458266831337306381143362728538453863804921703099858878064610563576963537511909103455775636248106764333510314740484151746962275462936193700212495007073777433832876192620927555489168346746572268681699074099302718158591034123080554862609689201607797168514854548626161695313948283783964212542538850751946114000206131687200155537720566805385108957970454494444257161833479872906921498547979236993534896883985946913807963606542693512087567974890722804912234236295191575597318520079601859097987836166375950957340373920657156447536683408687657276134609756483764552528782520520618708628961238858927459210561279699045495226622599042400322747320461901761693834877067943792262320900768340735021472726267131451916174081318968955905979116708998561428710277605452938317693041817085574467310747533284361644425628096043147454366713521399301463355764544864855908868024588882564326249465774915291074251937133279685863369195935777370272339866511097411303462306459135169485779509407810379972985580034572902354867103450228575798160943822565605637415400711827196873702249342939127116324032447972944862533259387952916633356965913516278301956434771483966402961457276808098048394520027533331049249151100496257200986997137503343842001557457134260116719726559361046389409962740094281986779363470515510717867840990915748357749386532626817039319138951815969167949054877679833039641100024404388268765104329499552489108740861829022297451817961090394831989656015001377443280645210107581390371814337382017269435761665197648226094021037187962737112445051360714093784096993824860178376616091885913295930750697899944140103898722267622865965770034590551998351007390176890665947283440135262050354623360787239964193800885089765118705088210903593152086049898673174562436050023683615029410853416194003436905663804676548521739185199829150869547652935135095328099743253914610003484110712421039336134839277530750664329005779022130232484632470434323772406023782098478416538387491446609756366986677626748891847106511098994303696030797108206687004382371912026274724418802083773835832084364325590118194387354506724351212389218778179517013597807908102452035487696511796117364180722317031873051353170899809379935594622049080675180849701001828498061570788390730182792831419385861761141299713091382159599133478293606207578144508544590475799278880645044662695130955200023528944121745589280659055201964565724528752432718643480224102789457599795819374104723667060437340385836033544584785671347590428909348537804809835507336458531846322463556031520666877718496341325190596761057242714112931952860201680591638422678160662274515969616703655745225857024658535117163196559323286291760428997613501783615291596402433037454545467083421283533825599048339827339239858869200820724740735577773764872750527184935226771857805895365290740568990384070447346162143956384952339725384183556479756012444648924699078324104853639621293050995085872893051656407230874891688932471290040756475397216713042312902212400994237830630181055180083371814561684212755366313337286946471060251582618417745198776090892283210483849209989699752520111583779696492782783757946923998324419418337885494124478181061923129277741971546610936515047477131948187956945229928270923301440894496383381454675811019309548581793479945024344818187073958023589051313812901761994456516422184542977029310475656809639446439678829326749321521884215774368063332873512181936984651951117573769576865283463109048394238162278948300591909350569165347555757200472372444725381564643984601111733740908787468564708262489156431122826234294854426907622752874743707887172123292996977900767229245636223452426037360406062922344225340678074565517010364489705310704841957106299018038760559407464624761533270633424859806102366513051264151032662917769709918088237019548458869655294043517166855443073718440491424257031883155090576335716875631368107961671737030866357278326523884655899449390618975983742221893564441683938913767903879570644507601576800665096176931534646252283238430720586202112519484118287488878231620545216942127494402871847453834584771845220055728686236879446865653607250513736229303712273311293502549713669880715120966661142291003566658897437119783897046843971379621783081615148584989223547022380022779186113390846010851713098621675552404766515345771593248484318794139883403669178248722935749812613105658095558667588364007705546509119872094523626817651640744615086800316189629139303795253181704169702130609307515319282513944983063241790186675396168407298944269224658011602195152420397313061044986037854825706530684326365383862646830718303405944013566293646537331933927830831579208032954152595670998138348074104411476118165967306808018295844901603385509254527632510513298317394217230512448891061400411853491117841846831404550770550233135314719942947277068542441914975340883575878983821023076732944262802257931101366201968354391889445007044783432944608155567761249502886600703186041738899887899452166571592943525865354613134828679942711783830737285843434775065711021858827843720604548995682553266067248718315267955188426092953289493369457661425570379486265862415649839485207172602607121899307442877066802227777845124102815460530852980030234589536540727371251638952599951261183082109135580580971418492367666001043120914322486920719079187497608483070973882782252913758035017005516569848699143109140995159295438292207297270437563029499460358680513609538207935715841747552823913976891337908018699965347067500745186390474689424438317794594395746880152130842249130212419455469209930187060405852993843309294735365603376751540546324359277051030195572932878533060990434422688507841475563256622662699637583340644704204737649379628747690726007491353566360020526772387041564390553255804935113261518045054809283764304676435736006402411126500172101343293575574955016373545301528522368057178565860374859614465833043738237573365132129654127149787129028505729419873773282333746133678777911214635588759727075704837886252225827238695435591984758098294092063278219192154076396382792716941173239434709074705230147770306286634546203131141406086503103325904236378825756033014065595236980498863703642826062327872865749649688500905980335393525544515617744646998356013816208485908530431479563219390452060516564991871961687800631721065086884191187173971392196031556039919832504603083891067375448316240207391043340722119937363572923408582682487641366387442781769348276352430966005608738840960862622203903473270454155080538643522864348941561243967657643603658139459779878572656334306195176593194910458361568677711261901856895551604076580325897186291174911271938189351732767534751076723322495784067629067833478041096408189561117022626041622448280219388399968974375720842202602293014276633047470988337252595136969353560781992391046775628622649438553733504304055157359187408321007133560634895951189240185520746313776174771269688061035828352295260507756050159858604036543390230794388243700562463829729549347051688141931599529084332148690901392827785485948188077344023205413253528992850627423723579056572123387343278293087833113088221437884778170482372494903338990953803682822542019846245427019098280347994098413469910774982142957087147948627415714667466435565744634660686400071734784937207248134785355428109199920988582535825591424613014351279870177345331488545269519749988917533399032823163183225378550282992199256405423302903146628170132091751704204478096730273622193174543312955316716856701663786925885917201655855835757177878865219490408482978732199251992053670072160066928409593745770328240699094461471856964290418580126475783038317583828734469039700035501743557825548604131087399780901579360240006806786363061695743557170087968642455809950750726851355969505566124076439775456114440773786203093396944743907486690883249093935660708124433332527432832941501285996613919131074083300780489983177126043746741114524769684674409651012639781154542456056549193847167587570324169740845602516335275071158185526041766915953760052068338781357217029925256720631740577185720226035372219889276420330856815024834952900481466626798789849738811725343657679451233720386351661318991413256220336717391012778131327770600442235841930730695816259053422245112407860403708863847197156277366125110281091614684799274639502771863808038104691983665331938046921289605872269267492974016873599177357831040159300930730743488814725757914350438452201073240502209110401028824669011048456716123533737704346841099614774916224300866943951822283453167309322252546955228303490834780097581067692083394214821707566618224827548374382512473013335978468805571787349454256800534986397891388879021483136684233602328351166736259619862317367760973440810331426955289609806817997805573567697232765549365727608587493679100663384189854129423040919629829798132904071994600670900721238532528205528285563202142272902172142378778611788485373486452110867199564305957632752174198212992839021339949217035525349529769659800972479745261179366385173590383348232167482494573572470911613456660771350091023646389489376060960514485560683867647204347404291610709479174815437348555007876746128882358546110088318966942791886695498480960338020860534440495902196395342827921962442847005890988232280380517815774993130413610852011075971344912842363654054793595872651214201094353763145251550014933785443729919570171581427510852403838597786622278129895228586983588575346954354223189736815761228987759075444136608084209542845246371559813106838100371488813318942189120362934287164765873583902017960470830787949104328327138556999264749791437345862226840654664610271825344989709371698617448488716104051171165984378580876008131223749905844537728779589301582243794061515753114567724636326789864916112239644103691824666477651828049032253823866740218645654058935260106615835393457105303894249709085448346068345187474986780647074877881005561643786123124659200205241119035300184813053176827814683247701957902840172113552102744973869093509571033806091166724051929566641364867698786904421632587978635267780373407357297602390635363715366491301650306052119188059846114085622021955166447271012022991450209314731056496143650661490870481332436127550658652060662308922716215795202400155936403799355874409209301191383549953785279975082344231774617371833113865109228318678893393778610368855523248039067587814602709668572134432052747273831137213330079806524497917433905775795382725038753464139394957396199311718192483160351708670262320795058489183296965168888222947724767722539226099408750757336320790795931034572729942558715493110942585287784152929829211105448917463783036467492389356336821685316268396180193206896373230549371682521342150981800772135602038437754322297535520487599284815642498843669483586925091201186176358679336299781827147489342828405110913817171517853506364361391393411060754798936182309033377722122000230870289239966282549024247883629191810039961618223985414942365883206077436653388681890820688475879923305509564128377395078594961307196498006754434283834416067120631447732605237826467413322298563401501681900558845866069049539688173794696325178067438764504621400147485016759988938772008424260432614832978667256049878447894830026961987291623974748482998976279659501862325610446365259003862894632552758687957880863010053130829301656605122794183016735472305669769072446509434247822028667406960372156440467069577076078997123398167266977577235666005624820284702866823977194904858922576621907038177137554595539223710711569775491286877407654902363221876609375225405713764975689547554853171957977002364221118024984212436451222485344966134536939419654751798664272314065126817334327583816507954742821342570732310348667933966830213870705346687253821165745681669173958913540972330147103008829436222990897746907520583829097362786801229146240740747401508010569960541517854415476610522184246252181786606852245631882201953153815462076002205660799539640685260996903239615447069590399994836979805660801902420496837186868849364132595071312464125146542152772744432376376468737504856723294322876887974156288411178929303097473647403134388143174821347486342096031870707097595678628681848554131309815504994268476237633673640813607725026218551790865221877406511375742945244835677638340126941086289762899549615946098506584580071394920671212163423181026229192609056172957741926221158641820570368139487099347823089815943267338408186134192091017763586229630500148905992229824746314626532693001721286973994105041599676667328313830074228325448992526825407631080902343140846992282265680320622896087604535418545365813045045849072847732648086738301444096585101554527072571435347529173301346982463344667520725393473686202777223748262777485565019889585019289982043384314514573249714802897355609734974658957782651439779201062828120661473059143828146579487078611280841176665572155906735461936779889316387155728345248356978302011872458688285341098318486955905826079582897484115517890685498880741285383927419003374957382887523186722333245546111228482385271077373061317858387536325835570621854212177209242309987134106230428442412954997874171975743431913971672892846902913790246196782186282459852884185789855259197058199420628104467759771600164002611598936052499902195957066293123829281510648663460379119782876001705522649529329495782522743480413339365733450804577591404133361432356395633252472297826453884932483028229935951799605468364282572398518245658805586768741702551635279457520659482199092406431499278476673006845048269566634942771390276503796832799135510151852063127726574828616710531629366002314686623459230954471498429686746655079994164786571084219469764368994864858474722749590056943770555326762585825469019921022982018408140220967379641034799855384332403614921296179824063960961646687135249070803340748803245069707658729722141124981652307241447477572368177324254882555248168293934503542446025549167931757652580420682681890036265779809245724195800269523528818315063479125963306957684838466406083715699009344334486217371822698737053253435736232608722421790478518674777627105903327247965113713364512620599898811243400582566491879563675238271623534153602340889336153418444393635594838416022537466402070589506469324226839425118057740040906532463265137219825778659962015148172530061041101511551890604696855311737035107865547355632996611700199395919974488951156814698247343057548914064824298032575205893818555923374632117951451844348318887787838825869945494952696743674565746253026128070159191594293337352139564458472881555104291554511807538049094309917525312144555292761512030679816705818389202965763968443648293942222912533733746600563267571956136123558871946031685136239750393923908931930821628397632106796261770347354387935752187349221452712354720248837755083370021938405855785031425719877497989423825989791505422367692504899569856815671281189848625719363055338447905781473407062291666609267084017788825768246799124565989171739979143926716401342762543112593917068017494972447682511536338770890320312422201795108199459505498364664509664866306435406026641737246808823877250408178967961164120289540567341998933308023433278040328469104939643895164155516405681345940889358376006711939281102281247242638076744394282323740001854415373754333903212196738902267734756560730553426336714585502902710195117854267141999058741262931612111387528332544095695713974442461883905672886389451196451980316656140501693351788573145058956740969126974459997719931330206412300042844014200065997421977903651053602160321216035737364632885202343491114171013729162945511177861891752551430476996092914313224574703272082888432436565594060927709336062700597283313419823820271826786584407827743210989391751662891335068968962861366795905759910546312084747930252690641194746663487520827479755622176604051647994830686320135853681206693948018338496123984692403745936738174718618446897558041764935613635177232712438093758394069889116974190503543685854596623006496250198299573456497205098803298054729381805338424964375964402075072584999382736410881100422085172806236825406578781960996206957606181750469985446414533815261905348752594118199519443422638049668133171475782952846250924503478321214823323260126970420878140063111146757669702054822675700036541392931381312472373555025287783873717276504114120293083540360907769072460576920397390324214564138326887174737831071526830430267392056384888074561020616995044936433266079674251816996386147271774124859465343104793372655569496867180618892792817242466583971709531469542712481759593734118789340632782850560598976166791487512978329365015310998639076220134282370391879316213234899221382474340956536620167425788846694689701587583967166497317800767412586683431842070390696263553873369282595337496263193070570633460528916009035956817907105491662436757979383841074200558871946200532084104443321695028162944678989531341713902213322192140545116514250981760146510072272582679852206781773974303566111157731497737959728672431023524154885790760128410613184050668936446238650393350093190464543212609185342835432948097148133828397254421329198991503416300306817649936360153576616573298054359789623159626366594602977569740597712985151023479067294630747047563139638962448704529979992266653275496983733936490478405078008846891092304599606667958306418859796819350495465686550818002207347470179018805542133897011688495628829442583293113025918096950574925040478994408456857511990001307012722827942473836637443418120842160521477866527211650801538508471876408307715542346049683712911358949722750543791712180918689820542376336583669639531681613630871291031008579422705935701089286547592872681256771697827671412791437702612796518198433861138807962775390984892206369822391597127626278991539872188385454038361190715151834287330479539345829671204622384257889466427611650392528165109076452586597547505770183644688828737482416641043943861407991987245629589730689203428026434021531330101800002094327614886094256846724514971349151085314838384333026350895546550740299976534792754826232502565463573388897103869761975850577233697239809374664052479311491967549799975118155848441076971010143072438970552983802285207469304973755761794980393417254682139744465796808013347693608082853506427241858966354359342258636856900304176804009851931471429767834260500178726333887932664094051511588217282275041363083262045073125213199035529899898991246174431685943556241302117517531313274385378648663265038299318560603039587163221026923947853631555407893204694790369256551604728324545963332930960802337059637015223367675503158348217276794837431211485191202632347287822494613946075665923799689339552716073361985963055022103243195604401233363222704990814022446696024235065784018210172612198799826348209894642891652300224051068859266798820137495681677307692557888690344284095818926201605029059943651639547640746658897077010423210768761109483324959473032167274158612631688619741291431293733342594715807857250083789302952641492390043108409860155565985534292014621362479062226141737858792115297056718713815549328168769985189945178331095877470730886729369770596926171659126681753839955468265327788329744770723719035462914597308927538555449621045814230525839018064561698151013604544670809862527183221700480065678907503152218049936127623393855834892262985623419592158398270910382334413727043153468224159981217406349431653675238164672091354415170908961248555971356797285772545144579436530640827670184867691507077517507179084995590929275596805692352429771082285607224423608971544213251543496315009435360204175970010788770046892651940705110528695770494282127377264143955445915016805020374587655003066277675539786696548506079765230103934890791597236152613376884277474306103470459160743177013882140448800415406627995336187913041807966918557121118783838168828282970890810540442603993432614337054786270630030817673449454384863610688568852628407122347334398652446700778047065731007034828702145628100483231373956912330813426844053814757375609406354339986448436927980156812499148323639465416508193140267905210342151201821029580090887656528936552729253688626427553035004702602882202415698784668455313853814839557846613397020246517749113077555875123294658698005888691768772366487488423480635884696418338042837185297452485091048559795951939380693263241454495476926201195030996522793226054549974257482445942877402693635396887930186660944376687945678614321245653981741203737928036924674169404238578209582385399986612297508172336688069450871836623526847928196521204761955931813886849271723446775415894826892673766092958381225797430795963256748521414598551326645332242349434778378043401354619669739344392881881763859251962424436331183815653058475489542218224262297839200805494450378377249387013537506913781685237541998551488797874375632178450805410303961446715633259062353762029519944406694683633399786976999814128631434887474334771438310874781879107173849061955950547768715870731463589970873936341973400467681269123557806623503267841178482290946711698583252788713257696186257781942115743609402221463490346548507229788662717742866444463443506797409298942257947371068152614012719645004532226360976018349129628219764847194427060558337553425306586979237375177062819398858012236033147019705237517908843225378370209560858904052321417029402419313042809707586797659202929499933763093793346778026256497680643485343748621461139634765897575173181101146815002215288116552751864854092034436815415356722323720843626683774869706663371248847410794463547249573506385415051317075164256094917389618434167741042722834164518361623047031066891033303021849920349615696119603973846136922211767519714216622446806864261308460511996996517172246687186550696778056020843769978300698851856644031487807864741998528212182443589660772477872466436075819388061827850028921015432671857344346865624180670481202276867167172639748456535925794467855364684935354258616290521317039272286068352334996900087208680920336871164402233663879001524158045190791240880975887386941453796577034017020015941749161372549763871922407035191484637026507649050329474787091352957025596133839547006166182002826342631096044117878806222464353817107217727154291815612710647237651416220589335075802639225506332380433253399194548174272102730702831774264271856502030855453580172207152107093974765127174156066943630549263684912339508077296326546749788497835527516143645579508249588093595557478495312648929514057841381423678643515588074220136060621001665008077254641272773763306464984708579138136039010235815683256246626047556268250237928918798821962406836156478163673189387159352381011029413297623665779479682174329962739341521386259026775878928390788135363716469251060651749784800202041519936689285455518082512795022580585289560074551241347229936969976601681561161886391802848741845142462084891468143505635983344302416848147350564077969407806551971262932655691897701634118555727526975427016864703765969040194666033862946667581667385145728697906955065148455111467735930657034131495502979113427649191945677482742843479860176673284252913992159414657874237446370350527917149821536238785427488612635622504018958360821715671673618906159562869019579254229418706590638125029949265120950257869403755807807051402600762767989895471322613461625532869932894781792083405586988405407394278056836194573889431266782760041536082501512468793976431184761469419179331321542217967306578767000509342733666876052081852684273495846566725554004624968324990373123044557955892379609541230366379246616138408020278796591507463760000739289420312046843997274090421777665584164310541396544664378390304972395438811522351296800519086454542665145593863728628169617667306786815228749093136731755161596405659747287796241570371040429040111772091330962069331413904542308973534579762645535809938062095388804238762954759975050961311528970597133083883098462673484899843001556561601499349948233168038790056223905246408921643279138487187253418376985489271212713756122686384692696916976519231271466398849609683104340819943317400880584497400279352955398796912545085187953500870615238992436775481784984702444909322002766235731211950604881399985306418943678585369605912588322384855798979664614057638873548389099855057459745667804743396921128472413546465775850415431208850916784574278848993091627582291558630921233443970508010195087769145839567632752538947097490004174735826182521886182098853190474467612974809609377055434474816818588929491843535228089107259518562636693116157066091915359237195470470656621409411638688223402204656693243155508107004773118163500778115736442332655411445358382617040056225906946547444085535659609812314197142199511252886159662049866691746605379926571285215129699979758921478252308680906695885843712475378916544234339475469152694600553390294038694249597687345885520304297297518334173671567915755369138493991118016326623098202728042397749458232903038712965502511015440293722725888033715465832998638697514073189476943355272743537085791389380467815373267712553923229604647505207914516800572982004810780196694390993807522295037453188056731635225753598665287585842731082370120301505455942853337899881289925170049401149400223317874912648314804839851503457910519907416496154262815990504212470443606033820872002438212863026096845061296290814999250931289380632432430989776517851427176102337451989680603966318081722709528999275633493349927241961280449889690740152225604207084350675004065581724600750588365897035812268511454935224172618942301478450435776798993195286013061925860540060485223514273832838506974558739501506097175299877231988897241796778276258855759598250943084996091176736438428912453565886004709157711509028433365459252954746302634940888168238608319225479890022710999309153787804218563682919294917641254203135163029574548758235628961405932841341399004561359564405959445673849953278760323029432124934985522410264944778825027627316770896610651657713645412497503295038035232686600271479531159168462046554450545597612968840199283544461304447894823171654115868919221439573244935940627587313635798453646720692161273837715858818660157367348377003093163579492461687305396323506140108666686908152416548373046131535302421252464290672028668552458541920354456592204508399909423979357758970023759205392787512399646203625405874373218902907898846992057734814203029379576932254025671251273651064953649099742276774417058293824548825301579743087227242453222924716764045896267541564108272616578198700719218298820644204449016778250592410017756139284738897852049585513478807573823331427062693799703344704466227547413482184795904957218485430056708165142038428311225668829702017987568703659032996590644996737804628521860500733340172733355465083358499407980316303721059552082220394389358538088496620579926854030833445776670605314909449259815917741684317203644718978305667471883198719328891653418598755257915620272056594882521614706975175433525157495377822797873732081499275243920156161567424136033563083232375536555265377216619117718597317176390047787455173083290198676630071458810074599831535645546768772458042911372126884715567549911309461606043830877546539616875352176328650298477136055476216489501545541444578181894271781940666660464444174658346512774452104550165234083156360957764169406341018500270668265334450769443602759206289738641750462520555080920790134146317430881260004931846020608880952714392411543542269779634237938986604161288981270989345590446180723205585876318273996651894808016864460698697377215591398393968498017583737084703762886675676731675577411519248307694142784286161029437853776954985492250770630548054486139166149203068553977988856225360702358462707158465803218738303369221796218943963526024258817660324024782681389060267993499328610241382309968483234318364347303921039547188710225636520472138218873652113930242213531689284251183090022108400517706219267241618117517037653118890254559934628540994499730019924129267260904803557023025128139109370869375914592507603176811799406737048879478753105421950484464706180846171001908069515307116154070491585443170801685479384000957275273763882378923312387633006217194130009427139602175888439864649710254446714743849511608514522532736527229488112778413352651219808580957467715802138530661964593263358298406034409508786424924131839470859460049142402484741629439188440612784609936805965116287270728563620636367068360940407573710728831256510743993955945873343466947948723916123582222234002157904122610750692133726978713508265768228008593955935312142723941892523552228718148561336175970925201013642757736563467946659296623982310433963779366236914967382892418545782981494565333169913619230882992157965316386787796071598325836380166123262294898616332601294567800422310863327338288031934277345271495123125277501722066789679719492892336879575327778543040825540288075677118866259790618990731754781186273956199691665726212597096668883985362376609819532179656380077348607134993126397150463513997629324548067046134016938838497737106889164329705461337229299747535514442338615046099716510994892498255075628964086144607592357856386819766407139731400438628278201356575588462943762642071040124060391010694657248034292956862113274316636734155383077502581125431156292819640820406354347004499997721704290494210106384728998254996251214712265050598313800666029037735973809942311474657257328017672555941491669922445645986859484140592044658906149555837743668425386661625135728977972208304366673133041677901723924910059915345157886446194157312713792882580480035412477677545386878994929193293588156529210579801914510475669662110166230204214152992132202537004859832560692253656980927944135737854219865284915519834769651400102422117747168129454464036953276346521945256846709078423456772592744959525343969834868824769670001508266795867779604009381146806652476864992259639723591384874263887948645115085634632260989592615677609058619297704630624079698201850767712356813379425893118599015191224640821882878690630947690952896256908972107301412025005715799096639326066817235705318010495640233417382551446693674128129287572229222044734304841229771451749096610493729499267793877233181930647088193064610445498183984636289273612456961402912703962310862943788806372808879722890146137937896139187390836493808539663983615511365994576751982022815539563004028690894320285107571707121201152558006230257176236616413422031504295943873451192269806192811479453507624628807503238683407569043944255009186149166566497111681085495275055809962626524535185227910419002343021793698573855611907457794278592818276685171835695973248556987922999806821200726005658225682921113490657945906325212909625377220849807716643242090127164634238479508601112774641773864203884418201445710512315669202948656567664999920438835369929565677322130700611890416114065042228065155249477180984959416684382152399694510785247742724301765536185027927732856713787610987462279936263009469577902434806968755436384039936275761201501108250623973855848201339572728952082991768442320504203653966495694786207755781817768672535483930702480058826080643225146321706491640703938305392457292795785951367087009198949986581863478369744525215871223117781477812228122006808188323948037857713339365162134575005691103245267680515016994455165399175479670715305915953352023256148937250543571065890917255067230252759118334798903100644191067551641018126562716591450697374571801642300464993040970734726458881618236370201037092492348678743039278594531078643703825264795263018558779005278223025703818335957594251680136957598149273180502737900564190245170578548026158329121459958378820975761713206185416928603530971554005157822282327182745821910963707034629015785594452460190639442813652385578510311177703900288577730924965973301310618582337648774875148525843259105732657619725301139869562300070929880680905628168224718225491150575540332157141202687496935643047026355724716510232684661259921984391833050968258465313421089428601465907850405439332187343101499445671049728552071043260108721082377561854033748588550172415720605454272761283708007206860069231316182477091423169675070417284620822528297892746864026124859526842828092182016770672571357700605700169462633933210318201248065427359935857095595866232354257388308304052100656986166816868496036697702070060816193725694636474892061685865881833770941019861538866717601906560152238457553159586456535095090181249482944212837068111316117187853392369105119395984636388824175147912640116710867748168433932196842497383655952797758209641976162996784286242832170574161393222895020817902718661840637681891243886811861769449378392224833428222424240208119207107346203531268288783177307014259634079509658402888925847289103557404173494414290171278087968953038775987765759126022922744033776795193434086889537778963149270239787492100320586940870318633137947645176572270459091665802122267999622688232740037115288575383850235192196155749096713918450982476060197310062053620428398900497314491368986877164889473983319878819849335029832874618285337436373396299058515272021630479081519880351896206145669773912247631936219566863324683229912400821060074420082744012016658916641786864265289201932555178364015423794028205982567325332149966192960331972182599050705467976899358505310156571910591940984087535657672668958631774115601210944574483039265360860163079092147835549558159132210954507202953615109281294566562207196762536899120792370896584295790109217369453179788954228524182442860023688588297858694791840808453995150181213182698288675902114243219185949024168276799305731180102260861748946855746519996530779645100958953931095941788752273446392802314694643731681998538952634400103778372628840497822559289680489598307988030411387972868100530301882445435104160053362110082593716400300115668910168823042250421211614137407450920737525396392552645514151052412203706968749600223165472225906255427149746920430821273825164828606419716782743449466799199542890922497954129191374316725371371230475082880997189804275038291805788859782354270381177266718041288044851500831267476250955161116148437856327947651507186228016601626777075680593524941104628529296761498006326380087982764864926776838163292909724960576357032532221499242473737579616483021993220834833568333710544975862120831145754229124556127684803622251357821197455448879706352412747072395841352453873800588362651589960887672297215886118325482708749582667208909256726255603132491843009562434298382424818244560059189974721365516394546295949891718080570205389051890877665601805418283814117413154071472520676940643238824943787010805344815265848319251234979294134198546825158459817587162799743395924776852659492501275170662632822223192647634690974040515621924304944181888286743200198858299432583966620140883838804306292005615247836152630450527133147116903107860012100033595257420088666867478242182002186997912169466127040514099821807879037336805006654293420659831395897539211878065464482690177010141282873212695248619309636285198626105443865275345222551275625907493931469208494297087496444220330435963091498280494933284998909701380006333374282037774516734211915343004197207284373944908920207395597649291950588710473100505416569392293261475059832702189378322044297438742088362145979520278130862108165045048133977227071214104297250674776215416104289713287586497656032294621102996995523423210531237434564629641049867624114343969400900812662223353954504055346878534260041558543619304202136308057203785928450464724877260509625526801050160417829391368976811573939726484549217171160497768901453706233865925297562685748769474096603554765428970982446074374539184321050801206938880016284946878572093596257390434417589070109332717363175759321615694902697257796204417141127978655271493851569855399868995387968433368163943609938630559553716735901902109789029700624303911436140311069813200383639911832883468510605459757634479998543459706337529212907752533852236173042324479260747185134456715740365195625892381333129158286454357165636275134954370568457207517658760588500067507390885937137248890453656404286098595057999196301734861867840942946118765909775287464002337033886629157927467448080366579885971829379571988071380009658367009660377589194838854897539096122022332849539681472316734746650965314226800616618123744620005898124890443268606881771723022439385852072073680602479248719972088893884372621940923710388790548767458600112152263398801394608868636656051640239894460318809666403187790620364838433376657212088329577779438771475622466885830178069701884315982724194741244608533209431554172400403332706324301633948959131963610276069667051403510290792761951242297516193950121014209177325841040205168500748395536564853874309218097255230883266776680573429413691337242619878770563230596130919368900706314493618301706057825461649509943470535727034773787567435972490046650042752386204043781280924555541024211524881782886234949163551458569134934670996924616844974495029367264132560801120094467566839309951578449081745082972486150940356737866402661467988215266929790111612164732924062351712932842156884880191655707526039382851072997700264222752346110276848418603265048691631043740837138073132192886104715045473750440952703357245847439109302203926841427266318898344954849912005479815892210982501560580623286169920222106860756502262322829171573975308236782720700889272161117013298179027728721646606738273892255724547184635313110719191454222044665600146469447017219089780124731632084907028496462186666954903445404524762053230710248612475230640527158448491910320206291650777807667530515765623549799502980191605501514106195987304068858482606791810349949881635165057298264547077410340255624711084579502328094020674742111133014578141300792331637753073694838017931035452449670931884837515683892784932723184951202074138725976029178685817214563100888995342222501003332885947229314651653312194092224715098758564757814038488700463977724820706417593022337721201247822927479727063165309196573484412997999575059643214485342662606765719902199092828426261872119025416441576741431270057737556740291974419683088594804395501132414806935761026073126297919992375206794394748536275085156707061675861965995762996525914399910981182056165766724844436573075303581850074763532188364118085513341291839413706325364036635049345601663226398882521947202780042443302951331719399739592494009415444657461276143095185224851326463701690996832770939557476935240921011830596840608398906757111425413914747784619443508554573604964327653973477885411376875451565769112115406104467737148445058124460776289173024442291006727835977930336310792715093580519987595278847209046146657103471161660257448115473667306578911232229386080110873292762892640148142184778331359200253576130710884430320604489506285912398270134835785526833980863439139283143519037393004336035954013960845932321126638743843285933067557416419280291524907773463342206087626523143348272729112424309361730705818400469193360335276754732310246758639042170191785216945341698140242473343463357509425861450870284161217709474415165611920366377378322662528226846869232051932067405337192108643282541012812700566846640566390287137431289355830508236902895869258367509615089766627164558879019272153815204049312744296184319472192692495110752157763742281725211339015446208882802184224668900043955854715417848702950983711327081697514497294600003620005467503907690065080002717601487540129475937475244514287804398057250207828833596017236899261984784947606741671959543588554320404853984872309183129811319882017479317110571260453412415942549097452794934775028786687562235297776171847054347070776131134903135510947649479306697020694469197379190689052917958078761669450954734782617384185380792771857699360645008344858879695065984488476928332314393651515083568290074265395687300752417053890712954282520871813336396833932985074300969105907756643117287799713898624159940681774668649969692918838688921241176075049773571137279856410829699966967872641796783324356646016399072546363615873105152961640899066082102085975319562793757606834188267006450579206445866094561814932754589010340868039909176854336750838388133626396956137184413583020743163397450962736475402405685124779100747426855046953832098795917843127796261507409733690429219117869354169154999813687123953895383948572621439906845149270777735100076519088403059208417363406023406324843881519793250424514197553312518674241100987994101406562111550346775484298645730873236075858118447595189325567855694381012404367902713491006367193124372445839479092277556887925458501112957916309115195172717771831593818662317014408810447204069423254069525216513893461280085144017234470751570333227607364087837655909935832590020238496642061724708400853745756756976973636338010404122625823217207294365944278756184624783487122082753127335089429486376548619689983710541907923481065632470990783098784990930693807209985792593450039727359207232787185026269996149589334285122849757504016323945968449681547365452620989533416730946930175675667372903074818755893978809258021605716246982781344646649122870913430973373891430975515335484602730293844675764580088952694915719182637790192740560628783849736852121952553812979722392054753840041154567800274814385431947667098610595201350402135972629063860448493993482071377838793867779260695200500456743657775503983639686885232667328229344926435799225326255168396535802321545985225385223384621171400318318562435910062266946219299485052923916849081107263680595758829782700415437125774506259316516988702769084715495173036820982006512697494850672727011947359273497706698573081884327921104583865431393679953249956823311045478125465382085142367199133310650665347807498242152396406636473923353190926756867020544530229892589255698135450803889822174380780057097288669286559956709031584069022331545072092482963278427199283559392330033486055458426041786580637249985005045895378199125716669234123098355742627589392414205419795439771449837935393609876855651659103308826670819873597413026687905208765384815523501414941949849682430927677143060455697725359207382815194472493497075982291415732561183280316361946452636668092108549177197705305261360065487293577235529260962950668472576888214967410120157069216913346898195523156270272907886557101770993725412651465540236136387514756046368338396352436928272809835677192168897805780695041348895345327524914636245001352158495110649275885843201980601115854571685758329783063394685396835950187003748704456220216312574633999697299057371127332473738547296276856013835539081667385425633706585400048277777495789288724732610410436045086949285865578525368110155735492196159073796622413565842092979325066564603885453102045611548072392113376674868318040195474331400432326111105737405738802369033800125856685175469573897629506077931199949287310372379481885695599249516794970612884924415517949049076197126525080079832644676377042768676994684008526192357142370545607661458606423814431390272604833866171554199784785469746978693259082524819435235595458303077124282565762542442698499334432711804576906032712083339125368110494142901693341914657175457116797749478437269911235355796280600346519266557379595151096336768314896753091382802328866684430602497505378062746615716877846291651957348806453821415335709641278364912784199593201826062646385555014526667945496537246166639671327389400215490355228265724651362965981935766295272597535679436372275111029227044772267566368790713165447310221766992299580828854655827674953904077956851550562664312864415454731663399170236391335916296312877320143975115795795213994569914730991155431441900981790033056460631927827790249978276909777231701060819921017973278557227233180460001206714415986483686719176901595566288414732536760871884180221615477793300699218341473657709794184770283120032060057119061992719310300707496631437820159198397493128803286753013888345563274367480009156733224922091591432273014520642336065389803731423798597692992678080375247246993407307060419048760813431734071341025474989125174877520270606496971869777532284197887844404089530850909882172923023230195878120410946640102435766677485173372482430946523285316123276958895930519918065925761944573205414610051890118797667629345576564311703317078875757694920190529430493901205423045691518090632737187608009013314399053852637009973514395814512963682094346936857049259344749815723384461832863153536075041054112231961250519804047612354879256665603969591074261161115449514213403639020770601587528423697975583565697377443228997013786577443988935304112373105694052641776575988204813294233109909065917128579170269437902375554524328718738495926110303587296938275384004619562346274597279506995780590319725064296016053490351124905484406706268672653389200377323902240148702396119343489048726816535293976595516051683892685695647750942123297690930855441598683627491420843089172069894775865057575109060200759637214366443165828884493212652055361636597410581486950729188292384600939105335662663071142279024599363343089091483370752211253003241411959460881093085915551889377101906403888499971445893622118422980898583286687800635692004493525155441431407803457492070447939101771993838144598968529728201746705987845835971346052895838951497798642106090093034145566856102091156900666835524448799690330490659495326370041809810452973687075749391514676520406599281570834520177073437350760340380504336039241198144213927214043406590135098900594710376094352950042165555841295098657066612334957760372283009190533338626580361812890624680120135727190030984175304999795092612232345742399494692950366922602594406225589762695038475548662182100336618888365031162541867434599391609207153834018641425116799088713726592067387479890406407057105354455490367540639803606941931617238274324450317082176223927550746145966164462138905151195463719084432949123625042152665809521206373160550683454294827226944331390570220862117703550613057102003101628107407396205964851103130451385811190198570586842570834384386634163722784882196594308671461657885588178016719239456628270209059143715772998241213360908070396936104775932722120103342663062781486177808391560165915067550433390706730139111247341644510635400363050666037374033375851979913198004557390742329641353167969338820930168133027646253039593314134965597571532594346044561541438457600070560640144332881875505383423745926535359437951686276486921123971185754884531564503514228197691958414592730205852709574255304357527779640633399184938166043542813436988350205895783608030810032478141481119110251102963740338204599797271414648241274924278978470671907166837267728203100267900357472849058025489759374637475143686655427034433575202995173150391318653941611339757360907116615396826691868079109885605692546825849857178647487900439895582719782307690343287856655080979127256403244603838827281355986044953198640176810763483285991383156221697945970826862480019845285142873369727238469123854712973983559615990344116004624442401512136649539331045254366984896214461866835159165308285357110632861397687840350385099141614839833328100893143622841192229857137900588028278377850135281748471616198174567443914663492967072413284205118757751889777322728376896066275893547576908323105169892195594297911067617244215898771821760813293653467349876222103420743531186606719858144916098090372127484219971078264307187477041476705010175989274756852302068463554679045699117273488348695165819672504120698067439317080589145928051278226986277053587946264619802793720082223451276006249278873030695342550878862068045491676508617779742041783241462596117512536916228709573884727102280562431301845442924368286908189863102864500793585512446299880676578476144724138972901565537521413714809710610718791300602886619271177250689440663003803094400868927325539406823679446583365907133877908462679951487598575300820358199376718206885125012918585818173207487777721111963929157073327291055028222742171143828302596996308822230219076427553265827535644856858498990126007065460012752324742741873736294192869511300157107435996265104913092329015164350130451915267687586062392114261859470016298044479123826539601856333552739042882496332728941729757263581387785840140993709846474718670255908500141595679465479985096189906076585215921985306707892938556807323687788158791347472826086587216402341358922398086032608459172380878699099814530572719763129453380852585592239489425859603905376775545123567866530138899125303791180618366723678706413344164147818808025828719700538678901821317764672083574509966832936324371911732702765570398182945680620359183893636958626418785685934276009656706844980520831490964911902934054993744592442547731434290833372009109275193859375738130620156829244299980325700841262957246405039089997445147426918085590442541985827879048260971176452315831116241710364396890628155727748103874403172724749796438784138908578417104237893875426666217995023352744873921148012862379053620322860270337099779700170513491948033764477094628078293280135512224058495358724115083376427885348280975612285026661488904742663814459084436222243709840023174522967876996241651518668045985381447782873512804915130902175794857780164585379381307091378849124639358958152800450723530703109387592623195408318954528571472425338145560367590875266134077994872934006551175855911511560457098122313959259214843684838511664467802724099893138383964162564599944516885222127414347014845906925082649452712767023156195614816949545283969626353400368235005584085663713101716638863149431033378640763890516819949004540383425720975648994047179299425025262268004964564318570444231616140783150366305667727513858054946189715025385416296397844730256078103922974315490358583211715596993006652607593749353367319098693961610080072431232595598494625424185521587131395664298846767181303405758708881118684604231683135866440866513911666434031292728596806920239487575485395629661540279749428279196558492073378461200572975739950584069763261302995606848431533111561211370264324582886257315058642982364030281628734233931849896447499422789142281213320183268146899243494278671222473876824904666855900266681914370315489478688507939283541969250830421540666785570634940622860711524662064928643823072094368373443844972383598554240567746114750275514424814586342954250260873116601322687100344293291426602022255888352757519310050937924104934115397472156294964667809238681984109914130534709259966610091631347270323822297654253822665683758407266915606069493502557948356733250872245840588612192452482000812421722823468653244140388632873016426025111162781722172276443921774304117221356699910734568327910397208421680173943088302583020668990537858676772078618244585980849546079198201462692701250379954040697401765106203652365866819830636796061403597677484587920472573143703617125840927596031832238023109370424462450217684252694036035882037739712582654127364944351036067797104914715770806651227577057525273611337456972762778174062478745597704003516335728778953287170340950929811183013828274090795677003156056217975255596523453025346890188623464078902231667457804261658880298869801259736647507376066842426178010669969482314391294390902780654120488729547111192286640311405035827893855676190490863797192006533677650308130051822548324275217915941257275395243380425063251717518508931708512689675631279273044472018219080611731784865765663829747195318890469857727161185353287859162939617133928555988423999670821912984207787453261368976432201749799923500404174106779844073409375717759112356405027281747342945743043665424950121900310992761701598283622469232659219082075080422361125218672557307341181075323335072247489351169058609494043727276410126176728423403950254452951000447841903119759128510610583588853159551474383941253250981572469019125492062121880010225380235790392905628957278403870788994079632903713144289899594287204009411088341986222895592835390417529151660399065557347253905197694103877280985773550633690974620872641945524056861352795802615814183009872895661647018548385095854270496693486335028336277438365664445843518414986307725528710171965684902163620263661119013997645484892771232244630911359526137209434332167699071465372456729673817350699234625450197935239091078318148872450090485199771637884203404433065776430862754437574939524359388244944613728791976356222192309801508930654876551172785581271611361901616692197138361090833206413055935523582356682190171331145609287359995486160261015482902580946589063945622765904955663269282333033481372651998975639512676979255361671371344697510761823104601177586798914246502149040010872897691025959696403135905621907704845983311243047958700219463030495439756630465028016904689113968732585790248676598549126185893663990545532566977215588688909010097185843802655958733235711293804784407850029994502111852235038598316585796804701841511506114845746917688682308680830304998040815641685999246405939826149479975870387809065253431786617466748189565970545055765498694263723770903599033479261804759944823285808366087873712569848160722443902033697320385334180876096390938025674371980451839894965471104030338717361158087001490412128569054027567527757659043271327453993197714736825365913447984868302202701098184621548612305470344824560965130165383038041300826544753250390780624872140653491913493446586263122200450941961188552006035026478805197187651336393039929315244311579535547151602294153178501877976629214425726636030513567908478843400931549007305291384281487310975339010008187571370888594873945795413601811266868151232813421376420212853034795956776677425512297326214009850677239859395011026414028304620837889130587936395033951278710535131075620854728812430808320022726150846914756387605217415131369634231801479391697895368392598755207251210645084770021006613292407956601030236845694940618598805421021792445734430834478775172926917214581494614919231724242815593337618667002733289396419443395874150491628766669957821108847895224253675410452789797831829541632007696573788976432907691650140028324224874207696079689967888686689096898891672862288723446589487587350131659036681290015538952903572812750117481751649915336550310998657822156072401392696075659116858489785287396435650384869844591154932344684544507900803126052907281142666553903328753783673638387031982584930412873707934408805305812947826565182006747698980215216057454728997471087614491395294711997957685845111562370904115079420895297629397818341836233018939386882430224707751868015895220553750836488254825342781455772974423278624233405918017527379409056333368262056141417157537209448152634823579589817616377519871764773592280964802442893960860802949598967292212712476210066880458650114043811380088760191520335169806313616721338553541404311209637585338179594970517063329514164155540497607177326523436903117037098139715714556271235725376335939814230934442484717067609919746440485333685261197601634420203945375591771557106371824629234972493488984676458937663385552120188136765556376954363771602574566970799480483485318148034720475406048846028134421952880634886158589521165303919867480543650949324999896062150898548218470435442077109109076628462764845672719493840635423080016556401564813314264257764877938316225143015825316046458146421271028288469386724278903984604082383243378239749907904771536905481900564767682156434556962202551401614135426422044670017268548760347116634196498486400896074750547523180875915086876876692767327823993585836874310564922581470882536711001379038415602326943084545082655503302783385234451911112170458017303178582428210245450987717052253198377345653846150968248310157156881565593202651417217350453445707510579153660326174083734062693520991579537775533066675125227385849372051400887322308945082475720632846504008732664597038782872743310892674860250051138066486185955980544619917511563919464917800603878129264935155517455350656812115064688906098234671269368840212885825271680036057346196455691645302929617388620122757655457630456940660516413316418839883440357734691144279727172919203924856294054599685105098024083314812330054775077852455054328627222076296886625071724402458126123254953886946442549966689439639867395468308739231880986443094458354444703172997487159062355721398399851926415508514843571066327930722207649470006523240704075838439586409283407706845037091109564013497066062777802855981808917360549660377910031645481243810249823832568223138080933634245318535451365817051794305782070080552791679476891437342326076837413571499025919867266721347077655249486618447278322821104304392270672716762129083477260618902747932710682431194634214943852940553739031632677892390698399118988278985116078544361762654293301755700117428821800195478776431682714206876926372917352012941804819124806830176282799346995565303825013732440479736859922900215568356455345328771515010088166421102862329521936452820256066249856442974635389489281745165916271342841225747423057637934958810271272444730126547533302326753286558799988076987137591084426298744463098097659257262924119928735909452999559889506112103436413770478791540433993042927959985280529717587379617470016933566332273780606967617613668700385606162717273658521394035214148160354409920100899819385299226069478043478190049910983374848955533044676238833863504763214620918920082272659337026894354889334212754325641585359810485733318265249608116111501813680826240996399695075610616060983780912096733209901508839147397771758203116780834984248059235119424206686903468216636818028612364481998638554839209449023004476280864241126132842708150172108210891566509299834508342260331655600697120190216301237177197660928219002567711892230426715326898318114758505741611268731546967360457271832670436896573249642071957714851314727129110200659174313090195741149924739694183542262254737056857563008419599080638613480072019517662880366396324438750937616271125641894595991941142541060204988741052299598860364218813412820847342178463401291137611038843964757579572933240229413940315163234695386107766560950171590160749521085239351163800693009676241153604540782128165436748244280316286798117572250763961142962347414515236553331404432957025695038542839927596205771322745861416267699958955928346273722123774205779768653192887422134339689429361270642582194586047349610989043911153736653618242732502218293808218964139966569646557756445135757916969375873054467824674990510867273133936053098043624871486177840918767095682594690698764527308589305672756245704344500203502429396658383708360755721856755176091852042123523619412140408373888149309218112403828519831219364071729666080277441526218956185413225955429473454092859243740809313262778986853560612321713209072727738821044579856790670254030665751916356520895610088494130993068535103396949067545618853843741547799525056618894219315088786769728875266537553398586366487755041366114447537248677559723100750787011259939280858635027535120370827165650040884230082723155093005330401009622857840490139915625380433903001301116429495536588723222783184628299301779469708373758854708879539121346353474033741687544452768104126879049981282393202254113333072934691074038445386417555310464699603908685101754584305855032089816573904591710407527394805926827998249316932297656883895620958901071634214432385372704456736948544815674795154759885903384247323593610008040299827427507928369656973677534364498087667672257432930278411726522344483793233402074564314092787633443973521743613715572867837407873151631655519194945270297247148505124511828702132846762467318169108237428553876819232153597334255237759856738853783000990607165055130240199384735785712516951332304377138145039989220805939460428533036333159041509286569690678859427437360374931985609001684187967848508471139076897158190631639336673908838780247847925625802987981764723154227742507070454701165270422874658052447295328536267841733336565769232903257204990528243605669476650527894973702368346666413609516282598769665404516946310400157747789481949940225406110058488026908586009688719559795924302188699071262025431272506111631102472893289180778720066145352461631420024284487142741572977881148138223913197798716165612824287085641675971804612765222399162485857838686536911444559533807397537036010258223456819031079218485128798174970152830715991932322265487218325211493105313424197587832036773599337303013663022462000922081492793913282878689976409341878262375716740769142178557967891419551762666651433701742552239136461956056571727959274487785849341155672684031840847599399423606269973141738129023451486210581716608599423265124480984691601276843908474313558753030477346852098225595086181890286641477466585167589857463973381960918005812650590218993955598027584319656237840227192484120858387323992631824716135603109742354158987664821785032806302131983294470144587348689897861225328677479211613988582357176794630584418883011990060932543945255283361930683106253571723990646266021898464793652204974465936856895583403901609043157747411229777739694141296810802690131516189344203086449024867244215776555421231262314896744843370042192501957213460671638462822992525382192440211050610961600167540091816920565694014250210003203880971355687708984318778214137908156257913277798727079472684373693971839972566763341613356886778493404517170388307326408134057739587147494529268828144014346561834444138033534444692226078878482781722703251610073347476120757882361823358396253391517780921032680124587163400984282165962255102128404923588212464841456588795520113371680966769812570169525396578447542324737429043397994302264980402760355165422585900551911817321578399165113130603556681604721119817366936255237200439117262164118878176706330881039399633088547298219732846843945083352930523342613991378696518181537226506339865018356770059583621387364314068655045363159976492270679520727634301436563184740670674834874429098742091385999917535364537991612320367644111331838376081340108710507043371094857652710510598644975077510489466193342955291729907109381452645051595557705039244166809433436550622659151654401842286659557366700554792269692999838224498412923724893342084890886332111546561258539086690727560277484790318216459933215791052424557953515820626011258751752648424516107247322120824698527647071777159368199932926800398267627494452096534896484966079002019738711189906272022964605334508071477038699481759484373423486239793398251062952819088926970905740416771189687688650193911701991450710130999890448143435297131907324593405014945590584681012725418687831498088108786796654063535680406086108323217569849381262499842097462421672351360295425909073933029825414565139812804228309629723062988232856814718790751274604205992120600450686336695802890914235901319555220979725304697910222361724638789432417140027734731863414665001139826350579908316276868000780402404936180966784409793510183777311908011415458647072812143635674093911798350760003217608028053289909950801729523071882112655421333806514989142033556527774527147269901865359579669910916175204671555237311905119278913263863678393820284990135209521175753081941272642703174341533295714186044555617176691131223305719767385126068790988593659531807528162247975182650376399908948058971844577150985217568080816866653637872720483325232168595708486256290247484614884668486086478524532641898923523784640422054984555847545956985826446283065720132140292310308850165361841927395236690444518829192566381893411311950271812869330495586554038972562451392018573907414434131057185830651292942019583483768047831847362575544157763775608919445932358023670169200193330346916488580823144734305310671967449223352448036851769008807392020352207959700734411891362738306555950179464633843630520191910122756793291520387673284871465794458337031365387557033695136638359393446757838516825106643570294451789353162514485895361461994308495182653156542471618296191291814390238965721169449967135698626681631284683224870846174143115100884157625598268231802962501668604307553276071843540368023149065760109451396719781406150418131518281952766043858265072638264962258741024908775225134909875299548570337652655383952608178476969225869033320548157434428501558487527246859683775092681458056767797028406376038392827452801778909166724717743647928626462742157488613805538922820752426051993416172412149007009068547395071102958467342551632129581988689941602535554920167046418161641125512381541352267331013985998637064503758967705461671114257544526319252164062319735860398079954687427941996447395712253898032731639901600141404776971502163881735098734032602990214911078427201110098873124636251345122980479046108429333466430498821002016383465739412623949254318983502522957764634111820624145136462270213723669845138664358864359466617371165260221578792587522610604631136298091651058900192181787561349105116682636634879607999185195710340242582230796794986058765676647329063598262192992120738746818222309529271910764242793522569825409932573311097991370623215646440059786728197810732072349166276502361444644714923049358829925324333777317974357856621205212561747632423723952488231414069257968260230543630628337493093822966120428707873953191888128628981821360831982128116464211188006082248559292205678806787230816633369271653525932994820291632529254137920531475584837919607574505297761639466181134021448673498595479086817516786705261628295933978049780661524494383562145311360767194418255396407476134171349655678607357706564161303417886775993871254829066722061841858780626979418962018210204011895521965522713592210743131375809767265726890016826514248715991234060867341904099349738395486024504189155390293205377062587019277113876958820547257549340160614597111296998544852656613787430857556716163925708910935102603511424485880833301912311224190357413055698233833452825826094719247105074813820890359497663698405874322596415282488002636724674603886758120640543073329834952708621245427488507863641840357856365503168371557076852126760197113202840574813072121028207239068184988448643841613174962104429073627207575507271952079072741694217056389015578488351797663119372276519576205667216240673794148960483771641566866441811636800016645426200390974536502983146368393413268587760426695349617996804154372077147390175781185475848619531219201867233353785139604285059112660376800118831944910849014024501276854588361122576014486235803629659480250778847241317040815927103376668600425099158624006458339751357365819535172779558089901940131523874013244430982266248977087418262777945627445792965799801030846149957388400774972888007123558941390349873126242538648828958787164866155328488061380407285160994492959226425356552470676961923023648035676228148037294266793639162850768258284758332018574175072458839418482249037202892216670246603855463982859021092873230533148600807957395967780292642135187310028261562515838792016840226491611009625137463668315836383345037466328581953577410527783934101581725045116533583366886595109294874253067418964809262580125892216431302132918019619763063030789947266608793412536762429245974012212975340877758818057652044692709899316803654752480668059916499968485278619450280536948463238030646953486430768852478728644902081855153390982627199447572720008563889511694746890692336966671258762999356876188319146272069556604170299614479533552195484469286362338510030041025935740412779594440978910921649154287890776467968040089625189589153237935849893209145721116973933650088147933059225298243227127949878605949793335429948010723574269940852052970505191171484410340755689710525545143987150049320690216921654079068801447813790167411607440967215568938335984820053978025244204093330577795219313978428231994256975124509593863220871690269128103817462692661492335602661987990433641284290999296128402503396726258184715779879279039744022401042052923708330158582418587784012963559505099314085943321731203008380224171124522179325195858771513122836935209263564095668690007647857312938256579504536754614823987548097620446434846541341896689656986238662041670142446495641821770772929654009166289145692955697691766931445508207948913127373906511800969189187250104459257325653528161781470775488928895455746064510500989351313940593439795326433090942800620608760258555373366635904139984826041634356482683539286291121945510399417795828348788081211114971985044439303920329354599770711684516094353982043135150029948358502266527545486306508380763891385210642503859719939688918597080451596521638659759964742804245858711184784977230741434360012733628991832885442083918086198782840181403870531567570998597836152109495038249331418665963799346727768855677645432339288343694296377667825873115454702226819982794002016582131599224153817192370718633947029015858815423034068679678855338671354485159007310478088726426095897773471710952657766880897828261800000267710008138293295721755038605521497036193938634999846160825061637858440721308349796228199732376104241198163674793403302759148911969313078441732064245099357640103467544670624429646853176571611684099596839066897997462617948399252826231625160843233253127984451413103194778159149078746894021316987490865221080579841756372592162650041782937772346851281750346108648316942998281582881985616128816274924931373295948136737120612945053323917656425445443251514668844420582382053205542306225505168547297428806495326083264162941698890667519807201713954333945784628935621345982377860313567743952305461614407626478144825455861653476979759824549995687628265061730102335121300680415372862360815561391069963373329106182651829950660485486755436183200573586211959323625773742788069669894904511366458976976024031553485687550480670080019123810427871369595183749523601542648698375283035460091045121678279400455292660915689635641025946902245375940134852084327824114787348530970695554592823348538890309611825237830662007373598840866564787760966920896556194683044729574270417242891956220959791842515417543999523069033846387197936694957041117177402365735861207657486950842326460849890560348632265534053645890549401557551485297060152817211642001982033377930713266548572130603501681662446737722227059572780230224381379747341341128646747203311134807134469562150340492983424633663025676415951808503623546820738923975877523367762622664216843028739047974816713395913278605020734646150689593347484888787237729380137480104798211137298572471079051310538689992554148989656662169592842656303811652252942444275145083888289864374747750530350978580783725831618350145099367338929596888164236265157026992441037092735989870105967342983698929018372397507829908858851932925216730053162771197377370900587597338373920086896884803005459383300128242239626988459857330109332054672912423070223251722104578267869389478647998025719412901588947537652052303949892606587385105736105914764816259115434034881162578813688281780261865057469403033877675122321208000679311312818117768466200574852631773955809438001583626692061027701765756343739667219105206130154121869162707825332686052407763748207649114849145830906060910627433516382473307508798073336380760580312474500239424106360008014644092471865459006197335452610113569907898951986578875292770983801899819927687953098640974199450049502537689403831468863198058042650573722852998443124815801092325608049451928035556174785509925450043549799082924051391055226398389119952965342847789478298255170837577118266261039621317454929499300685691269620200107316436289267641096914826858081079697383811747950186171863820163771828612884036477937743986807037136893119770730228491466366982907793328237870022541908504096837819652297619945914286072873757631250897065698640067742210927099286788292041876192843067655675509857974511011902175830646075246069083449431535370668839445850256440114431853172905766710110067186653855223860653845149657059942588440317645158895260891711783808977481209677053830898688811312047705150334227927993302571745851029103345937606292706103183337781402213738107914271958911537063113693359071918042502164586992585729289587871711968441774134987216836179875617633897223239530244553383134862306075903769779321231333878208919526967103982764683492518519915425731495118872434494080153537844049874490247509762611069221519501443545462238957090499229352812365886845205653733919969202259020565292006321175397150691794043521807286913344152950403020053284620964202302376257371859321588445321672041302688508317929894159568060045223633562407653158417371193456600762270786201249101375470354676044725683002287220945779010227196708814377312591147206489631529427145009215311825790434957493570803141647535523490577806210713897317881192244158832714057319664558857031143736672040144969046638022213078555110739800243721372602578591549358697651588135204718520967916657368434686467174266532760957053844469644198011160185864548368130692553155569899904653230409980693489701887647408770555062707845626146876012649681110852923864534161376482210107642894664206548555157103147982543762002599077109798897888203773929870625844501212216126173628922531410529190213863569396404052356302540486456608629489279849463353375344979974671509478827598893566740741045681442081946823532414153567074759045485607708202509912608590671671793325707979083667391686546155759390852891961731446996663183677278873596250181685521965756398259000450744548623309760281873867751381894833419909082992827456385022890162166861330488129968042498651707705879519327897528593796414734927621815455360533656983210863370882423275546335467643770657578179832199507709372328927573474095939339694435499812892637110185488847572799196999236394427198337436818802414972037161429300997164311609667363450416735469086220526118983246844013556930424589805801394585205111465041124441638211579466767373148917273270668226426324974182955295715818806066449521436925782654845815662234778799987813445464556164549083559015941256379372451151968813383042710277213841132675089537501687102673813983491139051021266974235725100131096291236740603447594474951115209821440990701967579471446552697952867635862142969097900665914222222011995046650797608767086733548952659659008553890693439602245404240647610200478230054776298329244581028360970551638811512247033534964510849620699795448309366589561810774718659838080128004241021272678152605967216188185326219544667842624523213634388627706823704361896791495145337269763600808630069143677049529341853743439220313935660997520219741437467705704076449047187637743120872280619161784584848383550758517561666137216672617739217008273569852157496776395286819817866475720735106794498712510651563489873499113967057133666195003910378369998890810159904400136883442706701203515292284491158187292491556475306774854410362955445989170325564847956796756587777461330867344933797606023480298808115912677651779759522743230402316029611938789621842913173786437943377734320925797142243505305734684641874275678985210128355605862741815227144461369056378057022153031023172485360538894638712727402789912278219768375840536597652488895029221722583254214736026252508749332540044085270317287873932514970301511028885706826584532506867788006075486025495489374398523907011730719107362598006898053193642546960585819797982423581593840787895995081169763181437355448995226050022385471153181865460430300967754447926853790803948527094606052422423989976604191768542493356813051170828063688005046673795821351876111397455933828758725309827800105470142986236251332700044126900589682313070490199405587708744209725577588890721457951173181043847977460895744674965504178491299098061553553297761478362871808852267711994155679329237076693476907657364987359161190167537346444405118921692052333631539982476277022435683244113922611348367903035721003654844393614397692332074156586021899218709366529474944270687892630593713681602273147004504333788717188508856004357568553515917820774319293172418550147404102478859986064196504847348427585058280101814732113547693719610221945400969181403408375100443435027265697458683400581820883248164381660351376190280728073199229632951011066543069792942861960905775488926098910383716010124232865625435120890034531852773669363191398971905066115230889580842388916835205892905392436525628174083911236390853889304653214149968444857655107358710856488987565532889122683901474965400098012211651010839591523629526846349714925378096239177829431917949765875583285217142498925316050571121763903096360587321969529597527965865842302059973660114066326743808697698369455831791553546955509309097691686488094083001619636174078506591235014658131480465010350348263552597626309513220298610451041721706873563785544144394154971151449883112021004326919563445843902464761028555560153788989587231090333734041200038799478743668944641777846691745971648917113208843551471867127164316835557299728829501027241359160650040884139788686453781348592034122485182157189423108392960816923530669624463236143388841410291106083421539996729631921665176556422236301796122599610844653932310684744280392683820831092347803588055319120668384127442371026187583533316945621318514887373335934607771248063866522152650241031148102510941585261397335950516903421567376495880752230878192960766440568542299152991642782529975024545434378214589215284509280158499440598403609222151447005390312802778892835220486745425060496111756576551725398280896078046687904218760911205243506404125656500400712310176442652564892619447098320907758648641310737916516544897700108542525840934121631979391503361189504607265108285389918203338828600864129778007270410516713757440484188070369571932474126146805075710721183898920368644900386260890140706908936047716838080642425989609828395011397624148731340272253249864260119215337344105909830440764459421999612418439641239837169404610342526041208386524765887436846160062514350578888893615380122048619924937526737659056152716120563550545429374204743452543431580075891097904169979202370460353075697777564917602584755401182669199988899465242645099596054981459852990921265049673134595244362048273018489362744351091479247908558986991654657727970671137530509444304288771842103388624940936228014286459245536850927330884426902823247418012228800140592843213941619010264749183943883125994771349961624119746572532641138790082062073611300929854610484885133273546487289200941965343374351069906639771051162646777302823044648795250505188950116644118383779969102337127606480267109652235465383764405270300034390000752433857353729749080624340296072197766352827741364469452436548200245446060326049992918244295497314190560255008208181595251586763940324019387447620518991252855680738504616967980436547837705673656862424203306685115309099681360239409013945754760191213692631502166347528753497923300114371009854364412357298761877654794265750475858185012785082995544478035071108006627271897780970148561577941578136037440390173326914495059046593845351387868398271093844711903232195655365290209293969885323949465612526274823559530695850183396655171656808607804317390181873464312805562961812368756435461784025947212269618218697338347305553074643390155042800753159785789846388033889095234706911441282656477735378346740481324913336874386902909442862997007244302657131439582160098482605186903735410750585098647507434711502619467761232917462236739924160925932765543960986872094787446172974441090979209867743278049193036129278544092505286542741141428550517749885260746408415984131750543508533592987401465239007574078446506057497174383029020913655303786718001756541612164743149242579910285321560803125062633308086403962085538098989493141451428928783735679006400940526120978874207556664158504634359476851490264436623729781908032228833816347867258404486926466501302277307556863599640151006550234748228953930249985797459473854352425925628837926865196933845171368900523629325269141492240548139863043771742674596267594175735541833391029663978683834811451116313106198959167931845644179014851754259961125127312073288481200509290024340552583571412333053752802287590546776475602267886583414535964903795392323328406050847014229104654336351165970735758862808589849989273722800013572618153393788101453597508110386878767701319073133623290805201901183577262310301061471770171778150408378429314685211953674221305227211198437570776224264482035882082980736118310062182988996419966750681038255201238830656859198586834506917413595422706081323566441784835943525004498655620898893442645731335993236481634201000110069612905730339163619383145626469583040327794902388789992498241751247222620809789274738941042095907308090184379980862234407443002940361775343629041932504661115693750823349974121466818199022047451193884177615611337862729910862793050862744302305422957647066219192661968562750913522296030842130847546647272316459661170737815416652621096188760159905940559464740466710727820609106242266993026023811097632270929934902734922536939693442987176954781864504448700192469654419879618091110846090103973654655289033858650700022075159106762082752025016509478329967858535279203470530402723333803294785693377625990845645988337886450203687480969060262779196703040914389237630986693447461042981144653921864778554314022829332612712072998062632974660997734070947001924172856235939353126399882555740261805327216907276835496095352513226138630350280967386250152305480658776995597712516842541836908679380003704974423180955852892689245004326180627249614803606772253950084359517943577150845062795244359178390338802264172875379346049457046828673518120986492369829317904996789596358750213143878584023997208825894149817807948721450958503890721969600366873153067773695576317203664192976521275993040041075920489081083364202655607603994731794734602260369254460905409821402425978643418667818178628003380880545037517826657535049129091662450560547328979879924781489108678925303442464733374318853964230639885053716476196276983632763440719096063508005292946952521621365052675034626407133368759018278350298424260702527211274358785352513237789031060927620872611540692646923415229621623698842551201002719134468731720893347728317637442560676760771085577854298435750568420010881008487250895678366178967054972395536831440855025086421009622277236854982315458674734216033941877209029210528009505282623967864181868206495749616393645176121117165912744959925891327836918855623716741871085083642004261359956015414272793891275158843293557256303436429670391662897719197431910283701930910850292113628067421838105035434564364210672214620456729504740306012310413169746589231939540817748398501550961093904348395586918299523736214808877447254776237946345997823155253521630658583622808848257259542611550157882962173963961336408016813243940029353239786110888389268778726392875528154887525890120489848480495466340336350269629904229021012901630387727050549615500070320782472666811506418839932134173242178158939218981220887108597890021369329901702852003503171363585576589797152563323587175456550168510350566623226442923718719305889693411416782947327984139967471568251637608218712395714181194590730515459939942492695779131457558030446773235811548550760832584484926160610396055490450248340572438508569613720588023062090101155345818246511135947231429742812333737025491736656657024494025088480055817851701055078689984250809700926788685220957812154835828957398849372177073202912847179831262832655762046742244254120030210846690673879524003283439691763945801093578495515956298049099838282571756425958057434892019585800834608554377638596766777642720324342564714068190510199826972508974514268702661856615206240657560671468923252886980608970341432695169501860449977687171759143576361885129741630075338574712851743058526564468768614940159245110245535528429984588606450375887685610958696837476930821242686974969301544952693629484428859435240871362702358257515110550058264095587612620498021791243123599750288016448336962776237780023781671875972721489427137021767960575279197581788633044430790063429830537332732605415044231994705335779205553400538833014480353860006276616160196977392032226654682152499590720795340200450122125316168344771879751999684946590595570733980304408589886016435471996319504468549722637712275201114618020162750727247253443048927169383141239862863745250621945164015357925367197425477403266286334317092608907242489457612229749074241786007251856125913002614799559803274329833057043950064476437665075277700238783453992943864887079416660803188601333137983477329331374950986370030456118692288151319530215092488482219802655742857547826218360937341850024084117506274582632991214163265756443563569196410819680157060927033676795823605217515342379352542490635784164607605990378778042291785876809686263940648458419610761821030285133775075461190693869912250724277054936343600504040992688127584937640799988803869456192262264278888145120834393193292510937045677905642532230446862693005194421893404428881163890924050912895204220566532320582633485067145362517540216132503687927014949750140255594515710644104439593301760382402424672571314752753885289031638575455044592167785238183736287276498719686944036351442247134952550344867364731167453628979093226879289483822168062457572576131054875695993754665706734608682394752359225889646011153781591425807687288754992394764117471704354773421649603521646759105979457599074789939816851931081295028390891736763735176218575163390004571354087665255937467822878782831908963957235158200656004186619824999433786795396272609573560120683513741024636485864685575959741803935224821416546274931014029634933906071668862245834723298075258257079698729492716177024656510741670304197287185755786518425375343769563259027513299411006098412214992444939924047038780773934515121690064105315012441122637850461644030341700505831597174407058678668152519114731675683606139253108501774642080602010495536644808226858167872167875248972625915644880042332958667888824778760915569959189848033075508658768301901239008042009331092634428144016571940272974561825732053767034767109063408649574392056053595626451461354720412470853846656358564648434841000850595925188485266947714749329076963141158110562130424098787138861880888265502497702625006743022078990476454792110662419126915271710127152837133136631365721358752497818404926939488489908389987515103629980186486073668915180399034972392465551283418894352613776017289096409785142287153743316615688941149010198205164901230937985252738205187401605199989711369883658102461856563640549709553938445227912967639195677991340504729322890593446140798088060586902670344957604967530241654580418082594255702540273354024199101715089508225006791476854621727991797256024595320529060969779818633518843073346385875438256257747781152926699118056180573313602942854769611173882814014669903563560796844029415102478209496484558598855495564171941559431834510776460968547041494931721600288815269292732789046659464451246849124012093071226514011256940871436335323337749393960979709296169703083474624977443098825070242794074687971549176612951334733097765154587320727874430039537936800953505715498271029022651250251889723863838953443442991097983324585980341310802587624542506170397532875249128866191818955259449450958717393531784315375369858247777242992534836315216853797106306933564338295461551588160967397632555157581531175587589969075411769421105151957346415640622272878538849391939286542479138093311226953652947411329405029463139578923084641535540380970051146689591285406818928151840887028143474620509243393401041762451475628001001007891461997071829738550545878212075895253334324503495839177791125311631418724012382962529694123579026865867248396924519023411680253397812978330528827335806303305127350132317082724186514835150177618792204902827066638726061583877201259124565437123362764704865963512811247253853302659005944314487821848769177562509085876947084511400005428131933026819427205708712760184037111600548329730758538060192022918801994735420636899406533823355842309698554643201087920225608328272062233708444222375462672484692953887237565292207786230728718700337179600763825820430773616697511080275813958423962096869475275469051640363227617843303564830984450761369543534043504509830638329194091534703080337989006215770113900840958470879131247300599830093128183797389167526680871664129411051500714444824555599949089131087799050052227478418963803836148662067456369275436066977364477456023025317263540236084517625527874724060768305928956771971017228978218657440389547372853299106270481172564659605862655721799321914704435724935365090778100803023688264254440234147542274298817737739496550659093197936638743218323446417102759190124136899435421852911201837505046855920496781069731476206165242742403259189808434473745374408600229163968794240459062646583494394318087046016969990203804682172740040766309398558493547945975769637284150530412525871510871242321104702506154345991791640144635887009287380349584995779706785810509486871065549774587941626249329508472902785746678320424316221252449200949467645677819222938039001457386115900222685965083789680227020452193381941821590766616748733653164197833505993333708294421218618404681118798222334531664607530986353130794839588429699419017437337761311766166313628951345069879710812979641077089688381523109844627099585928585002992159660973810460184454521529225226417198134268504533220572978068042142624682059043945556920711645469672683958422854026774216139242095507620122475759455021298796224087240579602674686567548169471017034826420843349056713233078998864986974049782226771723836468939786745259731509607864525159669937068618647652817888349564802956577467728362891798940387104995280753959818498560830257397438759393636603917408116991983454789122899241095092399979571492005466809041369929424796863150245111234094873459928640225644598820468774062279541410155766470333553862943564270910138258962189163537508643843146556116380341524298530690727314978492469384440807514361868875723521021283900300289144090125741245454054241271014068835978194413767583103073635749116100809871973852757612324162888961136718976567986546819799090812710443754794584249770375322182999166073731836622262953170081283034620915044910883518392379918015604762842371599417252165131891397206703240867896793136856514309403358704171753684341656219292490593794125126896697641141077121244939352493136226378884626971572850909572388020023325754958353780148212305059916616570822840311026381387352179728427927411507862608790291084501845755164099380336452716262917106406451090659657864113067760921134901885544984450986097082140048362773708569248692840220893749112184431135904415768718859077400801146705389999780861061505093541148107263343072719631017360574743741060401883697120409352263464401468742889501136619055232160029438788829583543982273959372641482714260746595838276883605365811297213122911797877298174693664098474351514476816463470638883524065145472139267200547963085446101968566215125833599001123398495630622255754192980026884989893977501079580844175434311409235885665122306588901988108099456083675250596947221490392977192465960211866305411776772522453290950766634832852596468643115236906329580949804602409558214244496095958396448230488941736809589713276870780537673610996981893426984287821096727543551363787679954725991545942757558689560605492184533908551464417255218119180781744231059688539044765433921542669641256674475268230238943395867589795723821237590714844686538874360235558563882775254944302347123574663488261190959521140940241488156158136015435894162318800771633454935530404261380904766877835137408730230570690234462302098887729070291932527634326349535581207409870378530499298678079793226643112597942468858224590813925802104357453458457637667347189448834884473802885828568911224627772802600657702612474146783833498245947221914154547504337707297298709441045148090438037905057906909601606298028761327786728108274144272489934895207436877136979447425616295435062184344850434692767526974373436722516381097260198603132343621629875411105377759795123195995603405730023728068515910930695637326803481576577641135871411327372490006323711132068174936713002705069011185485124087852224593519389644331265060679315010216067351105621707915767145840228804677321067605364559261201794622635013686844930657331150808734025588762890840696097371039745835667981969120626638505653454154344627273710958570548640651154834490370321939727773480596203156980023270826623744424993195856857407523475911445940468624152948756824122886181363725099043275498270935488839750354716309535917259937648673923852940053254324926365100771042197125120793662700032975741194772520763161125297258376581315230899565465425033182008794024663194659271056872873577134672719993619665383826030359368906213601932546019097544673350824642418567443051258949198438612495079316187473986686536869272530216857972284455206953959512322577779370363736718999663331554088926632407633435458620480063320784391347380568795528936832149867790096176271328799089593463223155635826141131475357496158620165216640240698903616762182463838343869296739178733214019245060484518632866927920071576449208350641410783006207026399903376395597236933690722447262370515272339040763140433433444940691584918644782091809466680930441662723372387556897508845405913582989137589033542165178632245704489104144319180655596797846435291221669896542520890520885095909422316174691964634009800194464969869802414755280799954818299294263234721510055475409720477999695541684873860690829249541651886292328503712195496631170872628683459829004162826562083647258063723218218745402250950311420374881209816945340388087982726745623070631499672606201265071441971337240394749863001330578995818628668167058549043241754587772412363086497486516822286453357142733641269770769830471402643661536735777978342808381773364849653641032626720834629901202316020456761215152488932859479195730518853640342805295932074180950567275498686069975604973143151958001698529563201131368650102877150600701813467970887194834698282665254262222789072217178991183033842592129921601782123215215772314159659962605702776086818641282080405230795531856074247138504633649358040715374180260595738921627294283397221374326780503500092062168929527257671582286210172198046915224885034139662410103986739947902408152566056634891521786549126482039584266506235749431881156499846156725470216424410570689569895305926792296997701399932552738487038221085064938982629181802325506670567240426481139057531679548830129480521607255479617869270501971048910567923989142601178556631106486341868389185707803899081006981134983776099960262474489477466997989797822297749440718753612479149222492780594354950312138862847517871976317734148117980647330011667365421034799706709541071203031364319266657535290172437374169781274795749225732622098544751142922824262696546657933696826407581875130888993031271328954134790503493321924149906783050905685519272206232359240888267834677067383101017174610271850090139498032790796632287956987529478531475341946225509370868698943183500063380876258889406242231171433015427780017030889625536249743198643500305435384126908532310616076871088540084103640847022230191958384541126627844262380066568641927387326136305456267229206889291473829557288395884584412594037946603024046858486920880173327755410328815082345571439392652364291791411374562826490836927944373184474702428044804761483014301330448611170428260948574037025402942383289666352129975552370300743106400595186472482143828569214651984755158787202502803085740960229615526688233950896586897052497081284764249502514177503560534658029748768503388344299249049211956068162727926956571250880654685623897920894311233193446258488803585719256037735735803774320114922133828010716647006178705231729839249600104799403770297131302611644489040081312087118659125570087526837299708826755669937736403319794595504278347458953901185251975195754342937711976273958653895337489148002614953578590223787689539366960688360999494027692830379884232188025041596972305935357856841983559459777918594754016492870764192507212428586849659371316785231945395828073031089959403885590696197464447037858086883823528033673433878766218335315912246495713866852372065959332622958119213824435791119064344623847862238378149633956677946664374872261589370084541905942044614523285925938525933761086608236128073381982463206817486258172148384211660650754707641665408519699809619802428858781397507631741607098935323117665221406088171685879473519626490824228063500831782088813912975752673693464952277865895295632753527372239150414496514842278659853707379595750586087162725853119992534199174366873539408344287495804290045905362153997371300059711381211688421817496540566764297982869020729582690197404959563279640341985507016432526213287121469874359148070571292695617500187027719457121662219811651196849346569039081320446946759374615934637798025582712436865948249666022221853120310777106190576079025548076931214489247330849121722466233239981587318635283809212602730461703143938949241174390370524117152879411473916765939112228851516288540180666438637028057211956036395903915878711154255378150146983377869219675669891685838149678767034357095464575695026571988621576341942825665338030067640210772948073114344093424101288107118313196340807854354831665726671566908926133686193704746191839814618378482833254294182694528717767848592656197231162440420627059355274539161440659963727469939736588038033535269452650019075594587339954047601261952533543560277398667845960630285920263909090785612162910654199940710859773182792868114020199359856263020621228753017111306320337910986602306304097684649807370079936651918583061085235414635508226729787390236246222729742039207636706897109194837151595365042794293690512354411290436876046257418983538432158356769828038458434640159526686810258554225344187348187522068253620003085101702249464594664180789228519338808898195699606909501187724302274344666837497385417149861373379585524808798737632901071243345344616769730423058799810329152428073224228247934549495677791516386062280064472755927895756108600363207924021597833381592839551433604659079406268242516862722556130193519970279854749099216983042563968993957455493696516059507304045162324955524172183417669268156060207721982121981117032350273822625914422746320686674033310771088564220491031185683897470973751366790753523119296765110677525386259448196309564985296939706041571745468221693751362053413899745008464112392774075408226298705103661421104469305182380122148611079347978238035335071389453241467374833603324952332693347997149811511033138019473389748420520716001480885313778952843010638990197401379117776630410615697180248008222580717820724706259064838133972522966392387586760839282085963354238405969503445548836441215231199246969277100172432282824138926313490421091765179738651429310837252273511583527742160100911023241219557069961852453000705181108646650835769910399077695266869627923063833184707942268044343735896908196290935185756079432853682243535718338467458330840203696524263856031845208570117012697398654616302466574761750289283443696889122288710943307750288650278471524035002411901871839989893681091050394185477188539739247145499619851223312467694846754102067592159781634836722527577435203524243474399345544686593091208938151947302921923893074405757303578154902537317774724328392434176711396258955746003484917719061848343947053955816335175193126856168345046446570093550669329012217546606881789499957782203321710201104600362123928304863621051430053056431138974371316742734555922507491937381582645143148991843958391330561062523568160985654465779741945935556524586535878612127947859134376990722575834439738683877249299034912566459213657845465737907126226480938975378509962774549634147745196629171782952760137783160627067298178966833511369175316088841682010455613221041599355802480156172872669897753806063196659055773026580168242238648635758834396558549800054903742471976085496285159705880244047621650920315730358924788269735566645653098389395587981248694039858983201430178656003676604548340848902512308237488330786161046375190249880182392351346314377783007455014758143246768226012361752079105784124672038456445549895602098629863480504497167489786309372343270278701044476228196771174367773008084656392036123404124662029072569718819303100469387531657717081186661033984139275912674441018724213112546814826106478209371151372318778134943302139979119667135951849367820138384462026134601590720985449588175926207013717035838260320652667419844477296402098225748755680715870795099080032280202097828439569751305277554141340504010348454377228236313261293613343835279017016843471311021467435695225852029755172056758065004523782770972650644355484092596589109764761179081607500100932728517875603784021364102445590288599732413090282698982782025427157161086223732190164025123979013576739539176661732289398852325744790357971692544038071359699066470492316883246934676764365739637101737539748892342247495382065085320872338857209722252013494104264945213544075825388425892016209769565115963544973882226909986019703028255584205177303160357719007348163660388382434928305873381344693828870916076610334477407606965411984995636608233539290489704445394834340893608709946150573224974343629977709334987055011148294013435914002414141475560105737523643908202898003718424359952004759351951261065164743786692415649868983827716689179039596450532657717289391197763942473740820358490870323411029495129564049863483038266139566175218357560283719692827558124858908363117432120462566059914542785006573930891880004437015932056134161685810133587500283220996805927953338032519042922243033501021135052092312179402336290226280515597083777937152874001066788426851280035383646543242714809972910989129047362023803850712936610751944803308553835914970067978873098297431946830344786766329819861766011164497961279177115488834122723036326620748546835558654278609763212041834983785813347981369946485771468872859230156364850642277211643324055720417244057950695669357630298790562056139494024086970749859197252917011540651540493420755447382556788046183171221006888131465299491029499623444460534207700892228364750868189268007795919599809709524968418943330686849991671785706210431491792819267500941137269049243633837934515287659228886972430499732835071965510918587763400072165210210629206009833781961785448035734199454645354113433688047936716450491887841322552366697643857414250412599751367110116768251409372571494849254464955173657723453514345058030790370089868838083199241189531548976359207915269042674232250592849284540372571540228368691978862992502577532074182307807679797610220491

Losses : 0

Draws : 0

## Personalities:

Unlike Rainbow Dash, She is a cruel, and murder loving psychopath. She enjoys seeing her victims squirms and screaming in pain, and beyond that is one of pure, evil incarnate.

## Abilities:

• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesis • Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesis • Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesis
• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesis
• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesis=• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesis=• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • ElectrokinesisG• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesisa• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesisl• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesisl• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesise• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesisr• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesisy• Aerokinesis • Umbrakinesis • Ergokinesis • Telekinesis • Necrokinesis • Teleportations • Immortality • Speed Boost • Stealth • Hacking • Deception • Virus • Electrokinesis:==

Rainbow.exe JumpscareRainbow.exe Killscreen