1709975946676696989353108872543860109868055110543054924382861707444295920504173216257187010020189002204503289390454018087197576646800785374713893894415032333156031462264979150704341969339233155644294885399529081982773918632096566299575878011628675787911005283635206166999810212515541832024771483587819065748444698417346420196304129820473489026076823089071731268771514451537574343972022722996998677923390713553233562621115235687299812151664522294503739806315264641014328088922749546275689425871297482420336348417221992632406533754646666200430491544006089272116404696282486131078604417577999777914466534807462507992629958474183046840539854878815942728235474850297616768551249600431206060947088558794295603647985969216258174812619522140242662834448795597221004780736102540752520887949866495703498302982204512930434346721992278008216815854196944250613612150042884231228883609924833533103410148657854063564166860421259021240265676935127085285396036271030791634803121219860966458337322718645404979432052646278844484060859056149134449347250327664042469416724185932125093519496412145100292146352236699701476162949065519490280656111697197820431097367105149517282531120881322284437201436547046980282039507111416524204778853165723111744377888508107438633929398616316358145221526660301200018646437651373831472304873281000605869401839928961640015080807323970866789846062036974010279299401482685800192114670720567222961026280999387428665745896590963595877112968878037642596630590616190082917657046682752220977218862570810171240357744525704613016361223016850133401276403593214328922449939847432669466789703274193072637001829158969007291314973241442568595616159045059394832012456670904160724800077621510992649097480418963853560492548696496839150511921799211648784328184628658219220891613162543002397673662736739579498041170309133638405641354120260310023427454932832575837256754357830771426407772966216496481808958202369026523936784317576575015098414977965310725482419946119040494785793906437973819921153372723004625958038222732089458550423146280109021975696804318333768958929953014314898348186653645553242670344982458061012291068074911179377947598284412021392340830405935005275578983858389423236001312139436630522141049832077822880186915364790034207102170502555959004141740245968189691904801375032784713058174395540361009865978627189031328105454059510878490769689399574025692202317961633322961712225506025014877536113701523251697934749135924076919183296184074296450858081869694080244831393432641663402432650285661290483093430906530784781558208998135649538482023734570497580767471536967390423648395066974099289213379583504312518219164074580861101943252946063577770107038904040757232436521671789339336040754581514074015235540319607888983492426512490485119464307725574266479817679282455973368045289401765554164094500345609382958137961118218058408905938809738078787446983257398272224431838249085958958875222189170652409108473333997762677102648007096583793936015871844521130958165408468904166634063127491687766240931536505037031094205872398821403772776977260060210263881929449523382926536040192990900428668069167351009748397061158496796669024850761275142826237072964890807437731399540976472907765360895497080575161063647617179565999781025798681233224671267589461526278971947918659035268441645161632947083440733823937591354155902221693181200126217319761598446932142188410618151223555716476817907330495746598252024916183350391719568604252490291315927328506095021682817250116937304299227428711855093029207223209988986569304833540075699131623522343736426500944547750240274493464010136172373332764085885149702381184813029241045536482668759602567474742987405611505748960247321999954422112838653095238994343479455533189205699354874441192622793870636804430034138677377518601756405713666032557497614157347258869718155592730275996804732726547867034077219522118278022114114142031344724590411908742887305751696331292089982764886456964573258232632688642562437527909945891563360557638617490507700588699932277435765254093649756440055443429458331882288828606711578962465646486554415045302781903680498537739891361701768203232492349346421975321709940364130681601574871402334863937105823192422405999503515450211990269283043759307777221350855006256183311638138623662103974956042103918107340886928560213252306287159991645874441483779568835218870031289636588637389969090372437020020818329008001420339698426678407699773672829617727599144328965056829107081344211645886560069046186300792895511601137227628291317728495404006644836512464123819049545768861348237292676785585296287546995515186025172904039239391411886938609301828993562553046207029710740076172109319267796464408233967508254669511887580056374737416328658653476958265798033744663876634678794269783250945337480136920423045192662797668359732013460999705633895557206579876297547177868320135840941230426752027599162247132835822167649202777826061314967833185596152165289465179167084573977124137020214850687031933430400630082751137493814115417531380452625586052525650911727284964053113485517226495619084933791738054914605010886063493477293010958747992331399008705669268030404694883965438047196729176205605620029559584235459233772555761299173921319821290857986239803820832010032747076987327611610835465501466507820102502724017685524079187048113878469532079988769450378769244511058904427204097909215700802528127076746581065384655587164614987309343423912289195583029675186287204816013903822132991548775446231882383940551192179067378738383894506965326325707182421162651009546527527906215366143396080437781531998132178311559082704174427881812106627127855103222262735598190555982944134631174903940295956020472112286495915951763719545774352082297631549094031440376310077637392394461680083211780705266725669995887863835411574201372566036396642214953039593352340273224165010112196444075886069011841607251345703992943018099843419014985515888080954991245208360858648133268581702167011757634773851844846565340965496333115546241788032688415061466801723305720016671529864041845012480760271096453892927723562510054952512555289144239235255064590787749021004582166658671744590232305206445425932198094767888184179904705922895345519757380404128269479983554783679961127183293272283526732370583506011583968153786486233891435012893890978596377546895336742137336669235751080250618212251043350872923833232229339324154293134194585503398940095586612517272354079849901818180642705286652992814182701313901643947621120090684519859805495194514839710660778089086657198189343875494503971493202129050275668483514763769974882897819714795405489708306409178819555724968984667050965279773669894715439546239268557140208625898887416433363951631348952513905744048232960727924969749765139294835799840523106081654880694516459097429515521788243857891407375379165406705537675341875334846435682894265868916697684264240595782093319166912028529746864537588026215558709608809583917234013030132145707899433980035116024973399495859597110811729675798610551503033583221920376626492870777029434953761307375297844806530448877694791427171278628466098913286403700363539490427388257144241230811432578754157269166783230960686989782683969651289822656799514253460875813343165908331087894717669220304269001745589177121515383683779766781415863033179962271193315054773736751317791135846708580528081164737491944141466380750065549347279092808507643122678206960935527121735516981071430584175443577090262081732209639487482189553571773617978797682329853512229792348942594889916536595158824698745119339765848088341338804232723622824742396824500063648345683891817567489586787508945646368247175654014116855368279849882597028173163699084810152704990268340916353229520399957215493539657287938029883264846127535176110100176929078929372173866344173529639965159578289527468579862942892274054152522185462733014592909197825986208504712595507756090908935537304483263482458987492869646642745722372644494220135744121966099592488688840533358578192961693545737915959515878217258518220473982542468680869201566221024175877430810292787960048260479799864153684491910665206935788361111622115881002202256777235657732087480620446154109099570634148578231405525105709830612147761631460726835154933715139154616117436474622880510761423393857319705201224241594525235526510097442599624449711440728419225377102322750137435437734459713289259513625458459900591396925297608497345693653656610616351947728508707910729840343852588045453836322164804021623956539498407584776204625524876730116506881305926275139877748836231324236681060081587545466929759292003503478774749143845073689091543793173566997119707637981386046374405014016472675282496285471225435759443445693896200272158028118923088625085000640131415463821594124999299450164797065706675954175376417887620297156798447723152928954422995256665397589515696319570143647190150274360603721622044612286359415403926336024309105599802227072834516313841018406919158390462173369926083199515505631591111159182302558108059478456355217980708597391991453151156502678492087204164100361980238141863601672593768410715663256849898189927187674643552979717028053876086468125590319143215174668914301935539487217012898303988265158340420446899023439646275416994089908677611612799940281189136416590866892777689343759084564339538706113974004053311470983804590663356371044556770307187980172656122073254832169835151052081733854415347026643919079091681621357455491666075094835417804986695463918415454315745728245175699963668723794105358783604891284022652413247381143811391592145778252439535660838701953912963168940323416575094541752018770165958042919006647499519939355329646273846976579398467266616943281730916381052981074923190447465508599326216205212016995884112153184703574022467382790136224441919048025795853464527166433233974365840205473827396582660140490203832253099042454538688688010634279103500469401684905612794033871632052134122687925820432927436125867338628799891832235762069688696308301163620779077752862927533964398133811157347791794768410776751330484070057857732617171497125043346448143651468833674398109112060268008838233370323085708131392049237801093854792347468274684508349281637185641576660664992344979765455982839835646301599389238794517150055948159358173987164129202738952412274145593581696077315798966734471327555728186188340824020512652831911636832520464199499906107946140516310681751821755382675281095518805444813619595821786238927393931403732772762866867238012252026368890429407839259873295770439451928573288540510771420151584233491339081518589929661016290857391193673656087562778481939862391166196730913358634226627840718782517527616682748714407605707969463037856976532539238426955652622098838914524077619755083127522104253905492970120934964453541604230105889264743450991310994178013496015915178889279897417786559251087572697199125970564942519178430317237905616435108543269717470419180043351748071076097588927999101764491282842022945913403698839559446629281779270250688513960753295397225988948603439005624783818443268943765238837466558367342466039386950207747384397059960750940804543602925629030416642465656092700200209993643373441116361371190032279914884705013759684973945906534754855999422402085888221367168211461316268583771128241664221840705475547202951334338284635614780522677439230737040315397645761614828319735540147697830996007090208748086840695255728358997509028263142056994828163664671814014638073992081664470012709925393155157712326863963493148742808463015923437480633862782145165179636390152084416940888350761455436472986063189014751955562893223401654563346565448910325446113799674752936071174885481461225466891754640218819319712616630763130931215377894492574223719044590106534629183717781191515464771635734054776087023076913050578119690592271706080534883109216356076028770356025164884699219395994926030098257153806032208434049550010587999721007499805603109492560478507239504673196239037635555470719212311675746623388377962674812391622557012941966987689528647574494541055021207263998534753714668065372549670471005409771951652172163350163508386504884882026928099556863171969520997829927547514864597855302551142161317753388102555130305477641802152429507353664705206003404823550765669299122230626605438884259009470356053698447748586019006846689293691160002662811574114706082602294017350390485195867671127575201322749259539566238325227725707950720084969963444913168153404066120899057155175939622750073049240240350289666489546926337435825952981469601763920302076667425385165931982749225206494493993211692262705078140773881584205494223097913238063646139235037048276168318049938678707530382935974806258757444778275474965635638324251838530300504925364184599784302174587596412821968071777720953469225058780513443989701429509549681767750584483886138836063578148574172281474518309268042357313297507855150607063819372459123683485035707658592631789059118374592553391032483342031946032397807392340471246274658190263302627406351051494358595302377346996324054753548628104898115900860796683158713316591450783815533025434954111697056406869833944859898546956354087847738412631606524584927838477049369874885650894943664875533743458168351469804296364178493064429761219161114291670901671787919424729655006183067746545320874377826090502432723162661935094096429244422098688222154179301486885779838789558764409602401312027875229489853635425887207386238196094602098875054156597447524015947798147911038664861960686184121149643676389492753708167474998841417342666135476654916263632838414192608549496435728666925462027373995319155845662612332931587761920496792502094979054602258199640301305855550920425684742829481365489261513479375763688316621998132835115180115191164818538051968018432849401519286977537264612312790426512764372296500790277777713958781057216852960616957287578277317975211318216305910618837162349164623659915993344414215588239730674572844569567008362989590597513430147139383871971775245045892887874947574803076228569068226856458331463126946757099236474249684112895683315531301487630597755468307595055106756806823444047767979602251771497957308557168866220118339550273188002746774019028947766301617081969098021692443044430356822289003843399909503253633990233119306128754593335376063734409103328298048991464878032125177854818219754414244418658708616307450527087647034195280607464462584305327291118558151358705480318155584414543779152652056334073511699301075011380170305999501730152459666892032763503945240339487478416144229884869495454158573758680328794896010919599565815747601071687701028026739406948799350092959646773247710426805188663564681073838842506487099788526838392759852475654997559005465357215377029168986805434910241549163668387594547457167947215894552123315158466191241636376591308321268147175285841751853385081252205098589222259076927857808173222633382725203435951454834501844092390229720510490731707169908543049680632059904114808084819488538045320276609727446089071051629495836230385961192538684456464121568588211903336080500598148133535663687060438622453720630251878875489267167679502703467166921208791014842840122488708141574192277874567609301688423436083561443983360123371641154589432784755451735440068696844732272950155601199251099010124582186586609137717383821383356601615432630155527001398834428130995997550051923183366087700940829560189675952895204569326782248600527238501229509690912138006368635908824927556429838866534305051642770323244521933720210664070168619643173992491110989438774888111833568418399703892306766386042401793647027153195955198930530880307380377104753838606798262417446671475995989846042118755664673981970920001027841325075974759840521359840344540501075094031330915732707146899542312392582309480735495427001363798146244640530111721138875568532696418109027896653001515988455907578453625833709430096555295189271097111938709619202283782357721938954216972578411601873638256325388476163535208835960910128192610695575255740648497270851262745845079957253408722124293107491735843461985678106536007208319658138252750267459068466563830163890756611949141316875477909971293597168599836029846679211113071865823879649196108104492331439737593633322855661139192999718458893035407605008643577272657665438910011269437512648376533999804380776842177464710885342268889310425389326851884929662652553791707255220946618119960535644847879704946715451364499874942195223233393790085399422316467116231304767636858499803738644119339715920266338399529142324860577995254938841468652903671464928444019156855517367419125925214557417394896980087632332971988859219718300246337530271419043426630249431185048476522461645709006651861896689561546922952562328534428972037447452476999259287826899589837391622774586677837845680915339920820254854859777719880055824819082942688639358263493155213229858871997696741743673817597409503634980882716170908196505839706490865907488506487624851730166492281066856068417635102710328765914077081432530151603005002812098993528028048383101060277055062229092700070259364725841258050678444225472579262603954458620512584954432214628971983702544854403486891988643227929340169108795252083771641335954306970225076395016400174890398234634823938558713891603217734335971405156256977228290049678317413081146964869798904713881474848751269186649237062978403361266998612266557882684548606225688039568951006948961363558685109156675727355009847451013621199097009534464761815239736319811380712947971515912584297881940079949809304980441189619906811344538158973875950054405377927683041369324344970604584132038616222100966338619094214114892539689165513982964358100145847173066859976958933585082965485157754719413898972562833978939414163395393183977059327908215554830145290904767913138320620793555662571384073031794138378324384963355792340367067679314056594065002450679328444456843642628985329701239083530597220762402081695846620299089290978070698088055396253973868167660053039909520630464322589204543796731488502114411660088310873336784283694090069196811459740353159050164920380750936446270958464731003004390530390615993382944222395381414760650416401377874053824184663198152365588213796972674788906627884980000524714218380621071611921362277287686412729804282088208860272754453163453572114382635709786353296571726917291485196162423481485186416223386733380324702697255398241477492333997997151271166249108549113906945580210039006826961629441170790187447571649419895799358674827024289750749718017120163672671564083245033849524324349665643977670797945719595123520693441295154935077826367604488471117447395639074580281315846663384539020760119063172352398278761871315371418229659603594673074375449150427005426328260305316849566357114710765272497586835254894892124147712354044029371897729797080170999859988230234333634205151702203464965445260448194947100334515086267806126524816816400806077839167709175310805237517496253579951748588569561881843851710027797728445815278784764989354308272997480301973651305996837403915638421366845606486727911696138772998471764384434593660633987751015498276221098388149685901731968393570055269292598096615084544758646653239215169678841650174748744126370099260551737576465467105003717476764438974628932911093646576651293324131590168770106589320692136719219644099874676088488118107759225592507240911957217170364154625893771472333008802434578126031230929747470947562092468629174731241294396764768096843000339339974499279948005482375692828367229206960201767567790608427700063363159313048302853210252789176977565409241488733644717142644039049988233419605155708247490959126620025833307776075538997642587059465632188654787415522630990170889432030924512988394105889887357782638893830783390177938790605030070566104705175826573253599775432328816339790260186394151179598063398470682396143628636709891839978944638218751311092985366208026668447202107639075838391288742564073482142059529209034804347977158119775790312323094168476497203629895406642371398224382064894763749686633539904883289241035276248289864087548953103352779675331121938912937757224080065305202050194117359722486221554801987806410660026633891909316420249566851435323244723751952756577247967431073797889864232994187474236573611768958634064360196274488078754465436865623504457532713657670361980678551776415041950819070482673935286525576695474959210311364612653457556007694316731120564720392709891152457002504364584981942114173835922172640373601378489629935318698260350725631462329155544797733955630864729260334636189950415813279133755360300930542755548042066393165936084788562905619362919113574370789979604732732025521094803283725092576778948347197886894662619138449790340996697778622063544368955305615600087653242823475465977756348063686959293045151447428935975950755148379638886263789346463847988545622769547531773710722346947698946785389009195399054433525353985301462443828231197627847377252878987546691602638661128582382135003472924701662979210739834859518368664928059727839729392695386208135614752117416206450931482625360866853213341552064119302676505863606108927485474933598994293032819112066300802956200381123028726647190890226140562074583009512472783492114467406641735958164977041396400662294680927617689065961862567153745980429208370696637707902331433592763985941061501404545473829868570052320161384758901352413665073008469820692599428684029457533820749304397687790670763488354247700555783528067376327653989592227365026650309393404706234213457508421088583810562007139256298098783325748151648371690942971372595803765579341681606896228328318815009527266474853166958000450340972052952456413594821803431835045637356452043792694658712832116894105472942247764641112273287024412687581278535598062445326091076996118170926640457653051888639818254213784119576022003637435124278038021323607984887140295637469062694526527960241410325846890546691292222964449300565903339000984432653524186713333231904305097588459284358523265540491968963310756967471526195215631803930376034391405128783451698037614117235518384578079918013170942671214262187085828648339196979728609728089895451646888761392799600581383873750048710637309580372015957874384761116524914620640318093387847979438877722777559121799532046450671666859479444531523673161768716009201729224181002958893429739290972751308335960504001986595988121815873250205413337877679379137412328376118356732420407670473236038493264647119201272957869152735680648975172356813846951492532009287358439636578550646924739944734610303624369970419131797191510592293535939389974034039905291728461846583800115717432104795299008975677016123390782623590761315893558636142916209321393425599774702071499929936489092994417722811520350183415389903460617720681533668336397435004517878306994430816187602837004081657667932433343922443272181434018742816707023932821468425421230725330077301998647326702824506007186824046887311170145602529629780502745998432297134549261825860761744817265100317539458218190439687833148067428438744964969220705943189973868945722107142808119086507685775269407186704533726620587417590277297302807033844016788074585024097057093047844663428491234473677024386020582279154747482087886115472563310914553443458003181055971704384826259042571275596103486200729030706104712859419077440274142246597786662624092194146540102339615397350929638019225379492322381070141549408117705131370081195835972701662859758586700238168274010927256442694668144105650747664622753987119078295996698839370828152955949322205486839403859976943109587290828350338202473975733464149653365001074266254849659669872681191818247570022516117800673451607665279324342112840598884058973632477435746619572436395358985947747969807989609562902207945784208911296967419302146292299713537118434418588798447783419323663539337171570068567077362617328818004696596299844361653818040008197856400306037186078451871326350267643162550929001280119350020313970107608727757796528455025619431388202829449211890294611052371926356572789428973475865932319677714848551267101558176139248496265896886080791431291408023267798004521819113934934253248556265538752581786056948916915486739273696298895279578570904485965894077112011181156157351897908776560190655993124750012372529847458440737731898269523942796018831743539947293955598690944455839824989651489706445509122730275987056698075714343073275034806269424347664175463942041916978724910039539284077271243305291113558918049152447126971008695381180121667019138544318647991788759767893303777944278072251541719964851725383083067871029823847908294477180543520676631343425655434516218203821143770414959524174494343739667589554648600941875382865742519960957661128676329282109383639058402609225669473893437412379940884240369030183200704135268991749603180819621435142124320907801961952283216747953447080499033598003659644801966879675988973864847490543359713677855823871816263894782888611463812608491185778529366873266854533095000934437397303026308661632535196653826184184777512821123005658876742432055452813370405824719280369727565584921118623910684082738744089509357612375192992419967499314019011970846115943065222490285631580775926384768446864844344262284858579324010711377930121983546143107835140706465972697072139293176277670382864183905684368284819313418471736577503469763972610970171377684342572982181978906085559792696378082641163468533626848894209679268824933817365763263093853439193840425869019182221525181977604926428261223812578858850210128286939032157305384646380258021047379429547980554094846879755941811044865493129977218630557632162185515268210870637338222279132270840894108411506138752380734117183599788610095628681064496296136234679081206593509674534158247957083500739909104170826637842796840699680361052524965045541841326337193629422435629015344451063932832968606457002385220357221957812661483852883796596706580658351282262513663685001705992302099014748279169258619650781710440971363895463480794508966249118978687856132685807348628892074037741902278362106140981440200941003706356707277001715490179302832085426920591463964079581548389892111123856245360094945445519216208346707889910059058855390310281837500189774769451707653033399621722418128825159035113982038936388189804129122929548986419816122080146315523540333787746118960403928490897700945691027583595366976381897410322455654699335604084632190621073572407984721406023565239874599354049777488777512358226809346149311383333410427784245116438055821634583164244166007168059969213844107887892687073594302692407067533861231228905121742382795723716547294768223890486324667004161624437640100338119249186723686888971152505605976285106651125385192267068184573212312789057109339855532384061170755830676855636620607550042339164466799803179286480558086593557582363255242331283895556759287740064459331676619372582192824753497898000817138656938033332926128938640706107894428943773824123029658932464232843750110210054298274010924984402584023180472168555418364087597839466384752823398569824844767187158207088761838470630757340952556179869965722104757472266563741070537607511678882687479551519391288279612371863730666343791290219060639739419831234611944623276568618965265880777664802631127928701329259580744416572722493621782123533586066492633313074359739262675016960907805750919121970956873710770077703795938144195375930835965816451098817723574329492031724522316594285009693147866105664611996883182941654381260774856770126077638293580540150564621800502606650142633771448637749724656273029345668228990363959057169751633541938121596511671384530401846752109915714448995526956042730406343838315783006638623336569027070653686284186266273870087791240993474159585777737983136004286344371257587775304579134582134274683089772195900318055645518666450855114237559957718661724720667025942478130575215478428794940303577804432786027232127911780142969892364278534363355036210809989732523712434177468455992565317598216592970468008780894014797933920818374256296237426945428866610241681841227117456110793318628642959815151052314185169139997656856029552128147899820490586847160223656040817046014166145808857056909144206956723105004681570034034971092336652806762774851689125972832804949213213449571501412251183504797527221510292661579151176805031293512073987275104044454757603007783272237507422034278877216816950650746250774487799951263791160779805787717094336470961634040271491703850162741707745148689497748687703471293361337961565394206181669442433569170168933446982346433873372503931798312478500838437144913776122356218123762034603823115014118461142161174874946780869395184379547202535646086111733525559787640569568762447174866799492858281446456936366484861748595023159586349295561475152474169062175519333945274307184159766076013511392591088876580843952656811792636984251302426687269929419063616402797195326242706296099152930224418282309502140960572658689091914760696925150923978812827103356559268108439063621272586133882748101026740505771382335930321371471471029175034961434969117208046205515763367202734182300471854514573456564481945762851642605298527944717916422843164830437097910575556504125598511189412979805780454480553979314986429199674862982595444198970259633605018283530329212172297863112026491257036649907440070253064925725067633990786597589836597836975267886722249453176613760532353244156286814898498460478597882314797276879503734835169310691455412959921523469961430380002953661028840096191593386834045834579588361958314178079826734003240250412598415577270984584410729654433924030403987273214029086355148380588048178355741848687672667325727837399700967012692906024294581533613084165240048634993942566597854023846062636709270566117416763218328451336019812467889607386339053694060419574106999130912698168174386131443838881207526805243375641464580755102096805349117877590055956379778682108084255895739554057927274975527852855761823601895824518962512991736141154573365634636153322646804205691374857562871126417210111747419278256031913647921928946009683195629888190581372779610278548530041597611691137604225857376455909915767402835881093816361008163827484677328165835996396490398511097722291846981717491038872029724277157532309020103676309853099840804659221093565363485589240107366972477356286842783623767772627600657859579453133738036171186772333074741948768394455203440702922620570729968290624372634224308892307807052789992721954904293591284981979622677531588023425907702760645733849778606525519033920788846529960811962677570942829395606859931014918216214129607703615579681865246461236408260259649480604571906766148670333658618957186011252310103529839591982198947425566574460797360917350813612800436527226611747784581031683924595085114899351019338896468465413908680124857648595829915527217523404126110254154713179517010223479270999781445522158794176875183245824990935988902313651732548819957461412171628596587428040103996428138814106604934679705975063033604903862766186606827927450243042660124747659945226005767497655027470162440482476769804716854510038948982820738641552780201330009421493982822885172880615454975914909768899623370070724266087466710999997096247346508896151073428982834967368335133321449698091509100397941600312596268038734330211110428918609881994470521532962438940488676300823579489265123468349967465500606374410340861840565742324855038359676176527756488902089064918697711676284438673891492331658301423763838688012595608732532105949111703991108333304675130811662862015977131450394022526897060217377207874917432955606745367853875186134499201628994538729319970723540536714402934713253831970507736241124768682697915330222682223365621328189654610002207989336563071453146829686591053913871570323585979117162875695466731201029709981138726025679859728425209324407430202335704927465583829364243240996155111178295640333296920502076623679679375276659803252453525249643833883844417304068379238574896258886831830002688009571518916759868331636729025289191066787837935547792647481857917951217221040923903388433145895505969202781595014826119533146172535682594842063851297838946574862919792382659527182931590053511503457771872271648131364053415522071547934003824661299171230516134682221601719273568773072624255410337110686635197102934192141661836935796253886751964951289796178138750262630877933096799117579463260257495558303639620695491433907417239477132901468868940019636104407254660049285434240808223713136582005645895405563016286214574458371857919866543896387425879239413517895025294876076883433473020988211448053212816027534128632109860181938042633782690435508018456771812559857557571877190343625779746207224161384795244992710322706659387069098429050559026974141817496050743436834100339069999739331755497334627295544476914520351330718319716245929825115594253395925109507011786319714621334886260042097191249642600178910958090047433782976470023867086204406966036101546298908632698850814600462695602350988271280715507656844608895809004183211687611059063095689060726551852323153096014867855017896758660267635488824047143840675464352138343311558139825070978905932657620858017468697352261039046081481149729469071721444060339232864433859683483815451133646127086953378697559404859282841213463825824883788281952367256333423002268391014418402064363651033430826577122266552414710277761736775966149850420420141493233152518486377747413739430035524980616855395148516886519248144989874005865806971653055632145309822486654597321454764110270895363027035789559379917695719914744634914323912403358599393160577114830700038993147088904389094545995104736655640957092766700764748903430622388665639560993604290542140852263633902710429144351775845797152652835022058883248639207750440869891369241296662466458516846567976578685083986624012760727604584356146722351931571132421336310983232582855359844303785060980041216230380569358704327686398413590836018503283885090621935506168776504424946623789271631063912043040589060440383154867830665214144630841255401472848752055650360254872562695567712568319689332982564429159233557088445629968740377560035965214652423768193421837897861571141138120657663659935158442731128294433645287430953204551477373209027355937028436878934674760214179751000653922088646058259590693896754625703473099017388327615876590252041591545478017448661928388795685050909637432765351578986665766292183317311413528907291705886782433458158285222174472334565897640706288670179777837286999271640585330913933326664461891197020983709035447565036399478787565479092387574912289180464173261014021885209633372493281387062178085072004051340850124418757947260163389418777057408873935020018541440236173085240778801209244638482819745052410249934792764744616795740168272567047260975730850615298745407558168194781614387200665374703799453134564812880672674080346007653715925546594112981238783173614218060930979487438709204507930401889199282900543723821054052990940752877656586485744357675466642042280160586009799952672046437239012026787759032294725698950321467815718457969335827500828103319216423605674357572848695254168001176225088982386068793233623895752446724593727461438342632552294586945263188567704595506850897079425529268258061472788734066339502360341124116319648875254386812361413553380568065273159418694085808980403666149990719621307628227943760779146179567517558359633915284358032039986705026723947994567400419769044203815507028952365375689978757276287273589859478588436933858508588493954520201915699686611169810703840583393414175453355153835555236247575268200415083647591443115413783562077691055134725804214786376859890995338917116525790011559543654451752917669046941768886410772283130353908152672610591645743885255640029998317218518896612678274695215144839104435682595169272353413040191198212115933470741975284737652425390623553311431189728736271012445146565822367704748533325745004169166986624355552894017292720698008145767202269211115171471283141927848695783930876808926633816385936621574204440096106559578357509093259893104589435929772755897871553384158141561035777333107060882385174704150339641452068953398975032854823510530854768164877412359690059162367567352553899658504444366898616789764148040292657418355828103525972819118986000401695190135404201432801970249557276976951728983485013530504947955858277964468522914877828365686842749689069890339866380385300857437823195057127419170561544837789238200381670417015424753922084463647703530321802216180883006062463990743595291398366869170055045716920352136517987480947571075154387799116623019689037803807263077243242061134105623589717171783258540960736874995267763867292799770950770502468055038158883480904104638717409459593401868364590345527221461732293257390922403906996504559187441974436631655992296820377689840941080961071058561405844683726689965633646544538303355775669620237937022472613321402708142852407960579122881421318728422578203398775591702123036688909061778303761416965314722520176442513553940372053495122547067903604357089340375193114281914706917722242566329695679404640683727010708421480840492757197647263513441487938263875395036987870556391765853261270412017510106927770022415072755101682192926859357160128718099698615053033315809233486856624509601819222710753656029665113246441066771813769811364995410267666871560657516985969415945707308074865643693949086387134013327261796775855076890199884432592084390024337412056333859508841064207969894160903655697337676273527502182803282638789827686676420232385340218368200140809056571762742378759785238938691860737902261784149406051199553668928338631461389376747416536764370995234483677998989129543084278574703833638277770726560971023276239232704386915535195132691953798943653806319916862959576126350460146683585011761920097510011228984720224433073001988163267639256692672293474724834136990592887669674625568561812003071745433440412160289979762141757341469943832685981628079061800436207080451425159351835464695808619514781048176624552443715226175004136211676501404401229870050109335872664560523375479661211559756449585306766373920656404393780618343927749357510189141882654164448598018028130706151514806111367615294467006100689954442008283700235695409318357788685887012273286147671325183759096606464909535440979315693080889279181374339476920322648355563445541189460848603941537407222828180115761873249711510032856279802874618841368345304275948991800815836135999183384852272080835081976108977144380632537026524416517014709668584335460849836298523420317236309937245092835703690004198949566812271152059461572813752386133836669919854812157410298187800313263687863563663300050195265773052631849535470290609869048234402381477049419715075408508391451438002772078121369992143653828302456696369151775624673307201343457142779619447454568153258896152345230505619628989454464077401668491350782628973597331613209477392855109078177403486893456570889443491203203380310212838851726814122355133831719662490911003424325589027471973863983481524204731481536966399060925014186630324576194443317631606057878127721547075177757730788627061763565940857470261572363475443257822306303824124644597552992119493001657117133258165506728250714544166585289131430694468466857305665075133082494540498201625822880000328753780603852802411331041204569502213214058815501884365699910362327089389756995063759281005601888061303751291045372953527154692620802723431596405407240354036378758001423816672665500581038268463595761700699973224703866805102047426172596597366364410036955799519724056871659835550393888009946325872566799033477493924857829707277873365295735631760034299112232285115510650191710134432660108496757976938328603304125148671602107033042657328184902156403351491562198443426202608729231704561546196406499585968840726816510247612453997950104902082903710479837458521504957256230338133639589862706564007799243891900791938326765270624001503482954697289104551319283178272624681990884143012615629537354455364139276139104334296650701840748135545875033008365529580720594397990649479562738113939362532051843645802275527155978557679083470652676722915422258369023453831397023158537024806454895802008037748119085261062416863219151044851504238577799077148262439444450394706087433141194734705333649534574007800438748791593087474378007522299775372138414255569182331435725724269707797977101691761501686213258157637991152676225959343503558925754530183082037832011173563194902041615515143369605003087866849471934683210624817702523218161211257562341513192288246027058671054936942103790121844402177838897177989679758459734227171203544646787745781594861387217423848044271350653668842309835983941532826006396639872832759766860405947738287037946689472251601576759096078041273289546001344980069599710156392345979171316046213541524181638065289646914260534266147155335390601264887282391286825681085021518084930221243866750368946312795233202380212483256944367019454035830476169809893774925833928109445294911535834980433490694406869050468248509845359706032034816647303488124426537203970692822701246998386295237270569491689393554156504415821613686080514191699955089435245974113066974085249520532482061557321442814611367368954831617193089832720252594611312824065335218814509721501069813666424372092744161871360647881292252126079772809513065356544026059481461746968836646589771546736650183380320849910212612355017264501407576687668956881690099999802360770756896408524765867638305413148867487965033733694371824680126127495691316549702150129506452460481951989897186331319239807393067586038760220836963228238460534963467408243538727364948849127783193867085112112708977733159084409899412427118012938999411801503910471156760442333221000687368281991721158315923855904127755734003138761068538245766258682954966373948859719823022861092523769857436091418614427950977605681808195759142054250264386056117687198391243959141688341661133319104964174966924379867302233443220615872450466317393939133158404133879977586360363415115864049457167445794761335377096911634848993787516043198793942316192441553747132452434126726895836186733115156467249972527985132490852490615973847991132637759587161493909897522325439136932080947655367837181491324807654121541373227077329863829613695686244678856015961537949405754902683405711849588799214453658645151799913533660356238272393336280924356167816540864816108314532697991897689991360403538515395884550075655611310053248008348811607303565192910732335980960976707997739099684929604950880592661450846700291793005031471467912441869326256870215969169517269138326820839495729056675406392687334703747617344976219012269827977220137065410030331990244124940232507398204955979347397661220915160549168433564547995261078387452303195670396173537413681871274673450221997523832793896721043431366345334982825426043421053651740064827251984477943682987192115204046476837766687802467288414861949842367226227779114900133966948845366445751997581520404301096227549735328010034261429816050371626445026320850812464053221010887282294316613669303554958071355074875186920535822484757132006255027068236684151775192622014192392956271114473643205587045556431756585176029336036717818503053950399927495396650215913198872559394797610717122819975926083881036439902414144878434802462136851121122097774653632859523554732411269015020367597798655784931951659198209555851381497416367401922932172782538988385177622178473953682516445776124157991533751011892561262441395681851050050954040386796047945753695851854738781264062783989249953320857418015893764638564485385392711928594004703508663425134551465681119508483619026907479433194798721588526905711531018943034764334222408551245677176129275717672653396575833548071944683834982951275831093524994237221231308008759333174046108999190587583682866102515695800156195901986431616164950355570626982245063377202832463052722359277992641526816794064502489940983331328509305534179135679428806454033357306584382277262428899630050295145278978085302345359377506009245828199823474374444473948248833835037356110374677479662905035573274517931506358602876227169160894669863974074188243853438131111362060827040332790454731268806841398345009661874221059531230960127972818658543408225898022172259293661300610019316802792142632127483033981624503926110870033038236032199268712682820433578099589047838556491236339052684938200643480491110122137863251963933058533559015143670901551020835160101153071034390615111426133151629434086273781422295504854193425534663538916246368364745322182537683320204981560246541199424273447641414580687023216826425943328019411818171886284088505935667702075696334875742658564564234926243689591716272086772889435425681035711525767111794660969329339285859143112404809277882341863972967374879785093307533339591109666429874150698453318240100841959813011363653188947172312343301540283910041318870889636492862885826637967002434890087716763443453088250431989196437100731131591809481303336202290292555865323404793422268324092854480831012202962145704908323065708228412135844234317835008449898678817705886587791230406409158270714387413526725713530836889686050288530435977658994510013920211155605254760265488817689664673372774408027923175561730476869313243712124730130982674784266476844565625024300540386323944302247176707744687999167890230212040585906409596002015264195456699524869966569862237311016927434775615971375166213882937505772041226409984667947527988885595905737368633955048533821872827089989693672000987529873846367282322346636995807162606129763742093144071344226581654033007608997673912561808304907970182688773824622801596576109364716705239181640739032683325665560755874054748956265831260781331567968725913781675962709663968089425643207893988371830295343340983117784026594657470218278038582406133953001902995487515321791105366160581835949890795190950681487951767529433040693921214149133053503077313789921430264402156076464632377680479654771442432153668974064426535590310395938399262495833342455370522713386558368408046614524625109231362922841579229247000831837125266453213036570688407750859589547444445957617301852340837871809691291058554610386618465199114729199946516289192186249543344302469249145468035158547579509098526075570777202305985669513001674013901564137677357015482163279600821170948873531187342725852644264311930394925930591148804326623594117263721075889302229312884826549261530637205437225268958625243296433800329109382763119388842291665539344348542187242927291584942137257573309656723371775482971053505650026191369629730004492446638430456842704989085447146487282343661481396712466261224876139648487675437135622443809868606409587344653441559386735137463863121029344672201741897819963404770264510732845597534484123856590869978512193254946687607002357888314815996380122880813053273069205088138602207421189044505777205878773645764059773751667196221351034957744828665526303529864242577661149182300268042738427103118575032333121756531688814626325280766819002392539928419739041779413874939879341212782844369312510413723324306784264272465277859677036322399118724496867402463050758569027863848851528974051340158887630810853274548144435708883321242234172754632175452523480594553779602963448352279222771697297312036843801322931931249859858704051981452455317578294161673743985776419687038668734125597227998845803645810536288730179204716081049317028147306935941706883465361655967622524990132240137946459854080554569755118415031309475413988223432963683183713570782905010038897970470473231549107309915415031687107373207073574154179976742849077633889944669304309091109150985284958168952803914446528146534046043246249355204380689714983771169855758108979812629441533955663537027634751291632628620397443640743464789676649995019246353007225253519727270282074998069175364310418052268107980582383277833035107977931305199784782934347566150844848889820734471320230777436003573097770480030081066926693554804865571677732787707567649403706745937776691887738355848766152944347425020208725859695952594560811565278835355154304709784619938949541143341731959533677189078978296325032820815774136550929354452813627663594389757786429633122781409730382737157650083335771197583119597569607087389450021433732812454224363494413486705258460030413009865153829187968259452292426480873446195562275908170686755971036434445233664718593549024470952763377456061997680125401539654862716499923250633690669966409492843293299676315592072990734322733419115562972105178936233058847618987026042345473584510989755930348932938632468127834372898769442677887747188096489546468213787484645437682910134388514551824243737993012706640968785276154006557623659955959956544390502471357212707513272255575106716172797744720856533853799152124891210025140097436985948211676863353578616524734643080432959065566661328959019214038839673244912878039300265643587422836438263798906124311386876372978807112068118110460845089985873294555465926900103556133172965378736360687724242735659796513774455521063740580477652942575746902805292052631775610688989912905507333475022449566264148523443825340796691363027177187624294008312264722037537560889105891175900650891622061866628131510679028398800053234405786118866978830994756990336677649295542127372640263991848399128520210545674238695478476243002553979229654886712996017731918708396711512108557599328722821707855900123678232553638673259529011386519836383680030132362558011064610079914259188117410281115507410403666727741802210824797750633431531853554893371079284975619375975587221332664991706415007653827852760279828517371421253279725482418329392643107063268629287365996863402799160289770880721914907603705708289730187715294058445811068899699549274807497058925323281212067050384777645359418718843682034038673329205541420269782777386980747959337736992683171314008974099439937922505501677065751837515417024240476103271212530881075559121555437989665060716916383786694514743820437392855671427371243353808821232389364391054402148280537530624224981944177687791121744474617318908579875279048423448395658377800448369300509160501861121510375832577201973992520599672626064651062452293990438340281629854536857106971189636767141284380421057725998386576919890577979786275975274611241440068256719060111418493350906131040534501705537248482474704190829214414673906152470061816763021385981836150831265452840408696335969356143857524154846053849285871147571180138268057038043809374666560730689557616159437994791210728608223903835209360455511334805674007974667835888257884780307889909893762822917639355471345301677949076458456196156413627846867508766688961594082869632915164724311693402986597927374651467788028174310783667911398173689146762318340574598132405126631059786559325197051260398613265906741122092710339647829342976314621747834648412154477119350735717255506349023438070573962937834034592700699914731846813418626997390380424496450157240918816877279184145523998929529329028775082148541247371811859220583707110476443282346596930032363161143062964174758804747260807386263927772226898358463228482640199630927643894514356588645860892832961232829126375616277757837856974754452644272145929452128448467578943197753952387911249072499727663857526975957977635552279299807608697252325505110169787356445580822139902167728608435946990840657842394297925925742975503178081725627883880405667686755257126730746471874520892228548000109758699620789516506060406214401673068823285942375533831493716812827876512209814566952627450772214906447755942524480641766485229440368843587921332906842059920166787034661130194222909449331975209809962673557288295082976702014244627849431573783041382092375910178708564420939645334835416936891753154390979472087320041398003816715608898837987734781681000438620280627375787516760020144683359548454457744664106018707348552106542785605601080150881474564688434237758875516944907281679351141976466846541991369957816075676754623241835099214368625367736400105199847491316396305396541281352602182412412776191076543330162995083052618424859370889719989316800427584224716410238270324496129515560122051305008420863921970202367822179485786603774756401213422872648530166203950113109796641624257895715447718196841942208944702082421605372817534142122245738607649987151024515435935384378959255048403710929100345471370413133532579417030680359079647012845847120245391426511305008856422941221054168200977082531888552394324077515462955589528333695554498977809244854103963783119012617118851487346623269791057681466331579448772445930805210059378468641254871152074884285490092784963903734008256370748352006790693625019853641343422036647453851857824465157441706635421807629269937658694159669069354036709531875848345976117841151915153586064334454389083032368981505025259216159717316902324880438036633353732083197845905467407699566295789982392185136721484547603418034704289256885465387010490164520356644755284191795972668684389138033785356846501832298307751510945193922816336284662077519954122002122926171724237833991782825249689412375644640551205958245689289714361171217133148645301725210579836259312841669684931027132665476132539393784996297758642612425024226084637024321528268838061726648015597310065513873732856394055087365666793473708646444983187572387948604494352230085820856264486164697543075387226324282865805713115002398804377721020701363274780878401485504999120997187440045611784168923609521936962572781579673051048110842226698473249710976706529244022790756410759684877504498965236461438276397454476032352479564033328308473546840617786797035019584200231635339542813725763836806596866180132300697106559444029914512778459035843664045066577193964129821409882044338944239948170807311296945445744081042806954881353186960837180978498657181352987113681079185025042097122014943510217265829480482585722352585015269702909639584382165160320568305071439354592356514460554474755769446967901561075662872318041360622910116107557293923946655422482259733496291886578940098231427956818989911361748386560941244486144467762480299846550341708906248441090448481517551944709859195771980803891685915483113026958139722761446881885176143362809056937113345122607707432053491116769151889371926647538412850364576032591927885514515596068200751867956521437913835088691770417497010076942676396079575609467611474424291845981618911905048143439523516036704915779774601964613198750001039536645028312658236781949922046121922520397046921323681083943058225870250856425006333648274044478521919055053714003974582298477402350880741554752931770933410148945108518519230695481472383450370033913881025534133363630029844721694893354679228989282294146884539091207454811403088495128312280324795925879400791949256888486665852290239774934384352097685525673599462495049308201747761314382999956755990206779962849620893681253551993860430187613421738468128838628066624960125177269192790030074243568774909733506654651607774473877651102896779436389777981993307639270029324342130609253707787176496709884977772530412300325942368285629087153732142155420926341548608687561715468344375037925744966538052969884043480398987578502166385657506147361565399262168129965478096831582061000453899272772906576627903781009382316590689730447895745774356837720025660318648005333359070107267144726836891905094612857547497438612233793827477535994254348301419899351324702975320290599060086444078540991308533208281388504167912094705584114247621550041954608936766125506510651027196024018091398208944953170782578585408562808113004212319137406036050855086754043636287033966141194376318452507835826108176419954892778052740243379389082114111477143435808335885228463717698764636014853287292118526350238548168222914852682207477986574553704530039021753355192440432376724301423420096398821386050514909325198757804589094800791107771641656426723105534387114873155325585089671331770630532757937769699468736606181357921991217294537975006329662823260755964906462621253886009625501239948180630056722236532063931753038749985158401515578344054384433945684272725377230633923823211638215075494743808016517543475656607606631859864346579189897465123470675348230624743619526532574877593813239430234884021425432164921419045875852055984746834187745720298232192558966280751296005814704254623296401240719627219469949916590437447349327674394836431207737325617280928822391934979031040817198984674116594808837845466543745841232657983551062049308593829357166139815045516415755146657791186522571917733462299772762554986622245367796577898809405981264035860655648442189047432739016434608651067007413457494041133525684201562694495943120286773785217632504583422889651984124303485665190242186021035193302777931249098623228142082421265386704520396478829500541262200593336774675651306865050779092113723556450722620580017662919519330293732357057634042470271548052338057911111747848128673714928008457786259413595721892598359263307979551626032494164038116655193184749944504119468550800005476584997666383755808275655757223156899981965551122958316646827390102526254331950005997153470255367502086682214303282144139090202722232384013328290066883204663292321280713424888063268774664339177128614915964393627436602251765544705459641525941728492786804771846109768585230937458689145397375616400703738764755609678504635281987904270774018967278146003073269001319578738076686265825482347708808016776499764260145031246986657279752464464292176952722339013812693960568535187955356068402424241163947932817004772557184300184180448438340686323875138440451954447586873013551152620274420429973283711726566067099680640227329355525481396500364491901170670595190989527970763255266373765197021333010197398270792016872251424417160644326687839946359842296159351093063118033265340154893672142869045058312549208421341360473789898007227365472644558315738556515417398761811750470088386629177842768975622140452532613886839682077222806047101555384050895143649206291837842907067840463099112995803765399340815843965107492692357779154400106487223531997842622627105609389004024052427509415856679515994449030902207770077397330975661591557332256347572362263946840076969767156188227121433799762546960651030451633292550291449887066317407132458685602161876922915747932634918477054447465682767630389218925619888564970389354028960385628570932978523395039056226845461136664494976876799713430258333727070925743635584524571719410569790265084259145577596899464554179205284783752709786666970326358252726616942769035849917990653756540828850940874911485878187808852232384960891775873541127473883835039356127502705809276122217287138704466802311711459798203951411833493812834877893345732482911784418674540518587093441141509860979858284558721933065258694957440760699712968588404668699949066052074259040791380325122516093507904473556967681619681044354831314638775242195622359661926638856153846437452163451342221060063007377501488527429179187292696793693472712397576326995159172952728978349238367894715791725246954915272129222006511640501255830854944737993736914039023940117431084065352745603649551371481662311521521406026599235990136023223342857897948728016472499128667371934616491155781877681923440408067625607393952162478523518989931932730849815005808615853598449143109263813870636060885100948708151740387715780981753591815575906851154855766572515428148706113195190574135552132066793237772515610023990149779324929250005557950447055037876530710666254988043731972004485794458709325949214048881401086911210198278231150570761272800558819762681870614363328340443153406716284636161503122219837467327993733067711166214863859121163289332296177462874349245850038913884305214768171328884718427266120983709304373159793568344233473057166578968256117996945757658615283211761142559252242587248725282092370886648096062811842389034719415595141928300822900005085503224756124064000047970812349480685146490026907507174362253288310636912710764914122924724449057563485919443723567463132104667497368355169032576178968104076602012516205779341500860880456781602871042177898130773941249067452917272551377841278047656671895318796444774487521934204620304549461892482219240255189317258091650573576586462205673988975160408512054782766008616343717118565721277557154365178577666224953331740746005615585497781912259032579256774452458908571530207262657688821605631684207607984659426498629859325949248561560954128652735831286605380357320579179115280201604525009712785532602333051781317928386319986801738380025593228688600429474939364326111596515635762418599302597322976136220642885627486900606686535363612775474683408200825888344726491274791697563652712659857977845703732337513088845847459658248086311800762034207169748380022270685680377945658324022537948857631151455206043646913699195399922680450003283952787809631220949893673906162745418907056416466151653043632674376259145805448020173651216192657872274553965505236732988667400211083111359369501264634249524363829436334390104076911223692867106727772263379106406154568294903750633229287326227965952447862097169511804176580784616892515867028489450129204234852804977381147540178522077467844029742869991845848568345083278578651757170282144455221829455485901765635278626926319807523617588529184641922880766355923061254895378032916471640019979503087009462642236375293268683725452690975275917913332714846538141550261293343937896310620813023108500545971767968321153513979958912334215939921781441623454954787059209196977838786542442791804719234274126005430257549095059078300098199934206828603783201696839393274756098738454866657953450653290135696759952977730405429800811612459442778220412489000735306166849896518539803787297636024679225375142330929018003326756496987458495350089340808095577505314500064198474974297114446895664167402350554576936543583112089672801683649679021182422039383948312036602808851191505286284081208259224465977202859158529172827267784245653957700647262123521938259655938055617718531260927036502524817983779453599346807551132427008602705946949540623469638694412915278722098994399033954611451866395069471502917730289795128220677664783015849696884435244717081886859454781915986194817653450426770940220022428203796078865835380822230545998905489696921531970674235080892043487250279191765017273477588671141519008071270837249418608691831345139654816779565795647379700740187191839569673319333051012720698862633054735471431475414225369968695509270630540720570051524423259250876383785374846480056642713030830229733159721165996912563323668169882189480971918219756061713441976605071815952305823568458304930525933636486359478054719941036185606321847814052110806334548984054096887228891736322774782140175125156512583678147922023257267573709600596967711523982612595924005525006207482915983652236432917258655581841430260504024051256011796311832013186351699971259384799444805021132199946044937392643664885728691071074174397706949392342140833549374578631315747526742140323503588917655149791621437273143713722760384947662676337002538683214973394891856902647476846534769274932316027315961287498011539164545987307778117235349035208542757714317003918811584269154614735094086580778292692634387472850391537942405427541951026524766312689045536983359968191518003996358910717516670227814782734870622439587925314418858124805068407419332471180074526557134981197030002934030761465666266371090964375820549848798206745463967779849671824205229034648553278208273737274899311405955685056483680095944550034324818313060944330374195342215895644139680967508902269989242042124689204926455540960521339686537071997261787211521808857839104487307339973895870843100388343361338946472355537802378499277879150952046213500297339471780769077213056024500604851832803013508670927457774786578869844793351394724517159087050650436325061079035988217005620322751279045881184876112325617490001810001124100772682256737538615355958354000550474674645245764664088711443424740131316509729171499127527040656748583429050569038340478951344762945697418370280461108948648987716601854324337231186022940985514146707224094376755423962398416308292732715947179886361549560693673904571971831914240597121256416641044077934316952999637379543038051870144480094320922116670097681542945042150874669413298405246779814400001112641149642793286965475786295472593988974421269526149783503249251574620933536406930257200826266846917324535492463896005841664346448577464709268234395123215035079341220508097294419682097988047710228326631656216759878654167956689645421272224439255756211797211314314527313090113912118864618689514831789110971026376918712208584137636466493627101280897472178002625776184181293861460691846429031145249250569037438790029969604328791774782084932364080258609331821038333772918649707570208747310034019343818394781648098617271360907163304090485775258167734298478504612820946163093849485844336411539488070696536775158358841570486947692629283934136948744626245412695010884805763180370556544885461486754377474663878453981082776639239294540189489179816042643053120678811449503624770576227684837560982112385534411250391540513283356482605624407318166595063750502143703148864514772484332295916174137981192944229337407144514494969916910013061123811963331408457674793678884962756036675250762378660596357968793285935124705821598888171920700891017016608321800550327541995058845451404711276789071294294302502080084690565892159435627806187685765751197745762659256029001582615258621190245966397791745655210625771357501962269112993178896341611598146391640356080084970248575626476426909165171970369945723285272969356140940042353519175537963030502842336123862807908171251826381144815042149741482923800885924194648889728709793399855007642230277014292262856969831547273328049138613195598103627526298718060191707327098521218354583817714588860369160343175207298576671453225465117766562899595473005121795429939480272325705690379401162329920123764340645536150541107226554442982271984289457806476271984312894262789602313678210387356572329659303251478464605134416732574118107794185706039516344017154435955697412147137763747189265059298194945239860302280046416562691992111214151152198161076303229447036239106988325072336409991316226036180417020038309584306464933682532688431586969370675035106670141591084771230078156978057974360066784527675374279993508540273088714048917652705250672544652898842110735901212414926224800831932481129717560094440732906540801416264534730764825299933549146090362400327967288848664253468663204110726182585360144578799614469332767836076677509614157246416988289182197010745267923185449737546318458783092651715581024164599523675983661374162561505376722657233076010695458561728052519302996489500508805806555316943631652779792987371282053430950774113502736918151237649337557043049024556988831649273658455481575559650848790493171557935128409079632507948771779897860976830840253187881733965519166240195101586498738534564825312883726600213003524604778927943697784748197413976442481900816138973286390382185906509755809407913999930849840683944882297600313712124841266623676508917086948010568140552003112557781727243512035849673992566846239479894437708698517106481785079425081159925910960287537163367759047049466438272767811576669573821265136049788202035453170793388264237028197248786290539941229660521199787458552720371540642096903502269913602680165386878032962660505897357938731451345246064947039079936997110195471848371963123281524788482173135004256984127288087104933842982354185018511095257839251944668508411281553554188606362864157549855725114865634993364249456377487117265131523886718051295307276266606949323694453799873641039575912500017257528148105394475332649763075624354483835107823819497794545941499022331497087751780660474678876103718119434152836609488703836711586557003489383284159782978766009576413949824845936084869875052699856821817662101374080320453337953730858309006309895817778875855158536594727804190919018351680226029264557693988386540352374721621331724075720898579954030652437133825752258517630282120944421240612034977261942399572455087022897775944424338364896687365343267578596058871018585141329364606322399431203472249544338500215099827940831596873082516089949892353576746621648563551110252472259426549094924979845733830543613128087244405120886410503436742815077416993917975609964519325063114014565462679556662589292968173956551857494255370686646306201061178980792247229911152041774480442119568873192204669737659290023685465270442769768919740360304226775299553211842552914752805503232336825068562522083532689604789851665085931230722895767139489588662955800957856932064397544645414202781609307211520612230174833600247474257947066281304630031929850414205444417700094551375861934860364946848616359153348183440818921476040783268900371019067678377649504142488681901961773634966808198156294435091057027794959526183786481381613190334446277991511523142116520653901532723046526175241848786367739743534816210222669112588119955134655488321000323564826693409015829986537177802424992838147732160197897364247332212302492811591600799965128878651320542649195035810749099333095957972886150880371626137689405827164424433233429855028445418720920936345142275008918982660364407802566495355443031876655067247876398022308349170411256428344586979719811245063706065667368703806406836641003387834785187482023127802898831379909579136501006325197799559024498689041230818764109707095904733546785266166179776621009069783782378458965075937416120935792323930213318678225754125144374351650563313336294066813370433603722407959917025731518976157144568587709551517104331886225937582349837746426198698065165647823936354614865143666647718916834758010824605604941290913191180112009770477596260557330187225054180742513454448205228121348951937859832611775811157615522790580603420099436249669555075406000828854878757806964312330746504737801535745880599464153644188112577161973875949310605466951440495080131347836329591787654786250261877843111856485749467393715789103420093806017654236429604772803053255768803831556820792130756263534677729217588804764791744414387925115967899757155443047198675933503016199703957740518674863483731101345001644134771464887953558787880308649970937166440306379463013374904410917539374852791306676554240922166717915542599704554322731613023151520799687427094024858745280831017713108613324875852447116297895433147034215043345951450849182460105925036934388260436828875479573619914669593715382913642881790777821996458332757412229125567069315121780999177243141519272396148593761396811361926906952686178112618633390484110982269648605106740259797758493118400639137317802562332346120704011220648146092793417600160390569339029013579472681943737955089110332546445510463182966551111598588865688972665002377306512575238910752790821134522863201820452518670207792007068165933942352878090762076218915133514617921941743227586830704886352787117171709209446329530210122133813465103065161431783803388066578400600076936336518678951087661402105543223469662557495654795185277797773269544569739823710145744922296687308136650680305262723588200792081872117958467860963790172957225497985914773550575802847532675192518603610885104238787531716946759597738227377817471952346489139433280342646063683514597397408176553226108333574653131782002209589339814162190580490761447060548221088378403501522201345481615043975245934261490586201252510539988859064550363841303102300272219104354166541905853311402932073565614167870565911613857422990240046273457788777766007682609336782110413616011599903930315449899902247815369692498177049524577254023208136001841437269548960544489687074872000551588502258858300446719841347868818980736498361964906579619010934180931117987310484432023487445313864581310374901375361973973229125977784094137289245750687194929075895565552862941255909219225374298331546468768518692038355164263865216895846744113964001278717602049100484842786398307722665162810281354188508207971636674844821385799331337290528561391301757651700263889623340521830341382051025927187416113022094010004260197767028548353415578951944640806321835912170123158097137423000655581486044977828718876134102756224958508962534102297211450452584670050393102287129316847444279334730627032366118013413355646002288265161767450750353918209756376616276585858024499021814050758042395984050166624489390670276783347203792534165704699441043111013020223584177294310296304367494274640042880160456992913872630765610046758301854605016734293077086723178942570057799933967766497634210358865216934676352465103216092019681811918485637298506988819268652501242347144103295740942303177594776949462269609796038416126429855255353121192054447697512172865962909388718673369475193450596475879359337895645890470150058555776440826747051442766445326347031410373193807651351477376580406824942444211178872122080731461208206018336795962367061301077495475213838800424690280930312555471838127139935689065394236576006833858946615317177726979003828625381206324028326745593157601332520697701252370645711597638803133943227671319684372937029054394248532611752380634856459087266338945310513970747958745223955731194068214049733714592930413910604276514202786986858554360688074976400938506379169806979078236982207189806101796905100242820333575813704245621319557927919658155177152232803485269907138709679658886170404613434017182745073605532200260362955539508116256243534285200383688135600186245700462991766489389979993245599828805360819480159053134865709209982612233709082272010497624502113726251989802517693107823269961138661918056563075465816651367724526329102424922619511729442929563132407685737668285586103694318353140484357102599883940331279415737395927810260653407065960136014755797717969501003427537500074486612879552496194075423401400748883957962298422940097701028439501625056426528705816805780647225043752344007283333983066966698494029039861659902228372041055400030597803564648229490340607898116624555648490235782406396713944322093153271823569553100912102447436712174125210793713298377344214971538703352948888615839192323285223189174456026802447409565196715565539697014376735953652366944604057435060792816052302172653451373839843939286323170943841592080770573777089283368153019621680123127588752736664795953959527247274619577065564274022647816658726563101789661501414150469483975773125936173783236373914618535284316786339281210507522383039987204277925722072434381334077462981292456600964657406637716077122846406765109099994076601300795988713624347399406216905166881529128210505814040223403908874863245972487331499930072001663033332779143007765507689305660569782467800892577272001258475607737188984954605828500591061458728406688771140836059605366351594433732689454807038005345828219012351343662896972447061325285688950243477221257402512866030778677517876091894879171204401418504195533752472366874944922210409178648058373646496984071052491580370219242700029743726388790538698281023702292098210934076031127385498405488568305377664462218923688625473967934183244112546120518437404358062538996320998986305110965455323741618115453307605489613205622290090021298523758108656374337449209382674833647547994984661592620209470742818233482499620772835749921152256171295572106816264381804939343973744172734289616400964601550131270507569213917793594156814293729456224039617550371169271378225460566966512458211289324962639824204180024597925439531212812212850483222588018630380066307455284470949214758818531571652640565437396582583232396144388600758301088922921643322201865111752938242060012630402221227418409649999139378509377551480891339227221080773461677230551335087783014124068232848235699178579903399333860913950088371282153941636412276519365169448756279433708563156902748185266465099205196118955124983379081899226012076021390636395259688096970318217863159680493592682656936961705951231139694703322869689332035659641306307837360650028343733458241923866304746408715102020481901718065983993368539583997399229076276235492197710732800907407229663924734695078041715859961355299736616146319306219031893352178709745459124161167312416000894444968016950700149076152472118387090727058947494367307992619437252727072785705664518301793904869607367810429667364720773559334310852487837021428452546518877048062503336715184082917270444621175954436694038606972486861308815942491845271496777464577795192894800015887558274193812741406258917978804069873101419223945891701058835565388029316114793174348818765166010010217069573230469241679866012319736677074823365622800094967954340906511271069729634234435840113637966889697190602220087386231014162250951786587870180170329484258436417838008748784243114489436861866953731217767920668890201894987198671610467279640243804793943757215035949525497720524809402379756740595422806596843398205806967452439117323641140808108214902711460633062813352546284515880548620147742617804676882520502056993571360092993838880088224121988039762499438787773305222105517853882541477989314813023532425972807969713828523123169330362277634631601642717515085385743460705260045076358196437490032279755882369427190500032808514408355450760089835397420904100790847221114656197911754397265368869036325237184394460071953813921410734750301804196672214478873002269077494549440282074964389472483286211825507946675530162824888596959014782471098310841886872485603770731658615033630757745876453592588637971542049722917587562270089735843076772756703390221688892054617902449149438485679526345566672058905760871747595462084612615386329228917811401976754093799232378794853605360489170767987111270818835711555537974234349946632852389012478945309291189134182411638918804708806584420582616211724791043853280770821858818333686569272796421645095419202430099800792052213045822634607201139722446275457753012605727696541612067712262408409609809285707022580152001630003726141294483054115202101497302805091410888595147650915995663532911716898243054392420471940319989380454802415058201334837703673858667642861637214691712575911104960942139920834344022938869655023729747735822977701688692463074832443355076722799862270461552616869763392375052711023430578940864921365145801644680402088161014740314146183806862776369610659879313041622044987719524555352028616510646220241832010991982330144393543099050982343800459616632074029920286067166231429191596177019697744376892779639035550340209336889049409189750292033731128649884633131054476959438868188145550626140365034201998823181237403448675306894522411962518881053821874153273043003133389617321887489653443832462153174766980687003410233784173992452186970652681357903734421763798184374129981614554466458900935098387240837649186087883642856670672361032445742755656704262749803114413868931330805809891252806450082845037108539587339065851251964207258943000044178715157237445956956913427801611488135288406489915931139979368848504224712514851764280072386349325646590014819127806191853611514333221306114237627532264754538448724522198620582381576561870521208969834082018423223999107013667385496602383909137326904815110141788177916108159531560158438063134345469750560724222477858429611034303055717596302722229594111325969933122076972133843675265676146411763027243643853294184767846341332044767725881164647493347959361143747161461942174858025504382794138619843731458004440877531670754668538831318047564125765421040580843743939365561664880976470274486654865869786556338640147763045226123255132887590974800843682579953333962823684459958636712182241994087296078945860618173124993383758000663946999392078625754249852573691869766526085559783243858620056759125645325392268972082703203305851236630061737904683475518176294642906135317526235673727048856297781766354711283194058386448350676468696826328255446003446320230150184697200999894308835543242479770611447596933424363003990334266842280700459957871008375633409259056692809479723264017300085883779716208919149881561468322397379178490156191487911886411262868377569761425913810320683381933197250691463281442532452964600911303487553012115673261141311169048489799407886670309308192505278231318348790320134610815805889871318172173902174578765624916316825871046127924879381285619230053540866758339463186960150214843103690882578146716377810697819787337892976547128740766493555294670617852966974126403736640785165660733563522967772918682051744413946573743986522521210145156872184356134765390466288860442496893719378477871815307835767310847059040367026475000050501098726718582401509840219275393267846989429951509684064637884200787231692037207546991689457692561745464031385545375915166460987781348394540679796088417471068052659603347775477924274859981575090689663329261816985497021409326215549328792770841731862558459076226364125975154598135405064335604122018080165306429405194112393212674795502260216695009149502624444374933082285653034634536078376368619544567245707623714648279712153276115354233770911195390829463559074436327930714201011077718243988205667403761447572708264052728555663828619719130385494337887535836206696774903659812757834705401064822919126537880880656411837243475424283274743000423356350164213426019994372907748403216633762050945576406854717452353016517596629265373517003685617433316017879934275675091298052973841094330444289194325004540861236681781705126649591820302274559983721381215489860219241895981108802413191399241213390785447503619674714196281990112807469709694555410120421422249885741786225388637395421719048734760722261372863019498407788062112393466085536509645700394353065237806944266925920012614401938093423263790027613839396187135827583491846919040857476076201935739115927712179798817570670720484004867953307314111019577568730166683198163569469790142824778199111176992497891282859804431344401481996298035197748150251113341899426148494306570526220376390048849841245806754088204986233675419415513489720554861813855168720786999625101517412658237557320629046701546660065530978142505699288012227000486158087345535448028709646441524146386055007784790364041743334133676483351762421830471036759494788987194623705782641981863715719660535703995916260225493268455027695518973836329200125336956031422082810641133630486447351405034761528211239127467730361905542722653603596334430925481679139993121205813156335486284981851364285714073181014358838927020611067147608695025430549410726835802266652328860453472702864161530500263330581863587743000371372141876480039107337050307989033232138287151993609521527906411333671876489170862265550566802573252739328658111310618301484709470438883782858750276879124911575143013780061387810831154801155461294728792671336518651154769675303386877300171994043320295809779174284741450741193529030030867912659558626123457759603531859295383549061562062274118363856818483246314888007410597070878162114134748627070470808703340884405138459531596301968945290287055783518358030561590521086156537777994090705629304284174278566709982656602723209793857231311031748626442720930066731702603922682650014054833252598671581325728642781787377882931109243747190141859530394478147958821464240408540133120158693889261938570074568003158100989210055852090389870316384240182379505548011046607061668950833599530165371639711635523444501493394949604599998225540607389475626535353447744759560463737185443400306140427442360845077430168642788977921479711780725958400746495008929356529857261838326096147292278952976595358146063355779830126857971997089554934329042047327277702246264976673460437605429962923938346319906387213843433657364723826053327244099483995787744476374973115105679047198666203352225852097001047949068802501028346021375986778991381529195087406601499652362748179831577325784516921476381729124105643313380465627195469968793369593436453583685952358694664433563470264342283757086715922526092658664158775027483821050899234920569004266684137046442519055596777144554391209473413931754261544575585130023726808877134050696747267964919226875422855038839009116174863874375559124156145529322447936110230944043896082474426429536587886971160903023779820743858854203548549903260585282706313879190866465743549302286082058386700721186599669160018709276115188060554621956010280013288423159452717025819009741990722215741365306569624858230494788108228921914498497208532463533845056715595861169972340120980691251193540510409945889944099727151775219358101079343512378248353413393962682284412800133810757168703105627243268368844312774252241662740736136179825484075459263229718018374822547123468194977614130885329673093551789172062058908118302371490690019336921531491248558208336988611031239714306464066679205545859029779957168612087207542083231538503432715320441270145663282191604724091176306221252710146030146686097970748429823099293978512214699422402361618111690709174898495755200879823989368503613781368382887250208793261496095753798904271303395503634816472357014430560701063223933032062133408127145287898626404874248642666069550018126270597849222999337435146458292846459965713649704979804522516684551108822341994566969232753075262010655694919119591907458968354866501381538084145120455790887903370417550974042394875905455234646205360585303813503864100459258884972169913728744863992295477929363907768055214742144979001237210159762730040082264523446048559078410582329254757783058390024464833315817092367390986922329911478923200145987943792195532623111641190686327558732440674335110964536506660304295989429189265368589740977067068202043288155479490725662109557646238035461586977546610306778517080012423419928990608786660449204987593277009765267969265359783384937817178758649929241581519651105350893156263160774197002301156139491576699555431569053030383200944646771595639279897469027751115707850250126785677881438159846479598855374522810790681715643331374705614409047667439610002435207287814011383240775852986303955933815933974921653010377487603882939179800046138940783718415669256785523192483060665610609565255715164450358890122307507326474266726953606336266980533881663564308213474077148749087763847214129622415284147829740175559659046957201996032740315818061292390332675653481840837758748946479770651083549784224402376715618273940981900716055978475096010652066237387722513935420084062936890835031438243926518105177540852588005345918059627138613477528546641475756336252227297255085695735173707206404462248608651403175620766716668808363964613944686266311734763728717896369911735750446835603476002937967045233221827632574123853729306168127945369297879618310526192629678508685111381974248473425226422188009614521347727135867876605622009909924076122928351664459797656830217063768440956273383309734059954167531827969501832084533991090884224861393104892662974727510807230428084168009019595877318676686397207973269285644821751905004800109540643094605141970775277814576024987335634446526832925842886275624903519575261747154472035345482845433635086088831740093714299927995441819081777160811678392973609131542255187913533890457485217428368585340305646482480469700802949867584453277312004578872815859607849202760148544870551565579455163794615304784915321223624015568269335677711747710491394286516629667511300216931690735738076031101805258361652989049831029122925863961528918873474317712634216347745370902304990494664097009766561994155710466369905309391431251478243259637432274865576695036192097302634990672604971366050067574303565085342069669367268297554573806439460913706421732330988002763440377892702588883325556567171379156895487920189681421795471071424595108065632812903338320832648620354542930147847369723014794786937531838355434700809579345331163763734020020824315572537900293070697237786124525613212434174827152460378534558061518386008600722455627028787190742414078763712194020815773304947190306412699223138979101106988460200218772665854690099722858132957155613244484294811120593960543832054984832766337461967952913711558058248607434949482075597012972275781230267020524719777862160966000105387929243487960207284003966354126070196116973228746317510674870481614336516919512307159429816934121395862030071269213427967106112718052275994134282508261172620258039741647931172245656905566881620873347394332015283709230070073580427566571943751550898976515778680138854986010961390548686325238746810564380497271786824422790854214279987347865294238665827922215408665355683274198161984731656064160724791110970311091262437693717848635569182711287112456142481300297082610697066611755766723435041972197709438754147860482152821758029353347962021746954118361227073028097470166073958324867650324329894556462166258039364732651222681263506098753928523733597821633815943893778530726137982806009962483923953200102764088794141416014634807675598196625501750117392178312196689867076639192122759073675494458184134986734668133080234169386531612942889567406608933770237193592811139818296294104658680113658380365819097499602522403029138168879489585172041378576078594432659288954914492498214740505288847315961490005279312853379791305671898927947661679963614143150764078790841412106101857152734908372366241933739596333345133464897070620243224457234645219415918699336031841626804431384668781109059282757216179619965789791343212206090358626298434428193603018456453247708190644682336360189471826076386673510282092671559499827910368266541806610440652148405136343318684858941986056882179403469974682150757678285314423789245974322886200149786802220170466572474986453318200826046167528277467169794815522686628201726499922351159381212405436322201782529806011462589148692800788658573497523514767663271697450328494402504378638931955999162523908937737777007459083026626246676104099246993077864316571406303978273436175024640101801324374094500619749378851557428985801420737010149860696333643946283264110355540827375390897741172849461936399061957053878678459803781188661909731712719817437112114153427901959319052981530388108584514557026763816701595276126513362932465891475206191738195998343018601100974283417422716336554111004838043953835371508567995150293469266351740717549506304587609439368210426240856529068910041614774055267091871670392102464382848181382962175285829751557824885208600732475173149419055545906740597907861730663549213277261550914226906495288211193186301309731997420484176181549082146815102020330100617274500245411491024610573903261552674991265987067636546928292592570192295468495788327122367648238690683244598067455848403273383673219006539809167672150990969896720682127084393891000939107104335428677902786149884430954830235352014254094397362962717933329931585217840411307076040633293969987926383960494914700733311944195920169776324814966598780865446887096021346891482804712696438490246398762732191755633849913833041680442282214580971185062628343636906268275933338612796734092666976874346082664987863894985928494296527029572896593105854568370555215332528347101207427687363569226394636975005588582131835066028721328009842458443948509811268528916211553480157205139604583549903643872633909395156832584906749700370128312682243031569172461839517266237587359491054269091046833592722460764809995270968051977729485073929377041604645950138221226570307542081768918058775313885822917667664053375099862233459468322449807771958982943340010984289855508328437506127276746854703643594021478286222443048755017726902484740497039415032124040638523332892752360752720232201514834722769046719236566362644013753081130207349200691458837421190720540319750018900338445837520142716339122675785057762690635217049613972003856424942166870223523146797499353691619439236584639100742185046664979455809990334632254887611808065000687665135639661612435415944201062563668705087187649607922686161647746466611879007669488274598157229709855883785197669768757330228097168095667221365772905591984521335098426292270206849250974328413930653115275594562406332430182395549666463935321633361430801442753368929511483434226547288048913054718359742817621070003505468765872331230998151257637468140046057035206540340059019884959929622421560640572953838116985710247973118408353399319774100059775678272361120338782103336155261406058589376982867368040769391057020050084905043185929399898446059550911166482252617455486913431242529107991538475617748278534590248347945580687408523941714073387845815536212117161345091445279867065933218011462366857714244061411972028312125359742224880549100089738859875161406809938465344765285581867509251341038097639382433909048512486669966874345541905907809965659650964212911178950264959588686443059372391505924331134668660139320658084788506649023391153396839023633540881535242899912284486376560632735292180214251555247453365012391433843867389227451565366556391792164415047810425535094063770656046481827450261829006554888509921226578804185927331365749162787255060110712737650955226628282823397959345723883275885720999638670657542614442195412548525236914015987145837811035693913972859794770732808933729891935791062417846471692609987630557229853733329748050090861902986886589951802132286403013375723051671033708915738588008459280438189396413720473864056087990842744350627691415224701750412683496248920081552701423001234314528883193697904589270377333771056938621587958223283402163489095434594807254086289487513033553139233609101023592291404986214104798283742576354729078844538871672608710549949597961951420411006581414590403110843931013755323051821301048711411347789636862530175161850394362395204139329515753679219314230560948185313926940259003573616211214960755020444399054310296570397933748045822270472927603852185450726389146425486291754976398112542779938925634982210968745862972788098351260173427935954732296457578057605401104081707234213691344283877361345071553116221420547523436745825890384163135414701506399569959704489995517283834908602818957622432651657961363730656884137041029685987242767456556874165953634202423266945353332059215418558482804520662972400747123659241792987075561126892396223884995934567272903438482886494703425358330564123913567724172955394788365329703913913923831596344624598427110459003676758437141305831899163061565247236756035288185197491176221453079756959775788929235367528704978146740468287497790009557474288850158321666651576131503860895982906880707430679162717199756469623417702995607957520075457125085230186944598574364163439061886708741873629545327996903489546305440105091158129577773393204930914486897824228373748410867626078092027889065993107720406701946303391053037970845309976115203492673793974623516270065489789404135132427790054796088535318666589871473622914589071462056162543818789656476087436844499139143917711936039933703125578573824607751959854896955572035432166521140308988597782022762025596238298923830792601732444290003614230566917365271266127298458993449691276684800563039735726083020932397824484335688888330131775434877727216812173649269819158037999335107403752831906314272642594128901142300509762567402118675503647635015317665644282791065974210265614503730251135374531250131281148168695509861772109566592257235901683969192988693809030803393656464426369176007198377126012286224411641794621834562619963694534615503188709754642647734854614187096090920599212787189649633118937145592097234522090297768022276977925333170901754033381686719003506080411610806544041170756753830289183355624290768210061075261797054695317353525262839519678319868695173140332636363793164570462516324713509417138567273176383682436124468100958606053520574554747779646105222276764702409399489138809882900923626952911700596858924607255697280910907661392141960584655567608900629684806747488146637208230203465829240048270025548565562998568540078056932054752780765221392823336064249804090891838269153226808517310062760024860764197762393007069311273931346612298214466773364506228940072307938281127174028746846320763595452741174271587380191964957578570832434490651909580998320231286563494509864831629746155556478101639046490952392204868925133703467616557996113925042784111146191327120077221192065090490270908667344167838796143139943956506417523629731003903447259937957639359324775094780975128676195521690068709165719726098833626871511225728173267796799721986962452376494284963068317511437651175292344201667569862007975080976468725459313683286889161517833536275518731229773927515048879995903359059572118594494204095181263518262578415232680577940609450997333929118169399294692245878560253502057859474714041255387720249008991684844602248427174989385745308118692968922650289514921094232118760503951730484834805977189969554748748016611667551085567940962650130113013167456212826414922008547920251749216674036298439918374041088386963676844369107335025566228886277831581523919457224059818053999269099430960693923465336183248747148962119407721567086013272537135604653134414782873206777531053768021157264223598027908179384419041246589458141389084000441543348951631884953986081404183095287370148421729706243802886647207397872066509486393494440134991475013149202690386007290559024959695616415972065772000416574319227501447963645656679032593858435837005550400495180556744563392694510661089324752775168508826530995647822866432967802744237712775312335216966607536041299474733917522531816280578108563113021863569283652227928972184717747365843346275441424142631771457870682557164423930309571135169212517419328236131350071088407879095457876360640294605093460124357824985993205985101435966079354401734859508920605808925652614201924738204854023059286951194779194300955230370246709630248026934732287580115303394035161155291532968581513878188270485276961942143261135300404441401846920559707505953570606287866182022768209115192587678036007211644500088795834947945562386689521881414796327806479346847267061755017749742446632593240431025696299857818428515999342477425913438569322550731871615911421592768841272213232911547970194483106498637490332854947292706979696832478676607237013936696191664699428039341122256317656350594623661095838157592618545560327157817546389574504924512695752399312559579770724806427976695508244663600735157765844774318112467742765301385121687771501375551652319682457834167809163346785056181351328127481697956064969826820158505413900808095054617097933922512275156153873101352659801342449853200355591404016246835747835774295867318934466598501107404497788626922967261336907839735179971985911025421224286016809940783677522715290960531019709681837670897444669636776294191880279349534944304035713858355676213506603655334556661050083272349738273010013181115877168882358694735541501477178231369281880612548996664660999890175097476841301842813842017778438417573473803155092689044437072507203425764444000220554570795079058427765350078084394775703859944200701027351653444578810866636643770631899102192064167629368225514170286244599844541801184320256613745171976977182214857253385885921055449747121394660344755548942627923762935249651740779664724148543272229148662841963495330519021333115820022350858670757076826287829750614142045163528833164832143448623579366243824826213868405275776652225087677230951503245956168721173718453269779012498952176367250233665247322320866184589560775148927782780487414459684321420698138976073672527570743911011897583283283217974816990057161959288082784288835986497538308077674889515135361021284570268330973864112160008473364813961813591018633714880384161057265949292725044601004347967385719220965674602724491326674146192689651102500371300229044434510969518131913130226873180670600862172021909280614969765262011618133232038832680290520182905666448567707323928083036941704613717606741801518385705617355269504882061228508843642505438241139418072182860300278177905190826562061249527596195703548588376793804773072165172111037772599035838049420781014447017438120053594712938879642752545838279048950520395491019705833908476420386885354601422114052482500781929655320703305527138599856711158655499892664482477765411200355534573823276737808488735653701153975014585284753077981828252825583946494727725184477454164354743994858912286305450116846424908604394041989368273779063034274275132459164309540055180159886728281031786184423157524331037818861297366245239655647634513911781801255029074476666311021024099160516751540380920628907951074503223404697743815988131870498461883856730722869180406053676962240764185276053509084399201238895257809928137316315252560056490787458732706917531163288332530247465770985038303683182057899013539425766609649686992820882830165147614090195101639516337909648205193554307270048263994208487531883198645830492294361480952018241791135090778299434452113354327744604191736274078445518888162781994329880091544165763859169514663588873409459353675200646620695496214459291775833462592548095734028690208046451023938680625959946131725238514482792352924024356716300989056596027757212852571954855919795964967137440881994446979901886687074575634742537677971668703500106839777345773313696195382830838669836830973626765948147003086067155565875767607876248260567563207094207677129576531156585850268599758095876452064506738391693625919291653998947308866491352519943829175009391896647956954004057633500663039229623977086567212978805501779685648041598537877434729627944607679423235230384852791981962464739863928053378118578576584001570787921570321570912126993692095639483264641062518774343223278129499976287996096772297517790908817375470657297335865202399738216706295680355177265617684968548459689057488325347396006203641706296490489314651551726174393247612024632625197697670286055444725162309684585877929231719272092640246659310605834642640622622073439596752015896191561678230460095781024583360922538433398884180385283140529747010308602560601706973303668612188968386355034676162104913930415694831926970153742391961935870081500671430728389522286047128606229230825369626972092675294368024986515948698467372186313668084757438511333390098142943571041269198863565696347522618172547213319953509905700829795104009280615911779674404988283368212644126160158646060329712234177978979997063301547740717875396919216678386387110700514717281827282946475623941111757792587117427314310229883609831300668518959630430673224638549446800539068775263556087433298170823973177489915055152833333228480966382769042152105600652754679916948661121162266450657036545853187126344387539058650436137177700945895604853732163941855651083477239429405015877869928906783477307491443035126594058378139125039385404505760597131317526045153399483299017124998120150193608316034418780528229664336399668269156310214868659241481202664348404829720693146040469711814160793366241114625442939233253829957587603028557278899047128837194141593950562767947800747914534509681701771473174577977904625764261196218872648634072660662704483363694925939663229585554091395448016700577390139118324271032130516825886450157930454081189543622042830381902600269224872885964123941033946672973329989391821800323293839583545381408831580681858245528850634493839331149208630215082209510273789492771470314704331517328740200116046847706745402822861516207905672320563801793002089396922901361925090537039364449321792732088731044822807482282016870151869126438955865780075115449405375548420377728956517638152359684092337623883278696241876539205870723615289586430660927077665215599576738979142776714081442513119212800099764311527899219424961666396267565851048702064530576476141368351886668488611530645504803391782175281039412248699591662639017120697264956702471484238956087097196562663218911891990209143121066378915308508654751567083983127289588772856123648779584910609963203674304078802102560143914200763466327161506539697506121982854755501289308432201705390706236962150895961310643994878712109835263590760763025412253610882824372182132277042929404153009328552841940303985737896303576319009908797772683976871721820288555911491176342575742467591852951529260469014483866160515347179416183555843455889802711732740698729259071634047132261344301159611309537871483643547974648851200220435923990776536073271301115070584281451271579132982534911818637085033894977965535955977753038426879458924899583884676071915183266560256791668628825139276519741896874936115592114719396893175866335341783597278555136897528366369048619214341565573579492868985245278832695086602562133909081595556210255493286678704389693298473253908370032160347617630125543511998971451122563570828354544148090859824698369682119428557416918871881488606117463469149498449635365983132103929008895240256984831633065262748897092190107995058826789294881460254103868726676745580966208605965467977797771942081603340399357016835813651251066849878535814253802220536203774749836891493821886605686830177936771407720410209038579941208470224126259848790749106461653661535741476015926083383066800658985154936659849520362627916880413439993759763003550900910273690111880650325945209895353163946317376575202270009141835800332829093783896394190423688146382855998757662003912867001094621803159488358177514323978050165379134519290675395578631977971131931564105473368369282885494917320820964119748478782920915090546091259776125505728484096195929415367832695104928908690545532044818633504544009309991564596235316804160659762543075169874864609970165256801304843332119585880937020294977997799514625073019518904897956263137134045330105013880627077531308994395702123019716942015666589470010317665641013632070294737776948161601683597928504498918647869339827249139560732669164598405274007173907087600241763721249701697830396638738958895442646122356406312631398769823391221078364841616776670350246984019391417602251192653777873898617572434255915032517280706106650021890012376567963407223225521057848128916040305092356243976484522025722965537227272388905534636440114345470469685977475469112119070652679794155872403619537758229928981865505175822655421118961408254958728876044883804386739600503214120785107569358039504495245002206329222267144585536494024934829965614708995526685797239037609062222683316087805158142152592778890944264622792941216667146284780046700845688993311025121852785654966201792370433071037246413332502546566377123059136959499229207481807211944390746876455612574994733374068358522201864645174775578656547852711896962035521779361606313162939919887188788100620543835799642491429680474522050702132827103984702206865460458935611181850703826398387844092397559972131592639549409889251318998092526732823468805471494005963765722599546059430532815858535743728915348902798950290128935098451292978047211838532143349058155084638764009053466010690106489852554971073910955582509811340230615079157711065788830907439249107843413953389423799352140583247822747594090858631984175960151795961771718716342253961929323287518075718217260411030964526918841061778312796421255718432853308744464788146113016048691918977036282671139874189132080243242755135250931164546310495242391500929415830475137230474124766401304082045573627999327531047492504250630471303903514220735892648454128418135890769060714267468006799294453193035537664402778416622930508875460722331661832667142059458135912530553836441958659122761835491291461071093910321378705349169877600049914631672717718108372062773219059416294684052601079188655445615525227451963988696812760018475135405175267814856806458559397495501997469138143144032357673875485285500748151336133339552442892484745371105139414591187071418842825152457581921094682307689495215843360295298107628180814144650724922555897330271607721492753442640144099620238782667319723994554637812145978287394195526333582854538191428347821826298493015729228795136566187733166176504830850139816070269677550991938180690396185867587316150700264929696879234607822404398415385147051047066117492987871367239993108267134641283715853966006192506607153298354464518430505077504809440695215182007409937255735603084814303765829981976954568560551536222879992005776178889556527242581558564476014690819485770070217735150086517091126921162507370307243533747549694967935889524962108333078970425991520012359680821414071924639918237316031472425758947374959950253806729634702400123573047868913107734107934550590235675024141694125816181397988823887183684981806080591069103763956917346647047772925003816743175306483302974489409126922762590393049065143825438073229119228052092238098077071096559861885080914234137264009828666815125980304227100976377703794703081763399193115599086319143871935027505844898695149787383959949293800853320820523234934018755173397717794291630946595299456452779333811955568383705655843036002228517061876474772501112077026919031640685383618099879025022909148271237941284024634617478898292219858589113186227328061983609774832433741834013617856103292066351298909927994768378190758266730715196833076519781410771709875559946384210445491497230777829190711129664003819472315476269941956694650294009231154760717459264854013640663692030946185714399808277391262066977367317564289242795989703790921364775419837948448420494824382691357533158105337715240175754077827275738920223710417373740097991187817074970701718628427129162321988186290132336438665284901910435299613353065478008522283476661102972202184425489839654053855759467596008291273819888591230606294544463203165150596624485790356812510599297922988392318561096137985782935828252008457685229323098465348861320309613193681764694337930021829287789755063685339646056948475074904068059274270593442865751141189370631608254753189794805013871190990197633670442648355883276310340197212155394545400006619471637853484341906717573859053032880276336151472026467782673900238386699056426071277938653570919872760297616948427477534271987988561867429684519498183804640256278717179860059361253684942692369691180463129077926103360346446229331435998735937728079417317285047101844218037289669579130422573291184057748848538563509718552640845141593839222608569342209732076480824103875119515068104972476715564575276650704875562744266675625914738514789526425926077712751763560403077735184435686674809595339095224684541026466252475073990862856428781528478256216733837736100930771132754723961797461593246375180865561908057774895468630135377469510314679412494035838164113175599235808455281240552488887929047179179910307509857066751166372289948465823084975050717259953270829099139490553561599348354090686536448073116769259270954090831056347367633891459738123280656752173132576656304304469267717349988686229225289165138215642150241302500194537504490995288440748545385856710344337115458433602601383662141553561055754289185475498285508470871272859840982830419896397427462489061772148672545446256668297263094859376602533614025623991789723577342187909585394955990302965849203880777068493866423219359518934061881324163658012010207791465945607617239764198780100617830219319478081215797858779801217716092325174950605014560089458793986431147045199554489232720740014063035164583659858655616321759637720606551093875062060960904911915968245414593035086798129077572099902133206420872143406774247377271336112143873160892244228493027410411613466111896710715950211146357591334432377917042931012121865517212677893742627069611799517015458067324547239910610863789802960770988362049298213738414156829869385044555420897204648778695434461022840742799923388330424524311164633180940668592009836955034866519047997011904744665341674201579118143125892878440298713413065254828238642020087730376838816463846983885311212643534393034522852202584738366282578641098024796432798086307912196214292888316136173085670744450691146608685003636279811918106430536612291374663373516243919770338633932014365274381326233566965486650181746837645068066321709437665196477134761184375308294171876661910164118087892694477838147437450676591891801148440263943165527714351516149817503446493104308899214943618012674442262571645944784244490720355197906287032391167612835782482063002127111821279453667407179645637109343032830660877861815834496756152775581543390091944448052332904024419892238328689466653195412696811072857350549165041996633636259871603774534398728668267817345563514290672417888484362975828530685831292076943890364463217884865003338658156211137928797104022358410148048499349942988209493024650638534767448304699849674744049185731864169931284679710451812995308528262161970972999652181245545162920947639611187544736472594175815866584444937403666466867775486720797381133288154408952230890313264655864734984228759539393251808845851565956193291201833701142587105696232625068565237304616270201033547545482042421721111593720563002253838246848893267747105373932333917730711836088159100040830734464023785335882993428320695741505250963047769404108116344748198475537464663107257836704784285050381760903804600210650442559184471462539701840836196681963486447105317606163332666417549641926435800219376437017604421028680403614755973367155665736974829922818877871733234409461946407437492517508496122978920690370445993306439660027321553603677968119960594011210997401058138837952616623568471476341012484135996120848049068719617934501955037804810977850443143622301419784777727221524571720000483817949979886878677172108432686208518044593968283843395663467607643798820141987889084809820439276485041837590939088469053390981708500638960868159781058480252340935095546988554590354202605727963191773113892191948332365670453118097879551270772602853203108223944601067633989308325116356204118131130938380447340171460457500793783921614795454338338707542852748024240121158439944271474280883887534571764078630835094015831811643898440111900715625547973557082288034996755921303396221739378450674450136424334423309566848086829362323640387918832651922529246838768020643598502315842389596410736767859530079813774229455640835423462335659137061244510895290724762432652413597131277066951316381847672422758812935917796744697479318981846875932813767743121759609158551571092605075473692204293773711688335273288115017046771517170991341371158181273205343613645614904329519395158733848152587178897379298147835266485285504361577016307977918001844497115958199655432255673515396765538915382248069224418048714485906205367242616109288777227149599443297209684856369746962266065689313023550444092413861964706303003239273078025872212624410205878896276163429827770015569484995172592021015058354521856288598514966674668550570096109811868446427838035496221928058342505415503514942180349618808054115425766184788623923970895551386870731391417479966477262014632676426559866814872496253396296161539804272004162365712755077062476063181504363388189025238736607950047929739523346340149490240412507398407173792981951638284676243857772820291755484025355344242873676552340930090830603046574032906884317896159904014661522588841420226199939330364378497031309480883908976794307168727952556080602507330990907891459340097791807907325874108726190663900568120992482595137911865991087885913544232259522093348612748433149072692848481482368189863650664932598470547347719928940879890420486810814063394252070176562311922214638093727855661157713801543724631070311637859157501231628712371051749140325530150236290677521929797666291410864712516566004795070567373278319767644390860410615780836861985523838200709992247557896316935774621981138408135937353360996257148383279552411187759930499466272700723680200155131536676713149387791083488379070930043741062405445645243189412472135021109112183898126323525603968305889042545314282268050831176433591879534771214730712642400875764122469050517229697801986606195323426752072618361290456630720830206782866568272230398052137307935648687920303590918993140132728395272140591907236936815842960662188531767300326024454932807466768830860453391367659265432753421704726097704281413788171986493290915321803064026441053887609184325824043299701257126319769088746672222837197996981153933020744867322599302097929279821888128832206363086529971657431215071028000013736419232808124981533719780426826353095022609261066412665609541583461261534762373982823265277200510560769532862156963622051421056311558121366461507120094311272676974143254471161766605166122715801760326825250509161493881772017805235957748452346806065384113123933958528643763995548041013194200321559183633083219424897338359421920600130894806606675994977787686987444826921847847310112324587905929700038354900530264998195203766749974273493842629106012800231942342477249016060637573387262674888078863556628111458561031079808029828996665188809204832993296634774038529241785082908669744978635023510946968360474614296675675631367890979020332516838242412758305654368060839244758762825465402727991955468705325234228889285040839519769951941517078224584692848692569036821931224148027493879244217557096297343430650878836957581643730488792154626806439727142272659042869982297591918132882163833988649827858009054181445780180861784642933361167162849358867863035501265934913745643982502156100384926586443016254380978060204619578648125221452776140252080377132598662906847136100331370226366290076507947218539349118450199963802583032795412963659592823521282325083696415815931429277616002299318011222482032634565586637457902094567589507905057340086817833978987092393528636359371273491490279559450335373395871605644121914046527306181987572841702322795854547385174884367998997184899210187352265125455748669471960263736563897009982010064161652399451363480611415137552709559905287952524226888972056545970212717166975012294545483819879919285832285971974614790156260205561014344068785178860914494570163041407716733156632283949693793909382106861418247690888091649461142057410886657364497371261554277599368741031166968386228662044362525840784815839727524970814027417508402651847616924630036770946099873395537387071608464866399129581926745021976241567530633948477718083302119009345470693403833565070372854395674311186365849020677293142730914809874866433631649387047331538361305718815155550178651125762209548760610690403871715261087834095932267220553016362053418886003569331224694406559194463523897082593822127310108904488532285486199097891212317599926698191944888777416464802177400363674415822423133291477004210540239515607513340087286879554145793250108681140312915453657372291317809126236134824625308835700845480862539810818337391004217283912144166379775740032654607173787044912404076600060992624057595398713864404622548107471418125182785645294291919111703635628098095996727385000254040843915277172356725004581756830243621835835410205468261037985445386438414897433800793056249566012740974111310196107152282945562513229927035313391567339698179829903261547223752616628463937538170330912603830848106808848008400039152250849349096525960104852285411792760772334996205879673851689839282759315817449563180545245738927525898523963870284438107309051991850154571290185283941080168756584553435147961395245996018483875212484732011745196466595986454748463008922692116623385253762716595928456187067712924697043730068486457109339187655225264468720050745770568788986680188464537823065234865633083614402246142726007035300747863637462062121834506149847906537009247667256968162404211293264454998697906408234847702690527167158970329942530791305365099377209451606108494556496313997903559963547467389803485309812532372408268445181749012926168612303209594531477872155081967280895795058155081406940095339595429823139852076820049671830155832938548987944273373585438808902384842738520667483249967689921013992731431054044053085303162743285470868203969015709360430894064844873345343969642458294351754400913615882330166494025804389569469657611938616173503386165385046920470064278970477412429618390179977550157970941962759451058175154617776536677059761664653111304715562622381970572203222998291640156647881939463349734802027863111851334962266003161836971687955006450398261666098927770177384806577090675465683058277572841654059358147804253373316094261349488711972547422282449278787286958952062704374737628805029584662790563712326147254026939344646777903790737804373682822777436055841651419481271162583887324346166373867536450315216016858136876383646529743341712381714114639986067222217024719530027875164152830975640163461785071792317094307363678705877145556868857366236943853023712157306081038618371083094066643103916843663330792357532271695502436787060591275304416348845191829126634237504995719084554644321054830275825320070440910718821283819301453471277164458866850039753486074667399064684714449312528152057338253203979249589825686959707186041788980290647723652914899964328002440751735035696543998362232926319398623588893028958432887733323866743729232191195490995456074465140185250744751831892851652994056351726795185770722059874980527246341209987421347096910023940551048530135461257319255402288251848980591262928812933413224817421259352807022254211789792639112119228577866473578594981023794821395470211029966964685923047095450238450632571880390338207342632592431868543228585747462675479747609026658795507225459082262308735182563174572801441875118182104412583636264955312105347801695723682497801340533082740719075574095804552703230658013302360862202811877445128827299834941047460878096582357917711642675151397343493278547627847019224136869194504874423328333621005710827917453881568254082273288123009668743393958877315921046364083446972493399998995168102047547025372733203954965191411167275423710795629466290888332421360821148209701338201704068046636981209656555179983013639212675702827499056364089735104328954095704232186023037544432412260298629921490171034784859496077376531131118683291463938774265158330272152435645345151409106406290517363414241706393749865501561023818223612725967645673560353837063438805659580954288964139386913621072121717393299424248524895358334299906895925757755470883047500198653660183225545910344314826557466752374871193489376342493395811898613667500984725874772794203161357659753775447728441543983359529458043853510898018280053227052975396062972471041120442268099199072707229008782248954620892577888147493753498701625554697053006409506457537125880193085851723513514348407785574131501334792910212600002916089049792128291442842150261751730036081746301222655227191287583889028245729215255699984785048038388723529976850166790904876355906767096320051039461387820591173893775895291683870204100965414307353355292251598249552559946472830328735621407964972105661339465992957216661951517692418760838325802844055664301818184370018306472203822107250265571556432707437293092200450893651764142762712299430702502369264927197897364021508086017982928307110259694073721132781909091545430408991457824996785826865217204869443281375232125181755305852496920541970648737451650317595306711155054503228400130323153903550196549778174634818874759429706596888573183167251431910000734350652998682473920666703798031140884398465193770649333194550805610425855114310456910075617942617474280335198214752704753354124986100166857958214739146690225513279403691333846296432350396176059930139572962592300977221690404892245850233168200047473267637598800101972591253125241566668002303438512910080774226320594178379576836221466098501498069120984261986355913407103694168180736646745039817806271940131929586020679167730792853913979681432855774127320962767735250065032030327212662637615225876372802333247807639186949408670628412582833560442052257750510299917555364358074280856352100366274953589616476224706845312352224533361864283185031412189982714025001187380043794562234189774135256738565938648170121304611755865547605914077129535661428637732474066774968490566481580548114035936988953716234991969966439804105009412505084065167192566985425241477953847276199770701059079841809857928939613552781289058464580622610684867600483923615883702642986781683637944661389281816428057487006841313430451574714488254797147099851941352032215012996798015657211483382517532590935693544616526615107754469120795515874692198275411426638908314770459842003999455159304015110427184493473582470667868675735800082941615096869053296905689680830618328034455297686059248011394142502301141795704394413357212180263802374017697030248078970930214069385626683112516110770179689876331040406075268082797774927591018728315487821154594471413605688925539666527026574991524654327954155740762701518975279572875923504979782516676042823824900440304174647735949649024571383940180859070272643109180016302464784211195407339084917138058158741342537385333251816257510832727878617481474300494573327302778655424129004064844054707388406437351878056196855349895827542071232850506882786992233236211285052430042249589486397677152791045693373121975117221386622373974874050859154572033581431218716245753629929203737085242849581617149313207929947336895289110011078928868888110338808959910572298413134376791836740215486827954834872651248634954291178127070637794584429697688765094245966729487374706339345387003967616311892991542749350205563322825739170252487745373366432238729647551036053967157986196702852928415229034200353301339513936338506336323800998338150661631389092443206023242546906003437854179518466514694785812394956185777563658757703670130469879655649197257719102332569439914442628579380471553293575074604027870189356885811370023850886134471314031998661139955558373676248724496883912047936305434185252020661787819791619256792123327897791198344177579451815312575930627901837104767016871472996431655586920982448027311281659239176509665991201186319784533520245055402954082633091133855254177304333332105581149885556041186803723940921679510174176925798672333064916386529045309299885322428091396455098297010514665065121742815135151964589257631876753988944123786908947119364852171099799429973308347667094699989810680978267139771500643573394603424380906706524470107209427808473065176691119445414348633011083553847443115023695747974869625277328844832468849256823919727639648322132835525014563230915604063624823835792444920692586371405339166285447066384827876186795330321131166936355088245329603859239220798139224620948719617880552321969938703316300858017346225556093673493554505215872154671119836207010038874187547606216721695916309738633206779069631941314349755400726656738146196558338401874797557837147347456330627825136569290001053391124628112606741226822888849546804648319233857913015434488188068376379458280134429222607343568071422773034137591990845266737904294418134449428083653936475191913894238211284518291063525068432387451694177123081325478408842092809230558228123239308105798131454499859884830891441481156041662237412753083124566186815833856688604079404522234834156465147277555520544831787992351738698290433151676886673427815661559585381365291034670402405152743667361095932719559971587931514813561310417499587655156618531451113999639110379221890772719368037123984994527238365351406476603969062278233284120448047751804712271323673177895714900596209460572907385029996786543723967997801516179513513494966295330280927450240399055487636194957758426311351742449971648395897936137539552169636894046929798401787155704993666581221459928007048853263874852707511117039659535955542265562838852594859334364754986025545322469283935642544277711481827780564452013089101769166956231928059453321749795824809676049048202015800272290420563677061263655714681939735887670715072580674627058574371684993426745323068249767889105606599195621898028188749965275687649556223410160476567214021470614595765653942827954640222930906668172537562780741252248856590507414849741915140128241133021065956868730302493146173577077870329976595932055780136501393332577333779566739040650088774448749692341641639905465251020879564681680469656413261473170572463892295620445598634403876645371787752624625332404179926984859427738822361396094323226557192788911001150038443915092606184138363248760600688632967152896577100754401038504633444426323901289452000335551194653443699156673766552702959265285044381107837283889374856541653317224281293541747259940386813282137748172004097727778119109948843158294702208413620599136093479000357436571801429456105399096046007120228260618917648766541159996224234560171509743102927048923592800041046720463090484639722511246044982408773416670866045966561373941054840118970034076159004016089798042813870939364203031378780147909269727786118817258072605749789815132517529294034979219176166697394168332980113044432861613523879723498264380221777347636761661280901783383221250588083947929079796526603872376553258261302847347024756339868778047867446476937069510457829643474782324001061821398577149715527939971992291401697708651926576072919026192690604721323838152321440610761085995528162217280256755453015420744040588169954094603160246292091740894274496339002540184296152648399261185379761050048034181123367261221651692723259343379812195975387471330868242106795567393710647948633738815922646415544805166452912420412350470346092389972218324849443109542766561811350422907615969077582101000073082477759521699354198472382607545312277949943032776856785937808162848572562426850499031573024214176176409457725165826629659791596725500024456969183247729444314932191825257111637057725873747974759314457495512021112779038003966805599890316806715962801860019214209390206956957934704645227731644387413743003879076913660340682250724845873763170783470600916149524004012073293197555553875818484370055449819272759409732750552984187778457819074023886897675057540098121163353860274000145099551012076500216253808922183035510659983870206585486084292842676512587683899552628102631263772392531616537814060295619950345725295300148534140144971535806542352073347111615631726740632433538436509103573239778931744243819292050798300994228648510181024729109883233276412293350369329843145124535049201806291035042661936412284979042549899377276160603298141268599708250939554615728341122905168650081948273543487270871429316268358976459919664780611956331650927412870769041299744022072465524898181903169795393776418020395843599424619240614234209855544662623039511346542928954303235436623062631839270178970738419627782892346258319722363449729736486667694865275409604070444787785221207406687761315292143582062312785865955725173991147804635463684894151636203101343636749723869889736467019544137775972059564024922556606884450493058582596177564527267631010935602101464064157756634440609054010843413018798027555878047911238709934133125321263595789702140491427048542579970283514435540460322007442783500834739794315676326180166228082961223989876876299932333049437218472714585137951377838207197254734008355781835813362511728380689781271972174085989047960393986353089170480510582228993491320378710532684261592431120134371311955742359160585300311295329015522132991692428505258655322227144384792347174460394363553631959683962566112677062080504100754208686972549546689734845830435753108622996066604890006861050062113899903004956979650315650260392020714177230986016513329695787538638615174197256642147891906741853605474932123973517486376066886705883288777626445647698851365804525356782700571225888732080906380469495892125075454571680584281736875201714576679191284454842508069548531106410445459741067107073321803926666703795060602258460452648378499953473892802231119834231176220035996830701555162324121145046943337572983987876529020486683656711825249579984357234502101291789667259519707046974811550085319393147241089764298280628950056639201551463244319568919693229178422817346773518756203435099234890756814342696291125237813094271707297205008318055345388903610958024469253307211982552795637764298002488694432491571706160915050391180394983338838333117219041409698073783048597456631135545047020859298614799424237125614779504650899051062952368182454170613868044257489392918684262705235664452385456136539945787497345269101443424742137811548037163451402081784533572869629862658419159358406363981146974859123485724289813089829157494158865897820614834204627307156627670287777006880527055258919654441157217717854445403693242154034433373872710687975609432833589500094328902751765703855984901438305641718847209871623555569467727290097462843792404929707801741387796417010060526662411350341714062314258418595553219540033226578196669423930990472184678740533525967039478545073963439149227319560715600907327084361695206846975135854534779175879576251827825992793528685906082360602449322514614869502023589088217935066814222617060778477872901609083629305692511119864339786226843227982676961137452276068607707164802367937267441611480267961266770367440012648363287902531108137517108844473934915724972821924349854509814443687326269107779901014964422753770784403888037391638619391976135627399096163182867735531255568480215180277578439900796544106536709590535756241165795543638443042764852025330689398002778313293343546394580476945181352642169809649103874731974308101458663152432802481798953431914381767306226975018210336034741916893829930725029530647523141112715408809766126276825625446460833116621966038074989766728106029439285130258610228902257646174953447554523856300173051996552291903951687875862246364711776595010759360837611929412796398004354440450414508311206714016415472071136097276767968866936859985653537118948502823721877480557776547885389740495172800423469072213926644305870556125236250666157199504869403530071904049938138057965191684276373100173653205595351345987516734337681221052294881231727884630152157051229865665330014862849681359523730864872224942138005674087147654624524903564116869204814169918424601148726820772948958127825920490443020670378749537746774504682132524790531498715797926040733412884356112264635855998409976060240833202071853140055652909526468801216643629093183827719012814373893924356424047784061816380944609258799621848628104472501779531914449517598441254888306052718137845918573068379444445428359241924273746570563697381038895794262894972830733280410687918906603124079115285419075183480324538351522603578214326928171088442958474188479359926475966747732933596418485036250346214062178167555076117385615491294394448150123565631132960047971366302669842407916276663828038953715263502451241372061334397434184821538854358161140902655684955372661714986458265412645456756970696567004897133899508164172177256734029735248714192505604531560244332922382545316711813162069556369916945294795012767155974058085875605160671726173249146847841232928390024628961230351425089972245565230771340304664924978883291809335773264402723778337563528029370547184124862940568966624840924299638871687146402503924690302307502263469525055185569563710595891546575855318763567241778438659256815883359721335320323934726603151507881835811721948239821880062239506900798908893850559240487876900635683687576710825495615298632611350074656010555477370437707717610258899899280068633713182828038666708895988324124805858942245086557608069253795125416541290152596996943276156983516864666293060309571679438727750026369284796057946475378278134645249194194442269808737738647983555408135164108904086503907892505898694530494534925743179099252316032498835516824993974736122547444475466142001619460045704788021188903753141905890093312895643536568522937813694143140411104297665277229255237815148471390905195742046335571760276675783687984812260371525294200125956217916164094960039685197313334282355505679758390208248336625812230435766487743051555057578182785825251653985979274811950653429600160564372357875116084368469335451847945392039452981185362397237850469652118084576239403418614008320530638578767460263630554164621722941674777875141106341786612113531495636125610232850834276946901751213760221823686950186123234088676240076135790258128867143730331089850485600041194189573117333444181869886935052764919147522105133518249506879060611967031966494452086911993893478587593876283093277479693886914219384004840016895195204707639295443226831100326736917827496344713882515814437124357868581493300575529162502631642764263447751431659612586195405446665327880909778989727094993277958671015465198636654776586378133908725755468592609204529258114402222192243251454434770043154213216808401887197309445030973859468074392634772735134445236409814848721175971911092306349189390721187411626016726763901343227063138552668381990888796363158708894250281639775453618125503427443250547182317133865532514389247864101105310700200529057567899767736857771149654675932876773021506673498006052161853152043057429740233293516070771806080371112119990998701871296182721234443815387576975660938404455625425143059541642380010202762289992812181160546410676137869395060335677285868867073259597092796707920592870969143544905918420195926656061647336184317075275884857105359841125444136049133242123301450361225314328064247122135762424938470673306472517319884093374118743629941641528490067261669372351286681819008865399871062259655609933465385007852428638838730682844921912771638755213981243699637837691299729382976465737258779390967640110501045557405022380036339865551045148724726901443372498561827810153259279688590434411313666076960889376401815169895342817502460556533667846314054765170598105559714281235186605622856685924339505136619835225847381228250070999345517443557787009211747832611712004384266443987080709989188051233821176050105537581010900864600205635224283857249150236994370267779925186936115017347676105546290401861386102340572046298616619364309304592493158132759609230065321419126923230019184726451280480621123842847745769285794234426646366491312493606875298453278156061646739596406389461667790465106987474384073614498573529941668018788779324086576951334002208008431520259506529755634190122043359925321006865104212414607786804721514005439755245743159636265566910401037769385417170484836295314062457117687801655090147840881920895137119675455095305387192640009856468772618942076359836529573442129306533796058343561771237265715079617498204587407455093344665565405850668685063020872255825660829224458995338435743380272965026765267708419322488834962960151795804047642284795219220832474207221778943094950774021191384776845785870628637753189419112233267704358697213862831680169829933339134821054299248548588383893010213674593108095333748927473829518428432705926096725715903861540367883471536277274893312482539708451374684863907308486641620426834721607985274100513812378558187039186248935709625437405038554218640057226348651855273174280319611434878427420013539933381603363255359123185133813310952234642344970763152982951676388329844448974389115045890496789260995943859290119645797069613135262858732454486707259695488206578105705051464645753442625988529823402145514858985278192507508899692053372168728987930483313651030190177605945505766896118324905972946776503077677767681278745693958571442549989890128288103660952275785933927915166554828831320702237647036025508889565582316780278747733483561932881941745988012180035290326950987147462003611936213620287914666277565005910537883358000666462300912762498766939131215277319231360444831445774115652773070452615268077827407282990743057426140786846197940887537905960378780854437537078554133501086723114281179808767852311349180654696231979400754490673765233160007887485922209010993117124237233908820844732900454030851075512484511411014072519838136237617182067568256788890682336851052519920881299935665847135316955103618928878896764474745313203492026700856415852174319586146513695612362202421644462250914687971427886507952169658958763040596539600251969686212874764920364849636000098741675276243606403311472244315980855928748375061822347290343378216036643568720330347123029558759942067394141537930648172077449638134049701794994384371778230120602356265287139253545809710020702470651696358088931002461524446226350119549337247143683849654181959196618697143788185570161248048661228549526547369672701192350931855268048170208384920489627115008250392675871441352962623019629281995367229182327231244158262468436901874377903757929358014984864893237945549690849185073571876054477065147419721017493096825193573274163200187644825153393256565576641213532118896321150570517066178948538236014189425134041597718665604361432322619522540818546622099460373242941549318222047177524827146513063783531941431966779164386017499075951277258610079779122348302439342629290725324947130714928918455551088806344533227113877899787584294790625053134188908510731225707079446277005310175659360281392116843675712790076290260996332408778086259436874279856741642189326404925807170865165558104011491095112428842726433513585690220095676103868908260173469712107130802431667593312274480350660492953121557628070349440596142021512523151990667748791633584569175132349230695792130073938724871459645539067830759665457738799050740645299180324436345689262013196171162744061249520630784331411932860996175473262716467733262567281604668772988128576995262911342651502554371157057969161598664305721126197563917907663895683364871931105228303273299311178158439616444727818248481646141552066235985031475547148173974710479688910345245035148253896243272297028056290066848679020777425827756222284027425597375980129373891509367183735652274609105506199578707781192177696450081072697135106695993475548360509449348639383818384017440197136275397103666966793382809949836444628846792403985373453582353201365254135377548732653185094373948212349796712399892109283855717965888584333371543057320529718870788614081754712955456992726707197329145892167878297319847368083885770142012511640425431515608003404803216910224827540615498126360958942537659035937171765857197230018554022331461624670426499891884776878397188759816780900677999802729889071930055547923778697210460566120783555734825479851752115558727746585546145459544572615171455746853744393865073018574419225619323780059555621563694438672800764981242884670699473637815255944422133634268111202886738248895236868303789453741334536069286678079958563821457632740773973447327631242788467905842463960313718420242446348098193266480404448013444983076071873301316662976826424992475068909654590860957066397547829038045282905700841645042389629633688474761461580013475627077150345726272648674206443510227212510412060807829904732361643372505776677565400865168315749547766534505821509244893013232568317081747846833053033243629364468243666088642464232025390679240651938746555766867794554476810328435047946267024132786794576095415043197212393427644743166529429962651317717326818830013077112690206759494206134080494765392016477835318621833428453293677268109011574001418500232678467477878860957345472112802015932062088657114228532933448334856509501387603566627987856489788910659493426867345789231661791285376447108743583972562945620530533869060447175018660530913968856315371443176164766366880437812055157651682969062385274808361254468717986991414777584043028459022377301945017100151718812817642687747424063031400866706331771608612047984815923132298358517341590923989965989191021780836465657217231195261285538369131058776325286537173632200245351352796360943471765531021491532278603755506156940167565128261326602283255624921297962189477803404486171325453879195248915490966486704738870411397969723572528353798203172147673718041496967293668176065020623090897535077223110727969025594301497474667093914007226281862095898536735669821857042497035732907571639621559693544790776332603246388104272592538466465302691775133494626700085552238135887765228871634409670072686922614171590909489083945182978749884862851569012793030163280103955711673528927484663696306175473398414565686374929230368213813148868437603949326928548872807619483376784874999801412224850470088649952476041354186460692984036804462565105576479209627600100357715111129369215361631380492953136669787425795331866284734071980391137199677953983676064222308672784924571174527730010443856202472575076356941272738266904180547048025154196157258051861744899608919738154477569675239170828436438458543808083918725113606113748996664005461861565508561211112752720202949185801408319370233643022445612523988808633452308918089953863864830638067453455026001097387604702364196490731275452154278343328254219977648468803870156079308768723020298212009752318333335107736250721025058307919847518246650359966048538394561277372162755689735656055675883437299181625648990793565745235963232533543306644480575045904839829897155310833159635352376086898237800423958529020570138536258259474763416414955650899787579821728774252420368670687319042432124548232048191495414886047104742908829263608497601466602638682953185193600300615683638971724214108839881197360843646087395210091642248443673072065177745632849457159231246358540022464967786950112653130006366911962485832438535523886507925205798996462282084784562600021548630052517244194024357982485229046498709572984249893247400362112580579180553703926123580595715326889870348127173248631466214728595861137713000532161382303204094965047785292074617269437759868874497231981137484993940220906074364142426649790060249847566103103166045554768254573597198792944031815210070084896462284872925758004093767336638699671127040299077678022123185953312637364828768111753678308080378575690449988319661055876893594140639171260035385757243714437628420243726271346567869350615474347325551788438801660562889090471454143671700860249909974981740322803078428615588700447238726113338697122022607775405813195871469492514526537312621248279334203431993677056846886615627135312999942981012320710075795503757966853439576166098347599650824119257914162774959636700437415073799036429482406661267639340515597987611431383554932445112355940707711177473317195905941356087049921160318972166827623958221130785607170125782275329348900354078307557560330185618541314643598951387793486993053658794357609383953313266183916270359105045262341858325073090754454947198380661301034027189913392436891573314661902920613434422034745328854946772904934793147886432409771550737089296403203891568463540670498417881337526856715509671734862803220869380844852240726181746373451328314451693017950890602833249948369106034778221849659754196401223840036179249041552746532894408748888810071857993042229605521056086941009910123866406158778490033893356817237780810775924784095060219804484525544473509385575354137695611768789864233975550278283839062996866586348177721484310805313428338639624929513628969802147111873853471465892065911315152541524256936833264487445151358411713276618581630616572839994871141873480623484003369219875853430612983327061273079520547870792811381197750186459523721371995803038083684556430373054968092735987033690401385842748597337204944227138785363147932875249928280160050113429464496456778557506661396984584186991465788864898032957324184114882007061890386890571270551720189742663002736202245611732000212729238671328824120966723880075419934428689953247450219681193526929306907572210693242919659543819425600768665997282288181602016873520928425327218157562817512428221348837267808594229564479016406180784906082134249065583879377623676337867766658360711754076897810457960609239839819037764032698548921957988520377882876432648808435075599727358247699278191785428091279043788447770715072032564940037911339555377169606526710731164437964838307467910728600500114137574065251044019299074838355408630358604643529251459862301243769179157031691317129385203589051756796851626320647307175130772266375848916066756203746535358251514489084412556472765520322818895967678788432915478409107490700143599808088907606767776913141623306252139614994801612335111130922194775898389880971686758293638095487490817718919359891881285448766901328146352097937940449582516614950272014797759983887209897340291619604500471899735620178660873229710099039333333454162562926722439142488454330068600404696915677716210998574047595405526950905344828089763152322132562626087183686781893702298585182813935350151923548040506939194652746347118544285646981437212533838939175635416151448735994519003121047492504035865634708190609381966144005067689362584493071541246989426614247488157372610447427706602734806776315668366452087054590519686295280050369191296938937348343563949308345903876829161491335276213214876142614333559090364447861529819151290920574337590098776969963080231785117460358293803171293200607917747502034718447773807408768120621329490993349415240735817441482056912245141720353864925627494181333279055901177117039941001342480695657678349387658729489164380258391241978438458068850495617184470586657356710405563253790555341277635647565548950434672156176829880805256909022759377614075963582409588743973080185249400159965476599378375702382423507487658929421620479949549850696737664677151190846627899334805772805493393389562800888465432318929056230145853046086135230880739276930065012889095922055599684189456619932298119988826963675331499571830903641052383259493707703228498161417193330273602888716661226072338304063309168276348650658251080725799485934361919231813021223897449634485908323851364534354339434310917144732290466777071387791690449883707084764130220480898301455808889835200969218362835517775350019465719272601367101755097451113178940735033772413452243963868408694162654939781183274210324621149741706269958323132524518298144137133584206875135202030755011974807125781863707256439816760040310960207843799312208071577898347615072290111962055856960507508405887003554791780354252110914025946124910008275074954299193861493011456628484020890427744122572323950186930168032199368820053526386014875464165778282811968344515710377639047447448139007997084209682835786238879837391783825400390990859740638785597953100847800145411034684256641877175346190086555396620511605963223398456237268781799608497466841905342951705431026269964962802230405579964109372837541658937164578716424488006675785234187062187655806379170712267537949322472339821650783173361509431281492377103969188866550746537186834240972553795433764486107422976510268335489903165780983451343951359670466163394651471658454908919876590208281413183769554039356244457379640274432435085405126865885266113769703931766816456815336640871359133126457412247340711209621974852844002930657375421492580959340169170307393598344034291506826367075908438723346997573390707076617443007564037914194456285195195021560165051255308839253394053620960834482765438417740500867124183423661771208763078726728721600819296618016174060573179238691691189710445053333315237945614051366574267450722955117471073925294513220267735000871385609992403090734454878836796516460487265171245441002902067867441409848577709986087967955407919978344575919081599434934144986989393901241794865201029292819216174108305621517868272488617566723245643799408050248384908026695721053388416882690928400561220023729860986466636976866867568682295881636600232027066104155261778686208221880893924222152850601860320828875464810161018448129386225853843913225388076303102493696990828217977661208620413430789244770038531177628486788717825459364345060604326416951202929459506625582820114859312519795824659345586950919370357891552968513073749933077992996787034214422561521633205524702869277400060881835336788993104089427251829931265644598228070920920484990562315134698730642274566142673768962608560387749976803555606094446321711050851207680531935512505793605865789804245913982038551025149562152434495712326557219505642887382733120173740056040688564610929982810977567186557662933588868470392163932551822564311573944024048371825170578438853465330387971249286113562202821087200216756511947548393745536623666987398854877672624137902130942155586238926970923853246237642879619736136399890301555754205413741753692023635738225288215868429202584009874759544844254248113446962659613925621850188914154987355419201461686540421112298976247186274106612625586604980336171650400683629312876526467780738547198236913409267812214962790105404776221700771943424140870609963083569321449758468950499518853243896674967838907025584751922385688448916211598316823248392398900786115890364217442841216676509365088737794653679059523862923704616271848402053673394208183589715743658147290444156925622022619230063528717327668954819737068072668451847647774586411415416479227267932002401643905601437731560325486322382560669528765818030679881104701298845554352536419412224895467827142436430517382478659885749001963427126926617401549809659133876340339791072647190452296811149876360056431034545002842640342894085274161122034378758371131336244479541371831854274687102803360932181800135761721925086301575666168676979441884598554860454590682103385931542142267047767243778156014635404027474727670899786949237118630306788329616151761805378791611009969583033612713766381576692536800668695758098122660990796741760651719615144019972860430848574673748840525598657536905336589058308997483916933612195131459012207547371370235650536930321773344861315134141779542763355226671768567717994256648393617012949943423379967931824470194676161440483477086758942788094310356931936771906722553804604777423330505687691914330664385028487769571731515283846908776324001811655405587240770856659403273805559638565006520037343265340155142526803931315647978944490977944947604175726404626748824969166946380256426835244194257853413716411325285963251100847204935716095483104677336100880015382885461783853064024712465928679030873786875027890070286056114399751020786121839383489500563263197075048483077236966628998423073552033083044912097593960260276983275951724219145367329863678924313236747690044407116410536048391725772756581432078419416303306508269481807562173896765614432290413145075608338844981488206296734595325090866004837207074969472881782405475103289175613952621183627217867778944155290304980739999092544618472667776806260004502222467831338074095436649942185123796136276254680751337800603331747658873499664826514115843492433308296229095497667966267639999783657099236897503538946874449969996650949875305417944398115711616986259561993249424248808355067081471603793663659608854048223951680017415400688039061639320978863134517367750210197791643971154460778734306475583195397495831659034580998036759694365776590486850655261479000032192799764360843460831911857579183896876691466910233136131365867270592520901119223254026483548917252586185442285883654859408351854733112984112714106156562084358363932711971623737904263246598909614868689085797147348167143739311616008199150917140051821385365778226063700218137695233955766570733222695369270886104043994336878224232716710924653366117984221312362417165168858937901320939587845982451738340020455690390918056559096545047840864924142223493694661251371017975845089823139336617259107474961071112182267807000335226267606285341180553618487495092871102573857001766653357574752201989706207643561962138750064975903899278979420687205155902324292491633820031940718892369816467270224884722576916656349499674663261139708358257358714852498681112587083445984956645793310317606340311690042044658192599678639288808099335684351939444273452286897336922722511259188661634375160927558850217416271345708794974719857305924628289225611134811333245783232324711300419057557145172157640683281268845900420426968826711465146076526353011063847745304080812426790151045606203384385156506677549283975393517548035076900830379348473862830427276616598415512980409237824781936600962148816101634446740093982521356782311045242388671629384487750282038978443331405710801660387561530226609773777051394430841226728078364659747919070579589922444160744720650107016112155067640547636161350374345769956859244469220421761429085877003849430332339781583817772177087238908022222092331996118316138929944932227065162466530702204326650716260929554101134944346645193576508721165309306800965431254722278106795511347141362743221629362150350172151143011374988254508927122270643422089966451122805919641810884006840015155697221586636224337234969513789910868261930607711924520388907264526765831941154224347893736208292059026563773959193708983525006288318578840104413129536449514532259962350197188903540714683379047636416255940306545746717804745523918271219078154510798343125425619700490504226748605772993733198681286909416645140044792611292046965744896819247436942201548672058723782578142747035731717121953202194073902677269760425729647916002023435624086490608305681722335201224434047385683523409474003370285977133986948157213489700974088039809133936724148044663589511507159026101552727317348000985303847394597598547490631954817541580015137801269946465651802375201932095009543161265937750939601494117634994368324675173068586157508416774308179885620695393210319713371593134597644768541821237837159545454366893030817870089062314363595619656438414883148522435854760097546487376442863828556002299805226530575449745485673312978843639723848656907521415372638231572362197840543318215719354847349225192026800812709793650099180908716692762467711869666329312290614381161552461649206940754078033157440591715838614606445495691253016728806323509526674462892020325903127442383792120680168852782029825256288006958935644917934951507212232609343201029690574881776430414933146812325876450657666597136253345532987391395289768009138774838483050421572318971221032510470685373715018940954541091764670021362648164521823396291828945518026489042998615887642753553254656564458006221958685672550051393278096605725108281436334446876671950936981846020444001170663552851139117991030583028221511567002203157069739118502655785577012262121692578763252414017733059961373270363905901892413929835705346359286255091574910836639141364918229255047850926257036174319758500254010344876627978566512765272871425232867683948099295235014589369587219756840746857253645946626477174826214565725932214146971794537728135014222782391052160260796795932154214937096347066480976454008688850287186216088720336485654582598204431735040660739061491013678093933078206816265311175914814113308939212952267259229032345536733385801750645638601002487026459158597821676964711631367018562118971905860864778137587971999244305998037748869152603292152183598968964649642548761790484888853090815839328560604718726538473251094095375658477892166074891959095771800505618991122793964751986450303630032947444626346189609674591620092299275568026619636261906387151962168787827060460815127875061938545668688981295206114220783492783628927055234357480135677347969986590598383201330418233576560451557253164217825616679016680693565413302443739509445364026276595697471315308580323070929854223592379688986286052498258965866680649859168821144558784026707896510132614234112886594592463439747611472361418677479523574181791370503102909125671951621665990910807541780291532722805433622942214885267352105760665023680238106911127401734164141757513646981647854745766229831612696520194877026422700733289525951530052546929677570296079836824381023551730168705004221643706443345757694644365881871450779153687525744836883196756392903521465688965933191049385115581689966575331827062893737987444271221118643974684512962627435446834672677955877186036861098045207163320280357570502481372520679064412307020561354189622294379991324678649683612158807424121144829563642735694943454580784371149178268421983137975580807777991768167031547952962958337019446125927653965768714015963248406836115016006456756473396774764883815918695853133981245733534047144908503440988344310196146594132628334560968222455408318719219299040254422669001509661859848098769040208455599225076496355530363023249654642434589461980990643188252537596462923613579965249984567877197134977168962566484531814892452125167795231815337134786400980854847183195148343223591344672652731858654620296140239236771461090281634316988947713044012847503319025933122676183574315413180500169468630335722187514351643420719297820498095731135159790270518040393221876338482385993997418551071305059571882824119992336423489209720163813184690012392316656107502185561277492690572618698349981120795154985734810755967508517336788326127372703183119034935974201498291878065744177121914399896619580835883530359213273512989705216022304851086798464068168151615714885368356271453852110971965452828146447375415858814270691909915387910145611425785348195630184705247776933223943993904228228006018676937375076059584856528120390232598905170340635206141202671101146400165194106144728278241933834659646846900254026571458308557206218444353049982445638793720614427489947161210631970455663884739994288248878964943221609208563083666627835908555104064424391973128471279468062115114969418685756816052992005279551720761663848722764364216620915379330111209714673851604699179424982580492733869689516348788188869046841920149728527019646163828235319946159722690747102809141618974290937609274147997865410948510453328648319091583726636050653654231954029393247521860099884624688886683925262788437967772536336630421073770350266676439187282471026763710705247285197572494750060188298375614239645551075939236386487897621226594966055728110970347503649346784371326390936363187893709034250088359349466158887152758459222125685077355270876215359410675348324561708465216645614713272832933416294698013107214466513089004735561597069537491265553550221884393237780375727100137765056932966166439393364886033365660475831701503421681770521301943078232693738956321430377105491871090669618500687969175575038166503118796645079724632352342390256718630144637673235976987209702921501125131087093806979222267347125300882319806631509867677835654478725549198414790294993157904651899355365478769450921195949599861146153100326212207293595018171187258579004945302808828681798813780299949703184210111008198358566080264141306616147391809093088297286509553134434274017534717828830610172670628224164504281658373804156004490326252249069746303568731468863691919773217353845035044876538612421598519354275837266459907024658842414297887917036098471183111967218068025916758838797571808059831549610722209181061370843769263464364404174280005404979900310012799135309120600403651516417078512326448371074435984161043303816063215337622880457797608715920228027901407239274759418439248277917559506258553504695964259443711676090449253178289794101353597040435923439094356649650416643579933437818424836796278798255261570139892137710889849000904417510169857996284348649838993726087518160539992328219294842826663823325990247638841435711984959723946346803273635185936051055474461649993798075629865793459681073887046499204648827207433663639780714660407955003595235136558879378145709294375206348534083113573555660662471883297778910490969365048612623295158350665745234824147487039670010514011397991016608489197344593598812753472353325365294535162849340493488754145949322735973400556862925339354330265026257593816753146572061117060125563392679077626672339618132713658807077468114294179240947285284575339388954220838937831826309655099327839975899944519770653776224560989240610338651951796324674170033499603190625414779236502734209039376168435903148445155675990102980255946749757540039901859297984019609354741559521373114274592335438976984983608015544208128920931768293336436389899328886923094262269454606431748232557003988384044387597151579742745112890801006574173303022310936571533722432801681820198613151810760735613584959786172425794286458601047603127592619748236560720061800576032285800736206109035015143453163363115022983159204430691492565340657042630183686547283153883153353924513307965911273074494610667829542979149737180517179585405374962125196539697927909562120642813627886303805248505670764750898237889107724502439355542238450376396708647428800718517916849322516414817002760026993742376135738645233706660967179580893076356989154911604422193912632914062788782598401177022926398107973844327758650196249581259111127676741574173228757462140820623869087656745567406522805490318832637805471633496630140169979301583718647191830579315678115011824075891057280800479342662064448737438033366526806757216557854901855168489294695785218816413363529695186959793877387282936986677000456075602784807029525708234724328385357225997642789257743298131180160947823223828267897391944474944021617538979295857153082716487088848287569135973429137001990862884486012692585393765692897657396130782396581396894500596353192299434651464743649879363283326760358175404102312548306136355876032381778440129356540358239843512713637405052255039060327299318997573259931038470489792695469325804516134255750852973560571058713695540998062739974169452916610797970962115258860886356092977577044879700978648931583827159247036546462906276478397681461259435597303090134301284356857552578931085675020542124976727225640096848491212832723606499111918351603727441187339281840183170111727006290520327991870024784446278691530699091422397326822512055556262902357670641719399522589857927637754862146782653718020410732139746762528693098216311954248902543597783179783342216351768366380515137441628349978365318938301747678918854195807377482451161055857388179815022403135202718924380843132356926725989913497842643147084070811627015308865839233885959729830444270615552996249808826180603158687508369564727272371438556839026147534887519088560092724695910311775302561552132694954856478514620428770129998225577448034584684597677663384522953371979474725093708796898329040159831507979710430226586306248388567531624081427484906053559415202245611791881272046154216948740413949639482461897814210073882273379303716664657518481847251559697857879193749644227596090922923452025840813782231366660304045050853671471640305913308653233393835892410692170891844736956306123202970645668150681416660900715722462116378541026440351062993800538131327730182951309464995669533739031413902245502517842429598441284100945256124304366999998816980813086389299616159633963034213269802403900020470514079967806001304836480797520182415180000579424710045602431521216475348516389493132006838551957139445871853462369419947562439928499274156613410767255344797733624588334024522891338877698981416089606598552101065472179237134216622755059056727103057374330259299793396554510906624125023058943868425424295880018157917791046360841005514763396443200757998374797695966791203735002622274353530233819734174975779332714414638269828454360382565095527091933003898168694958051369867876375013987918872867134427615362189759147823265546278380311645754458943327405444251975542524557890277038319279282713751662214388944578546775457543013706010289252374203374657284666451576424300221879289578739863395800818839091991180992629255403277349565742159605146043736718951210049300721293383804104744712083578757920572893716437949196528867727174249782260302531381071346485961144064921811576357994375556183254932425748602282353392790996385653411659752278795555705287608975028109815424809174667927382020145204002305512755614479698388716165981896747397286947981521647303107526979537191392319606634502563325212167839328672382922001333047099414168964584215381663056951394473310580701794634261444198433983295936765127598087670237075432167162346502486763121873417637749715472075132202197560872758129484677786288900132372656971633662977226287628682666209355426352137302074714237071679647249802486335643461365893658584542748093344936387729989080631177877978305253374017288604810844951508326480486333107690262553498444766143541730127947805884242979182583082259873825850589342678285833749414782351776258667229946672434024524107915382144566075983734571008673147263597695847905217767919171799720166401218096733242319343795842886875598112674393711952972674276786455881834679226070670163056937312863046712040142109394541013968182958114092636573220896229387340972338464147053824249170431708317153621688454249548735637180267270311587040628978555929977760168698759184549715555087761448126257065526453266539809907554610762668857725369499979915016470335478338273503559734549752235257570837558117362445609162573501262467975049983869616817202283521373254244691607969633633955035845718396843484711605925844639189825242277036284004378235805073636788069499229756939051621757685076590852788706631112171190336688508392517558105214654166839741612074921312065151296783419686545717179150062718156266679739440039363329873638982878219203729868432564469971056170043462933902676463620349195187060293273337065036565319775807788076853178480272845289430772330720864584783330342290298894672716763213400862215220146580558155042909300868285161185117549775511042580607688256198247195028306220200094199216694932366913295316830388440442369412748578316649973794357869706456660592922050858466061090128388357705971507062242774386550338654945023533349902094907283577302723303416692846740270893840234095509715523017781990636174368880649063682219307716704730507800724403105831831654327551075683713266991623175867453614212111783807317979063988036363038649539799498533839194817255888032652413091303298957469110651483767681523482062448989122176824533915758462679549390291041212900950456596307520637469781374244113370262346690261904635522272981133047681653076239264603079377419125845490837115572209384100422334967645947655141642705278622990719018230180883129105673304214557586077367681399507027453384817605678525900996010784198022908394960704574275487703407933064565815536437567116455203127999610246141806169272437204539794286563170976561040552905034293381199034759993781022105589652036863033301699087669555832024148171661003522904552112558808103221979603782804316481256507036807689155110389368725551318928419899285043834558183976889974312287001486603797896537119163180808623961231198882869211280446455471321374799675846578330043286521508473666108549638178800756938347157142530135372509632234324518073825848800124883593972304657265254126784246205932151491064602167006726227765650627959703509665901518323629122646288730014903111625272055082831036738329133038439133260280389401763308866992587868820183866026140013898647773872667655913834808394239870590034687008099649266700378209389589545011916184191636071937478768577589904163537002026581483346456818545492280484758942393152676360043916545520855283971930336999341433109907127514814903629117826038724924422418191969525485685218401948612327611452572501338118111900598241759011798084385400079038482712846237815777044998482758203899904112825461471230778162185166961787346264978599344849126085590816529833563454247892557302657011222239387378465808374176063089136585724091474837699934103334830733569153790777210393901297894603279711298369269633048641664963489020310814745455805250656073771983421011476068597369020311825932883292226402829858825283781381742420786241102721406104430404304782667389722609297113710361802324825872294627236813687133531667789559876062506987227080805200823975955159734998047201834984945698939646344960865467509844532844097012066877416362487071246274337748208340254378361766923026646225174055021889445110974333597839796901412176033800077942913744524298202006780354945235964617816837528483289697069576416391598416934413576475939455938793196507224211554819333262548588254926971997362778370765722154764876404755120671990606109963803565679654586579805163094756267652452258477976712394294771179905291376162162393291147567397248584750807895211047383527495577285559192598200861320420148680707011472233467561470133272270947753024065953465677459026768203112312104171594704658438907048650599637891690911213676598300665945843409576794111748926518170134304283943850131257855233891263180952241818207674191575396894292868465203280183215745353331496955938836582279733586019246105926347853967022171185199357975729576142584924774042593396224075070319165847396774952083936829382949469025458767090885122294807366894924370373492174580088756890229181752849052771300183682056767582258063242003739462401868047546876336342988017253129241541784645550414117513781652770469300990750168524181964670958527971838949669943036974331290607719636365800270929669331523011438886829512920562110598520206308827964435269114385792058953177735904059869845152083270426034213797865047174404431959474678367467992993511840503405536978337193550752808549514801114809462574284287916285185110563002692366024126472413249702427804662730684205659056743234792175650084384888803144885523270307107572984436596031740585100101497448512944623469770425231861831725096988034939495426274482170088693312854445379373033648995040185632773036804517374653750633992793860204699656008110458833376895445907699526560033604202546219584835507840202782178921623978926142914029136620474791013885311133611095995912716344955407683479040259059183546064981041098213967222072075500965683657025989053341886846542998902134010203178495975001651193769470614144480877820397830763494944327441683191446939456958294876381582270546323092670280157412090217316860610415115181494447735548798660995886179743767482629118618123106638674213217159034579803871934304340986823280981732315302427494130627921670202119527909876271243306731507760734477176979108524770712295253912886234541899217568990725979344795803065368431202004382944732854912266087114190587482454234572085830918005433169857536343748193009695627017285949120160972480911585885981197154804677389836976977926789321897761055333740115127903361822420228050148341896858113612390911379612292694361804126767677463590125537476921183280929045992667013669889080020866876859437078928658305062925608069065282939880274982100954931922455010208893506169553179855252357002126516721230589756421843385640804854617772219713786235640800576804998396343263596068900617337612332355307364709015145593187478630182630469487325029442480567750380523806287518158553510457586459548856597917174305512102978160576833966782247053186972653060844196525614404528200975752733270266782374304170903003718840330620569523224714647163493444570224694445352891030058671252561874374111352508296786821492948853804574572953881465132536495047690426254866143514293616281572142570641450059665556775719304870522582183030036917840620059666923421958405844519709750643830726201301805397118509230536884864554400757786432572315810548295355406883888083887919855810842914260839857665462041246053363594539732213119255719274532987958517878933493723051288462393840053974779169380031054640458515600896145635550104796716672547253733881304166332957545337023231222042606916394549206703328674782209740648236067472981620749061727515011067453384746708265996791119946161743358019591422118583289844854984896490146039324597643785623621028405493442991793128994475076556319034021182538041850246355723885116715591692912383282535456271958082536828889317220923892342819845605809278213260007248895033211952016340827412498391344508900912445325051636970564815024799335197292270745924649625137433022874118679053692231245293462218716437002004575356408578646631936695556080879759023558902234044271797749443213043097212019764610472163367983021011142260172864849421142396494615586763961702801185449883129872111275344438633258649512775997854956949055939481285565608180841131170071093385388050207128261674327072446701843946390379984305106750506409368762370291673244796698363662436639735192154467601073302418633039215691123069747404115757268953564101184885269838378155978298200020199615997800625580396879912173294295237234792188235293033801039465648381540290439431743263476535375183266270437340877855164032137217014730409000003171535775789093267795393980062538873138609210995435742385849020613391254236098746920878599220411896084209388952362482259465476288645768981198126217239662833708538194438216877060671827821763982414695186159968966388884092743785595376809233990301377361631836269695033027336133878486434429166446923803623620018986219765768180876569857428561415461432340207783480820496584861588523004261464367453129419658985269437877530261451501822936699221965729696964433204705123647312536486681871535879353065388340515002878452749913496184007511920680901530693579712344916342028988969726833722878031402901905244421164365833012716822062136541840482718655968990814467314399967325287336425415644611526830637921211322816899444034109996563576205204948198099190958122534481627791939870941870969109087853122452539554603942011623064459269638010076176449897885655731201222454592879106410550145686727555674129748867195692152445569218430226104709453408227536829108813856705279892960790726181163358626531628485856710567798507443537580529814198586014292827460169490420392440166533541323028194855562040038323575334572535363122112678323600433884941102014611618432770407797879977997536520959185166175639025770871873533863394209579996200142070350341624788936181200120607506401343825558186793797260919839737196216215681852268717318018764516455374182239519009561477675545531387464760037268702015031004009799694594719051393196445802199824011837195100328271299093125773790559408815787855508877124258537191980384418455739753992243780751677453585915589295490837992452560985819104997385903613702251550749443381573527232390353951659999493633521486812599972441659888375195055001715698963154816494761444969648982069194656442164987151696672909646663087119807402801081772724217042216064917045928204632230487162330769591660711043635977938316576066767861249258688571903493912383149222741411788949030951155725283309973629279172692683692957960853075697056008609110119055108805115550887526096941461322076583209279329068731503784832620708510965444188234530848688567096978772078197107333247203854163727287384312082299905666727209067723623743181985237621216554501783112897220164119395336038134076052524277715151939005013149843373026433055242168097710989196093531483198341267399846446481488347934207176911338655292875258752488084779654579343755210024686099082058074159906946102071574714663328952479802783018626786129760989184880429672110205071522759465580704568407418649961662439446632736986437009999215350878458836954279484249848522962518251216898633200235509797790953198816835410631834663432152281235522424563737036015515109945969788099077723147062522360921135391864355727790707126716034279719842586406817266965109543009728219221919340103030183644296224051214353626197254634902066963322517906033865100517011227586439993593757101240031067838923763250491035505713272010316862386774687918354957756846330538318253038967930623723558564530961591159391299710128333683962065433130608526139677514033324870266260409369512155931914487579911850407831844834388719093147269124312757198734540389045665440411731486894481247779850277684086478552763016481674052648277324331051482888173788768729935938303469118555832772021023638133719424097263696309904782964629672462875461832732983134148926733642888792027792357834010120628132791075190090571357722811232216622093935966664515670411984113981900162843387681004330310576842747314453039822514797602369403906769039254327077004726344121221092221660014972375939850986244698302006305165965996663826636326080360092219880345970737836607542085205659309902240195662065120191614802953152230381015038826931069380035283818654864699750719455316583413051413345063857748905832335539381713422388292184131492200438091775404223447202876328150711431048604032994238945596120080356426299561570790336143642751691915787102128782315667261398757105664798016702410332050404272146504228760596000083328961880076372449056613452561556369075468699158161252190267990280273440509203686111080961292578331731429933772006419912165504228893559240160568285354819093136416353662903026706527792625802364166962794717184534496536430011816504375256869789398857150561569480917548040818935869062347024934789879796597720433750171446564918481575645819283222423744605057988479775709004267785093093303383324105019071315747728352375112798699959259797559563529845051684943005250767092509542432594435191352569210865394229864124112545420745797240259805283497017320771845689137365394916320232791357250957714411068322277633565102103100085408772587810899631433873725488831000906979074468434512819968947901339048175248225795195190958516493381040277770803484117870669304156883496223004052013373067223640123666389734505408979824864280219739183542166515361207551430553024182905616797691092649804067980490173826971578420891794192121929455301830334786978579451828535776287634323718860511276301696048827719786389072820176293445570298364034068456583662861959485504152249109485768369040319687430970919137038853687448349662205736013763839438055011107731294190919011346329049494671647430273351429228036747720001297304861412859909656346776957184200744029563567217521982301782602666175422097037121603791797301411367946533118326241525589854214826857774689324259886545417983559643554890405896685564509625555996283706083806834064935609531077050741045703317211470070871463020623578626808189110554018570964918087717424473085214668528219849999162049419771928136703203321654515088486837789407834617318039856970800919880328753943508263012128657068095956155752481971696561066369620824056743587691094411580863968391901583529829475469655194241751225309850376368900673776026898144039834537384449003510094013012282320929355219437457668284926678938713996059741286576133915552869824812930667744672580887448137420629579853071038344322625288369129021063245737160915661298174035543544716610633380956353045914667981800784347242458664277133962814747924175103726542540886320635695288351028113166004284094511196117748150402734596077363782307896618363730264218939200790808792677506266827696223828036825891708227088380422088922463289821987976488802934382009240602199485784345206422237814019982890855170289953936876654263750994831938275295669468058713468394136905358986631708847364912097420877149350447329881408271433292287636521004383905625457461034199323883688328455720872958832327177535871792507883705127542014976436534523088078333708253006503223470517603312227456661757297301561692169438374363291147227222377317113637254116653107134839707658428256839022582853603165000345593108321951653785720682976682859553054382297579833175011168271901871763116614793620773208623715441449733386238669515145002541434077142079473290425362460269525036480197649624451410728629286443708284861233055703009770832433905869126995493401789603515675707564911343377759349768502658808876079188770502461058674184288710030420911672069630714876642324368847485030013971576924457297604457138266343093306964094521095262487331406841707555070150008119505803023733533039243266395995176665812250045605233443089904545338225161065312798545971714952831398490320518056229294037543294980064863328579719371136228104382463477288258123279386408722939976492359117377512367761796312682958276510347337063411675048287444786783840156920356991802519555214291486963425059766623850598163851089798379061405779786171539563201991213491023866806360561991396759342066649285540085189356766990113815251987146517168838053384087727802293510568328748972044566865754672784622475605095057477950470982852042474757537039551924227334005497550798339611999779697016487657594775460181179640338385682407365867347741067504368078550594872981089125386321767126574207157918421278167296017972763853555284235013670997236195207990941656372648844115629397781766276642092512705529135584002797963054296673478445259881559508908782844855005719021573400935847924464390111278189603898316397168364851215190425057695713944453386692102037074794217585471728368272164913245262430836317595458491696920790368506089010405836652159908396450614220100717671913950339176150601902249465698456199123966303871995295631542291134746699860138873153092930458764098644247852081017372257969151164338886589723718263142205313383751565376373769925943652674235574225243752925859816427335931478108907063073612153360869972594529547890971363804499404098548170189630839438752178735594880668798236578079631941898184983693689449282391530373623232270700167144361516695690000179043426317257033993130031248857201351509537845244322835987926876083397596269990265144686249191114158791805470623573958910163280121632106002009341916067925500171501889059881185619209335956030471872041419535573154563994622636104590622800553916821887093896980323768311011661875404946877839614468061890363128207713675677958698605357143366995397897039267193405428742645713375578161461946272877947260998567680666450437704803105439558270199947502216666666123644498421013796484292248607802234713331991136482406373681920910736520647257747866615614740314557238914111236522510616898940553354182776792028778226387729764736040220943398991960671257104215673052881117044339728736985887693381166419468682778811112265720047387980290983489270099150479726508807299392742620544005777641806618871250651999412172552358307042853787698101928502411056267579817778167510019262125649520780773583305956797076185883735194602709159611129031100504715734960297002978889954741506760884075075563095082151344867469186982415296882136941966886547542318440379848565233157367812155853001996700276187517794405082465148316666526627391789117749037789839452381920833520026296148126424349974835886211564373067214425340617929020498512791264638449191583780751218082057317305605102112543739485783418538270204751292290214501431981998729776751235894284055378509292622096217621389680870732855483736487461532508511490963444208361482983796415819485992375827234916709201679701675887254304759264054227728372421566499038671676113953819014079197933656637851277611889609054187826246053221687115298794233002028302727687717483627638906076319394333331319726369822425249074474023213135166145338259662122163538133185310755596988081667325685439957199746307226684323703585498829575330104082556100037881596359976271944615631045876076699150986398505767558591355771414552928500518499193042567540821851778512161991593940742758189429918751407998052744686437484357658488553125497621474723857904550989955653160382049452686800991432069223902115686325276211044932471146921766396443593538584487305886567239285194577784990551410982002874516559064371065354492932708259620900166884433375354336470107315730049150567013430711949255528935780315061536042987556884625208017951696008394865537510966238076154312138038294907043191424469401631107870230648685678770126436560602689103381653498956176552584567435236553898307779294069097995414825839098169783067747187487384970209805007044999896142903745002913128569081758171351875844815829888783267388909631334650122443454488600923432165665801698885950580491965650853939571420216492277733830681941511729191264216454155965350133485826462030894516425379035346089646318319119294476044001776488304969185624197081679922393741438790154443736733517178160763025751297799285541256206831692387760139694320086503047626291783362818060437494293303776873122042705890494803119905407891922141794700145827089006837042873385516292954696902816088351354570176125687669983163986738651966896807363839305169359003852852846387510813335781816621284977384833357258761037051845367490210578053294541300587018769641812182293185124933794868285891718833981506039082532976353163579293695148289713158660323362632161256214720013980982607216340161236020145288214633005000007236419128978177566678742555960277408600131143436113798498834347798094324938584686172764653486260301615753407500099218988324392914427661973493696149029154764747329000259719237949593641720570779755619277542746071172260785327153113089555677137666200208753093805718463513369009056017360504085324118336566276533046540678857363671738570839416224547162060920970234753441578574168525801765056256024999667881337922160287961348267398995673870976238508414469354388869286588977092977466290075049093204063314854324120155737122455843426440907762541937776293794221741352040338595942941130320196360490214199988914281310315819364220982238169855235680717676439255282514771256825586821942679557272444053795505492456764297775853583013927226399048821639762865558257162461167191058148144704331145173083431528689493310574181400489296706692311659637422809364600136299493173816161893211369584917000987339324243981110029410862899360923775160335776535173180427927341646160015850609151810241412668260607383202918761304132541361592712259566211579238058915555127686949376748697631689154259487892421414304616689349359026828249987913019462234822336761123936913128545251384650812021950642536211880034036187666671972718129298209280160462244321273524194787033222306769145212854926061317423070038119181344211609249653032552023132191299424598451918824109692843867319063940812691739305951594108743856885795509902555177139284031999980301403186457663883190338936154034244356254026222397694772948259055428800986573791435508137189007977775238801086870918980389507538633369231168938822224463647236362555336679633379176069069253912756462464588381971920343176847578402165866079213562586351878725241675761185539380474901002472075554378761461518949326154333043497101464225116016093137962626886249008750041130798780145296069242646756016243734846610123171129815275274611640342670429912509170187649464766981131444927607870503553673662567050312055735898843026631861638807317217925984221602928494320230965916849205971857949234531902209020696602739446852314862134526816270428800714205400598810966980961752418266178634945524688961628867402909857941540067784119642557163364940626091906973200207385590066463015888647559802561614437555753469610729981043107135104977002603747069318708906700252420935768603269078076941942163799020908935237513878150405018164823323076939199204190205017193461577987033061937020786805944143523387374129672962160581428058757615845456215879712688475564419828822127644510397367503470300969067780841421428145030362002673966657041197698137051352461761786970042488188312185410128178472389079912813704169019194184011484236154346874103198417519856429155044589727552121346080720735111841518781721716101860600380800570052260469607307630283004418022899337943431619430678777944549987598662023432431720128929048385534418262309040572389250546466883934730752297121824263169250549606748781995973621814247338165165617903765684203852491459540935470735029802635236745161695839045418256205765433382876114648920744752890067483080444087166534190409201639453413585561682855487007713868498798647679123164065768548957282587865647987839140264869176124376774969079634855091527718906276620979890676173347652162644089481303249955288588338548499977545264889824230763210688662168397602153222529166271026243305974488184444084302808701157361653512432330091370164393544838314265827187171589221783336207689029427658153203165362240777764455571561248338070557082165957624386462958879335663709539290350577711242159433633667113529668433697422220744273319125814202658217405829241469064541786233970316941942732015371903386756492775493585146049819128161193896972426175899087323408301668341303547787362731526011288672272195931652574712856990293177724724101395660149005972495814033513366180192800422168326639632477536621486957104743265414988495034273363371462828705276639915580956420684067884168890888968404423329337521483091127466465591457447871706513769704550829387917723313122216893811870549805662992256635680841432953939328702013195643645699932457805800358150296294452488189164314679755694850387187294317635566899009313990803453497599881931032023092194968951292401489441237889532568895600043271972780220988680652169152623512261112134349629485465153693920920334679599705167964557141449533842285846592567373075322384408045489174011960063952817736055871167576533258111272418397490511744635069045629272799377971965618458436511640256231727961153872495751934411619616129701121384911874637560183048351515046540345620174050678884194006724511633039969103367928284180259568495479400472144615018622541931737918130039442721401010328780894223834732527306308191053890879085322101417385580760779128711196067479469899365386575702554197922789895013617256203010882130234081260351413811861321335600118926074136412132790540142174525637229940949507423232249451650878588804940630977609386193320000901480582000001130325820829917285353359457658631500744714064210965708265546660087242614752287815913414237129932111852975292195473409052704329598624394081363382914263649466823025400732820595162643754642704706676911888461622424351164595887983578875487726597974047073754914425776749983190848820870062986956645275680310763482806148177420539538619800458386242878079779108462482031868040357616736977611539832761802832387915348640579760193771042979028781650023791886133350165804628809921305486249515286574246271295302930234632711634658132154336253998192537042588347503656753071794965541370371159740450688609949009883191516720291829263676985890327340445319911704443110628750022522842821108286620269570981474178491342951478787525403490139847772668581763854505661085982206094403886287381790346569473937769212567388313813823408193449386925582320770598733352086264232001175878412510235249426328594226311172233734658687998721350945095059182802155484863442104573636939674180119557415266649234395551004329726071498809537761861595680424134220719025368169801308723106313756280590495493215501233757521162699025109716176738807159824511801688686081550254854587770813201348126706987872159580266561639546075445709457083744343323109134973674933921962985355141297196329740014098871962904985868983313864659730450756802989383465185261764305508211697069233948135298401764858126182191607582410654721370831461659044607630796617630530794681275478774626740879351268869679238753381328979010881370548937375311077663683872026083706975584670898820716860137261041943325356304371769756736584849454880334468835473460564164950862385953477219184412731280810583830849526906631683716446094225458553957185744972150228102829558027934402553464262454781610229015164879981877747264932753691776975868631094904193462527322078793079391192476426424725658224976409090681455991073847536989235969583708501069763769665010279131765023341798990904223274514956697068422313249615333842555320259526026064319237667131349050884058777793562948626818594043080574516527252748442847799700538175780433851904249794427366071544683457640558812828010176664717140327709208868172658889677878997909079210263095313543563983424519205337977904828920109377171925882310160022092031716274545008851949792971636463530141587695784847481731015836243447548228760133492893631533720473418741686908900408366416181838852974578381178229389641556491773665420404802918192779833423458869931205799740601117632564232285929837702270533935672753830875514627981176588560185162698942943946290078518068631252676166604308962102956788807991066656777078717455227807542303326021164183768965695133127747149869868958656011803819594032625880321432901445282281793219594797849298333255565230438669713093025742571291700821979943555471356233467131018819895168651824148669725038958356324475140411137507834379559914583166064905914420396096763297896008436695565410246130760590773207205555376203108071691710727648340262466489797084486966660435666173262848703354205320531624422450890920694277084190448578862684001408524347043816894492633353948125360594867072233800116786801984908221197006288734027685405046040334970723125317128754205923249803369923698611406067956526908961820888219657751243406977614689434695136306049931870489234076832930078837888443442951861452074177680626731284841280566785945602951317104438301516089421207506315795709769913789952622191674147979195872975866079925639874794099691649765615479014108073832137613213741260850676876009539944523497103118647015607994283898698571793278067687559176625409622466466369555383828372884915711638015262720424760449184848832437768025961637445604370805771622340280754908982447779811479981823126556534297059640703130498669447837591500993234097610026277935920886671631291775693694659216228849106737621331876693938601872035845375521940564247446112482228750461820673193835020577326632266713830845175085114839952850886254005525433136376454185822477452188342793644878489260501739745850170155180467305884454374719734579037579067191017065705590513086974049468793487154086302745407728841341653339923708473288537192336682308361981663840890389775650997667388326098874525298925895030379288960245973562126651523737856068500217282056390095283073793263891220800472728928436445801884960750777032203184402641856751446339581945328808602575226907871922260640413439169025845386777572039064738061287809304936869402843043460315838820031445014620561549687867531857198802578641670672923553466856829525465986990899213639689628104268524648427210741489779518649323787218971514080620208801712966926648718376589007479041789957094619287771522952090294890647410460567339152367952359224476796851173398931017245294909914830004931079472056225654779029042521547303122076108810243052578874018690465105355186253028712311737907550198613035888386271694754158500942745527757187600095456450940603726763458822309219463306747836370852313031838471803981616412439238651353481580237393683787430888050288560498297736472767220052786801757756634049252629047922299684457567105481923168045374901462802196014595002977385942740720864822138720328808272906065020206540340733105298405901074814246914314660049928813122873910119454310781161505803148067449315385221064599389553656500996985770285521864758769646316068827083889355116328987636865728999051417964004859964888601774087797879001183747045849096066071074579440493548246384598566391344780482014046647081341764212587815065969356332114159149584752569340136544034838768127196148555303970967847746461565308189331912761720231292961383307560531815915378448764367978070967102421181990298982079639103492113263536912987853228177229397156195040956718816326056581398856156227003781481794296098856738597764420349614257679553274001743737517181329573655148240475485009449628133109179228234236968934414765904066979844697880184414820983695244720019341221630904794697885894550905357245966351288241150617160586759030310144100731045788041359165997451517179344850961858740297955139568332173651922875614253201278780030934305727959596956575005435000318240610863147057815661480531562142236414008257866094192942903335207590723405257363690444473246051198653265887677845175601721476417994830691534391105198803963090464450864978316395626863212812326090943476819018459448558362263784279824843143042037058059228489672050465635137713174352197015563957996105827385732886275896107595115376366307993017690106938219653924912867458990283564797403048505809258637629335702643624831039078834043296457845092486761750930793005313464510190347469974983567145448619302930362642838917192044283245388359636432910764552759435126977356299320905329970299210302982385096190004787261156562735000336476959575128167592748360118876071118220404630335801653926775374479802470098483326248955827289449016987035290718976174259327846355895102177323850907578903487060066000061237478474222706792591338023363134364300685805126206349037544240391757130798671214014914902390305042368022843706054370830886484737952890208544023813140906967983529381949550820975386896876231079072750032618934307055702724944963416270413384842203860743122665913259719420133822871789316247506692070267041993115982466080770774678985353271330442759780218550096102593300407433159971458875012959707013669628364503312665990651698634144491354528260786705398713230418032327828068468193562514038985764837324342888931288862525936422829895125377753995757876141635246804932909225737256166934279823076732385645126373244905300559108705885442924195508197716532477682051316046596200276562574456029102174677641642526607106917006890411365148923188449417234281584080137779587549976395890740345574499895078992515121396919998746628818075026419215443027168823557144726643901920444849987148187895227916232570909279392245539740764608263176430312186265056473802618751915713778109858288167541928342398255981271369245935411705899966180106578965919935488968648325366381265144796593467409198197743729673650468344259190443820757929423858345810296697654091205195240674486334948034709331636846788175880368818217780101248696457903761053364663714961511048833424165498688904030095087648535888645203389550855003061245692257727298211534796854249132775003149515628712845445265116468159023647283826351066236011974300483786792604945913571947643664831057426505981469690238219439377703190272995313539670656241328689555916190424850701098954929169045098495475752471751152830218489330195340016647612516766351503573217858898005992315206687949618850621136657739297336877384803178377327783644016478899643855666048482127565008814068060419338660850326377085079804764819002883904216350605963073740804564998344628540619486698893769510687282326646378014827731884155795658304123360482917213972662823094228532585631346663740542230954447686581244625930735512821774910024201465562757161000133164703859542303392726374916152543002146602107722527872234734338230116126039607426271842005643345393934539762463590406333094798554596553810130581189417452756401898763124829346055060608557524720083881138122919834102223928738866714944784764982732614419619844419552604093728213408271814965310393595707602220423621284684398578588052901929923003355949022504601454575685177477232615773272688891167309837060975856932496578685445801304187393140976156739462149301585880426072677090886579813223284151032297388091112083330230597470495152811565140617745808017748423632704961705265973129175397312301374894981587315339751821382268748281316692044015824940865349953445858281608971235670342754278152338985482179808065588109524839439512150975520557967750322784872738401559553572029202453894789163566363791418329804945944885577283020138571635748470275321216348671376614776558546628514307277280183219151517014869778841148578302043513220969520550217029068670987433744685367198851921977364140221924080625905589293683006595342292673064193299816208641442870693440349789913687269110815672641552090901731060072342540353625246473183873471853948767670240726195630849129899684275682742335418104120262432526374743669836493930765556225246874861041402047865807412087041783484809463589368537058867668899609915073571540136811710047229172278720030112385879158169067687488260253937939100131706845711065758854179933108549631316167922447385727035453668264230667148715898716941837916502118174921969660830467140539373416601657908059273699268078942516425024918460952454880440224137480235426566236292055253468666910544305599989121863095438208363301048008107503247221004472276936882746080097318519791461081543197808066827663182099595496379666416009424692086040039606664187215171698425575872865839044920677671058546300883419144208141777559897671238801018199734370703285897019614255132106984506337249687722985606567297021271669535817888142228094389873201194796749015561371684253071493422712412782613673642277486899552983777510902706873847181789596955185345784496074102116310614998007402716348542134187076360283983110667298081570536094553468302940775370543982352804217339816160460719129350766178288529271145241099964174952836062553708739901659344452078813540548887600478761791604906596826339614542671541001205390679098761967779300076704984579965785137740034485678082734324985147588972987503362086785138135114422430379481552666148035739229958059603221604856384293881837836808066430016413135927598472012844800787728651065800467819611773609437019065557995925513445368736472729966296733420710767654883041839190841341587889897304882121790908689523836922004128778769318533424411012621940204647389536413264484777372688471552383193182813971164030332092437031399004971917441680230682439899611324557720016622922272720232456458484951593806519292234527298339319942689796123657540259640356089510917412047698329784341151942182183025314201553901486250516253792105093829119518280724121026744444035190646657487573694970911823443453436065989149529976998387422985296589429598131518126042277540174321547178601488981017428772718931075609953358654530309304958898731092640454816642178359972796752360593821592692936641605762708298974793849634885469055682166896964152263666419483615315429276104239672761501430384703277628113939596109573962719814623622133771824946915005104416755989872294455517230215754712721248309168213605647283087798546959043778087138144636387453842623574503881356681569194477743859654219395403884857809893023563895313984110012119403619545474091869249951023682175323481284578530780429265344578388634839452148492564922607857628056103126858645268367389189841506033246679286696501660617378992423461348607699257648127010035378473737394818079715986703819950946646245926834952518114273824123999314366546015246206644911351498230545480797176648596184887099543686504485430450166897952347639668564442967392795816129219983169815741405087855321869628903152725354198128382931581446908962306605732918982785184932205289537458379741659755894152258858277456562648810337415832695761265575576982890981446835764894354618922596243178548857601206240255952024658791344013878835269864111207341340434361746706517274568535680629231535137799477059589554072117335741879216356482320263925586118251464702020986995216749077335589300005039117588278446143122234840440211715854321366529284468053760676019368364773889428291549295588292597693691047026957682170793393152722622366894633017760917437770784766826619867480710278684295022318692008669909895940077603421956125462007331384669077536689797210971250528535929018347362890295405916435894973258245874786641463536650663136935312522757266649296033239081449920397513771209220872075612921084326811439442403493347557600915294322617561965913306361356465863430749406052502241765902170812873908552032391316977496529998412328409585479387732237683321241487943536395843454338458267662640087948994816789175424217374384312800903135430739680181259829239009734862277668843552235799940703826144676854236591065476140964917405581258038280513713796520773040730084731520769475687372378719900440383635756927669020356386814495506247714228270054224889963386701329527857835681339361540102523980863279983942447451593870685002890203506324420358000398024992399477584720476993373808076570860256849878994028641766320675208181435063848877544462741563652044189117097454373212798776946531932674659446834190119155026880305973036941226236735638705317321298842560478660115666069801204744508170865707639946346105572132807833151650438083893131062413495664385746415741248667494895379143778156718457217399186899672744808703699868271327634907290425799347779663764268146632005795757758082979590487291790713597307942792066577256363970337300602708203464887793838537677595317392478283440746129649926468207612137025962091280733975748261345120934852445629909507324440335301454519528925887343569369572596165341323854976607156457487653181014947392535296938180191281487474943794677558221915824594994923087545598951236087469776831627897174780084126194720944397347520772569792436458042853536680087540017735130120923948394458689043807871875531800507465124467269710737584530696673878906047870136595893662332318353882877807393215224572683604585533803862290499642104064976088955764266519074549994206263756193479541248592622080632026981371731170794120300029267313633893577706714465306272026398286028235485867638137436812981868230967597918009289860710465391991248602407975800151311658674170781105813867917090564239464047101282806996344575417746060462494375261534485925959326761040495248981747557871318881967899488847760336228354730380061639328925909059461615266947544064156737224911504984578338671885207977325430993862100738136234960234861386955126570654757562344904140225555630673041085433274524124417416695345748864450984647228569608447789680069026533320687357765991005910574446015792079602955998493942836467806506341861405867098483177277682178250039941951926468942191656292272704262482537555961882016645606028377971021673738242392500946246361658804011537638054870480079312550994948481152131740367486403242671926279981602595789876437865072686605313622692718988254007403371819651656856225371670352655171127298278805950963896495295647791386904420585012288086841128658560180497539871863960327695550697320891976815373926818104483596815133792168954396613025857553985821531977199101670314166725712402140235755111856432286101787296741807618517672422274083536987915662281440517412885857985670949790737243979310825567595346593196513917121237775645108226882860707822719458153988001100415232705830058436452089880376424649678440519014224713532345261509022032443433390422086153151925417352757709628849842584615483249160952546425196335374824838972386916168505321283634093270215600652193879971155903970077434319425577668227153324604772177927766139455013114450555063250447818861795361558332805322638544568859412079841004212287459171996080786199002237379037825953399007119941041619936448251160048083849060819391493813266616489997437530882560268938363986470023001598394694503637603507199763536167593879400899174906797929157252200826654076202785105335127484808230606410994964471180152819512567869678997409681018702800877184141612346593975217995870330283222261426006965770723597762460727364841057191483692624473368044224254591564056819168611970639150455602530660671683701610604282080186466699000749258302553160843938524027009184851945988111563475237951894320112288946783375277761026895845301006635899289380065557616864792895373230722853361300659159810300455998349062846596399333371906816856642523983203370243140521019504591540376137970774149327710255791110259576297239127735004047319696060737162371520289235671744363541544214742217105428828235123306136220798723008687583671445281124887515637510391370572025920889748391066740477990486286976019556799864013386853503631075557587328132964610455541869537273115770840759913415230667131636531554275042886373028646251958512945933419087670816388912570462745904644933137645691253435640165948114858874387707901612930079914848120569750646164081370963554638526678651024613717270668085952729717197592774249768740732257873924887873588094664888763924675416505697250568935120796976710101288143518881401199478523573524207508921430899189313681713666686703966822559845046211167313380561076718849278255247678261914484656374897605020768797976847927464363306812036334461339061308898244622922062059741469831162432829120205171762585270676948409192193698847308631010879508227525342309324728808378509494996473104792271946108415560795978406007794023000999002889832876390064496808374177612350426435938258614843252998412808654540582611462260421911350538072682469702746667023806511769061890281654996635822835439880985752701164635626754883929897029790512520313736309734204329599071308130471075780192021968645579196616312081047818268607623281572162679000866300523306533843982229721182479214250861749628929536031278256975369345628292361359600938060669884357469360681710776646932664856458136432131553203126420650518269437762917453978917267121521208846245012985083874922878374118279977690811423299006175973372162350293983559372669670730363007577859401230386432247294724872024405221868669917013548988363983882266138296393098588181143242597667571332184621065506117491791173378627058998335922284272159113416859104582334947846467029180053387823291380382081716511403496453951336324770483544405760263347623251870310805566935951071018617655007380304311930948138157277130039839766091746178463843928405971040782467546316516949696290413422862795417553527143286782136330976674839408502193570702257179992582729733201690311803287453966189267553251719416170084335972989956187835410573691370660461607978498302285183878304611452342804054695540618674028333934837832695101520262597372492085090082855228304740936023237314745433726484374790475569223800768480248012265059091436393317837985232086283762597905210473613528897577841518707008481336656857120914502495212179637499277872844433283295370905519777361141759711186567986339324473329840726795858080795307525613191334700293349617371220999219826510016250852658534949377169249181008665336817238483466352047492672058881113628403309824486029604585891397498497794538837813533598415776540401762202350279691895633665417748046960297382575220979708933320888494553991548131358704158062005476597046442432700207746644192075613715555104426532890576018642986386096195654799264371153840723993071594575162439951234418508511988325987764195540186605726729057831334202164708271890252787143004520733436925826306670629828595026331080965508671592522317708176460839404757886139672576485111282246885809624519009979289010482461637563961462495816813385415064768051460245267300427833874007344669950168997861573186860279351291636137723669972501193195637434034552162437357374035077511865469939854558723258827193801180726473699433882381525231101642937010519577428666526146427153530827248018787174097168932578484492268536772200157109074303814346795712385593176872997163322308770952148346868439775463272322688550333604682434295055166007752598356278510361833219944529104241849362461665040926155946841574103738340781941295094675999999936067342907052646097886191220355161017566132633752434027276281954054517739929863525949965361376918898250105279857013923900330423188341121005158982364416430800409014111442044428587306864145892412242863066452605034490963232912880787211173159523923037088140390204645339955716559282171876441094472093537919008317548109714018394765204027588525153756419026186560282819566586822667704845995533389639458250848162922751963997960710189150498457911309317925090490056475770401770110995194646633151946063016813075695302030514000201344138786933115623437115672605945956479010086763819037807606154839041976518990528432811550558920186646792975549233212689914390383076098364305880180234106140587922404846449736811324817421523554904571362780707862155463268958937459684204359863269080518372191325366546407540455683420316128840097260723632900335065358890760757003456694950049436628715121897352211461929659437914907897047401533145364664426228521443544775493969673473001738370163150534286651228884523264605773649487278495029131284134867826530506364967094471038302829233160904715054735322996796300164244952720332225533377255368275210338313309895442428238681082392010784455166795453167769663290344653979035710307326379430924710555971473365239516555949319061378143886033668131110247620206201876113844361174371117598973189680698238633493153452579104578429239712577334059120525820904542750652091533935343234168481298046035016162733925201382062097263108137169143659352419539433310913213838094440411269192486622752809551228151731362574116618580271360871291689014894310999690770354313156233661350635549069376946131932603862608632884139542160701487175347005535609002582277465516406880002176149633904941790367737986680183864952162972496267548938848147652542657178605407014735127471982918865887352349110102636966674404671769419169757455398445871214876959187305863806816659338750587009393094302465167676616003716884549870460184780570079137932720714769465205819045661546339433033177797140678688381590496408053512171197206328244537576692588057839729371489354282512115980854913386208564072857144333432346602916985753403461378390485027732367937399194515813676769413653444203919779416989463912229866045845764515800233445872799600827525579057377056294258403108916887260335201578390644719945846500552035987390337737264951293746244259139746063135750867649292906012820227286015188066204732109494475932048670836309570883454072623069547739392006405958227182359290098638860697660034777268963141189112536810282264620313909201487151695769573121729336686433598791657016512572242521513507232046539233372979719867944505800558707455485403601036051543524626074445529324102773530366260155137264565841064376334237358442036953719785196140070622312690902487856223184562648222278547795276971580795142023509477875544796689789764413519165865222171300035087841716187942561682954647096888112794036186158774150582090814890704200871191346143117369409737047010628213252472223396829977183998055911178057199965876789612231857472915291284391746216867970802564323680219616308524968160194139617248763382447172844632206822983685077149824056938012677974211466484826521835132637109402515259512902956579831487758748739343484550859048547159048328584755646719752478771627184148973620756151787075226201135570802303937034878905439140495501460196476466794200885565565327493322333611227684065419301523549406259115202668125682830937072953385794990517123564912155914269437218088860028914255292710811549559526405917894997156728746831319186643002316896520683965387043738632582490774436931811707557549241160304943831020007076907729111447896533659879679857675111049059981706096895793442039508364927435723597805825877692660542064206731546512940479745845046170126475744112662525335327075174843997533056099703646274013804060731386784956208996272323692722626107803349101353754766003271969258669369486623636184762152580145051524882619269230514989996066104577684840998790027848531038038111446053053885264591880152154897711962460050766673233846389411182297743353208204397857732255025881026167324747699629889821285702530652710304722173682719157243710853939404380377466174117911274624957972107252837890102788416255092333570971159310525405384540034494803510652294600286645881183862638138926609747980359723118432775735071531154287683003088671786068665723743481271042965254732588285835749498709055214119430787217285615367434111599624701887383883620717861276628285402081128250208506917798452258823217723863563109582211838883754157542805978095553055989812573516681843664298278009563266855698561399528761315049169621579688192619427994405009994235257938300697509351115642743706298286838434888018957028809942235454493464958973457212662536870685689806418074329533624476698394424144176502430089598102522419731369038135596647841865328752201754014755330987874124962865262933286612416278535905890263588649009403943298818305928959591244118558830505367186632515980717137661926170986428019061735885115384063196962945699507258687139357139562617155207197028203776873501668171661225443348703068485553836059230294855374702240153922817014294782374238196273177948217185039857081999601418580090900570369716184186613030236299686759893664852619032269160695447816356298092725025109364233572153568120061739198289753931453879658868561256104082981518767775510097827403775800214893173906128928176017946562822683170850684844769748264351854375012935239920253106874426589454896014993918540038814455065394908999098777868141958907172126729232387042936645817254837767158856689465509657199344140637121241651031132029469069551401595637837349975545508174603393346683940037361848588135427674622959625176596553648644138162100944824050385566237513651620431676075372325609078133736325246205020307198586362214292179028371376228724505233687986571039474072679193548585234807759296776827025176588048976064718562943353372424105538165539211300476308346529066809487756515130793990520544051107387480550333653706921002762535894374702596019886555225337524293857446137191115621899574925150660663262702935397647292074940712433314599603591412583912975100360395988817289380381270006300171561081098115106471282158306926606481375605911566495101896922850933850599400963075897948242115987604188704040287302445827120916087695036020854652628974625441863956698237950009996624677464114401863034441650368373342924535547211681417866491812060530847580258423424701036133707020158491892007761098956347750648409378557723094795194542154883356062258557478386646972783640889811115595307143590600605066703964056143579797218293563965242042420825183246625550296092984598017173300903669409877342302912838673033981904116409122098815973334168608204507221502813191001253769055387535254977650404099826409744268593501885620306612646705638508564328042981169717128275854028971209847117822328655159670190008591600348292456855138033147368560394315824526850795260112504410846929404873406608473100269623657342641935168249078104421707245458064442824508440233505886085855960259134696732552023301654563393111151932041642282131181287860355431406531330419219170838186108473923890320006374053678854651357985780406729932670639657895635107689145921834654680455171769989272895769617014265679827931288975631411476089284791585583179132935179878586900128323009329253795339614625198199255168150874376873756595148989144264100600949747810514018452221121748894172277897032429658311907799195407116190417196902060921570393284528384544463509809970913735785607627914674274320368820259867307752386488278434244262797495374735283826537373031341924966755894479706564488764346325615885607563958572577808433987698998261452036118072511702996512678201011202582525960155503832957286656753131291804878587567577764191288983483386796889596796606036317490544346924487042016361913656965530419259923014666355701301642792459612757454915433130421535274269421290994218212710465458243266900350513455745869601384688909949490946036108707406733021563174565980589329320039101241071864656146052937918613201554853754483320111579023407656368756369776968052143310419389653394715007830020286568326749424070338878965179723689613752385303527405037965784451967056206399630593259651296082622714210186298274576260916122014351305676878247640092027679895768028790756702245481405522449424312184891242993267660582876896542539677470986259543871092242996833460889491600807194696034233141879604913139910211949321830697535191770433944585430068329059628229131747462376279634356482310873091029395113525413433934679439285026923904107883806535256135088498950629252652793711576195709304004345648473475597828611244174047996286315280445206929705295887980360009217167277204305041146908591311083411950477408519559866368772178579987908408253569367341060555693109002802744726842775551385773588899823928483180634189845188631130961564029778455307557749313125382342246323311070128169522341399967888424594505402349237901441642098811445262801183308214375781549787196060871176952687673059867543462098052727511009748837518932234461130779996493693478296204376405160279425225272395495214462081354087548032710358690081107260671320467647148335508814593976307062344359620682546376803831346938917342265631828689561590164036257223983278237620320004247283434886352208147545854043661683115570219459358704554001317003000975475340501730303617513387829771479484739820592124440757776380714261568658430658655636700469260957021309988292293793266987252195218595405137719096108118902535893149854166796895468779740191881432704823368373080579270650948678132801132565924275252860558745544475065106422577561383133053743572330564250008411516818191510398996375748855162611132504613080308685775993106154988928296273616083364834170340716869923305958727182910078764063494075973208408749114665052896226844094393505137744582749363006419511737626142507939545732931187330044809896471224810750649296139648673806527213998693055559675272470522681161085722609199590919240302707249847058228475728933427519835699491686751280101594407257361179265491889717264687405181656482127550028573522669838411738733901957886688888523345101023476931878408266008457303910859296398561607242090454623527711053760731667764985430735805257401743873573676569362372664306995887034872427974711780131292751323157525580116992279043298578109793510469863361086197465135290720554828865971555107059944855250062613565243830291441191857824757791851939978674232135196745220258042267488835826829595278824033136901911414837913190458956046701172934924981827740148782419005800805172435752083389428320961853127158804271037830238388677606068636179949547595648317086909781040609385434381145965171110192434650555382455712673289706734650332017855603170207036329364893447690619024096989545939714960781685215289399149336642744436909942698944460376865846279231411118502672786171025421523570792565529102155034382742473469285985451219558144706552006824868328804581317727032424821182620067950613344699633752496819302990966134522552772471323557013277135662280141980836631896320243247428170843296604421665170132354959244111941251188469188334348983940276820613368552858603661024801304418943763678816712133095127763049146207149169407452654754842436648718298486742369849536123268730566078422633604302088569687547612351775449319684871415605352783353752117904871902352054973941956674889054092230080000773937731213556596969986449833122696168186614373030647391608884067025861903008515429560633447575263915661293919565225504337723929331052183475004373737757322012525319127238842359976149470937040918863604377235913898043878451294500670243812056727622791430492955496104467865250902639793942928381377493904576732562856549630974044097797550112854755447223778034930540257659780504320753816213265552778488582552601518339934951630484055952891263835375258587734911645718965169996624607746617994010288269087408918645064120891461222942566521024905587382918189240270995446930112562031593909490743963092752456339977239119892806938757051158028928602090881563394929085878647615259288140022701397301753134770063014522452383965647312275774601362788603369676042006677529415446366827618719877113809308276571779159267284069304459930667647437213336147385554084204020912851868596048069708931237094556081697417055447344579866035075864170416607493716119369349260632734435215010407765612735792933461096999119278378066239627116804155989916559015703255913438509514987344089082734556050538012300222327101433809387572378032633872352864596126369920056585758697441708681383608568940834204680163306877299497094577762881236310887487165243563663943472662379372680545844487129814366164512297031960768890489825181484010860010836480423734499159386877794128829178109244750876531823970750094974096660984537617867655835523453618917570957405662169632848553617030792187739657194015494877503936239613781803486355758306307918542740570228392199722369380831321883708950005554351120972119622551063823143765889088890690158381244244208637410107443668395475060406627705605330976380776598186813058348373951801076087931708332855991947537189511403762488025117999836847823044019316945464762911195972140747150469598930862229623538011795839241670251532672438114301223125883499378871696958839145297011330569849149025273822784339405506486199592399400023794225086645337947756596397494699599647071473636035668598719479781354671674521860851880946246262747067666745136638919997595869937392102337546382572244121389544002919058544068262292784018359026037903541851666259075353047585629398045187977001481382510491130946888869572426571534488775394605268232598647943449935231551953103183663916936743031963872710967141600015856961223280440171335731678972802850020062564318903712630800363790526990550671770449617068008163384947468679712213225565945796678631954572282233728476019534949208165546812112312616847041181942761908341869552258285826892534247169150059193429902790821306161131508627461671626401822535455978088510418431810128015204380523556033553028033850287099447974614795127328207329476268356791634735343546844917475324119330842208099280392951082632823635291493469267184485299165325370158701606294599120090991724293826446528429308803240529681669443076599338705775231349339396144631871210000371385096819439084989619587643368575706841713538863400893836847178489135835690324757134803148920192512598247225589662557909604403969630102359934892046409655755268110237969123176580939699115981717765906248824432611780506048246396763544533186353696934014356192259870297175094202158834536693412216851815268514340207985077068428699313407418085385128193530366998566881906034743397329818075421364668706054159552660573788437828684186288118972190474220773047318517406520928368853216913360508938813732962897275686526429145209709537868947137461389722600449504616570060269518887006235460944691131907963559252005706302127644818419612258061126696211878900233589412395434248108645988815471278603249629176463602022782449227876211276776297193318745501221500821458993501501472809001345405496824022374418524595690925046814032383884918808531132866477776092090189976048946550368608213768907735217010890999127521630587298678415285577032100456065904427491987431716640042850743011496386377073857695269999955782622752088913804551629943619492882064983742000740457358575520179085767916510135718958930749215046498892177754230154036643992380200609140743980088279547032488853966753426674390312455869152479647076390541048814484225104525159225335939791480497703417657266808070779117651151745168331098832391725980648860154133900328613317901112923630701369129447054529099950781052710837518415560836929466950950094884714460663606934242686241290092710037119134308104536239985225033184575283860552987923990537587336341612507601621662467157708316845998302010616339984957994633985222143003034955586045637487811425053423569395292787812954254982935855474868155943048938120862839298550667348472305459905649391582004187422183355173859618262890099048884105887891396354215912956167730891713688821413450855952052332189232783050159585779905192943210221513644799289588794091323045902463480532191735022720401587664633771213019810539088233725468060010056861432602315006526643075884949900887417159451524091109289282148746408105770448155584532395590402154647942946487132901727108689961462986978817834086273864212863066395159426961568943889906442538805614563212338426916526966027509302056611548445368850108297292579191607167117949908251667265888377802471614429770876124819060461747976883262860254334414851548179819406426188114755746796695831745224432029356012542125102796362191242498239111459415282692073697876869447494807712151935298564632950255489554151991043152997333316310514325562656797068821650476327431363498002259474768090656134323545636274908841299134337751156559737488156101779546763242080490173771031479061093155424608796801787048378420047265756926436171981091261623127123951391934302574766045256072496767439967263227871423657361720578122297933809512411021523237491101981726117486762249735388338975879172251196580242962716085843988817645812450743200548915303200241839216345062537409309523191914295533234886250907558126920137321934319778759515341337420971039658731280474149249990676693467143725110270812872180928542861655110222004972777200490659552689218076310079972759801814175365943356306941453950230308370037994324322326521122667722423281166257692658848711339370055392501680457062744212002061085541080507110497123569388677321543042144118933384045768953765752407064609072813303757379189643805318073325359014679168830855185033836529838677524419685852612438215228957199846994180126737313402837194085800655638072356609025608296214039248996294315878681996205042629207879283787926789648419720607712298785532435364175703213279449479761293472384720816919196773353553400361847253564010222585733344509388935759439449151333660503301266124024082541252489935033355204711789148033330951740430894975815935775223812873222555329121428285526244839915756439750549064186415239616449684128480499781820956538163720295974862386143792842802189849674170316686978944728596657231077887994350836754372821255334521886492359400112968634888307577420965211644700729620936862176781365675282256846657294296669596640802273774435109998753629435929712725534445654385213935823570499082793733981240214073859196765329167249581282126654709887477440889923996471513076563053351263209939201405257603575667879628845499282615088880524349068244247453992035498859770043682804228728496967851226788164429572230728538853299555477212423820776924206191632871146482955968326690374540870918811241322472407246804562524457157863026684461588702820874744871909524270974633942109375444876501203072279031060700653651359718224667141310997872181240641513380471365255328945545378059434469837456908548092421402575573857173482600001960430459583372673141390554438475522369053076720517163367294599097085316345108521003831718196909071735000935007509949465076105142922283092805249619662933032493281979431586495727311350283634724478389570915301782140501812085944950119757491315099199808279159399882837066313595979524500274316058864404691116341327888800432416874720698606016588177280817169360351662084227879939999293701658087469697787056341897273827882801427157205691164954694520225481256189866382418860215246193529145178016607785024757348186096454817970592847993214506529589309387224889419641519001914367665342965991499231757933011070969027592014776157784012384915463368264139923465413469816275545809054784068913839456212582614282460559347355335160013552501392636890262189679522127559921145464610882012806502224793238965463951730445335749672783707187060036967958150922119866990799303615122577867081545201289254024001748896270708451145924214392223687924313749557620205691955209176145423565353923127331145066237840129371848732474781104087764268340170012925281370562779859594611144661496973380846815736534372223933166995648698999449092885205309921486847029490445370810982107672556829947835539728716131359318379499833257284891676121005794754117547013213699175337944012019321846654680406049213540533566057471113509001605223878469833487506143737733372438635661414554452849021993429218977324171019097792551320788074231312336121487625919230336191985517251179143558153447896990007540275577010940602700195009725226319355615732443236188072727560384396165122198000414823874435398124154625620789053207733965353916814202576687016176422548767996012476048881022800743299800201615817463340794378168411181256498122749416744970196616341337792491662217016773026231000433456940488111576042887706429021952630877375220522294473422337828072232587365123290818949497647052140270037119158740287251490480821345133965473447598002845427824459888784200652970704347706869974793433145350375725094446409924306955291789626275831638878506423619821221010085070504363032221747331134004042080859643635326233620715831266735340772280088375675839992373393068371669960901523628999073015101298802730889669127014813010090424826248200015164803965099953497742349780200709888221312643666710639673786723735463310282619722570887774634024875638175417398991809124354827605228411493837678586616415198830594349574929534138306095067700604255886729528498206257442811913650292819015573414161437101204357065660574887820816912379051875251355501937256723800243924972772178315506642551685608505937550659282073586376744718539821057424085266952799052899860078737325381966672911451378571322602702604209779997327704267020804798375840900207313076770295736085641834758726172834731656097475293910488402225445400194564144006234356955220334899279902054685966908790477625011013991130380995548985556395114087350055702110190151791193133008175488049932711753149755244212338024116822598759061785541695765989887063167444815454661340022482733898581266166290193234780869225731700122925119650999629802392262153518706627510017831236249903420800070987097568845441897764266850791174115951850152014474337724157896861271821314598628377261434960637413336913244997466087711227745534077452133034564042622791374753121130142063653317960391591272909206866577547187712312017448762353956163219686210339651925381214444107589672339755703291105554302704844184522880686796082700151181678132368259144646344247178284909279948188643463861133570829096006036319412518405302472739390279230105997476800328777750345587936227313754900022119813118623918759599674751939473369593042018423026493955884964659285485660111388834835660191086802815544029454915370024834827315707493908975813104987975523219908126605832301746447230452053246277970128038176603955377565499171267559817015036663342112764303882677057289487155666028188293325143430147899414057868530851470336013931219201058635169996056226082703676297264514515637032286484844635826493555114024726070238272598022309195214034402364669435901537330747396351215797680221804748045689736524620617981124453425295487187861995651149674115527363330204750075185204476948909218433648276309804887956292669925336988008066802440410360777636381641568356516347405019324815640470929473034154565000769537520049013496624762328108929086912377331639550003643246985181960911236327938198839793657127312246358444518251721636716719019338047699029956940507577580195796840392836916825103615338700086417591375229237983806443034221237430667006564183119823362071808407373592139223045575882550349580461106776713546433876263412249745762453452112629557771486064131639593500159040267832920258636955964344003707343247530616726903580876294223786507097039748432236067366004845204201459979264415473593085493440236341084664385518609923571034178049407597708731980015085558524497701769656321649948843694601644005106616798437852210869068364467582381848600719978134401527153242526999216356631261402684633600912027940696877049207870595015430935966591175877029739996570965526452218164453787852576598034890662679593567797560137586377379166445520833820854973844693528571208112149234178723944590845919678381161286153455424452175710492603356907148369393065478780485752677964115080698990680836012118745744095903128214561067396399461088915627813981872518556616165053338897472182749460022071840497945238676582951031312297958702158904766749690319937114511292423637650768585230931338490164095339954022657236370457512660293414384275902009750066451954567750397582223230677648880681389872227189370824839026149761571788381447411471166440942240387674737214076775852246366470716489368330462214837991452707254041505164304054034141440024341261489059561873670463111007996766177765154787446374277697720123344056436893131687877301818919659737077185765763167423368599637922646853319464047525376824884976436396279964713799515873956676855279313623922957544534062051290016515609282815205392796997921117553535011383973388657089553584233973799050574273562758146926976339936011868661751244070385800307037280930741481830610097382645970583210749945576170059095940114340422736716154069518151605994062313711606346089022862690105599752658456017653657405995670791113163764522175447142310240508692245221209316159689528705226955276239609585819496012635236944620737080281491012087662900213268143163867764363239391192955705651182882602574025189741782073224417889975665821420380957298193089876377872371618259298216407122840188575728405142543108164009292726709659444663672495337584952410396320835065542310814803116132209863732419990807442422174168531611718639836318268422343125443403233948110044973006762058532601666361397161334691789594045732721180362668282623684592770730675803776021936057450725973682690027107632481698151809788263908506876484363764296772222943840676382366987579488897066933986025183780675008864918195183224213509922766962483358538832785022263469852392720108946871172056830765982290951084558005432791453531314569098359803531180969131195745761235762812847406926084852402190234743113205262035097006252492657382036639061436361918185749642488037552442629830969067926723222995221820038095311179221005836630144119488934835046902564074451058907008963543279833868147742158059759140171123820725653361341521857173736375861330313290346600626879839134500891343293125386902322734869696708935195405357278612013269258863917547354681004883529301474519510533520875504276187057518407757506570928738227515941328284415364861145016727694973979948568313058370772142347687382056928167992966248587414423783536457481099232433628660726385151528896634772762820280685607535304977339019454433635525467709754862870407388369637728400562351353347937033525831929943552130773574749359141405759230458401670184002121122096856118669466365553051461775696676157837172385536058070135863383044166174889449950187874134948932330984553534934651582539538215098360098633810601507946583468704521933008022307462303320557673230113687990541811622486291236322534286260093825743420650320732769351594456707358008655874427221514914286735241359802562042441973094085312794855735810089271493209472134479636108582650338094757618345241089060503308678640050361655279667101477032865004927869032252111771823705063202554579092599748373749749066116727097601784610527271516514621552302471887334984785144581766708545997245977227966779351854329953780181086190360249158936200935349197846999838097414665848666916129056624183446996739682190742927730341008913199943041991138622866860190349583078885486414432748550846395339916053002413375365209922092426633863309174189911896151309143483708465051291758648938469348286641688964946661774195156341479852791991159799894243947885322897860775464902976663727013004745679192748799419980419055170044268898267378486674779506735251636287300012567468690023601622747271901782721869810900057196464103490761602769472333036282488843954946326087158395965952850692622525682884274092484165341136843914812718809802645910506295806580908387540898326913747989512039083910828627100667122687450917747454250564798457761356333747437817223539789333028758852437839509954594615235316790952775668173627040430244097278914443007167730103274368756009734996225609555553103225433459050539666590559252258205080451585196438819688398969626987639872090227756939795821080276692828582674842588172648740623351550287820595827959902580594823355866061641159353918168659490841822342782491687401766166427774822712436880321892614194046715292551591130782837888024310060093361060862606301976646299161886836241503219524779984385497837724639510876410692548482317086573913487732778915678482828687943162492391974691318999582335898695494438832850956232469522508940338991291199192305720868487494889423524679696360065025471791881149419792121517535077398559764730607768236209755372159104677968189758949339768787107038055535638235175797102952983462328517349102315225235926894688313196720341523291972519945284384407440081831810601741530242529268498630062600767355911749193245585941229739933021303419269214913877319964827710830884005124194801403878295399104459770995871694988381222630295798940165725720945069090551465976432812583699417020540985841199189849965644134918822489155010174623117161920745414614762611746024990696284448297357677196235807001857621368583441355874629361962224676482271055414914724361228410915229843650985960928871842734557443089569335158728132905335336732136603020299162574972955795176915678655930976528503900178139025934901400373733128495730825102377407134311194690164993086207313692527939949035205189551443826618946372698628404334590112144593648121898113735267169289943751268879273653244071750487549971375872119616684131628028608510528323380094421767986815097854755517552800309664429454698638368490143409298633176148769188058904544201295151800925654513248994416803210782840379705038854249813536388776564282935327886786330647551785907197863698020242602992938224980027526399013387470802565892769831128222778985717777543377930230016737932810450959250572509010065198064550353381712786208899288595629398862689206313148673941194766718268183632921901192469231212324158136517016601501645698044067442713435139628208735774030563143377299996159777306172422635370136788475153398272029772236606592979338050162073654259833232914803862821395671596204516364882736497133221475807244352549682365058410723454183524969114100695247698826390818729985836690370261156739034917153117892274613907346907930606141703216405864628613098077175420789563727398830665392226742233150839036734555606573575465846167061677810163667812374113580221047408685841679105053491551236813484853023633359750042526686754210664379064016452287028247746447708217431234821533459952902433530418073474387714461773253048740365104847262446008915670517991224599304272351810319662379194136988181702717292793797787136231877360608335804434611386006328072514960190209666806741337936439266015645002357417655325878537925839367706644521913407760693767004693431352701720139674693898532304438361791655220513282931174054159991045480816976143137084575461652510401828966611851839714277206062766225926971157682958963325031219678529081476539305392423931139382451643760997626548917836574961714141590812559161649082445597561479559591017878457173789868967383659919103638678807439235039975205394659882429127031033951703810016205701034865980395434154201145243413537454583615387734226580309206050289878001533502713589556075544628397081139303668665562236622328579825015687129073746003997807642411105341502359691281682070699923744528518685370967403337645882219796231510887910357842959432514460922078132878212046027595406812544265090315810523408799950876783221053360027000624500840539006282150398349750596431254114217798118855241835321943085871572802009625703344896714396072790103837319105868539845520862852639711486550732948262483584765386954658218290825466268469180010903440855012862443533882839023649903302846012155175443854719895940908345520706784346163077004806427420657396950113554273265989612423810345814932047243230146882601949367358266903967057269386168680050297509630683877196507416180072121024707623567683952866860078987543003765015134199683928863188617885031339579112056828868805930331002199573906770721196606434803877087253969968086392733010058758171204759421863434001501969798329560240833907353238220381561716397941001818391821711490558973117768589494341794655645276693241720329527309499601264827044684794681979442482835737195630891720300742850846865044312259685919980694183613974422283679958112431721691105320358285475008041338536879018774775038652891961058253153355520355918923335922348632861946206256349306815908839005893292326680641225849990820495088401325204441961541378548686743321369527339808603620635922473999601906323226172431138650248903194360340032679743533969640549626853033320949533950726257205689124616695073486413604549477148283110367898802883475919032360264037984624109653812444897299454639510077858115262001207669126039970808859313993813349622200507101400318430016686072468298473487505168646683263289152865205805540936047843510275950918795498055326449313507397018380678978954828748027618684851439076148461461640008375241696168048924827171868506135103011685042242103679564759525664888807330493696008615354230257210084880294960232294368962025673103647490347347413162385900422454882643150155377894898673427572412714647326350649600385247319366734352829927054810734851599486267173005349702526031338028344102929705096654601237833520559163998019094304601576652411619523071231805945690521026255323811842087393862074892710331638039252292468147050890503927679082913962504636371245664288244112747611748179324405853801363486475370135000575386583066317260356298821530038182305422009726638593943688550117716054371830836794766294446606498520743771745108635338780789167071490858269861276172782335355814541283480927885654217616039461145015991888908053669842719256672460317227535154941586937980225679077232459540719702375382348070455416135996312511226565710860096925953571192565212678027300354161644241747743650414108169861341933742435278768994547266770747014805727853314611642070539063173069230929121537628915599362127486931200555249466484140180047067257811380967991992266658591412810858155719224104636654233616823468782401174857858140151423752721283014788264287934498049479432370265254588442176616595340387064487068054041669121677873303078052992613309058629894323817236869915124416391593112770757288256039263486840559141516122158769047180047922270525417298396489070769740739446265304255454892270957866394696868173104342917199821670760055118543688413944354473442914834729323570530005494966434305733051077250990479703405367377093277699336032946015012613394519497424087351903870306490318074986286151206482415477940283288986740332827890626298861778845107089376427503160338185925494823600685745502760097380439301282426769452077675127813604218810333731639002835670362890240873101466069633082553710365174049353413465524084193195867034748297966742785566199713191311157150698203715450397093257303454107481649144117524898941184285857091561620256234617039883195759345092997424296136525745771785744440572117116735351198047848310292657540800694348539278940498838139560939548246263286977862104392181654193390100584013952962849908208407080732160386316228059745610891608864128901925716120460355409088333794218918400597993834389883584489845338421846515198599302077995724894748440846234720622390460123762026094972535885420712278499439840590728104828310708414311529997299827929200752576273836190245143650487256882754942069683469123646434997429317023426764446682021858372447836290891620129084116055903449859607303538388554333201295409171631249786081308657671556012931512906000347014471556311050478290028025081216172862592879282142424432050347244214177925047656545277968467106332523205304381270121391740316538263661930593936704432914480968837333248788112938709627315736413375958592531458677778725051712814196873877523982813793212969476693140722518189047037244717726067101287855933417430598729244842464515901112735338332305966548053155137749258370690660853974960371464374855289079904378172781082055137259475833725266877059421552441061838438527167249725745716457837642643572619538248630998234666543743223410245417356501090385138470483908457990695580447889483072743209509754524407100030207484895584133695338674999112478929387474755379520974810904831867456545410157339075753619836218240593454330129012374758322590815202610807167013155186669260307596755278610153335615867040923625508834819360362065397839231088548843120409004156575153290800069193110033686558220943512654354979248993318608813577450530962676552069838369352185581793273299346209882016223354423485693732063927523664041997863274335322392580600488822965636292104866871546008241926139314462117977175701107669751046399214843104100242048669752423322917747880895237967084567708934401032879021987115181228473144245443874036772896859934709786131232516471922317150560140308251480219489996523673971210891250175911088041559627821256244133081535188698153706145928333840600771995318017610355418782519343656366082759552912134218178035751196288771862561624429840937316390272979145044974321995717124565396487061138944633799465065449225881393837531409831213447976754506742006304291458368893298714385019362671844716066275141873883438682414119862239067886218691439274873655606589166707746165402527727489950848518904358865921792920980323055093649049892679769409249509693146742033806684056506143474822241318814728571172363859880280945135582094622618414248226032251050650665144338036909250005949766463211933712007824933301002457763922313523864246292333985379371375231814680118695450980783369447318139199172015075325439998706701744573500785016006264098563932965796743018678347561827368895149275830681056494253864904984021047576005590400011551001521098921848014295432933876423172853240439636316043017610582169650957829102601706034146827394214121657559166985453106767163010557177857316458559217888768516348061100449666343595484038461461973240451722241020305490386865853086817924482060982080227397505147798093667316171692114316176902700999817885080154651065252918013825035383862895024308997391941089720868886265090091681880800251910838388634491897119918378886070333541950396500803081763978613559666903661868409477390804441080262970522515270482131606577875925455984476010933321599726747815779799086602292593590236249150269833836360019915471028988008295506235721423468686749004145875985185392989076320805628298281795028301927779752700121365694749159666059522895868090906189059708435252645190353727273061465580746085263708558754982109025659540349459247639205618818339056922145791081620963675681442717930767308616935120561814223057326542305837497718678732696646047086280695504112821430007107545389450731138405891911503485613281626309701173193469654336528495333436034477133137941253396368925410682320894050115833121927073171896107445046704037896260249096720266869852703753204051496175749858466690126215185488510413098422654892546073627694655606988265214963616313985939323626434200777049275686015458734876200065173268441632900138850598097966555199788401549982074963097596689281028466734180279420030655926636420961086263948129977044113511852340680113237324392062561212912777412410310597577140548064544924233476251394640884866685232608273093804459802239776694389921411721000706220519882768111071250385326997943810407467242129282804543163419458328922282575092877664844369540119641723024412595730440791326826815324855556438501829443881911048410694868569500389912036973921938856160067562044078870500586778361640587377636249778918551132430247945093413978113989080913690106285182474674408050152255281155249622425823019731841170497877469630680042573174915371523175773820138409426279352177929971663759738138896191966905312811891542110652231318825915994137221548895723561894517872681752935004904277319035411699527658076569080069516732667583252145524076530517772184859571734904242605079759063750051255780934937976412466793192969696865135899727980149036899739365240323669443431549263536304916387623084355355894130979983600348602335043698116132831266613209640828886548191237520628140662121064550241009643052041750320536136651964660366385456826680129660206018922433202525347182654052187694031720753976679359653336487770769263912383409863847607057306932660331442239820014021989125863981870017599644995176113309668212160735068477701822629320639078332824057462836240111147859468867664331331424822891800589166028499176683362088716667923764021080800092235529485446769118868199854072371776258125399007605202094585731596572728930296884163983470738233791907140700340611645476032575530503980971532916337787393633877446101238517519390072160959789376316400904138186131238977648628145076370393798623501612573677011696614169099616448516892926120216260660074298353594539956150234637047419576732418764270028282408539566409235867230706063141730529004016181025417292129140098606725797284422952501998411025037767423244491029638490314584348604308696108127632476785921162765784972789476764128792878262507003483140679166260661524592967242759645240582316700537129387665447606781423380509578430446530763870464945026983496145646095010225809413740825682769102776901122317593035030095741350549856963277539112529538014600259777774313103550246297956868103536310880747712558803341171802373446284275883433606163856800934896384988627140135784308668109666907712506623593194217964334998421421093646363568351641600551553542424248232221339600650662547163108916894464921480549751025457082017466623805004587192322031452168181485131691482537558976054340206008469166039594634814993506395121727686183302293785142380710962558383302579017754560342668459252381440605753122953087515689263784993756105542246759070813840459659248593417419308928503057046357303703409776592326243658077624497044131137860777406801713541888938326869746106005704573370902616228466623169672120062754168106426316112400714097565579925081156338962240457014635774268229224373435728733747047285179604584010825842406960105364819674023052568290154915311908173165740153303145413443474844658465661838473146652976456318384204157379816621410135858397730170304534492193633114579716077275668326660815057554966396089462798724351148094856035416663481138489368389205540467747428147028123602521247335684211095167079468114391294912923949900696771075145757682955814790140299247294786616044027119201491382646864904990967327448846327159295558409817178011171870761194571044493762130087185014563130546089472209765175556070312799269885515024424071468480135282528793962829478435243237977708568161064859655661811342399537777871192597211191142510619515502888830951151963797392660697603578951865964092616789539897842219123198693915109561946132195792646141758834380356377261928793373263321348497363889382319436976059855015837912060402832640899214505572216935866027259983818896580430795558666108505181627109772221355403787961706881018650901212039264713196637202054556771409809147235270393156442103489883124314608294475040970681200005847397871774636301015024925354761301821397093967052325929021546251673016028953366773261634038078944389197243596428203483397764375842334683990398821771178774380586354991650904067953827448663611291577743584641400500196747620177300920386685693186569158201036964807916265537372126090035522844180662647889094620564054575238961548945373057173376096987492579736771339929988045601775957120072571900496508999871435440266626635376308367856486340535382562470024518278740938839134142760411570629618168053906786422285598246727913618247921761690995418262359507068430604199135577496229529371284544792546697027189072074940942906787206765166200001799920206747989838760609312436824098759492513254895304533038271844815971121254408935096472269674900438035951956998708884032804761758375794787036050474795754847257087838557416826740886750338645993979323552866270626746211684853350469792381260065634641633296532812692570073985726636239168730122176024257971383083640792349752007022140009885112273910023043329484666066140327810833111586873857924947545220273431385021245506853083114871851360984762975116837724158236375158688881016596579517208329864396665671160918261321278638045828273372341085957316989636544555956997872533271636494399977426526416219199673110502219781037679756640066563078201950376097859503048616798704280505048861613205205267147814719449145882435709001101270910759809724587334709576294855070869874984454315819923726144422530191201319420773478306706863027172855932333326049125448166043639990944733501738478437386599663092059290819588517044456453990474491849316238614671813345953475738352732735332844021857773065026881963786132081924891300344236502197906534660106153307455856405832228994617271633448033275217931703247863431384502948193583944136706463121134214931118182208251362934708019293784492954570367099805683013096503035668464838554100348570177471655698745162158799670275189576754666878587200395477244675668719267299671037275847094141822953286202027485078373504569249280444422353878585368228806121346142932672032696825469842730585159984941624236436124036139909261648794565391609632667564327993785668725951210130589023938917882565227198301164410420420089604989805564120361319175007569354660177608677763394922917332155913828917875078458666103441444673109379395817457606003901989196883450166970545923966371154595872940176953816022857333479715550146470925151093956113097718158739684220984569637272058244455847259679013733486464848889255153784288557799754747277664967750527989719960986950556247112385767609308376641007014220123989626209202516134035010119151086276306936115089235885014420711667877470139948554741555871973541879740554196502894670889943705428520055107715169892644019447098118510064720554274443603477577740734070557434684204140792984083676391589078103940201233731395765222666982749776003470715749176138536881007876157666534329129595790969445514728971002709038646138022982121115885692262499557173402396337422404628562038545198339188668323333767700347402472563694222328403916790779413924012708156844280526126277736522318053662997857437983519722489455095258337551483863058965401115208066973032395875385915435483795888429866257189896338876786217775631599469972332500448901114643463464048866173025975851298068259193619268012003667302940227661731206787311969005569325739204556829857709674655152673871044800505743418608477136701178873875729527458192647850148891481770950061564632411914731005320677857259900919504375525792548220390129311904189734114892206132930030351699018304438273983567359627184469711295526587274637631137642849138915599626133099679328071257981111058204430658156349534699570710265075796018608242425830712203341655094667560691756973291800660668416172088031856355079560749872650880177598864208778742909555786874618603397629731776954129713344068107473249818493257743528767595195560501306888578070846579162500248601576189162281415025141686837280588018466812876860786962122549419641392839921965042669945273500990174735312522956948799205068510267964041532576081439830640055024501208073053503922527820272131254406629206767153534624576745068832790375313150242673134554567799148499286204388535905451266141551898803885007616025552789195050108293345575405909740781738431234449926789721260115567148996327355029602823235356303297014005244068429729596516099679297440550208872359215334204137403317504729874481292743694355196569647744432010266454443310783192868149638320391537886091200125409652839494145162835870657384095671671757231837677480620217691942094784879662475526111167648634132151957038935761973759465559803937419671736779571042774719618597432515867875674648966616570920025223802616748961515377797065319012373849029038079037208431197849651686760032830493671404021602015860210392927102502795338641344211961346913134944028287201826144902252071211561481345763861337368702464283428701097741101307953062228970468248539852652607359242572091353779812252921999054629686342530156956463771106079687012208037385314704246358367498050600582683233852586536826257774312995725510402265660361393946043236200574953096032257147803370344523255123038161437648038822563455575845744937384444436475006228520520335950169523519482790192130202183595169791163962899989315294897641996530841907411847605385782692680326485176804326301401180456932599450610163854165510320547474109403746870684848232434261294621308008791176110211788902180131827042653201634079102774360069177112267785725688177922855296441954025545838203686627325870736333662802132292671876218159836783245603491727767637032787683788947342968562420376546137339192911955233525117005981868568938169425293365178230045664030548082194366748712450103855779897218500664289469979288332258599891422520609155494946032185046731700713719383075202949780933813152091514198281851420018747080542311285098595013287630364271288292887586523436651014097746999357256535784820729418947665230440311588504266874873558697500268507342339510439852211950275034400183743236688813563042688695684449232273933420765475267486316630805753271416584027972519941316963113194885554824699080844930130400573660151709724948196091994832151988991357045749029134199964022365001466612301342888218895989567024029734639524526170079762388024394084017014443926168235238428090687227061427855291102177492676399812433999102087048595441599828671540138411849748490289192627091536146385832104700519183371009443034078730999076507700190699161401265155242371326404190046841080224579257425291459515591084274103051033846293136188426877357514636246945722904374974726521691287471582765577398319923233102762806308268625883202091275280267079639631979614524585515137122327357996203774880900973016075759095341454804820063144470850436868533599768190105896487239217615268984902615665847844297733160821850326087184354947356643032492074039242355648970033172298839608854602504753365984753673794689987205427043339735168082255262762776811915934774213372388545190050852348452445327093551033889257899218583676675600322204412430033947620834576935523102743583623771355157515313576137131092782468973130936247166886668186825598266569115449448554832822843841252153125055927922540994634947675145137350921321401421049950466689352316323426084207152501607351695855167502775071246483498503543537931533708964208393732196841937978619516959379343997413936668446537776979032159215371933524895669670038840363523029258079211184842554935449255471870608870421929133833562150052026178217257066128668830244124898223804059884478491235504927664982936540386853552557459915323914922899512471572160917256069151349142066287428479682396705819559114156423171562503742182189545703025307057685156655177266990442700570955630671525360919455601998133575125810264226360336786583549269579752081094188244945252336252291294774177524146684398051059273579105779962349253368528725538572281130500915652295810929527269667336897223518661029270367354625779285431195564843626556056484168950902567736841954242723527144015858028795121244189128637714184811083640774351500758682694894992913463770720273324287024876198974516794004016243324499992631298915083589175055792144696967588849760247196071230862187564381251901946472952038856623006606526048855992517399599065505028678686576094881112351223401122857633750485719353525060295636790583066027047205520292802758846549393547821998561353363972949991190337201783880847489280660539370392736410513701414287868245424236751697643437961493514367439008535532074044816415544523068096338307585185558653143124974495240741921084047148382916177690434128454865232286737092577442603193467310653567023586775286711671474535312211704532415192520244741617655542115409310270056325002911070000847554588256354477077962467706013182605151078821155083557307998496557110851749565200504029669204056929946686307616559721135636417884817012008992021184312790077612171380375542764314870125374886126134470171057313085807443151349130700245383514811340834761302181477736695459374723427057851035064025552790758829215985476190088036504113833296814833586474333658746335108103905095564732092750640821524400691360681030100270587778002014582835486483773423038071832685959197950153553679811462320333581371006109811308041460679316913080374927958608873242634384029050603151554335979779132203525873197009028017016100102973076749894034921112932208615362854892970289456337347029719123918617478466457228822338326358771532605837192066980779680902804444507982214596663578194156510723839079711225706372328026971968269267045670470725709549391318310273916072484706691313181872345096317567861058557805870214472343416351292788705750571360903162399037741549474330893411574325112467103854523163962493328662007853407171950049350048484587112924549145017762785719867200105555914305239813270381228551337769043079174182690642141112951507875366726086691258215002251704659290508006291464354174041708758922208463856364189611371168392178184993821366160254727675705659039475007046090926882041563473751182490919205394540705839834123739123313954196410656029633163630805529763564048532075702008376017212697562490390046115203307394794749635353941195255184340899378293741127178436377579248446605638286321492407190716552859356984254199406262693052772151418722246734032200592653574987116555583287888532008741812889578921943453221021451262472511606087004659350974809340468440765889409871066818276804421560211203647350416782411862054857811460145650937866133553400435489592575656050605559208160147571347362635594613358927571863381877967004640143708863721041320448167359268465778797666398050507468596053719355107278543305253810365081485196409640007636489329521986994371054428508376858345558295521328633337478659626381768755881829244914732435943450966804072392147542851485892780381306439233541602452669987151475901025798836803111348750387790732410315471614630160454214193763525256518914626530189438795645904813178315913564701717272155104952797426341144806580566109578357386537064291598116668768184572430652747813441095027858241183071536534050476626389148832475511173452829894001625084618056149594777862341668800296234929016877967698953238049039495247502142269729915984387920528834978720951844800717240686128384043315428915381490871740087241946108821635049366041461275014124731931344410547594307320813485776728219395608325659427030875231722289643858856704837922407149705274232792619182725362159325223238236911534072578957371259788426085975405178682976789008397888108763266999835238664763527302415418916160136374794871181756612313121522906329128043095995007301456707798021610424393600262716001875543860999184195841782582771890751163011785844711675480741323359388905754555773649716856229677897438433870049531580726529377930719411047198849371127712584383937522271593392001895882286776984431113326201757981275805817298894756489694430225904075980087662017708610440207290464353167809942768047105283985753918362863715600296673607560532517301421555281351590178383656916885321997719577973498196049965576662858656014499258597366756371189029274192822414533705363904752041986768419092995424912122927006369998985827904346571516260353849683670330142978038461343066344428141166301267337261494359983384247769818180989035187391341671986223086024539473918364436413357413756204390269251477404297341799536069726114028973226235528270366642280801374774618661415585921367877333369373984372079738343200724075869636740144536945991009331718279838106499117250340706919860124028311797187849849890913189117735548435572210804987450308585817225367713720937100083381710002419599867207971739542069293249354122865217976161609207030386790449943329038019351031998341258134530611381444001802006271860140525658843527595361567719429368332562927855187661414457815716529948851596423757822130769027254197505739970793149718534957420880001218903964761694632117786872863508929071065184542520508886658386938079771295941470391957850754130203413226842766158988517279401401556839367066151799118447449552574904450924946224690676538322736385126074743358848916253019336290319136656768694445071181060712162730071610961858407097297117203916228199575184846120205412082160691741249580196596369079523153928492447392513469973843519238685673137160820513535620897254744025154733776165581222734095356786354026188230110772592474287659178812531751215817674032200307939100638329901379452960410154829514396282690667293912117490906028259498382465128912557300464973092568340873060030406006382955568781979280813816590200960246869250203071417857168239516089811400474672529108654279212163506446122580276605240081985726180696779794571705060370881347822089133542682992479044849682933755540016097364533495130965709031756155568070130859307869783735825885311852415913714844795144611795653751722090230870693813597389253080802017568866031138788587879901832047472078134036761129812763335648916658051310473042795242714229512586520934237124603937287370730528214930260848950132216474963326155740708703406139936795840434248962635120721397725406494555187277889845730052259745459068783729196398785389542856589560582759755422090876699186668166389218060320375484126696257468262506983337300578730797892094061769099580501913423244125962209594899234158387497624818355018508347273633834365343492777059386471052251838401732445026227953094346117194165321518483470332810760323639962256217353664387936629548237822445201598133429472827578547192893208628488938920228612561163278196691368502556818269603934945611998173638027952840417045061207063249274543892160218214372022565086016161827970727492876082964570692097964896606015812113694652595247716493566535559249472383614137144323821159760374423270429194075946950160363537660542962932148581787595618913215887376372627638557107330726780467481755348204897627774706864351606746078330530062392076227127805182943667332932040619555817404283674002558442105813467517911651769018355385878129061718257727086621942731449409135709697468537541564433936872342644682255108279980014609729856717743002804268321350708350985675377999023325553964082487101263104429343213130372633754732815363269816468529842518235315598794725963114215422888474869464951495473625664165011472582513715823630754972051571717907745320510717119757229414585982954949360742604915163415835847405065337496997101842801572426766818254687658752814749217857613236948004640018970930077368198835721811081375403547439011705889784496342326533725671906959543339292130472592318744637742845726230126276717495319926046332732575754215390775324638637861818672119662939199467966355319029689315504701048633832199415456768307040734279294069173263998362239170897345575699027373320956793219822595257187901039271749270895706916567644015691214815082457966619746871687914023916061153692123801728422515114992012165548415026994003616434916797542482970216679424221249413351073167293960238874935835634224227500544009781115187199133842074278631304805213342301527616273092874868244464821669352489183233556191019539643948364536137082460395736253431539878325577983564231567566665288702871694344224900622683025692313147580041361968036185308539992597345255308871145734024225334475517155990812487219729664686177346131688640302129552609545342363195263892790506295257249315065817780087340580572264482039240710207801831849551241649363256663611804983479027738158453921427426340596453936662157369444971832737196357943540111155565530844988448563263564598503769932294122682440284285341273518177138376092418489412701077548040439761372161761430376663562723593944166001997997180023423469326956589764973817636998397562402125132567846965572396693128915303466037174105917075261945404966964947982133303520124341935539271801982222180525356757131744821688399339514730913570027911226618853735317891017952519232880975795452112836826312644756794012288809581658626609709629189107988898070876947234217773169839214454347947663358215348668227266165958779970341348885374155826081887781448720185696645611756509806562654508118092014848031808045145891889175980128927005865314497367373323119793867378963169351734123963369405880871662217389626535529527685288706693486518656900386744092615181684434412454009788353762651396997707134079137030734360242338570047029953928547057455543536229042670038076991767934065402115546366932684097306128497732512755721969190070702201247373947873265362407790158616884639070957317006673241599121671772242313352475502445299068898305433515575584055088792276155309123918331690841424866546556612707206261594409571327808222511594832210201488725575141611179681842919044320992766303057087402536230181918848114031593857997712589740943517153482447350839571378563787221520988455134407686902242950995873513168184288897635338478957176618217989084658310142320078121057373150975298405075206076298137620982201977861030658550210673324141102447804070554778715062953774297160124703306691140981682552984609755832995745632155094393576747391229081207745236968890135944803592193000882189103643694281962257020916663185048523903481098595254850690737198666437077095664072655813938446106845961881763230098562263276763851524233986813601796059794293101811319242673652391807914286906579468753241301027586045635973373439787497101054564995231988259294728628339875051374474197823497577795867022227196008476366437082523201698870882606079588371545970839186544537959768310090040897952930587492438701991124540538757749157280058633268101081976906657388250443645080717842384723783711108553184340510324187602965951112322534293718242941632418986505688982319678978108353521723731359281814009343863604653892673257092535802733476000796234179169262160527254526274171027511697799851116201925907566937317355438520262362180589994411555412828231826465585924652727703730234428705978319531044811900793152290993168959524169094825273540741762323423606013436184945271595835737561670181411517977513073455434114088244241672311086450169613864421243829825843947512294665847819626560363025670012256045449209319478779202830027216747730274559748424588295214177944170059407369842776406143159287479615906687026690802198391457896363495729634328738316768789825525022050627881719395500887188315831033345471125231605748999781383601187152158446836651128077861718938882952330032875911354526400798519163438470738678453955527171745643323422972499527687976888305877995116886851165453050787913406176472047740663302379601906221271096670364436394013115168740333184305099766421310746918523681706061708444621567168920170977793405912940979825105247290379307822456583747797296341804048929840688089982062636227794908249651115813912007311352042479091677117380441806567324285196202857854367176536335458091752252825318183707275567679362166460665548944347711694656292631756089486305731066281976168788269049729367725874276961707516529408201041035814033971687256513532129520393403606755394798580418521765711742027530932336512085423540402091018172955481599593966113813034862691062090096664100956072256565240912352012522454217869920376743234549147964121075177498741972368533419158241409733959261645147542456009432871014486619834571909210449683189922386211144048574175672100995225883693756300188918191713689624822535758097014553106653776598138042773081127993684839484778816826211052376696709715236254746378003067511385881862677861521961606182245843247837623158039157611393121702169860745514002641419649587065422694737923988222512034825052090073170654636660824154657999207657453714511034734204795311184582156461313148868169808660392597337911455584481649722460722407036506898209395813120926402439802572476167411972834041227993364692907734049220508011435032077039598933588123705508937413438986432994808273656919874254215035834749565677343850704686938968696303137108576619463672415441655870266352766185476946859335727042655566231350621476842452667628912054629370187952682691547083425126692202352510724515321045388013538684204211794876657705721824261135510243745050375264373271311865930835275443732266828984156557266439804193739671336447666500427724847153251915862745649656128695443372984056098665630790096002939676852377255612647672440271781808924902770481724535994181843316847883751133069891256903983965550699058707166166102026424579640723879811278167437848829461792751833551619404099574077773186787364756672301253955219683847335679769332692905264466031783846999561405431226242138551927913674816358187802624746689053470820308393926746315001187622178858088430967339081339033980587814985157137705899924378802021179875431033742114144558663752212941458440852727198546203527996601273776621725545154114951807407558062940284188054437099493976292247666048455903920659046393116164512632462541336086598715708426022964528843906187218952085121681294054985106553795911803546408502801399479063485463889617947754894616989144793529758064858742011337892341909493147172508735096911598959465496457084742077826110479989234943347335944089401991691366743978688425636536139652533081203556572536451248272363265311870349977448653287576089426538624533463857815761304300508515648978954184478501636312519412928200210144979268152281501961696586192633404089262330640081326420213376384827684917189469701340768393238286371426988710029662375669632962956718497652992853868352474876613782044882356196780702706116340914727811976496829366044270270403235236237024149855673484521686798006029578138749105138813858322930052974389963281515000600438368644426284654518391386937903403735130338882617933291242845611191602565938947078862734109648530511878545071836400060759647354852914647707826372158756252897864468114607356124755881198092693139893196599374849133055298797864099551127691664950795108467321728341564251677162552571040913169117135182983434384317519804269438520238319205516852941255909832173705301059962352576912090986090911225550228267325732596856459833676056493730560969212149007183893881625189522907713957281424553040848533607471583131063917510577640698559612639495284296303351838101811308924595202139933907915666457890122513499415364608839928458761381089479071903475507852939710532477174756145369469792442928007655300656918726978424787032774116494854419796254240120176900461001057508997170172190198879822993424748543002751358330010353009614692371848344421965106799096482609041480451755511852278833349391108830243312746238479278751365152943479278589452593464638908445384978955432829100446211517101913885304910712666302174727296155384943674179122347714731431068419846470015529343205200013785823396112816506758178554756608617068684721506585036340338513907776527041459062800053904052895572120090164664184714222717065667697308861519668149977059264987717400698032980827199818398698914239605074759634399139217985994988457210211043205176477895194134496124568859150477884643726552859921443855227021395102564125679189671489214710382020930549407078552712424075162981758168381651570626100776571359695978256869961417222015853503197420922994754806738794010576069182164579312177036483488996088352742590893454771468387563105173067726513941472838576385177554678407973331759860361133882102556221473388523976490372211312022165009784805706120586307221214911838028634096232333544835288727300262658072860070588655150093682582015123580839595728543092590579136870799026284162800332356777491571622086208327067366457029452677146183338995509865020095929572328673769981981956875399368855509312418450957393732856685921821324558238697385134627160314707747641246143917790298143625793719595136708727988974967136980039875215927570549094214525408486134246364645466607784712224492270875055809613415448089310885970804765059402586497113377179715431109476701758549295232587134470883249473762298092010139821858902911963819890342625836032956270658168863969267385229326038749869329778065705936497217569718988555431510695331126097021621125842650993722100609803162999790369186269478089906217357185462899288261526102872664082266804644258378358267071633830658906540103496950505058995989252267467959201242218758705456014067276968396489939151513090026437520580434203292990377689080371394701928421620029362803077425916880731402984584131703569122978711190339191194128645276706565629784475319849116393422881981847524574034158636583077987106469816483270759658753152993760305434162506283406923050103208264748081064538355562155667969181296773912358951766864356303828545935672143330820309266341219595136957479642718462217005135052784940977084590205113157506259912561537675436438942072847361024232852932997564516926151370486055190187093150634136850624121473834903255207595075169205841299542264428342697422258538691960346169269806537376249495706480232451267509330617039510867597375479159234899043671167865092365021134895728170798243814489253450737141711484898716824533411560261287765111851219398652774415534122745071514817594719400008163813912211910783110379849228694006975309523872499689055414556951003443354695653688804586696517091493795164047126653142300963251510579797903674800360818328905647608084441395958047369761634293178873500785601835727677688889695391730360488092359363941481295457550807585818049132129583443247827594237850888898306606417405266978474000019135488942834060188972638489201776128540109162878607612999068298836360459070187024185996530982821584369726304625967337632454502943436387624250039413670217795902433798238728115740549627009935690611076164678246742157078650340604067586505202044806180434017449676639309140042121409613119224764409181874469326965546031858602701586107893525355994283638541157324665322505450805352158130197238436663157647188802109955785185867566881274487647373092812745627499592061218278615475187247840120376897570235744852864747848192746132322509835309688610185187212674251369752355198011719418732370787297385858052879397750639312560928555084332875513813621888399608694747838005445060363023078236327582132115941890226617650474617585915307540569096811062561172073043124409102775340452392871869602243515426426641464568536885439310999484395269461246776979376425591413699129188305896242490012861918175184763736717595412586176310495765880548987296902772648268792592443551893211595216083669018099217011175741249102075659642980967977863739583565567583114853945661501826056812565697184934161229908468136051979200288861446555921236416062805261408315956231516553149960303179117235630613380343498580471980797450200626376523547322919525399016135038116339207903414481672841020750967206053410625564597454177146557987866244028155658959485974325296097114432451971745002695457806104412223893889552730840742460045305688301067463762889222301462768331364363375824634159758692581058358445852645161773502341843839561564379958645381958791076041049206534905775083143081351024651848400442142141636463896685254807266639268902504220108984076974389549004939361786523662476173152662799033969477209454700732722329676581996115554664889326209893016964983464267055355281132602571883757869541411798227458468532485993495826455280279383129314066032180474876892837843782454496328368464854517874898896305807229188816110570348988312300358546087183599891794359406094403803187632446735222700576286755085376544245244512126275513955004722686340598179711935163610080427642853114083734105450090081105956097823541174674270299251280715296628339138355409274713387440721802579057630664357210205711185487105672617878441217332618605417395171885996875048056308605662515123808531395048232015475307331497027751268653816856773598587892707773701732447138137446701379920605699196799407330748986103543792953647380373987499525426881912336452285134193777062763631934853990288083464546208132538986224863025859403960824170131349582038012311072498521790033812359801380707620143107530597176806797371081014859373071888731170732795568193616108181246043159451425450430427203553449014480155476363475243246749931393349486092957304114804132705076902211082659153927657893935801856328575067945804208288836838336123778607069050737440232786366258138357849359820997111821419658508226677625963027714551947411777269845161711329508166643821320114381468110283191306247555218248052031594486712466342841100412232885244270160644093239874224419137527066077329275161718458403258580374485342207171017186200392394266707108455837378347288849562841950327859922307921081735763416999878539102424374597953312839877293251320407945617688360351588389667931225409520264377801522918516482560252318006395840284410969141754071154002920709971243552734053302369233725427518963955388185998141269386790348037416476655486504456656467925045724850697794389148450669400870605230715465224368265878805183097275327910500670843126062569573047981222993960206557484765026700993202563019354286056132667676026097199982555083235489786775414825918504831592385216283641918668673669716376565493759028549636482188147783082988878127709839523705534937311880225989320400193064597841183347953732999328609362487587286218506950718696708435906751763884200822388385741383846208238285903435522201312587661039762206158813002575028730385238017596922755904295047684249398765531301824984258209832140093574713600929820763618201079736917188698645111085222071137228605184669491167081895885394017461624484690944978229349105046722509120218995437091281465092014192847175188335184274413695704199595204418710766861263370737397686692359634453088565429158957752178254486986447378090211489070917342719745073920434656890261391084454368374690929195253033086886269386218338407260506563620131278840601284567259219243279589697378704828505722301890751389518871103565684377705182364834105265251456234998361805427977829957797788905942174190965048073031606114204069016201776069499553250766571361079108375142620262194405750615371892183214199183257806093114515209837441113369115813299760522819668338641967480156270926065688943209766715888536167485401668472833947774672913210312507165088941573283324837751272944020248022540909334165529388799440620065390649165458400928102754984391966937705041290082060174137709799887296842584010667166903031662735742769378236247532723743108771523466998108705907416607180866619015056394017148691166265886769531297601580639951381024084967257533591976275785957946710134119755248879453706991075660895442156737644437620606023177530355316750429577045833310784791439282463041839261784741711436886947204959240522167268717228864161025808363528648200217786207719451002955548966571008402939752349784924297651889407027426231504261914004767787070153483157557518729534160020139486337868155126548358315574644294025111610261065963930315526933245886694213114493498147026660522698118493378845942091993613130979657649272742737583884687614090438434383981879357985460124742755341054492856035547007104076115126523876329315389519912325343217286472172014959079199864660512738045277836711092468730236624568371627385681264457011731869741039713097579740029441954244314164305897144687949620302761383049104695009342256336855711351065274042848367869051018756906736900764455718530747954235217368262835171505995689330811888010053261234179608952601375845599909235616921980993443557987380750482300350687537865293155714325699652998026685123508318377734788892737429595694985945757756762829016059311751086905804198300296092467922357788684474156850802384858424067251766212081433317947303811930944286083619030395707326442215704617158900617018609001771603789535009356097071932348957853022814140524476255629308673995524441707180945590350874799192430081068331578760404318508911343490084070803652029887844684883659542939030045585098826993738584824549346997147326091921552417696107104135712637472550904467637549481714417477372137668416276044619254306186890627564665315350378108453894420586040774147704605257138944234833989130517682645649777612176639120003253068968771601462532555436072454067435900220912678628431210651990603470750400112528139604082264662999926914309678334038778074747445175917504808958694602970743455948055556904064658007654212397474566655175547256281283619175485779580276801525327154039498308281731453506448080023894888703612682324771050398960638356546659535308483163109249287877689718098001411894197694896936788112545546535991133226263236169249624572117933457807607770188566569286976852361605086572697506930081172586420443325307642746693404241345523485658392649147000607578382892789297308581010315313005504456076511506763109052584228454892563679326644807192773815763526880354116703702670025271642553939847637549360720928460348755282403893473424688597405862320156070452662557425134160728361222305215685088972498909140334013190990658550868262368422611666852391162048220629419088122097379107615369515943967780823299989039690611888276145623844568550827394304650618679044692991239854977381573604981900844886687423027788170188476133671064752156716539132244668502306650778378774891845904773607443862564571431379474095311427023861778775270629279397888938392710209285995034522394216763493093160481076081152697601238216942573555011647711981094549416782777422001830555236227225837015348908469635606769992982357164466597194758013829083467401513707410909208362957776612341012587534873933691106539601332108795310718004423041806011353086541118028471752656774749302552254156980135137592187934790918198969678786375009415993723013408158202690747516875554476348895313760052602797409387779204601405268670827393889646790757824627437655895195360012936625433172005592230643332898618281507236910351540408467621427386702649702134188733598824921308076191266051732323767928187303450494384354883870456391435829622372575663649868759678192736469476975166283414986066133644296035673734463874136069605816399524799574286871640733341766322961627177889770892582858365674124939119099120336155574406915156733828308938138854502424922827431190534392797793446990424740502113578053657293217077273855022316095354538449762899948968344686747307571760843052302951482814744186303068725451774768856219854779960547559315491406855115766273313649203702582091799671947710051308471521897933025604231362075425992778820232521370948334215214180118526282550229516761883008929782907330283296390011417901865737570012831696984432358621602763720508231023080526082651498540752249844589059732724853180197970270041410224226048694655638893194490445500276243478293668496047041145019622088979480545420215526209436640833209300165593965711327859344762683310166352208360797602786002535897210562446426816699770230688022878913593891987761887046285052911131436965346756165066215763728941383879882832911545293333566862282924589062093340153880447101424527232844612028898040522485819375009614448032027487061481474892477043473107808701513590649368251117679436462298278488464892533356213338611388268483024823835125113340816943870377898624576812253478468705200087331930552303392056224183020366303677395731458793369472122260326926663820439047840670706516256878279192412609553950594570692122458082136377543716514447855832803465166383293204014337139821409561390815937125181051437684059239935662679358020900579994138160246197387393603350302251050821246549354487895813780871100539900997047954118735116120610825704793556899295838527059730512271474274157181994860997254044061866758327853510163643133092282221649018294710150095346534318165706121835097670493420284781026685348725764611072064698039948130484593477008960169775160665592173709412743710685833520559480127078200851573784686745484584470608011218774298387424165171381415579497289414233722511915966858686017928544408427598568001694186995501544797421749585740585952553571494399642797292782384621873165775700014667611409381896245023928095661343381639907253812928964616867458699557391219681042016886555944695926628424306745263367059725898220984744895101893649019016701579985828907448790030178896466647030676995017421267607838870085041655290856611405623400863237627251608895573864245087239522611572988778512026286119042072970864784445867739619201256974329496319474531191169675023227607737774544228139093268088213037319214110981213502156704438289752841998640669772302363431328830455325510000934319303363603700098334437627907958989918493405016125661000844028232076540251711219780698948378543613895096162652373812655171124988702726585216824599140620634836991515761495273489072550432249340700995265030770422534506311654108897208324110490751608971248855377351749619277579563089765034840182363107551099291091814921730111743673911611202040048506677478328510544379747435206887238265691310066988369782849414977616452542895328726341460872905927353324685095388650653360437544179226486800308715750099204575667781301111806186978155781958371599370079643833674401460293789049578498917268062660537203241860381398566319542918790206593966691877999774826452050441150602351091203739912833944433125326315694216535081929414168213512259522563099480190079933628525597460434041646259184973862321977459716492032295114761197520116515143967452997214264769646872009194914207820239623008520295746140551096913124983594497977857566726888781917225952514603299751048652217272806419071821181485698725379857756035384021793858397558116466315039481247196928433208235565810088793429048967408999653433624160576289386900642913567405273633576689275820665258973258404231442166082358051403433720449563401226127299029595951849101170269812643910795426576245107875390214768336398046341420646732849654851465508915098147118599049186834085385048951442642935506751251807185754030141576440892590528406059934368145312570550132273163397519999491700504315266999767495367695608178764682182927853227749648397747733491286108805775534964616425223899010116405837475225295024603159236280901271947760704033091532569767724872039957743324410301116217689144580573092130845119533806287532299611402403202771045584149427046832717643734716385813835326932418149511070030951737855595477901804741886045233118309352591874601081672284823905386908372808852081539404124935369927196311908685302562686028473105266073656659411294649014021341197526731936694783186566042523606002398985215931491055546777485188699916185378101117041257900546563586074772991208128045974313273870310148695529497888331558315795789962498508311516762379386084167255916959527515370088261721262663597641781357109869577368826179006845329853136144412163982677950281626704154064083685126469206165558849017509136090023636235090712923012794454906970904863914997609700245618589215637229051200006846135835529969274095956763800745276039830051260121664376695967474560378045215605776144774585456133691179769241189552184643957376194016574396936203384448183554268998259513468400607206063764952427593318263697423678696141684920524699382252496181471865619464687952601405815424028435929101037942810319713308989750619516862084230138104632407493553718154363889630374423981589140853833416005738886340887037161263001407145290832588922593715213430232309958400758192847586920180504384734666922305415053129611457151828037428073453688808382855779051851521421560959664163863112968123695105848538154955163171757545849486290160956028403886091286277130851425576590216273948994701912310277628486086444314099340671759917769111684805076557025323822959556846371256126537057701715708194329472712891040660700854025285874043902779015499854310842522502198344878970270201941568351403198187848641552947892221679552398986471686840666654057566117078004615299302462597446171020869649255279755615299212437459776543576825930941770702282361361258622902221450232069511473420021384861899025985140850718926271100472758871336731787727903565385448200425092785981282040662800667517935228151041860941873060990175904284948717930439895660813424665498973049927204229154884847308096601927053942995611453752041088480360537917955626107336039597535571963821977681199301117600508568832809662092188194267669818448417116808249998082093460634737263900039040245058897445356159026140000671617251675855337898832955081482381428337940000440399646775309487342186609864259024471280881342082900767359033173076079088535400547239590957968532235621700837171299978474836620843871142581038566695187566332586250365835624340006265459755269634561013205793877068373873246681819569670689044507058063416844640222113815834951097304283921212734296975286396013139366974279950254307687548959235717036999121689725739390640854701970580952750768976723404965911159373834937923971287499903396158854515573381475391328401767637007224917891530141562544462247652894309160422550983489427440556206346620164105345136427109176584624851726765925680595348431645204461633679376052477144429013436322176350746965943033730876936069122077776548502602110733184047491230651245908342352521219785217642945393225846728862431001355174514910796358161006655326827578581197961253267353990242685505660494430036311241073057064283376155811933500469335603003829081222587338461586583355149925666303571651449785777941920986457192740886597036303693995366215570154607701934521596609408574941141656236850386788553790292522615244791744667324318860435071582365794295399467687782679321893172710181375689652501890419277767054951154499853560058161137990720131495433410380673305129560283232353764763584956936436828813020828177968439597580399465717194752075538901729270777169039972303653651258115587342254740370278731570683323087521379301037546133951851651347645243946343630409725587563401973506597635608921907930839685448951678502898569497763511969027714544586713274617918904437606636795854762669788231352530985309442275025667821192144208657515556778820313804695602215576387131702758954525962470645459539091694653585129668679702952730508822581965314200589998489236429933195603176445315620428623688691529625734495326622721624613453855853989738191630340160295375511438034315340168752923242633979246735090070812029143944096408609667780399037087133006877814824310542347305511905865897066672435511094575083964979371388026326823906738456936608246726962920961080853470014142225189947975262364198170427144434596601804373539105002377912230308602036511609956503383991755277607890069170247921249916287750976493039104863499008692388514421887681436381296103238569121694251276701599055761702848991300675137294255280981259755590791240256145495685279340805537988338613467928476472604906318927040004521320630007221886596494485650142135385658943590487410860836275693883947624114245523358358241477694517842319574021279827350960724716822062049011244311282484748241424125835409331754526771457173347484918366595802182795291390078060299699949398632309925518658173448774435791188731678740209169401846525194681782436431694634301499733138775393805213165366842219029412108172409101958813301916143556459912100304674551901238031605307264406925078894337574749417133266448360215070512341667979282933670877149683944186554961573180707719281048313747665196166279465802538199118034750876032830881633025971349213576141648352602173700183489568480463201590194645839108620109960536228583697228767400582738039730427113852506044604836748734001425252575733932717189915806080479919807847349216296239997605381683203711588347222369624144009942983925991635310780928466382203401346484532362683852412466243270914037500326388528754351804839537021483419326025279671162955007357621990028777442004897517848408123892375548004384720750823667626113396478820108000355496245567656456722401703306559745178649655730456784058497848027857447290938663565264961729821681733122342318305845409704771643929065485912744871047020481769545723601830357563201947861335712209956236541538225314383334828573657285755217603086646611615493074122246996791752459207400683973352632699919276543810091609430164445241043238742200653837783636677447151887049001711323127503626677435019403971281899937203316577828152355210224822729010388162301138314753623482737717032195953656387186918742866428852348045942265598593212409588713810087586654222723368251323629072495594364524507090247527852096403997812092609529376960029007459112603516730258961442976125845197180536246754395693647566090471370731788795902518091323231589014169622001321668838748615025979689004572900385069232397158725319776540387937862434418777817961505279970261858107152040399962146642668488760311733634737782785786885185817328269894073396099711388849168718650719631693032164221081749371214817579499650609583969869118150928223086298860161066853936444280604902581244146713370956577678367453062725058078791310431245935335701950026782452653253641514096183130589769080799370859087826856010757234378740920791973894675001251255929499626508051821815510049626386043620570159497428115999575831196071169449039659939805018157805650165287970296634851547626640427907682104757446306947821307766417699219457699414536255498366136130234086853870482418743040714238073349051955579261617227208134013616867781123540728643652361973142826891197344872071302427478536043105240250088813879614997638362675246910218895520174119437798898261996697650341232615793066580354774202976668794564766197720247774874150314174021064969930351077854118315897634059827884269738335128909280906959486018435724905071561768072082223180269206362496702137638695935390084871651758184881626394087024234879190634865883843992302448573614499046032875059808117385106037412432094062902671454236253312343333056803293203020725813975938367648130537706715512816977039411511544217630606195725108314595151847251847190214795664324965065808633220764799206310935374204580639124446091256130814829617555681664129271143032600951469051034081343176485979969516041076420525782958445653774130664614543119053154372261471836048534242743589584202565227764938888503491280225559839924357619854810774311569313917356873503760364905208711814837734101943974205773625647541718850857418888057274092911100611671010484380409467390608840333286862006114613848574592596879214904829470732221788451373646914696147497687812612855754058295962850340789671548396225072416570968070437905139632252250181169077799243771851531135348242402692528767581673105087154185555593419909519609307087576167788195161556532775667178501957606357032596597864456799219997787228406102251720401572147127958309800959656697454795447568011642433453773978486309383066036234650542310328983677506069713398254426684926321593055982831864488896924606295826609294474419620022579523487533975939564955250606502321777803088805165286122654946853387656389202480964775681552010554768675984766854760544830169537338651774483347994728855124553635811156532499014982669177366677828754530327629724128332234274642499106212055912184650365765002101642601299365759865079376314564064598027569664970429861772703682038974799007400924041971747074594404050721372942444152364414416220302213108235077166449025937956513680737157901960772490509158034762539342004639039068352173938176690573967545313232902326511400106197993277692334423986519477236069101296025990689262238798002304463099999027525568390518290681848911860965226444296050885615162741685931874700614971652021548210287787157100218916115562713617331418538596270932354649844421090146724188640954704789914301165007048007645207261754909726849417648795380935371439845838312814029739434156454334057480865774134706879332370585477055400924708473164318263519099878020150824015008420060968598987732028621034045959984346583956019299851572768691399271477763617078104164611005304999154138499914761649946928346688175968094465206837039152108430002058179617242292072885426658708412325700940443153328384948905029720984251408939776938521551586705534806183606056454221041765077404678748560555244828932231222942209577349832755199389126542725038853120269201408929268779741237014611700669426863762128899607868614158312931889729358672506805834528029456553929621994722414741911414143475572180308029486190557553796563252651327061083336246103777946402125211454034052559665498595824161859967605555828177117629775272186116381644010522954544251359057960871546865422478976626233414928633259487132695382275159004487168037016060205447010550091808210135141835647274580895376354408458338524190252634779681257560159865119983713035279694401302399152099907074900235751737223758344913721409313228270325638522890160575881162840462290227660819830962544163275954439732541081497797689131148352116174009355834435675951491190372539005640422724965843385272314605533831569560675170851944964193961988101097796699716829226414892569699911080176086294464657165099750501692363493903168298772519492892371480881762655228523742257920324596502865651029801558532700972178962634986172635847273291708743563068206317802059493804410363071109951773316214190699677492836904574244962005029021381638474057886143784839791995104806826936230030736949343480259892993950233298791405377354288088559901448935408396416828423220968544968538317779374416977550952534512217627682112880658156793389651077594975113441900283146880046496426306890930669160655142613875160777241561021159850994957120845033804935380797002765303689018449286664747194092370611300327123932411898586653871784482534071750054801189567275273392399918810227596408191096033391871687058463562865220920275628821746386121330124619034011134009756051947567234453980364988209728383248592642964093405868985622919879378654004463304819245894468718624762636938455566183561139108302688226384485696356359768672417602264317602990455906208878430141930271546790198668462934224120658110369155011837168377223936389946361245310805944146829685218122181076951405653126293044045918394400896826294921999350250986170866247978351764386789819330312800659590299854549562459400942328973337419571312673261442002623904835642007646231812576542489195063305578213145588223945871999907651263285057573823410386977389818554449040803578767443345206455643348142551809156458313033484467113607651207463210542956757676374239402414032214600262453754315850971247179514204043963585730343250000575129387194070061015046879352040771744799312431481413855861487253438728084832078016313241947776719049253630917819494611913437117640851214958563571667973008763220558120406451889231757487890785471706332582296184850665809166385308826633374816487281531878185913332889839041212889957378202412684587725953546967461329506034945255527673909731848300005985647271377820192416298289969088246124765410788531497882268899165127785820991284791757548753100846622282107741326538754581805510202637659723869814525868580207693929906947932098735218870403912524454512154089932870328355360461689947010253119003711206754560490388950654939556782257538278772473395737363833512799177597901703709252651841857188713874311886775148115683992743427456029406675780098762141507449791750169871083134033123561040740609376911398042763814874185380695358158427239970750789599065975609088266921754509194106100953802541068541950818944672724685174408375549921221777617849996497940915256777469565849252712305253919430160028201641286753143241325243358724694260538140814118273975935577917965715803178091817753517682653369028520927457591111550013306596747556849427955879409434806790703150139987371941784999146730217136291156434143406529267562188257249939354737012196476538390287504723134504479074479513904810792117356219359504790769469051296154646582894548815569516604979526207515876295259994690995681872515511193614705216168057722331032095978221280607181155530889889670518281112483104983146724869743007485033594117534219000482828256947066367233195800383585830544686408351961491215104650628451953903212141210596954871739927764041067665131364776739779042803240316945597338926765729470287035128343303366562096563315420095318115797876233701162521543987526939905793014584849725424624441978016329855002588879835863008671869262855638971562574150992371958804196207429947423971442537633382029544396602399482580158450026126262267370656957776925718700519187798461821003316137098108030958690715407754678149860845786670965797540760787179172672546252086038301020583443213226837094478723592363403121650382353485288643814033151635962266988696905266014770923182353830613602389812621281946707386130195617730120839887857505628436543937701135987089747314990485623230781300318105121220141938448288989271695010058260881993126396570064105465622641149888489583677087429257100928814301013945294583342674157826194159541921715677082875319638282906200132193184763863612796267440710871831848983591342525017598934694909285502695309484908825121879649027104569003772378908302943843881472734998897430531401810976233538596637071326907629099592665960073880845051898969035397316900852655345150807716387500099432472802250475065644763382994877956530739333786833003854319733740903749113393419671521604058783674706031906522566224682472115646262529944484191882107766761405563020372940112809135110421968606305595980893559691484974330040867804262665426055949640017148232591490245208569225984569273806259588577678481836126546166269619096919789384285947975936379321061497141483569917512706426526236221333148384136868066396484851592080863472860996215874080001694354078065220697913868674234374482163715628181754796736774289195045184524031677307794849534384705697296726654529889518349989022708189519910337442495924687295815461425285518090241983842149208587494240997860117989156546585809207805082390072609610167951619244796996380078346420691635428747796658891364024923204459867229537832042608994142809941110163394345603139156491792705346668177793988530623004903371714978184576499887122930912464902800621476124230308368620632485589324878598828720800412527897244931331073260413311418016734349994539941303009452257523437221456816744073135292328841493441809326668802462183243050144815220192345976557134336094818211649928206048442112051884916553275762069594156949460195833322529192463866733259197284642763760668736077719541639542114979834170579048123596330562364905217524448652686286274662719982522034040861114346738036867855352911032979759452467797442752749897153518331314171423916486790671449820875017933292019328813849388348270769889031804412016782303644668523663133901127190307562645070334587060285446964963078865151694316710136815060819514623696327376317336128801676139542024167087283174823020409549951125636162635238446589758677344055200643411168113066054273539650792684360919220952306053170931208116162988727176777760463748635423982131558831926439625967917789414727254946683851561069273542166841888265409041818503136253862343657699842884229846689640945343770271694037612910287333268931154814311029231558779009870386291683308431400280917820586353968936214714526832441511009224104766346571542042414158153433495118618146634583273065155841724284036589927544646380405948125630497341871802569315358512905355785949890149985201700797072371499715577027642298002054393954803571969241878585833406161106958214783045014059680232966999156881308597718993125303229204966018114411457690927148828561242170434918599005978721842083990632172122555276860479254550930196228967833928252877216683961950660338423756653109818480014269158958523053334479480254531756077865167079902482794138936070618801953703735241884121133488613422804763849853104675305527081565500923333521992856377373506166184098254973879317785509179017546171151923058000486539820427486834468374943505421647309544771072214554809290453186943081105176197735463168998936965460472019841406916533514847641319989407681095256555898567626214016421036853889081422553154962494113742917392335849852566357304362253515133713884370052892470303172520272475420477154728172815691457874390896941118686344365297862761591012763726127489026645951709278239700998800297297661727350847347719155591619905140998185564932189857240567660123613588656648146889578084526114578297079042365052276471651704447199762325030456502224502282321573791504027982547543288153328456904111136645347492337609782185679137161675830590421683435783807880597565735279626321741968215866825416378658616700049649368350212874210333933026352450786963637023501942121704583186917153373639314776183002689741036402722960959890869920161758640390523286703832275282938511732106412671333048437355133774616806483897734729385837995229006579404350399757985584194609702603227097702736457386223231513188244125780144878094361263397683013354709996242904523254972853081740279125888009993151198195994210243699027095636396502349167674253372992131507561799488583756950899209323637560447284123026497491086532174863684602534225405943937388199601548980112193343471639706711477685883094197220316139110784012115649030831972350255331688990908427968449287303029770466440758167678693903787489211928732147046478290301603282578256413015741168869127939756039941454214661291536409920285089054749747675344342476727437234654354242072305238969262027046881526839110146873935815419189245839995657038834593898921351242910385368445919666122452577649190515413850458046412300911723696791814061185482295674159227182100177575071439930508402715541946047674623067736145816519861879702986013044762244588687016859143151081115817018254744295836715082792367126283636045411280209342876584702460100580376553971431138154327665998219624232510589385525379457041274270596145077622001622177960894554137962694646224776846691030697683797538780139422003025600679293342646491356154688859343050719242278665805759108857949922479539672343106098396571161050821407739357596032840421232848155442329053080566878644574882293617440173992234523612295632493206094360548329396840801948808877848023841152106292360353221938715756936706573343205257897075703287004779806645381916854968162447297947110868270418861688147377764881554624235654517236838647271765657858857211642956541949405341972237956443071793293172620411685009762063630997994338687838962061962057317457961625508096132988642767207985948572138636232000217145909680463218500691655379786739516377931664811729050103328347332782094028104273719977061953871810198323951849680884579721093275571553495933812768129448078379867036527396120991444878842830336206994235616864979852083122917402972945366657325654665674346989695849725030884201879053325380883026644300040615701522028297980075004633242413226296839340345677194534307302129855433805495610052791420457995726667161585923686709581116273706599362785359750585082226155057867810516205975893416057433505505281647103438158455354036040436118754939172358279032438443019189141494527029014449239704175075680622519462055562682239091474957531710990521260301696753496409237684954811209456290808329523224181112580840725517364922402233852029296049491225856018419833190509874642463481087999707770364605777058294574062465456058981230125172001539200204522278465250265076412333276299276293235447840119993680857529245597853287514513501218317462338620704456585997189139684558000953682815234303625684996813646113319873157018880938128264724672756988431188650471239029021361668518776057736209040497767870707994869766870879378100151889153188223449565967248822410769736281419909932619562295232928132239408645107789026901342744112455383299820633877069128000428985520754923993729930672606358826775042946336900077299338342547301636033582632353115886557141142706113236943362179833334827678358144860933207652137738572289586422179647212496527412277579517987080230018462834181080975875329552200670851779502665495450683782088887982256531733481404182266549762888965058742443320670403905673022858931678504614628832565091978205400280034578353031323958098110648398270093956839544024651381260495776802400989040947752889043537754029373332430179393447472993444200559752601051846962483493237862096474920163061521678778106788751415630471150414524904427961385787951141543064479293402882716210971814554174789025695386690431524891817107003811115292778871948903922113094299402726232837922229938071606258582958892855615389339414555432559915084861323924301782933950937489033439172166435068108106662681270062128111111784377917688608814890200647096125933423635633663975166738178289742664937502992759977665928435191853671084584993087125311340393014210357480303247379190334227444233565361776886058236685043716818289087403243377072165094405108015888929105035326113622459716744021829454082438982931427046528956995344289539723477419060438711401835245669379616908174886423563420953993466677809842015998446803334396553033852093430228536571088707368706239462374461278982861002594719576568052839461543955629168319029447420247081947065443031056337817193091175499413764830317918139643594304230065847511429388905481583466024457802675231831387563032533677455999964667847726205337738265585379648516633014262856459587966993144066851625174390415470078389634176879378107716699579772163124333271766839172992382967300939189449839138618568593927470164587737185728158246966466019960295576690214002336536450712047797220793973221291330037041538343012769539529470932935797261126563060376322588801618588124849680586254348904172094272632479373781023995700437965771416860426533801358851331160223602813233936552886982689221881087013633631842351838818746392419946423551790319926981730190276385989432506777654342154511611010641939797034743310018855085796692945652652943017921888455543773987970625741617960311003034781368082331233473142591447315978044800739052018392137589782938138384425930546628726122405651030557536142004907165156696403957210496771221841161728467261314277329575896304264876529585690196320566413255961772002085166001096486292555849651673199944068795659601884578388816969809763103828598201094889561283860449231740315859944865058640045142854828602557234318165018678815004261334125041203031608324138530949234813992052125447802155860744844561862429010305254440065905924879727579983196833087286564632482476930536322170838753750610422055894564267175422496067079957416015860706765721150845794144461246661621297006850439377474485679735732962790295937061098166598829820188449789305004762495200368452016083123721046830062396251504132438974603022135138341729860795978324341942692685414267069311796134884089257231719384531394512520509107082710884646691458687032329710707015643666373649859249652996998554056551272232496877167214899633629391890042649046672528953878090499790107993600425168807025176019087172487770840948757716681896971229830224728567677503600291551233464051744580997027823378308129070597597246453866202462017871746716600493014659295021516812784602978586296165637944866680240464471403855799180183727884047824291891459820658528045275081588547368658008204746599508718373204660681404966196734879071764638489310117010318659958436758833316861188507630864625480033213057165077928572614934876440356937224073832770463563273378796046389317525321776398167449131917104517214572661105888763481299510189062927207312620471408862622221740515976198128535025414834510430137641633999148209553156632033032248996883083930303849271536285834954239045734224721708455854129265713009669754464075315823147826712442336688230763960287789179767120142873451582650712209099951549799411386096099522503004484270691920864866666043708193742582496947434642408068376631432773491066413193927493711340523717795666402019005988202907657691833927864232001455058569998620505622215773640166399264391947946469397822776616230859839611384539157067289912667819657577561073962354999855183315670890665849518381847422677399449597080197075447212270823691362000784403227194415184180817339815816086164095562306430900182115791638762610870155444223443027672817552480972484460742604488281630788434094131117206517615139638773139856116322351875506893570461384824468811276258444242215565532117884184087473255172165497690014523489772692713950467842656071403878852292174870482755422621680085631673005339993392137920820339817052858482619599092687194050991405998990880534856275873908227441682769529631451380621641282563742235857200448960098364783051876738194250641959091504188832907190001858482311435985968219327549337363815801018467526782916930538310276133419370996950471476845615132565012807143866596851513059235901734999841043749950859394315754594902609325706595411246214500371657942841088200986207159934051662810560404279376474452266681412017357954171929411173572542661140879016173910431681067198216192442993214974570703957812441400802858534232540225432870759356357556026900215472185097858988993819017023750319666900730290349135310773216074423515771656784130458720513914553273804792788051617036283061159466564056707648607740405954424074440150384932390089432049419170230898513687651605320306398515830094600157105374656673284815719772983037644707946610663605991859214961666301960517467024635074561228021091848063106507185379653514714621479030458701408798211246484882030099713365342225988731826065995583954326732163351457719901944071516927832504574297184427388931094901072777108729503535867262945346175001098325150098876584573799509390153547233789080820187801415792876730256073082774654575499629105902721123999251609525836155568555256996272196251111182979442177911327185268650984039261114498358223709195740581184789928847196394847852250123518568632184597889033402265493447241435775282110950483215251627387731482600419498560211312001586253069031540631008852177635422964473346113519106329649720476056730101455375858192902777224876859917790718087587921269887380856327053676694381278501350935172575311856789451110026852451163260685130209428687456839191663989025885489840643912274001759751509331979913891095792888353073218664010497584398597537124366065838383511441874382845887324948520323869331074791875227812502271154651050972490470321265827358066723687277999458657455314899644937008779988877107297348772459389813300038967365299938062885314772022036914822045523291809971068621919402982655891330631187576918714492799293698217736005844264379339704231122877008548964730856343048340986758349965046860528997154351263467288005488642587057312426461548049332212714656971531922448787707773001645746250925403881117836332640873355245154244172882584644679784175560132396680714122712884776184616188852062025568065431118610061803741921241944617366600877328353275935932226765070334136702966044301833244353698849918324089111272339215730480098430016657842878657642313854647787048471951548505049578620471183537972433329258438491237205520733452832123934589307157530493228016902422957355267393708808452171853416993824426549710611999552468470538457512599288519264264710162901687731074419003684639067962411718559410063062955946751995410252592989436903835651238021165622362361780283217184660973817154011583237704308234530482127801569045271499090194483505310982601729636570878880181892588512191630150137373096856871255931782147492699603949897205284632241220820978929025846660781199797499617109144965764803783341371302272741505129296936320382442866269475768999217351217675013779904012123396877176261470560184375215231163032014545021269281691414110584598314184300754315494648396300844188143217686494016706303221458909925118565459502457744263405803152026774980641668755616023612578553300052879662187722466935274021881478152145308528941959515241240586666422205048849259640545330335785699039541657253052097733970133233611332995064521839706401837002182221573053362045494521989364292987234794684484707958190284913193462749755100500999515424825974758898712598413218178637048739472308766150493945561721610510358306096339227596256692455753463473500873605616288520823333707467755651658451894299709888432156277768063458791277812224021328859962299621657752145434849475567880976696479553031362693459902971632969089229131807700742194667349663090138409791587481455661420008604598498606051160513559002821414927119293798585382736165532749229988907556757819845794473044598906986728199866965845719605638453615749125345194365760691276676949430287325670721075949984709570063018837856173546297489063377486662634316870273503490310089249668809159421492983025331759441694789661614891708010689524783726348938618752415534617064020802943643775635405610252789209237047035592405858801774652904182463377645953545226625998112041723404082107172513512419245694429821894259160383537910898652389370573436921142142073075401667310488719603076758862869710624888408926027620704091035966356634953932408558881259782488006610004343972307433723826342493589693435483770900942654791878498949882733200048463088942203739473696834410597505343250759833089357214786995204060646137264077278585994736353401002942788285555644954810780135616369653328291506987873771228871962598625541480913788511838099776657502727280327029986486206450010456409266293369695601664311380368507594645526341411287948229217870272953870501184866729669923825225518038324597032789144995174912702128204308913292881614052730093059327168551246486618552013699978740699767777553390541876469058424251037871995040764734082112950101352335245413654753386465095475921577387350728550890827671782960366012607790457573307580010140884822242289822663839542449030129964203497536952931235145837618274469325995556882536735404019454103811764714049500998363417838307511297512999869910354552731748132521627137082732141837425758152701844867305414255758803270577929015645793751169507050752890259240302624610574736760795156211683524399196443927482030687644703989755162989891267761154487564786911678288782735590285487288609674691173438704560244844265195106887224140359965497001630138788290928650926586332512643101764702475919213959579052350857475436216572599402927830990252573777937640435907585806526727727000199458239601227591665087438066890623777098383780104219969267008308889259593320106437504969000213658592642093369379630405917328354137462931374750854791777278837046132010501677734621581118271559055275936653021234783629412597836360010576438044656479212080265307307900679422832602490893140807277107517642635211418033726143272889104588435125875454349153717577039122491321135686208915617500112669487627661705660970589591722981911602882771520523738834648824807669076836255809573542037872570611042847664546282015440043488779342761890229761088279085803298145391894018120239257228934229143033036298831184513790536688601831090238343570501164592062942371156487324086792881461278219207595305086436844974501611382761021257007312636490458933428369364834004587481336910444392400733731658050391721390852011711796187018434132972795012288621732298300515133121318147109570751006173578482985169872134272416626896104186632370145765997694547151509848012510054871172770699001658366741674709943321956715956902357757422323976039652661287872920701697736254848259435753157557372679737142025452431923268515770621516862875952431495371790248518457839094176817109419234252445352778916654883301369840797843206937644515828646520047291759989084829487304251180485796765893774004512766387096818864668147983820801543670342159898732590066768401708232155525013739257786180675631448002303374168380427938979897785870145934512727513766655923413176165278242758170242570315767049293444421496380416784592615779213162370846554958147144893390957783048869095147591993302770718868191753770311433746266446957718934231731559270838662136301129108432315291628395884684894304281870854249266070950060819730961888650506599913506540596703236565843910764710606015395078139999455563347342578336089820034559438363946972940932217590909489264238490935346454658926301015357650455825884670603176533622552259100362726216050532119863176795189858931458393299205257838962557102507358760222931863016711231049415590814798362314042613326049525475399287910215894239407989247867136461344815384978524270141160407253102057649088733495968071570833626244391281524604361913921813220897964076669893600321182198621092333421355599784811337438442953406408556902894024169864388035698745309199064400742622987247994143457776850468234663326689299355180093315892509393472527157789939021470653002918603906973801241813849372496520407043556399482645831714486611061565075806367247556200744241476208502262909079244445216333481587884040899985834773100432538529353204209595821557159950166476922174212671355843837642735354275618609347913666607758714720359214334548550934313101000931005293150950771669446642964723672092445675060189033062208008794365504813019179069605119456307368893100673557544997081437140046840868162940078619385528794826597908029960804580942716721476088078343342879396723761676813675499756323953760111887455874129355415129205836310361601783210521305985025803572229819502946952266204654961174897256681488473352488198286896476907203688102117139291079758026390808455841397700253824020083233783340607728422052406520402164008691614047055910569794684160918431303247912769545267198083632911838753838563703429730748246517972889133563667132485360577038975321426569338660221502304832462129960119316067142748698071763602714135054875659671478131770901514916624430711762192982159949528924524178184011605923990254346454257906996828719591267714442724830028031876872105498633610064767451888002285815337992135531729258281921838179433791042953185764687668978883961047669042284797194454390084281894275172085019682733049836496156524402192816055658401648670133977105720151106487235159475861033401755367525169156864297661784828868504164053874123259802878460011133321359229516008323206118209173625552793094800178031809925911622893775684657437276431535115386657897522778481524094895391482149452204609676015422102519779443706605787378488455455620946461610399932190237168997398803719755038246916673131257258089355865591950455162701643186061205471812134170098794122017486673857645595509426098244052195800393500410906361804242705669077493818665472382309255733177909297907783991756719095065118872961592362195511993688793095222307832187687695045292416079157399877650801505564004106436619919093692535634335035000004596685083650214985939442318369596305723581001054545772124018342273560005658442519345260291593016398151747778772522735013639544950491667788531967647596456247773020786378350119287841377715926607171146450997923333270901972862223132358577096254503117804479779175621128399128916408305731938998021697755881244941842064343443179155531492521091329819593832866975853822028075272450596387303719044035993635771766979819801598358683861764100803343274883656694198467425193044907602085896338722362908047677936446114470667019866105080151760152363027381764155304847789238251601052391320787773202653002918323469671021620904055710047602406338020534981462221314557571207461941389829044055920260376063621513147293485049369803608884063492651264606889574165892538316074110033729933688167424870817285123390183493018716602021165797416021180428225186364229036792086988725923741373781904160934689063929231714450989143618285281951136378724275724391504133288404485360731547616316430623587546334704786971613467176620625672527403860207552548835652734873668954631565110030987047917527085493516161402232745924001501895360260314600355307927340282708114983666108710818518427634414570266258449736456553288872846550873089585503783058136051073591516461661815977504184493590346732383706753211391548503810031608127922676997256060404874370860224605830224761552569857722311007170168920461888411440492200833104748605766828035942858931258118814990177945178541017381538165801091963254007722626551527063427010038928277432014943384823637492972685952014081747006980095796500651390022464260730730037706912146536028671957208630823876977291257822542650985171639488226384728014737794859565744901303479236346355969131101820946623942696511798083276416354777578389711150059612932768341257721456011550201169368764316888799359004366958364650005173677378739411586270600095155874849217107980653117601630665744002610982430370469373020802568093097529750811116552265107156699551876617258809090651173525119413564200119362741098026997522447153245934992278032037044683627241549269886414918969007189163578883575932056916864883180882196669527873836707345067478784322898331168367353272977490886502992424163581205330896322052894675462263513174514356055137155037037423490735650458012821026267465209096688381152777145791677382757723881929986042500073107338256956026601612079383538835817345456128100690836158887703609715666374377304145498970955272751709999406641363075640590151998511672002607247090363538118259070826574444901244219360344253571330425906741445988508911440346764632110208167138721019220590886847117128314244907536133276902251244550246509175389321877652637559622329333253913845807088117520486783402372876627333492096274730387022981032731020685669900487879894825962389125696016569089345539212695219928119144405474858955017791469373197924439081462619581628797920341666667063575810988004276144554484578438482584735393568515053899254583783733058234116923152367393588550956487244309264738626754249910312159043643732844939541381743801463935473628641133897286419306660370865330627666462458166259681195085654963832133778207706626408903105976034310163534985870432904210772345778378614866053151754178664652224047776694422930696568496640673654994879476931520690327848495793513318442717268050954998308990135041904075650075184713203507687020803987742594165831289388007148638718697385410637147268952576522997519776748892914506639865850592309383894517282185028548714143852201531150198814450949111869278396822558167278817273044935640487971678041270489280384982118711342723576095700339608013155159181893154767219218532363346459233843279581483095545226891061655861136614745234863009083198793178327710532359174730679458515886958580152440630333726960396009927764118400010331612305675494958607198037583857515783030289275397295035921062940164657648540475717414039479896770268950540246234165703524462355647961716088502811329364976878484584950013708734690932091534838587186728186541834535756838153191046595327928006803513937491144290806460786889741751921468829871209020375198692813045744174766854348983883268742031328076997556482898376516065356962516581142034177335948522681708462321772422381187765943966179285471817722888778077666762294326842909290598179914548584563657461903056038609396268046073574967361224516685555737190656783735112499266333030949344047618343687163582039267287587378119092151930503897492222907901305230241517367762558162633430950310416803763622418398937266624066071762899926845254843377513438345693809587077461144784236159013526965651844402228430633338957626382604087825890842034243902491959908204027279213651895237984410686271043571207461882598888472762149593132631210290538477867264364134133753404632472642913023033191488088427710927394806466419524045406874788931733146664651565691855004764627668027123049952004294272176977073220795912978010439530002272910987684863020132239355518054712102943789035942030397165294336606395327735317954262512388513779726548084114694705564329958626017870686950866074882294520769425787300247203229375833874892688880902173857563685505192164436656639719074074824078990976308265736666163469568032267016967313452026718562671671545940750405177016245964360619546666944559084574560021317585615770007885620748557976506043566716647438341595044000415862352601329798166014731722540939283925817357638948363296403826548984708663516055872838942105901328811941972755329934804992441219574914846970810512991944482852384505062403957452148664661863079619584994771292580782066910911536162754752451372092253055253961479647867552112277759817441234467385664183686520439989573196418028409759986372399953972277679994713106043737632599878855328017567443410528994808301555538246844872004371406452782595937988052831179198803484656551431720117288293168309654435294113739793983497885187262306788531254845223215021450792045528980721879575050919096663325257033071611499602130591088343578824330968836731259629417552120993407030150604502527980103283714420555177422086869402660038093659475929931754775598972325566181407743918776184270303691507167247528079280336998097993787503241597340184500059976306575967136637053672472511831158589038871435930048208894343447067734561580829553690340606546850221993255357437339017814623496020310035471786936135269805913673876991462089345193175608602584527952771903297269051624702133182978134740058065155643224247134804446630068334813653140710677338247765340919900606688925067913131384769634321580754566598900379085946481565464691053469556343941171612704401091363653559647602599104413374553405740502171736260459760205404635976541889804715367943886248702881348605889760887309650771316407081048275893907233900886832813459764700312883899063745769184647036389699727449199517779814157810582233334500865332962930770132466698984356176015208090316495384115967890986609588708000253588668387252784381919274542721636303414327640555399393982056711666871632665339108361720421834902740638317145640841601885794512280326609586511675129088428405469064631156974355544423875333611009560247241601620178604218165946846293408166863001168853888674380744484778688890625567303900264375793934181639559479017382123367940013755557083376268298402677090736267248210018895974632982419803201585450062931135461841194531648419981041102488844806329166620972306759659951892541030863097963161822104545036510564042894205925110739884721122157034671502787150506797537721161325993609984129146699581571759091824858522297225470021620482453093656080996568587950785626478912876533889106144304704581808406436123893123555932117676503290412491301311681978052766505612477125221214277243038559649481695249568691817442622515843395472748328813232316052109875195804559434003808864171458618251143240428671367265934717479494702838838855459368003191515346118212172619048435049478856065217240739717813119870481342062729058016818781759867028862950212920588576679829158236370399297825458123693980154478315175454599120888216188318741026400395040490177462372516904342200839103362794623427752871986588084700385643027669948336763401990741972006432919205198905063673613483964186053896118866877011835053254437966671749253257114402799925163771090969883369584039379569966435699948415939950463741636118211033202216352219102674574168061196340046283452809759138990739040569946269732538017820595545382726228001758954686392852259927965603697946259998542511567814216798260947740604950579623272244463221135808017828417386968387632237152870341357452973373586278395632593665521626086238585003418993040090871724968797169161791362785914177693565574213699845844313281625937528034063078053803159138618014045148054437738890194066230718799678116341261289228876126275385869829839059537510599516377081763370116150053306388371050892034456119443444862033606218912825473735242065153037595170713374179007305853045931498290110401534250342575621217570491907557585487264642446434919781180782259083229864360527025932141387155051653991046606565829718325491371490798533181287227770250224978116333005388398244085997614930246997812136883371234086557662602078641647725625541061301678687713273546742410038581219309455314689286488853230430674640176155989652118927333791838809614134755306893668862838016639389994916118374214475726170043342550231003439708370509405442151513938697938938243399235364880174994788966814995101750420333074952976284165748870822774951526679098366580169459336118458268055323974850373848377018902614407852508793880527853648547226975932735451622691907181846522396594079032687032393953084038302958060337988786655591463454338603804317948268122353230069004605752099873332507144741128843738414441972057853799558247313505973562348676345532478685653973439293788007361505503343428986468344811794406566421957207100777732381815736131101215477365569532748834175620452880337833280278354019902122866715562277255305749917268036052614760190440912209119146666344385748450425771616136803560903084041605675368309108972623796690085722510130703858198727644550862726083806792712344327303875116756848729424152503619171121233778821414607973731951484718984251619021489086424169510170987169208011559429855338979832200200890918668594565564399285681861254114117441831534288013474887299988426174996918238014050527749781002839963945159686376546529468862332775209775178391122835664648307404740552728845130783378032249902984974677959121956341772328905073017875866840504208603165675339151208936909540831901445500328340286481324000376144691363597306648686612028574942244222003895657935463231292037125735089110349398906011728837671853251379517799631705791460195395215794526975758859554299194765018851282672513628336386148492621117423387315932091904615274597683428099501683032613221608815384040581541219798007053691750312612988400697928319344305616890020926616618900884015758686425697293957847222778970888836624027904546014141327790469376845585805099382408214900089400709182783705733789950974872676329032159765503706726628121778907820520306366319100542345394497066637898940674599778530389217204015446495331780803589052362663832745673281376972155962618334999684752945867557751520203298154690387748020287637410453602825854731230411532318763082435484810241939799188017943673569242217576642202715118921230018450237326798112669532248649798098685306095658730514023316204454371303632643740156365160284916582575444641459690568131467824536603322053243059130601662602767960347600720771616579521133045832620647306624656054527152416950760908840504956948294990576428224788421386469687479733844927131339760666099063759973623655961521994474196564985472220559717982014243756547720046135981083904419596921765965079905557068374369539292809259216391381033789032700771020398320644978398921999018169525937673533299800471371335108800507253523005128578025010493073043393665444759666167232802140954236385053854978047503445254887686170808377865819735692696885934022157364548043337133327985641390586004451537351949519987449677181017399544758714651500706689888825059500869216648539859946545625510506632961540997710753094550650162626213465188063939313209816765808830696181296942259840331268999250375717969409333774851655127548819681695550661659022842071853601661242324275785912262773822299814463105366754325300066174555437928888262862383496398924751496250361499365779312846213967913723549938497217847209026674050178436821197614399139952373170514635414284532973139536206993242839345609001529083905955360819131154342452948425005651746493432854176115647071050078470517479056524274263593987852377093062077787852253202043157372499205218186191435215874055170419377383505678924378321435296904843208448896034150159035339889891883857901753601715553191486768401847152200885601781427152267888417930052690656496281407945174311797792258258392568322515626520502754990772764219212994478784067480318364326462881648839653885190625639207654036910493013809258880057996421405621121990687843335219081103583066462162796969905822829519640837821605674522412950766053230969780020484152807449529533543850588160386307274481090253677496693501005895110528001862246305975665482231591626194629815840420512346078783394707652578563737652703641208047491897333723804429606992672793912279889006193890332569605015685136361918932936066994000555970329519721975681066439261545160314288742678835907993514825721241356760278364753196487748031421080489658628051419989720020777178007179102496184392577032608913755460805445646622087249391643242081435512562425187746501888336426088151775189433491779909921105625548994970352869875989474162795016075686394362940701119251597253035030965841156500609042765585275528908486132537598820957008939933750935954181959272033849532898574117618331188301717453566256390874779132039576060249976606653944861460736565770564401831271661348748733529996625370019300680929732924384831421275787755282170163083640633977955549666047612995871588314322244446061389427532546237061393815543938944020332301654212990608406054239458587378783710107843802556858569828917220991578773907390783678631501819257947151211628006011609810646657021309356140789565184989371734318293944986513829290215433158492109268544857571125059824500454756626323462454548445965763746697949727445397936637983855389770530033729089921440252454655470499777923572347495432004507165166535199227472647780182153644108346118155073505963581154391817018783542829278204857260499304452655015528309757549616350756159724824224249269776106232254284162009034911801735153012832175214716844007233086270996994149640344459441680936945859269978851339077188410140548719954358073387391224388226775295798158221009708896435740988304641195144243726280546449967521073952657672648270973640060823358317073362282900849390450304193811506096169969740912868951896342062999803965771177135326651918774782701427635913364006194148791605797038138187567791100756764891555032977072399313236643150326676101371166766101897033911315979735023874386760853676672081737810270057404282552945124252570973908632106428286004647838195679496221780250625118112124705927704384201977077566226345410845548597813240047511556241869635604506593616696831799716624007022753566053079854823795631175345645373434393361269399731060644128358683265306359470172625190794112313747323322416446958503221809002936169043960155150770797229114259448287603756729410741200576418968013971583165014782111683407857392163614277866437904766315269835489028844259221748415427253868493508776002181713959952581093215684602699551242451274106379771428609144539500023873905300865784973928207431881128306252035666592550096716479204455008933616465776913987703153647202742900082117705573233862042422553795508443790108862579518992660379384403578885428105790756594587455794410459842858263000526369924269616635041550025057689662919384354052071960992919899156496181891333354265520354794134356925869247014370546753352320400834223803170691403784168730718862370352145691709122200143322413041852321731139257750776848828355072867674221141550856953153142113029853003050435261597068177378111174155777449250583073423982611622790643303339184519984271405586299793557359618120656688911901701801441435563514372785333729865945712522335903403867865233072976024251107562072554459446165606413183833139282495926635776877739190585108939077235530368623598415624419972335544593027646178435796364565548869071019991087365362443530255282277654102335064688654462884169305741873489129052275547273237026763602457771579826675778113767642850023064555358531606846993187407686773679071581645164611952677612210326831883331698482103933015145143402427923750799484957602663545139094585332973543937800681224702692834898047316477848094611643699323782353593217074213674326871812181327894524334937971655343107573116807496482084020443175969506069150735197097461859539470558086141650762050540277726786319945470154148915007785585392188879556725357904739624703942530472525431927505827257035027783693803439323189806893583943007537727404430241084563458150124927960656838717585172212992058347989946722545903180123407293262531651030905961292876595714912856486288497888991911107809140697576767058077210093743499995534812664141468374481627802516108028284352327936050934027777210067848089764132208083872422194771323718202364966484566324934151914084692263852465375006189109407824906863508818984332787150067088051334124291242978945324981266934411495800577034432139030576432442138755810348547960489392380912193834567667202751890691363047491054945543490930789442284211673300276524504717585430245570053150750581327803015919817615188211545083480614204346715061900109082829841733901598955628936740155450118676718309385726077148126205963964876441282949700874272611818856066476164152792597444973687309061408942026805673002497379726279353722465665513424947681988783080375106576678614556918825755376444296198566512129031646999880302003074709214973366101526112808976612536104627067373004165666240302556276300210657569305966646214623960315656440611791154170424338294465633460178754383688758994015319595664918382953984881135033793049225613735378315423492212683002693999902792446288377035408960751432749511581790087735545033831589885355468882583112855686787922745981345442403649092150033160407073164627385429932582771358940013800513995573865565706705067702506054643799343773780248154594613612721998383528917388568959483439606294921774238922257193690950590626028234983971915806560811751060266614661324705003376229038158505871230441505315910414258097573519322984809408634244267635918615239976415416891796001153353348273924871711276585949255951236411282569297461640320458160567662520334569688591654565051798899946002748188913635619197148139037038993374487661647161563720097910076958881663438283072405049483996950396956332591747358493505908683104696512236874481076052184914964236701266299639153037009325512715631989878437408592537245309976002546935141963274187511166201807176167983327975240254491791274826768913037047017868756100533112729839040234536489164801106387833566684513061083115795039943456009264084460783516123912761398457717989208509984703477578207296667030104489303719132095203975119000844182345590875368862358211943444671896807536408370489689171174379979820412984048379593935909455873310352290680013885512068247356460145775108237116821747359269007748532425197294046028775357178485698775328504727746720465702402139936079039020265359302019678448245988062592647045916888045258306321919802573910619403672360520757482385443663009177270031780090687415843663287990005817382462989521293670175337076970960404683451410472994084447600125123890854323853304004867733927395941403744598379944005357385333763873375109108632982385457550842064336214203219595177358713265346385404299665301586632108758355722438714186558413447956869337343464759600535008434607496690952467280867698870504613668188355963169047267643045849054131518982416954833114063886196959202816034053632024456791589740891590568689550805810027517055618738036097992237320526065422078128577231716644338535645004928601570930266371076575151600015098480035797201355903981554233951814360448063533229622231237397340440597374788481996755164397064810506533613655038630229030780687834337682628975573728832660413241939134061555951866082929566691180366344946381189013237069146648749466733503161206050622389747686163084639588716418274204642870929650281025626971611127590808819676346515425908899460584091114847933362545644359094253026896943926079336094695165973740590653681710896964278411543071191649201171117993935215609296044172546764442703521161761597551913278788211952133797552065547222462224980023062953614026255832884950452602204754934317892881883430773845724373446758445201649178091805243376023139817247252948715133252864026814185930021709877903928106514707219571666493859073332679489639088606120195713349369397723886324516701110266867961446067936443661383993280727867957651803721818384952703152820494021410737059932306472555220147132316333142663262536717560140176924658016524723987283389500097959947554928928350289604795321243589485221888459767438612489035764227089413962387762047057123048398422094182053348868198884041540654271059967020307132130102973520299677376658195686669590692618082981650730957043197949712399322524862678418523315174581098761840115617602331667347546736523258095796901972198757970054411243121081971359959460240928139918523141006862646660793168003134250863998064256094347399572078227531480429968500081378710278323688307578135583262719682148213211121914509596448715994690806091886641581245596438323695926584579082296827801270623447371835986402133038367604646929495252403948964183547772123484840385703562285640985159106070059457760865536053005792832949448779807705905517315378533010878802590463568125425845805360409231951945003337634213627026107229042611040288116511601179019454351131316713391684018715285286505404026063362336951965402715253855697724470328541461008120965836926045736999481497341861707284649616932408639113226942767331137716294494699498288536162852101841832390661626418737838155276614827446308061937190342353772635650882326663324019621305464295928640967325625356860812066758120323988398589135518458228447487774288778555463504490721121640543703215298714012504457984488691820956618738478018242002439438197699259097009829969027207847655940326209235913607257629926743091981494652078878122628281602377999327151589120072012200847677370800309210016449667173067198185217222641064772760939695808938247476587978523679456758250632176949457339628986023697248788718783024685500878722999645372207777881613410392857042921520363709861019258006544487053554986170892694820990004507218703034921313323424406718339589814622320392463690522983169807476662809941068449260697577360611129725554750914410001262728663371496778136402330559453496949260379294940098090009295687535989887691789208372478856210969986154746904526541678544192350946306375449971300323888790914884338333168602496418486359979150101682428682496631536350521669702058751755352098264356396526923637534352207768638259128105047139203038491630634022809364306919877311044392020396873761153423487237895972539069804811193588873468773092640836077920112581486543031863745002806326778182374421204772589909938354882425278626916426666283457962752752817245169619015992736595290821676735903187075902993079776841711597699222125347670731356137968958018064454666166165885249273509637024564749081040567637438518724637260588128200733817648839395656652656747561097902952618569055531624410052943587202802821434407448584673758806877543735575285358772538120931762411714180451511742623496743772575971977566565774033981719548616360050557007991284561038994177625624986670420833233698037786808126863063429385101502903095266572961926860597828182128468520024076016180649804992817117765400994925691379929576538190303993188544590785821445235664020134568432856590190215955359168755231462637165684655104873466475344715558390873974343264904393854530949716109187528309421986981295034826757410609657677158477049833106845487251152756130044963578476106316539246254843814952352366953050268402372070910645181932977942994758244822642572916534985892055535343266198778578092112586494045348347828534041565804573127134344557746259198781771982741568603884473135126533870789502936779288661023309395024388045402527301595825846802125552183500830799254142013170117903529186954430458457716646874387652750418639260326125220028518478671718386382081944016688577624565153208142233220493041546305112992252057654127627717290784475137857568233786494497578899447396493485867151275221090413619977134796541675477677014414842405288318963378607299012768521266834947825030723188260008081695679948201365095601964975662890339946439952511387231288196166207188824591492545274733648217911017804347508535989538734179608631727466973806501087771150508749129026596754986917444432827065474978784362044738066292427296105320884642686126259437889108816119678701101687851515958287298473448303436099997587875547826268929328922411874002333444399309325523318512619903232800668475640665036317055851419735369656719663449749615840205788646207496375942385479070006882414422663781051943430882204484127164507248455408643447524475184047592757957999464368802183654086971294291931159641064780276832810325946923967343270391647389271210065073800316578534351831545387555363111736268482147654459430009052602276371137272625027826900227212091250854318011339158726897855902356233254478993352203394126459958538135198882423114207359130918128857124870784503723523880305619960142453839752673066721398340654810054894222452156592318595271167689882845799025930982167576573488842849497928779856340738740750389115708748070522468833244060485591742539200145998465525236415891289920050010286116525724643584661595996406453129375336035663063658262397701118546186748622637251609625869620278284587592899813145802082668996994068763227646364586375531763605465901629442044168874586180615261756469131537499381377065641626830510075545141634506513934207514728928283331198152218482644881114542137414857263175631248011056312286043454170083293284167708644987036155435517317021083527798025881152324408027720944876097516194413916407903797359413513134021929811022241693588675195731405168283233024685194116817695937141927185079933903373271488515175092895721348727047974771153312818797114606519853615292187811510789179977927804043905580509357001228186214123152060561821030274121988906109920502591730679329541251199871372749966893555765215241849380905917062913164278953453395489256780566900888818125229119681739212786278467218659872788479504038832727361818781422552697937352060902985501966003506564703147666735006611959367412860433326315236798018651463121254591999356824797632719021381942749042838787816656873521174993773410499839351505726002459191802321412964074993835764978962185700264179172265255330571180697678606230572463194440920933416118432727609769059842582330467701411240903692432889138834934472667663717387687945077329906551202681509575346113775693672585901412125200747467276113707727230139398828184040280715977135898819700908863470072229225279374551683369218059297777150540964578089440392894212242819551490687296785474140388165079690137831667757766080929289130598554145301747935025322079608235582858540670778732133619564484371599066446362055797927576952007284106642145178806535578820961964309892266970382005834836895191838032775303962854166160290722259010410338057904593221992351314431119802739507710389514906854733089862634541109918791723167707168672147670070273995755192225851986076614830401257880695675973548109518723751843652684613083511439275101770396391310822177828109618738794449614541424447632890744054493097835336665917070419929427544527951908558323216132782894480084984889500790832440156294289946685880726941462122817922398764239203394395780136412512827291898602263023136377248681310811210912126523400178594909203498693811838491726827063304771138478958340947554318814542893202738319999413984077711218109120995967310649865437385427015243877956713535313882967918779078021200388775289942774983144480556526414690071500961463484963976757472100229957175363541450227416269436357738414695003847296938864867341824474336624261468342723656967914584621403736069959421794889007239397677605320930173465806099528606209261648987352814996943003470461296345073763103350190112384809529852864040481462707487558716855276020222491879288511738191158586172171413378402989983494917734098194785683534972694586766152127691214780443179649841190430830195521684905029108161631141181361424051879762112898729775945565282620180702158304225040818705589133628013379970728656142650955918244680767929211818713884755204134897844623985376044362853546658960353535242857679854262837710741839718641495003120532941404692786036489100986376109525681099698690654570267379688507604243998429128170861395036368830569977137251597012983509413229874382054904955835521188553733307974400030348211458604908060618808613595719995960915630428147030010532908660624444987897417172617221855772062886680712569169441188249685262513901798393421783726909883305867965350946179943828718636801745529304476387989815200635576090063324360114789865366079350757520374353050974133029284077813437390092739196704042609188210844834231648818298071066497620511724819505165130531682116215340077898218628387480450326119656989666348910498707074956432050150112612971303467213457037589045277643966503197373771264034103858262515003196110499532293805537664809971635027144043559791966441518136465044304842044625787311171482324507125784409716133807241188825671640831752886002941615855239691879078367112124775720237131443176075720861518273805937108980512714998727197019408605135017168393457320892599017216094070740233781322266932384995385205969518568491871684445611419722611659328172718296491496116737743414027363705111481039636894447796735743963921674127582602648348068980267654113331178127552599690328734051588282681285989744694685482541538913966509884342448134656443604668061514445702054255527969616540584383841251879151302837064620600074177612783408857013746044425673017112543573154638206868072368024560662658553198891169026718250556988477538119439587487300969276251113531170577365449089140772655016215992737761900059273197439051336033910837911830733406716880143308070896354909975715573909110634243529469725685377305325743503322933428375126923410899373198480218854870800188611616133785577510989099464888465340392129059337537602559415855471717891766435143193319087792552535752584574992439106257132662330738475282202638901773259170624386096967662172360866256583960940270216140431307694282048235113858097611437730325143264160290888337592777747152640242999885466723152108235718703381967759352999524703045772780499142324254043855339478019932352793511234218454853741804433089679740954430257288005507725898265667674374055526006345858065942868629258513903456905974138438868182771102637701376954042581008124968856918787113763863475952869372371015884763158412808823297381777106867528759954610415788282542337132504864138975693905223761259803838968027666420469565233808225504885103477062392146842866276951235010964699411247184576445116745329583138402872646091240757384196652462649702319904302746423366974067098679350627252078014691696454015692065888964360589192561893984415226153513107706533708435884789409762733584933010990072565124834369430377339691668841137967391963071394466525562218597756115893733201449200549213831350945091188673590590031663290934517529386306118479080768899944263718991334100330285611514674709436144893715918224458975185047694871557484554599621030075746945001122786544306456324674883887277840203196122918457714615846808061262150253713067466284291874969682327039903973717880519127530720356446713447174101416815777829502929205111436135408658501317503859824797595031185751772109648064535414141472861756310687870310819180334191419856849752885827931120905182381322636894813058609235434527986220716336083850257662303977578817099324122517677045157137906087303563775036308449046253154700884800421034361116823164448086069873570710507422165868753352826148274699116037559060359687134479175681938225619272449756581244228879376702548955678067123863059610698119305672730835093395691479480844393946436897272601816112951335359882887397025971365467992881775107317720907791574731603950856462371404810140724633184938181883962120966407006234458998650905621440916077281979523064300715981768078823591458582145781467202086418514852193107934909194792486160130488101143803326999943876536474313796196886287618502695883782168047757916454290567158925146341672480051608540732098666458864546676041156418566350426229685781614778191815647580907880545530254829454747822976071993314454548094838363810884008773526337777736627874671324584987745743977069271565000753988341743425959269561364381294527000183284211345276927774971050009530160016967522104021939156911662606423813357327699096624150489786167478882320421357925025386805304992998355880741510457504192635380742725286602023874168324624726757828697235208300484295572293126436322757085869073868432149380445912443650914648714413409540687400922633227874628327793960773677841199079893119733983459627182749238502421918395087490575475380184657452635822728330784372182459817930094091771288440649488931798386170936399846517498883002710980738987550037665845639646037038321861370207281213246598405702248498706795057475033624027665921300604850064886980888965086103934545239064162460636746778594505286218678797539236189733286934296594271533638323611478854889177449650912829571756988822090785709678558404433769494750181078471388423304422544265356980874404959824864019194195087012047924565193989609546073253693366381039654440957933697374805037116835701128967882034186862525439090490351165871753332952721030176496772914797338230726715657812639028670234342746003584918152185223883422018137750747382743556856999209639135999682147068866702823032508903727885034226697996751978002981887581911356593575428130946707146704415869980247471990032650453340260220191692350904903023517667306877638664148462046556653345782571954640024124016677427180675164847271329163803936948853836469175277682238324611566754537961463009842149830022535407465054605444068105579499433898286075589049470282863571108540645072239722608499702845090521757832131145413968155469664745299869866669038421740368446841048206347274868028751156852352717986733365024733011371133476450708848022712858433366575966355017554723661179525383317002299428442449550296071062789446856587679053511302179762463573255959750669722138785921987559078719770393742443409213401901626996949480486050876045761554749812394797075223413291476961468152658757959030440977308900419151835149495606596549165615718583821714456474107537326770364683741046526082218170657702491970457867120546039537793614659436446597634388731998468358106941016215684898086359572344687442973608084074270800643826413589686822337127000395593225094297022979860339331926132123055396704213187596244367383279993888272932216434285605616817873509938261496042400145318783967665897644535928053020797093343013710881733275241410942969130444932597558072222475562833343494043360483978483305322097866482971946659600044041519742886930542817446312370746439179282962735669579488588618823715721681762086644656113479471000425629425152611095607699417284600060566162661707357279880114234423289643840849256042912357746257434038783028945624242294896200528671945408047930394903612085502353892464878923925795867561734801275087856785025473981800910860750576927318337064628369049339124154582752438430188770560858785400813623181480693152775470085605475669687293043022905224490280676514944133775605375373348979981042908164699068450668395268869189293332780789876395567947150126580385552907822221300138445208771598572205382948267366559260057959584923134210956225468693212404208529412653589790446642024088234735052374674019561392968379757441788564186528556935813141309472667610027802604548215472021538684353786666813028257403807702223757194742531997812367178201499343100328448197312998716439351248559973816460282734427062983156694149657254394433630420936122069742347606630734353374700744777616933508424433923071623309390874584428055671490240800935864839637411168678607592321623979902349008577184367289127397225549931359337905160639199862353580637122211582706808945767989860895351839208779515045199366769202675432635607535447089140881118467864314982478450510615578370602224042789993761266060277472884303617518840530168985121465573097586414526931273333452112076877498046016761318019482400300561851400208130086069444207422878288217864979777485259007733992549586158224870057709431324339991727740775546619907452113958531735216092683622462229283157308240257633819910548543102893646941143963391724932732865405449169455847576902353870819737219757790742214692642493955165644199343577091511125765036511376631270404203028429164644242663925678648232487107675519027234170365521797638153483651062697272090009014152839315983813829869572610424911028465694786968385635551456130001333187520327179527285969744492343639296803564579416392209660045261019758299584174854867738581743950934978157684498203787941660935798363802475679838325844463333921588247485222756663812186119489618667561520241785733193490222692990338261269405012142842006453116851601935482178401914590023234179014848211088090190419442507298385107012036507444741410657542149898877356508779090042886681337289050606004647482802638751680383307084436995070709653755434189010422141816679331929712085201633406368612083197102968885435264709585796753735285739959646405928093047203951350669553311084989444299262890725100139009412534984823133445423225138485514510504380124549685071969435904688793736829077064614815077395143037940784125243682791684226077619274371561448280138296869490399056162208262744287800585649444315567448482327289375595740409457967991454287319147030796826831124393932431500898325584152397982456171527369912942859181976658685263831067540144791379904259065441885653629822619823034404217547026361384213048307484470119952276133531442005655339416453430813889050485984437746745964159705349978874180981929837350959855180791197801334919960472679877580714252891623527666198821806742019968078728048595494607314002579790918882454758112804795138692762252349326511964298302987724253806404685524911729771510502244879366744415949335036771213838693882851903931678971946691017234990812359540868492121385227393800368648355952890784188312235963929145141370500774058887342576378748040734164229853950669060918831120645615058844036498296783194911254209778247825027627848688149751009669417268062885622871889798133674643708591055024748193998498178493406053427890169721858821748254974533217418459169625656602763319535255950755370963829609449236695407596216842476274612853738791888515618765314576629644322847039955010186656894131601348872632343587956697524810626859403186758982135189998842076247716530400759136035218473857304534739363102145857560215008823792496822893585074446158567856777427425781378979448802836183114169502919294699967699699210227654484348082402369301125259581772747014844818440235683899446869252127429478378858331373459871602583718175461115510485940356738489946986340355368698888046370132774405823862062108116528708763595821355382070714367890428596114531902163164594329852621946752118330787043856402167861019680227144297602760068894527130640402640481476102048994804041554007958741123799872072072486034796818807918675971908389620461838456962583489625441488405111602153839454900825740685450796385262147878321133324343449949686138789542465871919955332501358215249913332040453660110575602035016569692989555212135643469991428341261372440223661662952775655600118555483617708812397362779869021352748850533545111261874776366033420618452725042927399165377492182274917819915949144994141176818894642952137715224921729738974130572198435574130875840051812817164427213826100163460652451224124326423957945150268465635283571478453827045712738572670800868502238204514368028848909416450975334769348011512726120871276215349655933306572670862384351034974472941519728115560694984133225697566489699327812871558963408595625051285289690689965137396499455467072381324392485525463972272922967951808278504540648976029554874858557034191308798039158917450085064921463210608818764280637806894949768479553263888100100149097441568471687792206077528456431077034293816285595456682982709357345831262502163913606142736851101298872901716183291237666696610117207466605179481352686244310628514041055302725436304250256573711201193084867231740948205621928743502363451304992741261045579475176972369381114885404203781651367169170905181416611002743819674358306975826982036472992164175249684233620214879990454671616067492682293184592744837157574556415088691961193757734828257665296630229116455609719703489321361274011619724415832631196754342552177471700234435866429992460260275012912050026647394807606966316576852620947215083790831335379992396472849573438634305639931688048993483147908792589195074941300462671583657879158702849939843699639898647954896367263014949180383681672250597314671094791870755317071094837395252268700342757327192035075969341879944279617033605948616026188993652297589474213676068787275522841884868521498253913418908986921589879369214359539379254270338327584782217892640547215369898576919980876621603100267964722786583533508658875155081749270400247051466308217093629826250364678183192710329603586541766280926755255205699302197246648715884660726510054850691201533892706420677790960456812345477231497972006188364833834165262837956359846675918292221068842294676317961681475790654225580163365821441969002522043278276588376065331188821959800458568261467809296869982629682641995058388927153433028956091217397254949995023868118264721892343109911040691721813636275398045114645821327037791492929952731463184613120274402733870850294817497942660898652290811817761019650769225610316936850618439756569824686162364820299101368422558845736978171906645813684354078072737383357529911413561680247344948683166240279848247267185753670869214658580729146583865277013092194599419327978765741490798036052252017685542185892254407758599747843668189613861996588873500448392794717933761719343068993456560185855081270056731797819862051238827562493606452126107210519904111896435412317001159315003944645377250157798581242731700794672068992753998247457311048343013728494284157012361558962401829327007824371344665316957234326158039335725610349613941562272539827864013439567551388627225419523366987851580594350997584270533155660332689983457789698028119483200980498285775993983513663401524154225918676092561515714701579973422297542377956142690298489932081760237002039208192496399572685654916387214407197607372347457821548782752560518098760792518900875993175584896463350640578899873685560432050071332208277727646491799315317143395047605489239835481216445467475257896967109779362596633486038703682483482200154132321774245574713689430052670458147499277950485439127886404703391540072206462059691948941214057690979628892896710608338712652273543697493458329667089755666291383261547265417936407312221095916647305788420519297249253036090586578252921875087708672302634124415379694124572882094879891154845411758014825332005205278975647480253331963433021824148195468106363714224153840912404973735408686995134161609727480404750908516319467732835033718928644157737342776458983210329201758461391274651142869620690588161785586085809968960140583475214368658245790476738456427010594131489485445960277211400184107358786915606799222997759611917791201140195262085519174536977654569403106720563073982920582865064432122829103100359039828938259445932758808520777367878569626822186317275434338761109591438559847087706404230272578141086674355831494574914350342261679562214618681634935040361879980068522824636916496753423509304432924946037199757512799862125436306297121057436981526060624815625198905939451589221658341897404207030718317687191270395710721789252761529238672209002542330127804635037217505987061214198573086773594302310303992093761979256341147075980780718491618250892069141986280691389328859350410330735695327535232624268473731615291009784846453559568194822716073445674918707192075663411557180408530244044471036729256349904903146037457650790111507806313308590125256947154029941093763147087610269617173553000155579061453066694752250543692881179674131216708448762895831671443179524083143804412612141867129096805419194346322994965737930093357296885261935859722550456038181837962613786320588600238961704985769956387346094389926728281752052011740911787727977009235797635340845847255144757349276387544750990389224525858809362172617017057039287923137138643979931314958111581692295186722594828817212053904758755569915289108461757500898744762094194245001134498085291476924894016380247259792203151100042176160291114580558294829231231460639389259894711692087505181515310395661803347868894891063943337346534622107007061104659994697356605145910495711796236772500523863969880542482481897417717906503321801535485092093342046367436768826937634030021888205350805808836990628020119792871278767742670123725587116562278043165177326934438486527468564839840267028155037495902865982461512428362475129041002570621274859069853981493374251191799095828509723275369271918257104496018633182656355779419835490212493249547331120630868467415456569779533414452719836164074221293409679362882831655130846298856706229124361851217626101018037531794702680874232788952338555047278534126166400339424798014053041379403372664031695194840069671566805706215223901570361807444380618379080999779020419110076327375994392281691500907018164407273298749882795567467284468938489943717689621073352483340431651140980089144813396277918002387958546311767929294208749174434004483566886359291952394874246101478287673014222028501873195807893863424024186078966308143231339325415668717014566146536830176511551391738453548082314489224759649523451578764341139250922360781116534780645287122416171615966828091257059865340869345612068198386649294362116678403847713861018490575821909902700806751971077384413548643212213036741777673827128124811084816418432917092905201752286991102497832607994189573676319814665589182793123090068862735460249754469533303901694607318858803427687004264601080125104876819554232529325607839176344603140369327522056624073450474031983945292936990266416841233962488699580160277133217320548132000187782276982974192582596194626833967376638922210471950789903972676790667053828071229741173219422497053630492815936544446250687664031784533111341056210096950090659730442034921283661053735240545271226829867584039864278914890257002566964631200817386654403673475650577446884976763476583576414945644044348823521690623997067833631229317268297531192241180475492540273759922114491606313845447459771382812235744913581897583464718663754119885360681617899539368238628180527033783716046459032968152343951260659209616598815109471270551684247083448325446711182663707926911631609146120877528435879593615611650754442477717245440193202666303818595577966564223970224284887607574519576291078369004122460856547850305147217431765476718034374023032432873281021253193718547934557107672629963160583407835370011909745119339868562143346899633039350023268291475144539098893829719695227953477440215048663427169014771375573755055296116775219889125437644491667406748042786141392773682224924174559390035109938395384098874512508120223901365382089224246461956353907717614061548467996694253238208508167553833953357521171532919422272976343763500041906633408424842040814248334079825149575737416112511929606586416876968186713755494712958850348476675773464520441288126822496896631617506133747656063423644148987168752825172738192803710802185188548471079403054712424347292330216963548411744021638966604092039711029621397315024876550779966644727297021401857658552131523157185163586616165159133750218388949697484560340860777933499705666985207462325498531501428474242114678377275245986411146451556087788751845468432381268791789402217499627832345805650602069400390115677803204652397327592375697712713335738228539776227742299056546254250602618054661550184034644430051690159588145234815346700436895824154311499324189587364723538620096898446832087618634049029581417167462242956373368730939161799163244121608595274300023055436687327188786677575965390977326404454146246364472905293753483088637176894137826665411789175918525176612055688974730228956221454279760119542343164201712786594224206873541556131915047999511990051925741301529590346708053630764296634553653565238367970286789140392669086851131665922745320599791336848049628420488319682353136486300105595340259563812563468568951468444828983758982660467004139132966638780830462442428326199740389020820420080636023256069642403023189110656979331865069247603454582366649013393636574083848271440493597054301628693776843664196230353721877609641865765608503397234993132055536984225590949990235601755699954210343824533674991753777786744075878904096415740514620457491028227509741747364932276351621432496030480548921420967155216129117346818992602346278630476251660001868120329610420282721548729881817865397640861170296051381956030017947600016189896599704935110395296384857810879901645948076531627386516745080923070685991569652424274419753197617522489304814053504738812425297847789809158980837096178053647819770977083831584204582249929418968092241184361787808543738616359426429556284152820038414966025006160473879066202444988387503800546604524607601502914018944061135409479237332787875975043541880347343095143480711020001637317832962967364487201608592308266023217385818421412254520899649737024728945940201351546339569231870689759289768032293118419815221785794672565816917546191613277911873348393251479344414228896249679832596597987533532420179719869845754951738429201428103682983279945239541340084582796459126972042408312589817240571063754275687040585268458151304645995411520076394151268975383393975940351465064695917152636895467462423404988616334870298770430650134524440477418955914561253293785710068984669078765220798018116657139883183108815016612508331477839612285532684007222312216007401344346230662678029316963222670408714156410354159934735773562813274989401192125304300900392683166795857185840056640131710336263537422524638117931767091323100909956488279859324730440594032492942642253875427715715632959060675450896959794611951741382780662062628433601739837066225457233126895497574361450967546116382654056054150148941932140598872580929348008044033671824423412507222496804404552227331158645334307343532997012013360417043140114313297749915993183768982206264732294753108606925157273026986862621464254533314891584079200538025366183897689180207615193909599680389036283630489871068848533211300374673665076954197757804349035016678454420100536325694659307341245692128576728773270570546616906590857867787184939619045055200960923911370162480762134651599213838212504581332128697344391552054109437918172134510788260012577644820334825470891502556565808670196401785074423732128949883823111620502253307428266403306550350943796283318739870015489561837371095502905291206478924862263937167181492408344865227337443507817517104764104065320588464394629630308471073659081357405954838291835744354419018918741775055939631174584121687687801783207027842420670443048809914876014538933532775640428418607730242699196617271895012489250183764129322937738037999849385326360235372447772732663778770417703399278536367145291248342863654200928560092002205252943700176288284638957971539272880702290895401817447983443203514122385004144063882008612343680507567333214949376404782287538180736570757594705897266249500101271219975945396151113586357958170716051871491771430292868838062744177532051657126476725734678744235866878813890426011172352956879702086852366898416930801974555314506998152903343827005259288740180125619955323756475083623605810032596890863183252086351630560637977223265811465938748316206985099957431603963133656758143520403873308149595606247437887865058994493444561794470889810234531503623811831973864685697876430413768398964306073556349681563118095614624495671533511812732604328735698742595662698530150820828023788745487651532023740033772499912428395501212609878672492610433451332655051222025737304930568167771579089135510975908385911787459078190332893751207166501685736579432243980285640839963054651011043009058248288376067744232494678928801474386640751194412303009635493395867042489145588559573093538301123552613703023603115044381711833361529108198253618957094573226351898529847766246130512756466619110719106551388800508468696288717728510061740512415873235556788452234842600762481402205604264704389571270626487256830142326203192842817471355725771190546895597799008386676565356820004550991492010975460711563207210014121434399513417168515565349977876535864884314043700880397212645790548222714915162714734851030084391005336772008290069005363417740074316455461991004636272233491800559441858004128011833807581547539050871536164975370760577835035600230036263737136055401029559571351866864676157326112877079374601087988955691551908676318851811114233660252020237889872691430106431440848600459615904358603767654058595497646843308639086196181811515822131697478827695868160201672108672562199497614873380658128406336404086555449177009412883730676936381839563277371254986735235123369601822902431657267924229312626595247826715486407670447102318184428890157151066609136352845674384445569713721078712751512107128778813259683018403755829461574637545293289196213500839110454259326254291271567872188787634525577256291246921922430513191133980756855673859668268140501189320170476555423460900563823876246436366446148966543121904194134925523917905341363633765691113854015857952000985258298373373103461350323685122206782490364232723886537511367149665717316264427244160028439758079856772931492072708736018679436988924059981474881727172784947976065079284764607814012716124567798195962171679326834783018684434149386988836273848151983223214965086494921408126375528527587003699545085406311083950888781026006114630081420334701139240165743655202486956406977600383804739902910721965617530495921289617363109091831594881533237344155379446850512325175783003692256876231886718625262709793245464038223363604875764274691671417455079502955980390046037824064357529850461046857174972789877770136012309821976664778880501668139004400240508164747774070975305555055042756460977287285209146871459053939315364063997045683351213238841104777455361393528834378278345911111701939461206714579998566419467161792067520570974737552993131464804909677268366224474286577811492798567470733525200208020297160031179310044978886107906199977350589160011787816503967549143716018818504673137915704803947100454953136461670855355490548898932284087977779734821444388677691732101174824911505677796910125687893971650002775365756814280724030593246968464554230743687335223879156546108756798745710221794912019192292855927391859136900341764059076105574630368048116657368443872222792588803169998501819126684128124938078049547221048846904931011198320719059553359922218493103028779732115351585233541552825743704959064379923240061115017014959825661165815663306305121868302149742107462223844141921458693999441306679649657954956559609329027168123457875480648717342877188862840454375666379757433426821518081503325175867623512904679672160008029430856540267003243194904622074269302487561547269882355737072908887797091458717882697612004943625522364947706303151051649681036945782577878041607733672843810143723164736324177526119510208242404044920176475506094089151528704517305082382862356384187276326209316420674652819472951619502518009841797513804025916311422484129442358321296110977145609100522761469711127656281480700883535875513437016959832170840067087735578261646827251376164620904521229077309657811913021194525014709924556828466960915058549696391506752991413039578275286543400327558043421176775406777566900895524912507496998019706058663273522134354644134252550994533568875688280097964951133599774297698042035525799697630782617113104950048392402708588775874397701903517471783122824882166851282044416447696770651917792434120716033252669873339302919601260452495374443485565853354514767653676224484263302820015339297102777901072697602567963199539124744034451170728663556922693979752866956327095497676701540382164429962146737705531682601355129005431054380280236518960868975368137550336996780368506857178261359930924666675167196138416196999730731217490332781649591979555831593158413099506139186450150482592504493623670166845163961032551978426802329757166110170377714911499698299721619026375063364057969469935285681903845412677228763025508131796897983099973538601943900153827181954781734509556088258983636661465242851537080224851962744349160224374134024841448283045949641874818810823355987591193484225291110144420255639614028249537335799390029263213765214766931779391562600698123835988539314724594362367259028853434432328369140812916058349921623631542954168413903198496590623606744249662540301097064287426815280212139820568802096680163102322327752855132779256191654438120910251530031525569661936028847086677876531602990954056297223741216572892110378865137114258138505701746296097600556849210286922133199993417935426435992396895510051821395057287672061896120755093252660569397603950188692881239721337035260227739965342755445246877665219536548533543107136345815188050788585471715769194934783973538191260855781953129449790239713437745327140515277784766299824645663151897712098795524736116029547729966459356255023157891320776731497366672381248772179455117420607187948616661700719098733989299706020781324690410756789299223686123972391941861947161696364499600110112433635907272168129957388748047126132034891847475919584673436243455765434277978151135985357870622855164587397915819953878001656090909836527562711478532967492237203482819278672829068163102704632796827277875765286754572770408321951024798511073138017631292905302310963404284207381365949811247652957930032537079102713650840914490838995641889913016128682882283811046023648609019067250129245655640800236670527108034431437255966974042324512345356377400572013460650710541907448161356207969333493249903109496442390636179896521430487746676522432348704226094146639090797274663497571463720834193645018409521271765944965068568974160859613074789184927794241356951693185960912279037767277051673768687954049885048955572700326062205635692588866245334302795558519850019985273450611521860451476237079080697329083970376164445867750099076243905403058583826198451256017123600980008725065749573873312192744061835206817570569196635341437820058046762534952324710076278817122154535439473046227209060029606079966441043779231794926939146702149090483135717869535053239337944588082321402681918538948689772211556474778114448345476843438146812423525944049797347322326674070171417252620995263773224597603082753663458958156012332324301950976808729087665928087557524810390178530708233416189802686496779373816082362781209499752424058069795523039927364537442976929404178662840139731170919968858727839815488036333578108444552122722571526172182792674322538616228511981011596880470518566457769073696963164739514076824041751713413878160489394484250400189054815450214392424290624313804285970944227339920451574622197268921433689436839726897314380008750301726435614320856634056436733951950700495458473611154364484060884740989824195697440663024244586861199414353273435825918154806422213644854817139656376128132972946990380129437778607759104683146165775816742725316177857085909116896177360788148555615501820886706698030228142369040280231741344494920079324756021526849811602159777135980442566679583149303201026401119498532104770708878399740450017294498682037865339794861517477363682037653339552734800252248846957759379684091688411387387544013879509034103778041265970748477580931715568628486866905968994694536185298201036145726283841623668734392687817188940576203317399080494226414184008208993388665595371085665574386988718815705933279209425680143453336869853898274435590882773974366856259726142695732275559294747604957756499974259765778623451593692860902668690366893279151688152111947891681111157938584511440993742264916377014206940339246613646387609067818825760548997782826717647053448083307945448515760976017334776924057163619401322456743041074994522190329773009405470708105737954785951912208895577018034408701552167839390662809250553469032881292358989991272767417607633391443934500162156438820213534247490653073569279467924127776851954094290735998071506237854985862177650998913394604421139151148884774982061489779095511460124311425485154936041577322231663088158075381874311429145038591261770157582053712006266632996824319600161315097758406245853527756824488227091102448501731655258676759964329516482817767154062209117239649678171430124532108104228789324244118138726718133468853628656686664730224614426627481869517480537498210893146750155193018884057347549986626605420204698635745094524211928841604406204108042359278785186059677902522012403199722419776673106664426712550609417817913573101846003398692355107820811724961217880414246327735123135257968581808347347960575214409004357341007959745576732060982690997793027730514464273411857000984385980862188815847372409400090737217135311643178065353511370006678285666046990236636740699557358001549466400935043092378742062633589221264039478824126296622524004871245410930869707904219884968921750963311919465261496319639292604076705127403595907576980019788960170838482782786205595727272580010244240902781771515620557792595913681806434822699293509680281314082326287728502558910626746590470840359445102027913402477993687268454133537219066880620286854194073451750416605630623951173305118523513349840256688501142497213783806969586737907590876574757349035599681113439094180664680956636923087138138590542933433950599287385433290583325143492132143286754222570299415139460244960131389789828720214325023195082583686615388697997272874317073381163764849827436922757556308098401150613882813923535838315374875071507599244749562911044941937799521292335126379410543832118725045352231703987005406668638976293849879019391851091265689767535614700183003979300547119650896067123703674768159265403381458901145967116271454100070472119787043670005996061340831294568997018731997020732482171743127943684419916196566232797056190444393655354950931681471202059484105674199629713918186332679347562483465558965445385361476262642500754212400614616824003576741139088451285282304321153683768435886066723359576293574015023372066052499277871389511015448147846613586106201061762641528710489931406262522787197537578729195932375966006465137378147656269698893586434182988579675832318070253373541611045788122520897030004675417988117029127426680770664850163448716041764353909815524844391543080569390159727541994999455758176291517555343306828579754465750416542099802358974960429736079753487433110007024656423693437255956311367015052587465953979935808028748106600912369952813075497366854782390094349786821083188741853243508444609746879459766258448248361759848658294513287932185868629274037104298677020177399412742465576938997815068417112346242675634893871622497637539169591563953785421216985467279823025392022650904923663780171028930533811732087190047684530362060706539540578795439108810288965283543664612957340188355994152970941828392403345914555569317287928576619624778363019254678608479293531064517225099628921931854518827865673822548030686600259060053747945780444657588177976127862915335293179514595407650889587504906837318439894834184418582901520809743957710592766667035585804501661720631747740348297639184527767927520864765893776881390449029740841766390934109830565834901129002257788185028821938202707700921987053128072333197583689042380366838271204438092385063587630814395822516201495429294805759084858028731728112424395887909750736255756148362103699317186528231764414227942292798595527890194070101010703174491634392593649856869132858300304062405724819609736930942963922802162810154477522307156849526997644849676300361592220285906000623653437682953481533286513258565409946456596535548998142242990455893402061125104615564732606375982276540300399910112148269896201617853883500211136184794095882309653838241598297148491450891997699281515758791986251318190404560651531025331798322736252609725022709967134153640351892357871341893671606771147753357421069324093427392714496174797342943351186735734957146460897008646890797495903684332654373034952670689539324884381703910638738783969065311517812888436372813725071845101397114632153620864137216085612953625489875652827398345234472399466544641300499650159189734321368112890315896702406553885747744465957082241857245118940152827068233259776709998114174442558389083622081786898435122504001044214980589921047363676648389769739441380067157529517557990025757925034557659655177742585455874721962746135560676115494180734285418769633543463039245641019664501191424438514236840359945696973280309483211114621161421402535045567618272044379986472879935919247183532517201810155803335749550787654589041809144687865184696797078865499981942905275232363790225382366109651931687640419203910018793471818534070830077639421785266230966883420853406449529962292013761463050872210718763523135820992677229857590941739354300741157363417091793736273804045041172723594097144728906852697219971629021317848569626772799399318400200573500442815644170464451797097469891718469907819775402727280846126726759148652072568086343882263275220820085486377204181188329674066699019213758446540855545757501078330885734881424732123490220874531072907465032381740001021965679049481647651234133471458043008139303261076912175459014177855235752102840642901417448882988259053750897530317081366096264527384295515113936360869809681596202454524921408030811964754931977004828444197346233464994257099194553767765830191998578558501889834076169466788487762700526255756134068438747763937566807782556258846397314424772227046248856746067734606476166861404305733287941621377595130411339008370391183849209619232390392918358436118067024484340698728153258503760755965147599366108197813084099346535958350994455722856072823355303876118959794410921580167313629010125536315886795794024866427041353388315455307373094091514744258418804870470032335569564098900862951970817259393219574842748856616023734957823473237176939999906794680501007184039181619832961392140622753448960926675075539630352194486108682736322497285383359145637816578122582456723810275408609355717256739333344454812736951026599955541067700156274921022204201417995440957430359525578405443297173558352297564704558101154752038358427046515122289013790798774566996815005354549908389732614681570817528237272344437779013212138547515476751929755783111471264324113202586487381626244057271720563942318775683250529461880468527283527084669215351617897183928223667415318406420711584194815946876269954448451362314000324582085959812813633142725533465940289884900756722794029021052072915472434491689016053393351001900793241478324014819596904731115951501707084012218072222014035068247066342118944720984423650981773192420046082900616847505767886618363411390203820039828868561886614245618749268245403470596158696342449045908383040931430475529744153563034254678307590947475499128843412766011320017962487813647953229528131856702874795488840504273705094908287016176477316391958134805281831052798628205241818631878943837500756423961809089724600100387500272617807406928958763558130279874056805077961861828756617952783030261105608004954333947805151928995805510879686441208691064084157977972207380530112097858338803267334949333245023007813259218081252724383601210521548495680623644809035538095803872747927787711472368637721272068294471614062167895846192689157697433584878778348534398051207689986871104677788091620654334780750226307968012579187692142025968468434979096308359725875669876911486729560847329726095000559226638252634353309947900065960836770304410762967411505058628248089839238696243656296516245926542768520283341059401762972275033055714635314937754170771806734173048844489548831942510994823292398353448907175931381246152928604277082276997292172153846830475424055912731772243986379341684692651925755202289043235022864623093389761220470423097420543978086087589771593288580642532050889033356040867314858920140041331742648569416054672369521532098735443386273585153815639530086616111548233990337466916395272855130243645004784287357589407399104078036483250867477752737877761086827708262809328595825369206307447153819317513305905015224691476486941492308408397266329139117089309347168712661101453358294308806954361512658394867086042223671685397681435548535837023846678731874477325527670662752332395917004376625238280344744794262827671273595191672150812561387110941559593053702374365594474035399040458211388706860585225720200582837282693268057781383039909546907126870926395399716324660880916334212490103518149874038267746308534100929535668187238920248680413168168654218330377243333010074297741102170897027072407828818325498313284654249273880719831573558429201783980784141206418543831005072965104604030515715685008585726972129098251481956900887256515926789477969058866411831916635535661886857340628284702382087615029801992498091446747518310537812748671294666241728849018798672813745434422709638302302093787741238598917962281226942386951253529834396363416748656405840080609906692689216023152743131568566920223018007356774332679490063657346728551477399385968644783433827829561682766954837937376736571061625540855728679377032905254909333496903668342339607263110774767077814432690908961150165530436105899955462634275708108424526109196111727977687275799285834546265153482322818885468339403296280760585427418472250627347414680506381827794482979320855354685429035672038268284673610391236254195133759984487856159725957936257027398765713532158269892662771129363414792624494446052045767687173462508313639121213601904561371362120300029399497097876980475318188094839876827431791999463506913395123994663278118238409064159984450681937957141513078590047062785042519500360343250800624707780924564771257251107530520729358062634492957007756502675009764171400802074273691190482485104099673131713430034815063213426020457206675230913446803342819212404305034040488754754002501227498432106950354444872328851766303816208169062444121244745363872746578522978863898906225141910376734704831493821622115332253313060043755443716590731478586947414143980824307192154395754988715195824767920671011359363999686705017053941949388648062753104553761983886075540655465159128189779824446296234796590249260533893832979868903472621190154734791304677983736560295390464540015836586109980720462173000857454566283998146336111421480451966890734607891738590050456042869691526526141614613540792243357284508035536152715896572375874934360163245791028223713490686229474825841945563738654300264817917227917632495785495835902629200983865484656515778726350826111530895646038214672175231002074394044605590966921912229095301794239284804196790854922092084961444610084891142885840124175151972936366712013805848373806202313707642628955284784765944535715634929158721261813848909526425590996360026098114160195590234917536435534676551428250329116803755323493607790558228274824648558296399580525372453544752057248862791936704017810103176707828037335554241987316947761224326204261246032997374876169768599005170673603292273001890816103736045841247190373808818599126099351031131013625920472968741238375647628754382457465343783867310468426917014652622023872582880210723461802338849044042908553288627782129382751192699752740548652770473329987244594908178563812211543806514801358008354156377741112986869535215879806704527181096189919667796603380794524875413425227008403848132709674708977470115502296542963495396261095633163018392404503107562887659535365899139209278256990643245922510997680969082413475847157258250379568511263875660220447864792334234996325462206526944937883805367206814996258337772599599712112140600638850212951033918887661613819382106385902170440175236554142490362676541641234048145882543645004966666793417499279724667511217207105258130065623460461456835064786593545248788570302505569818917429232822345855975737275580083252530589977521771315620948112906084431292983767432260311795256242900969037096948938472928712536269139162958194895944806131066691685903499070424011287738624657504374346983270517749818879258196423699419573013974368146960813085142587052604996435559318825502543615841203849967716245401641351511071259800603159388349856745254146017025780469401663085905622914952600976761333791843789411710611427604346561348600377661203474714360121556238600952348702575458624641103356271173936871228436382010089968578990125031783124102081687337529374857918458450581979364186020406442522477294908214612780035525648784679536432263645248894115225695746137768175273310625792082837960197649756900403771023918239437113457151289609104203210777140837399783596596709530818780147349064267387208227548499310861433830190145763970667240280675660593317088596922632923159310278698966830353476725965053268021201709954263624825428506051569578131270977542936869080684284667348389230234807518761400921741839796842162741210124434865660301171338894800972278823855494562022502536774218279805813800883772099209992634524833233420256194761219370696620348393236672162424145771779762966153711291732439714867770893663081491363940714345696643458603478259886622827611446383186440905082182873611763160081441263832007577451952192590295478688364292841625034079075371767635523531375641274129262686548387643159295895114852137811100873851980980972529127037662225691310115848410197130557354652062170308052297046152590372726400853545530648295365337631467088462343968100554888681210392425136119692953325245599138667094299691871553697875002181767951458095587916978009427797186797576131521440768881277635357433399767766943346378101101242349347320597766474168628856628203933683505087844771126513415183454091480510626363329118059061043386188573226068652626362578027766658136009372774931438849694010967097868437558354395831150218350112012462597442979771252722830365693337734711816106490893953448667275581919861262381748466051400533231141459416328780186687157392572273604227493470118895957744007932217723730214285186113596363523135404540712367791205711492474591570875236470382422849399428664080695953891176823864315734551762649973831097746216434755188791886103707155652268434383961049338892358804218973410396058255748305523590804798778597259205073817508160417986200203179987709145872155844292489762839092150341629508577051109631304996259755853500779017775983665330577201066183684949149863416104628361741431556165446752162984922666331342230781963722465469999852117500068180087979500622883656290317112757725524498742258228103447246355786381373411620684802041330998116534868851994872260329897910517572041299495742336830031179176511531775082472688342014903896812230725653623809187228391258385337200004100775161003613764386328755871597672923974008975020688154025214886920655286373336260359481741780527987649455348223781315419134720646132875145614108789548007569319091119566466693557889486790033403523618307028663675695259790205990544105715317563793722145844246216452649141220822772134368763535031098069296360643162861831471800798056018721322954178827088983071956699478396409688992372073388246002073805212914660456459524247714197511734748015627755923516646257393047839150818863649203591829295667335326592543533013073728649337429509887902347464431806501075975724181572043685855014522640904857463823331924893706680329086893235098737693635289109592776917543256536394873293359457184276918794310476481039609817483688207382569643022713233959728682688653867243884410830702741715953231491336920006620845084919450894637389963350707396261773768984031028062612360899926279215758402582798073278704818400955482866875530994234171836844155454438916559557750833800426534288606737900794266819138857160413995619889433019987970200738665119253277232217228094899458113760068636946999246021966922439333876312198547707997601250462817661902143626013099116015324025815231320440340628133529876301548407840579117421639172450600209787886877446331982627360108731461467175636825735899857861636827906650002766546132803374779562211681513409962356809229840161116335666013728966655349741683216453520729071557751129765937128203293060425053644655556305489877858292539953510140286516787630238721772212987331759940213307515938399371005590337936455513720356038390564257182847550919715359247286531468248911691194899909110908401659281158384410556437114012061090746466544573283610031099063440372159719135361833491144980214626234046424465428531196023008990919102921724316432525595227051265917163018953477749629201168319263497407146884513562614534627856721197807015960502136406063327964736204051279564867304017602367113669095702056276127238203061127333055242079539181278975172168209147472079202341894263782592473409076047765446608787096561126542385710343078334729593660800758567159998920801569595072716447697264935978013280848803224282273984699701360824556299604091312519148457785587198564174294008395460978069333549584063878065624484565538354264530569398574617858518115909617929202919417849847108115940280362534963112241950754384806838212393116136612938147480943240627410488883683482423891113502906616186480615441952227710522057006552103023182582525247473248770013569226448837950758810734966778929697671321252588349520727064379059063482442747724371300621452493475268785273115696738425442145754512576257808279575298601455614456184421137651233294169515928077084868230082156445475635069186703280266740114271380078577302640551768740323495867956232713057398811991623543134090375494852689545862574186684910394779711311055081360283272415978241822520594871615049913543223082961033093073627701913327403377612194669603076576476762212594898519241743707615813019136884855764801756940821013715085883890643738216162555073309658982217438019022980555524853332166857582751530878949576665840717500930877871598595755032503843801749180895660010788315667325790983898913157823995301287007373211184204165980267934079059465635883502273693861123062352421440623471860087441236234792359241387569074001677939449138402034487364501189603911421448873342136328896952076309096638646443648416221196157270395454738334101617722893341005176138339777256041082503998098654743765783926910485854352300521769638363143492412690544035380135389997604241598154262494366025566461193419832166256198657438383061433455671623263476440678115636264101546907959012272416569027283597351962005244415694758945987516889392528661238727210703393689106990142890772168121793713193080435089339048242924873175252311630230801633003217239375730768695358280197762607745399495961825626035232423627986764842785039023593262277772664698706864499599027604883388213116948979315755077638598236502145133951429569453538104439817203696944073372817093818139984049406925860502088413261507644345342734300224272944593883796737887764561463886971134014829216202949389782331404371042213408880743751671243630093254330706347245167008511271751948700967178428547107446221412892528035258067019451794015318671171276982843562462658674416594403093866954538995951410468691563550053985871181008279906218008203910308039835677540699510822593640908430485292063617978340823460950503797260496312786582238180930203164781257060095260778246238524531169587980728806739223692560366368611915233073478750238121654562306247367957923960443409878379878258438000504208628187223414046809301187611609283829894071458219035794553004557154216552708249233805766726447456884677254723386242895703381769596962619383784350690202980447049950560256014549355214982413269957879506327502874622860645984274090461532248056354977193045579417202918107361528158005915261229778434878516672418607707313081799994076733806882950214804482643646514990121125951363103104971579839980855662757447962335317207202820992744417222913103746755814033211188345606295043408308837796514403300220819041397715839312595954545465228426500953956696640567609865028259019870967172427823974014537270729544516259386925471664781216785765575118286421997236717267575752100128471928638357213488899104039247723265153503193372490692475275558041030519785931127963045951967638114818927223097291088670467746795194902153119399995083062911379600463570741067910034322897271339551511137437633962483277025982787329598708517810297212397524923566211669502907734150276426921057551764636061478959388342784033458486310518026243556484754116594316669110068884994169992406602032304646453598519983345302339162127120453569861639609939375230323111304961746533105460728287884331755929843991115346829340651134289743753156553532725609683057212775725461681309874041055133180207655135633225009304858745666192738988754497332268074687718199095377598202251930082836558792007947671638968350921378053989317552059391549860576305408433100492970638136351510506878056147424800168353844672183588980088887802597437698488898037694799905771825830331014056813611562390884813125375693675171336551284704774463986831017999615496861020835587165558231617429944744360078138806019696230863605043684824873109414844398977122856073623425645433310130315215798490983331811955892881771512187735509197948919846844231535863083499972701784291584278126304383397854622959713589061882584078162054660027161655237705029381142040890004765416649845839470492161973377460811937018234163325659067814375045691928273949609120605357219937992524144403468639778940878956751584045224468281926890409188715583035485685809432779926826047719469882204948504599503903361150973068861501721886296994725855366296646788063256801466060724974610676890143092880173914655998804703703485736189603224044797707114155391228848467490988977914433144174212287278242590068547675047268466937869171545545905743236597295340376008166763293327973628671922503520455601482202987574899325019536718774719163520680229920004070918075705495366896215170986861440114769185610640148120613945369075175175854703653605778621779305203619092331769795503482007166240196683203999526733727105201731060750678083563992575103573621533615961265111919024362321565699088517862515497735296520041775800851538256850567062312870447781908118146261919319338162537018054083069174956291091647470505629359203669070058695138899473019727738597547673322881919787339089581820031940592044370639034910419127909018973202161536787485536056935054846031092548009971764087692125336132427486045708637540182451514486626951328735392840221945948874324752853501729105412190665699641209817519515573825261984334934680351508847947981225669816973971598774747187087499706523070517926224881217048821416331321204434622647699798413754575432875599222242343919410089311206247976814937220739432196490249151141376206996799458818282629124306213327539836196463385824830384898847169154901167848538483213259561963039017317750777684053463265532111588803419480185539036140426930797798317991390978186073462127877758481533026737163291169742512345928305144371658428691524323066696817040058380600391996038694527032115721936603186866077196365382818465619486442685916309150096049592193552045941103278019006763844131149686502423246167284332308014454906959037890045377694074205244392493039217697528827305828128997682041853233141096814551279902972719530703587711406291232960560276376271885988841929260109818315883363064828273891732001991102785543927877498161835503155876228444539834658625564203565319693008842516422390707961656389132925251881369866586754886050159199309929192955087507189590468300026363440980135212335798371892988018564645675877466503523814580653725808271386514158991523340989584905313350307453882192816999104914439602201825911104151253705972139027888391260306083689818701449134507646229239427094379523830178608215434973497744071217496602665398557421519480151962072958030804988719835651166808660212828195871400152747387225454298153476126376283768949672250785358379798134537453588757329161100475278652847126593643856512124458799621235098711719088992766956088961513691300607091855247438137678270957405946893495553308970136491644844027259782556546420513549719403410264978477004246424485179847362329987681780835018676503632241275878845344703271904032236022089159277363316139052351151769466697025062776582956499983427712532341375561118534778706879113673364865348915109341355815196728245210757158299378868476132985643300660511872710669801161176939185907217596041452565833782316168176814834751779458336730676532008772594012578191504461239736753391361342117653107413396632000024185740219240554015358479955621853313352420556983037139597333931427419677049659982819536413443093569707471029590060629433729161676097212947524324978635819161322204742802589190229535016465682036747553293026935912988623351437327684052818688759193311989752018779640245167097862180701632856248797186360965343090880318841696768212135697378344097961750288024051540258354174058337754738394654674714902278892845203149443950490219256222646413380060405795276049866359216829668925149718108234046453100563038943233545799853994797534212995744174777776008936261888083123521394988109960681978271044832304976679043483034487398589400212452170009229117977515368755226088352527802974878396926044412315115948403478424435734023475291893491684430512095488700667137709866317873594852386468652225006752310294467177542711968684182568988725136730776992612295541322163617637982683169248896226165126519953232621189917333265332047323429293384126043752168307147200124402275913370587911829151065745576981521179033260218022869173001372032671064171646819226328155609895809910256502514150316780144891802291891988252945069545575886126583803384688152107626573790367110670981008014008875049950098422275227900538739495260182738953152443580508132855750958519426734983690661517462325169303918888243967458674076098725011145747010509035897044403701169819337486135313748455577028823418601977451006585323382668457280527165457153917515501611486594739221729827985220420075341067172979387141518268528632837512151311891907620104521040440304571457334196880880850459915992714525338128550910166075148595976701888977729497596661591361300942039504555030935331154488199763929436076456599321490776869673603597457585474125890111602340441009028059438922282136877876563252203805476944062503741415275091300260814935170116889305775529596520423785485241774343104759669674235687760732795823379466981933065508489181876113803034004490285422793458731724009595172951176892895252630635933423354861828284935242156490684493090820793471506728682915391644212355169658392429381115491527061221424250005558579369657709429670644943818412417737530455966512747954213376440166479953639047948003528106380722244784348997336940492830301061008527952941944184028157541763748016027032831968989313684722263770199838918820704524703582509369302687385745163977388731169259124673741318729394138970510982859371551297831472991925378596807341116578966124238807906336046067908325391785028074609261205519682904673483339337734075900092015976207377555596128891056116382277399702921017680184740186541363775466831116861482393486491426457763106582861887462135325821867869098955242582219611806415801595577138548131409699021492874536147457382394878926762386208796992001891963182407933034197753841876649816277504020505673342768844431358240279546213996628381058939038992906222230437000116753780516289436735852414732004438376571167660446155262491847015754403318417852635695402137477822854160392696780140076606764116137569548473735491746015338603956154444544884550280310318221236109175623056781666939353439057095798691745053893686123895910306059312551273078200712552265029125557181754670322504084535293471217700701701140930153393595567973538443264683387157364438337160087049805673953227576709624901178598004367386342722564377907721463565488328923862371875118706183602510072481344047296490106418423013158899696296762737428984068697016549807802983354554500209883400481062931119491977091289063830957627514877303897487961613271813763672911885786774257060936981568622300936281134944949690430313472060155206926171750307760006814797148638698450258900691070695929164018391240259801335774282892441274893956073328798102101102716978343821189400154938889281843925720419706639814844470089104505595276043050126739145224387919765354207636145471333643354327716929065440990307959759131059068908262831941180809599933411719963764430866804726932379107126214762341538653597682139892264800171346636362000785660771794501724081086056292563491895134329121413772893559507443468591303219422681342898666298154718563935314224776326024301709225853245173639520679397720042472620899607123124562509851973396803075444870852336986873105077043025882849890247438923622211393376379631925145020170585186945227616781592167135852561552552051184643382625342320807671016478843761609908022002602735893200363704443447994080404622377021896038710835692026190771560123543644496587133878983100240095788439777803651635176404066546098378319760414563562142020357207537160713516908852494334302033393039195439100746707349418956002754139008163859774796201128964903224001942057237976935847291612861963138126437497578856074773593691967267783362338508781158125545123755900892189980832422872493219372050394667075544932747498156476083734837898415670666165474084711590996286406503758469747567676222553056865874065676466025895599228749788660661001753219343649765285718121749183651283743909498246576335570500403969473309301543676916784717256518477335535914569139422132582802941611835312502482042607092057154307657671529717686683571044215678442538295017791119576609945621550891497663637769039600314223033572829829422270671253668323362929921041150722557218969082300731497493935640558597222770490807577170622284482216933633786353137737019673249713870027320530319507185549650906294413119108779993749655609134408431456180051114292787255940914863196292012803127553566303559927180173159213162915334582603463156344508109240076305781116939053246483991881320935650067137595920817977310947615561374117901718248973652632746722730426551705025150658787637117929966418347809557993452949939206452953079843287454087035169885011046504606522030030203860944963620198867466586799121189044901777421234335095944217420480866431565603402447893624626384632484242056034459685628261161077816414101916529473057826579896911225712105409071023762407692708456187473440543472248765682096630273510494386600727871273096451977376819879047108179193370185600630050253872288162007751576815131593146739582005574207923419222048374047341205553205507163134120089145764779243592145091066670795508562595569157668466971916669081395939001386620769347333883483376396058158078714491940693846938205107811569130481249520276255500133964808227342294384457590407212527308408167558041432484352704869881245698122423126707611943017235633274557320008933288701591247190253928142316565733921068827662833825335536481628860109500341979521707182828014356562165828537771578104135676486393706111200935368879187481869783658559631856869192957427793723647602206125274262855853640163412354286688617375358636671537350320780047890436075896697034234489385387366045998491069335339435086639746572325983693462058067149028384885632417990953006899306240887820396474693799167398199893617559509770871828988074680690609157153352504607566133048237608444280490772881010020428868859770760645522784881141370873049670455233830717981891019490098133273348052353199397058257564014517064784459640134576900765005925806144529248837828491346357430893958823182817189957022347045230790771675484231224220749222690611150844194947048983857523341768086971823300010832324731737272051280842942569500649812722539448943197666885925709945536502028086532385195695126291791127617973489965344411829702999553848433050534739047138196757543843635378772800540866873442301082444794632756303739278417210075218034431076448268115036331452514458112206850484138804617138055239639895299257641319384906213220399237482754269772142542661349011548124546946843210138005481729516706341817331707231541539200957768468523489377772677991123413551994747962430480475271460171824707163025594136631193746738688388031959425469083787864592506791674918019059286805259370539011599165519627213391788726361823726309720067645587188444468711921634834392569556391490160403482853429033656081527502492722738350190268889926571031481287339814263572406626925787558021445968590902417174423352757650359144355464409884869359524215251705578179294140626259654697628849770460370619950695229420793188785041881804362784303113609384140510632709624101509860750530484757366079394286357657946031600327513466710993228925713252164372612269782373753145718553524251523966661611359025376558926096590603715144014384936984378808421202073169819676188005450646855157238296558378098049329141336521968563113231998035903078783241451995962865906926475098767238861663897230789037104144259414484115925741342790701508788920734959656508696800519479777017024384144950924549949708507577845775103001647965030573289483208046241783645014449023145188380068568644563705436682823539972380320281696669010204081915938898069778286533367903675855305270381624753349672041332650613987370488241637952204935735724476115028739275749954308723276623071634339195853519999224041521398848127010175768846164918393295233485275864583197715652821293368481556454182333692457632408796932935508762379101710911146173889183235822709394422985165360553127925178917575772038093823646504369698859150989998339623917155257350041185857826665520739855877277814041091117968262115480791009712228340210981682521268659116960463180818755429261323025760992894886564390033395014097463225832213640797204596770462475281764557431520011493116850591355767298190779763891525123418131557167635616127451564218103412194879711376675928796774355853203526273374111819137101730363161091885972217540462831643986333170616892218699504099615673272200849245305449851148052282523496623848002319343837599101817407267229463081374604454971443146329584034395398940767541241537783087936999873769778283306682618607410953627064248660088246351890066816312099340978391068976805768498955748383445841548462130984683563463201598811037570626666373328375175052392101526957096377525612130054430851058836515719813985118468463736817933886502409872266704463618424608890180443190063335778092342453998813300783222969437590735671686595195643673001875580777669096341021400983022733521218756491930569820662888127559766155530455670272411017200238991376091542951547439960783643608065394675273816667970041140821966379638527046761299089904765066405214988529723573253236519628501902546900692316191064118723532283050882867293304145058899799264073899791929715129630768551808925710175464209672072862911728545041494764470216373266288283141076978388428291895208013462527457217419868300971168673520969192803142343023553375950122728653202716127166163200912715305802189185286757958138559444246893699854035315992667554733211110807131817814025500464150686784633324002361659786214551971284799649111730348171430755165992348731476749680626396904486179649680713049593642743695206875093907634208625329899578651562523307240899761742128356170301712462165868298952291000267456962870392701627397953354561847815106296918190047444598083613966063270696871370157640196024201623259248745818810721498058616987820473412753513192160061180675019986829988001159631438130731673171270353075367382283138879793616598170047920855070643722820527214163233462763353124299555882927541426448810604018929694693270809206229071293404287650550316165385083320853124718076247649011702495902903277820138809235158848249911480690038912834499544933589761155310530078639348449895885050320365420693358193951144415137759396420363192382298830425087995584667777430218157849183098743537598400567937341525571501027777632691776975023674350331363986893266558335635073669367695853394109612108139103780934424993172849422739159470955292325310960997394462930092615266041660654759946618914258740632631373080738940961665374028277523868732066432014135895483256894862360157946136255529619915698275660352088034481820944917696191703589589885357632676110305796993257240081760869974859620980453763247983645912063678256879206907485232155158309398755952424845813719262113997630846794298769786671463259042606135398989862783705142486013886136629156015557751412770360424168770088215607996302831564533519266364367402934410860933244735387253603446946305674615852208819157873066830903383624409822476292986003593752239405926473299226162105113530285837905836326718168154168078430290459871775798754906647106799883189906453967534036021937674459256766738896518473725349307335971619683305027497580206939226645586850449115452381636578518048146048630424073433233970460681670603331547784530546312579729343605426543107847213464343718727759946912079701408899318931091894022408965631382205129008609246418676994020456210111259021476805422576510948176087399797243664597100946668769363324682138166047911901666357932407348627514122921197207456557084753108165907100903763510489171595238100589656922279799986684061413342268165583381201387969614896425232767842373815128730656876604283766764815714842468759416196617202150180480741419017756676069823500891354993549536068963139641318823571614197407175146376053517758570054864046403368281277676598895928880321144125112644390176118454094600434694097285867902375326006243001992915403254478621195803308563528983485108309077934525847584659422769260188950029713349827266910705044208507487933479696343069411806527909098613375038971881388127986011621497384689801729969105364951322106595585537851031606890019633610418413317288389495361354658329847722012839830423228334423333339142779798395426892271613210080440895131998753504497271553239463699495743491014065481026123420714314668071304210560769925698604042731484503186308101286987644877620463372595820752515972260751962804587730446570481346811566302225967951574337510114512326836071880414368177141184074002318059697884175562078197018566813276955591619034945034495086516803340176268309164940388624016893178189808527655650548163528699865305414709330519384831226684034836206406056137515549803909366094678317522593499985763330459766870653660509314821895840168449977283865499471929322287424188514045609359651011074490355221517412978546592085824722861445525872227548778903578578175564290507563203860766602728737942769154356684913538907495814818380032478191789475342249416233883750621973284760847086064777384625737108321844947652155670424496649790958779435917467856360616785187763076795189261763773305898537461428440884340888796097882725445436337292784521650094158737737447916839529494307473191721336827951992029129355236011211332606687796881749010609490282029567848059585236378422426426028882470411165169569520066870870725704791494819864048955667735697340986284114315267318412730183849166604286375064152518595281736584324954519621454177157535567149152476423796273031952124717648346271233542942841568475841313022978458285165337902911135809795242705134120610217821123310504473082547857129078298685430649816792390286302136404408320328196336929403107368268947264810042230884410486910628026474744839766789443097406970959498516821458696182365478221306160588942753896494971764063429395589857632220620849629415311666759852738195225842006514608016248006797783312624011571462599702735748974174916001935216933835382665349490508228866331305149694013315744629718192536450177287000731321697576359011925332347070193760306460400345002857103162934075646301494426566070599188623307886494757663410607929837061155898898703179882985108751902543604450200279223248409470301561321379679291388155547901202154078503023201751657937265775917279132744167872926936447462115888122653784097452226943760931784845489012446028742502592689963626646644586251540427397180594740180298416696479080980686294829430079577871704612886687945126692770707263023042900217097622203752884301295053186014970702320727786005750367698979149145518416204546019152429317723337658994423820226190301249061174293197608009876449135462203201985453283647129362267986298576934972726126314701355391315548770830710865403143245161699668564406552896257754829913534679790516805272639439076217639551657148336866541127194788429567206923056064744651636984983034723648986335089226634031970098983179316058671961387756810704326909833538820196815430523105309916491813758568611161249038296450528505951681331431508104580451946534756470436960181454231666655598916482456588032924774890122351102595173296881185830284679948841636767635781672213517642685305966539961092306354317597355413292748188394817831231799266801347878306510814907479297851824393908984802215690169837162934873832404763396956068016715676918725130167657625643968175738893714277189498474439135933936220760978251057161695775911163971042744715551025796880328307437035773051951038582815744488823578902495363946535468805074677984780692703034723549978313584932239311106407797988011702114807278867243558636162078121957883399275558663290829318556690270444587654815990618208134309904684846266352275221001069610753933872871208807225411739105486519160621643872338791114358975302200451716818718282766372171407352877224541308013075690945037080952710528597391256013576224018527283094062008878452963427226286222655608501705320948181145054192776324233161766662066344161322639622516422377205161677450957645854172130634274692612803624830673292997942553322411078278429553547025127081368866992118947847131618625009135447881876231000410450662110221812789366762648948976133736140972340631931910558971201023290160088890677468043722217936168169976911944895365701418050647493149357912208403163711976982658618046464916947922232441052840807539728483134670524082487054156690614619988137130747541484399577667058183895991246251295041530405216337253796835735238314720720154562406129718071518609892273193619330581641021737429659069420227281415619918681840821289786004211503101297059159977821326021970795266044236662760779752358960542696580638244289633491292161498259670795333089405190884766970338421421475325579272236526551999446771100627291742074636680286670963320670303389797332773428362139727322485161491336024780253406991385618151029351053512811543088962767945031302133212883440042216905679260383326668274612299920378899050958045366018244853478782190190963075848317759219056669789996288569184752596245480693070392668120112164329352534386344891796913653251539252819197808779875935599704170861055649659715113345842887256209040250924469296788049907977011877302847967330056871750920086895648959570012842442231269202289171889436388837915625272064846271488207329227312837225583470431058737751503176179560012328560040046241098601663741543242474978678133493711911203243512800672748877552770938765969892603944960015320181423220732397959473122579782627018584577863971048660192089177491135974920591038998838538488186620800326596761397583373532421947040592822391166974936860567179366670339017964739238246304247920666692032811404350168711835134220205249936392145843164067795326650591898119135084840579787308162291028148363329662194667855013123201696036363250985676790336363887518135927693261421965477389941388345522194341690085325934683404774274710704374256411438270024312540236741694750142892803153275618809680637127924341785948246002352952831827025591944883428982387460061100914594001885202262434539606504428926136834138034484913877781278212511723875253169507969506370345370623429911321963680003537406626641465775186791254006819495723120939884714862785144282974873614196454579769247199933442827923539588644978851325615111863503318100993752568469803345547244163028597897469525733337464220143497869364597271941967040731796353309318968250826748372865056460937051107241756324197492143660355120219902126510986593802403865537272770526699410006037091334758835474782358622771626142392750062454855317489670882223174691032885994083852587410943101802204939366424365637394224356285466165237122906498911547134355759958133171279332229053872098673318723328698402469865178407855833455577866582721714508190010378761772132599599384158852651243707649448973013926654453389235076741492519876107543868856455307265537571032318457943364541643469565623222920165335183374345750223565505726505986767331139265903473328767558984453842433388463132344173044674612314069123763181306638139306637248715422290463706782734514579346961103109479510818994954623136435997881216560953230962768018227481764967182875883941359898678414848217482006359171390471773941769276953205513183848619539538670360162242857168732268951648350019255815514492547068515455300726611233786220829328202309568977181956831385694024959083718148875907928775788531335158052432277010183069999639964412786025180804433230535335079101965359083049503606585992149691217580809199965615523337827973850697930896090967368849760057577909234849811380884282495011951713603301455319281846098991682374260367482858228681718731025108488281186025488310912960865895283765506320989004737699052355462710516321291508040225235019587655527532232678018614233793294569905422626694310296747849258727936538093205362041497941503650813387120486333894522047480022484978752571973467225017376414513753134293012552523462036325441806945826819988195292961436198579411496539624348999137236456668928869076847425093548402754402939228019523410259667041567861267539306494140989775552129045460878084205200584940962416866095585917517733372559432888354881345708524413958492709055699467701672009769689815729438254363267711206828210615172567971519228441820132644987252633945493913134589704781469703135298652357182500303546451290652391073582502242559341683685123433701364199714639334390176184852838402901084403886130298481279322592510531701878786584643367776345344554259883878742713664595105735939075030464373340333766327406149631979779294784384228116043488064639306618950187009500315368368934779759850781888422628479126666622195629527415510290610829239548182978498259187158931568770119077644965261513465711261215091955377019414990092845457545306112970659266532916122775368249192981819829720292833454512128323116268721528397029620942972077119811237178651691868078483969753798107089343447871486054879699069599389866224028859143008549245605745314265540982674354840782261203501143632370648921496989640890875557194771127684035758788621126505272427929370527327305523830722368289619062624068838816145545352341998667773681299420336443942197363457561253932967847508807103616681632010562115004699033083175699601160721236069580474701787572745854893259677209486493627364218642384204596711934355712216035601987313638978037366355667175241363247370413654921008525186288934917895451357218136023910942726756553839602185200238828922374548674620788064116637801257042986922052103552804717105322444584316970727627987160610019509637281531445495539020026373119210417993705508584495033563172398904806336551025539724575358998092832823143418637659272085283613250929623711662159885996711545347227187507755779113079009269589286980796694236844066833161080391848199413526786932659645644756518698588332004936594506371269243307517079604922724050624384664222414545177830175045602536009007175221581665805438154280741228186159794527653402361600800507473092223301211564246595537405131238902725033745375610490963703393700270027843979797532701535868554971557255730094276972694693723507171556233410025330103921585393572989626553942218033511624761483132474781616572360031691721516314099799669169026585309395152312794277885017865024975436103424087403594014749740777491173362102375217104578447304273432877757083896104701690115619868309503835880069724131727916708875785862338515554003293688746760134776905529103848395197267738061667688155101519980469786995068840469753024098431965486841507184712700429322213674900715059081578697386156511369021559536789000444736465711641295682218855640378709272124541833148016285380732393966057140719074467838970365393199642899108611200826754138801172199170183660200835014518932825684329989540894801341581077164572082251799656596244993315753036924013939934161106100129001397916703632412570387101221166759581229681399667237047285709323848961594993914561690931991913048632737685106673845472576963414698309814380841207670884498472101519166528889975533439467439304543481323951257336423811904933691321925864519094523243911143783849900034483103810054330078378006151032478437516160715733742132645638115009503818679712903253930939059180455282342585343566216140237754763878267368577212360697702878622129678754719262490311949185655036198168951071539566146186766287063774685547815500271308334373755094633164422701509594366024576268463103432326017055263705158043910571324516920850524791126410425871315174002643386540894518049349989152131930236531242517340367627488325821094591679916515157995381281406057850386102551806632919107478150676445894552143455774806233594268725503663438143671811368399810225466152611392737636844637404006521606323594934016802905898166396467439783053649502233254194647730392073449470352478898246226109050507687849060652415442753606376532177085195144142733512987318504784140603823493332441752007483137582228820360456370165528232935231195005861044355775099383599800239980921462861217643569153341549970415156464522417738092680753229046686969724257986143177918423180581694078779428765255270403862665323618806775972440854160961027474717244210751800412776670178943876371050002201180245918274459875579299623158862365080978772590923723920375101944477881747712610239053867368120032725862815969213067059014499779700138459943923434125558650010870323044387048894173724054184796883125958690672424121029368410599899737220456587620120374193642328627228140487550790082837955411174159576234061003912842582092240647128938981929679445958943783165912473741870391397188113678158973929220629187912584888943534005906495792480437461979831815948928332741508918007295327426229298936718883667701677663603555977882366058008766870166816194308868979901924319700444881357494643462443338966585957002431441370950457894745678550944054545245920959364988910781392360424065921305573598318555838599775428628599109207066298523374367148483998714532468739136506256325546305787516581585855985339468747863881390282181249368557996203854870744698093528641256354027788263486370004478144593575382143985228813204124876751041141719769432095201469456796322482173334713483478743589923251226616368056791242215108082284965117787419330167694320817278831463486683587132836701899646819842004253404278923798685918317859027479309540594012529259222209035969275396725577802612667008438687049480874524495511163242250653757927827155818167967145081668432486554885699291231723504332094047642189235316570132870771413837512789333778216256043267860547792562140175751566711597248512903251881803605763784011076535655423235709956197158112608575097642630890300197475871979528142358336419162615700993708262033009751179882581062453651315624884409750448994657606755594127755983302946271654849451018777825970224534256264134110370826834673712795496791595719513259382225774615149242210667040510888233831160575617268399265027971176648611956021444865535361599907457793751767667429745439267773495447802494695151374189094791617797086161829833450749471712980651139235920122424723464936317693087857013412981066513865750656533649631722371372995690758050024955265810215274481695220619188229196992789439499317322943319210534030046053943133622533331746567314094812676938401174976658513873833686377171618466666570655620890944019145586645114893413956570909506628961734841779397593541806711409171677950441578397148436331980634971277110019633993721457591521102731251836519651018418303645119155008241148885637939876301846714533475334112159026054251814885613846037701477692084373382075614162523171544015037499332292025247507600889345237066796669329604531727803456794394230737672542681222647442222599569877544617185571964949163230960404651015617873877321146639436016204627771996102109426952680639634133776001073019106874729496615871328255633902658146954280264940045701910299693463364073876249886930518767773106939272669425911653768732393845205090620388855201821497702930280921953735556462157389756630242642492081540016812248211299243106405033925001711567339848501144045459911039388828939720690852851803498979955988775324418724421844161935957351192429513950047772664274546650235573953609756381529616060172411584314012649486310545495401933124676067435648922199678929741773952888064509073404397110168214462413253881993667805578200318008336735899294851652283975973622717937283309131475415973341021498841977159773151694101905976132138818863985459599804981234372587020668391059803358808693230197096187932403519963945902054811431725998402492207872547473326933575425381646557879752535140340558804870993719353138058799630247976008765463292584714629837952010185294191600393897349115898551499503789828980140071879577487505250187786193215148601249983516611826126735197240808123822849074471779992937236622199789480960742996152012719031250837611833075808493995515992404417399139401237180195982565438864100847418193033726781378874486934386016497736846726251495225420629716759061649706181130648244124751984738035577429963184634516771369472701287241716231903546142844770711259763196575494591198572137298712861483257024011667150244378546167053323006149433698643136707119755286530814791603269634560721136620118889615052228409792128170170147157882482390756784698174060546416842181757538907401087264116492826271578936166371487368254655705822701411666064002693273472990928099774845147494275505106044535401896610658863497869504620764243201091219767430028535099199708493205223657771297551325851800119606261336275951521697106670860081128644912392755579588988180518678315073663877001062022553632367605344739487066651543478356832089054336582034336532430327339659041484696943862911867402192641528142621532375210835101797110836690182253693017114979944872191253881353557177443781806544624257889384253641454533748354539667868166204814140163226398558254829461471290216091049445870197921498521476427879879701787455368188205563006844554492429508301985176783882265180815625849072358153824363121373991647675352582355213193634509458905841034003187989267013298295197837829418003534965955231592824787788176572439462998817218083028973666093864968538208953038715760256671892912397287332854079424777621080970997058506266653964623997847290092777961497670846456318531632007787462358807208139853433299262887801332455501153929776003880682007676968224239401273678700962538714872646292050090795216282617348407213719371194818192046942412196539634155497188128348755320391410240366964538100242778491534099205115490834681792760062713819516366206733678066637557680550586467401851844946993311397311282736417007951734920559601040633102496972502825818459351340937988666005314791439145506248118056241138341275041452929141753400522456198333335310458515847482878114203169185183924263228524010167445730252538958886587832784187377925483961171197174065787397879596859650407676030893027229868333635093125242496439310425400360787168310407557613141958095480186678588348382640189416739952608020624725574082608030513273848311929014641671205517001763191374637666246264020386399302088663642478579814153371669709556731620327531260272310784888368227279355324333232291465093519254671665342324878696472372654794751509922345477423285138319376389413415210227806020991649993907349907210537515700189565501538256070649521779518100740956348040224065760017156391416080540573528584912313240393032459095872781340493191622417216967692715747452055811091264427098949163602752490045361615516857451182164737931580613733901607299200788289437276090595730107067673845183117646398572035024389248827780256002869803571478609090134413326800512160273458872298615540396438049399309180807341267791574374984862663987779954665755241843762820472118059234566501169059071439141850703551877283335190884400642721820652269086095032404391462299741060429414099197316979211375695756250432307074067901165497091623796356634050700428089129711431462015848154101712793426734055172842003927019992765104835827811004500842832568872051126895352373500787092353628681393323288870413386793936000504318579476428349953667455492503253891159679634102570568760122562145928429153030646222373345752794507088790183062021384014635182344718532732961725908947411960988441579268439481885847407910502213693577705424178910253500215031212340040218061607227117653336170871499719841642505869858080358632680915578426013380267193977576372441265559345838099659203306170775676142143021664545647250059149501833495590081180261313143209821815103130118206238954725163898319406301480878944808553461299412990997671669030239674666371429173370842946456893723759414217439644532577047880667556316399876070582969974361078148173757753939165984717870502095056509560451280945656232054421500673977222177047189001928993804793580127231185530879212730473828370255628628050543840270781979355261368870409345935957782379372809822722065326196124096928560626361547590969636985595286680923728673321628379229738023848459682110107120071236012552002895924310597750241194342889465421991883518050880980875364185776963762163179511388828291942218126751401274533957484555158932976808305408936198590675981937120959517588817865713501246587693971989261114243655271261986591044596774723258143312113260179972958961197007313590859397606378895080080458169428727652861120821878017525559425073951142043460929645140596488224643647256047376077952160431494375670076973882702742738313588731356958516196065600722906645336419727449538108127446568046994808362303650808912363994227871968300817947987120160273476174337106730763633726309208331812606717723242595201229223910203608058165137602394060687332750095235539053330818145753536308192012415322776361143370979047948239777900880274901171914620881160736134562304781935411526348768738256419854850390611778011487975586213259647745324641229651964219967787804190046281054214204997072861167622914872844825719347458457290393980005524792411564849383884598332790037918583421213080617861614399493663728257742767949344933351363344623795753012918790284383794771516167603489881081701395383722648278745759447679078640053445921322319303955646751797760537447866136218316024770622006108583314489927372066574169703942828948364002910675672381205107188064668870910197647024455528211761967338348153808438033211673130412008983815931294021080828648760654861182477220139147416061213178100190155305608777411012703357213779333459113405014178535617746207009690049454203852456121746598255188611826827370328208259579480189428138640988687962020399001811814275732229783963303537483041694111448870278955469814956825346189548110729644096137000500696460032317964271278972870853828469492626417280415843341814020820558618271427042344611294920284250119856729935085465435472263525395990471364662963416113646342145339629868027755103406423269086264821572636005846273617570909866077561080559808580664275935309645213061192576855837594502834069463999502029116857479621133225172462278911255516381695091792229039537489135440678756388599636354796059828516879213141542141699517484975695801607700359964907147343595509749179196486812729787410567693057464757025643465179225636495326509985829442777683916863547096536438872585364848686154707171911588717188965238997603665167450531104912047653052897017041175683020892215389679061557253952019663589940530690492956571067342786325951555525136291366063785989917563157890939716482624634243477191877802343154176917796355053779421075086321771310622425477812249403526689938059631605558501235751450747046205074980826055099127131434406599701382775501497183895947266051494695233616593466828347629424306484201519582793101994435179554663665373790694461974557539190431021672775557453431894331714380218337149971130626488706639368388373791937143439148016070760432180170211571841751807659249223117326679277559215380262101411232286720557148074902714355172837242161793261423298553010662183211575125020696958259219898462340166375930234769234304980099302201740665282080177261085413785295003113156202941408456174088621832163482437521880503617471756325032382097944945575331979169677241521320034739006267004744654911534864235150706677351533118421175955280150204958413510199564124788156826866501544999939740371078661946106227409114659996789645110378471668091243559978203360235276389246730022926735604367008890450937324001765525992143969037161931357679338266420417917598983717075556456532518671511485988802030939811719801821766859040706862877692122435076940987129691581641338955500109606196014913902930034016242885113307645344786105675122252564212648728673210001213292892664941719527806947160759012016136499324460359719490209538039442256423512428897995206971717020532660312376044179933530866595115666618330722575607626402943742976408950688358663251115172591656065159216556020003015575025716160074581979329901521018333148381942486705995773954010875173979754244564417286560624482175096022676146290248674347564789773227015139033094893400109359067349669371387336887568553088877100022559975013497695914766731895794157956895167478592881568884431018891047842093267116680627625918861610814322991991865864459536656929377447994803980039707784113915393603594043671739870565203307333947510653347062502111327593821064137833611353517936358981361458508260235946552121231906221653750066347854756141715783112146538615842528455204531791409525701201160538374770375901407307125263880324206333673932249641493664762155308373300808409451080707875012446014621724653387391639030875692598475933964571672827192841385764707351866696629059037884169895939747604147186208978058012891857808568258928073748046973012413428988934063735831976459684258196727211918967735136167532421819141476549816364697860463833304055812013925699471377872653316065966280419921118211732839785537690108581141070609433512974263235639765142028015262017767216835303273318171820616222868747681321115267100747995469037659068181075771671073279301668386664950393393271519073085863417073564848646184544420516410009720221579354413343050689616050843892554774578327501762471831642925851944118256130583240027275234407751876102404180879572566354976100657667097662663309602936880468661017910994648965589651397190014177585226222329811135772382914111559789590573250120537757178624102628943651668818552366811503596663846139493381120236070168048486337307741780755132120299057850775245180969106168552167840730117800196141031050084990095933312331759405171788375396972534122335125713219462429737874197732913308328642317218046969433508758997883734891425022176009811437351119526472961897689080787265124518911010747852798586862400447463805793511167051135843055233620239387884696944436260385406648764214267746298265015424116266794804445161896577267198717462830972429847166583278902765105983624521970858263917920594764501517817815760725776800488736691857778380559766899647681909148610516573674942571200115716669839073638383555299528435897983243251496235219818546599274143301525853757161197418468210331124542169705783792262147486545034177647436272022955027458792463150261705364272254541971177665664172774844818296536937626056192974643666279895570605183861052162257456014838568337845063835603810708038212531802532682666924106289833523593538309525303890260928572971338154051724049312810474871815275834296573896532817049259729806394747186609137379124959335456904115821438365784146146202187515237802245241347160544972926698696794380266514142760111991520186028647449396602204378226919237196308855136422986913681962105090380253639979344113018925817944678933635006735104981009747128037831803546668455466659402275073147784319552566580488286061074326876836974572187269451022584239881662614803484284575762122360377356952191714745488248613379613324158408931128858680184905723985911320643514358710926558583732039263170518418356616024197397292668428048484509768319884230438725086877056582102245789562950396965007199153451439068340917066272921535793231037581950511295838557130711398796413984056165298528364966173902169112326477412377181023037267928455122473504377706461054075422691663950998274141594133631231050222550608430544270667571780325749983090063977166038176417765088296488008331479949004106328411823506266068863717707447493260529613702319648645367535366075780851707155290890296635790791021669947195453649256514289878334611147109050378668262382584981766059216286417434583341935978822067894042047738392310859879078170176125032502773348284312552173213104799722230584227937548697142317452961055208100983970986125878439704822038028884841104710203143630072865632411430114149833841285588495182766506474759762136933336309073217231390030636157889252137689321298111354458491063381169117664603649030589064904756342454021142297953911754070726167165698751948143346225359338099207787285527618065797495452396279463921294943417406720243770314621124408664901786578961472412705743545974244050872795785611704348292209884185412695884590011998321881688860909957335430243216285935524921579137053729397303031167383797842731622874957086510736440949843616096856246546169029514428571778538116936253348151711477063250969593364694934692395375602420319365974903963924269778322935681950500851143141637911321328111571358698685211430117192195339587186300695157928650799572301747219804620130666151783132716302053780529180244656784885349252639773427607287296699076352044407232599812333597787447934723463024494655285729770076392711027015059997290906983621479551920621182597518746305556113755398607811452153125138658190845979395372698939792459896416896081590331123938326116722375248728246804761359465647094912946456308880800353427258999515517964578370880023835367312491944597383370249946381016874156163350898435782605420792007952066341837795485291924238463514008768192663626666969997416910628752560564703420168606745405842513349526056042582052404542572712679227800601966512354636860939962504782001909264216509747813672114915391966916236246016313401316935585849147472109952695630270848392806499250925815106879098559522813021881695640072789188429091209119363506979291079592536292525839569403845904200334576257527813067401055627815781618283025907672927932290449084925134689339677600709464619652256626624478071746182650854042548080146801370082405072819347714555756047343101079200188884604778997265267259250851772171808009498056645114554750121427937520338185983204254339374498531469594904932105858056648242719218953008367825950439167067276046957047037859533275909459113219898491007863550954447022906814688279274803948416014046998945259027055023501924156775847930537758749712390466525449134380898865327150482892422730639302344722458936370727841321329049758877337353992966157667652188378204143925946994072289951565732931168331567103646145556802897073940314035863019772519779290674796803696879686318415824869580161492645084123675618522883216449612234785802771992297092211673374387082339254974639385279351180131078932956139186015129657254862385793201816779943018382374310282270914607571290458959441721461568531436986395215166850408376791079130822266450408642597248032242502534328146219317246918798503381603557359775449791776304195295184851641202752842146010684468248598331895704357169780836279354234391740738104701930233789674863106253786026956715877329472672409692596161880077857304553481490136293470841105562137823826000874442123458947049433952339298052457651183125704236256759758615198829350546282613451966039434517516681540029898655566578046773224186800478187282016814507822032436632910105683769747426881991387208892193203834537633400657600219941995062707722453446255470328309785460144722086462313564933855471123853255935515728512469311882169413322076533154835378512088116836259793337585268955164505939494549342094835104700548084661384346082819576304255185025540977893729890920276831155167184864719560774566537309493765911980389955795262884932517649835819844470484667490176484855112160197047821881463206167387799536750631581247128460454800197348304555507206007934491565910608532433483824786940362067354967674721508747781401627393571033258950155926425724167753588739387720788516688198707152111835675831250582676113945371470232009094682709516437833112086552608831028967290760274554648243055971116187750529559384019771014131296842166524462683194748825651471964871511025636999525499338215860513729647226324302942042853624977655211414306950198364545468546805693094116560070822823856912398211368897302848967235009045569858621345780686714703352684555354710551576316151265099945857822689514072154946660091049934879169631561723583719342133705907800305301093141750409865231441848195246580762996244943867061100684012893135878721920188227606426064548770150210312504744055125214225019106779641415940177088628841012830204354606416187345751520814730680571155874794829677214169127924884183545581702588521714412328295059385620287079800245610206872386950924555534997686752057719389031776788190958242665861422656755106111579800722440037415813600583564274307998046038473898734775235192662410715896084932204746304968658685375436305014444034354227544099424842442822166979395695375934017278540572574385960726488158650651548548658178854467828608181102433311373235027740056110960374010423844645244369220319764673572578992058877230697604677521334807760969343676413021038820088616250249816791179598115284336824160561100101911692249012630931922611927023786042035217227493341458357715327454478342693663111260854849906394368143851856401669064713083956051868464914871205039211580665571161417355093577478119964470214978924608125080411028995904787845241827069743843291480845955803849539761197502042216131978803591888716600865003569916882112697012879824233384855662211043878169989804593996215966761579883465840863852513451414089224832391261990148046066939247410867628716043737857828950413744952049623912163876702756965698822426632697019211409083224255258777899897480795684963819656411964634824004859705015422008484907793556450087828179638235698283795524775665398881541161327594094491535372193093261380304346220506592860713987584531302830937770888148716035160112931793952040376170850141113000964940605409495162744534679383451444221445246981407827339773947422277619746692488588204382524543072476891081625517053460997052206184358960318735041885038674011467560334981925108089672652373305959660309347729413954128246773275592324553557048462710122298872295345278781978409681805658643642086277944111532041517487218192455402222216968973567949817490593763334412894219347937934246815249772625794485966593873496845825896890344818237839951456161905837042787237579288560437195297162708116222430696196310508677941859357182057515669505610371712612036642756984309856050825933235337191471996328868673673605309680798300476471890266287895425580394272768182552835548851923528049331385306090084614814415226882992007442645821227148021284981454417168796069134110505155499267745642512320084559715249830952497845770419620960448668482738513730108271791959096008937735667959118763501098130758478721998738824823206562121883734191927962722213185615605011690631769213370391028554111055779226008030391316369426280949002726320497155278836153612823440389532298988249230504336556016192968250432174887996900641071828527004461308537590121563156060515639204713377060989910617987705503512159199802431452936580346257250419484703042827224425060109323205581822331020876959231071728136120168442283568595387672261765132082394860039541136824807479733070224919050600530727265937320343263908836208827915730783650379465137531859150787769979338623981017743780243099875822265875823518586075956982921694088158325589910919839358783994279148418518147472342681457429235426211621324352327727780017026973363463417057776148623446917361808341143749650914219890724786749497253458630284235329865330820370658712552072050543090042858629932214809036401583034919182137392474480142553030811746371122755086078816897708238413931697266720776995599674252885512875042717638259209228927751017804537447087951896000976806880864094791278627026738535527157153319807471651762572269661022355555673631874038778488671786434825148615491094183147601403128070779699588607849824259635787506525007750791168929727537284226863863261449634099567487176298702799015597942810462015293332091997717613913583170069159503167457230243299219811031628799616682245579517497475201358987621102675927783154071723777500465954143966217488158137710385267057110887545053521580832338139956207879050538938585497464344178274737692325583658691862710158266088404320248735057742766023335071934144432291566219550527026560328727217798136893311526283671465292939321431842999906437571947946300077959972057022492168417135976434814650312131676540100873626103760141345662005484262032595557948153841788895341940245843324382266530714524308436959840534730494565860755531477718725704412221598183133139179910776639692186799792605585652232479548408105131367504155821499403336674854152445982043753534612390441525528464318193453838676092343269534713447669003183881031813975930178947550834271094409063293060006731992733402744367554768633112835217291037375290273833720445610669899780859828424779954056461069348952315349849609354334661221141752344188095392810512326883954047101900069811748240281180928845074269989001249285082146478933759215064582153829090418937127444473860062750653779588080110284793712519340404151097156882895391967776049190827532002754777769017788441662903568935653795384307249274384234961413246828152892273788925410441324708876537845470689501268364180538047545399156065518560894309168232065053100284380225327976942495265548612593361151482440434419197133417592056428732768937565403060705723967576731504313720854626312918486937571187495066391131180235148753439586818966601962202023144414975941095190988930425718127987485497306951606993264154731294873643740174107371447306266085481489705917733584199799185150514145421272091378729543623143382877237535577474871326918266045383340272581193208602874884711255193877364981976588524506787546681466481247667456527091713712903454271824308906796075785165692192199153569972066061969167421445895611673913614879563432194307017394238648545534255210334024423944278022375227254621807580767752231960310976865371778747016542370107092890923386776650103922033789527438746735033967235729644059173076344200439233787631831802168123211818015426068073201214467831704626602679892649055748689528530610611051100592697537147395492840552007809790434153102326730614204566307944789033186649356113275757399654451828869938260672886295983645718625615098518106529208090138241981672801662637220176955776079967384159473288976293592640363305459473808207331630161499620636520838868371822290997131905774483725204396576114219825880070630552856002237857377352066277782049590705399920528244826178407440107052424938779389988534469728746490957832519161283326365511550819451504273937520915116282117802310099857118464594798631637852774186249385133101689073021635145643207629966362511688411176092119087289811670141737685577060121584109393116915812352874430477622801426755902641888625188226681086659100754683543710988345358675830371847426768197123917487838108359820515495694278568273092014451694957191112111872809580841432042944465589521077547389225377355745333482230812630398004950434292519961962884912762771835425132575879210255689331735005772730551884786691898473593603596938662781241957228229398134440971362347231623245240838921944400969494206730142358153192206612062383619799382880906808318721795546252145765497251108392365549487675784057193528955120043833286629569607189439783540912585910888089818329918770016551429091330577481497050481424055177058905392463545998348069019652809356244946757750035742217000663249718081081119349384097687484582421249466798268112306432542538801492028172229914693152800993589439665440595716585371948442177589268239490116504628932384822504895037811640254236808603359928670858425410146417767656188462170880243956585752367431689253175432131393287669310511447033084717789559228914669552265311592551023882566818312931248925632199689251671965972102504918569883168212998311442266271854391363584041003832242354140189889487299402751688517642030118169704219997943644604008642695014738989118241489182047212788758724059579740487109052238392896477922006451456075697989238025466279651264585737894280722869279784711475585925100506399985468858517143761639986335252949566037545365018317097299400783329517810297181252571023185233542048795021144515951802372128648758325282989032354230718718814560140696749722096986530227038451855851453163876835504764520661574860901856649421741624158948490843220779095375617393050561631360886055199127026714204812035599268156712044940705150587324466144038972986484832066393244497117792966432088680869004933473765397810680254222737381581022256715942897153560130112720241694758548347632917240440683004136863158214615710721869138186994211373815650389452263880639815265715075588522034007606491338032923565258328527166370089899801623357041026526704775423415256663737078454334751855350242479332328558761830975095970235522660751906746964744600896448414332912580315370007605166640323754817801349865371416664043361679567695979688291722119125893181978883021897971789069459127643443961434298261420257706769516181194087710636969309118987973332076780780256156164266916694082414031194555632085245172690105784008419511850848811975965404974184247466183484772562300028132871135073710140756646501714285709878042225516434115183279790966184766351275228344729651608024742612830846081085493363278777249558824936247760466759526184467151524423199707484573885161748002274004294961834771542330850815887904956844727207578533064230641229685752335193129901874037149350385542092602140224591612329442325095907931551077146175303179519837600853200282528249195987004939058392946813679054870828987215144575555426677193448636213527690065514241939854367539898791005658377695300554879876772998515560615557486035956821770889168238734787939733722333251262409627607322176879894482252148247316170223265139451494777464767005910644746133384242863468047702577197069307607790026759085474911866088588703930551277219898381046077465914581205846481168883172247057156858297470196979711392939764655804686418581741052880036946464225101020325547795686625747733266942493123226891567020630819163521772104809879944081608974060440697138559294800576329524304109904124682118291305221191829555935095104108684169585570582995293111859599115673462009806478654510346492674074972674787721388619970544133848626005962953360402528048030532656390316606568964034614056065266804343466234066353885968347366730810583351350786594090821071572401000805935242938190150978087596876143846686802218665922649209849938508724443474705581789976160761453378194616272654657994668696044890984197853102964844189343343950128729995441538777605544355193649825851699211394495292882637764781905767208055842461138572492517620416674670911048477230755124640282942296754651599318419556044013024251589344014944991475564786309481309267638368149241240519022665937381723496597592001415152224808584258431656368518876031112733827109126783508516119086931617122502661077731259770772663183403244954553978021395943435421310880448423038597088340969124026229970722870676016417934337779946491545840621663426632834842501353215659318187770549134061836579837584680406112979145479647329800416692535856196407293682232624884793458788742000074527901438432108733637135472579576991499002094946773954823100020825381198622526823287057467483932277216970057054418013123002274463718386774630645170920327239528141215077085636863347984083702792206542145289236209852732478602558063273098911428629902892027113486510193607726196304181590839641972398781013750221369571283337662112624719790916393926346982304101963450324146893892991373247799594872244625846122690596567269697273920723069193000930874993756511544014313650867569454534322818261963641890717934745103243777911618740663439555185758819983111707546315465586426881518765896865424456618113802965440432178668637649888268515751653875650095571446438578864534778073578212359682791298544957954956993749619205415431627074470771918581266128886329985154638461174273262958170054088248606532487326411904560380453566693613598250165076974581005964090985665423339055291495659077238100018204079940490167896991149468317081374804555491678241757505837362989890220961733509151307324092293619999986932924749841383220511199746738704961185877428475481272786065984918352513647483617845031712936523917113595748518931897997984251244487632730354366590847262765823644130042789649872352811490610910229240963872468701787737566146140468343994287883096369672240344624358643725393057917748746078496934267287295664968312160518464529741620468932020536142132493502479144936103178598209488637658949292164845557586892280750283858123947558247509151567978711224395076822150334417042042360558383631543117416743455701572497828528469284734891967202122311631735002678436797275199570563664531218218306726566881007102755451791175005817615369392094463270819691362155788012526085150709662128980586966953608670181154372614055256951792123119316377252502046537615524576044690020814795337496365762150378423956346071468846339754226120906465391769031427769059436239085140581346265544903001078883500275365794992002398803563473294967475159519968153379879557204048570370931773786330780036293471905430001011930181441687078606646698942534192868114357876660324456794612879885650052428915000994409425688744412480027269494370892280969872768330923563156399295641020652009318636434507695034613457964689963232390822693683085048803973619547612390415970802881251019243698215336279585111040403563434780845065339895814050486562238751164120628193467067747404434182048709293836990406788598657030409047176434395889400736978543830338555702531525795626773911255475950161684542277826307368484586839256129647104020350880547069454781511777823069797358884109189137879571241968799262283854585205345984206917662796760924046301158923891766522402550272491563525817601497914353979992685389282997017433402305070434055659593961405691697213379531646283483418452878241591712197320945195807432708275034949780592993013439084365068706800603655710762624257905124790287082091845793752570224693724205124979824874001962756282175766861429422079509837746917599939548098207898109323098468336096576731498443736325011577034763392230808463061127640202145410506026504627999631907441134395036487226607748625761372704875293844093085235977904966322831545511900152657648710968585439690122384390124719473652747710881519681562572003016421921255543444421346677612853318619108373048815281122578455530784718083483235001030072088496298544414305266788985585797187881889364753017890110783359746087610359726607380019528299667917866753638651970612141139696504984738530398185908531313578086142567390268631008316554099935332972016629954832012477841722975062771240944252785389071989695872900173681993025510795371581640787887805033500890303507899405465122095252805004482676462450034448666055532750155777489721300639423794918545094413121472561372807496891410346381908006134042271950387194333001182087740754980312282332078495433956741097159571673927825090782751373953961346925453084625470833057985021293399100089062526523583062271505514693615997987415700748361533234633537958027115002606370281075581441451665908040016048980774226793709799572474019724266971110644960986325991534857530682740292406122288995826380756271322469115006855684414842752997330212523478253048887411840504967673641621892748583225239961976598663988554309091318163965727420427320480240541841481800677921194140342005964645888684187068317458699365086012184080918848685869718052865514027245593623867726239729247627456202858891804594116803615778227339427959797679438889099705105565999304653841512647495709004715730384887559535797516133533458663313754468608345434116218307632162704625223681208500350388669190953936428844984800665219542028360400489595677129051107546596293885958800836519535229289405120786386317849362074252907532321863545618470478826403646482249489983624882635343443917384659498466501400122713936526904632986265748746223291872505474263214397734854102916783458025893305192885836816810245074912792933398816587409764856941280756347476256579070566778488654093603106221348761819488811998562365450887044325507053314984943153495270828640057900687331808692736222734617241792409186425193561920535882521647078141394668975459331606215340364266772052839284559690362972061538374483226724571254243289645620865331329888289754976897212306234531686731823825588341474417837016656030826964402948440209119196621560282050560564968739845851584087801524391099851809136279655840954071140834649253108372672166058150967437687484087626438927451061928802967438403691431125728722617944490486965701914773146334107386082956682058115419909368632200546849475835960947665990448296344036077424287898904620765044644820108648116011549364994809661156134676703065528906976960434101788411081387873195767738985224118336710821534637519769226126520602434825865267043975027889683010616033048323086421757222900709663502964804308890019435774365451875195913429736961788905561089314518547608044729509424261916408457138896263296720289711018551245700921092018167223237658718002537412398113863571293710408401263841241208710399179178302430256050664029385776082496777100747733564381878243665492361319090104674573487625307999995196040297209445581166294315607768864785968319294367008621109853937480607170462144270047841841936091860746553141491693056174357675214294105916388648691611294588563726016301148058125228886454549862039772789262630091938006462208900126603409073554029862055563952195853493083099737061081642541749610797267548566762615863155186169861788058782788255385478539705736858335386471854820805015122203509848552211663147705269406508383101748460798762067862695722590088409830653112900297601973818620017579819274097132547153427967226480498040819601966098592336292996438784851957514829712659047762511843696743722917914744007336951866929737518148862617024356288762567689654309976447777102197296382717469242043308431981495164373589008907705873847248331655625396879238873740505308835672772189503081384105838354132247606787017026668319550064004976396862725789704000260725586128411000259109082490603396897956680172226367941467959649915475127786614770334503996213004061941478881756049770965143836338926931638442773511521344327375492360214821031853257276401800733827347618626783796392393711482740602205503078504927878626422937386783469324664980134100174704794862775380427026542103003598344455013471258095410446392584387130786366540749586214233364864690965478392176125606131638093775349880407422261059405915160349779229140822708748180471698772718032854190429369644800368917424566592116648295814700555048767447103361083670875890173695067303793235934594531775315943796633506898755892496188811438518700579864687431417021610156202335239552168022150395391417090414507748056933404254998205354936624081300375301468867704027245519423630288398734044514288718009495374994916755537624745868961681123682296935840473252283738642668261126466208364018318988699078253333915394925236802654769733092989479531426052106281987009610430614212735374157503131824161730418988423553091674985350483095168978489143569633131378435695638974050446304503644371603345229484598448577067849955100721324395322441356541803604606508608651704764363551021079654417306631518009289150999149090446743192137588088860317355709270409036397413110301724229865823998497749858769747490158923296960584224921096419422147790657396279208122227379407068395091299961746607848161362330757199148582953776797331362229718571408177652271053698163947208975181854439658349617757901366376192491097552095577964369084907740603125774676170135646657903846520770010883499962959717426639673795504249392238607395490989389149019458565961371758481283385274145412606952396368009123447665222915294252729967644202290361429037087033938860150870643402685320442804377452618293614722430169687037985900419865963300939397772324267300728987068086157178381807861140008240047454714599164261373147255298960629957124510296848616207585970348174568178117489359879861612463526196833003300052154014651164041958840121119327159056627035948486733337946002850879632585546858349093729120391615054485587912779091723911509783906315622087233037681950074068739517596061784933176232747513104110473011165302360643623565245111858003683259650156845763289893706446129578422324938050754630973937039276418790900747979887784866829046555449193652386434307250104103874851109563152370607226120299455588621169032199378589611956810184940267044869836588595438463474717724591137490004514457853930248882214364973034178652576972115927983208955696919599685673851748209842099252343095398505942428216624794610532220790470579341724417908655958771925318222580850796289236202248272431975743077578095913270262722457973212673192106692794183916405846812711242643809048362561215756403716134827550818633655209852921902355020655998174532192657650767713402620206033002453664550439162406423837513483641644613559254700562146386370569156599756451291255434987637074430076041949981873870484693389405797310595098972218961966438891457218202010868765140998915942869109713869582038131503173326713215157513293198049794096758274826069113850721035080361174102117065536948402290491158287874988858430464949657625247320180383065995100194773849192649568118723797620067630549404462537352544216083561987502030953738083243206506549266257319823871727922736112824405085475702241647979061712471995873027752660246280620122080024103157514971838687084015936732171451286043932231198859594327631590223291803839831150679224428721163384856962206678431529249689976912376411643197493385684126179439145452938107163706169835591232650704552859349802332921579011968616316587664138832363500783177488980920326029167842071607558215291308209405848508929194690359271809344601611575865091877418928840241027693634109783360513073946696427473317318536179090301567085984255001414609320684811647203628241572458074392358220311686862918822712644759410758454471049865694706468810205984906088814576573054050331122831879270872813798930761791340778161436090726185198053861962323307155198535735114558841398836165562566777545922811650254713156315751767338766948002160562375840892082664554296524765693242939993696974566618798991943219899574863018377027314093536823277185857695584454970120839634073534604223038606729398044994446731492852306946462168675486858454538384785467590722506832109881306709052400792772321786602595304625205843682330193672505995066307412910586154561340972072708020992864663256060350942484163251077214168315802787968798809876237888055970115232830240259357340909293672068758028343215729191505902681356643779860954718089799780408793029125628461624223812130597485872428123767827748436488136682238708285310512365547395220540763083506660131139888324206966760951095694668713693774764394534898430493664120829373669689122849110082880148733929025931414778943119196322954303595492552536962454059748421462947865182049978106043923256492135813776494483167636809543027064597047724691753733319624217462878327523419720543877664636306513744406025193339769848543265856161232408282075669723879281893880102511615211910902561232001106815686673116380621675027000976245359181400357910495724149625768484875791077631843756667018946649870683987485798963175522906119410839312687202157701475530806469677797309250993303859083395554288799082958155176821442957883925534362937205351920114098421576522208291007302025072461326986151772506468719918770888326083438535705440493374357011141074669927730336838659741428249627035604021229696335574978730104966674968727738300474821329562477893901130988800916633091724475625504953917585741801642642352563012528158179729177066541505202572440646504243236176278076015276629535286804243190122847632727131035723504117083177300665524732786364383078962023240816217323169935036067067167557314960651773144640269708106892955985465976488164674823679170495296043989464041920334029609051716335103671795293516657203422864841361541492339194150318875006253136060042121513419619785252089315431199546035264000335681740305798958567147348496904136801572408276075105791171480407992552958152548730282556444301511240561238496397638748086650145411565364062099568440236106784920404425862742908567174776546285356855105148987487045201585966310225489419423353443456086059034450739680239888127426336339263005485692071876969816564340217331107533090131606792326028115982284830781333957048053793894672134722650302675690863086893512025156336212656199044474693499300198551109788002064210272007185203413153225492738172772874599122208906872835949253685071381216893154117848887893396014449687623089429514608693127720514144633488453149086561473947537783299396987477338626739029615779283136542919425014826727499294074722271881662255349882979870854205253697989395148890799369174025594859092421760146244640130253359269917114179452452824109625933534189240739671818735688089858312549343304519973918731861968430858223962704748908651973328700675640801220333874126342294942715452689780188785754247048183031654493500217467883420736502897249978878211749374355574838493724173558240369535073707121063269484982470959736983100924242074213932142808744489270061624964637134969577772045804514414046139790294446855280030241894085896048784797106638547039425789489968439272514285102914538865656391910672446271658804227438767554034275622986005494144768145153059967948014836214075286577042453752091955476825315931136982099222208876545821375186085910046045595120176511908662644551665882919112689719221327238680994790676614025931575796657834930958227470452215167474367639040267230953984148445743639746323647630445672134192924168339269297607318859842716586307167244277100217842602424589969277021041452194721621481495094401918677102703719986668394079379248363841187784339648715426021909506310548460602255289140301937945519251169898982950322520433967907973605330230847153586959460843920082592087436703072140329071773055162024280705587668673183781872753923086806795773910123168804392047631665521313845660409838899361667243457513986601288654553717130406414226995834293195152333034248557086899231311081906946675657353927676316044974260225017654908336411355788575440570515349548139554629546286750486274993858136060035282323447924889391169477539146607652909917397584889772626761950926698932509436566803699325473167074529874590460889583943677402291554876151416949035193177263493563190200963143858587012267362215080527116953117345762956304561888781642010994323919463367541598088855583533799869998051522236885872888271534015810662087677606936408351740938225510977635459443520051979839873572872861462690920632910320829686740549762509968288464233061795453838668912543956070362038273430062876410399638201811815567122274120851466839402520212892517590645910166550695307683141795976160670003067440633929919370891967223205115624781246345297990180446620105405638902590561248943838621577876315727519525064653589521211767884035421703331275714866312483607580313043160044414676903322341546371878680155240208280456392119962032734262757209115800669335481943022266668485609601908454850247771574910962762289805204744747862647791723468042023676904646695468427455642901356165270284362754264700130965051588651108604551542939889856676371188605514113341929873346841557543867168114685209694792977737984081273942984793433940646145844288569837940244814816022583416775247187789285626487908785805147871727602123340600929191915521190896157987156784550811512340780695588630633835642226768124444826306511302722963487156220530538751110391817826990958675774639067184794279897562204075950318352625124865238053461246205636901221162298632369320612722908325961032984267629631641171663268666280938868117025273378542761176030092716394501147196878579992250972481628044899193204397872595748987236144745672114457742370808903794067273175405194662021222186513044281845838925769160848203152173686832946498234333561858135885175159386462357694981798141813135841466704049472655464286871351476991757190382450782584306617390761977168767556443717170557231418734267824891331247633089905773528536266471702817990638420975051640455617881800823168295467729033272320084384402024830571291128764494246783221913242111939478793114830500182021323685159943621071756431485778875776123279191321491683191213095184634663964243698276586149906830304648032595046685654639591587895084032620336262409580643065404569136899461369127526624591245296662379634522882397405965193810987538171846562200662740652981120404870849355470415133968709372398241877922010199833747673995690751434269590007716277881619303268531994167877825147432813514728339034381797421100714474216461285362408312615722592088573884422865914260305304700709725505321285682198501013747043614100471386604712718574071477831488049043047868086676992124218477898481092792556510171657437015404761760789320161688337256801958055811207695970903005191932488589394049934374876606921142696564353713513131784660984031298390731142099380126170893763810102100195195181544863359250368319375140870693411469003985640916219098429692768835899757198279711330909937824338844526586934108096520833428693843233291827515913765789784742273715766804382816855066923771693632793053212705974019705616449606017261909430211838852745879322751285202236867955717256156605137099418216691013643343467186178985557848117530357346574218779264764307026361351048036658337017340730459786471397757133068505799901204664104376208335553609913646276961566463035285830056247239942070591389034487450112832399300440498015010413799322231078956468057087937484692924628934897097239013640901375813729862541901948920457636258382917007307148777164181789059330017573222056924538900379334614219127010233438120366354419596499830949593639207877145507744504570628529386151197156044729096365297028874848829582298280901515695237639465381215435568106245063058854691916406067369475166864233275476531375300771500751577467220121279158577218845163122213978605798300769366439007116883781375940353743069508558502178602656141435296159032796542419547682500266551065690443851472512708921454811209968334038630343759122710859505249433225953830424416546736051816082799433302682195665839067434275942892832161924966024240755271083523450613222965095586023728893992661426121317882760842044409782547789060242020554006536243113644295177945529251515248390539922542349300706879369085717664006948117722860335709309800616336964399298418584109397476534193037357252190005355852487428710525301373979246962682332008597765445632775302513161055718534449800293188850056732124168985353368871335486367584280371327915819365517417711415994402221511489287345906931970813549247152496826830018235228225184809881078569327080629039659482858322149036753704900866823083493732784313117729904547691318589997190024454793503096368867486538496170928848278958224929788705356309983927940817960259445824072086567917887338716417869097667054940512335822981969455580259380277856639556558817018791011354875406275428055312655639442047390988987616451748246798671321989173008879511319558202530093460109043273116008146780010871982767017750732651324075280389623837421154579552876422902572059967119660301133097570774436736782447016132300832146296545699585346839689691466649044656656884427604497992700799273779865393982442595344667830327335107639137812026117081094806696258174495604775993703427798238606425118797858043888561884675928379301015465369349568581147128886787396188394190882434717521485571363888324711855110058211726820671295071605947066429030365263665067024598653250033480658008295147115633076852208856559664530829675483181123205426796332308176443487580775869697782820104871378669586374424661305281132043972246749516224707764651509493067096434977018564063978981179751358280152910191892574421853982808747884658058315366075046275423298435147557288313010544615818727787549663575352964851088007295991247759296631100914828706148287765075037174494635041548413340606398557164613341867943034103582151319025261464499434025417132383959729220940214987639285813874631016054178841496870974067514513603864392989806510496924228022627401997381177189276625487246194623717869393335106167183749417592690576166845679228157097829030996136995491101986090455173461104981993407165417047333415491502698275156696468223174103561095117802982110050262101450307293770510821489571585521353625912407746746414749822809282660130185149579483167696784933620425195496309202124601921909324578808908709294638736206068868012449589832219501340629466703780658066096299765234620020846354200654464063153945216842395608726542565716453059568687204346817386271316670589927533547568790620805228478509811356964943727802428483449938797898433919878993222595326060734368096886331545655570648491974851909893845256646975136650909935227498809698103027118627646642112895791147438622945186708491941676255100361230070229755575331579235757636142853180381717824966964590065116218634234484267774998077901143791503554721195979781935788647464582909137015861656985031197226003973237350646391234202752428834952146108872561333654090860019528751153329141394228079756277755784490413896801901559177994383900678274084763815224755451873372985418551472976000985754329629473609654827562643081674094751008497486350046046783316034238126602556551190131676630138160443786506487078186977816579541482569899471048040431459353393115591705624473861389997607057356713727851850252893518751621377590208030851540384483631372748284275576563630463691349903340670174822699505017934572657083550284656569670157227515183818972334756590127745125007995847678775801052191922047254797483337753729103277724326899735713826112794687563700587911790872074913952896971749798687879971781231550941956491383107796378426111365405136254770618310454939150245244650158031458701403160346483594912496024959954455678571632691237875672505449316017994533734806714375826177460754256080918427631910043821985952540725205392867067196617836641353014817073094333864021308456449203469003498316658919687355005767162332162122894008372059797938301487346763217969491117203305991563484720016399512685671451082444518512049457839914154627045735964628630725501527128887477593969040795413912231949026458606274372806795417539218222412912765192381911295873513586829135769461704477872950348368740899611472890074600484570738935691172969056052580139092359165476846391464011688228019701137326533993518121130239264235901598684583694324798574495613605491207691780655746404079618375439796199996057812552682999547961493198843297993143776615427142070375282128735718069495503551030728006266108144461697373331132091817705785289436022475921632632173640517738851645530337217459157788521022705802799756542685186750068618194993487184325542019112744510692434445393162693739402750548093279159449155705150901304327113662019445202511143446851695264268349435691254194158364818821506499189685678702192855278956798384779261692052942018462072530221383816438255832814941841574803255249982339811140605816232031662178181898450584360302207699717864449729365990113446698940160209635093882471461974948926417272151899179067627573537930800896185669270347922405656658257603271980866375454829937522481585457059569074885853355660566459423029758135053942092208709869654035805806780027178535454129949272427742246418284962393813061826518862013011898284646408969303654055017975323740526395169602313987994290401172145553816213333346704705675491437840466283693226042327964775756271129708674720700420127885752601539264830403432848683683383176657739457614528305930956648819700839722712508525232222656158571700145723736222928831400490359417205956794286527400620534155497926898951985646472509557553998824048345229723596790895312099446364067718894889028860466201250922698694787908004279364452334068416297881771432546921077827908143641504659467681526164109301151327997901132966178347611116769193108788197751108395898165006650363711513382139539704250665504088548791511976866931378309117590657696200119861716902858464470815809045086126681887778920781881212006050491759886303859459876235357656563239833337562245006832646111907468991173288345507269792803886117257270894268370212515238968311981158581842595590154174191380766384764007158591270279544364841754803947875563761238239497105120650783576475665069577918015026760103728522964456575627740132162546472744788597172931312936932496830238314642361715362457169939770549911093258198706598343785623521697802502983005180707359346661399370319028187351100267208839173433071060469624014317213136867344181265016517227802734468385665228188589913281325839331829117146363588358097711145530338016293265509208542554287460985315509608069872626187577758443149498040513734307111294435742347205857025681478393106708460319319545713133920953063787923716998200923515560055851624044972740603883601711290638970182052803521390458595389904386761031983852715623608530611845311814867818016316394055119740942701227079163126940391875548826213129878940664578736429644744801038829188768493999310995616623837139531991372084001165133136800159030427188381488499076915292333932420411760212620900155746106950151151418167570777561721785856205265274977154026573172288447807451795619228468639212918234204798864383419317755465009219117414548201569809326516329782445043832350087488979990261641940829463914363488677288446931495412594622799956092284628036779365642178788279410119749749219482905660650572038759400815193395708590060030296252312345138807133592141500165049679332245626664492398039244273356326065854913358039859315673249266348144349628718627809326337276132747462156074451218892799182713386569381283625678481558440229193572816295487584793938212924502530473061101739896540361699351608453674196260471075549812946303543166028661488959125012868372397594169664088878807401276875100019607187891170049563330217554717331607018027247521605958373672639088290579283144073232873317676080148967796500851028174888838272395680941085678969585207242857520199565284782385930018382503995402779867163462013099874031402903981846306475209147541461599528973625503121565135734117426664881848404728422379465664196849726160418168836720088019657150724614622413407981426540230224565850470550477972728770083586702953939307975995644353130434220895482579751973067677708434431421330655250249641478091077028484646208506283326758711382391301896962687014060073712681927134166332757614752451550076934220213769738473725962128045182789555622167056600962454265831018059949026650946805886634364453597150069139138473393428867917457484099102954913885148880426027489147827994939204196654285790868769031699441059488495392312702316874592021908922117130616544878226091743316993156125532628263399938509491001118588095662736209271472687486080899904739812492083881444272012929766910608858169544562183269554869685697358901535363158733463584189047325204503854130229938769734698939717568827701739996644070109750759412158179256977644433634223752119494605209598409598650718025932400612888775552641241956767716477486387909470495186563283544742919955694993081751632436197325692223787886407404476000137923647212094344867685354787378612558728032795833000912496433792325273800592298259944435557479369302283024754187859973871692661711775075404458406676293930780053704438796121656544799256059438358068543994368770239816851158285252758827558067935284375043550521605981825582199337169164782472241860828431837263653451609128673956506139619823502353765687946019547070072852264454618603573368349671469062661925685504388776789739978385071416254997326824898285642635416424758232115107142943916234045754289657731680077530413482353939001980360477480188609533216282719968790233212027026770809368697342726551193400359132450835552047046116724820602755955587709822077159502708654828315484265736604253565734215255739022991380760994994598419476990438248688342329556307775966557791503884615799471744034175744466610235630314544163604073608282437989448281333060551424931684656616624360746587056236836268979665024600682473131140052864297797489815302995268237149792883689047351195329572685368301474845065985541506625124518947247112408328863938068357293873359502481721928074305231724691180211245367064624943578310100402260983303051174199259104166818021239799088566059798912922786994486281653599838430106602073762391063930351254339103213209040942074842917770883041627700290863986346935321732620852572625219148320470854031823577681781214870213426827396934995287692433804187795433074192647317306300032664610132043653091789551059712731252942055975354757714188004937519088464951490892538894167755156578883694819885993274873183396406678229474322118316872329471985993395907868958379085159227873888786544373564766167091267708746147089699883192331220553045348384920382044982551449034431848807166916896615546389027486827957856234340790922495282961466554829665951411362487104630917089555912661171201126159811969180575993097412728285751376237734935668599924573491643469353662972068388347030792769575785050351611322023885052658005265961047776910355299331213946487806562409521652829270753595288480133601789546361120915506318464868984831419269678053358672872444847446059812948662187974519380371222383580715932096881935470440167321834142711453849175786995297585182315263681015241258414956939068062299216514558787348014323427267542162387629852685153226214497220656054979695259014853773807022437863029042583564184258373792690409625186919872169395500999019969272520090798522706382239732095851953519916673030026484517444529778889069099104221310881699801986904928541915920386358697510306860974177524136846211882116051414030696566422046400020083579816098824302993183140232235832938511598131080637707613397057020164928447131603130035631531938194627993617233629376011651406556961351296668671033185882985854835526261879319885354475966781620634650663228863149143568090420313400629352041345914492339990845718789291221831755884992985604091831006426506862533915873954786341331319769469757344915710753362249656655022029276152356471702729168277474179471589248773827829972306316954598449868317005213903209851859153299488453263318842828777657117257782878927388895373775104368708763733802253153058398842641761625731032745518392639927293544140778604893025471403050508665090575460497706187241806022364703718398244571740910257252851643830259256553227412348070656360072300239080284631835265719380905318438202441089136256819539580301080666316729718543581515132673734932842800679807250358842802065137333499465740488702449227928039252568248110195795941624385317095667428299305166532695686182362161169079993633042138449926413247578818011795967216386233934443994392880362264579410490108870023627813446696377183620525732623803156268089294041823169222312307190534968467988258600736464909032687017073511574593710626685465925047907079496325253848331160485178194815481619177036432606082408624888682192647661916733864880263190662988274757812757108540303194724930228370185975363807965003941881799022501327656225848387177244136708230102288698386141944464350409201102420651551008117249336832134704365198426895134277692673470034174884329653801629089499190809386133043114285621088220432203440532465677287381447403968530004741916750339833776762064450886313171176170252621929573839951001454718543583472583732012200047808242331360950598627309546509344239221589215084447413837518366479461328476202971494082852834657580733825468906819154962254422222756077405349585459824448127426383957270916658822160284504240340307539393590265536746588816250358822638111605418489948222215684184684298811674115844941881526884190593061101224002175457208919598872291985155429900042206509448657165719339609017725056777583247888052545842977743645501960283800205971494706036387782317101468122287679065445829751073809267147990319763635237415073099196219594892823032348747285355146792924328521849793816962655798731521005334258715111881378125868629925289178644029538148945183023505874530167191481806316130234322639002099804744271038552182261505781529934816565538800272333786255072751820953956333393814783536492504444582198278585182477193737923565422343321383772897793500373102935486841491352737283074460127820191434220366058354260755090226561768525336874329250218685451081412541664246886680936059739138791226717819396688417450008054237788012838579571115880511299791255684964770844345732377735538921538772066068361114758171102669951092458446334974877413645099140887263597368639655360884528840694039305572732985766154896999313014644579536787449027065633727149652387847726898881431095884276887419697114877739324817702874305783274502820585951768862296634382153690666561311192171509804793082689452337820019937148622334825510734138345611508236901667686427427334043672036539112457836874059166632881915610314799831859127135716658358591088304059384020002985273674643844845816555237492317828732582977663318773086448567174605175179051064539419409869297020055299654843506834528854719819512077046048051250776768839944814561558127587799142291535608009800918853332120048500749025898411410887143064931691594507444516848502097916865214644275502228852428139333912008061788874446245208791351714895175332054024388889694823524214300013532233242353831479214461320373648926421044643401644777423019230160733256603456437661820274163499500796909175730108067473978141861236517928050105302516984793279317427154233856864243912270680501440190609108231088297106550067465783119212180720309957710440640943177416904235654912657392939567210078854026626467159094019387539897482601054680933409241258593609330435778404108766718005946710108502584777608091983018680024307238176623605804089631235757635768796989118388562318498073565335407984957132207538067847335785579775486412465327751304591043558826711176024426428825049569585189901498898824666509650571684105836852555963794238720740202647320844396483126525808948770683337445732273408698514420243505875086426771853450578282534944614324314637802211432261912365031867533072866263010825871403489165232013581334553162956295971555624809137779218626166993727032699349172848894823890375088513828057402934886643056582995970120818856594637989819696793808953829945248361123433760678384931701228064588913428101312660200993485994411979745931333125747697244439164910591907567647046628333622326170343103827410528486011185068453697850303472527607768686148271563938516639708631227216643037455025865329698307235014690844022923915648186997504948470403959202840227903819295332143029156492626212826588341381019608733092668716828183711706164838816958506909679975693975259425900158638131415988015789343090217849422718114857682172277745857609835124414491433840654231091689423016984375626280931609454917745467656308242546543800953506380584593367878663795169755416761286529637721274011000090499182467107557468342576005796094843906988436709503036736392749509420585589140886698962399036537262158262109424694957740085781683501495363772030423869713340962585656542180306093656250524593886546068858570232712971097078753932529832512872638074141558169923137897541020186148907237001546237557844383927863300883737339977691815452637105131766343027466306209587197798834995955756218584178963908296987689401187856560377896411183040661285550563588369064861476357825428223443481430725327081809418330730059169001865897011976685277113802162693521299177652256166206256088240994564036970908056551627134999929747944709019724444223259221646764446745809963661558681289536360091864272360280072867519139380234067356658219280657243939661034974745858239841762539984319188263884276876117018639762478082319697070609491972878082131704452855358676444236702205671782427409057345458197468419818475541409396154070461094286634559157748780936376423130514145435613270525994706676576796003643941022661056238380435257986862137925318544006910228817252283858580472402878371276208636814541755404408601310888919726955054214380473226630156146716489849533632306090804174560696563806272450222802696175019241198079503410573331542534831119437155438352014366716000142901078962155314155038361936259042259306078699074644317077257232148437205433069874532308234276626405741682935428978856215555518132385237514510607232096957184197797126748386418867917710780560331948183992506407013607006474488499982564949456559164997863245373420989665853283459357986652455634336250107756982390016633446435629749651501258429363701474445008355807043722965936502129763581338335681625592000058209101734463469084892771089764943836365149772542331043111452726980563277436023624724791956202215568680318238703817965063763163580412998874991113691782215333376097484828503768380184723083248789551733185198357351217187043985788757627878430288439543950530940527439048153803364422794768447225353702145967264269058333194846509777300658408248448484267019708115810639941623942409926687501590979152897815977058008203887540120984131696570918526918417445374922245039276964615621029765690426407847756177505634076739369724220284596279959935090125165074999529270219832079423348501128183368878368383213888288803698358470210046717258679933047987465264280631478885772241915952816569686070858382669654369854249761153402842039171504506521950134931037503441638332094272397291255240881273856452850785397424755803168365019094235371012591688028614783503159941478785004854266466380810885944552513193598566402563304550641686610903757716177489149121511884891351396781285056873306341697542963519482602329084286488227763773792804178751133491347441715168334401204181448844300289573617837024868950235607166226418934659010143939752480791803414609384974490402079957727153341883655846562087861988975751540417587940975504688805882607064400121229147972150873852236998139647132349552969238979471891304900862230382725903059261075501787997813667518368559664741850308989661819974130394072271720984386597835570276122136859954610210234596725042444380797077210523777030783293053307846791021585713687687831391097282381232724515481127490271891115946476819436639897833323198311003434822607610330351322278161385609875757888921417732566389859509293445226514780169837677052750483106634550836310151793057021916289431021714457239410957288131776128210747972928397180158424576473468014632610137345730222167605216001715757631122643612536338917278133442410925599176594750982789675515913929223886043626633387926487762262393354406487171491813126458861279639609934709013848400993937682468048000801335418084747985210925530573102322751451363248987232888507636578630936163384017150866752494696330724692622192358527422425012336395886192881092624136645694911291259575929866123677584214124343824066701898909047327001765726988532146100841986644924058708730608100244053890564262456125157061261857597226651572750413926380845872029289206949097909013711488967011582377731196715307005974231082220964676031345556753951569897434102025131191128578112582376483089774102247275633020058618939617727992036067167706058545880718905160820923212586498983145186885250692509891775511243347724831787475694203926985147481489827845946375363353639288942678624047399252155632337355020212235259182450862705271559097008641338493914401171846719510172667293227417886468015720330404294547229156997199834602432724533574247935426550457672349313512277738581027727156112555482832884669700042765012386332967802479542560644815315713041822569395299069102561551057399721253530689215025365904264664790121996324635222849531106257063737354748766147244107693526889505969864510067350063767104788743448960977933263464270285763059291929452863941614535321058748961379294207429142239595362280702951523034353749160576512959586678352192217259039968125342823579516163202443727751440238996388740528262398087285351633706192927966245043817013372335365451004600438323891077765315507943398621324216845413179283845740845211947357118867319817499277693381467876479854721483041959690892805163518816791304400698269504102870217563099225609309704607839015081588336928032877531048698359409392127615988088383591591756079257337925616070175492885947894345979942844345738190688720037348688286389343064046037967512296983909345608737013146701957026244233630877565519178003233474043733660449707169751472278794826498862677467214152849348541051183259065227160057146772064426556463714188231323494000894396887870751338879520228337045589160658259626531495595206303265851819668881029533994210023256880061431259965514956821872777449896739837483532396779050173993436426446939463495467448943800992228437229124215045526100128340330236212004539992768946339182485686508861999290804760915641464444771128233104412912734286398137822845698342141182273637324354598993731661247255328731096366953398449977928869664489587449270090024269856799257448504408687134263024510503324824770506260415308477085833713593492610116690782448671469045239774147777872116715650847860693582452444229443302439589741852555613144423723819779796075581093617896485606788355204022079486457420733601017290720056202468945906404327294897515945601239363593728857086368387321077027730867333250790063057622352045984758606020535159175545919905222026998793672243529431785260800370623762209453321646817758116673159839833049872445585089500471627729154036511473970977057876233380007333947109612979778097451698456111796871931015018974275774255471396427679640568634761018322974798529603226792903675883290534846975354050588737147081563819283978882832652372539629015507179479404579216633132727072100728466829494573389526130344817134166083390970704233545623544694576669129166236104318363632224643718233860405641122011176366155328528821710827698855851685086729871544214961045792195334633787321011894416867936781891257016504509622074051598212081278135387889424357636649504355290609116971899727087070944517209953206713356923780065439533678211797431326169307907187458630383888332971016210973853460228432221838720919652473149451655482673454142801249390699153603106987865204926205650777974713369482254290465877492082356341285047755997167870495074140602089941330481108757788683274128469267551936084877247905094236798077970932217039774378180710281007169002516029600324107431778098025167607674526947115040566060917250053320779594144879757611270737353294555928039967980535250077737441887673817036250958293831463747503344863311308180549443079452290730259031799829715383172515797629158403684453845765814035536076694312731249754315776255291885223384527173951581720266152816817923244116793060592520318811397690417114892443341571558117462460958479097599840645907524675372657904194995295660607091469950151786414994936216174539517705459722444898691991732262957531536431448561177721032486570787755333566226893856560777587696328399678661675900371419701908827752933723312118041600356649639985447648328488895495647284296086319684811015643878584210110061666196035074262519483535147302720238619669881252439931396264141410357707813810096067318785834076954077931711901224523672821099571691507247616299104436359020511059320173699044065070773234029331635888680799730463297150120093850862107513873126338376962689480748265448654013606147270497312192405122743269957443711059217859331469575032813486967597608303812690865983186371894922303207629464205626112384814386671214943849687110708814323245493481190676282495686694931774736148712877656824872007841656949581324677679797447093591577739558313588495518292911939404099387162290373915270425959609969837530151191138892950701588317407043758948044137816616285285834344920829361199772215431814627188217500845790135673672290125840660681245567354302139810526406430290042954633907552399639608162168649402312183866038168593125593658070954670650452197177207444851604800070945178915620129707600026721620500186990737592345388592105094843746818094231508325858294230805041919571422450071025910374303987679278701748118307793654407669030219275905584373118905539458766977941111127771641743422454954091042770140006697897465493976505181806873989496794565964397604797999851925709600789648991366853285132201098432936931388804484198688000938762068418170293346512555567407691067670931680652622991002843865958698047346153418325600221544032969831413441109986363933687344667143713764339433507264840815778713591514585242333316778753371635877448864291788635332643517278152921350571793935650678299483369706706762494776519877688159794189403358717873978120824684444887855031151109754776070694932225899885439509690047684303256858088236465703503920644959004157671355833818389064293199731585521924378444666942069070788290235724952101546711656165307056410953129629214896193928115048050867330798686679490654011193816289162520223290785454682119670737545445792737784415989403608212446064947330670526362668540056423811290452420364431137568867366493256457017460178224461008225667180155316989657179407041253344367597789323141639414331528882140491768409302599767093662521853822958365198022964422643037411700320401753705920549328558562855987178484659641068515495972053810163557892743629698943594463068919475726777280881413155881964823871634294420275812937407484561358061483103924286392916900278737741147131897121855943416738142147765381465238451534985381802255793367749510172173250596432871081350088831887421432159845529848308468288237186296340034220596326431709571006024843184932911740515553694935033330840364260719271876527394362737390094226592960586634585858438666986814276668975256898235207133082412685301350682055279111474829885726090491117493886725329368251841491549485666113534087632095388702752450140608790372595453650340484297570914572010523435314225866266690743049059894297036546910695564911118111161265175169915570321812500960009113993551496140224681797787845572729386378932463185448734119737770401038990847311860678814582424826589237378492428208461693456883815095514821574308605240541551457179754302751740277104189178191651894558767370828841870373057050245886324079339104143392048476779586660330459475498842506990725276140513253169417619685656479483140957770528508743630724871926580600714444807209769064067261684802801614568189687932682792446038769413097598694581926456461788892701383748351061474267807905751308709270591075203686220661456315110438465722568092693509743940709934273162958332560820525663645985824244055347989856735740798315079052189773884797072436038092449162232321858805485881716242700802952450804891234245534671278429017921611755262915365387032101375508457897790887369314408968323608871103900639479132408266975385118423745579732714978854706443930050060421205101732919076370115731031021624907230592525245120441942938043688714475790634312983034339365772398977595266495024599442423002554985463671304588201368083970293278710152368441837194765958180996273267076856423079756221299552295445823443855340013974681868596945196857786087768133811798438680145136392822144754074615056213484080513786325242297439935588407805474072056335296734480085705113821474918193271777404653973785884160851796363588508811829039578031266007095787238437100522624141612680524096582690496570467147295390325116524369352622143008657378037573935983594333887232090186936912762360202874378283781320811975803598599148960755189726204058596905749073686339410730309438440912011253448704964338442041992000194529835151676439139170870224725133305477430655046034655823860565904368029599747559783616431279595742703585331897573115600854441929013338001958096301064173373122886183976296655690587656569401451561197161866245089785625437068977291645493555628161943447265055213986976130882009490853418744336006326548679744198384872953259484727367911011050500562494440093458796440117239701591609568947969552594084851785831270658452285316739479908298057477712357897805357772753157875534497431105715347782221035669398759261398701008885705601904472052363514393562591235943538697911993148270354259546171634732235623172602659924048410994341474594429352502926506496350554232621951654880374820309682264843668037293998348445919440626105023401354087839016424929715015950856944720826140438519578706642065107045955287619461657954846730830776914033653153225605325052788157058770868392544062324672170465467662880025463737963879462585728269590578003278417144928028839383460738161993970048416698778312900252352343127940135371045546623413919182896587939821214259901211562497802092677230661849858052554830408300973316794713835896618944596430915372580388826596282014829595967074362760678392152267447213793848679724753483777063753499417615252779256006529184662579504420660499223471301800943307588777140270523903841877453424568840097958799401844276539150253175358711344018285769833825864344487507684600732749647067704216899664893663943170173363747023283693255813344537565753131849388520401792124312531842274526616044466693441732589415298298342796850129168903639797497788436502102524812382568523800094628949556180970434824290559355188359493678010368123793304533972188213408039304839023998615600554070583025907373234040703845861684875210622760062255358076213142034497684213718445576517697929718926415199078759811288169166539184642486967724579378945771525293503963054393021283034090955843134960450042988863794066151053266018495180459046649288398739929796960157644236328924103920233479242641902848919993713990688573037073702999686294286672760402066216723970972143464437527329367983066393974826051024436102073815638119590904059758075632402533085594949115286012827104197808333981420714016477810949228966374465537158817466002495790998624597431984142478497255867864058523497292599949036866761872950842027951429283602957736574339975662723329454511201100213342358431553470833252078054847051679347969503945488593511295308137428591225740059867945497120854822836106358317553778451582133456281261601998998971257342093601434648578384022263661720660340595449895987599502259103803891718002220811377362548179614511845521317978433201584683826998366059969041742179483748952004740674488484604340044027579612614782756715139338211590557577778862031114296594118920796758446508648037821777595624770349718537366416394339853010861239039097012802621060610592738261280024439723754913232906274462726551364095043496711969224319620905898069836014864992961631152185477155362182785843062702509316168914294812806061990350407062870910756156045301488098608024966936303252954577511332663554059082220407332127067831699053045532628011283522697251640569280467662610884395605598119344418633463722116233811953578528820616198220081681255920734167267781294821937114933250784717086424930619443404213143680120704975680276885094809955309219533461277070930387669164231522471680587916695251069598012573975794007522454987793580435282857553122644769744051932858694175159524942379644564956247199038969241454917596232814510710023496970108526987218601617405043709422466974247432443085590265643543246484855925122088881515277464524510842880533583946223357482388296352218540684013303025831418314713343738321220608116128813016532588115297619822183967037476156379884581061474993888984590562683925705949981185803692239821163393184423523864688769801538138068825456248844724865784874322308732970363924010533671446239558375283760310842574343583428137157397178017089659790805410253138227427508605363470255348326942298640995269638500253796735676485648670070954397590945296143264650579141073924321898418063220356196925250960736186572346022659372114430259546195081029285763110746787432438263040889900516457703594669400741875230276009504002458770401321048892968399753426087745506561503497528213053926464726233496514745533387706933144673054090382509258569223923172972847095802705063199637221895850056272232106587123249003825906087883519661987713816719039628054623767519658226229106241755104476419708347805113930501786244336019705174002610210522288271657931095587980572878579284331743137950634416094722254547624336003503235100175014964040995274793706064427178500906108116697925038236356287329965238753391092149125341029665632416044123832170337080388135222772283702836791773704946721063402530629876915560225102950077914615780440775288245412483675408922892171887821277795843222624551679110520342122356393469637638493233930754836455476358800677795528912541530231537495235450855729105779746705715265230950826093198457968164988112391098263601475106323296834156784882102505492887004550775211270025762668490849706528919542553259682509645087344483541631560214592068215236886062740193811056238705709558908299324215512515121444086034458194797909637711242295692827588137669871153977150892689440550562538313386375597602111083983369422877565867078248268182052972106623486799692498532244767966634722283413708537049663345017000695076291501596509556158441614279682922876996680017317349094635536213919333427975987977109276053765220727062940182422351217505913787671915403687411170011039018873897764396624617209797597673495476911093526079879551067331367662851101440733696457620079009952119220750176215219753126093152184131547547973353061741192009501848667136214753482750863001531875215762538532691737845332537932017234411306724058180062234046514730345900114608629155488968942262886454944138058406981069521910821607643169827589413411817738064560567545059919420178403302040257415194855774041667928508921083012696662363865575347189788440134241679434936607215213504287605813185410298406917558393247646556281154029537188162205202494783692195305304682577549801497248522053419568896351557144765359521361396043623509426795476099412750999701113027897012340958383384262409057929978323230018043328070070621009980120164671386294506518241115433430254429874084833193884098302914625916137815192286172115918319713225664570949579603845855830043170910457542192434535044670487084067693563255353160031209878418089292937668734329803219396857528083753169220051308201610928022696082683010753596431592088136829392071628756627688822229274571606614020295335209714810422236137346089092784599212308699047840203809496060106648712265905365335929399691238384059311586516838989370443097413134434484769498314450690791948764813994601149145136367817270161756304110493262490452772950801518339502474412888543726452559319292881147532395662536953810149964030599535946891334871470075201262087804568897103339000355707129541530879094015937094239592141991786578550864683165741635235590198040317600560854559174727753012224860309876518719214117515772729238711702419254232373994634486714146730055944214631811108886582714735788371240578233772667802447290903255480535292617655777185584507107380098745908199699451115021174528218072847064574432509459625377703725066748111218489719809680555430364062377605947416953682316512360232383879286464622199284163481925418496822191131671016380717539246037521568058668145110929552910025677996614931877560159760441367061725462476953539458866371531322628278567015131876440026685238510065154288700272936539330557340821742471574006508051476013154275382649425079218805877884576195056500614720923126636875640660426050866164933871283074119873532616781276804234868657150208639012233550456928718238309373874838283434187204626477224556643209006600940359049397067473834970375655835366681904873330218591237679416321690702677345549109961899608608971537203481501406380479551023128432913969443447974198396913067209629128523416464890805164981883779285601922786566911937811257101067156783551456606930622682563591624372372787680283840907969534945240341330408854160168344059392060830098699926163645257272756626429038382080298519112735272277577135469643727195786066918192047117623603636860441786744069827597083652050354096766098454119638407929596820054308531729042940644844764339404624183037771811506626728946668209700288446339302107833624638557683674594370219614697442275448098109023413726697343892214353090303929626081752544472379721798510221968979443802548304295629238099466854469150756331727964098018206575964018264821008773165923252549026174657216968912860560497144494661255276327113188804665034415046706899404562849753455558126033552045175092023447984855163058346829429158077942169829149599182819463905175096737840687648005930124697097055853853343429833472447944551403240410120750254677491469822328190372875470235345129881513766160143409618848874784108738549783181574017232053845240370475738447792394078494354689899802079600390641695704583994170962820971459802231857383070793516899080104573757387783267547347793900290762625090234356390506985903627427414503470217363884832010642520438880121015217132170611296415218631741042610202877331441085740511048437755657475481318127393777435796911278915271054983184413080462791450850219971979216879996491457652402213439612236087288400009182340608178383841212308668485768528608031174146986572140503210043624353818303181060673891293217450438429868939086418812210530656195384016335781362254493856895355969506781596478707882771221302479977258194108931300513903712793368621550973597597740751268161562176072770944443389415094922391196054001991916794370733018042059254156650391884017091237256673548821999805059285600731983112979320254586611924820857979594988117445521300680673370002964035410248599798338890178656816305330136486625153887385568806271841185852255599110620259304433934928575804272595551160897285773730662344522983206986023559945370155265392034429902707665703826184644658859615798935278207175758211834806015776974263504382982215242384302669934164505059626400330847741044404173837570474340976741675930807919257559068709185479757701063840315847162426335488710901043879401715566561947621588303431822084345240833732070407453215047199218830967714217005466997573866855607256810811774192877993491082062620913444801258987022091070403970608819709581390229151978171765210324653097580370777693404108628486087081442776789367537690251592685738781042746069881822954849778020275991415318002398017309963799944891705673201837386721684241223864096489369227516534858139698611698093486823427487643469488416530920544328433191619460369971443290196387921863812298853696138747100089998618108095337240037584075722504901724621622693540703937369422086925694593291037471930431807104696239947781830602055850433791426591640153106430293008462410956317671336030607929560653215531881932706708156207166538370127963346021522430586649634793297969814061147750649501235256821257119754602952240456043968503480581383795906062077569286415089614955687066093030831822452791884825537367742031281022574357931762830255784278153806635440463345469485699175407556238342560384508285756411145085796090428045150021125814673364825515746906756904177795232404593791900630759181388452570469727997286284649885490525654026879485444075630265327268765685832651034981894475272805084220084571833139623891542008490650261118370880558237426125023339575492080513646755365306197142102788144583149494080804753923389372399083452579030900173803752317758621997340208354345073829066455161106501552758042158601495380719547287210372845485126272560900324856510718129266501811883839047902484062913383570178573361492148591335571665659503291228545611914921555541157053441125349414153430694001443771375258654884579966237500415469754012900455883691454057020463052382064601721473673592330721366635184741846127413255108466989559864611813050387584146985736656492582456610469306174949179280719951275946061742654035549133408855271146088725324076255886992082922804639441541385035037969808047829811621740962982025884985027911727213347867297671289117711717298402930451568284441015409224556644067985485954154101277167498087267469772317982271404567945782425863355253938359805657034187389452025474522808793630241005294899678017283519795731733703806102561709524919746176124300265097552211903123053460454948351191689831970199545612235356130308738203429976808665206397959590139093010625041030224385256608440142066570424029473388028130955379640470588216183537026226400172211238206260960850518507782798742785172374403199681391648946785681418984781687228606159260565373029245431999066480595954644587761054050890935125105797349236289049662442992559722524989700773263992022953015948954941779824322146234255085534811231226145325846125247472802278693662645984564376400816342601397063808924916087142780248603396602376643035508519459842453597990784706740837488984927328440487423422160770510453968819816964366706010636043398434513113624910810664878435537902086954571674889847244315308214858612524591846984726340899155078377697857998328553538404043740444581228724981746018033441535830581237616528611214196613895769140297629119242830582016652840426186149501097987984227912641125245080356385464267712429133099314783720294988072488025617239965643598330169011790028317467185970390395781525429045699591451843828298848008647860697143136456456044293057119982202524320338334535051689549439396392275650147550010622538932660636264625782216964767981524488060939694794305587086835519029431191722546233046907816465937067698234387888322850507963590605032536281898226925836536114409136740391547528761516818794020646382539481080940846499157261148537027774732679983150466535483204381174322501245001991959623608980125027404654125657198969622513871450570276648810259768996711101682764151642989059875889062109140704376701570797534306384022572882889497516116858746956236583528092239196888300440184683607608822875971907943774722398673737379893048866897441550494115715704535470816076320237858589290925091032348375030109282138544526899808462252137309730304554505503430955533032745263564487767567602757567298104599117290387732154482495658680818174390972964244354556779861888126286417365659943566532521823651586225607188385672808565001216261854946587146518107036229387371218625254778996141834820667224063534581855967284422035235834772315486533507864412254826946268947188095456343986876842310013774020990945007124111939972958966016015003277820315967412858763680070930111017653371364770403678066981937466881996216876818573940530137944808008995600134902881983014893564209599337942669144171593430859702938858662199358754855528625264426965390592876478535518705276575962783477337592528906535618147862698860266822619124544751805052586535456033917146735914268873323878236398385537864143615486987385769357013537899633682642597532540216006859537628467203821965218404523876800723515285238839406275006264555600471120893874731286231828898103421700148031791547094829095155181292227026689610171129052970341424240259312974446910781685797539610177593127765578090472755160595385724588647495478983366837769844348556003406188256613982661281062518220008176368189227720598905342488338594786705483866909270948635793030577504925096082123899563965148821369524232998682606907291879641151323777107429454065200243529163022534523446601062526917283635112882195160337630984560688611215370764774784596437433692826654004410883265737942922738024450861232461450479590889309245809932919994285570654935576639169790773649262743539203655830029644569305614487971587652746328475534483998696348209941250295108676319451425374944284845899077653482209334533513925082930819632780674462767929322653505691485381283165468135554689895558306687375700762391321038281439291193071256610712845157924706477213349394408671420980026951206891104171907213616422276022132380039657384887282027104095664738624401504174582725722168140876774019349557212047469487090713912119076242989184777796790982223646080627070435241497013425700726747611782889748509559585732098184761276578346084343346898358414872146875010899044183739277167682951762437473257524623443254936809598859462562008835268570041669171096694049491307971768495070459602472315826826944031360842918379342026093461229648156809727413226123248347930794561301756495485371667155191921233713700435435761194463991659159503456388941281034597460279286244387019343444947188400483311736676882020735730419039329461699799039979607805806115993296768834011216206408603916379070817251451242729791212011673205227901500055554950765953405921984924533146850819785506580225020543616680744876121203824639402039206075667507867294689721577362804308897968515557097667241064474365661484919288787841086161518395637712514366586900205987481538537964825587738148730625056285618029192631135828405760676155759570124592080142442200906289436895732815305580861520450261020774188856394959788438396476401638616653173844112502923289142787758440236854336126009193403725005970151223219399287036190609089538396360009331469175840621828855673499413802297223890007459609250400808904447483050665841368556529692128427682518675582716596053291809636044801738911767759854315269131324063875337453868404211181553071306511883913936046604830807684098287755046176558242400331291056376022758016447809487305232743432418037013034962857174365684880746376887888598964466775331154952271374507074896591578969063764691041682401635737141515949886888172047691287510139704599282281271648922882768618546272328515335409843134507287476345458763636462658451112229551044304033741098140754167049582222935484513479939786189579215781551212344551673333458728910210791140131424368192153536520517477311318269106383559941451612215614148930688918335180070452940781518246255547587393404758087708665906286554071666626200950173684269880790043670798407683860894245666092929125089287690173489974055621104327128010495590840132211995716974751365830862302654375857956838102460311906145453711446709853909394977891866587807652299380912559600280735476599210838791395300190984960037057232519731216394970752274554407687291751676902059218045703024996301850002045577204063299700014488159289619904840902525138646358322272004269040675369593381112342126758249027675031732241164926758222523850234097684156971590346058408255472073275476413441030143962535129935663810032098603901561331100457933590683524316230486455377745828454111488815196757709130592569336416943685185691372078811795056289843539959340413766546606205942785477779405408459158425534872298472881392622976271795281673192731078992231768097608789381798244885749931683033091885553586127113606570497830045449703544764507016197327454056267387679382451940843204125151934783127603620635411411016342683495503226278648735628287713934174406556600210055693206842282513893686662719044669665176499068081427616354909799261628762407828890793339840858167825748978035978046773576484754707569048354787980586234744281243279818358634117345179802091212338079261209974931483304907567221817366931040805533497893562165355835922302166909692190257017630648415445579908500305409783457653091226405014822782198453041522399351086309637519949103963596416801726997095873954386977616891275638228029547879780067385946917157921777972242128137157418643100252774476411275039274846583250091362444478906855409687962539027322336854604524501471445762679337943947671803790416386075124206951843881470872569351236607076319365149922978262755999029688730970375077788832557073742432950071270311709530790288516670275286982473762823143023792439601199084401351597384642067219693134047575017276362624339079731457883490618767742230638754480258283641997589723046129266325066363425347776759328253075034652434645597693318467449310689113358875046435457035139294039018995059083855822425714968916977220773194602013625590595105130012110564164363639292383612915814309650861096022105333875383196181177464523358344972922771440869603340072871086887494042577986758375699292343100173603109937984491129807169264639502663567802464840149930990847076617010444740585491424588938812215343975250555815882831780646453559942381740769479980881553867788958177184665574502392780192364341770497141204083911467000636900287809567309857478900170708141566865731458605130826245223186109610214646399430355148051396603702283472091787972987340890983576282524997341739681954376353914162852438467791013250355471857776792763419712829965398306248529771031636640201991049437155718087064270414916069513757323097112915025035961140448777381104886802667981227268722469127255845718129036826622683200179304967227901855086737390091403869359384693549518192756502970215470324386657166325707518218334180463813543475168339054406842358671868130127292618964808430275749903212597141791811563137611112620405640154740259482594703220267088108021149626155245236288790919531445321460484463255854873718704428558883220003796838554927220108422262522123332910041445074961208258232550344347743840054001369844632907975784718559424403840020635883964287592389266338676047103447301501109771054289941225467776955884699917312301769219306071471057690862134424063286048421467395028981352049418670563313360118647771740652351046343729743924430515646048392702654546860311383522375917178907238514751240952849227793710223166883979227831222799594126075905206081532162644891181239409060913411368029223602290833762217209476180864406681315521722548750304957613673917894099612478246438869785085497546261149905690407099450465308630161256834146790399442435852096665934213024835822675994940422032874310661585321098156533518031485453064468167472624774529471934111911696154458538000234862838607464149581361099575783221866421210286509950544222196439896351962006512811889334338480907064270433476882718438741880363242479472020108508606548139067817554040569352957558906886349612565477052184434316515818357770744115523716921318541196486142734899094683181040329064306547210320445476730214929095884118447931472268572015114666469469773962785415147595524529700063351036282450877495174885935284809888001200906800936789617063534644585707739169399493531134267772955439197405114231288578772095863872222065260873047071190459189302145863353473047928817178992982854515159928215020998497137649552878426322543538568689001152616028521028249106784680711640319467068733130676060074364848125686507937492963089984135901865914565453544399307336226384808185871957920144394362755954950661327808907777564400151013184083333395205939271451231494556409635013382038031403894093870793093820208927487864730454677487073969544566460733922076401840053778572293541090279717837373581183220764716573919768771722053469040620648682857881590046214249670014421283633689189802943877676193885814781119545594458647285044997499000500245901286157984200697879216215888565618841971281234761498321874915256436637620754784405245689127809052373235777665016482947413702976283521010756935487807425858852213051000593810896017065007597228502268539247844185328110979163563905386182820996794944198909258100248382325238321624336855883547890198483855238457178804752698064651699308183755166059379380084370527357713105722399294626136903226929299267112342917666883681252324513111950381293087517223624362193215630341376457011364586590285805744896185421090200473117074815590690761210575718821859311369324828070767897664981196912888355794330545997060815244035443390768557941964753941021131479999511543442312939421686910745746019284122058818377088544034703818026736088884582680134322580891924511650716210531322641896310797376776469110803578781373287516853794302875827965847068455077807439168644015527669840800548746981576922649318523230520870194075694434899837888071336460123783504656443022191561969261960291364805716446738014781341268157443129996136282617488860857703635390828989578055490156570383252016105946924266200299715026878758172162745146432709492617177622405354932690420152552528034123948517771916727674747746890063303629582925044543290831293875410603592087865435094659023952500892680422693971379432664240037484406245648443871218898001396983470325963824214867876668371623160628769588536487246014583986176322126725045468658698129709459607296012103017981765627186123485974820958357388783080468409415236433930781464444031502977333566426070320719887425750396406568814375804402939113076865403571162849572562811212190861642315829845628207085370982834646865989873599668834854115170214767364131753116166884945004401102974901330845487892975769785969613202680574869865209011665014663066734125998533437809030037039313147285683883109546253440218489146707350949796771617529714431645983480309318394081341909801722914341327311930145240666418905059519661037798968628951639645994359679239250080446600317216831640695471083703315312594464271899758964799380696083827040281007817166036972746046285510682041901767090024329767832381473087062265325435858662593296768562872736755180840858183456187588401985385089795284311263237937855614732536059615366553140957148920215747662387483040774488877536684901665044290360860152492299760617398523783360356613467413829959401873154577724353581474537019741524904588678287894445121892295935212336773700667385128445566316729275618748963195512791532769325158180438364882250244936939433070975731455989330568307789128159755796740435742677518407407054171846592524675210165973902173711787822403808667079395718697100645831224559911356039466730040879407839570465233529025190875104947343045979216153600489915945712048002948228386178240359536166094947255433862508326229863241445451764016120749330545619952549912620379066919262146119522574106311790919340176175624089050689299711142889866812770157548250824752304700467707809680375566716170394024799213886715514361737635515700717042893228398245889917206433103574241714312948628246233377036559356323073504766685269737712812640533181324777743266049693960483626154385512722478916354991065206719211507586541344475827315254636848628450923167410242355167960038683095437081127668686043297428734353325197674253019796743550484019450133518400301419863988970315387949349334781894802301472506566370189194776389769303313365828466478960972043381815153244321702078988035582847606325704262983514945700177585758217905444366250120696035221045363680314108778571865676767779422674980136769514595973301773528992594635064179846113383963598000659999026292647592200063613816236769551067626457682446568864063687738877216887380031292438868899749850158893684062673930202840054914445793730010060745130798562267479222628363045722354373524345359703417187623994851221982342821182675718538644808451004532464104033489506323160489206679719916378694067869728440681345307635197397046566106595430604832897621309623205288812768153668103957300030216045302926303322360709737213038841879341583704467024422114247320599917144576556895604341359188187195609670086513512393728187864456517975031398028804428718251433972169060009582020937621464091626920728464295916209556725195695320771759410845656316207960326905008301659700293380254914897107965220312414276491583976275371552071494993944070427969516388056750538315891924312095500996742685784722838254985223930265173624067137733671206447853510210501346259548807537665742748093060995793070639551791453111045900690725382900584273282033608203908005405265765308353597566878116625748113551296271360558810911377085982118125739202080588109116334939433814358496178756240038486882744896451975339393302341247686601006319280486055095439212553727889006820600812658533784391132017414418896268769721181446600004016605052496690617810366942447050215606933149941507284553994212150105406583550165872218939516345030538872429064362850978677967978949412679806838978258288406579443826837800463404788191028613399551486746464503873148670239848585266986840693961924091136800113368078454823136545305395473258516969622821067337015951533907861922416037275339647248123613056936280641068910788672970996670199106581893438749769853819318404019755017008439377354814284010196366230910806388282702908898215531293974899701886280455831976449796680992012761026011785178410821332680975583172886494973050548311629109656862790387527669614900646525887335518496812772515203548485047347822702968222701887027634737473526233317332873236639247167327332521289013743786833170250430426429155997300596738682480261571928080852144851566978298224902129845689680313462777058287001710701622834647592444712602743927908482406068327308806202391257796233315358048283329711942725553500550427209448172321728643964676737314544205884426309782939155844049530490958098360301825981094103552527882486699929141857293549414411236236716142862842162515362376154096897970691857611621199153909575793783611914014759769015772174298679419420244941538906150830812514919848360142390963373200339500097583820555664363888695104655080345350578038286626334064949908061502841783709301005048055303171880976525888255487554863025221065921636691920660060879883550924322480753301911597457279004020787135410679500851589518045914268814716911050302627420263745012782178160081835704995834957994205726075408568183620333985995491210636002462000973073751066993309796325411505064335790168157515686154998377674168452286225403566196442914172333532354596214989183842441789599374333677938783281842674009112123949290229520929416915078900786996796630795481439488741014527119226555275769921976021760065032057141609606533987136498213720556010920405734933631203501364133789898305715489048593831476738838105149419561544200462774015486089226123626304921787841824783830279399166410061655961264341463703129664203827021252321547165257028714823340269844658372521579351359093769253012242670459901103927860028691525339295899542392480174469719693806691776726715985076590036717525168682911252803227416435513225540234215095480703542847123209310909283834060594959976597476676246955955422887975213599717568416486234707054123847771791140095232258209915867144944678659114382922511402777037503359848391321612050191113048467070221603538785825693853638478946319890800784224714106232644076627170556727829040690257881906643016014530279875204112063809346021550796101292302967809070798646643192703245566208440566684630758638708536824924752716116582728513041832278509179133418759717190825925561147437068674490748873971414871119566239260719373994208501442475961373600591934515352249439651408496656065735710789844317392892772491200024365870175515160163691231323150206144745879837513145183065839066296934144155939804689332198043563660594720645394025923724350195489406459909125412355862173193676733132153102641297126356994558172374400733723593239895757200880040568630669532812991885852033716780785409899183718884550701150540110466772268973238743143422341080516364494149823845215246213347467214549910089315256803819503748721092170259431476177204068484219441865826020643466035247166473168410941701008988975702326194039834690687684763775660142720241345880020852681749219058255973976355507402665950530737686578489590792270959630089965942934988204928974132622285077292252244849744322621602824592212472958502326260279612978196092679555292605367286134950834881785744255421038081282041756841314972184799891963068889096261106067386825161271797674937854555624994194202156846568769060164699592765092410882293879315789175585123751246734893092894306898426444113795230131741380562635166861327465654982274123380232978590715261137381854769118227009977701854676986039603321927863567113526746555648672738083905753686212866569371744252397320106301207479936667021518679377450850526131526683678287682350463452095109706984781090922296451171203450532572202769272224448154942653067884128071164673067866686436053192960951607553022045347149104038643577323467063471010544358271935247797287693892481829024969919769501020485560462114355849052364549670906680326327357373785212823261419976075577491235095007797108791280611931529549458960242686102037828952043062212419336748536985891892747889843099603289275044732073410012225186019313123444559587024590780695372466512100540746444863398340754394392337024119809007980495528383460849232657389659695059686026166491757966085339011042027409687535688467435722064947048089436283771437762832619993371364827072154598859119765592013659686044429871715761382268108850376288458024750195397921675262663915617443698814171980126557723071356179401629959993235780911787210315448928823999400801608524698377559465467789528455964913025587385613407061128081962203918447448254102048195524445970126479610363083564241083012399570707136529193999962624264939657054064546071811358565220459264327715418949556059486929946304747245079199084335031666402935754906712631954298859319455433776089090525364910946885837816654871461227340231110981246741603884008936029935786691921787479969755745125718243286115312827324998246553292831006265806572648520450714170375001681545637343496135087357552700388928604919342664123029335887680070779334187456181453692228584143402653756106389247014526525105152339747847770096373293782270059329045039122772544951428431564325902102156464193099154871492790907557360700905464455679862077299862533476809635724864901325313920149122289269702089876607351929291994339952004938142742764204749660713793977222771177993042701627503573368138624987743478572469434068488657053858218154178472703252584320894666808498893022950222421339912651571198689265091479063893635038776900148856295519487311483423012808546108568223998426165370108823817468745123790685368452671159285264603860359592110312219233608023547714677029377660595033784214843454211215684915573814341720101862937639648111404302821965431867671943246037637801219072465169830966736970322472709616147481166520842293557197865134428124188238009307632144418051143863016757680990525748195261877814885590424743790846006452476929998575254142688819270153366898266438025145038386004563316180288498056821970230796866081501396214953588005062956690889612672478989693040831515902171084813247925244064041928198107515525980626270738750374950895181943750941999749624431905244996657147419293296662493861084163633382293688274976136449035223655567207451991513772716836183286523128172826631249122563832870546456181388368609280291746164826452461035486893692683533871957058868456795645498662722646251645426176715298060769719241313425989137199093777419123268590344831511575076717325796120534638867032542031164031539407776522101053787355283020395795463326932604090233669975511167058952454249454560707188402029166084129570562186325582937025156579658864349121458811661864391644330439903299304109708225315842415399085797536540587382114051446942856301169024161408144601583699665484735320720432682681302508904123479916047274964374545404005121207190244141418668488299517620904599927281525089452832871445804008080253262869693434927129274954992620578600776411387579589346938991139360851417207850121010578123628997151649205073925300280465632353421902556862585795898437050623910363901637463957990432637436399442828530264792944135893023183042265904205792622511139793741008569034961030142087954868410589610234352288864205143607899159924375847936300962313449931596299919312996584616880691696474633720123078599327677060643658407037511239710464436964914684777124890368087838085224039153845324567634270388315996386651222401034527218416293890343426352387405574590785293503366433463692320591646732408613579134175794027388975656500655467943170674923985195392137075477213065004549166157151208432340784774751699248437458036246866079350062833654238567319792655730156097735960254816379647738232140794950799637295256732513581150715209600939709405375175938161247983259189421096905173828773668361347100982402245204051661528493464138287485821450414484339861669229592015685220066675404993324118571440767869243501403413489653222566955262041341611823840175245534590816801598933893043036523946481464728035270307722920928407438226708140492452052220395445277042108455909434793366734739987074537699703744241070535826672731937334916449449531043528516653117393147117792001095738553588603781025149148993593035673615657800214923238931739553698054311241602198522636943480049055331936296454584110723753570908812026950639874527203193570763425047781404609139281076917351686092825411701565506899302771514081006756353692062649807318715996653452075129754486531765376495334064772709133429023137064926196167813170056685217953193673261935204178632643042254944030964815789396668726383910317420071359473479783156120002109212540674313470318609676687968869530617972366990163850948492694267362497974421435464459666882417657154875144778902167410280982914581202654156254461007346550522767216810857099840554688494359641556993316671759232903422242419348589541330064968225775245211018591678538007713437299772266312303000367808373113063115330754313648957876737474183802025801610938267796345824691220804567714974108028636653498903545542761114932890589407373528453372986769853118864036332724876604817848845689688693334163930393450157972720695076929169188796081112071516371740856857300764095958666058427589466907371879826739091919225068972077562200554429119736424798402687525286193497681015071849643772358803435161208791526010046374423056427304667644170541227941801261945305544903630213615426111882742760556665192141107684681113214171690974759114089313596188113583849371002728098686103568730608469722676478084185638178876239160542618574521664689300658429253717095265192639293611611500719381589450471360005001199736427409785439895749406262556250707853968884338693322483454946056088140997703590449332057344211623617571812743420609205865009047037621321448462480554357512935796659839370870504672255597981968112266345972824337550571650352135272814600438421860147378866827738743874303738188298585570114142632975827927517031127003758495821158644226598898167161885876310164295467672513847674461000641321151160253511285831289254415829524400886711189009104543990001946734925570798190941929279717159477127412226760668895849283470214060868122139336896770944884143257785241990156943435533336151886147544406317547660536216697024870012484444115265960974180930386587132756666645393115060130614719761382429612019014832946210286001795909466229465334808719544674221128690368740580445560408174586277188968644890183926497852940706735499200291634957221737254992331936905723370942605641667962282510754714971229458730750743179693965407936574131119601011038235099132208520202342912622058465894880205959778614952106917372875724697320221027208843580928071319300987154000146476209840565640455867560465108551977527781603207976236395468484139209727574556488165606880695515431233088164788116126487722193984550725881295501197981629200142999315486001202243386203515111558845363608968325634948975844354672935677080874548467196467787857529658399055525191180221800882615212247274766599056523742758292225399001152412784695440576402941459782442979094220811263574627846849030746868974075517315349690930131910589854295753321768952062262899263175625456655394484704888123703058603644117516926857777559197394589782513694284920216798984135212052876294004309716223602046241354072573116560006410579348153936065516420945317801908466427524546154558961641076499005035758600127415044483942000274182749274938043832554754223371543847075219238122305185001772541054880742949058271450035514877102351432835723220407091934265790265527297983578551189699524585323516128855842178362903231485963520024803460807456070865671886778521986099940435271368282635792002466371016227153459845406123596711312386602742632457450351734135380366388677079301115762101168923950444585980460121931623378678785128150750900514327754241813884566032189455070150644019197404639739765124255535105002655518612364104332850745126094594674678054840812301278686122642008912736106383592100887884238728276926574364309582113352615937486664581448104591483588933015242444075055022785173774301543479826076574201322490346712932417444897772261844735140799518407391035067767568280260118677693307907074206012134768579850816776107720206057559421071272357656612528986818577278129660126411168383057255868932471534927934223286017792029291077187151372841886440913069476277269632343533860219441088630393691484187479670971075333297254359941712916598894532010847197788102578128622978542734339042232285792472238319375150707347613432726522796019934828968462767810408578557711052845772557168593742213672482834839661901837060509632379751947887954583516083462845237766110575339335067276439611340730846464449808799805867638883786606896795744631732760395519462200228347467690321177806841445620390796668836580011197927510874246441050537203416516662846990627800764895698795434774016611723998113834941581558961411898811379548867879664909618551333221213685539982286332179471115534135589514778580899499483947900037226808762019406183265126694817734417911887717006478818015506876053814602480865265722935104435933337760211598802545320683560428899845427880045564749041842233026344346646872181357246778071104294382592737871109622892877629349415877124788906368858892556667524710307285718496126823399580929801344974872326008440995302948146521747534131219602611099819167824685526554803667273140429537306178476830497177588310253793487549904665160624145805664181246715848218616869414889669757639025366990498140282415436770102168139388781081304857663969626609263719221711353138717383457405248489133987260196894985678782779447117937865441030121439499314344318816582515341526166190363513221743529239250977961614665828250060198879406941714445288590715912816719795702149401852658129134059429626187877963317375952145616967832468634983524113990155028182040308606843237850089460272061155903566219704664818950874472762052153713081981851912470813308098287434806242190514280073432276330242085218768860630694936216459007634131476421065726758375460402968021733929801037088674464816390168407343808060249740752956748585384979465700167335878976775003718136721444285633036017336049337652006795144153278356622694344969075874608628468980321016986000497266559465643783025229563641907025151583977259226093176755382489533394896580408055708136484571747754398889836319466906979006746957521755181605922328114888261068551147923971941420358201086358481663256560065999859763275495680385601458070762788508772492010005839444073126057972927996260401450203271475013477373834845281646667767954809459887960158059435500399032303511596171264198953470620049506891171605032101000878362034543659389244933166466727704366979796510400560459429959314363446382344836753947062112500709713006966850720693661500336825040018545350914012368393615508239901006200783160092407616055435317986234015029043679337627516084026196702225362854242502461456658549904817469494366811346725513240967876246817810719754547853868319679399785559936427733653349231805814891057861546961821804214830718783609121870008512572882364515909867294978308869425984324952445740393567620589678374235745960626407651649580641029666850961969495334151541640849298473509313438316927408630567353881763217943532457967532639819260976808948277137294514971005984882511272062056801618581389033850529499257076799922562666820231334644492350922679960692762159094241905026231705173251252486951034192042148768812442916045116149245500081840996610702676403914667608355750648881063043816810145934287386568194477315476864631323696234403300254892618933500376617903689392075379597092772627944161492230847630886158697245870874909231078388584699799090004942019394507296874356475311577964127057360199798549024123420787285642656401873987366706739930239402078524331841243010724532645553326379950408388345920577474275187929825992015661957225224085131452375406855381648862660172572114586437007774650022665462341794268409763606957984984014684252911287750767476807683470991492610254541250260859918278556159242338723379260179409670452773913393658080681966327805459023969300352325635583193464894539456824226394532706525168570596538879755372361424564376517098439584131725870600633492771333084995590375992631664502709506699506610417280345219476389265031844258409007896625370565569439811973767825703045166052716817097748961479263922065641407403530109159690709901192131526498408292810203418133948375234731393925939909267845710246697407005086353021451904120393725605373332518947129563726429691993616785628527945476186009885983851196475189115839933626843600677053470025113583883488229543500273401634605379276781435081880111594444983345726376963195317511258543235433816760520395391350031646830840882505335440076252914717589222271012320280571636895216339925167049214309616514375105531747898996106040777765422908635040281726361240700168584751019460979678294810114253804272812414461477414283864773124521181769112036475572173537343349078988313995849173735312158807025364809173162351361903186358857200459865518259329263791535385839662817131113061656976716474377743509662333591113259704042536618189908522315178519730855804517376207279222330789682884830331781609318665781066361737098324089014853793025958294426937524641922282004001666067309806747221497313681307861736365399488296565215363881413672507783290288467698787017392704827632098893747549936716848800348163261755535711120779821193638927250564666240810146825704061377361502153435492102704776912777507402935091910720646831940784136657168874719881356939481032986204788109411451555445474366860260185456067118605104058930328690248791461482406974285974436522618326849464259520160106900191063016710005046920873776443404641668096489981551521458581550420508085776846094061471818531617876890003201084845802469631500581553525679566873214198747016105606997967353376752858504668307991889876697490391164671806151495194442052389271495771785324631060523314377692395549025279065433928347081673488723525224302459414201585348319298056777725673850989894387053763367147791437871916745078653101312153696240605912021162636962297070291263337433532649059322492060387121031007687054769600645816870662547613549721267933541911165309041998078646508574592310252148465649540203153570635396067313970708804892221633353997361718332247967641439502468372051196878650925661341528182439751610640791985537410430868321291376131122398492725817446429816919096233889885094489100275085917257066972806031452200996762193500340864378852281968395598146637843810451217426240699631510842228351242816222175046552690216142563127553358055527195154060351742863293904535197972966843764309858750452803027975236150405521890049104907417375027672326700206371054322379399842639916825785051637084975263631801173473641653561309610793235633475708291564847901980921140109308452137600648094442013802113310648906087190105093718018257582943598796353855867185171530774586067688399660917907870651401052817806703909316913426430736933676737364607432738206289348046960284761397632957388133561456166477938301166037838364704396652775168038211334732872435509654601306414975353557188990357617160097233559481642716362018465808208354332610542085730142006371482306851141825517910053056661279010534433718680949166347709883220861878208060459044222847612749059437570938572652219736651363897264890948781303643511104321855183270625245391335010972676764455617954978935287629446601288476173229800898862543292961971657170215899075532638244662622497895561825292542305413260119214464357602759248402072384403152671757303822814770266983008128245193494775247413911472512118634275919839970144563105494321031928205316274146449367289178619901012809916053506275684829336648276878527289724299296464711597731499781960475736136480403390625328003525315848001662480087211461510609520176891968974517769943353412882257418704675074205463065443222382992270909724836861497463970102614191695447690465107909076910228724631996144684265018778768698366260570044811913730845929151849703395858958581775180162300793731662497727469975094230922426484227237379185170722578285309848489491502407579969115624320945578360141449062790972956601465603182026787673909279912319774658318336627235056875250930737913778599316707770662031876817360019122206575364419112909006720152489621040422036683239619889826458612806748870264305968218600940028009756252834869873551400129538917716448916558345421271262512528984587619120897251258198028919229056935364325506715743217014070025725697475386499988578845720398186956579475500127469744668699625490528116265772689189441860428351825928255993224232278507380773166017606101058435555480769223639067983821607979024944444578244318804599486056913937638070163044042826810247839431654526506667604270933855415500463725596597657560087417742944324218467010050085267028292677045162916434133040570788271129852778261959258036071008016645661558745200354857294213257094478954339885212435712793971529484112134422654268035915466879503283085156797511549884585909718081737551373474613264461537661531536727511580582590684554879460822852647996865089801450709908405602322718807246567265281753908725290197460591374285639800132810939615508850971347954820344132505044319145614025268800934471068244051611644579935278185362051854087854531066491454418305136937331114093814284641281840731104990376603347983671130967938606904735355934191436548812772321066187789990100606741100669503876318305058615972865508803382706261820946783813174857314192794335618428301228773855727868093191070289424817923017934757017742372904645366285228409283959844974277975859568907878692006295930141128920856700333532551096828849561275401698645946438057434923428148662101728153588830507833899383029635720856035040535703957385948272466692359798599307534208071251139105816600603329765469837769609414179859465502640414901690393679274163449934032582261864377829289167741441768394157332682263004336926697664766735618876537743430464580226761883846105774367315444955467147629856609987665637676722046213491378207950846817099198105127278738650323667075540186179838119157058776099332297352698770133163827681048592172980632213992287902770814326931487591679015798145290835450514344124203590920970622671237019452128013504172264107573446833602496415369536794683553251222899056885443611779161266301184696138512203102316661485013776494038537599537612688821152396306457977215229240282079217667019145639825163309698931573925078014103386536990920352767564357668307221954722864777316760022572858544203624794793581840841755966657519160932020215704930416962375716106520510081800470686194128953591602228804777749610077909710874247398998862680212124732012632429240683256856278312290965648612668180029672887302890565327914770599510796990822216088498435614826478160141774247498145403554953632052075741811532535721150144986946752301265018447704306063705385691688322525288463167421453944502891249013572731437094751677927112110430414829801419027425532395296768965398399062563754263102672971300258180848347607273906463997960049198002398794607942211369848578048786352633143949391943602906481599277589322720288766045383781247795011737827418209350135647826885908003013554461249196610237734103278679349146196545789431087486460809607229262728365383810662480947883524490015520285736882910804820441635861798328001600794964520310255658896380452380134550677392020286437477214217244586903454832881323414041579799901343220954351927527860650997517959715629236565068422337407224779967823524282366448435597344441315121375343238271379018650308467307502338911028237421901125793970668867285832581922531363642340522508061157124590961026923786834663388963029761859079753675710071129777388307037221020883733228032686692356387397595983448948134717831635943678020707399465002417035910423596757882605187248692359648408914802934723509717116699181660902753200408827464993645655010640929504678476773240239076094633025271279995163789006866058044128648857970536953986182749871706283629573439989182709157761188184713174035617489350074378061582863289357701901013064017640174950085222531095650293808830857950269905465560246904437170956908655745306019001833169410171156256960688521532287163155766630579977667539372228362871684493835497773346079031826975902924128756328857988011132460664021744513416974246128896005283365999996121548368175139590852650126207688297818366210663327204417767910257430056559174582127747576722821449612353311288953157678966540811548500297961214865998659131573834099424613283713685652046167582056071074227145449957835638787204640439983449041386185057133899235549009660312340122634461384643325732024140814914628894825754312770349331913578703930630958863165982272002367007575092389547285697157808922430475215064314203977943001979827085989036143368550724476573199077960290646352239447387789670166332514099042334241741569814107409161437029897031804743092847696414143348442634636207945528363471589854110738698944712653790335502362649980602983669606527276622291007602243717150776695142844572678107379540789529435301166244482473336177707020833431961181530942915942593130773666925139499849772109430188677270819340966804663265629085643195595312450400938803432082765816335681248588828860456863020924155639960516751006447265149885706333602948357892920123096659054592893139789427334827905972430978151977036645243661132754440847448593642051787324209770341627280045212601921522028478107852417150435631097324393213443565658104588375412928547726525232691296715534943179279480886959782691676013349163093631505011997136100932145574123403807654429656722750103455110656159164030154365710947680578638493129240852076304000999098660563885984230630705070337449631649813628998115011284971217346261482871453970199472615763759824363098392174202072546628973998690551924998309067793125781596749739033006690408018120087569170982389330340945390128441985640100370592874285081903919327606881190247241009797846268381507380175435677640530314565589047003925489719867310388677309769138491301687058342690635278620019581279108298244353263290583239740989190826120481188100406730537845502710908285547698936587185830152298428398274600469068720381504442801764946301813536888868910219927053495448396777879892972495222801069560322110155837743626734217002058319679347554473812642769464488067964282241923144147888564049249879043737331028742343496128252002378616267693275508909183799141353704996731658204849801903470869740821747089262439982522781175080638246694583405223915335096844182290055050155636407678317739806409445232009487853542378683049961605852621789006708669534194185401872731533575680902271532138387931162351867799442383745544742283604918101669437432887639286072832199761004165923855950462471629323516075066760721514738078570468857909955462880926778806240913371525410885413313886652927197577101596822840679741571477764510349808859372548636307258657213217993818632887067889901138321963408777883089694218723266460256929730356917760315550992430854276922686534624173289959902485298333156280419337310808702233690439646026550113410897245283188775085608756837543408889766308352374949480970765892465589083050927211198072858142342034967644994818815420979739777055634692667472243332857113268349249510092560484249178972397873603190553780282384771650986789394084648202378450521778896158345066507146456636015950547975696472210167747038349404266215655839413701335274461306939994783865769001692057858612063756166963156969785665716290544411135626523343070401979797433768513885698536235869045731639938279712479460277522502265716574145027575490110080446342108281326807852040244046332006216260332217588203123366009333571547457806136659166256162298369714895115623184211418585235613235306898229646981875111869216452934498556668413119383075280044804146225412348272460638207788246503581481462681641473784970962154186959959586146214495990482012928953505642389729431452869513487998642882590111994103230391104756775507031260008079820465005117445761007697994564033555246839558380883748064660422623466185959865604588030371995053518531881045846072195741740273664074446000887852932423977385320752292523835848377926974922443550560065076011368614987472369428426677882417958039245734293364911809681160234803014232618521638395031813496294118904707673026026078347396159263318059274869201537611421564782594596832537143023652915061031540773235665487003063443328550302118284244916619594599980927026330887154066075241785448151098676660531898445079674524151951363357863501193467994478170684416363848740223020882722224579983894650700116370831106607289338986967171685031754583408497224663762634746090414368709058095752227122920217803579551431325128713819214898782846114463288301995342940848282692138856522161013319562977990174398862267942010972310880580094938992490452205517151537583886431010048454217927464477374869314810576215773107931473311815180589041745113829285472212435102588942728248605721839936067134038141217421820403191953133850491964179486261196445690048209113009934139370520399556800825411878321424387257657145052457014865401242419491982474536980613786564912061001705119326055957098297724825473198696681356983177152996261730185530820271055123364516700544984647697924167566076034276649774091783276690756078378865149491589659464721495044813422206524643958279092930620590977118326638887585621172349217698428846378530630953828882362256890882018313108677883781069169894416180737598405590094624929481570002015871273236814468496557767853196856833364479956058451277601607242459631195284667871424253289817871700251455523046462919246783607355752694640557988664414276002672998738457372770049306840834473056752388518801859623428798686154706392538705364678988886146728287575223097994788487646348669435517729049240192817209852352928036037902634607709147782182645011223982252475791766877251135566032960596028556180037351297599567145263071983399001025626769066791665909623106835524312898940211728045813883267465004907254628732472176161667873733570485109864905327641941602268329085672842740067133813535525643490955606813562632209042444123215813255226424828179417588848315393687727202719548053523649208102030410820704190646537256765381855612470349755057559134545237628258335448848053168230313726264610181594292353321732195377368037554574215215909363155349597764369377342612216022947994431481787444736459642617809570499964863002979381143242186040415867261423406824704725030624253053023110649970182107633634136232243126632968847023724307320786158792529265502803002172227563904314627022565413043500435455273792741500088881310859393934454114238219905512774782752013817493043074803192355818184555035057429867831090583357055840877133856848821809407214901134969358672016363819150060278173621572485875632252716228378722242753490870494524817331118968423483361006731201282588332993043050006097076743550214332017676800819079743404699880217292377552503901606487013224086999547738897536859930503121804816716537148525161004339141264723707201822464592506772924893186579640813483360755788234276075540107065035563687086104514502260133365387752202908032266374355283641767569191909158793792295362975866077846466588662980133754877277471567451694165406752084501894221487024161482085026138619873614750061151471939138651622043637502300815570784220052246308716717763334784090574693947724898348016996475254917895157282740136735628645340892429376975802721418829519367832000090059747579865620017269355899205497868678078068712084339914591678831711704601911005512454103003518315806254744183436621852465133029309251485895479379754957358346587070507243845045546080262274516839005067245286644902729328009520507347226981319662698419916773473924789430442396301568456882953154330304343549172015824391282768835218823352937564850850858121848745678133607480387209335455805120836221843746334174009661761777892625726929627533319340679488421304198633840351219017634820497562261455213411489293136026229007182216951058676166110417641485690631174172775552767505513301161680248610188866876703642154572553112966357662013544800965848153500282381758132436130084246697916083215279445997305245339622506518794179419955563400162493298104258883820353284175375651509181364974631493443176209653170491685844235229504435602151092365681374312923316619942818501185177365863614406569625633760984645338207340822638854440184912056781754591633484142286525826892245769605030990873839132477553095324215346541281275083307530511216132127199711983757509479594611240146829569100101800329972471509414015297645882491307883642855484316512265230949362797006923687094198611280368269972972900400207807618191062147845605968888672182334301186359745958576844404038871264199748071283740156921256452420219036345153994978399404966670807682939640726335329021459382521379717520044298228769609925129536912737017371922633733320017342637755322122776092677751279812588041716657687214291323561620638217613963360084705870116466315425973466238230776909647992668782660645017270603059466167380195968397661317330889920003664186714458808476109262512387668080552756181204870418175867845725286179017705849943771945900488238836955602767785471479947748551891267336373955909769963646089460928274744412804107720660295033747856828296177831979851520387063177453758697758296404450446079315069711448777125995876751644524810287231299433473257311461037537711366855434952570294235777468010341848879767475716093433634665342333491677630231812122201242820164430366099832611851914757067369154110421232483663921153364003517092541091901957983117147221605831768206490282613910259924624874988058404857558397376292702577800728043123033203928341878245326284381921618333964151815302179519529221668790996764536180992510536148909182800106977683904135746312341192166919428114346195374474293042144154794216953370786381983220724774113179807842217173886889254978171850813171396876487797733457837085253994180381054645384644176264019219771453885952774324949201257003296630039846971789249829642788391629924722500370193032577344368973347203823388353132816818604939460672079982738326892998066847792424002647441964795548296255777530735609891915327970671054591512485442463338170217932967646198180939465751406208981696282949756233583070338958348021167844008160632283736049034815114623858837160442512481067128460250255027931141787259684292670266136836091999632730371766712371197879857994143485963021597252968163494232252654922163554507209417433275793189025281106189634767051329917117081925696817596586833545405483066779818986898428479890423712129953018643412719846266738675111224109743185648230029342236788985489879598377630167583393064503842611754028356912798155829250084361471462826621817525678829349380841178102133309548821598988850182771089445661087169664844800313301603505282813810805274798791448302335444916588839425023779955210525864184757691587227384588433487525180603200398541856755048473842112009692045978964438222783120959661175530187506291989486316438200002490646648130814655143181813627029945523185410647479220088462976954136244847736016842237235009515960952210128652088652542955446895202626874276447516690954506555148492262227481740462285497386453691926396494181621144207843052023195469085612313071261226659631761487075295673632676019488635855144514085851706414830088194677107445316266598383093901479685718790085524407580565520993741933075165345701473050223409189342767294467886834910267652271110918484450743764575330336564316880193281322843555864549381461670553429147137928228424371298517972116637272833528720402144321976123086169265375666493777435387280495209651077363557184760764942486731620572835136192582097415521889787857015938663994840452349009098498775450043115367995443809645448799356893813446091147494027919239564388187443678055345323565446193828005245536912628895298260898149721795867411313837063091605258161875414354366860382733315781076436768742197023915476565555681306061911530623272469926146131124614425230198072460723579281178787740249986964660301234332625595569691340331856449298808109720835486285042789306585083543706024954867328942656817233841724768244707605335107710188643720713383847502142748248905274925222924333393249755006647297622368331378928700742151281771849054881589942639040630773620914388642997956972262884282719905948408672211895624621670018188170071624672624012866722400976685746130148761480758958148298913996097717418339032726230383553872116976902228242362944438171302332654536012472588317374162298523466831104044568544571531845080858591703518259182392533759516453869157908659698683752226417882657907561752795296775804576341130118438728419825402474914031509272826318445182750321578516073838247237481608191865670690544854196072003135611815299980315779622582379405093253859715084637688392309837901795964393499760726221821870802056181972909346421555532804361384107152292725579817889885371705189690890058175634426912293767980181369091257575225238564770511561652103076979407551330587793179214475567432080395407600237340499506100566334146206110562749929443070163299532063879317944038894692930362933654982548375552065265606889277276363350412814571251024518835344016688285779559137811832581962414249585780833622264201347266929585245691165263181042511169556170150417131363922767956337711623757510160684555917215491300270291923719612043689718927140208972155436613599765139337532638069353578111212397409466555193136122383388640324743422011385490740776662857356027908376347515825473406215127718208174575691583577328591173298124695582416614231190078174436990700187201192160177736204258623518539454907403018656465571939367325601601506598589165742889437023294960806590075589473678148785538271868527650686991386984051474115711626208315939331520400072349895158903033197951378477826871566130366900200162009164490079380379052414018676509868191874784253294830407940427371941888322316579465865524266589747671665151424765749747693413688902437030455877797657248714273822494676740287981965329468246520602494318350391796729969742618706325341360643602494586431770099297464299710780846962352130816977561025192959656782358023621245803089913628621732035249960151793105672239235829958644790052047880370197612889566838442034196663037378019265345016060283363290412245055519563413450479677251784176130678571142697144971383134027046330193730227240270916006575354494294072561130580112145104730424776714326875695452168791217560247622723229382064621189585548403156877040727274161095265076048355648035291767950249409746897280245947774362079983447693296949249540611584785110755104030888802274784595580644825327131643712277769831683723295435009656126564742308987177694852845531818059087820257207835810891865065734972510746706304791835829727182798977889453009427022531028898362668231631656161924344521121298626607599669981245905660286205434618549527299234703575826872042121229127075627569541291070291760628364088536343983506792229210029518169107256762406662374817712665848890952536310404899359165552370735019652273788445918855963104371168497757482607513371581991976956541292674638545903094193119411760193801840308341783791595324982785013747480334238499361712611380463521405053671006760518305771780428657460125732671738155354454503906680620354858503290521462742362349152798283457728557342856641725287161962809489014805468659154428764560810101619790544814105434006738027615963812217531704987277482801786118053820152089274153074117029320948717537636603402161505996676585349757926613405582351993061273890548366520248281188156357622048294131950079864750734440972039686020499972958779102797230341208957212825083134871762360386197158411877398649826395236639136342164230365443891734561010616098359790737871727637479670206111235553541704825486754699018684221860588735922143357893354151841148288517879185792304489007421101789482825178710702848766551257396460675308126817596701621882110612134116749546203957458744138943458808734102665269801408711700915251689746230239153378466255690848677769650990579188878372786068915605994006134731794672752951296759200055911653381350044595402829374489124099945742566669426506858001596463687067943248027647946499574435257124231157677730996675636534397023350515004825520665204269879627088601795295307159662342632242424357498800652222525155530908832410568656969868306772320383701071600648168713754350493902297198942427816148677768511777265802337358824658495602058810222044553876757959843203309582304274686740024763943246306607908306008840514821420259988036927339169989744437546621605549454746127557225936091894675573727190731279080348226164639667043229056261024752469239653706074159591500757518503630904223587197948901434118130507757549126582815686072323075591196360191908762440836063823593279910788946569734663532704283209754430265080937753042778384967569600653787259845133925758409040758203812220449385032598534165947930440874293018138897647822619382789154046386762197644883178891200401506613170972466014366063346050884799159454925131618302693799212051875089019019541748297975499951095334873034413464920751072403985575355755737488412503345966980123889736554132703644714698844257246844173244842387001870500778553161185259679867669971193135900969297380601068533503312372240121115190169960995383496648233553177195048158764972788415536672198329727981451674748314316557037155227738679081060025158429815866392144623466307861349903572782535740766731246548452761074647365593785864475209534329331375790024411419339847198529665905614203522808819053625784687080295560665376698196001749516470563410417927929692779899347356458802626099518074283323773310263251578157157865835499975520439009131852931712839343868770746997514968186316013012653987563411147869428681070327745703660484230419179237149315680433861706802328225816520307694178287331077942358982083638367208402524415410340441500385573791282210109339693511296453651162134052026600623787464794925152895016990589745225265541500267343628637442834480451861112073963269528581901296302992227594549225183675613668331013980012425246574813460616207343806624660637599178785909962297712517103768214972032162922550826426363482933137993745733058736273925528579065103660998617799979106023363848280643665124279304775743675513529675837973889336912295345888715916367753280342317381917995126663526007458747876119239274039754204851375431647305411463579324639285921840288500455430165961711350873740237380351209873897321526374389571064650864078947448243624707356957123311854966940990365637582525411591314972857647068673420953564509117419008700489982813659420363040621657490015263261062264285029116587815440313265399980018229868868872308723228198544748267308507221482146603361178402880920090859639644518138259156625759084731235288960910810021464247837227145470897946735961981933641615323040346320746249318432482222408049955144280779362475548654777143088630111486250508406145639773142455075768896914603602757328034193377095442808061218716307773581721497729493199592025078683838886798268319904127087814249666903055871239178635816888266881229265722844712841044322594659523406458388274628112369869235764580414501091721546506479558504472801051637937335753691638891619368467666030197140139346161030885879215090377735982623685162640293857016326432191286440398115917908259767112785119941723187565784665770534473153337484980347691766707701718263412499034107192327354740232376959527163723092595610572097974043369943008853578316806090688867614171609479248004109699294857286311055846501777565862978429477900197949974522626181381290368172667225094533599289886681676834893525625160321519074336011408745395093779489419290687802718896268319277274919370397686328904098496533130599809665304488156415178205870414955760992378445715737687973513535358051877412339900654206581292796818005905819424518821881304801258826746646048991616110283460169661904142315108471132561733687723417385981860302247699668559684965385989747851735591350666640648459439968106715617918740366730247637912398573491858929041769654027678113719805338098130870138855664915583415803001282479430437136981407974395922040416892838164831798874048434225778265163782539319060871531323990144614111520315257516393910299165443264247094898187863182524193147192244123993276286079390708137067899195930601836841869834198816199213986368171022650418429316783632813473450871743594782485667923648393540246518077493996044665251639675650443901166513676298252755015668807686394026463904774855526575767660963513968421775572929925008057316031701894490684286423769456954802646436252624873004313483759040477871467421731833752800640918731248314404515718236567059399308334900187738273333295469674180540061417088951274746099917232491894847727614159197414550417506805785956108943933882042560033277992293220929008353125688702926717424989415062142991265996091100326435139273080807275056360264227323113012733679093409483372532178002905232363422288895222259363645004759475669447480964660681536524239018942042384010614731974203082883770293621830279691478512937180986586085197355595788568921797531646624092620869516541035401849112314962121689981397756266190211866448928521028033709069612218985011058425710939341521463882220149680727501039052856669260108734983223629134719184667189542484050660245826770361818641475214981684835435214205843662099481563884552156561920686213461134863587835036056786771586758433700288699517768962765058318643229578844556275424418182682423337673217836874166908012777736693963954422323808179741833527814610306829714224791145024854128169622058401599155819405532415208022864947752125080683503302604197190719464370349993430136761577673577019273587055471486018155326408989836428776443889859882838269835721071242892104516329994072740079738788506616055204932823508142987285620899061929630188181267991022911510136584827026485768000052721534248578235641198963011451213134608929603228803306421763742247726548263600832335333017368789833059651116812223829394869620083197412829716499856391818986181955092704186893473738909139634337785012457431890540627163704385428581175838433647259173233086218969401785229332582653326989703407877990918858225002200921224212781772931659614939110052396414567861304613940704745560729273199927012543210925928699445605139911356966288376464078840498391797583736312643972414230719654856092429299455837103328232027723796867223387650054302012107149585499765610118826415270689274371648386514466902954662839793788344189674844431071283108139413407683855110498029217018544419414416238456825385196768974888326290867634308890478472241110182264036660807343333899730495675947813670468325090224017495693801914034830784449873635989445738303764322273788822681826183750596061043996490488245152725937588132496710687880359741964830023635767874372847180523050790795988043482387496809991761422033210280351288261979733784848622033147342687955710714591532863060398271821358211653302217092460544906173342673470404966883486096294756617106144661571807139447889221395516365794414686271663502616241248913275926457065408715089329725031592960927266808870497864241225709722742664747050932407005555677186897098409258809098673270500871763705291508726052255598183624052602076819427882224502213516162950541973550234663607376211036511444793915904971555346390360405692295118828056858525891705144956359077215866055996069406056718721691344438692282343604327219178136067440445110913701938419274794468418819779812142019974256480599439593683734289772391164471203437417992916598769505351343305174441910574333856899917268324123292266282991882184661793220579765184543021706545663528960954134708258467104408931663058604740932363832933310475188595623887309615717016430426982533218559519662620858367953072743225185516631782830686370639022954317650339127285587265720068526545266147710106211476090587056984745365205409581275995896026463099488004036389338964199650456093671542800193258082569117818133631542898526470540377545007280425416092107250396351919794723131876969655398024170435830787205740170681445028758406795221769443205796776934542983914749530874564675445725679478401053130218000891793360734779223789453976575833165865229979554917834243110501372038821612065339997558800205162183093004898958553961116486867038305269538121353168124498735057299134491862564014112978697352844226962154168634863075613246449842638185874416450288691888153183987130309505521792227304779901101410787503032344029024418693916299411511786681891705243845967996027341449618339240159610329230701478630458385154595635377732424580829826511465154336192656328155184358970172742806280158597910028325782015281290027278570814153504683863567379737675825812919972911378463482567762576432687478300667502609757206779134771923713838244597280531167588825857132152010236137337931609806238095675283898651853454670127254396872945061345911166359466528884474113820448741049666552695764841322607526199481239083790210530344515634400035710570275767423730443388915976231347926124923718771452606577911925204650623430692068120918694623109478818776287496942033668820052372579622648019327219267863292365013603544421317271188815478262227548120744332721708774190786640054240109430285386621293613008608695509857511429682938978872413611773103452967353286205991956396215523096434299171795819978503146346086287393300987397301435442046121843657457131325910047844062156126401831644120031985299342694215011394839555338671594292302164244438270558442932081481498180013254580095326974244433551182696663577573294949275184101723164171444197548998638279415592475548343901386982794224763107753846631830087816159438013163022220662743424130852530061931102819716476935559923643420574761808255490325869431572902090092732003402850243507222582474220778265374854197055264483493026467061466393613949731869926066479800550770041416586273968927405796709835829590361244744181160408230875983643511119892439877217879468240321753094334676832710980989880238895182953564942299034500193345894880636956261110821606046125444113845860953028256263841905185795012827605323586884938437792874745730366079620369797945785177642357137806793252323255854983503514000954892435593606975090485603993457524941700153723129187527829184805361119639421894933832202643089509084900697443956292879546763719765008680026754427031122954695380431367443763102366656161842177213933849962351029924186404924289439241943308666225663141374198532961334049647898361496927318042441868540576808376354647089127823895185244147278928004319145616478619876106767097416314933922091993266879459546654100178539739143776031437280373805678186341623144014823605657685431548672362127895294172695428773531139708321597088298856367812800804594187647321834753434787041761384336046623153817438026747854198201622946859882317171784526717036038603202000569918180483931277965137639365909450624374393864368966851972450632804127735251000835225777992466516434461782756101194493266128506904067670317551785455402019290673682612871572965877269350089581220736950094530281603043763545024990867900250022295391531730890962832497918921760079407181417698699048995994000104094497521611423803556402938992314962873885456561330542528775596005222136420902729000659022957488867013754290619243276318583616416329716003658011691685735749649667842975545537489531880570141656856762205826072820061393194105276499034417548383441149033603196040567956786057012440646412802911657951004956467134869115869885784950055989099802345983637361089355814077353360500035530054919268363111445239688787412296778283640933584322136859802725917850561942408497485485865484072972208497105782115077415451569656727500778999261116934045308297597579183107136985737751444006035717669516279710542613936480509413286413495502108264649577589988321690575347492398333727900121596520397878171777771605626645794063497587557870177735284379660786033343206338576052996165550368763584290374018411738379212512211134786727214852216392495571954061410108671571642693439956624164600075128651283400519833601200405318452930247902932624056137575136281111167501597219313623252888845487291580820934000069911170526551562101941624824334910499320626475536414172361999679920221818753674993878076745782478124706431947138205176680656335185354557197585433097099990638371356898639215902549570086394745609844571913368218014073701547972568062830009631607254146752161793872923609840790754917800387190461655782049770485710014047916774898931139288156712587040033139912417023610979690533457580519642315796290080316197912760814336715422991356972211178365138100539786739971260622779429013131617336855934707565702706594751392971439334140789663760955577448830066519397662120434444662276819447569965110122226788565904793669485918037473082761454236496612202280738608444391349231875757663223482489477794479125174601372023896865906820597640656528415416606272951777748807554535296165509064745126429268432144694214829054843942272506813757507309915928270646967388752870215991714613621675714153705428418378119300562102213605179046214941040991101417531572955830348554765532589412064603374755083246428695785162454637009877200777109410595206387672249215163685322112401400322158905120280235507893096208810395753499531048781728919698584348062659448237356539130486752710691075039053731372976921793754976190526836504652481773834040727156324199878517792667394126902068161276126130375107209862783913208356835420229416445335928181142870570291898061796564240977724438505047566768453118494691171698267272344742427428565774819824919661497523935548584830210494675697190760898334899964966220758865952166077676987322689955805068727205836438266800742713673275142915052674824319967377044785085598509431239377393375347801624478561434913487054766307451568048309166955192603451956789276368132748771461421009566601701993879305979072202914964883989447338817007959952410793344008827515733846873457043614071949192947077467494840884491613647507432533533889733195399070166929141428988918123238753882927102323727696995144409026967510694223642619891074076820063611090774950457206308754466339514689025863467041747685748009584735384350379606407946222630553983511758259019109569957123577738594984183616774677295925442961642807417536740205272644504180148512134690874553275097446439743295421795695405227235784878347034922379968848786655591394930450123049249342296014364897530978694979237538358763089745979445433959978783277452953216095817117346858537233488072537966137587727686735528986162098813520610560075600954531497687171279703157435493228344024861008354028026656324444938930399496652217236229233211775349493111917468352576882645119835884113802426624127409161017264005052288552762028166080872172189376973075710962175360348778258685890107223288608031483970809538517078117141583059570001425075608425820588799781382327154600448790464478194384114446827668301391964496783486830128345179208028906575099942026514082019921877764156201063949516318147122654771638132647667251455154720115262646817597754231336326076076251946666781470775541926078540857590483727751567639868970697233022303794755515341804079873665357122948615280767542499531121793817369081009852897262683984504487046708337984761832892441547696761943603247119929140473678427649988577850524279926828932420990847554912563717229132253861440308202863503957051465689119473581785442437698169940020857420760406424215542561078225624509272571605159141665982842797514382997607480305967998061323836669279873830246824460062907258219396433778535885375725925384197841725441400204906460044187739905539476348909850355794284368863233853490023793446673254386648190442818816479845871564870077103911412977337469259090365731630672954424375196485361238043535590835336054235399121854302654061865992578452131689236270210422977454469936931688379109264677138812843098142248731568050683110366307134721893201976932314088884764563563892685251269963337903657649490406356791245216660431707854958017846729676683602154248901079668378832891277245579761179902322030576171300796389655472510760636255063543796264666882899738540410361283305274977067904920000280468790033121551882925952487993294712952085993975170413256640391622061042412693951256954493780961668758035245807611472531930621465244120163855663829908727615267567355792730518930631288354715400901045167276836585733404102736907017632685734246804368930727230092677018289390654938499403817753724586604930013894981523621208777472898342846535282476068571497429852387999605987934896019153369748719748402862780426501201768689350192386552340877722668438574447597126598118813867634958267850258067590790538088130725657531032923646021701588366171745489064565305457543672873521008643076410396381504353384692712566807530868700427859623276715888168935667162010307896999859100226742236691844867171571885429436241580330348986169962596034107589787975587517689692303782759751613588148194000346568399581927916458325883282680797289017610012932860807139352346783060007000632746707815991082122325540190686942110491992795927461351018710677566850068104160343756237741396407504452355975769640176262976664508050579064100724094881970242103650328125058509588082183561105909522052076909350403989734685510612425823637462797633291489290280286881035212924183424138862875863681899572669840563228966444515465609159260323331934818737361647026571494584635831139397738122270758002092510342114198745938922461376259251384174732105536370639269841412375978705913101842071119218386036572936008454521675985294256394916408992426157106021303696589418916492246424023508302585023573675022334001183264802310289316832610776452482048544472131639688537929807639726006119691722316611476176664972148168022237428295556851674761098901674949440351788330974480581421391963920112689365371333726886760082647650674886329372030689800884019927262702594737323116939231710397688051696977396619696871537411384573718353286566476658868798753634071648033241191558059625446115731806737960819573370181832688227716143355416731974291064841714328337404762719127983571589204486037638721230040441611136295125412140470980421840448285177825041073387578048269885998826133721967164458683570565396700468597887389175430505269173777237093990046884068549359015946053892422886820736080757172928370540522487757371339255350126545032204110283665745089322377584518620911143021649547184579508751409628969563955719167367534428513107206444309189854266496542092576915979180323764710864779618675365145596295943187316757190743517079686883991954683975398591477430406569814179711375345148137034857596723835921275901765957059055783756623179194694906163423453598031831254334926343301357933118561195451082278420277688900136635847437982841462135139711578325991517208542258852339986547060305626833100891038197599042908079906175795410393060836296351510259345994510485563354307054892211327491715619130884564183390988455138648329892725321426591281213000215351478283372119002652921910179229149240157693209515367764505022727196176805810156888920356553222388248956185876164345149095130047817834480838268251996134928744255413625992039041828751072643960138673328159683031305241141716768038415934500689123129120316844283473432265585710882614661869107010048201450631538187170108199165751378600098782816258988256849738088269497473323294805625161117897519764664146722669809014554854231369936791925647601026677127240178346318940732705283952180735887109933457743911947021093946238423467807238721068425904814467387522197863654095281296655919563732014236447225291810077338494421837393475896029455853970199369772578082038528709915988740048235168539183282038017786218082418763293036280361870233970594901296384862269828955292091760036858024754401447807849943908151011670337851724013055097786178218063365649307962898229067637612139532650188229548658605508589604922196357650151785360819488211646273822342013319805339172160187174857606387100833351289611316829952560918824822154476662048409503368880645550216263656201791136186418708862938766647627560963612157699142324798544343399098599766723643899191058635540861040921442838176637375330434382134688817278808981129750595268564938493034926790488081386319423125914881520683601032832356045878865719678562676953399717108696643682186301173426775419212942459480459241695667930392592200107356815919665398624322878293017218820766550933854573827012654173787924722161920471979635115396135747883139619574707967133452947968857262530169112680290371294350946939310228325747549334292423375617795259699527831370244859444107884411814207350329811442079286742657536703051101847877040810302318889747676355746672877443745676075525885002862490641620614330148137067232781790640553706485604618909974620371196986069300565116403946128652446423962823123786608641386595033277441035139867343775577824932552027678427246350858726203680228677181626479686164058294563714031003413046943910414553412849345712458990566168976795643247442264461140806963961190235704412833434487242538919111843792768572578158507099891940829192675748064959312789488554848958241593279982252127946633768149633278599514966372564636245235210490244097072851855546067724681028176145555269444424501253178951596727747590590712370683090929464364635717576231744008480548083012532631303037380508498030080961492067674503721599894838247975441844577834856097558332493836643261051582210522914889128918534204148411371862916097621669399420239084918902107795120826913907940686111814456778292404990560305015761994635693275522716080853242385315539319563215409781292034647239070512783179468504348549875396716935296259848057293090784365725745987792055286056301202897062928204264691292253198170640562526550618310553781340010373139021897171907991619450218757273781280077884876004878497975436211770888257372969977821854300096050102790187771324599341373706692929596613785067455362426763490962746484147713462279592449515594444318525230161582117982650264343988464619832793664036428787980995683026626647709686327343393074703598419915884891336095504187881065609634899042651713547862246793369958108991720787737981024575265552174610200842934640063244287057981791843779439925474011007527161805056534407859115914551482558459663402665851698292761557455475591979090907321051045664843056046785533775267332901629384755135350449300021278730183119156658291563193557800273804201914905196030525677692519519452342927127318318143356309915982081143373769223787152440915854143221690724482100654478805792518563635331820107320215468118542837448930830250617038965683963304619317795203599325884838443917493091575486543826274685460158826086715900180741926313857061140960992953929235716330330411947489698599355995613906711787329410239695927850712405888634334400067736384830744874884976672156510347610302516874135038646242149018368655173471596006243018954805236490080758721627154223299924521727509450326791050676572127894599640197541519379824339078041631608703157601276521604079047844366588741650163473492754320228660003702464806744298261717050253960773207739275684617276689224493035415224531384401068145069200284774121663552047822597462045732265031747231777281771455771343222673176868150196481991230370021476314888230091980071637459418142151319091536965812963084750957652557884746737975919979505156926170692122394576955476499153160528970936705399274780535086721605071187624574479246874466091424026554647571554407876961621053183913399087940111094434058114758804181958853079988761855495681420155021456142348172446769149160789656873321158807732010617372509369041318822098746087853180227703165023502207748733353535899337399995615509685476128591170489027577368893732937730906009923283972832568295596036538347460591399619786665060066713653574656451936179359536361453817067109131922835542004162004745362744125746875138062011053876343591074887943756912278498702261321884815917623845335727364380515107505806399021129347960773111053350404498726388517923877869663799090178668091584562550316534866097974353450353177196754570635824564554046608754802513681737845366791091110291354909626346629501418090604781854629712894860432317363165334143030246544176170491776360695114439931841964475421656006772598722353543061537794067447561602427926968786573918225411563356227371121565808284345070086814332997343822737740821050034626041605086218446619262913665337140915246482400255063149911338080540066779812552242087862753204017300531707414285528216388827509880066589269031020771546007394446719590806586226943362284701350123547466872471989599346170483775310465711144977980932013671761180751575868854874251363669333911119739204821285086061343522541631535274591978091211853189758013409144648560715218991374963474562674472115502532960608482250028503449537142815135341294132340342999606321613377545946313259287613692957608666977710226255164219739916097503749079123458213370897514081705696420819063750275132240819662858835963917636707568614742332961233543867236695337634809715197158903927584571046727909276061320027333787808453942044185017548846982510396358883850638017459639105729646735440252946242955303359576420450727262201785627342173914469131181413838187216759550794174529326330654978074013172891403178750400717623870747508885817598733846816013602562353405203063006457566824209859740417552803491167563603144305775148069432335943336652310604757495690243594212021117075311710596270203519446521033904497953159683668361041495335748597758158103788494028871969625954035388801152188121788838330257721394862270392026797849640492998414069231149569985790621318550306006398266805120111494978840428973614047797828007713212338145044978507318854013594371481031177686761459345709465128763087351787954980109961723661800945514509257134152441823090668750350531956380303638361530087293442006120938334061493761018301452563981366456794890648909280827089302822691797990466142602262167682240627228530916899501671834355413506465278917679699049980510832025142240449588777087603721208794050676010125207451942469810559777631172891095074280375951298481991386726241601795944107821267429357524848270077781986147538655350104429337607784475179430529982327455972135701162715935248967364521990148128025564558842266950479308587554081791508045365819286311608645901251613894727139638258512467789783713074203403049107869715494652820381768477363710041435983840351726245059546730704350436787974647572132654544200843355767325248381244958972860692029116997418040767975240967258517757259445181638928400803448858506151128626762963805588041874669545365668241727381590572475896217845095573084903277878326995434665906799801168452139653883216245550147636841054946238504366185000874622048069638028483823142176505594699407387946256533149568172870189452554105549848904468720519756926197207207042492584822849599688510823413894245446344018942427452310545024029238785287354538019463487156871610101341380733684363263902272311293654314024494556819216074268320345957925903250671453300900902638212478596384316409883269187958629183439522246650843092598992825862394119657681738183371849618141729202385702708300877818422990719746923500715284256569138536100474618615774828357213010919734068146872901910239582360901355261741842534580699213846509326120012610333950485901367779953702251682949140560316126883057257346455479401051998470079750561071144964561167073889927911022878405656439568486843983504339002948150647904560687215695038552247826221216519391040091864745505168711294985774382443206837532122537221834587032687713912700396384849074764349186214283438730856790665132285541564506748095230812010093436422068908719976576907374227390342758700205159049381426207739402342797518834592368769499026175035672363386798689908543270234054397660992803346633056985644520476803922184798413886699815178774306626223318477485331365144057583294912093493101556246539791905674251486386638401675775511694988939384151722288856514347898496176233227776475951215989960306735578287256728118088006078541605702258400893063442358739884870106158753307723207826371848090963016520215265377321692568886387146018627283711485317503603572338208628862202631290007083524061499545493874130167749109205198180821178868492308063148624156722862134449298737551941357973228764902481170971157548575765008993443770670775657735601610813613494563256539831881311523168346342686417417259845702906291780963350678896684052774248333665217122597413885825321409224039841144177562613256958712110912478193357419321977185087446276125120450640069612018351837175559149302695389723697839686483317566434413038638827564696280974226691489657498160455578827900546934654664119500243358483887703572494816222857763125827263487078581921900206209394334270796750707147612367540708733200676813811104625168403584926229498668543656476506653671369530629090117976365234278499882462231883347008327021898008376129814580062198352888558311628240867967086581577846866924639104961574381263898949136471714582515711111074750827177791497237931006138636141615710883469730214020904183629385999079853704229494899659911352229962798303624787379445606819566948397750420560748657800307964532214880921521098426067448713278223068475479042130593671600741879181573699168687660432008702259032233073002784172756436319750695965960040537864951920458921707069211462405171982259635785171846789818695221751856667170977286062716436210561236326805999818577866867101995428068703056725927164227995375941334331017331612694037175190095624829129469601054042619051268637563875865140679757629948801229618256841752406847214760633799722394147573598923324076687129873650918216202930437995620143971024403327884842194635941571608265325430283422199884898793456699539574953977675937526819087830891406021492005459685729231498684000538439268536076342048859273737343717802945425595820210722750749487308479927566390330809359023325482856489323248899008204603904087277406768966984535940253358571167252025061766343008187819749142646229053422796280439749834580075736190698805501612102990347235134964967559487499379721926278714032470741634224575898094866837913300081986610597983629037485046587537651494819651939371848737569656296514421697583868784507744635568163280144177333935916707210882709539895326895514637231483912859455666725531431853441839665391176396530359073087573790993561025558125703178786575658102268951233280995587223034825919146650687326607668533319929263350495504634730926748613428679920772085609712097942439180170408213930936532228818127595005355537449370109797952706238707945315232125247909578879486751750777909161331074251143055412844251539496927436467386513532252831605228553077495470804472454914471019693829578741657071516254407991482088962678892491905439258899521411471523518809402875963158221362052890771755360933929440448792178645041215542636105167232613447696811476938628632693741109630715302360549047971671775384273938606368715229455263760041500138403783879917564769388938207292542115141637982806640241352404368542918369483588313341078400326617828539089158276784447858432838703208678716948480126224077137726608942992658483435491392425131283256557166641582077459792086062400629969703790981723172475547709652089304214653160226870777814906822945280675408611986725221852889075513533413490904213909618733424433988112509173037543012733912098592398969805501682513891819220773440683964321172355017212088918476923978565541500042655458212180686015966821016404928771218278213293966323474432975617606718406075162783077707134597224485507466174058392652472762886529378444476337530285663305486236951240129029948831097447787718621831666600552238426900411506973719106896632644314475903878676896956843546680597437317922225523335342504154572559116833190245106527643708886575036009060149772823680747867115430337094441035297008416990502421877108407048344798479064885539449570000775867818136837997111212198649935338862520516890047650365290029500925954883045368360937966424694936814616889533959233386599029786033573220477552896354086834384675289617629671396291924507252161706944883136887080758434768265888728248054528019619471367308530310313416722864915692515722841431002030785634049370444155461629458294594751383343900338750547607794193660605871715172688889201180552110630767900387591135178173409828674009267077161513573552060710837982287374114617247220967646092540386566764281648275330443084246611652827271359946719015086525011366100141849872668977643904155736245844004621952040905071843771934642411783936944271989664341915391833768046526169319535231010520748385061175131532462894753888887192757132536362803356691077321033456992168547927273007074184784261555713330283972624692292311375857227445585400717578581899184442217868399158117662324151470643142068890607234762174323742923173580128615717742390405066360479574548941576760311555149702040258481283637396007176637332104992961530138685864306697232345916844168226801818988450020343607075734918388393260324948668102030428465724687928127795326654158758707670246584750249294700697903485996393527007112963200017366041329547973701708793527241384025514629355256327493843816770841132870516193875133378951183241351261804735060098126473439791492462421821802382188065098022882410418198383434856189616809541738428952404633841931577166386788638411167521604464501493025128306329742995046707112307368776386647266621487203561004726965439125649836222717156458094394413320482590955088319424476571657374879657541065315289137874112281839751933547866555867724745284776925593923786056481153598673807479809513567830747348120467531028292027631897345196582883423921445445311169903202496818213124664102025147750188202159684956534654576769302310561195082387780516351001824630723357006931842078186457578717813550771536752719754085696963588678245293818815934014766201805131840340845199888224209782127107945045643281396010875990329999740896597172537230969451930470803688738925334870174592104980587419224833250414963707824997392976497016414914082442484042764851841757603974782284193052715896368128563346381847403858492864447529796606724492830218974023168725929353145369130924589219752005750505098718416431171425010838652543759896230804071669531858361964184443444797607902441766107620686825044640632621565642227614956923742332710047315939998087923827916856668016624208231144699958586212408975599479860569430168769594930851310350496518565548123877119571813771099676939016547712563353180050801426335133287903134064887260340031245709458252583580725705607087023095919957551791450606383493501597305954594715105877575182750327737969852951208506552806313647931329377544126525153318789716326606543530047759960459047162422593379673669686753585998373504486216867096763497279499374917057395608505723751793242980010151491211313768648980628407410103230932979129746936876577409081843167365036380548633483104395977257775879027340169875433108010716108399223471995997900878565339864584960828360694054450677573893218179151890667944398401091216465903014285531734818964585340529368972904285990279405003636303205596382352885228152639767874315667698478337457493818863331993908058594776647768709245122921064688891336644992764012594773716862800939315626012314209778468797987541076828181515021444580018189760882507262580358274497705488721221530612473395565995436780181079448956764109674306168315456084836674645471373563370825078802345264829733006420048663797872342759388592807305737842205526932920291099800695313544149862076692093001460135004413602775103905393096128789340911336175742004239628880792752298929241615553201570232605267400878200313690947022063584944943506756527108005571629523143959895293234984797790500445658512608432892081871051981985834212821015706645363377934949000507292475607541455102405756948062089931659518130664737021426226167322829569533605264653593572883863595011352843566997715666196119102535418120732152182802101679164707925000009335460844228378052317682021446946128233602613699614562452807061241475668230037703487298506216809830025957282817955748233283897131918114551505423434523117139213324407545362153102886058917915613903444552150936548234243807477427457955909478980576902762101470084319207554570008920006756326204602469332010494859503742020806104890220232446516600127165983287761392211379198026911120826546335959132711044651898450720322582271407913775066355999089136734884495383185111621560533478673503099824802997788257290064817637233526788306762162262713541247882631739659676014465615427546784196029787569518711278651711417703842561940519053361065810643448276539820523426576904281291971403575228398154708574385784613619879168800302924536909599075627149449825729701504241140822651948510081745257123639923358189996197287814804344935189654196789678891930917109283381120342406917524247023251318411108671939607677455194769717347252651136137525346481460029403329765381966061213288921731343292293945230082481024200774575073500305048223494248589961949117041330120489716327868683543242468619032117599613822798458750680175042018687446719358168918718289443075528464437915733515918691330617768096531461581375685972601883996730262978102052709549801295951180929441639640926418460790596689887546072031095298713334457519990612812153824735021298083758208829307455879294422426603351481971066290669005942770367912079641934499684160959349652966965851411686880152386317302766888857575897217348029578296259798148301117157107442012403979337357289210930632935854522830925610167416883486580663016072278054627267696183665682996768570366359301005452211028513238070885482321633940738615008335916591049361814883412522809665788893491462427661346546072868685351328351555444099831840571413664237559256899497377079928523269450882613802620104188127911757602695981271803572622521520969402487373862135204762242234801082711445247544190323344530710691089278101442470508246720068973223169476936110309514267254659864186773080961392064135942811655277193671755535867348795733393712556187573581976750599318331693586549281746879114875128077080883791644388010319331400761669002983987472587370677933173958364642355755028852165764930952887366247717634689724715702205222656138976280693135341151085703763888574605161794642995489486495686732259125301541148778522448678224589457141830583657776471465737333035335497294434678029825818967345337801879998388311887734267481494899343203237551855827830761757124509512840908744775864209201896566784461199135365907377488490920879363149439003202830382347475049269751462886531259727641337558725043978230925233421277060185918918197756742018182895375386524874596973353455200992754416655385882136241716132551403918196576425198562057075373981607253809061783841001638410473987115219907735357770213091018709053107062997942025120128471839744970377535097471431181688166071214127180895630821068713918154399328395713349083579402564378627759563117106643484617296725501273373261285288655709853723058247788236337819621448398122695735216057148849808582531757746217317600866826528503619961708028714199056258068740042087074189273838074701434981830025312762246499185443299250392153593920574865615842512979566337929507702380549742769670845235025328362379358388668785936764798906616512173245889127647467917280613818089450012172288392160136754941440621785350507986110958486921915579228558028958049835227759820311289891387312962619599657660546229866461333488321407517538007727861783034718772236398382529404126733120876237677624563072838552205534873579889223891737342433246105017462485203171950804541883417149334218809439424355062538756176268214444816351588915256836606181931817701807632489698615912476141401008334602618568788182607480635967641848130842489892516867730701947823351594175513888807182990500387520379168151714733248409734697371015371796152591624043422788538201340973138453269180423392970561363930918597599420266417931339017347895431772628524516367311112708319873291778831132530674681266697163240169801554943107008945728632982940605664775756222649277992047732399291163941354684854760537687988813729062417739891333450084316796538495464303384232375671969406994014395532482627090930960526766315809342962755781236601695134576225782855079084928028329790409466749253423475450225665029896619240793153586664289989513060637282944695494385086696875931277605584478605612099869578621460517003802880627633659771797831805640963495290320190516198591879088069316980341613960638799336573149351188865881187911813490616949944637010056955115032528063243123150118381596032546967380242351921933955917784053458360866879148688092340879385375579112119068934069563899645176642193272072599760787412945698528072133490756877825181347201474177535607543406809830534303142762263769392858619182648314579176083177600502898160221249979497515492934155575079218240016750807048194654291487160495735479634267295569187273741522282159027036232606275833736070009543430364469525129802926529402445177361858850119413254408424159769752966199470700781023135459178031422224848312289182065468214755718304023605568910634784260164736558220518547627816551491524736879653507736458185241548777940469776252072563621113112842777923899840719124655291684794487064354788888133600618576909762240736902445120928917025532404184940452087647535798983460262315454695102071027822113167975443479422658130893132258942202436979321591413828612869078711630026091576434827120730613467639227714781945922860566012882227553153287746700245733033798780045544024923559265302122560131138953720787023981710774554881625779238097415763563868163757087629419955098602735701828909426902862480282306840614066726317196809567665606158763405462501268534512125852547113280935666737844035645331246273290010569075990259599841942588264112652712637949908509407479473563696304195870469370636820990197086806296969143600500278157357853125676610673928632948213047877709575699932889839349493552805427910516398079075687761818168009864705265278423763985855620569830181467725870509235336961809171528803058239075835344003451943714719946770267583145324085284093684954407236052245329397282987605749147925670413762682524733415686306383802953095063351164815238339988334489007787891004782805085044102920815938720604054807509991516059221271365671599629578496811620572344860067034278414740707752233077403256862501459393315453033597864648619235170481119773695775074520213520830114019863782091064863595614532476683675987103988631328460811924766623034738015154508744663363491644294121303008152614633212890518015614547194925818764472558750262843321235555625904648310082715152543305582752863561621254961877457207187823447895343959511182610903011387396166332884955092973499546592568012382099027275407070788124671097412895571454800814266002094618427342588867092451195946451256325117167770018834271389807394910542919096637226526896298777578918416240712908467228691346200967166134736538207743941851525035847235275993141251263325389549025546099743171636966171680108486635040528470613728936940551571820555748783820315514398911782759945984049199441548010017840935773754456777541472537167356245214190385044815389729077448557904222715825174932664725846840262876183250869190361278767244102913487291040630876678546485306728562592890105856394864185636571276018976580212213670690877936334905525431930535079526801076379990050949400626091560308688197204400806002230335508256199000077904884493798448935477727418561332775290137525923365966306133685022480532334874772310360876747685798363002466611602319784281991157084873514574209886929177825000700130538055590020421051630563570337290969162641597732001514176145583524079594635504205443192016398221240532803647893388285327442730985208987487960620683465061658310556134296251209613074650010839576742238255822662654442255065338938845390688503594394138899926478866540142989248027360678660600850719069310191308235596434317224424478386282221936786622961336237748718985570120286783721800543734897554083284134809746848075758112897804988285119757441619869358788973084392379816711943101447750548558429787395968264167189652793498017886662161565727738918522451248254205345166508130968417915313642866367476844916266015674788654618984332032343206697155951311026741745841380370706358254459969233507398849963182991317414065359298669386075689794412562379680874920321482346059368019144189732846454918705783743238749232207686695061717869816624279255740217835043963816632333180741937193276997237525032744263443062662645294663431916643520522492698268623823673464312043135667746307860487385029569464532702151092910362342078610548221056233203830451545160496934656338795542721299263323716904878168757545906690982329272446494528553897942110359819468687600117036868906819494543834014614550752678626574759115955394908791919616248062725625386290863612455938063415354501899143169908248981801101564998334056616245888480067521010807421128715153154284442872652103716001455101487020842285727786224228677351342849692197075308929357642481988706682453531458378342117359875748508263417755430458794797955312961017862218674011257795892549317377675788958516535456223763883877118289456779797852569588707865247575699700868405867048917428357270303343249507396648523558479553500131081409918798228472651652787579014332059045038618145381261982091184836637365577904327149802847190769132901317079547741690644942649809419781999105492735472535451315905958772623425438891948335581885981656415570907396426832342023189962669675547210681519199601529598590485629124136287975861229795082965886898976414334634203311875886940613035674057452053641653285575771444925110744706545375290023545188639499732486862114209073042446151197487306371375018903329123345546139902346251361599612386985511609512551166575428678104626699834344089734008480087636738135377458682570039241971563699861953033057725593821692463725434624110627621030443539758404380072033916728175893802578610729775029870741956307548620031099947290937992363825446857356309661031073277679911481443475071308330001813905411322520468183422050630557060953794225997830747561293699971015347661487240476577428155271354511493180021530075568437436033305108613885338034861781205412352539565874720484447699503679704293274905998221359786818064770282843292715743466406898291913126956052638561910515600736171187062164233899098349588398501229349620571384250937389682275052763229463937068925610627894005513446110796550003729121289704284555921202118147230687966097445647147744678220069668688194792396742395212814794205877704795237803977587022375700304820233328515183426107366986430222410357925799873282219842462815195474790225059824129128887924687316417500638979164559912464783760345486340567990174863613584086644412640584646370969774038394966938496522558781006152927827645635278400364456629007433954169671176187400085366284915461892274191106544290717353008365298397376879297141188564249111482326399383294668026177047361531065941779911463841893574757594817135484104895221851238413716120441418262007609718078716339925370631291854702034837030437091486673959404276688444832151116068952314136658938874779269247878423362432828678395929297759269559725786599505174689660066206229435002372468479476608456943374094712116199310360330911307756220975874274166167661371726297394997100820920497467874107255145108752301205370203558620278923120245170861768476549171079583031525100359203453452840632000730976502773482706404725912604126730208760528031719408754985429810408100071734006910005073381366190171906823665373486670642199593619465685719651768184621621632782029802341693997504079904592374493792083346306672908680212424170463066871057302830683336044776912642471471027475840975833763394436898776081205150449918465479296853908256924741255709521963852631106103463052471766265718571323083926022731700773036959474382997188002681499473706970887079271628398337253601859449278993695175339282772031862148624014719498198240777536496914784910856943343543139098037620095582332735592330216541729499527990444944561858043498464410886726684281720156547548862459804582759453899484173101104848144566182558859552691427355173024849658241132380868106253116782061281940006315623956808146376403449499234857289640220904199367525458596264278412620184610636921677930689042977821431205998565531562810904012406729381428676819713985868827481636553485336298748851578739318858427599889303429919966225710839135976235049266761963793543877395696144024688866104823690484931116788512655582843378987506187759717518630029635468153020176099520404970823125660099873948932263417108784329465711879290477201419613080240787647497559555275444627915123954879233630966979417748164569282138125695140703800833688891839807936125771140790857833965059774302832492212251911877957868275165474535829668858056099120781552491367294267649687807168036598918333606342588515716992166693242846774423153223155645817931395248516378620169540627025451670924952985641281054816260797991293340530121867646100695362879397562161037407845824266529694238196174410288917134474215196283053931523999171610211456588419099790421652660668128054090683682887389052040957078248519406169065746049203366309371819711386721174297811658529359338815350684524836115530897809751612732767019978774435892929423753426603788967221348680760105856129488834297465617090938626867803497113779688250903600404593337547516891337528641130922104212309697606023173881962452423222496051692182781818520331539090786733264739635739929705662082351255003452990907067122771877870230585858568018178438575020144506070557451979384215407784778244928532381812248619202621032283769835167709910121177887190392282313394755436108590105500911642448635050183199971480708298732434431286016908543294932921685357068283215030156379748374846221566197857995777633407742465176614871854993708217719357635967006681357088310459017983104385680676882962222771106010013122835904041875955705422317477244939643000093069481730564063724943559663415571363560109454203530429446415218484504685512234142190691629954742704666749570436566653654716707829049839097184240811439987691401018574396554430395185483455153193740621954697984035649837392176051700906378851052641836771333478795777212036666047924371941007284047241553876318203344312514056947829495939327897212992407524107476973916657698514190385394417117834682987120608913540117175896400271735561822611808058709975304120180762185549201094439499538190875186655641381124956605201338211834528199739133641911314386196376263189597637232261491423574928115348332797664547151687698714528274887989281581724559712083020939746858692619823574542739094713640628651762272688626730082332953507417081150450293967224185337234637399015756027589025085933518342957974590767369987070455987649415124258707533953176649300159838935988739036698795195685940027210410620675814020758894649591569632795437009599961775239931317906948492790521050235633870696403813866926906360451346222270773412496093606568592639492039536180093112054221937793936037194071566783167652666648193068659234776846306654201701867490908123397184694430926973337250801572019323806267693597265142944636555396547059818536423632102367908282900552008839827926779095983005006020699068093370107104455333424256237021492326132592908528797862030983212932611124638685166000594194895027319596751609831185046133827121626226385294045213385074360192894358909635998726265129424291227237627547323420057286531616384506258367488857424911044198387183306611132631326222157150649408599981606360215399602214908517113155577046685942338200301660874969271721168978105728559476352582340974556621769927288888698510666826931997222721248666327133836735716942429559273706102554409509809101830515388437514531050831934885038527084892893645259401469520435871889948290048036787133001303619153620918371471911839092351496497826157669539224177762131406640314058914769285379053318264688034013026801868955571798220401576679799089436982003967427388639467836596104395920887396003703535884045002380772962383479427497212978820263502041876836094506684986917081257436852662911787390827207814841876665073749624460085266427172213328966702976493768891533128307151566234160186558518151593592274612468549255131529660659776033476897856902502478889286131006554104280367407364227615140687133884550446978521979953354033209848465091536520732892257314419351910535487856662281484302334049733228841521728350063744161465173887826060637505409538773349024143720701806017920094637663763450608375520018862002772733822513690854442572077837167486044631804748836281022360455331731693797436913845031173506943653445559117543605105731647344158805323610392433853742236131136971023978302446002203880969117503595123003003198635689289355727668292547177823970614010375181864662254365240268147760665288001229863537615301518283025821164528237689829308618224059399520571595936279707606920985957447970712307995946673471089023798969278359095178010886801274975391555904220295883591163093613559420107184082035031313852383434340686101258976933283430786319221788084841731148408911761719952404481270609451134508995687151269615318226995505227028720154240315049153273733478976104628151982433220656363057336082664425005286840697599863418239152663460985820317803743102253653468558378428009076186122233315537038540039904007238069369393458993582496531388348209489842051710062647026289169674413457241653990414207346125566404198828970609090223573664603614284430208711458732236622952418218335928988182656890566721881682053001737402162892750021647174421911148299866596337944012344831505494415710440379381184975457268822170708281607432043994498254318481684053643101882952145717163518206104766425040128449801017570060419119671336443645988178491717196726478154639377431440061373541527322418851209741739229951398215811859848797757685971043914324378264258236324415442585107212529245203025184555783905796547462436163297419538592235603754649729261065425870444095223309561402205350023662617656608300328869867752412923584775032296750886015734815026762208533855292282049140871778798693050295325214804273595510784399855236709626338229926193027788087175295197870442378839066371555015667308524657837922115550705761266448628980077593268608613052400962145264718806786525421517060347840973709285651752373132048310391108272065616109582592432244244357964343067321086586422271269575950051281589465121629120359516796843573992247193756364484663166010753680852510220886756435899854739008307133528288802489578194012455613675823044632301640154774345810104735682942303168371023842773475687609964611671039719547424060924689543837314774337609014334768586639313914238588300132429214162583902799490785750347185469373014434698515484605888061365878207891147511035235098008580645443916678475630384244440013322532973311079960920463007296195809661509034455345240645871397552505023324341085374477975748764293103375547499969127384421094830480898739334421188116766340016608703180453502488465585449348767081506968279233402481090495149762553957872712141047687899302757896555356471890844295618388191250316218064502403212966265614719709903444189433674685920719931646081948469123157396389292852534790408479669570385333846021258385179868077480007874384897907677512150237640975351510029103477151265734145770234140377854648854809746281628046542096355083023950799120276169792675688394746938533517348780815683124806080426139972989298743882092000395889432185258319707280302497810882679773486462147806495628531425547037304338840530563795520153929601032936190501974899675168402195840283291363945314743463381392220682628519597733145367200981586117496991864163308088094307480771353178799642382512072814509186819374148147610378666906319121675216248353807884065882788588840843399159242445443905071783318333287242136666244107923313778875941815490376254686857999123134848469817141312247638686181097274119544151415605138123773727779781831096256533080590081208765848813687479246761171266139049227925484495473877736712302151860991755762969325970664131153317533710378230916597730104291370584274309046068829551125403404786917828664844573018218065640020720196686460278516869876878213995793965991513800330772954604432628432633552847843163466999681194116062199471611965143241862349988788238738075598089769735726504226668403056737706812858915437448473938224156225985560559622013448469356502442040989373141861062815366337339914363863223871949729055727333566818099678287325107957010326336903771226180704136132286044563749733173481623761234426675193824431345769845267158110635640706183943944598879105673362701641875926863751021390392355382457906293735636576842004191020004795221684145322417406892000951421300568008386706617832972667454586830766081527292964229358430106477614394055300614127975487934022695069321303484892203863070611717627371784763905188149110812498447028635627213204260296988025499669214076261927144649749877773668976351880551589276782937792287329167899555599109303531265113792215265714059980325798541726184666010866410786036879751380541839376143808825560417778599300729798559118348486534357127421729641132647424696465343257400309578213440477541754775663984951940119728213576889368995695792530629839171170740411036399058627780950324966409195839448488976358765360722981078315495036765177768886487700674184109401717063382756001855315525298825859253576155056021039141275340324343659756821734196578824256990050701202194281920145986443604983247972674916857732678142670070666756569829768408719261729061571549641877699344699602926497799202717505068032968956437985741328768710781197542739748402593642107235377230736777463328133917648155420177580022050472781472526285092198025989367529810528262344209409466746866271223162026660777720309220102604133542170324472884043958751089829109601696918135248319513721131294267274042510374875725616264488158062910037492805615173118283677571344973746429830702807229550493288644658013599077480729411139816301315441247162305153368501341926863252786596688779278637631775845601668570580509133627742076629871878321631067988695435910324450931366159494115701135541338935837696841216208731201262983686299887641169581228127477370832318319076894236056505114740219110015710568068730705255637836149848703488778600105393079820769478781298958026236639236600568440784005057350757314641763879622313555890881066509237136161679959632527120888732390033873628498535715568446157010569591815677670798192070693765978090128197124971859155474490896323695344422339340667735795153869622051241294651467304655088354872956916399705449969849069195532817916222594432656708261357364364467531765387516081510540679189220499052843052485844916952590113996374883183940644807136498027673952526191383835338118951150191305678370697922577261824914177334636630564309943259362355418577038095194855074513576417327716101595776423678709285850879705986516056032204231581740848642574716866419363121647808300256175755671010758440743147530213726289062739380858227477101336530856961475275797510177900008382140579671790224132136767083521329188389687349231543516566928968561202169061571448686655994868530242323764673644058361170957648832376527112641461621236448122009831872359158245725773678876469855173803427652136713995155241137235927410240109926484179726801130942335404789163963544864733175411413077706381567606056860735132224287652385020849337673324469853974642552021709034321528752365970857974260487498150403117672587309759261555127845636660476328251433799549933729970956264352401793117976702242282209628119025542254296264729996799049351848592877526062976979310432839340253100862672628833513121398657683695552553727443871123107022157022881850622544640827939792524510833435498397580458927030416884808668187324807713001139843967425776836675693543690212767261999541035819420644667309867039824814126805721353145966353499931283339813420746239593561316883943253405533439338661412783788271057844811080670329205160385629105570309818800607455267997114818313723335409077179816891316735100058682917302392322788813062485748367709254272749316189040909935988782443487456865574619817196151771005206873153066392224230731150681395191192504726710199777501179831123223361430821283127839987201396288682078900309008140178028844866613733954243311413244502658482685992628189198228748143656589460003717786753003701854809617421897269906603783331594790115842736919098724594456204282938246192585898753949540805643349831421633497101812557873580466211177265006411557877583821268087717672438115070550888671562248331637658189628757977208276780626571485653431124367602346488845168844966000148140909591195545615219173724502319311317283718508635443665858080616705749438305055718002414074555909425254616635029444369269639367918037680424232949939294796418714613045348705035227449352649865783957436299410885924449204013646822351274673095687496607109478292425367413185309001846932782032704780205550978247400530684661653235526203355101232436596402348385412700082661546450224640635579253576993823046892243109194148106697270256715643140997977233834241750556400126711888812554458082827264263223949509555613276211166658233554419600373857203004780672513854366026873896515645392133748500701039634027699630648052131528992685571032217877051131931300792600934176398096934445503438186513860256683439846766521793466568273702464384844433655483044932447221170653523288076935626331427353761432129285060937878847311995898062912209555418079038812337324697141557387585631146655834999251920737116177983825236622487920698894094247202090409659504101821438322439244509857077573471056453141647308962049659787464495249971813450029603496379262811909552843486067152172658952550065629802865431281375097939632825334764337890654216247522541038555535807782604553538558173282342200945282538309894720881559346271422878187008800488103298268993544529115986309375115148087628015037904373760333904474067701362533078918119473915611631736141116910905343952613154522618895920605936147403764212173935049063069243266463796734548471532743156453142955664163975015866147678730484165742269004721443234783805886034751850608166435215962452966174195413264501633697531542413607814138227140447598674885431593450786443689645572200206390011398877446961197972471732286053281559065594148229312602392680150452001255195783804640176855776094209781033383061693984577111130280381921935625864080757992239435426076874787332786439828138668239050055122367025122666128715488152188707687616622911063402229391606333177018470884482105605601435390075521012191541969768623609705732658928278143403150992179459121083064639942840231970897273975787963770495450408952365688552426635695024749239096141608489381272986239193905516604039700708913414551599739337316030056207794436812386583487553483635838878364530776614814762071958186316262953962588600815145122079990813404903567466915288197998053087310919004955706917226269368714061984688041021982191986279021633829792749184622280203869159686834415932704706023258985620615677690419822502821642753923594051504619482701519820457951991047482861040669080898763435691059175237223225883544037448513405276148627440324317844097662602440613709535670512370541152206043248996697223141389324477236708407988229564120911291406426132526566657841298804835150014157067397761125803086631727751355433985246429751499690803884177097781018671717638187777336994391276969738556891423994077282223338855094414993497009878031821623623359914272533642026213451823170367346808653790559075128331318177385341668465085726812209704903425437556952877421136637655182981233350996949260279441017748356486407112798334443864413734437479848290339739380375136498984555755384533306234917162290141044720179408631164550343202059860965666055244242545303415641908930457935356621307957223279361349689048275591617671393005634319795828624629535925106692920820125948285496703737097961032575123108478351707476286218822578181332009152984983251892609807090128297464403780056557059013352212147627515774635435518908933156917794492887733917234118645123287691239922727504397469658051717497414495315208800682349594398957423303378486368887419663079845841507521519952990096503421452912294960258410691986094077982650550566924905688559267144832175754685762693468263439325566919460956188794919887118892934941988894955891004563578593934303127034911751110086554248217182928295426786866661544732402619717321683589896501264686689651104435830421097222385365510084767338349230120518954270454005171440388467339142786897332600383718386555621424415457609582247967807533572592998388934607042436957250129090523559307830191218986852673765665483156448522564869235094529360217144291086810650357338533469801109744186832744498382539175413830847585020380182790547621825489724151146312808268186700379285255739916861460359324811522086135862927942132130118675467554378842461523891836623842322393111347151266430785125146469406941624487689218138105000163757953398389275190341210212905824164893734123150453567890794096700336521760021073654250238432068830519288259856267291029197517284099927982950769195691962184070379811345483488748945913989215271280312191117018085416492479944298734113485329938134839452569867655584604032868966772407968834489767325455018610641551981182398269897595626992470800122268524615331760973478005435424550699113069410097340322339843698328768273775333533772596632920330309944979478794311193470898928300652379151489739856114291503623596582288352774449140462546929391672966818476530015166571631326540026360881968162522395582179102154161633250871842710481604443940170509919434580901506367010802991187860692082181336125675293146769212050265675390814764195959034666266274021359601084895227720130398884597166665784214114012963146017009323011643003985190347257420685292839457807454628230006209414846087645833844829494109834034512315165720496701087003741902719259798574253341667309301655467104559379178481933573325252545265317991560405764817252609635379964601126696236941601778625784023462398638301288803640374669816801698142386860325283037458528581040800843782954176187103451494797387377230555283211437130922596212514412231770356288000056671721837365888198639587939492930568164644230952131727259804864926162093999483432773523463635339411200062737950746237473222442547684309520187640208610990177494994856654656001040225580596241779630660738786423324585880063321516954983294288134484878555437425581590341500381353127644154998619422593794831093222669625003182611147658514344409202139310267246179424531445645129801754895887521457355550426935047847185912424412262088120319960349734361719618202887485209246319091747081536704613470293330758643654725268008308260402464357621791246385912926030093698824793110165410689642090479716726303247166486806642298723677409040019695095384435657705952676236469419557622795646299319836456252691766355666313040486067775387346554227717838887811667136128911799515673556050685587001214526498252232886785567878475716222072564346546745058446114861195198891439979825786558100913533761895885489860201776971342233155941963748605993555175118385331728197672007985053807091474059500410721607089864923477841222172060390046749271313105871381122064793650097461069703386050026269887554612838195158434320027317973865201381969835978478666656755881277461496268217332202909731705836674699290827298261180787908101067692402951978358947385450754312153857757672249917615919768201021623715767108688448617147114665878616359123624277293371528445272850284205636608776393133204737409036434616266917353095783724878732154982259261379298905642231736240589968823708511677016527601241651651128446641401419488319279715612711532541745140128463050495594829979336325108268030827954884610722123758674160995022146020960617559464893187124244367744763648355751131646401611077701124686479768091375132093649654251961938788889589287447740915398967556287425184415936367982930900252538649702592769333142221784806141631134039328594945254857365679705642288017032178748519344440160872826110202581145023460968842700581328292316895194637982319534641703042234449184821696370270080806412543236415481832909607942636080367236597359366912919073958312215555244113100631134173066612567517979374858964231831670188214630948064188449055716858025506643073640346415753903078770016876431212076006030212666394284515986733608258877344913280733662953897399686645358630046626994036737786541266527772860677306380474367908865754145781344601048477864362617469017205347102681359577003635413506927094031022950875989752531519132463426101868041870468887408678653762786138540330048569338967473759412563127327006891401106419762574459850358578031102582927733450142269633140592841879067321313245994388135197545981214254781761856549447568945751621649504791623334234563343714356326812584008235998343760968299633244523532496931853751331142158722213027148953533645189682740530773588931764320178712295814374618542251177046831847882056410615939869396597686997599708214986457369648640308315239360430685736153190444252761340477948539637763760487618897368088068370917262470820158107060996438852086080758843047069852605146151717085142280518542646477554027313182169527097666772202533097975549819171006174316909871301005100394490646562331316205333491904188712068769461612566943656633011414562851568478188220329879960331120623908842868293883775841588927089590210815153735481618430399559185381138995631176879581860544057797327936443178157836721330653024422151360340744557963623817292038031345338550382081954072235047948737254226443874946607942142526930614576558448581272295608883394961952518226981574068515031268639084583303836338458285635440469367214973319392905304153054345341941787189171640285526038669201750534519028324039505329115798103638392612121820141679512459875900289901508413981063599760734607182297330466633036287281644096891818806596747803820152615354910485929067620382225976846690276376515551898497182197244166089088473328518826608788481089961128109739037907680108736873735135729787595345553619649492025585365584668887108765706549490186255118863635549307250967247134316501956851633067729814344743166860597309806628550384683619835853045461724274106938865906271793946952841721395758015445576813201963829911665496393658734094203020603111465911584700454815647853974585674155194271528106245793277989767724476257388116743921120655117885217819752002815416015442692498307123582743765850714688462484863063997437315329732538454670497770116792987460055617944521102522531857122971328059416837264610364778873192047579269408970354353243659098736603315659600415565327577338217830948467958385608499487184779997841750648854154692259401871210475292997722879167058944777282415292924969675734333898550029989852114688199046616271367362044557300327351271742631005462549983134175029043069531490337345106446349715990787859637556031899288918559365604884008125651502490875479950096203828635243912594549609364843414676171949500499898664439427529562067792369105379048157844020751530908569554173258316850879544464710824010464760156338002695423500423044632052843114693179644249107322620175591618859771299783560682768866107502295110646704791286920189447762129540034463855671530056815401830199393039945130348266062009576296864960287050028629232233446689304601803029966458455620900189149393888471942820912903392292766269534554797156014318884638066982883506676834751972139713474763108030346147558942680274147799151381266608500724877004610273410914317922593965112350089147397046210811578770609953321144888954044286052000276160849431341107673217817856660336321140350708577484245787767171850207944864995189747654779468030773933388066212555984786844470814724329576187997548816647541071544657685185435111315163643738023054123065598496178509141908309318641572505115902371671217910654712895346283805091234784639547342826409977869165999386130449146574633541631885862387146105955549220567949182329469529453591458337849426093880783001025586014271169703080767613681493758155388094574242972923170321235455689650542239452518469858693047988924963917575541345860733819278537263910019931187335365172203989334504428824759935380349146406953151980057383800437917809415056899186375359899376378081307673462303043150973844710059697252313832741614117504954760873110509754422185564768175665188911039977779608123805175626726824354560917513659099105929252065132235183209718310383454626887333604671629363386471256763372926077777825301197713510220147814247909362169779097262451186347136820697084027347222103130350661772198737755979265407015766098863274993603734626426216643834538838738732108898286919367481203332611662601484205212748320992730288517749005574754506717468151496953970411615796647575808893878857382900027174665627302745322481023589453523172074726348038166975684504767733793545371393500515792965751604580057643799647995044605927160590865844649850730011399158349239244952958133552642251330948600653266366617047479968414155486884109580210524462283833657618940928893013220633014958880736786919425347048930903968612828934750647270703924055727759190841909897236408386723591685155023221770794327350524853915501125955653245675231211030846158942315259702428282755423931348704740252044177455084268613948381000733312452078699915447661176958343490715640757396933415288920382098047747267259787783649130202694568210163855822434602114528705729792447468875059915435249567544977165037810583377112650797440107451801086006089059554570723474060431017833949650104567666677272217889157680417611662579149919607970135327092392466220865698149210845219390776376448665597868556047947750191070153068116633767791946745811278515843493690412149266259965677019048024643122166780334347546527187265750671654228812073695278724402460486998925740592067161162168708376599423927847628251147278031524878124030172040779759863292444941291252610172008898391866895666551142049560072799543646170879161262712909729234634746318859145625075628012286761579629377267094771629959910843272452850909949657625128316884344131219365204978505960578996479966205353329365801520563767784547513068258997751527040987083382707612022448678233254259787413905012661193679213764069079871573881742861251662954826594364873810439800691048421520084983371866032337864822142279891114599767705394011051973120411519366557079148740175075079375139653948797462967556339589069645837766132072718368147160267190640768612045302400386853350802911297572040423580114010402589280905134091950721811860598835046271087598733999414560153188080041360244395123382197835326589734662598780880161398824391890369865197549939524957991808242490794467433440468127025265605783047676973693470722062497455641481507814641528226231159918430665102148991174911697844101123951189736199820140831137615796350313574757101922466615148790944290120979090575234329571856662599972921260207322655633676300342122530596856261496229238678243544218503491872991048878461939856525491547036956598724758491404123390731734648994878818151577940698993472592959724280864840720303736256836982418730141924383374851453626176175650595050741484690477814980380006277417046598231446828731147265742889219786553978532779457659116385480051570946880521647712653645619244613276228232231494999591841121181961904105761673103015799439200538457623751903320876816953874669722828338034930818288980114037175468293584759872573310170875151865193289894956418109240268069465356025388124987930935286113256313659739240225433357527752511184696861494498973646575001784567138673362002960747599369717613346199462538154044183456640346732414186725599609053226067944264340267414708109713095103086947023041373033700797410098441913072227900407880040559855402266853584146275496268614726727545401782093524315222403671310147347424557926581345405727209979852441291891335218966536782098271761281637623809760308201695114321416813082888418602789724912881747564743710692223831894206203969742165632762295709069415727869417790449227019576445496598420337584015095279445279426524795120294852412031789471877738891782793805668297795054771673556534388887224965524022331524516395802183944922871092581289676995105331306124880988901705674566432641261155283893059219401334857091452762670606779320662203498395086462781924244830552028473389156666433454975664859059278296976183530956530337215405088029175243556500968001556053544797060278533124751368149055871240592332169538304837582594443844453085336504109325016119500087326771526633953588174560438247177125450237573789118134896885554174441774393393724388648570332977025439401138753665048643124930794206963401703752714237744407967213122400420384329173779382218863487927080227834768257990780227435055956042930651262698544088035311885201335533479638797962984222846301967353819140497113051330837196633967154268337860020175100548990996912429752853205021222858310491242146955410557892155697968582572856022506735169803032705367442248734190938784920913801660811064680006209255001487449208689054232289686388684161726397035258340522039236557901669422893273168590124648227837482334126438643796333638477996447765592807549812146807850966006495163920478771554093183650060904067135656929010249645229868050690974483261376797161853015463302846528329519281675660550526077650807466456501454810181741199637661032980742933827811892272809489829308673736464383278887157483378836149582508716852786273387320411575789464900295854432823840105262600202948054339869486641393012088068096001725338589144316666090057069507739304741233117761978764925574328213867326317693015545594098211321183612340851496914788305895035819444468808687570387713179223873821488330211375421457724515634005107988157220017918650547272370626806394015661786790480245715020252083734283720760423612611234687478136412906285769197737305505674625239048431215742316220999225016718192988334356278255455474814958836718748906439205746160897006420512555265117093025015271876353577014557514455105520016517110492539720926504788208325035828679164829963925832307196481278025451519707007454977614469821897798058424768735489396707004572251470980003602240210652699949960936586649830690436599152501791248622981708293346214645374550927792497282609500697951333792803271547853762112526427634473404990473776887965807320880589014599404222512492963700606285775493326767179718077554681474364148358441374750904091445590848798427169388112651137342448473748065104931431477054128396568388476356131678214699556687958677909155531094745856068775789863835745822424443174462575363347258974305962481080602451488784177238710641522896936281381945088855866787464647407596452587557373875463869314989710138819778717235959051481741469680326888200952563161704805284986810052440935688495679788769227354563915436319467934257296533143221149620108982155332049935764021825753280061369316362815715553596919204425453881590546701683852049885928021183175047337621145111906977926186719335734713978718265308332095201388302202704219111491481701679271503530187778472326095901977827765425076641667911037101963097323562851701070331275825946704522699485698335767256546886789264573489176121004036867168887935274612238445863826846245523027673958509374040925689129965261068810426854152071096962067055004370023289338713915090765899800136143529009299429639280755455210945256704357923692955190301999324205364216584074520964930158105236473143780171762988217297385666998644585467092116288222505475528697452009980585206884128212100903507867307640640372611172828044859190471801908910101148915227222865514926828143658552781533142057169602452449403425864824454581036964547615223158769482356873584052668446437737904932522552761965155972394073827982677425894296251874809487618627310252678555097572929467188001622655829542607427192567419081398121178390594508745205974519600445691299336883690872130775739337632593649251567275393316840484309042097379480434552295380485842234874791841005934197227364964461273801463353127950139757480246882313532350995303204525189977846786540753232758438264342843135029394750544063214914578373897424439188394658350507220314901848535547293201372438293458982004584343921294736122976521794774058559252263437301792705097594444133110000865031254029075493749373990842733628744967645537455617481615332153048521242688002513275112976919601707067990750919016780408651160832317997249923458286400824243240966282446780229631347847195249129895312662392968547876108815215186550327271210897884619460676067529766630014463321349681110200746808951882267157793930821936006740912577806870786134436367800298560419118722524915844887835762620772261223124041498495228638961656648460330698398995905023677144741863211933560353623537408223085694069503012038694025885989984468088332061630655795671827333424899360845442737154213497181513218702225569499132878950377844197346876024543175414923419365087479201976221111465452581959621539105445467796941977247709598634127819762501761679084373198686612011348034356306530017056549647289369192545032012743813029180259832251504975301887509492720491973273897186426837463761894978715011718593030812613289111929968157534009653246148261181289789264186021484974893627862746046397411880450637667677260187153606146906882640705063280387756295464075788602129471625770065896113546033599647001329793851255269236422775722664569352378535365911036254388609821610898126760999533964989295382200035807618270937442593242748615518516846687357745517400868670087021701745786242780364753370566642053141949882299678492519047135573710979504351730551202979393228627442490723496471227967134775917611170953294455642421794997066093911030935734446699328525293225732823156297095407935835057117436750981769095525666868824887681806184168048041110169533064369026002186132665647718821841498338701945902842917703774628135008995171617860987425046369375483202101521482279024144896467828218896843860995464394826317754505570292343697265526102127974121543864130124082078584953818392854320385059017801090185434831286287463752516338982767441899882873309709824364371080025716100756748254247286993901361121678645582267459838624248447203501696463259599054979437316386852555214498940644075693631794212063095998523094370474381473031323401026934833468049709750232404552170839727979843701416254285023211123615878172987241746042759252288338496816151061423291535312608956906117901250661861419314597332840290634859739018585080522293709836924601479494048246947347344248653596123504493257186732682698668925879883779787685211429363357175775181720284194097063617192557164047914289286885445487873671971954848618861069232215278733791476988748598919338963563081351716719692611723697264604153842697655726788186594527055933562613782429696892404247298265442357319138931514232389097106614370540653186053710144795576087407342931849292240924501584335810573097310615295440058014959941316812046108581391005982557006938942112110452624138264381610715187609053362591006264124007125611825996737189418379892147489216171027653287404387272554088255412731744547424141183656315372811033397129791088443491337456106994128415156430696289678182168362234526718855740954208512742280512272436831763054623174101165197699416906548674031700260606436907662181658500500691084012083950556636689283417421355305499245291984350035116765657497692635372408798341866415055065320696843179132749238003007813077072641402656442687791044611027387550122630181269158172002126679581139804794883403341008014274696696940265190126302074999006159069073149266217126694119514692140502880133424214833007953161193496648194677077814496880318904719862797861751132957032374351856025339556579054058713989090036576268849638136151859892165563577834382300879868135187160075288661852719757642664710951461251966644510783229202059663861084208138005365829852923217732028745779545257067524654754309109991523541270203248281044451107384966638297616207784974241693086366186081552862163867109933653996001682648775044811122810825006373282802585960239611484997180153137078682547737916262398342333678141233042659297496423704555137213193856264654280707430594224734051629160189690452157131545972874808998748686924638212435245285662060718105133989725755934189236901753692293293798920248732266610804544569984960029950425274050231560502172860760891817220713483830195015343924285607017612698273449942964581257418318078445267460086285617501999104132893657755741351425289934008323585888734763933643196441267606557687045613550168779046319050763336894606703593093462645392276505041989804776475959878518583815920575861007794671650373313342746184460352858821179380816935393090405444471963138213383157433348291877575891190715188682899536397297171378743013137344805208879583470051901649685956461316109520604255822079427390229721857547599686880417819124148404806638313918391308893428793659348286247861527196823559322993024013485292354931253774316081157369810925970100010039657997305597404444561025226464574200817209904907142881790261424988090631142998123218844767444547051311394960068104312824842723557016419717212196282924592770061823612701248964453565221679243038136110102352591902763687091491953635299060490013346135830451638201095321307700265247521638856113674339122299560930848722109772930535904016767219424239436190823658882405433685905224699651157129145599125911434635155912556994552448478628030183675740528838946013395951248314253385870238312584278613707001716618734036053342446149311194801409793057647476583008908546007027917112980317800801558430404621931009991592629820070566572134987235769275477129564069325315469795773674227743500980179009678716423946945181423610019838475842482400152879784679391628954312626816330296341689797598338669027863127211919276714024930186258218437664111055678153779829818224018645542179977272138069964261846980489577913219533939417017016778443945677648830433204552023701051950219143101888131594092158582763175577453470667776730868288568042780661500879408520334067125620321682690559868601744432971629185968015242666759148213601333855182423752080029822108152926315522680375018195997644114688211581218088721667856917846928955702118747970723537599313408287328366896550402428121597287879005290580228048760935782686449468100349819746843781724823126116847205687565668007229367190000849543524989732618195286110251558678783698240723349534566636746680748018166594523598705241447752220193258156317550817592201109623696547164085532713063535142557501537726784022700257755853655289610570336027528099161133955540981905276657993609161761519515543533115216736059636691948175303617463164036398753513019880940587338024271445083306029735071780872263460604841003220688897065997679849820367943469275889970188633836506725766126996772005787003453169111980264249009025078479542057830723654090001336316422076234450658945033489789003952330943232335037971364787625022699908231048547925529728163960679189013481646321080966831606403577666086823010015821967131319815512429519295550044734179140934819465320711018413057251888567095709747218158221552952600764065142466006506608558488749734167293227263762567722133762568036420593041479490236539290630634283136910836629871313936530078530862588235950363321855309230628618235545968040759810461264783968933498567281968249508142075166390949456358630008367295649942707452719141821537339969264858335728021754300399202363341235843225996305625755896601632324085953897372589821017217460101510032828561036534597601588938160633177260155837846689370593768660488194374149785456712845794623488194308870162519537367945869156687589837131049757762873704758611193283900488017176132358116515473031626860990163357630600354183318437379763516113205843201552088354096118177621094490976926998068080018267451760566993569398286010486935712857650688166271986292533112417099167462681461807224611768169549488628356363598547744629064347375466145219508443235685948513942882725153871262815256631252899472765148436828366965336094765172945846179199461286599482198458944898413248664313681860392150434433868784636181504482722333755981344871269129343942725579483021396059709725156855977787307254827443514619334822214999613759586727891755926240370139876153497816636263685059260944771521492517426477814342629621725237495531109360413598041071032114035654650192224122526991422866860617612020180403035096321378435824892946034773342008526750700791223529740505561843917233867801979261908204461443657937075753207720082297386396558885531418472086611470297444029096533254722852345499458553265969915971959978474570633255084980958343889941577067041835964387250989585762735241159547219549806017401703979450839983888135639670708174160072869254182387402678792888767716340881616328752905728834907641349268502509910682610276371653407896466573257976383854175010176407491230049326231016718132490217541835966400246106138749246945613966954754368552553304146544846161795449341666425380667038569396737597664754070766231074860549488788362813927321549182020933508551011805311722891956326670068062566043466972994719019927489833213812514602936633927518392700505158570507130767840480466695976201888998567564090299286026320983571651478620939529722873735742884027735246479836573791069989121223563748429121889929773227715100267865497695933890992654996036327603567262421000570390095763864701970482747935805172529321964328655506502236612718679387957506421063399786678414536572196377420823876673042717351725851861805573995823611972964856188934632665062748265731739748149968137035538089194405922900534866115353488036663207748171111189752910578449532026782077452372695491187439543082877442436742758903045199595454186277802716148936113302407533984409123870219947062645771071660553913151283175495198660331871170753514907451736055595955195462740452085681570597516408704068227621349476291132016464282304281581691725269971935497751162358600843674171047253690359660972220926342056357635250034253066884415821678691500111330542214366412566528447943177850451711968078509316565693777326942400183909553694448012871671012191165923473443333896430380766331152920271962228696446149752741491132542828392380532854009501368030288716536046766959216757658760160059599383352290434846611440491744163805506208257400314853309369967517293350115710269438904729604532076200081638446998907735826938855395020498910313172086851452150231467638685453908954948603249249207302796787811214884175976660817373469007897985658260577144605073956221220425545416643482390710351499244592616872898423097923063802640947842841589838138855813407526929108794854074634455680558203963906407905163344532129584950566548206722976355522825568934736676052370283833697031103762785997513942552967956222045492965510162166623980113684404538258997018711406719583748738856515033556688870112532160821414222924272573758405132809226796326835611308712851596680473439444891177271861751666389901413448891382198512110438433559786176546080630910287890828660469456019187586657410594908727958902525053420153251758528818240525573028356532041145816612191979516484013534968113527687925480520695388986369908935002417828618976038517857703849937582163020138616664371614604033257107657635483441059821370888347157178238908593313817347514348018854516681699573604290401284647954119818890896755400320496558977906252626990248786010946431775635228209976491578043823431493780626112409129408433255185083774039726046505262401022142402792591494679005316052291527047603626743804450402258256911378857182832160145751800595693224016640172941448974352439104250692112307192700279052530181292250164529407968951691818261946823067709095076141975082085105717362711267816381678116532729473317639093485156792432684031959726238468460518056949855849039339828576356755709253142258941141694628916852456795385787699543590008305856617555820460917429773189841559109281684786499259072396362613720535380030887341152804084823467105374499036853507370373722765830705287204397022118266219777604429555884352175939896410928199183779769874221177061897397296684257027839803099964474330564884334369765385119286821957964065898228461949324762343816629697995624657988312817622976095453587196318254104538467008279230314815743487361658140818984371493866202387492984536628726289596641985466052668488516458010169043340385989101279446409993387569213003474854797686888786251511649492998309958610971923419134159166583776125165305073338224063306886056279662979203581843028466091773898157941633017312383983303436900387122569422615960747413989437236828720454475766797932387811279392328490897472030252848732264967429403591854501389153641691038275442179882194885896392167247709305838593058981193594436218840972032052332380240681404552358055342807602669292029937596353269061072556499909482405336477696341627659389553250955862665966071766032516267396655626336561989675759646105510982243313607632330653754043675676178120244784925539757291399837291239220716293151179587982203404101433963626670322127192256218160734651211452389854355056612124360934596152068072661477203177465509594806277159859895061855746439618637417693585339070323667197741531554754510499856295716228326444749277504806371180682721791551189281737262190528312948218134096701188053703549513477132899315935618003887962172307440740419987920496198418755471508594848841868751571190364867256753185550079138162679482002671761734408413126442360858243967944568516410761111572937165582264731470062480137081881842114496184356439984870906877527563732513967106523197973290711685537107100643641293315635679991509277256711892208411875859318010555777845374123447763544168461055619148201336114566530947523561537095092226200210264462216331660431095693406747029630947590169294798732824446115464923928732115402668588195778873824127323937551480677941019415188879803505864600606312714305219560311854280451260795090953951400663570483662667132508873083591505975859439509775690007841486532775805216276629358541353175470358383930466930657609080503835139349754257188433680111576868224212850094359976217122255779432037342601497095664285981589959205101817823483105793740760568344647265608079855899757163599134952188451335091535679599897239098352379104730253432175092764877591819038446213294127939543656366524540498142010904632991771790008456227394447804135305342912185180716504505685882315678982243150300613456242516023155226143453255947875517191638810790016184099527729644784574368993643391023966684005384496388381887587457985787371229360945972075040394822057032148812262721431274519211000524867323176695642609788850288976661035017524230787679935748289123269195174047373517607913056376710165971140970880250849264421069489334455657637298518424282800966480032678071133725651757033657598965268483213777023640686916014150839842427210190008464105623711300383929384547046556972806302615104103731249643467290757540911029929407268318290397448442185632703429482990232385005044086495914373048750751466392829505655039627792437046287846413039249021781732176769108541038141165625030978717636764179459301678277873181190771621313587251549039787831957544756589674179316287690547631137341212539422357749106429284892977907213741576675376590209826483250892633866102558381232759594716529806310218959923357353394189112436632723904246155815228106106422850634030736724226737580164289996861165924947789895715641447125315601040905149241545205312616535829137155423591292851123254565551953968260332296686998112680082641731047375563223488606233047322900399376728984322075722137061183031662281994734597292503834773565879531030959823740478255444404867439337391451255717883930030878500813806999587373990659324271172057961566816970488786573888459159485394627649135905926979393928990494182961909182145665604451695288898122799287620490356806385174271317193865327032428130820284884347270348492019677349720035153905200233072001482609749362412963560716221216628537358209165529423397536840274934541376624957462515678195920520403848333611477562630759635591986835376747785521789234822779063769226137741963513372048152591044915750430822199985436184569340483504230430855515848605270676092289566732056196498926193653489210587859624202722320067988348233443504889502510727549127014683020321954373830924975989046105851782968414013601244470170842571537271633306913430734079525392929024898062469586521929997158831234215073193139887610089040727172874630137863021189663213106296433603741951366006037728062421223739272299353451912075893835276323376306778856755791728899583606857308417880409454088342569109267479729794031688794339481673481643233273065904415701483213574857821406138998382590103721606668057559476248920149214599835488119291959099690685589668683333850028550117836143635724533916534753714934280700250553850628122791728317351364471589333318137525311402509470102126881404643477916154594175041733160356401383884881939043327114077995535012826665344254626097992041241437140115384266640678599313448026044781162420982876305686824256910065391652562791867750373213802579900584647741816758443899806853242755876144906605040271717820862113698965433487835474531453524253819775446079481087975477095734689988352655145183419224942046388292666023835170466885514405780563945423569737115135117618648633354608116465192412557344386944783012516393504029386078191984193229153513458975911134443201938569844455615150769522779686903095908071750883313761214757447427097968775839508186239603354668209909275383926183501375133561308742258298729478127140313000052019084649332018168758732337506721787330592034976896831327591934231507378799541805391865599408335175937838959681539690012150385440855499224312000775272580878735098416330776414109924735606459857612810240893704859694622131923915886111589028449701286228096840568382823886299633649900960219265658903691440606893975423729479678802389445234050842999859949408861029079105570308193960660201907651321156217126223481602230217702453990740215293611911522530896767898604814357895441437520241706141538305130295301931370215837467563775427426207228295580236512465964745078403328544336025918677713900377906597618173869744239902108518220019225086439909486546756642169975586893760364604783264658773132387272719425920396779422284992114236006709308696490352478599359702522716287549108357599610773916043117035467712142085807977512815642676273270756528742202997525606596966318294217560558498383793263045699922005443578229876245313254515819442694387213877961250594742816982968847296290254710226353715491084384781548156342800722226290608631581987828115834205186452244581384292827322335789817254381470753836502635210448329867179425792184039887613807190798150652921992650361064226697641457385234045764977178378454075228242393200423301438579715073095576419191702251075592335809739451870596508279172448209722802223343376698236091481481952599376044509359659103288167413747274018692218913065955538962331867947442019288012901209306376732562785741870264682573917553995106642019917925410563573043481465551536194416135108052750533675762110923216455271502904617909012829939343415326061599486312199114096372069381173639932357430430670348982446007136298165260230503764076415869415112468359402921996201646534606836762469354876820626470113718493902012558028920638767710166965404194652423298447490148753091168624124174959890493551258597862211223990440466295101370906789560539579474866985162863546350161060036291123329654053181627039264657535081084501255011530131685832164124575380843575707076326852229627193157659134218967725362061443611706018759021385289658942423620394012267224511269443918941064943319158698962263615662391586948791359172808616930125777106200213191278012576140518705183812583792955573063894895868349140683417805611439329973368956306808989920474305654232903331701239669512685403019235449156801339970695432099473621368153181662740030399389132550294379844164498263779780835616719329428964135593742498243402159267366808488565672568619246829246552751616228989513728182924281677000216980815647190817864340230092836594925215603571184035274090599544769088447906141852646131290352667011250628528232908879884564901100137780034388490835751450030179546513288333790079119523673477048149924213761479990572541764401079998249663370673566219053938245098607397571414949049489666165284846939235050771107866595321085849656610714295420676165860857419657594675294861791480014179005770291808096040023127734830257878237132173709404361900006668104146776743043606830618369229769310449113092612852465814388915885438146724802854359460509550417078630890385199410084995506610817758872942388814769679819109724536573970582595112231507443107461792216959335223931281990054742357980823180673619733664211619813886451606243524528009451129277417404591225336755971610121872483082639773464039466119487945941921047711526091876941070629729134452093089122789787722654932506660133123322328029127752335278556277272736271698106330523935014322199369074448627104614501337031031795541413280540242049663997182052817903399335648543582638483076931826343179743080508486665100578188332206552245520622766270111663137793650804173877535106403600556064323371809821940233338469428630107119701169659136461878991663713282263248517242168222911472295412961625133219520663119372592960739846257924498011497537620169439540442562805798985725646243845387747954850070712145864382280585363788335534241301345520974947379766021649140921554072425972912080003048853497651431891835925994968461451369172373252884240580628107208745573149060003334378538446965470824208211663003413893926519346879299928328066433732012509879291478441229931812783896355549795996486936242914398598841374173263978013892628516742429628495741377510060362833389406189106445137446898022393287971702762628508020970948605966597780810474127470486486643242011008664917914348931803146833166323440962553895507892594395008152186295163506309917633064679536096924262485031318124532924114556907527622826880575282536647401695161783356450253927534359785058369366305671351235718800858216484453788860223369609140977807941030293709371618160211572941481274888842190988678628639007390845197548189767710529245435151655621551796516203400020362822118821801820177921667752062924468852985136145217843605820062752500613932450748768979679653901384725719463034653636239381496895876087340741215007778967846996212444898540075007902226182033152684499489036227724517942137475614917397066241540082024774548204614276124321186832032046860591486072741359782751785135517950589687148241747465307192822775386535869340325700203493533505026862484665762289506601964686875762610368690216116642774315091552563053323920153848745082859637546041777590185046445429084266702676434197283832564277435191244079500820051996956977291175717225251495694755016672975044765102227653871797642787458699308964844016013889120656815065869856987955559530468466337601233870963053499042078463381684806704315515187557108934841632602491967036437479477310820754794551004620621539242785374382166739865718887112635075368025191441361852399109074196827278534643306689100347322680848716861426338259194820275092843690371667465768184828981255173328374540841503537273405753674836992464493471704056054608552739424503271482163255033754050275650829508863979869670557057874568511293195425418898461891678941685184041272531211823693776507151128587851965736641147540422120800565696758835032725606789238179511009282735075974976499175421813874509591830420940253846263740334034326780010304428391352044209564594737080162972050443661061264192201945199406430797310983521463407492658219602740580533921147917767403577495852421452359001952527743506881842284278381147746919457023557405319002612683748121986725342073617977589474914802612440465013730672241250462393817577745696578242176493875205077141748631057758382260417634561883143952314881224914453620720334935631647527680181719734319374553378887727573109210886033018931476711192591328985787400149480527874737893094435613415086566500635024953376424215031456036963032593942029857936995427175368884377933837785048907569305112722722361776110977723706981157967730978228251182538427371970497801053482872545421700761169334385100876391837437362779179587267364877921009302515195284790193377645824719401987767654101540244093887946332942768779098559189583508727685220780372875386428616194359866561956931547582320264906793578379899905525776578423210992949611194771843221385647980981181631712190687824165845008899984912943146939516611479319490962085840068637742150712965765709958570188139119718164442564791866606692599432676778139840718413760389485817569344692808653316466755649993679093296326372411501759478580254628192378077508912076059701396066264098292569870450596465281663072536165642502262427835244090212058903625632914235757001854355845473211784893559809572477590322788018982514833815356203670206466672762880468554377473036138519678579896131966874541885739397640894213832692600930507423529091096577841820092157845024669589733879517058400994652732353829409086729510256896662375377471732703352383697438864961068293086014978395949960757101967366220227312469032195036272367852697501249078223761732377309047105342789478812560454871047614881739564472903913516286010935819931876324560777728826691013972410179363316118320723956439101551745162359418697501194187132299480149896365620821144097434073062310203316786719228219098667080739256287335738730910640997667438691627719368162757900826031418378427718918139411240129558963877099914155391099379414170687830730195678634812708343312941088860403993699306498367831338146494294605108210223305818908286028241636325071668660760294097010884926894699823527211109228538121683644599529348299484655008434247617245292596734836446564938563217499512111723852407260313153199518132718340539689108396382112018088551549186670278835877191245267404129392174398986975351255200848727018005965632744829229359783128666939928878075287232593965118739522431999757841463464578157028695900608335063089987966052109272321873675945273471314436390847223283582534652952629282555587919298721409164426665029279342227163869615345290637682017332433737740972507943740671941300928841318888112005347526092032877832398925652893649528362540123079466929356495432408428981661551055268867257082968157161768878998945267795549189209063936744106163125960645248345442784278260827864351928578738780601003833589193581581044786880399016775629752769607341785231250096833126767477909405192137028517516895757094602266577003330962656258516115749983907890912112338997236417966181153826920141359372942185965086503319352686948961768200850720620182908789361545830445715242292612940007159632995654835415862373337403183344608422995298135408946341281637724164844584397949581001548209980216489904342881936787688277136404888037527174491542749019659283562165091099919445069395928369120168734030278814568576150662755610569731756632086523915589393048947642327965875739581952893298841941370314883102753728873059393761385986029325999905599232708054737549443848972661636366959137804373584596270166920634882769248044489162997010935739587751735002152791490465659746397273455739202252203660408779067866480134315028264446047396063483973132994955918388543195993177879416567439162675663104425270330209857183932415605076386515132145889686591226243336632776119844370384657017330244855512019159357520699421147132019479225265570522190065573683782852019235884243612614818232687931848217992899112013091811570207035899361829983718003032538064521029042345320164611757110746650531899479187593127820726614799852927406960953758960732580104263212618854615101757865716460486156740796468051669705978164237900103972342521096786380778087942290403268500262468793379817809377376736251853706296903326039413213408987145659591978018178159449811147683668322473257363387103758212655774355166770855527962320113530420987503198116205686485045596547169654668035549277558935796307529158430871267895172967022221064235355694874395481011955010407453384845813329715851127798625921584935832300919080117410953264200707220354209372294719570553807762703490201608839703614277419487983657608948431109026690260994643375185408001351569584261172285760298973120878483782005364105042922446897245780391653151014168316665151637207784873522587216971510878434402477569932289925611570780263576042097351039027191911922665627950174872663785443234184379237106508628679367798769992505937297850678292909821748510412603179144833003221937307781121290707319086672010700812927686920076889753353120243436554736082014654234583260100142467417903844809826266541267225341239709550691533505762465408619585466173441365747357963686763829448216651437703098074548532256745209579661709584865157614681034874045288623097401333351396219227605745805830583771777283139319080974288126360334910770766831768463240319551974485091379303267322539311938785227736108622960492782632974974161188476928818856596013911891972102084863057502688661259848579176610162816136548664775203125656225936678374409791568913620868725991559272049974081477235311881600876158815309061807263552154532934970040618278032503337249036805266622373503965404032755260528597808226906135961622191388007536592283240423066080277395831240615146053893750153703769232727521916203790797087956843173582247885454202588787867876357243131243922931815799400319058873398054929856302006489277771067431304381305786507377656648357906127339877895489153173756331367805384782278293019478764407926421492203147015474282465701914385438759960010632959152483909262521984942585057075451416711574611739116152248895253424710527288987063244207761599255725898299550521803907608317411440556019061327821053886101996255469365637038898483075489487332496445306486556168844504761333193828038367169211675104487281810568628136453608312531956872277101852925186421202929021676782056664146196719264686558663135765397427526325087914844929568976562648425910801435073299244236221512323575959051528959390823632847574933174230851244408556180556852630056627675060771665801589191717177046116038305548632544987900679622855977435176920526950824227023281509688488368889820503551172095895923732007764500478394490656057017649799208700565660431957016341011534128593203617391136244807427860158628144458939888423605110905550830421287226039916362140433251765210908595550879132016166800846861390318443413704125278067091068585690325589216375939351595669430187202523397409328657106519568127528457435381655647698782752482177995594313668875038689344385963798346370436892513234690046416527124247878172260146395787368509587378919162743655170081230428623403620053517758847713136704808906936224885826179566340636103195990741182364330956503290102088124534806094891599617289458267554148598871228701754612981912023603910069682280955937068733156922384106721522428582195878079321225866500803992185473747191537276746875500524037460880441651021411477399395253464827278820161290834277481506852785310783474615875057580339378023686760803923866232630609881193357307950485968121385074303152927819713689149065873222326559843367558755991673674017217195206001674865413914381073389006713873453831469635028823453748534351732348511138441026109280746181974431327414397137868917412728314290196447354724709080253037571880989840251870208751634944301908680650110873430781515745531972967892989197891435992236694126483386676211051159601604149234694682586107156102942181616039332789248127669765052214194583294595104416453679514763456698533755686382792868306619604468114386883047569145718377165511188545889890773969363161392959552773145244361141368463615244236635328480956631901949751047958229250544599572877002904465485648202077931003635803645093503946257125370628326905563218281195971919483082905535879588422034137792503106780654185638623592469718519890480783509064250577155074559795400319067096147302779092866141824844422826684238014336709715367904915173444652911430072022591381047963806204369327289032828998501975711077830521705883403165654113761496164914581214286496967928471485804770946824216870432443419692067443738889833347049466573804839582823398164088332387315871208796265275220658013772829628247517299566240437735165848799953871648119443664605230386490733126200014608504736048089797149249604130174289214208499992154624492194312152358048329991524576041237013939512542229616867651469680194683756807145087849035979204425390688432510316384244141692460904830180889656488380788619491019346592301624737292119602431585065113750412565559029984998657520555879578477609868009565112146204591314139703309416227477858008649855011790762205579182564192457881560700818319489772819485647264975274360384371649774299890362668387935389255139217557764475310817185894502488091190618365884909158841888704081648464720974644804518788120224136652946061490964429908725142792397543015226462755221897312704257593429575021240110680655480923886464718769003138503903016042823434777309604961216591651429903833345768530494410936020700520326158832763477295033123186619189251845810561030750815149972620509858230564006193729643223424785641642878360153013458690163157629309597227933482492483074060251468333319140301324610127628419817068859381414836903674933245685552767272925921533521683468368360309368928662665648167196311986692724694727172192505485399142855928767633401971396410599270133021115859849451943242583132235150990668857461496063506852721601749448485806246501450072927994309766809205061728439719463037389119000193935029701733712617460559139846604737094146533971904003947562570457816167402946418725975837334516135395489155969873628773901093148033621185104578770379913828766805808876015270377627308511288815306926670461668459209880119930117057040095900464474317101997194686627858286511167117079237877886287001023287288130596278795371401256105250961039341070869023927386369549628570080738630487309636625398092666212789375838911798908527008613221791724751420339848276121764765660312586394470676879099139388288988372896968561916721110465308396111834785771064994727343819424773759213812543411540046007256261261675736052331270668789267051530475570381140662930912668478379598395357502614974026685866128974493099947683887439964876367741457769813824495754697391135869722158887998519027598104956078348677143711292918990751105732560405022257893539262400819858016786926138471803136710537862330641187031020824728339200532723833326457541034905399733785533087819233234968436368711720241430296878888162272364599503867509767662177390523482727158795836119601219865730336425078751233964872652217381380330216604811953055072259439652514323766119913780854276256558436068733219908766282657683878496269633669252365672464573561627642404008002683149095099194308686925681116890792286827840627700087690792012453850370929828770517746344184309848098077482394844078479756131058993138882668690351049318136380788243610173460847582404972546050176835180494151382850007424194814625417814426332010191587148213609083570329628237398803154668563398983745451665721552458777325929253589071423340795944968024678721735778634975472881923473788284059815724970603508893762738431515184193441893507907271502373943297274050798216770568155301307686537269955803393363348599545714320164235268624768267436669078939276520175537387604644415452030677018613986435027224371625405194352355168233457677209757374959801109593482287235444755858256731355922839115373964523186266846574468587744465303847710431920563671249395298454319989816649464705839330865195495434168544419965785486096848176397247728213313816940796640168977913628980299620405070754811988776921733439663282782664896514639993569191326444739240794902427622691401867490738622842051426527791830732776654192140718018774809047175019396734774163797702484520790650925751194407419120050635579158344459871783982833460764268284650883210127073349976677930107567324061029324971875877508636006320656732604468326926407029275107466819950219294921673363086690367078689560464034729694900159706408805639670246290318198933825360955786478277576843580305833650562466685671956547417695451380223002596160194042481953089248112466565644607520795605001354022852042266369067574732940144130781517807306169640541682099049728234021210570521182714911546793991034937838218250332894008692432342903813214708103897877701820994928322315950375958441946114610167839108984562599887164123208619516477902413812065178661638555726963401182701357508075352500211635765051857151254349724366001767508463344328125759529314214202104013350656771486137125791714142040110262341165330474300912920671032801134749994602084192795959602588773211114075292182717755823820495723047219158807700766895574441487241660369053029798331304477971356168431674205984178777516993966940177016709366014462873116057158801147807587809704077834665049476997567024917029462575729699035848324364117707080296294343012921661421505722429518620750942602639871806615821228222096625609842679142256545300058140736959862882297971739580777817040011355980343395576434632972543868378393670080606998796514062872723074497821530896633474415959998313667315914871120888337129207501022116847014625017624593746253381620757231153564837988386306910599817965255278741074558015854393259647922157371010144355629767363825038091239916909393106704779356530545868407035675664046678928926538449362279276736513969650898023849750570204384277912884431492287174886733467521834922035830472574496561623268489286505652372049944375237487773195285704802230011877854787693773211962929143686757934255815448914883440533651848658530068729975101875470649998831875658164992287392858016171901833593387082790546665152530928176859989052262619150486573949740667218333512656744380650037553771348700115290669159778241160408873094095206172343118387726604203939175148219793755655584582179686542850256713361006864316437527002670984557312921887566406899859668846212277662594311893141292848025152040027243473158226630975339565081113420036579402134830936285613726799596957192465762809770147822152183510074529156766364982939240417720339136861878185637034967230324897167710574058053806463390818368780331810922890854628411169079812259056961121159732305204725209126696827991739210322143046770828348504983799322409791154690343494439321181654430678947334475839691276510964165754765495672931527176587834950263712188567056180148351860106513790631721519894313172127209474052600044791732376486783275589610159155032786666567257310832978910940618992217952605120297655403133012856176502620971725882908167086692620762292194244891798611026986325977906049152620750789257420736513983989378939688462197485471866961862394109929206655939274529286059262563111535784799037350497919895913931221271685577791640543896449240640577173354302084324227353869839187295757917737047772966977645781709638035117673155389097831332999381301698443272182576850073286680686862762547247356076379192867227603464452078653270777364761397723395948976220551607142187918804722512770765995698385719782210318665832671582136222326053704735788045251343716773731167222816734348399402371254278923966004704582269197548135554117858905524698136458507394686050356528392046858163916408029498548901282592360518767920763686269469205659204530965401309078426843388187706477493472840014997463517777676604404141264385584786732202269953789958232286951332314081412462611884069561151672953323011066229128108604862638073626773596399926657050541364550201318258586086938345939953726034012114665723369877094768535899339535593680799109661240281870618065508109617739592492582689706331792270782839598486163795756743557959539430482452349941362057474218804684448665139417237686808422201094876771189051855780240595213971052205689858770459563563133928170323297628754610488641653275208518376512101204038806970227581106868777108023928373686189832551390890256246872389613258198395602915395799887014485613005806568013304675131113475614702697990985111555997357574023688497489916542065926582589967503967235522453956541618914073623445106415259007384814117251280244025722429970088028006497617003962669569803477280985211882114271583801631383780653380715053286929702113634821574711319156729201427761323924824684624073562552337588284451352231618269809450426714201235068716332207194911718538557030445050888538954342724443409550097810970348735342109159586379288386663718712780706497127375697537704498404876587725151553824758274061896309241013178717955733735469578277090160220915438106263921410091660882192940656022221274170559641234751385309013155416718720509774221342446707822445366666775405324290108671606525665212987346750234527287973546694437547860577109328461277975556811276994968608805952376028312716804519566324361151774525575196778444788899261049103502263414141634720287376651615789937413060227692396394539908742485214988778121583188200217069866988528666718318755632646951845623291213641069188523051282078664011344892058802135298294624501971661573359444881476238455330607075530842860056243097783885117882657464801974476546471411218762148824311173223576213930395167352864191099043888836840170783532581724573094952935668815877653035183410192627620910023811162640986715310608187735186282158857769829582164493641039419507576961237771674549228427200799202343638296892793919833090658601838865536817725501257420629766767049335024089758863533954929302578268721817568872834698826666940243739661805352452867241813014615711013625663615557253792516892390982769598381919607436437741211271197372005944585387821927332050442440506095746096907652785895973048790768113057102248531942602758352026560288130015673716355634959859290571443211109875509117641361752234722623964073761429397512032998636676045246719278112868647039672705325710464406921553915277724840426162753786854119239861944429498425332796914333323613955491719927961648714289848780927466128888332839596973187213496527123356967339371093324701593241798978000104717452350662132200890675674947876607569421341793303300666207085576359550378517579763088823759376778328508969502438698427141840952680899634675501533806880601566425824585012470616438141377919770285302243314863619253125187680876036299685296272621141383618610722782883486447206859131330505407123483880092241022492001238187251076494868183775177271473370076111102641704196846543130890982216629894448591443666268993479159683138833156811225421039445652728581146026576312816476719497466997790770147265676280532349059784598362399097194755515567084627793003142367891672843959925780426471770782788150927065691029030357953122160573869373032456652908966288844578070606251929472039676853072803726452159924335028979475466451379059807357922573488999958730234646382189240099606718244720560641864555667036243786007092766052262566182777091453919804762744242983345523677861427915242474523076548981709872547866973075999301533536616002597277507485614005029934044573056795011453280825919173113144117513787609958912017948442259974248920418545385857887172558653729118506027184832363486780374872085034443539542826150950619428520365524441433721113417654988122365841418674851300051567328732529548364070088876766447735299028524089911915751104297818732306641879396065488631375134542512166785893192312605747669340205490477552384294308245184479917860286059179043486886813656019115859787384489521076904627844101991278598266445461403754300528868498490733776037746750488781489188522514339732196080441120352333560848041294497720592461794954979916745573024653392849012726019899990474241778300100532346602015450287810907048770181714424611146510921559665924796552456806042135232722240561144911924417540756257080151874507911780394894330531620309156792953232187567121386055235078550557941242355483246676702243768517941092981862527745528803068660413471366326910321851307028673980824267952356397301992757632160251124182788885394488351021812443678844289218475206570384726886143173235892267322142412766479113537674772567399199152423859513819455977617950029362182940783380826025600592547689416278315207377344446264466983025469620743515112154434790220625777237212715578609567127309025263606471089272442659571175484000908651222987955502327324692177373059143423310644478046044782317260060887587910968186670715483583396072049724661051093378073772115306324645530485738097889256022800281276977106327133568534004551387777372459764431193024483708934858435602154645812224151721269882115091008863181451850674788969912436190820584839288731506686162554200313333171149306846406810011560449394473098459192756392009823253275989307332955371533521182387774465450642804941446246052966637196139317777084467945293063251758544803631325003229094943199218235530913654560678575902367040988711706174928509466609507644740949379968365627873021641218133779551037001576774233179685205961410964431864591589360450111370447264102799495087482414990656956360496201187390570553177181622118358904296580321670299387525227112913901378301263185766472551630094185433538346170869472517396267169600854465979760125145109851818212506131219117398803017192052279208140331857612524775627731212802898874415378224133763136724898319894062584621672414197763131491231064751425343312457466868809006646694004201613851385523926432278965972154015716211788706121439753374607175849748062937465615770906565744793991761999699542112986982370395133138286334300882895731560850007176840696508329667590025417678244533214198845778853545756506773260438866878167608359122981325898834033042781816379929057255399879700886831093532776291254237570794140525762055567139687421008055088821370363586955948709109315811274826835117468690793878370467922840889971696972662897376197473312731714809970748385005062949465574994871119888537461736215328483822538040528973244713824794803120011359517388727809546713422380564633911824774291122592063272282182347984796894268754006388693175706458155541977721474731178055254849910549335951599216952786823852944912425677363348032118363994533786695146889842011646609546105060142147460802519405844473777376441709982136246035407706822337719816196805284608985847246216557331402537879871416604800466151219793284955679189423359796464833359541819290251504621402306959622039980879609926609142255823782325002685833950670640286357572253718895847134058636400237250735110812481731480004839670504256232485277104778364985244265481173684972780508839326357286849950509806250229291570798404822960724619432145063535570876587508888017667663148455889867990331131869731156597935761199978257139517128764370050762682580130935297167134363410780895101159681616892235214454399250537764089676476630072932752716682124599126135880883098658612680240448475145308460002515999319767299228034037036837895619107494090119622341433702748721072031431890020889775384942259106139064860053940820458367223012648356194466801657845462339828190818000034190614158269041786011570150575202853792285829381317355519616167829689402760039902791021232586534058650452312222223755451126936181536232953479930917870620361079392885512095431183968077445443534050184853753537725127387571477650548301141977849402090510559382658557876084332375656434563356541884531732170999211508752447281334316923821319469351530498023330960241763799575983855727050024066326830012984026691291201741173293747996952505241583333653333338988893231035932994968089137173744788816616352759538816515585785563976154708112896037638729964149589079765956264581068512013197183472528728524060500777086275575445527004739796280117787238501104737000818451542356421336697741060097773973484604275086796970868462029562805883209720926219636845892217449578936375295553251913524288850616115860889322269734646499874695986493428457227951379568012649906547815048946541085616147048992244572126724693051303330166087105927376093271743350866077043276096619411293466857049212599586180767391054492279010822255246943392413511083063325813207189357228723154986082757447663744672967992965028806004727565545949407910460674183480463547062792184943633370546516119586290413295472840267090571859586955391548948512881445302384051401181805638151158223160188626517076767937242219441603822725001571101532705488661366601748610066950784421134116736025753383468927998632872385845879322135279445750134713903873156340229619340989193654460211236033437129406493378002663171849380346116462452843880680433956750240367708058990960977303122297065628195524956005747506967264289784256917590198490429799691422485671444446829858328760720125391363868307789364342104456558567758479900321357603533493583933944150746336867630909955109748557684393753991788651828788877474415454708720804844176367685228379575989312483929828645016722705621964443709245387044895742523175801916650767332274984737683350732582603207260338557958796225462634131138297159923688464661088783411222247164867802264309718407355481099549842855676745579460127971270565986499464204337358559224621349796290784367548428964461475668320461340998309000337874093569860743068041937401512616952805576548514113971682553627768746984260819273028704263713482855936979330663508023328016614140253967213426890850612362680463032726191068913137635443329536947487330686409817832917331600034049185353595071052168949427373180532290741688730885813135771641292948355719875255513696562481302357897637795610183042977620173585680016398209789184496169570348938524006999476784833284040543939733144307676103383896683326784380722945743490788975772753432215638172305861844808158421584323508804399337143146359866693920315817102619395799941729149778404124477467449818377015277526432726672490334212394357407432255748877538712659669607534295890677496288895105030522064042833530932575525938740339356882461944062733862200839248351738282795675896057002586524914767340534120595098921064977005515312532212118833992320932643799156739711682809898587663860321993235689629403048250242805526447393661267476970771683989972034997905998733689825812924511369690352726063506872749340507047000019023830010334756013260704697455489805782842657725526479580276197452567355050377369618155602280287557863001534454916814573633888273350890336382980530910168229176497122300123462957694873488961126191845296696778681842811503248420579784586406937263866227730935000279140073270559240821095476252107682568679651856781634625685934791293938320784189538885152907004034665934059525498698801691005076618513812696496829826748977797410674472008106977189390806454828555547820241395849453502483862533583582714478031375625327308228737340727860414376008307386416500536123191580271659432558519405790461680850505179144342713905582953366350746479280827221954874203077583132902743770792995452701733672510896111269633867149405149371707689288103309007940112729830858710276626846617480332627574180344412068041430720647535036367284528549910772605091260503534825191011122413785446868137506189948588959235799614911595516829967227354534190344092150471041472428239870071344839718011796925796150872905501342656135365208623103653006611551229848365998949017722292696900261452100051670572804695930308212677947684286177109366216558148221867956572812454234024906661131147837285813129066637527586885798856798715047434701441815878478998430875177755111945625218085575455660180143182873147905942609581070301839391130610402410660246068171445995820318145781192387713754866728714084238998611094177488657769995373757734078696723593155376496534781071517879115280088611247329426742146885202664800103008553822351882271037538329799191510664192621636395482559089237247903458139900996081529283716520920203102070910669336487503352215689484480579937765595590600471113962064806115040743966460199590828242569607224125914866762035955564864481743273834411746651446215668032467707244702249041798320200312137445369711244144447521206182404406708884032889795982822288929579958233541698589774591604497970250270086886147571059962305941243098996027454877295406237163582392159600368063962329047837498673937074543473548710937734675605596644798240857879450430749607575966500542699569099513559982788470325211031078244368600022923386034642728053468543492253953781568190021364117207369806869977411446656725221857464309003895931515316855412264191378808415994540696796979603748487885998098195096467693779313178510232809212641809402325195390804893657854240118944530556294467856155334110865025718169354568598701181959632468589569459360931103227724693537360510657069810996876350632416319302135183789569801846570001874630167625205165278790138464458882418800609836612379943730541880101170736815109778764582507726660076680940675276310021867219692910147911567333737235077019244605823354130058278289905782376887949121563493781991757754129623227271807706535900890090844072627925447646708701072175699375454637210774802543513935343205903332586853819476419241077844793794391540059213599515743679182065872855959231045268373038828528336970554460229256502116969130724273891497633607770776105126403337214418763736023281911529274536983606195221632026034950999000364911741051077640845831837783454006550470595774889504067552659572295916274620953982543322539802418430070851751482765491232285953991272957427224495739852445201835765719816285016176748313483322045273248733243004464252460678888352888997806238503932608083999743867546949440543552351658976021318023195605303441844336523050685630811754926335786729731657012650120336206102142769955798996200587521334250155902380650191643888911038992067631248544313621188409248363199366372747742813913928564620522641125657671677608960434241816750550155414487141494859382977682173962791787632906476033951483289085966784823155369319674065435941130079305263473204490228867595776342085684181060992147017102361488188792845608905757431455235229722606583734554879273775809797039997132928655492237498626368409162216414719280945382724473188465140841774172945684149998242818722826627065820013215140422563806690163634802717292428565981819317664486438138032229416873639369678926857279708862804907481209904038113630274456152284343668871277931557447142865031256304011450854360168184242094270470962526278116001491423949360663131011244164158430209661448790259872569643116003399587093423966956126293756416795320144225852562722893095904704758720574315487768234309776936405401151722500436607683490330660994618340866771614053643646392463522851929002336352660447406082632779737465352809742690723653589961114339060361950184561262996296064765772345262353718241470118327041433768584653925269029199814067228640080572238256951244951718219536184601593083381568858278614730175086381648296780657283189814492311171147343760600847165778536488023122259822545264612354363387817611464397572581381451902314683327529418793837283441260957077315831311173571974657897747877212342631059523198285761162989411955497532305687986160807451654018803685611714225286046162739238546492419672663355352214423026744812425191548616690065697687964961232647168862554047129493256040935042586416076540953689650578858148856718642042929690392178330051380336765411306487866937446520409790554423984665636004020418305770540310945725419087782529373117961965617568163851347686323818497375653177367559280939251208205027778313244361181695172416713403451269239748488277195477324615880945296950962062834757387176093415203758694263978228552782504683518384901672204467186327883560864584407644122952493729184156832029587149520134814245437417122100428128502994592276576134780141391314435608006594752597724399453259931942878120306692275717257803192806959702694945084656596874821400282687133610744321790708075381942077266144602163796489450185955573155532176253862504978624981906446671060209936715836299693968065323561855546915799748268374530142411520438352263336705375808758404670358069398339005768680155715999956639682736342381542889877405184364857412799988534461202558478644923912642322017701103798315144856359597056884770336135443684845196932523940549030187708533786816918688682122798830411893447809769691661151120650517249796232455092284372696763766264519163116817631119113799895926615541791613888395381443398556257399306432786118643236109381998723513657637012065931343415500930156802999652955799906668522654012240815755855766073290212343978182939955176668871210463535817754464952455332888417968452289895240037166074623589495978575861534525221031864374811306605280084288279585560289036209954794545884424906284785556270244314392334641826292608321841256470976878335324409073814794037351589406858116506534746677039211542260027849298131164546896841490106256823703570169303723827482559484579929267420944954510907446696193904653344077216321809853981255830624474515937977342171054132725714398151532079082837306066677220897777289207501882590572353404158067630427006751743297753706725046378886457149976116056702742127739074674163973002685381021106333655952099828479226036992820840034485989149575823068176191957900522319166984789938681693798434671490581207802184469634527053159724327579140731819585046950108813805022689423490763838513767831599070496545036724800192861393248443639956263124483645128382555428433857501374720382291467020966127091774352166300760295501142721949824034439164261776505828068785553536202397412708111282563383420968694176744197408551670641693871588165852790720489260281373201277662680892397377017440834469537872731220078219860969490898772604878994582082343986861433480382649813656695526644639548381599059209406937618409887804788965221381219599383378457844925393331768350262316962128452547181893322656884956695513948087219584934332642747844696534231425436045615151051422458769557225632646406965493176910974673932194346846886875593329919900955175931697212974350820515992313469297340158715086507152591073203487434948549859563645692502949958333067489056970545137302041278413667541330750233076134216995522491194500447392505777296681853158117685020193814860660309284422982349371005503037628275693523077334656475904132122349794659764287150385236373397638648777868964827790174097591319149715208474758744659671285686487782577111342099770925332519549359044669384421366453056573331233114321133669932311227213289422583448264303653617891062858853855217797634189813551392774446243725829660394355656882599210673183342156658136560455807498647967816318444108042505616505953060126089764515875895631065307248739420585391720829106508961403299225868787210456542964571827865412478924820274223323730392166389653471821303735597879031499578953018421250615149408067565502164067456182781346839201191142948192777205219693609739623198277618932299723016849630901458041134437117814200987134976897392742673052656744011567353965753940848735143418138641511949708172865198215219533510980381789443852502824145785765389802771954657658409840912034052483320151134063688968479389275316540187632998980597829243626252587152961755852470986250416078007673284674939315792756754358562804380228909049978278814566362101456841880182575153237741753237696470023141340339332330625241120501389602409855518069633738797700570468405365576636600032917430400504490145753813514227917705867377457126610250035749301285063664130896987147514909428508822554837731376089806344225309921818070440015570306055811369004650386246096794041779335951225879544161542242140199600287318598890512773553950839101741533763950935603193302930832426902101833834733559839992805195034547172952986464138121572317976447402403253782335918776805121177587145924301735932607581155313473112889998174246267894888093530400293474030419197000943646193629143326576714416928359919406679009024245130539229291252971294111907923632682877293844624851103956280869616376047833010104615772312636030839764452022047659294327758958339092385818543630689856370535648725196374202814175718024893184435715154190454134055981009361526162437617440144926461260630104543227737669824383543943901857490193954232926249703464808590876885330568224438478203607294366930385207571056899132440389036421324297643222424004142203844977523964241203359964999195418123132674843893644725846735571068095166698031508503594049854531952199659225184336764596201144650509049653176020689732534938942622464324655031633593909088328961984976991571266315820386966435444452598995451925884602889450181898813520673273951779479536101225836026945170779419654226427671731550670726988093789721924673461978059634770094060550377284285883158144402201959965241252016693954485013519179530174526393729226953667909135679967400851500809985289873095031045330597989782292996207231759398117631908783836832008784893079977338712019318787016754414224020863924932233075000286275660081814570201270000101414678221344636973999607067812311795802141154087426532334539584256304991572554555719131272177095688885792933388928122119519774795956796501107265744853574804606183483213332124515781372863619033096686183146454629189399378505345843320008400685344414484306171169833021740190144839906031704354837017939998348712376633485778648485482456760463073126576436291325064871293222546348165160145367655778117698057472533934043112542552941647880523349469623891045143401780196392046818628919157547826875087770171491133860015176155597935621615571573677900780440921051471198806920865720737866566291577148331406607514409087756468010069933266872166510351432917654571180799990171797297801674295564015394145987361340855461573435318424588489114656806619720685116730526908074625021661442054870427710063359480509531279175019766169190648627636598395051856704277927102239808354947580277874318802697034582360833426590955083371351297401483704378480584627529889007474366330704424044822821936569068785248831349534450727332938727483893754684059327409068240417284514043065228046414034290986456027607952719360629361127789255763321463362451836491404384863361551272694766176575572127180807769622858791959356947720652999939080687584789700110025009263619018907594393593906956071458391932077321753439774960037507518027922643697003820436699553725394260738635408819286719627729938859844534887929742853969939580944088845756221695432792409110380072627547187787794256838230499319212758523404858538174164713705377955289155015139974625472506804720096978129436105387254572783943332057040794993530173485950449797430803770351609365778441623684502711013735752040008204093382897850158933316280502868662868447423679429098537753415950384552346763731504637211835047961147083140910248348411971944373510456934656631009433636806339970745153979809250793918754074902710134804013883959836394051681898929852944636024982971700117419865421259078178972893799160404865506097215526682203070411806928313471296320354844497110184610684977209950552462184187818186776386542866303551752930480313957173562464543263812160504501558266974516122118484531640707258900693147085918880292846674660817667062097814482627356404410671497654736172204279124663048042041742040860713714494692755730117330612599438735605246392106328253681762562014429309586151282996143245496736496900661747927488566529476087472506401491342914942909172558649585333057618615731702898153442802123633474015494252665958253648727779711314018127406185494824698748357992533378832317376166462049852960501922410935860825038038533697038974323078718826129368062801771990344236021782125471722885358094170883006267769496088182432516789240198835316851083206165896005475279148796060862226637533775475591268554759126309422065705435023180254405664481138807181052893277347636076191816208015192907191904079032152509223930567996059973759614966463172992685884022431484225527948623441537602077866600227719762615887477347421783574119059108713115480595861977379055005045486369785616482435919729921807767244199260361588482888736094620053386066537097199931649203394569193104614393389683327357355369665759302951564903527579064851629512515937245872145245731661695611729545609630118274703558359375383421353560495725938178358292701616306520638798307266022823852086978745862415287812280675220086824834898210024012250714833627090136137791310404770638085205994202226196616926691185277415020807130540870807204854931227247852366804569957349556628960759155950057605041059711481410892146874736790509339794090097772487067250752544979370858273949546441415930571121894513298026194051746054020003098385996011136971121911228975955077824875128406688064706434422056655950525863910971924169190164724622618139573355674020898556781905265999088976572789282842078844437967493035005087080948217082530702495722812665060125727623251633165747976420035060270018598740129873372251594187766864331741754699146615288676484256831930446240070022927157166188118231210028820205839560814216599071577297934717324058287331385971983935049118867542988626862251430606141506071792817363587445601293496730032789143320971193085327894029845304975502922652594327596012019979068545104593677555457415518157490774538391876373538902659850341087245688820419985527236256626236310811867290994573907711361146811883982311330341579021108702742396425828488223422106886503341700371387573305469508518798193458460974108002785967984445279715885898924965108884074029842878816067751436277370912258125614492433780272382201285299293162998405197264825333060088061720667679856940329131795970882277301259366901437026163224495126772293804220660488719032267804121706257285014920667352921878899770196729606087639072054172784326705735487944972460314864051492268872608275979816636456346601625168222856355375433524929757157846110126630501523810566086226953349905032522335452185904958474386797299146925987374818087243865401496633974298281882583842197573840926664168185604007720898263802245120351297255998348309752416845935685756954012620347231371249707857090986117170644205634706553354272092360773307069357788482660419347890482271964685994985782668659465487631545106166061939735411942787104429147895191077536192162599909422146860519921266234185764983615354791118576582912896329036281917387813980945472839366943559221002526671592454585865561039395365663340359445133658815518826605153008892433293321539417674947066141736533680609196357379788098579405098789119642671501833916034149955483069508359740115353946182820119323881786878417439239026095213374616656207212794742153082277532043276079014656802954405603932799880359987264245826595615357930230617596752621796905981458352434025625800550107995744885410071293972584217662227284658321498216462825089319233010200514358947647900429429016771129450730130568494070217582134785797102279421142076376936884246626002722559828494922460645143157970795323038080828986770756010994475605122233489232816709600091586137290758780714956433730779385939320279082590211751951530689938882801268093186160595886248302626725794364217102300899099466189647459537700165981861792640492634735167489864503360488932683129818540413645667303236149954497529286261571473309587447139205737981184826688923601058336776096497108440676807725612720080795999855790761158338777287029398326939586698694880792685711527073451039842230345620946709133631079119700080555631265752780399144291388990022740797075664172516343921867027840139964757629583125798120190670497183127207087809996340364162840409117522140470734432144989635925535872971635385678649069938988200146860253116596586037373704007897268440148462144322524155602111895930169889586489820641444270491763587312959426930126918498913278683584258767387913422261704422800842268845609843759934515208839797606719000682282329204946023419961295118308509749555475493311243033675192108880802042868750598648835132075008327192742917588097154627001191201999776866271076977297585432780264824249743455634362967647245876844508040314627392654726325951517632879367966799671418348729430273856331291658847751255643867083932794721523999675528774253668117058625282953125211803834033320444535195611998894083082843719252768350655260091375628501954369167640382124622562657167428159878881575069988281327041897385607141116302712408107123100856990790083101977144027284211294983313440812420068349825847890815155968077093126726025655169684896506511981352959589349209431537710377516350028397262292006330989778298116834978203443288868784574320947716696682276927036144436263456981816872580855365003275163712997588336332363974970674379102760925460423546104873308035718012032605202132283667573789863793432296060582292150923983454697785134787616157145693516897008916826852713808272411160614133738175050577117304761197293910651561985929665264564768464353323624316164153240308863445972020618081003248375057234654486146900504149097669008345748542283620601832116024200899513029140526541234953540967339507974482889024230079156736669889266549705455117122051905607700010078870237224489446114681791679850315692220805367591615827024319304668816032277525623182161997303753704170185530406277468113042193195773260540955167464564497440152713221635316672564033339427863828219694164922529984509295645382948366478541590855896282933090720071576059715403556736858263078146405839862597204339922776597482494682716800012325352760966279708046211542387215797095405278673143507731423800209871090097693708815998273015979105914301960247033018815454210518996353812107548391200058990796464991675771430419001503773331310140140095122482965401259213757332840999946741035607889061494367384658936950729194636511491419058672527668140739882521217365390182816563254602757112888666364604338220930026332511254000150355483442703291501456050851050984703944475067640090933822449062518797558732088349408644057920498170035367853115537377078113532375267521864813390719637962591810116490147405546862691348974705652697461357786332055169235397304492712513538422933168980578373417299747093384407586203556301234840245843079906482105316030748112806310423774112019081477083473371453527477673320204208786905483106445165723249452638660278030620481090745636023900953155715011852859427977034225269176663965205975454252830829694853551535651209329102190003912703538228104876124190578299473544180967033506849586887527484791273799375788529054418849011723541230046220821435863036480741335740209251137193185803651381910757772542526468290081499659597717449660263521637727615120045605449881782524085922715268308477984862065497086410588604805800350163487647357972446745726344674605181331476639248958483364574523823653782826449076405901397816594641410038632032825344061106106453725483612598802261379524346710982160347777509815193229135177026377588615625752408917771718044563942846076644317812504853714930535617575549424204388670526847026045398760906932791942205363034762272479929846129746190462142891651835260241725743567455771002894530924849527748350986602866405933799183303181497969497695976709699766792855197992887720868725873613379008890279210748204263550626904045838020600523441101717396526991749582065793802153798133057542052026564660817514404638586941855032541453801860879572307020221404662034704948116333221269238455997645586595161743293577289038994938213929689897490517722556766923352675416143530745642507991457703118182251164916695997024357158423611267442163450905017453651076949617710091391415019055953234354527497169481619493041812016959693411027718007189669330400197808515577151708114317136571833881026968589695866557301396187876451272115226415641887714173010141159182795772824522975771337968235202079977148974425499064594488426241144843855845904454801997795705064752754561037748599064985252169975629006677397382375262818637494483207195749050395070154897141440706849793589760389848542151675915724739413663696866822014695388940988219486648265566727218430783457913417337965104604743425166172835588590047396808029490253456304872018812400817033160398974243194098418845958296472386755167936239756770567884662315360885486903364324730083756510333808069912586262998492507014755731924475343574745260867001496270505529711910149718398696590952220916589192769222244349425234768067737385775437575773108912747776041075285120825284044592620468640929821069350058289141069236688203060664710264040753741926996936885718855647337386208078011075682273403069428932912732631183127342717804896964626399068363646992227206357145419775651743091683379808665106217160492545911663253470348328876211732596850383363667347837449068743131173936020491408030210257973812108226690665870824629176554479894312312891420086896502187849683032406222274802235222926513634810751043724821806314975284210722073575084560184020873577626482569968756388341239239532549215826044449210632612381164249686485507043791646207916237125557363964700769031370161762482140199454607653982121759130348337884170518804400270952678423804844442708905768751948722975121360655823907612006270241720675553790578468021626918000488266887044538461001098360486184331144262557813472398013213378346210093952972399417083854757808848560886876451225613887255296629967004515429955755450260646507218654183628092653300013412221452526233567435996558995350313196325154674787947057506362065453877891589136400917814959968338753997296584240097310041295384135798011717181783244236332770269244371237591702600926963605930137349858986497675913956102440808081798963144965555462594222530944280666752072413104712517967601316582983445879785646142499424052558302596426564077819682004107815876548679274476690529965673301436187138534716160968050867313900426013658605388431920712357060824734569075374120213523205811645054007912197399140763707283544274355214290362576225894245012306998088315735726343108809477812246089896122131650812820705931253134456210768472422009788832609366083701024072443792592256641715108699630662088254483133201195364824999637522062504806624843851509667012107066342754891376350261215345239854302524866914170762585106604832321604156267967678775172920812956882976713030237634322550482886087256671136185025124906024385142558578050150786961083547910041897828668171157676583953722775213137808113636003909499095472565463701374213692540438094930510343374846868281650728177163683444766677830624185018267694479829292391996727776616407110012443434510285792937560858922557666917940729778940176149944943150656129672618261955775136613186353256050705956830234239602440425687215558159189447134667367093692920589484349785786311186592052640930199323392171858344370613971281189440989687780119964091187988192125628904651287706139048665604815014545806888340709143899428333671590534867335104429310788299384676498258201946470046998195476479917450651236832521041764070493988100205792835326566883853526986612104053313707728151108015843502356982340144369344739368941465386877757574859314782577232351564571671515435318376054784541459236429531763245484798682501537261120970263302355750019885204414467031841703508043423173443754032175262839070800193845754169606089678319273899861927959984734075926516147337076857497701596327948550003544321270973962373023848425703950517758565165664785290822612544002204261776221214205339607298767249164905243759313085254183079660550139482423635783318996509707201762401584472296211669161175802223327576287985221620002123549455339925521909242887283604490037817579782850859400654954340319486777961057876145655499003987502377455823207149082443710964489920213642638196458012877051324027797537974438480066030219368171794314378743678180642660431064086745512507616331232893722027819241379968405601294321672541506481590599159259350798716303864620837870039787612462347950863063438393985928303423225375406852478251231438868566225736583426192970464384747349736986198581446122766283188840971730552735852168033050387661334244150795832986758957797793190044727263988099320312942897956138590578467117385649173201591788145879141304092444750450242638714911217515765145403389651367272492726507107771015561979220184930520152395036396944533567746789355774051628727028381401721142227592918522041279491071583858010724496046947541103515424818365596276909988718313588071345667297367247335601650071373731091541439637963031415570265100759557824102677280294500351979237950965547890018908007255182583145462980383760676170650709153296814093469896112093047663359826709571525903147471635209197766202948637862346493245820281808557375461220428018159014185303278578914582674661683091558931959208184474240303060730291420181486955608382292522056703192986994509389825241629907483826653269252171811099672574660397198726746996104982285553073854643467412123157233862292714478621253468287779560192737405793181412812733251080403292855585978464605026516036027922191546247282902824102670635833546761242967615422344724807726444772903008254521581439268477555294488455229997555305550190246955870286867465041436884883636093696641092567579050597061661139632312313227301156330447359683531917356972582896295757158737055590995445784880232315015463719063225068619326231130902089458967005410836822459049501783429564499669057914957733020341953530364532938125259063963828381451946854178848323555376475365667585527097901367301733449606257613429765211137254178443728620591625226123607124150012893335638260638725925018028182442280153245618398364102136864934563700935241199920937510838669924963788100718525914138587841086287773537774455409701722879846983224911272777550970263446516904796107952563076085230350410901983932115321936513778216931746767170217598783230618303827740254092352424140891185559027622428721034462140277877198816184290894953193007674931092418834678515862229025388061475196049813407115543695230869585778562392967528436776377264260816763050954742539045412606227128173076123703785276856848339822415865634236289240206136651320223410419507595185147622612434991368399192301859305120823134383541469992433763319130205147109341791813889965854974641187563617299540692165056212267329502165811802156017598386542977106356449812484704495314100972613370129847344917620155893899738447911010423578781036113328812532906692215497750011476621327610691965049126647863929491531470350065805744604133587202341865761662644731854640356970890744634191040971793270631374685979447634733795304131993059701986029280069085155007601453602958236107335008693585032485352684172911304354554348673783965185119449277550532025714300430842173041872777487638267087494890433518802073641582918370692549502363380579553954651834056711181835727730430172910475026670638916985131532131154692317798393806892509580169640665117080355296360399031363608939016760857622580657756254196252736741651075091206622990945144512857034156746282406119691475759019564787833034859325985397278794397843367346954781963427766062940462401930476457108214672235202461250325815157512067378668544165665747445338814132924603021662482011675600455983077409440254632426282228291815660705849154710484506920123451418400082593016144105983084733718271933194190582214060912522171664030873851071686371108935586903714979044375710286288439771922293094332049018901604932099928568257625277328760728017452476794209149902767070489025662918627208739152960856510312563024962329119680345418149028237768355093503005294189612124306645863979566668643578622108978334843041559278343723078546487998568397871919633968701141792288466962063868589527911169767382630755382434972980193707758544685984535184064780372273434774307186501397816848967199401530004337651517173378162615960969980009516141511780209744737171012206873075387905029175228248476933709484547935051450437227517017438971243427472251827550081445481983506623979841811074620787646260831534897608141502493294007971399410611944116984139866874574617851297966466916406685226988103781984177730522109577853973297856610071139697239094876756241396187712813836288848289050569317355877095150808443522831559020971568112064607164521494868571984434503929119155266020375418339403791499047918885247074095658024513863715856633069836375935351475673173414420344641958519693849590544951018897256568330215910586219050786415075441160125785719725206975866059122384075812002509199675258179231302009747563236027456914295195995231385185458008738061706800573552660197725144209783600005334002164961558280133177521731645109080240332286141185622151080277696875853893329312106053599560170957049678431288529557119620824994028381351979928956266402345432940947721554473578074543494083523595683228780981835679857321986330567771805148387329415106195362938695710156696880792707325218620333886885823925537502255675769264779676407161349069455069794424356799493916730813180299748178488127244380112872936714530127724315484647792040022381986506276159210086707167427519929165527453315913152805831483554003103832483594087122599409829348924398045345131748653538505913514854184648199410928744069578684441713280608802014273690233774898760400801346622247079729874842207449670621926739970787481681043273938352463167025771831137972436981222696781308122121608880064082194496839962137318805781899228024860726480521593390431546312960585521578092973106033192958720010445608353764477808721307367433997368751828873571382589008845075041926955540346568140295362805325636912551986764070746321907078064941456579880595024884974218462694420506634672598909142647393355600044142641525154510613193441228863942155120939036438164272805067449158484666140812472615261535883815636127132124940488655760391250815780036025375669180746409271978140653146942014794645830803460115228487826373710117200644921912012671668364342378248709130290388731331493742202211894346735241191043194939977326294006064738730067058405646995280883082813112855669916169564723620100083424181709585935083338150350483709691643082831905245724228510574337792323863772580314594636186060582096767148941305078827410146976100662822386069587276684488971723938693527019259983327097882605509983917085708624665522542494448980497184094466333995724189976890547919443855916860439562948839322105215985558416759197405766571131986280169310409107110703116535211237050014598160248979500793077317076345765315042101140567317352701306220455437017523033917948224821756310683218475774936906338683607123543866843325356331011050736414911766883266606929646317624423853280700395855250972763873936655156989179331137928309707885747804897738133649475022564764968724735227197808076938682411836602135040096618918709827287042777927675697658443803238451992753500726908814346222621123210934268028029456451109536699319930446426156438290326411008059091466767973821738048297925122908118218996852955773124015630874179404821552848073458884059901722092669289729304498143807010097232233549324945571741364218520961154129182760989573573447957587054779077200624867599790185834997870795314538088012593524879344306978565094191419586971503736587235587902023765708173828018754180513149126252842506725294239224510980105919277087100866499296259334162024442949465613494833490361612851423342889578240388044743823203615757963041055246629770672244540962479871150175219103154441450632874047162463011298574856004466933887213264477441453556214504612194774098586071304325597352467535659165536598557571251894293683998376793878028333340540154193830970766860240479483042935541911094188263280997866348234260650557322289405966208773129069736871613350609060505237095666734312432701799358897575693294870676039610161997908167979903174811322491568171626924915412350913221638762237577688386182418700185500130737351061655292688148446933805282437612040813710222574487399612358969709320060718469830118077997182990466906499431123739234915854844622173498919935481854615234724664034107225366937100705925144911393719151284949144900800788133136257802862131651801845144114099613173282723809629076644102016837835598533331257942937851799183229577420624672218494394558902658168352857361079990756374008470466985578661526765621489621963770611978325830208380283657876046165090999239871830943904133550716217857158344255316667577783877177792038138672714929525380650773748783312236230310076952368054421279691924714501517606299486479275472665278269884702856828687744539678113023909425363864414616039526951024670329076675861050615129951723201026846410900823228380123917742618567319618776807314615139037755218035411223460082446607361659123514240739734329037326495322873289963633445273070411873884582823409665591154259592174095776462192972022824051700031734701066737353016399953606813191387883550699323245684299686039366917148646875601592355943130059719410141294190638201269046159621425546088869633227012921147516467922239723354474909863028389359853143745162097913279369093766765179809393251424635725068336304887126704871870073202764019986449495032389697821499061153403963230514807101321849958254306610648580166987825996944800943949827250358709243707251729553813045898840332178808682460695893822911093768695439204764095396604631071829074766071832939636337782187221951850809169705092051416329783221320441891021479557948640521150160249569899998858165850598546046094895153986891544743489393461578023854289391627403576746589143261193114133371532783601237180221282504445880507430096484609290340841564909276972383615430920095907800594026218757297679201685619772924829869788136981105618517657995549017686766606316961076138406262095860848436252920090791518475429317716383951613925930910772427019690332063020752213376557729956142777916982791660523562092733693629770089179976600053204485920095952880722166824293916411098925764181588605280627646464723836602464216187226025702838871846158744358282957963519766022645093118359051492243181216689236484627975438173750002181969672547033317745176398347525371672689669075701481652106312479180492314495083777834580520035202279889221327984756489200295546922360668773471476080264166411468274410812306812767264302257230388017387771822272976744705526035718490079468240081167464530997787072851077145815321304488549603704143901467526279057519484533397613691513858524692491458042267632368708843034743711701080982852825552942474723368169761088013576419633809520577160493254199767857918106270130581395484359101162299630280338346129202173219722091650615346514668099673341685657113356897326320023310442592781902466005734322514250617920580747825430494485778939134050246280122146602508912894367575649526393168061653293908082149490899033522768652444608400762301803545698720294255465867847215778146910411426460709711322377515391256425463849428639053707864469561653330636417775620515977043171303020998784712823934325544773275552325720635321990238400502387225638457081321656178982872860820147843530883234603659883323949695236102668685752627652123591526496151892033406773265968256710354672629782940195839901060943524068044096836497443558310855407132831547918818586323533778985798215880070845728669508114733820437887386637130372105113637648700822480557215197360387686390941374487205013809681408406503242689641205458279311577596228514832670743296997300231778583259186028889660589066230402294518469531938147593249264302456765639305242475064349795826905457454816009162646835468593454677456917339682749382488499732701655189168906470629233417997573957713787360609788154071163929691165425089265049258233503311769288935871216382688889659622637281649819255343285401555019695209163158384896899533651097370692307087199884714652132105212205966765189182742734883690729067542787577683183746467743942317989409104715049240185957488840611546843226497475745540018916720440152405011716762604458496677461905248867849378770575112192143811938380854080559896446555129918982202485857259520793613325720397207575859060129602136475948161483548698131283348818285330274777116534664426873471642268450149810709269975138519974696976575709599848689756545547037944636121526488898049244419736820280859014165559735634044357366521213509494002509844801500490142833533056672295558556957913283005800516669380736801974666186041329983063159549458145860394127666594092856436588315020111337929987678683080264251293197430049633009243447084257911902465719050933653713501913305924774349894583353961424755017425418567571759938030180253159696021626544517588152016215886838144807682821150612294003033925467263715334078528788496968783476122106764689353037744899172333742171397076112701650813711926412452194680816329807921545437148787268855177330382831888611449544040686139222863155722218393185416959220857252282938340743300095026918805511614726790938042339458331294738717273359626581582751744552919561204555797195008849641742510813326910149769623442745889068049704250519341652648495371626438984165373363671666444133463139286932278166054288985684161877831029910647266489280848660029550181529927837276535823901033740162549067488185819246106166496491143430219529109813021784350214465375141312043928483009737121980310539097332030118470881451484740623590708171210449908454321189551113593989851178753800303260251147074904013597472213981562171682691396597695189315371805478335038971589773271326779650261799665402368305141161625082507407772067172096523695816969237810397608002442449867495576560613588647526172622642402561013537271780174244365521100053407992839600595570774111151089328999211554061223709218066774561416746247264954494466562579484182002318128058591028391224333639598944400851214336652025925535329126066651235593494878048767055878155574619768561947260844880276279206527513428591960110267346620247893352965444983043519573506301851883756267046404727602426319505478446130313901653178466331235976343771303510992246160035347257814177165713333218454458195010884126528684405011435984000526057925977593734000961469074679753474978466675865094278572146793003418027193481628293343186699063945598530738642712968076943653317859128082752314828595593064550979777373814257507707534206983089004448882493617772729885330330167211739205001604236231536812693503306114188287661795323930887124247684764881860727586919351241197818837470250493235161533221655335037051478910858430593627687972836077057245763037865299227757090315292529561258805967988601150089054398393712706470001292374559572377545580179193258922655619803684734311464742144144291161816326729310705460191863265946740859104906806669687661046849650191063060614491487631112143124519013108793893848602195799850631554921499601720929587799543291100897498846603996249972864074197273271963406096660253487387085730769222744488985625226196084520661012872460419642217151076343657428673042328161239125838664269174071595643807514006817950328058257918644177930439227491512679084637136508915545626803211863690626589048490774186509574275259936965539279100136468591052421664299502614555342418438746990416165783567663407627148351684974814022397175446082004338538456226079893422239382688610165087670543786906980246655086974560885248382013434300259815826345040008127101518982185305937253714473598308285251913389483388321520269806853943096257614633451887170884488457341291149148116270454036579633352011022161535969577981587419666734975934001803825840745229989243920466859956270500475184896173023825662950168702708245206480649380806694108984987210970404263381136949172213640277874940929684117253966436970555063003068951974581965686964719786117658161757637667552493074425202146551943642375006900230127956464595590686521643390182761341401689244559479907771799486963937777214404403425879637938613676393131728869949664494561776547887095390757549722028705863461667778582136548741154841694291936913141447104163579154465888492831576860982771716930588954013624095432910333494575740336748901139191981516723912243180432571708024246769619983043398396678449249220529547870386494606416697866466938166237740363465518190305857723200111272249459101597353753258547896793732132073522846416825492007461981791514648173919354036937148868671710363002401656140012537185854837441825115741975784974854633630689578586676296298145414427400900241071821660548279243403455729546874457428478952893985829247115870850958757366701340997274836906921518842631423345999664382287255436306505739656732315182826398512698378586391231062380996821796853454585157081252041605283734468090567610809256483282670643720908608377436883342920191372147946223773373606780503698802919498355190646139930979270208062542709003831263120187664947581789305839782607842165752850478263927649113985501384761494714769801227143931911960909967133232206459999632765857898389322685445790258494035429652507560504252406860708646965822976713085922614532984657799121934996466031658146297153090501287196454721383300270617174810532976859425838696452762243903054351901696900329839134209838615279498041296699905760692909176099114708254433288919843583918501730491172677210564922221822393660051720223182483325136094567023123077368557191447789219062925632808411680661528557275429178117558619717121736461115631727906902861226915440666906846051906176116882979247412204872801318993171541813900246924657716264624489676385007873600147594268998544278649985875989698808034688675172887062359944426090428518885569852213206145285999077129323444539923772184043090460778287974282376366820589782465524746451670074116642497961198339032691595223985249966355418210710994676374304991447479060785586817696756378728421504221457586747453665562293110727452828004317744329238622485585404337402776717542004153006266471212840506730641754680922979898209751198884951002587087807141959977455490203981904770769361288093064005666157910060273927146551470506705318689316817431156811239447910685563691391605625007949007564033362382608469157436459257983287028427854685051226616138977985140390349095486491548699012917920220945689235925511199650058357767290687167818098514689731284318501839895116880020996576254605825393616764091320656106939453559400026332552052636535898154746450507859674218902110720226634090223777668438540158271119858869903629117438757292723341079402843817231928822823068232330864000976435677237078965199213104548733061874010420507290179984810412700930594059632784794871625835853765629209923259081109865264530865193954584507988343658186877319435022872781096980423881685771646277297234963493176797912409058790449477978710205825356535814439468340447095046637553228500877872954666515387777179295915993418512841053381444727526295173678888954504831208267011371409518070374555129878396626891669052424929758548611674213986989724822455181656112301025857810014324697458323571992532537388702430102852411796165778139006187958534359293076487466591253445959873905328865353369101018526475105033616026395752330640019379903708028440941331970900046374541274956690382914997047777052632971887970418072523687455204192606158640683830974067532185054357441901275476165686157080128748715318817479717722290546830648286108945183608179666729427255890122826061219025933043807445970114947434607785083665212399231741111632453232410351712603170398736010309832349853725999071580290447628643228494303896226193961086514093534653241521711825017291141604529015850462695718736191688074906428647114869168787045221408464922377855933255979630570060630068045700385685849232458207956994149249000047003240559032748879151798104611703078867043504376771504529545576933098193285736682794921257424329540912473411591638915111139461772201223016605442537569378334671877368064834215336571684778799135902385606973861263716393950319480986315025486942991454971903060615708407695215913515684262100602426946166173720880648673762390842842639328903115378162426393862955687736880104031283326253975182133041620058057118642871708787754948595581161068312675118659187861406016025486416397473925412180283954141141409720105156905771747061610256771952274577497796317118042076115050670357365203975027922750193481997734013418167964985239949037181030626697159287332849773568891627397308297671000583919660634566949621623679403840605570214628987610746709927446359609669727521200886287200261064216336851456184747600750827045005121048845273834171904622940305898212310681677231404584208062573275045710012878841802125426615984145977796576361545092415066115029419333255326252733865361592568868423080217576228739359683922966866982399886333041484304803519011578375193111796288578625522896730141127117329723843690079949195021801222812607617887681294538236603751966116230902409071306644062491352312636156838517129374887859393729328110999390815905256015523181484518085479811875404492742386971435817437781522884178637142142786412699976434781549813525755736265648052202827897340629522426309993555937708358843656589446841020182676194468937337208655849338734632786307733158796022585419590624044040790209508056920121479616465766334509469779776233305239651422462602291198458031278585166643239689933964670153655135644539261096287613285870057799179888745535533541465318866734811672399776160927501168855868213197672050608943769536716107077195869856547505660212310226551006935934777179231005590667432678818117011369242520000083241110570975636816620965988619248182257149594907265799758579607181798262343365590397796099294162095731168586421358955626149829489366215573618540827905176750714810254102546243759882448652514611803451816973743325973996627420348823452205760198129119764534565990777267589510278989483221922026517054595860812478491000779670771536935974457015800678904961991224469821846063206575380541699248787439979942627980932393820503770608966718864901399477370625617052889664650062358498116078769316386363902472575348708130433386244024299361024478673020407125828979355853840305606180439091137617737498587785235067589928143687924375531688286852030402594616967216024224767674240173035046131291292887147901865577176563392336409560233013611381730294723272752685587886807318028292275715027579270809472526944881635750179789868343124452770345436635632998882930874969436694261700741955096978093849705324130781318849157243044366473416387718699568750763464577927187208467653739453895103586431101287480104022514943471190045070534989145629197119252711999630735343834810780399113560764551154795679504809311045439449177902571575571897216907026583851602461693469967467532580590081073897915949776850126967079531796506706881906872046998849278873321355593189181286714855313689527939836015441781173800109521427442142558941689494943151664417665840016142767615077381126666988309096814049968821571026078152184524286470447358156764166192104449023576812913875486688821938345301761661585663848280193545453719220246009002550634066805003510909672525046560224506759394187187604618275737619964485809074766391805901948671712637743181563240044888549627492452945631268708811202502247134330933219919680837764336254115015339017454463974748334965237175410711952221904529644714061129004681944041545673326182212027841323495541108851913154290181902560566694374439825942059581831865859130630884048191953438168834177493170678101527910920107116286221740773073867424311214979741101761733438201945975900784619495711381584231965208090374676559107509597920400327006603825247539593629489166601378436285641674813601215988375028101502994307881318529007640841403118090894278799916718557574388977434903963940703640305881360215271959876724225602737089529790559195128679102515776056608375504445156779769809805393772799099976535226321757669157287265673125347482844366752169327089728858410588868275219800970393743350785564842532138741185941030716378920239518661968611477805459739737625670178717723018070286448731054385554234991890290717221755167188913701112150860538654156458871624044020079783166319634495834057070210143089084804745637450269744016915415573890703601123828140163644852556938701021429976762011954158351333632577923699844068518767963156824160359350273427889322332443551975833329404613680202699503479102716948256345521149045495066554767041522548600705457040316579726769524824185336415313065306585611190946446093369417603437578346579784497120614465643753205952372904579523173432372986975127600582330694440774394390774868112434586283348229006434986567682948863543603335389673746735390804195345693412508534968348175756005427902705601257473472956296298623371749185510821224936440076676661912444297859158622203293965639248236560469464390261219259662265490861943068514766845385390759387744107795380380514203673301095752473579860227222588954457574554363124801458687092368918378546246754491301975988098356708135422737337003451238927982984647412469327300069793713655760362632049036927865259826842778806198181618077791532634418156981531432951116897820858354722464472669446048011758250221035982249767335588315925880536002522461301227835493776150095890799824495302494520686282798410555525617667282470808514621226618853388956210244261639415175536795096286497128922978442448500386530761403199522547213152197709043207414075444338120441821096781563835902552658198221714742037152706336030203334113164244075200475983698019393507284676165052071262908616895337948015473013412230726849522734337461859088816905305012189110158896850652881623752360058183285041256749317881636741983111998879299480908638252264584917429756918718039170875583884407306788138360066531479076734960024231199858910005055890880819212468987937506815128811920510496250040319456377437251942493620497857419814455333623152386436547798289147071637006433940006814863370715576672701578139516508705843398051198276990934405117745760931480420405951547054495100029925982225183512842709441663912967368276318366732631618170747277256909057670334081283048746934520651904117883313528354003172219972573546183619039309592218797968677697940435058031371312285247011534921790920464621620536304992684653499429114364906842093919952599161175939553014025642525689061602869260525284878971562832055606170904820541407911310403105284045361335102179399772154100590599411745598240237677809788508459609484023576269770770194547968312480940641682491947369373048417299600612940955661511082460620885412442572264769069480992105360442893498104680190985219089823656452156103264458761642978022317212818906344710658980505776958565714471180676197066982583259611592205946934016464823324162320279928937421147045162101599350041805336973138447153676497295540794346739982037596103209008889073468523128553268740947874500944415123053311703979205913803431329196303279725338405349382453259572869061663281521605755934233925440312748246705642030344505283705651077076940257761485457557276055702165582834305798279270794357905666358039913102668755525225091627736860328869149320970683453170397058356054781089696541411390439250101658567359964622712697323452902331438215454278020651568764666891292121702113274456400235019961796711768433186563577966515986436180178648172040563714174155824437192794340004002370957924935413262818049007702819804695052199300085401945107801903240340527275277327229355707525453373972623797789983076084820017317472623918311715256911562181495984204993289926011942955166039929292078991977685254543765931093446801952635633311465128302478155901221304758806473443699597620793785989305951301334521456559065479355086886509548946940496822519114269125949612546480641450523347032595224248966252394883855431462628060922417517216780224649312111689491724103646637859183313442293486784710591553497526935082231431423524326588039677209246703950182959174105780410455459309166053912830631346514114384117710476801389116138273120579335042849213541834930154834521320465704231185745704284744897347925338212085110281194815043077601765148318730650957031927511379865995942165381906778079799817427964074314460738576117317079073199026261267181793250383170221369381408673544898419746660396227348919623204844928077818333337272040314529825052965966163884111020046662846307836516122690055251596975202393676513450877758251173024801743374648987598219920152343346014243843680497322801952799295348895750271521963004573061299055654714757796358208211700779085009266127282833042798794891047476904202354207034973237439837189505833553197396140412991602601924114521951381654124722760109862175765282529780926057678964318565692809551154880148997032207344387717241856510570895808790905324276401581365284984121662262314452560322555923957790214749578517869604988333943639244009691377049331730711338852990470938406450085011861246725851321852305831899286157508059794741946380957744719109524846657550761926839600377154896028759619852267679560384857264045273169766683470616281495759681028320939429491589341388417605419091914790469470050602268269825094095464168135014040498670390052251527201518040055266289408202537968112945671354885962712198145821134331985185701425556760019859540384797748974724274752410582947476097751671057586781554454749897408144986184513890782135923475785563485685377472492986265076167736902525427467346901402654030951708183362153560050054957680340945814478721248765522020462002815614458475874558947842096805391245085610491459417863050584405541169971492310146315076865648345528997876662488988308250498581142742003408034553830555087155430221688640209298110016384637772008853748920467153586859046812820872336703857689196816806502897736000502464511719140565046746873987802462963930752176194438384092461638214533330307154495248935837469468931605994324229639781686992931741776884123045939938949054991277137853478366909155429437974106437660398671073907550391150367710636409147703081046949873745079069320344956745666482984601861112955816612626338730759796919872258341288954431698506208633418863023021716935223108870525680035382600977783491255595105464202466768017186451896969420893773759184027905721651637658178843387799507957187844580366855314388120890427830169147171740302420156545736598767970299110734546170048713143047625987902652725013858758482241815275832631127241577110817336590868361358482536856551739904434405719183701765448117004657364089012770076848113474158338973836884230552832291736461058340109353811511209832246379202992059785072868306583610439826968332915623852597264915885897275768824692485407461699871296506086070181996865734094570035688466376526048360914564367916653409386195163899662930012839792203208698807181569929618308421365143438408193529083394747437287552024518209785147499756049254835617487769885100422182694600883302876588025978867473619258139622289949819148492428498996021993238347039198042148791193498311875035756156982319519828231373228600086814662184347524815167210225368851239078083778670808211229893566123903547943370936302530376370063976583455709269942737651980533939332261293731309957927706840589389621169971462428602948843024910501455464846299411723505197819340427779400142916814282010108805274387894307490413647416895950736112331044158842561004204078408089885232411768679331440215475015778489575976024436575684242019959890614701480265210328200470090583182512088584474901700951378386691257395768828547880842346551237903463612484040858886852181427559031226044247541139296498985628442302097796583370745583941252348314429857357860767070520785201703093770544501997769672690422713373282020055121826151030612649066413009981274730531741576435640308217608032250078935975039008922904097261082377607664386373134120455465357992773987860323375705824178492602638058163465648890953268977038258829199928370106061102645562532564464116421814346052168020131006573285833020359497882894011914082806331781251576457728432373623513363574778004724387043350509932649721227064795497010152670439406649196080014165590029214721661403611503977104624565110428281627715517740111336175566008027007365345337921075068778664021420781307238928467273003577698519456275204504558266812234774100827821233012142887578778757319435581409205924996229880634474506475345789593388235915967297345269500044775156041655201820544472638995615691226836442962572186028551186674102448552894784265274843102695407656143515521245940745567107135895557375597328471132648232701701307253202689159524074992355902989422108488827226489334170413294221672504979570143000091000309315986398669625442068403582484574184508020235456578026807966741986223756698785339703872161118404155532941107108929157462080577323262133795170861716951852119554063686980347052732142109965505759563958662191225391949516473824723375796934920420616834554592462497994938722861331960846305200588244135688258808549958863847118655786443066467892158740926602048958881150527694319645168933862645781377853378267816335129782055884482855812512837881333965859591598116395571473699179681860628426013640941062184504818780811446514363885725832931659131196108782158623677894794019235770425052042794654944607442673044117756380510835567474472172164217523332231496066811119735220757955454172232669173761952310978916888479885336918476608378695371155429967492563986275238844716467323539774133855576504917198247665584366027725764122261423702358445938392526121717123438964039772427916813590952555793139734842513984711272045045627005132476534480914135109184066461953909549586165877411885493724277047828669626964577878762935762095078796066120420934452875244028628021643772353700861147000423706605727620747341829991202829923590186699674618895156683089541269108216321465673459549560422126327777520762450012847560479109718531083332582424234389088286143315403629995969732755609746753728687585726377600341540263843127366876664576395826352752135103644069773269100596889108196534266205832485199312799531021669772681623196603179663103498361880958556386890171495968249989926767034015074804280721763621854455805746637488210231642790903876198693331353292383726440077245710063173990763722768355594114886967667269274583414681808148498720274722948904813771176967954713357358764226694563624461505909171136802592716988387583480429310806188024088734691202525793328798498078366099905109046435625167057491236522799113641433599809182440834377032542223558381584997894974650038734077048917576731677608451050380709670225989027858233921338501122098761526751694663538174227814213402567379012197469726315124485855498736532664571160308919713212812815398461981754198042252708136145161429231603065424813682748607489936287191385918161076999517240074387371772683374919242898123093607451067106706301481452423362077785090435452914891683138535343799076602125080909584054958636779902152462845022554783438251029994345321054676199496311226207296265265155007974046045538305469406374874894541964868471826083731288590557537621368185112386502098179324334744234289551842128685025892472905928436199374584324009938624559944044566295139767344953774891528184720678296839440060661034312754229999588252420884613639751000234622513515777225642696490349466827328410884979143850623117151859067148966787941191052619694999566013110911637641889846917279958962727394738492076845575746994364826050656444633794720857081138812320715858251136695250872494416734225288665094900210007096867417682459120090127074055258909343834225370195858111345420488353906179084978098221403432687790673861493639734961786570773204077712609105139567070867013665105258481740460310903276432086073345107601031580520843639683168788081328673342566271814691274854719653974375911699784594715965331064578118090715561599104093847617125197277292405942970224846798318376770601891711055926686499345257519232877754155766864034297033654010180826862435148375869679681076936117693730121230845340590103419500948233291556656021119123979108171520044030478552628641308692617752492827185026157676565072099899323863760637213642946736822862564495617839048501411345314106855890191012617209720479790044755963646558981961969852861866618164515870744575188081911416843404800371780940958818040688812782904524683174451514742875712352691819571506869340525035233538205479312151084923626894886828418734939775394912849984716386184711585629758054518452119067057004816364546019913085540649484887036554199935143724520515721970404690749969029795470788292351011166818403206557387506978355865163945133928531257594639489006901494243455558775425575357688648738816783049996372907072075158261469476357383036744591699320782574644363918224320062581727557883233253468334533247591255880557477449288250061190451611773920632513359037110421498003624838164208171495927527898946350948669353309928436692848791341789665429606738141475150421851001615098723644899523451740024478453074521221790502348520923496522223546638410393142771949134230034693091756705371293010587458570401996291438466673286966945127878920090943437385777490394887898858771854334473742632981521979084748860721458116303541035413691818366243786782443296855118151366547819368438798791489676667738076576108120129040792516660410943973926741003169686545085639142267635878649165410421650237359113213481504538602163910384622604754331541045068256486992208381262001483673794942204090414070925937259061343679350515471268696243422484443844896497060954086118787002836299533247181183158075674126632161821281713615623193926476520181229023549240168845110987521475067988841404285209237257751765225051342614285877008174486248576172953042903443762748847609966519044029887913017322903202293729455950160411250220465913488331651346043141361449772248715737283092573693424076092479203541822174761986374738758563951178714981915187224256418943384216339515515615027435044620937490799857538046883180069865363205640497616959866698874316291783428811296584839250528632765404515015558516287799286364415145384832085440480359041134350306512950289476672969197568339495532366040352348221298628996650884344303865839991768649113844893886050372876405290700807042927175058532008055206028849369358736861343796873698605215145767548604592984315636997372501357605251787685363011128771515199463780272132324337944596646062952256529398466618827524207916768642560896385859234415250347928066375808419450356898716272593671458998539560277420108032634760791822730823922822964145707239074784964548007294816883512250449978818752432000324662630293429016445346037738039440648686527523389665009183261868315821617502956466026951414037076045467832367096466504992999495785430056902792402792150236998571331279706089379055517878894056359289885533037171813027696331840565231292788066037424540844243125050318539506985298843665026024664519716897467879376997292734361799941661800984873479944249386751276267543259802920926993436386299486384085156000075326739864072935966975188588284158376013564000254729881880022134014815611965900426393907261031303435896198313991822660904382860304024474826258500033095134792948574372362814755078708847218672827557737146006645509260389092285346321128726472006559180158781761093183412327305982828023718028416317431630132217356261566873209392807320853477929070965526743365597120469992066639404621691616109748799664192821642821952188645072682270215600372000859814231348791826986308227997554907718256240104672376754884933356581336677981018160280223493154973029076492088776876141218053130582588203066009344481983191869509797020002751551291234512834521603176830453257355506783193838455341039462844045129357078496728828325249148815954949992035463988570292871842855665533303725500286131476226746212568936478433493463384387889190596876443318945521947998800409953362410461430246892173505574085015010760297311764231920479292106399999204419686375091737185089899021557399897464733261366242248320781879059729565625744998454537800670976781818021846976499976728666283892515885610608870125547902462851425534410923522741996226507614290202263403545053196333179720419352827760372642379087438419484724616156792926725453207689191207708068978814780303209575217183910067491908343296217370660867256971275156163724838496180529147715383987726813832851426564557886680366591235671899331610673793012985042489806463222272290250980783542210546501990646872175604663218884819719396228949802724813895730981058617671680884523550914135901534514581830225212290495714400176007893394577394599359655420409737434031983761501328007540451682596914976467314809527509500249773275966906921043491163939236971488129888981291852133113703264133330740391488883853490573929390636417881442710927599502786605412150308042380068591645180808970326518749903271672614782497765793294289234799872769465432691324746949804300871222141250403335904481032431860244555363764830269150042292254227511801941885490578321627060503355920150357239103249057079332887823628719620144183485364690925804388839447237121581579085404991370722472068641083600091725186477666417084532991315516162299007407232292618314689034918411867760652871262141045833806481614064723403266357703575234823995872445538170220556122880978997491602607002906365917368609740309171562025686767576268438246672862251441319300200431973016764287500679043594196245180099640268565287736976009857152233179715026610335689748731934800750813164930546102031011804626205805315799754069261335638967660295850589665494704599189019538394119158107905754225616095413785237786725353804219892288884759639707302910088508516681564769956981197049986462358018690157851739512488470757797576530097446168604757901311324784546396252460174026917038548116647076048663899307513019387624802475652099808665430004713648591848641893869232212056072908261416895854657982442423831320106236023478850661231708958615179667495297569182320032518450395083529656893127885589037873843723096870809742289435254334514862288309205778520694887604318914152007415544415553172605132233312363993302852210113314611312052512529196032463567067731419218381292203150665008275843087570365547526643159451571256514955207326995710372009194538665436773902524872829609904993464790113980120870813557262962225434477149168144592495718633419990990498001642820396142146541313230449750921719846181097614502509193663783745590416709901431201738342277823043303920212814777331648616737295301384360718330766353705957815743171411202976425992488885254599338284575236652717472960455471917073797074871652869451485821765398093112755559344287116558225438776417406812302476331576298471869995816306459341181273454480719708466513945877176863775412986064454368697858960101754218877941850863547236551935894180864193429809561148094624093767139697476397001989773861761258950197134729843452682537781096996495973310041015405913458241419803478915834928081465471436916419910301451439339803193126825791656317520784136503728419460318605676817911027062814465326376455767274628441311234360335631416609013144015697077078299776985298421484194368298793157708225022706387851509290560410907384775242991367305519665553283661139472215637557855379658803948388499807991252843790915186919192836912773807981193896519594337373371276835501126985234945514900910789239262721601539071278007262618351633356054509421662393655446530958496435463504747311388468060570389300908664412060036823556565786686548896293571281451781423291609015047239968448106857184167100055927531165965419242378600775722376701868266144328746145962974097680058337107890840684882354004088527144424337817478254044141900845491548592235704187554129656972885851801192206570295835412503609202647688540777399470917676396504715738314475181439387616570134747717268376477334186419799822368696372698362192108629852406005412595089508104666782666466561244180475299760287206146327362819186092067723498863560614098562799147847910159434150245791707947864834296339926906609324282077069006015832317069701643981780159202090893669036946697963047605566127807330860554452743591569798872210624282347456767055821067943007169403878690234927349981029876757296848263132361061048534823189327654443324582293308685118055904547176538428255440399023283396507063586574941109631619992598220156795100157612062364631022612071466704932343217916703174043471066856059202665209514290402031321868680097092386225717460665794412750486112393014814568130500972002715591052166477281257715705634850033724023266281340209839103072900563136199960016130126208965822571406155317576436431899772076638019724481480347051091717492170303230646430597767534756415992565878011236320502940009549634428312451162322951705957673228997269690549669590438222083799496565388497015385426027654221393216702832186993068432313550135430531094843073879150870622048689040159461797045499277084099949623861728409089606421550774371288621528327903963030570215087631050021469334737357069017313077023079615824213221616879038981973933666518467910882319147574806019911270575997172074909684117144587093934687726663681250599503142620388069575144660591936070569924252830920033673241744641017780983318428876986026165139794076475472650973018060629676887337186515243643325296572333871987452674464195553843306694340788739813936488261330386668138107236892376169741972003909025742716146379389085808591243238333050230978802201973585804847659485636911055556532372319697700271640399437999418231057880527245529605174199415051928298203253483176456244405600161740153384851498007948964126877973643533341746708165127545750741564577163146061958050323750650041585992961469439306481758509697640837107746635071958243155181706977978060520234594720700110858707907562586888611252253773981866601920475747411181118436935265466119551007886513496558161440946646743215363981127406079571169010920642444778642069148801098569171662273441987019610708594069165759031238416294769083233300800818867263659642433459520098213376825401938625022233743050060202354423849343364313453877590113983096116304745738854435612162962018896073785948961869912722332328631953124808967874014152386106598283311905005249030491147935053589983848207278533940530708360943695378029913772494553037028060580721169016756529257483639260068215135992755339651459264445792390837414496273771140419523237249789321878698743227985800507100946300166890023481895696850099644617902832006347511182981981135262975309756472629941590841366744412630337227854321061047032745849073656786492498811068662388621992140978235890709170460469353747123196929714965122378558063245251581506828888742933087223781080285507649557218192546871752074396260232712759100967118998027802667794199880895463292110653745180642585751575554907214918567567976307823514911528290733650706752184921723501604827520569418068429520288981623779146188604692151963413009083677665637568951566690629731681545151009800178062127432933651908972073003079286032151883860852599496763626476406650164650574937776892031696186720220440524601305058045000035213762020991273172351407024215330439534559908966105554634711840202182212541413138186455902509017342499387629134497069552913650625889569179003135495285154839751033623630307796290057239756354640323667548087991986773903948547821488023020685357640977024418890963073584295111457637485339177973008155946701721152737700443748279428539347469851954748593906432632847556618694781049673391845941198691401334367868584124190330034255792489696217823278975833992268168059492347126336044710339172904125740138177058312622794393809255851817859526197942940245387748696271105405421710125777350456879564328487920501538045853510079942070842522901699495986891280729601443529464428779664021655330464385429506348646678635623925281420001105604917669988578528951563320746455125191352230752076993201525796313432531542965753308344859317535925528978310169810362504146866624059170653748989884100880592643639382818589704170547522255416899063968461967444678024858070326384186384276173506554453841738480815889746204490069554978513308036406465152906745619203870476877035036256953918315217585731072717436563899969401211281272547955027567034112623974764761762025884654418733675866867070742106625546175654079248473940468970737027945911165435031579488914688251816307236239836037036036896746049193494088863447915001379021466812391544005928239974169164351364421204868163954266357755820012409254573792918470256662953524648524115461835920624449306865475632767293892410269539520840840272746626506988116314708124826218239538483172523435090436787293445596723056007984597682238661731389345346106145870483714015871436457362303425791113098910492034130492080925533965696193620257437179584586405150920107423111334244717015278790837905969785624072081874469120924100045561948987089729219828154991890095094023349527199163671755484697106225221975642536292257652286696399819389850825261378097286950743882777756762935031114488979529023430142820850961974421731111425232649887019330550179735344139085089693130704277035221589385429237053679697485179747581556213876891889606755368311569548623742919339587305690241711685272552451557058449568683719030424954109349739417842117030530820255036543409185706719720550537163872953522482370649606331631702072000843978771643764117425131276241129537553078165348277151890250586611827434147843135294825809889910434230242984994283839317432669416155861049869471480929298237932759079801068125234911310079891168572185540230774094409517113827213827426024114223648052868135546008657875233522625950017338492124564941721594399494628663273324595463584883871205380683144935722383274268856025345156047520296468453302242353178752578670228247877145102108157372246257740371381751013114022481290155194951673751051667836366913383592123725651767425520569042186981695461469949571429126985438007853383410149012910342500337750851592157836707005574308277395518883251710136979747647824055838040925636306945218078899946956291297030628380491402808492462992751371508637283295215101858394525076865770524255593196784514599305478139771738867239838569166885349580358823995138431413997914996686724862312914220243839744027339053484765887510958294355271457278983100330349475631087476124698282940996736569951871459393828733884105085811005134096357992222986252625165904970633549193068815286919656067303094663232498407171468283270443690016506544926633653741768332048012050543390036753066565059712577009722502461162628795755120134766295912562673782177382261361918968462484171015215075186364230018497029083244729545110674675019086676609852893380036562571954569190865240307229531544881327956384501913542554732876193358182747043400780887018421999021891995284403948357200128841434205365606451552892867093011508081926785879689333427377296840486788575387783143368263406098553279302925583328725571944006131195218403671342125504618165242591831547785320173618706475716822940330671095417046491225383514923029592497575208287987251820606711449882603231487293570708814081530163156225550614682925483584328191611626042843572819851174379469749540251934030513175255457732236913137319020585152689010963830510103030678060171920249785967222526394844653683444113943139559549238996498723192245971956297425975050134392190098465948821833891941566237732063674254501629509264775430556462785373894335789568123178970089675719109628520949947805182764819147144350156674897667490592752798828593818982769701713120153750420151032998556067895550426241621684700926115735408535475733043233088871741220873849276305863778373232745994992314874038669984061053964207043909007280206607620658065406708013167314585765757956444985701436471675232922940440020403783200237268253823914096732308355457613422936313522925845228504589536494012490990819935005759560525527412183852931141093315667010856862643337210417714959413778025177921570088316153751893116673370317520507838973352335364439609960327653022103455010638981879669023204953982592612318504911877403774087007059732518292706173333569028140173749409934115449318188813993250679207818053252844166212472228429634774611538508229183543568067451440751175173867605892675318805632077799509883801286107222661590922310293514443857428058361468095846828139682939817693065960750452131552683583321373309872256634569905083306249490461037833086106918886742049984765851465574261777526102181499007348676940078848115548098213666327777196445845525191489396641749160057758536459280808698602427805003082599766683197283620041516967789990262127357849718274970042861103626732248211940004659262311489875758753819657766925012303255697516951224581880452688010337849475916540569980665934344035573299638240164689448767717326594216606230906942025170334987832614484584545606396853044809143580635826012024358963913325448594795054847134583691868214781479818766677548387498821444926131907602323087515871011937406452835393551672516216147309635045649584021090813921652355822598810025161821521920896098725371330507579513938773274159269158915462119050083703566753794290388614836208714454534249902892102314778712892829801333602036544465839223869088455277612262546862537870377262083636691440738373670886932480260639702937264942221608206093925966475513118585814683007177090189251906244204952872734142013740224651389729157527240101389673513365133618185961530724054646089045619354857335497952536849672132383134235869255236646315212545497092792010728562105049896627326002936896990591382199243460390472439445990189075265854488495459896681447339633449292228204378093639083671394206341369510164747424104800239686747035625129596107527151005388876834776422151930243181468872544596868315611363652913873643797576433689259598381811310646569329929124386137515013284447107426277301814545969554045226481200612158076140235925102616246950226183782964160963412378466374849621141698196965924666292329129766889374817530382730149657725942284844057653454198348473344799779442990306683769548998357511588055028807669563028525731651438955777999400637760445949174845963978382273996103104524664661542788907959783315368470322948426959411355080836585740772808281670235512269013022263652482381444085136197065551053347708030018031719471929457634783775696684725981217390468373382703610443605629860760812167252061319173943063041073131185592820226815445885659671781760030106767139446869783876059598132773289537776093813474947325065501298021712283667626491839124749771542198100072884561994851292279401564403865104766997978879946762991502254111494834820564566356373354938046126093273961155528470330821278577893301248669744434846636313389403876427068248022111711450992161141524195099651729764108605774717404066043103585965335368565132948494435881765776935005217224317618696012726302380505516219535776538899898229778658844236049400660071414791048551376095257695983840943144314203070342794482612033505320200395495640102703356400201501243684282564794463382989333707603302105550539924774025858044774080990907849075217053791955217492075544867374255967385268348332858384360516702917554962677926169669650263370999744541915220095546422375474048982455300907535569347695010231619817433921219614173909274233525615121143519996364769279924393246007418877134111868953333933143898936187001524165780961449737993075913328157122881636030157166401754523642419034927382115171663886473518255072182140581613408158167128991051914917066735285382628736572598156279930910579044993573139901869563540132712659899199756387994168728646069832253028645090709072439946266995943024136318316575545428684714876816921132805193186426693364385574346916445872777207406602477344957328148851529884554093458546518172823135524676443045278105920269312725469511444028622853484700027728252865882344313253075944719233769701980717142536220574434563956605157532380412978324090292563029228827541659637858892488813694711086898025139927271960378582593747351761051442142588245979628768684584840677984206366064788521088182684000782350074726415108285785574029706256421263195998691775186157215171072961886524898882021064690106998175832624299697635193380432473818133685952636013445561888262065368782038981260530000682214906848721084901659475406023200343843408633326034816340466669453552490126824693747959370848057794491348418473155665572836260565710548879652562784349880269532642974641101745614605828874201450194367266020906994768150905042470043001984260889978317297587042120086794316370949457176171155340419020438132928100342354272788886836839680396803760837613581215638661565316400239486872919200864004040031179210583112976873277342104196664838554581204469483634058520030485214754000687008544824604707280576415714124100669928905266036964631938350584030202987334058427976761757192648341806653578884316874821627923046394224139307093649223380602312160001573324633637062031425471846042670240348233442868261801758988510438549136939337320225915265192147065866079698264683206835014610899080082041423773062773819074690017193702486388765458908781410696133348186360405061906891084557831280525603531038607100256004201555279296735930422802453168695840396383781061693215430409407458074808752429915131569590922241142461570551047045666632113454258694529359915213032965983854513480035695344850192426350512339461563142626489674216783552806356718274934176790024645476214155864772920453157183993185813441746961192659941672350499886840649391263089403888952592408579784635609002076409594309233396081480634142940697314901440471333538085199799753988477622733479411111792559302678596415742725013139097884720264983571335926972390796172384105105975950172399626748160052425610841901103991285099031618927013646914836728878696691036885270502869728279701705986209318326791002914084799193173953936482017554055972552148559494626819598759875187915620669596392779811312368307379564759378417370584671303731527709046119612374233692906576376050117070134503326962063469183971967613557505118452598839337819662588187808933320344623639607185273072962081657103293415531601390555048361856908325399078594555623694706587522917171388340097349424477404923791708081578998793501388371713491012391419336065457755677869943015428218919669059272634924406226519967623175685031327709487326129623981529081457702053886034768146262582027355012421671969245688383857756516130427509348319567186265693117774449998429127769802904175954446989596209933683768875390899115972885227109519122496105393239860818371416925269329671206307935340565201089551216711718437016245968851462194643947680373676400324835918126863650036154396125288694696872673329425949291311123001907685660446489343297352613540605403836162586986815478294319009159647653657622711141370123162706036858003008729278981962437033058664929084446561827445515989688556697319108893406069882049137453322871748626724199743010510762700893825727318117919153549490688811446873100578760008960234994732865332848110234770633838460580603338944137312530412888488435295449001727991322377066168678493767475476153996141534262063612184771319428595334820218592367501711494674616516927694727106400007042166323301391416671059634334391132866331122075253264963332150597917375456571862824073179530717022215986224672760620970922569075070562311739900014624542642545663180396821280046098579831951607017131954201300209863557963030205783284775624642769993304656679429555669008628193289943432352736443600305939473097531654163057835660130238808911523967545606756197488697923017089336079914559623869201833765237338042175087121500150750634053166996103868041552400485268830860356979336901611644042847487785164165346049863536349568357444139049260293840775898906341994856028692882113185268771186453976835295995795945678789694225819822841468504472864526442391549947110950716195857524218366316921351650315860346298402237921792594397988646276430685407331952712150033660792721808252037912920335303763131008204579016328651662187834709260354757717145822336905872314229537982923033916957665016786324188178963631256323743777748993216396854156995592739964128120354719358133708833214979894274344655714987559427756096767476486610708900267735621204451034089691456569607360199141271426286616475333924503803824706165528717695824750902176756408416593377965948451652100268525312808511610631241206992277293082581526122426314966487688366301331843220268753992307305867739273693353341688527396301669305030519934372233468437406637604035882315391799843982767241198375409222037827160385765533233621979791098322066243321422790078597477466966030982635229956432210456433286047993363914896796054530757217934658412589786238823175033228642880109073340589618053860083956347671845052402919914838496867074203058400185763494067954910370803118477198315315815809423042317789333082643094027824994261089868929796635654346444779795852346060137188494397150162375245381589768396609036246120596064027036770283084529216400039226228973585676546721757579093233323645290894973226535420126949992596726718003451768925030600479470774399994606271238175705544173983088979880203175414910682667778382339531576012706803371920960212476168873827168618527410140930912740906363786203337070086028758705234465599056201057040272260788902118753843657376910737326594272262963694067830093651056797060085543837126188937954491723057885874490947504017118656791490652312617540056807482999413655153275984904915497697359850965456047294440706845749021277092713700000673409058999058764438349526762920464900994768202800067990219900350203166548140790470885466358327955856637146538354973241212624947092046963612836947184501026567768336946548603777654345432743861756086177029496616442110941733130000689612053748102705924124924872133980690604442449955222325515581838574755331272852057186664405775055690386673330566947443644698521145415701060771480714826828076399309335575974051888120209589327845994529848494357513093258658884070202078143593515746923237850802068943047013605468107847713728634812376624760478348550196747018506174600989234500558298601611132836122643388342367048991238156093357741518962764403715922106720109062701000107888150067015229750669808964943412846093600699239344826840460306476134183551697016569426997456883435280277947709224893013263245986917671055908459385697004663753101273422992968025081593544982768701710045804574387175084579996115500857422117673421795115609241653974946193481636828125000515973103328251573445169858649623953582650039408124172299190426912980714468010807278919718643266785647959164170849817709160017717005321687998305256192283400018704153359166230417299917970648932972933377204935547329682562002515124889123023196499875024616352378377938085050374700928244673069523985047685641135342850046165473072410951445421690994121523213435898251845189861582836741929126583354536533441832875880656920877487935667905458622222291232493845631110813219882298992051075824765260440723498479745432516090118405914593190777914192618072099798461427347282440128267705251130074167115417410888637573587735571801380919614052572382910426937737961574307197861921635666084478163163111049587040870021482678564962989213724761588274698708102212734109132078748819458722648589375853750427164322892575514787203732605002814124219394724212606238095918190749892538385392422939586373105816011943167579234382545982611455821099665174271994455319589967648475411292915423080334980641579435328088457957272451450873635559641493442153065406343497538170447496702186951290563054562426075015319282637292828049795958903815616141531680397858301228809036295258886472318177853364833561429553491880975501075208167641482722460647319920707300395521757736330375562076381024469714723856439335810985235283924666496697840375498167023651661738260897403260408052293909987439391955792747896339445417570383610331046914097664509891607110363456555864146450811960104463436187721335234950779797455387876205473009298298047275696820860901620080415573183997531353235290474077512969412175489797418403666444147650051914720042333425391377998995557195714702129927036046285957850503895093182333476820986271748451843695969343646248087620520023282892635310930499008440151526308808021030982853325277151689905329595558580296093644180610399159758194529908985396191053806474893642703400197678041030775733064451112667518270160840898473527793389461524628998751863781018103194708706612336896968153141532659469914078078015717662761903136499821754533676630330822905110694677576457136193978969290368203183572629093588758277727610061292297805102071912670244166172693215334835441751803419825466487991221504724925441358274049309175503273720444314979421991334099809468246688895964211321872698947829362196487336464541689141736694821979701753249976251424273278908276814390002807549777875194268218109311703177679235688776126663021792845781135155597026361429368530237889058203642926930612461375657729808925229391963125188656232392155735206676421181632859841489107125537086509234208777673935104777572575213282407218106990473886744210246012854856861257043439766202748208132123388968824043769909719126902850840235102759394703391510211658763719151482844616355769226078732189044826728906485153639086258099448641486312054840576209286451494817577545240618241266280136470566568799763429405779442045953857943394177773243536029340185733003684201359899055080112223766370066138581328153662189237781074163332618863365851534766602393859725756099664197657091185239757104022637848065401998181291544903320173167592996946265203134240859264599745063480487277798435634161229901649853526946565845930503503681031687421780165669461703306823408621186235509150131960271845050483641773989385200530010005114923056734065775553240445523444732027234007549759404711940737113881033952891521607907005646765554213294405353236559226070436926524028334118856641905975569893352675903606385727255669260806396635413346190403509343627004690508737345221172267074821910291620408417149939986797801273598642730908477904359614395734164522857943945614226753247615412040234603381251720841332811394184963140825245738377868138708319349221369111150192884699204718793179401850853809991073083253926399950823403381695923413105426935403685530392184765019039595540571424093529026539394959279402607268572462709264945048380757311670260656030404348387899331632320607250965257344512456842321061570936963168406597739335072943298365431017505553263371320223517005610396654061890774319079507785866113873836897625045491665649422064765795372832444089852733814079379092238940858555523417248958335336024595915031188130855883552973553431384602365225707516705472264857443583950008376020461187842459505439046557417566275807922832679428728428984028956573207596690487973545483571062086593968712206081155500074268396868254641073027013751395824390890969847404404214819445038991684693217036699615564612806792824795136814767979002580551977827310084286917761763985880670980885413854721383009030162720809827436688989322339615996298330178353238416948343691880468136344711314409052785034047825539345769114304271899432672917571986464114651607656622013754537412270287396385693219179280927126584486313044676660933850771592519644708073444102508065651218657836121705646452417087568404648307157247985416848361745670258588840423495345422967510367083554399833494920833425878143085566038855171069372292578930777253123534002469141456151551833044582969331086234753094634157469692065322483872353073101155350278335716134893778752198064630361711360322965243963890095276613549978309624907111366498754417248485636261525799943767410811731508926931366239613515754198177705704309106236459669012335771949595931327048583176413274523211559255079035998389862007735519238525714156022984319570534317497158713351498592877555608459958917651883089969140281941797790457903361017647444102168336523246863632407023770913503914707271869078426775667929392655218821097083861752131198624044890560434218240636587963550462896493365964919401225367578336240389404456642204413465588804269955902083363886840184042306861537566314172651287830477117284222663819097676048870704082552148090758109987457228966924078370504404019016809839300037526156947728964346178701575751066764516755715992389321009030903886934410543222984987167788206265895954561603321538432669574575870405388184919460072144546642433050740655266911764926319352005282425780978898850577351301204319984147494466959271190969542360794261508955556397170603003601530649854988231487033330524907571245587704258319668877472581301410485068212928755918233291484436566483016286929925182288214701465724560753373239885033990106476280475169967605800103623000935892852942780322783940259603467674875756855808447049896360879788196258383615811177449544654247033912398271525615646177671949275657074539435452001142003307527908310054035231308400316150305158377935107447818183956912502599976870894499135392405112075437900943554390247191275918454631750893978964640076640385305586892577439476419775860864359250018073792631780397614767237198022075988763433016275797764388699434114654964086755802452080766444062979139230500566038470953938064827131918826464167092317556298453767641068452340284667697511136474469166213764449399112799049515997652694472965589258232879348538052561129403146927885782610078127499825334748208396361238854243026362784274827031775510904235346721440794090483164004180679890879375788063266214056045651873362112206850203054783626619155805497358932590550081768492375130267903241079968643659090959665121252110558464303491871138496147840820600099340927715706265179391273519563773857620547068550599288816349676873552919363818029298362950999916301432664793637043229967942634789291403284442330823037583325219320173718064016144791847779317348497284041761343767209937511920034561118775857064989867822983945125167188180635160810239895639520875285603839389725519911472434895404351125625657982306863496087648365337934765221891668541456383151254738781893933008618475457054915487299611038408490596271776873437861040463989101844492430492211190125316979630784560128554384097546611759686517963063171476788499145328489670073384315217932788829520138026935636541914186187665389960318891437547696105322414389763697291736774379154711853711849948182014922798050028061525806260524726791078405813333910558032223095193074137904867203403369443412595557325142566230703992455993746145053147570929804560406448872351714848164261545392298725886772132010877879090318845454209602511604824187677041328413471422176666334933245743922636136175417537687445094755823113859961468531126513203848208229155764803929768581453030102470704000224925409533181074320945567971598290753901242019667754330036000328192799086519559015308799925249077200789015642308717057615995439933168396987709940584784162494299073919087385201302042707151338823785677793693429675963850756498068439693691138233338427578003375001920242329136224885799401158933394079502515500960767751945172613158276860354572563166806812026713804961232053842492390533374688303879421191249255348382527864238735339386636058988113577654173244779112705421509990397988011189423700017876046967968810115594775964564632937408231382763594624364781818867018631084704039564715086391557938385637527252003297272475673538019757423778546828578701726922540383578457353323625741141214318950316220111482189020735239864674628533827249684771712820075859567647441335067846393145019039047578969803872703440791157377366325588006358764679593054659147257028146081812178699206865358112188186099375201726662684928462194911005548327258416457483713837871838650848632870204288461194607399055027324989918711519534312070818982467761475181282838109286192718157583501805217929124596389951895332875566460429882616908717357166914472603202600576806690625742898608821656376626134260138670573257722844454563537790812333983605320284017463795964868951643082051799986901141544316485365862119287938529243980987119928293324104072213720912080090818498582364754515504201469187306620900001345182636129378655274795194170510057566953594153305103689252219921898145383072395403059504829062842283437204407354677697941413130393391753402601615016882095367928624016066376214266255455964068123803081072005896477395800937019893603072444564755169563050409520227743053612971746998483440554933348877956639420968131122918389758215122140596415768334740876795377705364304586879176169488245321128503077422076806292493816749184407776885076132032859864216146032099939760710014990420961188476234774375895842892166860308332158605597214169503591588934723890859656052111209568240773767859124708894910371056260799705473518447572060212617033239545612466633654050428447555268451206164745765064892056474878161980278831732285423447521439659632750389648871178525412423407781002806900708354343151857614268193142359887289123615095186942778471994456301268406851199007432504072678590498148449681999900157220792334775522439114529096743755107701237700871295416002470524843939507555719482852831319664556302483910880487032013261317097248082258125507277594926044210989128889388436381389050746291333397717119691027611473038675918265740835487826525014270902828560870652766356291046466714735767446604015645067090460306925940491444679895607352211206868110717890306260814006105607156487989231801758460464804784947964582939723281102259900443987434754038835651927353538392814034754073051243815303996403569297012997756727763497507890425629783383513685078343227996116769945193489056373401485112786035676532785724528219114831325294279420598726503680504910777528380337781586104542535974479919870374091588078533200878640310531379089680269848955542420439309295481378568567086762340523241381407989521422695055584524617723883671383257389733130202158131020953176979087981329989722264350658664369564478455089641159747138644975929147106647921047992370948801145504296353387313089045435031096944307507608360611218854515802206387689118762297260330711467902766980002840998877178077693354290450388324315445568044579026522882042127362894561414656466672084807076997531823389298446434102715204719394850650215888777526730643458103036366575497232907595348665200014522083504881328822975743081474404368811380904573312886770614515077092009701835751068729917570919442637504180445778700065515215148514967252369867669910168289725407480115182551396230105758004354670650545639845927239989619908982480825802571561362267224624272046046406957035047176005616518551526320120253234219808687922856018060421222611161790651356930208731749675705574239594684763105925472315145688064612132604193599158236988158794166192744817199481788496088251073023494396667993556168997665393477340732843321357097003932127217682516322517670386300618452991362663892528900502279478547963039579844128791838932327910599692184434707569385713593002475056713283948855143696670115461393330405952634070901460038589592574497467073159572509239178999069688072156683238013700966527633828125951452370668163163903008361686370861912918515386095435750289149809406784518527929077152676984771009199366607200421248091415177464308528749070031552536672695612381204592675370610274747112432197901370258923126183829411083480443088793479285623319514892524381426624126622636247631349324817907147108841419069613123082645718827189972834784388505969836834822332768402578717374153306605449590387576345995172964349055994572787183074200558957391489708034887913209634203454132213346018950247363693427253856680982646432314410360965664940158224837005147463247490850086200370939430535686968215901573021146687969711924943858405380254629368574203425730705302783028516016295108288600064660351333930067059945815872561627330904174697511191344447550417719550941106813395855468858649292935082857349684500744938004794604346293176039943426016056720386663875230670011007183443462209083197733352067730524597766780762189302510320138779234097156785641609695870063255919670416133246821638712218920431153336164453387001375025086532415456082046990806246896048447707924117976576542825692404233635106293311930096777176909839910028623055614750559187059032960865465459176844353982209602448639585058665369466661582595544065952205448915088599970903825027202743134751897513357997637056767301408546170948518654219202232083943591816330620982526894384191060178360903341449968677242026285056637824129471414852581739304373743289973298778196419993518014201800472821302197173964091949947876833761890178598857638740647015406740524087757631830261017951396584803093066490493062049684434949733836736662905338088311299396257297451410192573131699952917717159709341111775537675637560025313210619009276617897932114115980819956356622052521793877215847773517407412612936334934215881809338964044413710407225824079229183556091436042062977272380088118026237095911122165184566425015274904681181514244988141757132677337445755006311484636803811440856048392872975832841999597874128185010681982435305214914660692834263923906453285405979155255090038533100773807713181775659013575968785821446493723497595391338724265951022024788131893025049628485759063843203266400905882568286589598162025924282895415186468022095307812297593286682910056620660609464682508553761703853398685872479320882102209430928450377167270762426982452132752746522178990949066978946482778310663512204700528157815050450199801732856919834870495587163389171248447921636277906669499874530460127356149842768993289747179287339379793912638699877858704482517921197572884251529982080547138629865421737851072577654188272328207523832613173223915193907134486277060690957444026514770193251260737519772068910820863820591030955879209506612769136848154332270082842847585973644655991081192432218593268235139447309409635716561885624406426040549677000204324725660169998656440777321967697012239170027204652129265796873958204607367867048234715900594636287483354009907150825327079798843620015941793789887710249850231143564862390976456165986727806428682307039186980047060054400486817134261737022886337966441958969449524059876298003565739816513067737860035342344022761571964686882119005043806805815177485250021363955562624362571928916820221649729970749349845894109265712867794518210333318086406994373000394096069538262199471190539107866656829791279172980323961428243906634501546790355645551342258048068059350306814715266338326309936956660035422844408380523689909957597945940383766559015524766903624172702878934275157575798119527446494145792058110177079569582247060644584435615102907503985779135346723528645660324808116617000123462990260022855174495749081518710780823485082603242963305986926141976509111575393622546568115168977055241501531519368886452272055970138375102913893765487202821963239851959952627382161035643807725104040490929113758741453259886893194549178537763622652243979983019409255279512508345056876297153952550308750622615226346901130254230348421254376533884760595778309626245897146045121639488444477919177756257791847037134423724608203387370793969951899225978653203073126606809623008388622902969079074786864694868203401233768324010207703576569494181278560367530536172008344247285842857671297960898993379695985100566231176739368547246630379250047825545795986155933372670807235683886440519828687075895976972736284985678809281860486875657109786593621504020035902519937223495622431979073359094097696379588896330304925121571789130297254729360978684387242309467491801246491305579796322487871188785464512032755311599576509082767285712116967170461575049905742954842536796675574498749258081242370546574394699277607044320067978511399822398971217302929915446664533413687214871353916506980824367566030528559897624959062913610991414626553372472551642748350427997537928258375804310955319906772649723809643234361261396291054342549399635967596387721386989732228735409981271154173297598253576721713277175872674639563991539824323092152994829646639093384918020830110528713283899406114962963915185760073839065685225652998615596330935840332923836930453892798514727637038205124521874470028276220414087659970247988138702336696761553578169325750742335642596711832125360932472099654070470651703776489715912477220658094034443149056207508089423489190610566697670403663310619974998744521985788663663933281349073978329968363726055748223411634957191123926131246798297683017494268639525415029833604257368776962548570572816942563988570747444471496183420413191724363324652833270702844886606750048073885406848979796416609835602348537492129940346303984419079116107005116509997685020352753144824233981177501190332843340661829813832610538398975497918528577253491542894500375611586525738495270537181411845867374727372854587840827669674145112676288734740909563906502618661401609399947057544073916601869240622552606572809999518203866638988673101822148492495570688562798135033213752648139732427689655198700703740313496459427540725500834075545185020732568682226187459605943400221556085581408989518516412963996812760580352813224203652292577055802814134060337538295884669613028109222400998209761946888995172367275262969516214140766430593456533250181934598015376272697011645154412254987693553419574761241204677544807918237125520848726813000226623777826929009158924924012943527822803337656759327626418222882731916000152204676854064732561529945402388960592658171469449544715281028823134484731731422032552923313452401467303187146246373414910506692396907647617878254707881325570666381957983547709901892076490422827216788668214819908544311032668257798516911857652199318163292805544890499694963112853705433438240221919373638264981319966735780959261650986132432945633974508153438682258172282971233254473579461174875335397705081547393642441388076380092979448242295021116822984327840328285124390501334769499319899997092583318702821993017392074751062632447751916974307634636733477945868425335800730050562132348400168288463357899295277086365371825672122220468391192695064993174995735221801338814504172353624485351432964296957631218180629565144359443663814889273957985860455918201562872905790685181938718263807382226674939580145385946902283853966448937297772365298543276049444845279240263047578668379806243113165206120711129247235466959611070073633428297675680880651345162271320317051685197789165621335873540192636777700372038777224588411188564553480759985293748876584668021085904217824630972534465100367624854826219021325674667636144320221987409621766977132121261548238570864341520320342416449071274297305333266904345290566493040854661784488268492989903536219248070105766376032130959305633894108687368868907457386926899348882662827394894552240065678650670106712128045174016918634953976756436418604581623741661225990371489130093593596517814774692545058791459484045569702436387495561096495340996730120445806564960637728396191763273520638455635832006900829569760841502563957944241659533714716924797694997437604139801401267850442808553538217917921119049320278679985901714342143296858256156703301856432947207476672291066410608011904903616095867778539936790255591752720950947524890402659630186147988827886581660833834862512659335905652462980586201055919727023865222412978509798934505298734485723107321970649442028171246168657066597040178245082144305345813136702565871092881452219869123398341287949551384957412424175434749753347011137999792421858982893451584434120302292228247336615691053378389733503102048618255168276770657810787996210447123677785857474747149872103384054151296390527701108995572250995878068929955858618786875486791878562591117900121412636806617262685106898668913831351260845455751679917930740280954127488554986872813117942951429689186186774912964580161878264417647822467366276039560761250737428790050176371370301782484477959945085426352622174980853801336863030858513562930604983040829748269775095019497916068685668903230660914716036972640004378077178983916839473945358372474384413810016201672802505162324591348963673441144345145777824280469265310436686042949720773897458678421536241215233559337400101101106610330273659888107147244032604219254705106541428186186625424224283601878977172287938144237183580458494143927110737098443789782100421945807667011890724839536676418258783061927234671888945444470341610624135403935274088945760569576303029056798340006054061539094408671242972038937925915476676326659108729750907177221931053904695859137374504184072044202310948161801337036379840470392555834680751622611687386635497058427025344722565016903844080515130431789011951484229593298826489183120382130460445352363820652014053759897812101828635604429194579753929314681945017229673496480894248654954248899357127252635589024050461311530135298818164779891156804500809819599141569596426135780056336149591434002697279513852819679131578388583317294444557017436278573394685115417304603821785142209753966592765518458995067022407733516025889837526568951673845591786711370261596027426246636905546063120339814848073788462558004148805434580423710961512780207345723941168947210803518038314117833530914387762488860786688498622623492785597241065627771353444552430287429582558046586033112410515307812620949214635061684187292361148439987287839098958229619094816818609955073572404618000790564787662789917979005776130598572844210016750337889976712856379772020556560619606875238181054217512650188669410121844921211342442412572485072837095809421204440837703666919245070339450590317530414846860139851526136322385130270760981986615287511967537144644330917652700058468737440960651593870502582487118811307331119810804686399140618863107206538413647144990288963981240956025304307915126679218161830040165457514911602652650052869373308984658242832480151857068212162574180879709031919426238106535750445896154139534350715152696847107341693393419678686103822173927283631903560945148240282340993551402285039540645061786245808205540979520873447170933796469842378718301078144013240097376931720892824973806589640948277245685889267809898177696762501519425914955183148677995357500471479084617579842576655657323772824969523400802966094642035426414841289215058754930293686010797105435850004111085864205980868859814157751154662811967864126942178994046933501921654214462586725020581165120708809466401811022232163946407282252280885674762381184390711123151484166228962942860893364969300797839008816946969048395265298939942028298913161152768324782799534813000145726996824134465143306747308909281116210199962860190712854934524356193991558040114958880331871154408066334375919508556080706605592341531481080161164308310242672182691899608283843415045851402770931407890373087932739179450776700645207465072158400051642850747797958523295135743594761860045888590927056030124591121877239321865874821141182999474881340205848777488814080617399726653705641482232225800225439731618693829187964572031779215519697055206383939909981655960818521402257515129544194976930635110303527302589543415768935177447442471963902169922409105011963455360443089854815370951983499383380043073922992575654605951696066585165683828540557480119622414682447095560738900429828356130884460777569919527257898155813891179639522089285470214798961425662062528291738578596436907862957442343015499105091346187358478373186848204056304420993496655974456231840163602301347236996084846497263625655589929076737457643831530689483044993284698864489197811384642368027098115584919316979902043966095972803876543860987113886034887276640059599230852663242442708730622054154898733852756541886947245383862702880747579809396377438818135718761609903112171843242844544526199525460489630056319928960021899016524165594370723171616413400039332092015766240037851921485430443505624936581516689640178056832859335646341444437320915819264327675222683767038819311441010369914656582928037702790811349316553089637765618746214547983205297355056581588913044740985863781802107091950077639084253076221107872621570449900908287999441593458234969551304276146362702515118865620732372390872951406960552647234031240634152496428335063416563591165443329407487488238750764025804851145089334628464799131915423658285401748882498913563075010482579329824309019904634590051819341482404603909757317315604056575204473694997694984624827791675796640445195398884413191792101071886698069223294478339876794906453752528992242566687361398094926005553480236656607284356107751322656514413176197417099234105004439726996416680032018214151746993532909219334518217743006127576282388597107619461640031236066163370770799240566927021546680290575444586602530367562820498830102458273959105343343573233107499870141683567980561931175442155662599111920657609183196559104878293641176963018639324225679357235158558882120365613858114174707981552565035366478989022350074230898206724856786933488481020964242003803569440616975571022370173195558969173053111956070482982462645322671743059630241018942316246860865773689754334859752012812054866131579989103988721193676905824400890863342886609734655765856123972904983197060511478136555827790845224237316696339808880155610763073849407081715001839669730761333652386132469467375308901494157792854302375438102679233795062902353874472676435268451219999511959207779210605445576310225035080004594583134776742892466289016426453136920005232944058991792105577482471368543397915267708921884792820366387350016848656177204324701971034821421960195049596118429044060464806058064438192974510967770758544880882126440280145386271461865757923536970600848066740849514954270108080764921052465870350648690418536853586918316967415558290358767519155327802673209903051261667225054144426988905797727798113030590083614573581845071310021663993333438667382599916382159377464243171264532368172829213987254311615982180536550682884945665905305272260768226123577828451873825176256241811993356895376667942704213208626842907905206817378595935711040835832682664478783223127606069740099676008859210547650102320975857349346807378809482716283274654157902647653918131192711608707180712495161042428913993706192415156486495309539454580021079533801200272401471628333170643203039290082441528417886482208544930101441941868862285087052068058583855457015509174446949152286843214693025420108996775274623821103995593750458284537069852773534609585701847776469072396680517627996905629014123406002738004251799672899744577249727421566493250089511579268821429998804459948393401602021280254331229967643452175324510189619275019187831504070415670255735279020976366921545143599691667490948537589777055940513287483981836925514415451293096721169499589477818390625455518242492353155306619304767408473261004054811268483902835894426500889200757354985327818620333643066893734044551495603874030980360109581861247209149131190715710515229709150372105364886892022756357864600402408784577114769841860325926721684076856080506228205326190138584547879528170386078301087641913163153978743894430355241471508688643257881236946835198781360896500769761440479882677292109852782162413953323196564626660290260207772503371740496194358327628868067708188248990922594763690996206944028749926017021164407168420059144174199313877723656181669241868285636562011034265394863873104256466685758719211009260649389339233170535207968905263113356663848832486936014143012420619469514974809278743300503149600760843303548197240330951704227032342424874606716031811925785403879399905376372487677186703335370232099498538538635182097142287380288438007375916864958837577840196109151173212988516547968283875051336828918357149389274790112043834422779352344483835094342379400464194259071793666472722982085138866341769266109502103751048590260479480860901052686282861399499642686724039970234923495294993209161717220160257165010878835920353603460190542306440931159245667850469912970605991553246248792565188501429723582238498746773076998991179480567551328283279565561668746315835953431703828492556737440710342775721234248241435559564527753852635198151928455040093626947154945127119503394495330048970435175750017628061865649183405870625736498106434330261797344118885993699269711161833375532403651371245571383465170605047718100680038243025726861761017259477535106282401480850800115683985920358409490609201847476175204824058969102275593649137544493790437900198625004422490225144491191871902932573374315923231254620493970216888462964033921521960034583218212424958243332633622952133526105672955433367913073819708913328996182731664327312496662877676464697437255541753170736467701878895121808912738949690506401727250699949192425379652313603923971782973106966547016864502819493008072354235717710115245139279566513327145332745884585040829095664125496443626279354523207220366684532999727344998428606562959726607752086533777216788488655559583814169072475537748205228537322208999848487566742078771171624571574137275743078496443178768604225104836033046460800894417896464363637813946288327293539284330992161100810738018494749627087526527326616477564135068902521713407854003186376076614791540081677940143972973175491576872735148184573400098795063100090420777384040290719049468825085174542541251252679696326120363438569217188797809128474114098867801379044531873451826794101286004858651205681005968995223813579069324928759601794734253345407891348355753543842427740582560978075518679994048478162573840182529961552063615515912421869422711350376874505662537836064924026683175316788904274716398326155939674765206168835535448106668041423552420634377792975131489620884017004526270854110895095756029762491446513751310420065032018191383701905488737657556654012839958883830727895088621642375112093598898638702726929425589695739492648057205570221891015614272210450395760565138227680042321880948938567457745483203577706572711562391033976972362696675402519960339054023845010467024487344214300285824802362497826223367739068177667032418140158654858433967198019198526163895920125586130172633145191578727338999759958590527927862926941933222479717923822029370184107409152365752486899725964241439222770077368187678637111209929433420337249264498757782174200413363924967719539880061237791599825460542634377127037204408993438082478615618867568835532127507046809802259702130162914022935942356578206631946364249639844876597934235797753681006398369067953459162313327053538469795323797124413515005603769873993618376967745814629640827753317846312196507429030598595574377939882115768920404763566552109649772607873424243550251969890550541596399376154922422789884796415531772074188107106585587968985425544646246459060293484112868497133503671799502844834929916116900021784142796494585873880572882768581899755237177741813949520960334665044633286028511306276327025106785254166871539559119845135358208774964162326602199790447486925728896959488149326184043484024090980862629670591444629201798308040592815141275766335502232713435785783603409510664834157405228189092367249722223560957387593305912601999768275294432050046265788613410747989437983515231813660845502479283926881661858363120756023281714598774948661783941820524365426411398308962796146064162963918952436091913600164118409491923153365637115047760500645850505261131497922655932084306595225775475624149739155141388944181089446399901352367052891839180456472174469219451440049842485834441216425378319442835676384952691794397232289986804920307093266571928782046118413834338950137203580675559633166731115535326137856967822304291395836983778223426988938552415174344635772261649551325851111267238834668240733584831956949327453903998510565730085725084350475349025510755504875790086643634153593163059201230361909187237678321732076853692076795684923842156896946879341654781874153725848367619185916880413838773302644361961365100506578470071151299493234918191598550100400683090659328143470330364106565739968323447791530909947221117316846800284292427423165863312190335240733238515994010849710313291002406654036967451663968512529516750482696423253727623727720148339924395000902522611182850086961624382859074062311362986452098104034100733305667666628407713505033965243698733274147937428739497449283159782684323781360078915581098412795350633807259376117395088794279622998486101497072025821556082195747347499468395340361093073605610154085486817948122123993562403878992498778956581733365842341401945029413676001255026271134376926983325941349002016752319957668833707763023323393180928340621181613394553155537990526532826017970356889253939978359131317586406220643261126275090616817873453459136921110855250626895153533627672961611797030110750207134641982880066647120659560251160698170315816133815040030077634574960934384473144764953505172962222305255019686357405781748826740919518488406827939634915901760514059588878800222571119583077535297897163583534191026901993912793534028871130929392602947974937589372244656071939474022061978279936835030965298851292101337566530945203839169746060010426397073793196252278717926471102426251384859067228098799118221367397163840516867914209346577841861666832284955425229160534778289757446370105152778462262235846449104368482663008163045062434883315747526730211327297492290580085881147546209783870189432324554996636933923100983272555816769060253127224127870297571560476029085608937943189981584196627965282125751302354957978078461119456683982876795157119511580679967753651630276293600608976653569986943146701445189878887074076366712942256931312211769647765276176346025052636547659783809985382519405556004008393434764530393240000320734681473331212706440609843217603448009610351443818609444216430241119612574852860482815683227501000996371744731619837898391737957018979793201337224112328339724013516038281643262733024292182933001704520034600459478237772703522108315587848008449695223605597746640949330375780107438960592380855997716862721972739353123599883996854380826132947377900201179891216868390054922951969133763115506163786777895449721970404664450243711096300714816852552680305275072767518160216590742579496985266875507934854315774494598788586579413016328524400457009573806761792834585973437459768178083851534918083117331996410713886150803751128935654272005902331806031379272831378072863110326527663295507645369418804004184917082455364654165220375949829392160139838970965732143954104743235667712623623050474444430916310885264896586390789710771628092841467979212017994047500703112841681111745226643228562526324707027902435023039397196981133208435211820019486843861025212663526914369146056440971676286834386119810023155087804797616040379740000644431243388834878384220730632166975243974730078436901329226427595915690688386737265026542699047754618218507754476604784915163659970461778317684049460140725420052209488034997226413237373174190785809066687194190837206460902336135981259932677858851207990787710505322382276611116464291496950702669167616650329858666291315083352134056994840924574316320891015217810097762852907380894885047560661041800750226450725662747602702646194673800288156901321410933535434725867515451797619618347593630843780570570851579102333604796946685690026382623080151122304507257439042589282726446988883643910488842014769179544944091442784181978706942639669702310971416513805906020077582159280432559190918884367778334219558927822272121174829144949756457571824276781871760407118049777545811838816050296934509741924507653671486991788042544431504494746391987847745088233321662416494522195999432862441035633082223541919281510097638541924906270170069116805829952157419814881611677837501990598837731041279349033942604521351332627527690592797986937091358107764000597691744268936545582325130857242974708678490595088265977195391795019649562827201876432446442023156638788152893251114369755146739523398231661130458827938975487572802504971027909175595334504541765195393868906691776411834264914707316985333332903756852261276325782891853284202898170372155725634486489282993295558011405233223926277975369174540646453939850909405967964836961779331372952827651368012345876401255387275619803772452673237440247205134874472195470147607868722967811077248248545831583823019224006180112153045668208702910758794643614280507452142761707412419506256532391421874909252180013295558683418201293134534232553064568570736625592524108709399934813758221593341342503033978357782233613241723802839659435344475318795710517904814895588906872848316950563978968894679116037728579260043275830700659881764015979094566403602436544939471843505281072796469225339513866516618466208694027343673147680972805165677822648371735288487128591410303088221092223309142523110471561728828984201398934632246208478975918810584189149143974169141074980728637982277513109554434617037270809896064421469962416392482274131237617990405257891290192010008362718499273238671236809249999101715377849667359589177779514844420590612815465600183677831788598103092961198515693620783519361570520084574416384687886441587958405672290253455159892032472537179639431648667631125892644046249061264099863847434711307963113440860741583651132573345751196697809672913144426824634037590400164176155591483544691494515322722059472447973192625887577063120783296337040670718665303922680965193151454185822620838826036922862913294409466887719392714170107676455843525651652202130056612088078551074366838053730252178308958885028586372218662872131005842000824578012174787501561186913039033038780701837491081450314305524981319225984949688064589007862587797033636113915200982139162847331404310444070862768362174949813279106136403918533495751406648209863743440296210436470725994882519825328623484494103162650627091419079961891624169992142777336077544827940946186149337149187865121216540949181436178581464404441792754156069149370004401600196671752905000349497567149879118846404535188081730279382278887412594871025041033217615573556566944949444478071645872697702982265375955381412161273965310115085623828642498395220593583098345239736884789466231821397271112920778189326426791086811181111296290966914852921562152424303878395623305637982848891329617782816503750165636558761375845540003228375557054155672418920721835608815739388660222887180529444184436753513937800614485355072309831883320246593366627594321028684550663239594923531429418355399183304565917766089539863239311200491951873315286240153186333418022358356019254786822847562007590032108819077295310095306274357378297574939902008605775593241742001733830113023238830021781077365072317356018739399232773118819908314630491909820397699760058893392608446661026505829208021036573831445305417947889312216762868974164984986898195077632705973544697569918238038198141602525648212340938108068530585604960963895590583123704905191546245574474457400613885591404101551819599604844432193226545184250427127471238488580184611563059023626682100481722550180678129869928619543845243334559990954920253006246308440171929130286956367073668100550676860225684929836096604737737651795616312297678490253952307406967601227771755594185782138393377058980615294829786320737118565991143222045329170668090495182350213772866780346402965423972144623401578823599085898938353581145514545374701072515702797459106397836401562406284334807255211977636098132783659610052772180060685909738668494416019640753425812742332379330929653908532738816600102823165102614369003618981635590940301107893200535597767385899912764797431954944146056408582628490598394122773859064143194749755795132019159747218365777866301718150699580586217930646438214044245864156659868865020473085401889481812229365736570047888255068665619853218593341263439211086133653245764274207771116593361350117434328796650292692188035350277102007832638975404974445022781504109895787877780878450407756680011790467736575664540499718305325611887565210393368970117289976456483528146512046069564057909169755423271414327297673041102731357454301565631205249158687081724862147981945941414335151653641164438930195261936046888222453827183189447766946569686618524194136483343420479006009375049309200948144801924252488086283279113820119768612116281187982349214104852461922528292357679298382877831731701109668244486831448110392398345025995174815904997241750272352573782848631394991848814891664348989496986137783667799979403164093018183811013336049640062921429261658849982735554800322764441633852035719245609456950046316631284049078680241288866236279364243233401779794131605404782885798237563100947726531760171449399407168417918205126022234984789493578588175383172033576486139803844813449307107171809202542595693426193665281415923421097112454723738185901471657493230884525650646594477921283780488258788376762609242442565420855605884494083408526177644945069210743901758965480924354430574681039648490134088717821354322577161966381099076615110557627733156517915881125422674062696967955935911135480372142883123224120119117227157240040686877184846227252156990778665701781798311104071531820350029166562233534474052631884601132369607431595239936234154601635452463108589188538819457634141174619492803612057588245106774011277516631185571148412257082617992066732562387397757560642913257465881249416482768509951401612127944286535596476785973675141950409458112977496747473367488285317358893362436599694021933107758160526338273803933178232455064975577040378130905986453095918917571644274178519318019845624180550528130085377990196312901749009281793537478242719409669417625698283014628945022377271699253967444955670465964885388766380953039281740841710689809086949950770444818696851092057751235723838363490885728048237905059857363704863754610790248669655782356065181707625583305178731831182910834323598274038796561057473138532551317631579339167087390925210812632463762728655876164701903883200722400370276815323243486274780240880182518557432472950672015599117198786020834091607114564554097148561985738210030988419213967644707228651155789372080426199461301591134833637951338916070970842143405903276006640665520149534619386727341460569527872393128382196645485687755061789059221671947914881134274520106737988233789264857295931716401487268065249949432701241690690494649317555437764076175756644874196837730881755392833285790033449885516485905169115007657967875242134802429164972548096647934947185659139809185325761381550723678344582908589251138528503762842099761174629123153615686814444451365470434366342866936583800021305918220040038604511312723137417461229636579362975736559959274813417957339663393262487730080459353792500596136297266331652389990437285597089405331440614003890611117446941665965827399890169139846194180110213424073359988961502795809959424352030818346859020145220336902295340275127388657727850398739104354599325643293309067007663188747922344059440868479154466571943119825377617954174464418289051420975994831087877916314376178797329896853191730492750661494056448642257572514862463857181823958389651172743542041272256975730344217030916691904199491888173536249939134346408037423071180794025849081021505848143611816828075110289147319189585152685857924595682354849025686249767798194185361123203559540329073881985373621811721898552634015808589429888587832254181406090830306459293784094600994102775252909298787862411789557729403129546045128997586821190252752912252949215748800082532896407303284124946311914524898378128917376863879021367268754046333620930529359297553078161319702026732972287321157292051194106278556398251951077487276920833191296398169525067459321897936016628312441468587659237064401381685862930326955092088829103636468753278833319697149060969281897046862772987447895990191923911412053838984612442034508200090377145981048528521767089051766800247747481698105814095879797635485603240953760145596971691180263322316148008376306822400332411252938695289941051264230241220544422291693260327801461367027256325674002591620686643227214821643802346923613571896142493526012626449722541858458547304241821454107532068051937341437313717084992105653386422341884367343424413962274878446838257695955452137949329188254132278762430923624780875228858910068122074730807388267515028655188386028794960207620383735346972833639602795533336522340579087481587742064888327276072649244006821653469534430497685732570602703152807833662675800179085040032560808058822937787263745114175686898665677694366497515453155151135040094299754849052042458635991929348668925632807351889653478937073984072768820771538355189391715720124837277472370670784472691017518800015655374426116160984375752910994018052689301433408409027143410986491179348969782944632026094220753737028928231490317267772102887357467677092273641332650113938196494131589316665061102724292759922154980690416363479824809989395046344029453871008893623798344129067708546645513132678251095988883669527121731070724888775847544811054219120102145835079912047227126119722043344252340803968894895321365710660014664780818390029360432406419503849795820846133586999242580490288499908081422621443447303073672712679049751146554697884914854994625067392783275814560719380725574707306620941961568483460068769745277381064504885015141789423372499351979052729084934415010335143180936106755843255498345644823313265203260249549696007985396456660413767726682659368428762206272604718583532808007997602486369696653479255236890269333297766508154484972768776033405077444348073591526456930108100040000184637301678745497528547676912047321773765109941850264452167102934041526980760330392611040150323927923189141169088283672034061460006594354166513358893718641730075129987252429742931656368205123534508333154884089304709407273795803770647856536024119981712097501223334612858939333968423816589892106875867321623253261506840861444510343503574884581549571898463617927573050945396955939919382046623528092476280622441853496920642914201301316190911273766343357572542896680290459216983361483652215630208762393955954924329528109085631552442524842996229341635517524867853072087484194757769199137859034200004842267818281249719094067319730176825838709622108225523128318872592111899687212645902687897090613885986213702802412730088968144001724338199945522527909038123627512831047382807470221528945448831862307851321182007215351164078032216793870350258874216015200102779306537282593599275575746625536207724685581983941050111455829400578518317957490746834855111902401563102826590897059010415779368111568478924300162627284743858431039074574765301735917491673171833072717829813222007896979641735065568450283535537607261876401677848462160397870609418005925930880081746491482898945023349187506280445687296461500573450760766212864937976548873171894686998337755681481376365446946829418309009570405580344028809675161311551525709148671040173806663868087013695453954481163941666981869704763654269215539356895427740714203302782475855401169966067670206457525303505225634260451986167527574214225242198357197336575032528467423177271902473928148789429686961115627629391906975275898728440335786634983170204432174287132445826679206752854384664728190251815060653590726656892319420770785312227766602981221341832527269501011504642964202135150847979728299058281861413844718892801858272560838511591920647144801472711820055077997268995757621847149006747416685848288950985513881523248715939275497931712844071201757393166886215260358637719013245499172404052262317495957766393132133420896828647690330769684333036213810628748594473933964608367156051875309264478726635611818073472666675891109256089085866734214532959852517739698917879459342763802445860483301236461730439965289834550791047861970968639883602672414596971733843123139232595525824274593163531984408778077695303763232540292008449277114408756572180930014751074228996449012716959756575945268105740870923058964063577317948107091548263112823411394352996339541435581597629637841167870336192417027108134220438120866578022046499085082149287364338211474311012735663988885275848823761676419118540509321541438381705131218351452538710972636855606984097316797166806454266368006845846466865228855076634987435752436504306546767641169351046494539860327904345528785271205826843232414873508348508121352504088492916174644094923427372209835816550549818611746772388149707835129522701389318918160295771668142987972466986937677516039436354820108162669025811792805539866851088231436812200645035606549906310932338885625706549272987628527001303066925994432833829042044165040603411278193782921434974705254491246029860560734443529135442846828876648166946399373541937823009317390929827316908474186513545205378921210577574081944252974900104475412752153152281665067046277947604680821771960973498243995694160536285709179062911967921390055893357410936075358931742339329172072269520634659819093307239654069275318720925917120486472706979636734739585799993618257270897565836548757104945375289539577527149244810988485202564190185438577297184104091369912812228704820905223024465608925002864150860551439088323948654843591961099055698531546978321255430556319887146954883206941424343907148854135941851125050696259895921213782388045332247722208709782136304646435627829306854255913414099538905692245692156956165999376005205004943921290910057803081782782596125168935272530803205492651301094603002003574527503702617627421618999420938176036860279410821596416488499229635472451377529439397822330282949396001829824982937518587811590811719692094360419469011220815168939429571455205294155119550346123950582904487037559516951743698404641445034871854768086354793070334200038959108309477883087237804764235032558764129659524289274097262903047083368176939515755167312863857701619668750993839222520001540220028007715713238754408140906424728671063557218762618698058102002644668222949086138289987745512417739843034453562363028813980968639212743496560221133148716970704131851375775316962483977022615536060479072529652149612759902443304000316204564629610441885822903235579173803447383963658396427093274004339406433360506901817281467284544962549764492480751572836942848080752443125422959809587434004055655859663439070164755036154215955248865741407734473969184327578350564201267702258766694217057632248851272781945529965061722756838339343835728106661743425940583294261865494894240226299076869131548307406908683350753815483566259102497709839266924470367692008982210351705461180217078908723898438053352952972473190727761740864252342095656151787474537947184165703625188777223818209201709536940242592621968915504726511705537702830176201859628950836156308072578082901248236115820581607443944529587287930460619469600667568029522948387451280149618557178408190796327001661960648149297987540462688220877728553494869240015994963701359286534941005333994252143539388459452183736206706775799478493893065226679401012799303422961871578424696742912170008639585101115521575229598062908918262365152543351123132199119028454150961855256011995169463701125744783178444991823232645375359464765787415774443558811726597775215228390931354605597833098880846179466628219522449287014561827714485790861553205217970063648674965655117803564956064806205377519707864520486533655611398586310368231665725410879695870850547627366539368267001121730603160307529275788755077942498840714996155643173070325980501722863171746076843159690280711347376417475289251253641332488230796916751807471492091458304264998920846424419104393617484010888125623379192697293690117254585436127923862715873763622490224236304887003421864429307726603191667659856519938096021557246544241440333920639272978526041591680143174535191592430221100618886857786214755024890701809999782803257337107977469823063407700706852782166775034199504638851014896626387787025798209131618138322254966772824107333684757735039236944766612273767365639526094641938446876450483073194538597018191879441550603220771834441328669442447800077729486896015025135019157921475434845074500286327972811915900674406312409871018365533067537001285585627510704223725240951802171459742280110306062823634459568420075502753155357980839880806771542348569420869023149485622281833049002750657579875729840402003224971918824191749460767463235182951094605821565529995093769464270511001852829566413000543629855630481955307007578478275523740241444155175302059755642393709588612619452993003332939666063502901591068139009474641938375184734707426875560173286962742886725965645170116206704077123571763027985709037710718128089293981207922406232447751684141074482777072898312378255373988692139132599965496697634386553136351556398375899007575642853409111304830484602795704238496243366133274545479150627143155894243673764882480439509385187672301177849705519637783668220729924173321260986805944893163543698841117964114292521198907837824088636449134267273296892635157397452049620194688796646067688008085688331107368132158294009932717303842640874120853790100451485287967796935374005295310414185618018007386172373582170081912580389864134222818542228606743224248665719563631886423377885694377206253103849557872670218672582353070032917222982721173951770404222208239343735192892205006441338959517117438255463272163139286934850078046614997445953899344745155047714786947157181142701262067780512423645347686868188980953563863993587534836792966450846159953673265706651147792836780290092320745833511350218719880538472488312019412050484320626515275644798133264294219857270938568605969513707542655439326776325423008905713024618635543018626098575388012128989341637783664027598118215054423094504311806047030438861032464623397835461989778219216718898506671514465270599289845307297624552291909451909200144996664117464537646853701493153117433057445785702253977173605120313948197246572249201484558423953378908931285253494183233813358477971325109458255688457541719676150797853639931324232663564367559513990596301415985819762134611599861291550561814841195555555663354776763630121888989407906512301109106234636822743138055846762129201205608120532668353397454329109552596913830809705745086574765189714765563469735323045381486320867769468018349930125337273404925426466456064738797193088853741939588611619090424998084598229336433491159315450426555561204985586096785877656436734768596637265890454046059304391711018655107721468388501273826463083684613317749496663285438707913217455420626524176635667395333417292344229088836912874791843593370327777957446161268243186370153580848037693668478725943100622243400485739932107609985172468936422871623281649083801646196824715372055869571787602980298667551568534538812009748350410226243744877589567076731937851413464270516208505683874477380565081404254495679549132805528392023201779225880397666637311761098822733887670224182784343752453073644061099709417647357774385673218347626200680280669832432060531192164827538692484071189313081896051264839476622843592728580516053033432879326431568544865155869635035900867534756559914587705338686210063196615169886581805614899687873237853458746728932527215908122279551618552771246156929157784779516560002598950764532816378181390603078782412797503486159301552502967287604987283869672115286738624173136186185292143700939005034825331729882655696481038520244060670045022013113717883446598478471617668627470079448467506388780225116283031636967404491502706923993673288308972445688920430789480804698976005625061219676556989463691664370503381767027008573793487330121235905165960991267388538533816483568279779899685159636271045574689767725580942423758466235372282360120178411491471506583522565804130543459182892105391907333470980906747401799968764774817564916442915258074628203317711737597380243379795803712877881414927044110005773866203646016564320835513013854480742147962470382635975903337124696482843848949682436624959841861262738662210875079837830543350962673650716713435181355041253488656774467535146089900073142106606519437435263586189905258489202504875743066306031997342557473180741006680803007170964460829893248193661667812967466832447276684496122612725254979392641820217651691203079078016228899110564459833064560338985899037356200610560114565017008942489559773405996985969931514330650989843338617691171627490683481765112339930607347051826993200409709428631552989410852240414853137598338196156427373056963331019956041473535943053120627109775444051074185217378645883848159479908598947888843224994427194458980293035459261538439825243907947324266051344479866900864089230761066963556037032743617778103042077079092173515900682176501946134902360974814876966585469690177469575428851345763852542616298115832418312384143444119772352391157598744732833864543920624061897299326842844899155304254647336482116300738032912886964723680936906262246324813196639662648675341384382972963091943443274086298703180416928428562627273425856034222711430239115715277205258978079407572890938814052434679730829971166240841872328395521448612487080073479421311864634864249026474525466419697070583913215138896478822046102490902679837320617862194280485945062550728190270036883724597068979413637221117607198336268514083719539892841358791495980632420992499263852251790708696931668446443923280478291480003928202684386320240581183234701745986769232026315034854743598359922585712214072941636098464326691270521067815314713092538425962938617320429909754269102616695902653667967862715400844707855613665728330004131974192859847700584943416670763265223554234812412724664698201990143998351488287513954221255054533148545005043175362635045956104353349296419276809575448904613123053097268979908095026453733945868845635972451170626537553022800444908705178123028981948935691981610482227149237014350603301876191238384299315193964280953669064522707776242948799291761921721103366391674039527344175934839491935608859824422987046448585510793020518359803334436431046984578160447732053617253469647026371984593954482707730984325052668422333268620934712867422184724511690729475226861223591053723859472388814642616032463579708253987468565312612449352263042260066714580726730039323361791255725779253554266600518779754794698450063111336074287419776921638105563328757877166366562364157612972340088962771681316862502072016942839384259562489945206886624189976006705421089737585433367116079552370226439704898086786127708116019785757113010632433538470014001113999531403197284458595006227950669219197141486280630281672595063776139862929632287360194326158264699029382479847480544536330855923437340718937508943091692695199026345624582957518310026200497069544383081581723464450873482723390479886429391821581139149533345816272097739674518083353058618287546808496069335759353151758371144175612157765889259498262256853049260490615369748115419691084155703019470452926399804340666716140613278271013661820325808355140355298969255855594369096072170732610283813518411662538318663425294251214206024745039342938579744404815205015201698652160845592332051826929261534609051930632449997682802846782020225598811570647948365971986214422598370598658990404758220004797595732709644003160504560041187359645496775268950804736847297219196234767772453226036914195587077785712326697006562382933758944285301267033661519559678498853459170194118536423360715176996143766123672973219686760758466111080526699446289303077836187505722118117402728474996366209774822815976709012237955803414718716167492818337113176917923043595723737199087768567304377824117454131783728845876423782747181449109027746761342669220523965647367617526693519153191717286419481273153665873463038244434993396136198350600041461782846979518212831635110402831929447803212776899083247026803289344390544982489307823514858132290445029989664187472854467518233058512202636949475313327431906305586446290016664671954134180772741320157564870702268306732649311570355756896139781763702280015006706615525760999923840383001752588547736612656057194723075903905291479874096306541284737415406400785026898360754801079410075752901324057822129195648128393304118569399538374764506771902593219622082594523157643819081242293232109232466858381255134361228084439737714877893379482556898737122621240688839868393652837934617476562774407963237195710004030555771161671212593491726360709939609764013464244729838664972342222892411523606725592474725365438229385837800375845700750155109449098507521732242552941063266647527860739513378832684241016139377948125264289165988449271787093250062992046872455430484322347332936600880901375508983355694072970430347330712477010433163807769680405875120150481465668666718650171109573328963912264974089788095121776091270632190498268269287965193482345204954820537232631482819415508433724658787226611911733304894392055978520605608783895416151632919690358122608230739749636771533655094662358945097581666177058548904785756352127819416588948326982138164808810249966570739785965303861825252141596971664548856749790309594069531642300495816568423978280670036389817591205864812311663152989997419194313422669125293682622502332593856356979173168185473305433688978712568257809305777153859398574581879367195358188573085986627880959969673218398579814464361905559969198941624046578751658597948598118266032465124709194775529841667267774192599528834780526274601838316470780559839334233973746218922409477320998026092828688827774836484142506327019711546238444026941903816378912876633387825062231384599546159846952642824327363616603977052719019140702461845203855434978775530010471876397440930032457135670986714419904756521689055209509943499722117768818515431851194741884265572749878735819627222797835488905730416639400950892154592666114262141465283290235251301930422380504883417521883696239456109970126201264904588064297851731874292988100088795547945393549678579276798639890504771864679838484875575602668138073455120968205871573480998609384678757569818891523086382501032374574084896812991346532496667547644701056740720620328706236989774981162024657463238432484950815967922310444318179280040932566413268164370703959292587472849838975024590546959306812631864280735634196641592839189999784947406601385014244026021289866232108449427673403661925876788613058933964746911811848157023129453614662926926350896065925842167134326525271524686345788082679665255051522054292924054263320085729739499926575483195948219180221213242307242693652996632786516104887695510725903407725587354618798414697193119833126970595176922780310629063831671818845089854626049630526132726142446383193563692110907901936857057832927790282245537763303401048086540785117391653605794854654151338247741776105257332703871668465942408058322051985805343304816079497571028921684344416427543832885114193249435163828160858593168849480004997474152056760681027661044188133696967251933935728586475902217869914278830630517886463210621030300557388923597574606780724559365204021160288944226626392296574491566319726599419317708471805262814009883969817675561790758112640215274124584846705965550276578743337597947870908890256875055424131357771642406249068149827697153827173260326392053735719761871112447983895290865784049614555503855452807747595577723279546230990172609349262000273238453143198079580330778074863871965056106925854534751194832787436792716594485446670376590003108317719935446574600668995415022492380569041499649734574025198290133482856196075788814063838462671339213462273962902074472251595748362614773843819890968576440503771763540569231591501257244396969050172982841495932741989687235650110028929755584098453113310139199788929371557224392550202212760894836798000907301438709065906944214826919959942667312412885727602973941186605043274246054003271528107643640184550746308089744456305523784329223019378536820298822438517780337282942002698807173932997112939099199017293100325814898186172552027626724782413189172105557756066891336801389180592106745290790245003424906082471541459338129953631516743029239704814831868260512394303575298251439529295456825502638576240630982652966745848430145081420097338346925538720489658269527922449155088811656275247633044251086870893966476030563371832308507254471659636513922402937769775188786537342209459690662740499290345193634407409933398211662801923573626403666401206315841958340304053094495658160041125459338593004296888870324804356281301432098232119293359596632035320296371070596400998925252796971527813542262101177521270606576889156876386704902178686518873676853142067982481317398579242488142576145877802890534762514085293264131921270564566033621027402820248727753946719111014894323462837525327772757123535163329830418058431309871633142765518921791862098368733526222831713170510643882216675269451430734203858744134334785006242186823029352735895479276956823292203184093390545900056547820726516096632976946605617638874238648521547274054896391465932987678855581498019343554331444758982559047305791082713737751749235864989583010097183212868337203929829174765611666548493862809538848782538718527343999849058185168846400838031408522901192630422742512720669703210842096306808263154848944460875377661336913043066636797546441923961325456225421125714452077613492412427825311797463658741992718588406952407540189891992737519607092656788959472352821845751310481812220300431655731495018139363021113040611486284404683641587966781415665321238915870912723262485338978810892278836806125250301875639669782425130741029563898828571699654973861522806212629229267058677197270253341266641358356525769189157336665960959409560916736177501460498047735661122395591187982083896364495767615565184931875696754946280990953940931728743055430212191303278215851238563447448454080948991459327532283424096462910015164845970268583813252146935374752708220447874943612760288909874301002180511529177062269306805033033789281039234150708997386799263800004508352957083995545291480052809991492083893739738863734429085328984640214145843540894385926821775760806780799355530093909828074970934740604431247994081852132069844819753665763306130355330620902480593674454626797172799116753136751429833762387514366037297894397499369848725975118278097874781195216543361452357941041241871572354228374862806294580142619121730341837414356038044616388779253274671480248056791163656474417758983628639308675756037449427640185936545747256946365973414999112014138859823241229832805147396378227403399078717007868765149805089662801630480502252679507014661882363640473322893042935909028992871222735439069692428218348569900946661704097345072221344623426797577305639650153126470896275131078131780180949245447111949356029421756535115116082767977655571094698276387480159078634049126647827383807048461857616972354923396068123151899257681181064484533081043823506771737856284646611518927310645886383475453882834127234583776047456902451861538493961925861608871436706337054648556893186091821803314009631218877484759161495620366059115662178404469199121924076301698981827284598867681867267236470796798003958006478930234820017490888118622701563456205483949965871739070117003981046566730159857082229341614638928163473470815854539211255030880503691436480617816011043541461012451146910272048491551606578564046866250472233329514542817330101719683682141314154737515734871040008161600280282409125707518386448632127704018154010537190591019204956154867886766606280832674065601632700425455859147002320881560181291615256289554562231505058711725058820122572988151158827537145319794807839532339325802341384047328166791788946058401033428629343326138729507615876599374044723131844895607025924681119016441315208721608735212494849691369126515040366047553003045358003203286560946640060883595212167199877541199106990437826368617184136426369377441358272224547472422925663258112207671563514227646451759702536503619806099987393636213496427445492666649247993592270164955375625624232284055955779626122626521103658574681436857876400268306221273818982493415470716121435282127447665362702922166517755514893251762827193591118105729917132353823469852431454976659272368731496416399061193637950244573655778170077934133054092505334170666545676966285177755334320950148151914822903172987236099705572987347480845221450607880755586641452248873588321640374325415474157881781558673432557962599919032400121786975907662119248281884476837678188760168427867767845816018386963871220332733583772898973672412290186604068262286193409784896582967417174064104611626001958319218001072989650649339231589622412482949878531100547788571018807218337707108909954441963092945057251546334666185440831436283919677621105984779196073400660550157114570317613512154144137551789316770703916637321496587670881598563801180600908046805908030969144631563356695113133407442153602871262010712716736126144068389163382912054089860996119612752215046021729602495270954585976891635252231896484800766584373232900284084786330389543149675734163602496169732330798908714581470436800004820528302351543948354922042383352726867377015670567928770618043807308684922933762276358366132691372014334060169012281681823561295938536357057515637446305644551848157264533524274230556981954290349241360168962960305079758237942319515468539966997055199788146840749919112642146148193434468552085309508252682178675866362349502070569379953516211349893065549952935926810549942703752157948309349352789913655094311595197743090353916597306622630361415370525103878124068322359530280303257685126931944667912351543703477754046913032612554037420562509516903029260702619105252408333956203646221595853648158655351259958127673673901233857472533906455175099411427891068266563553835928174257871897145502295750785201739507941607877889108489549337541998518903662645771059712276104109439490088319486355921605240246778171598962082861261998594350771083140961842826803167016744138417920876990272941971896198089873314325347485057094005695577618326884877095012041889429574749934240589292958044428051479228863100176396740342641807128099215936125849584960201329748055487058827327411571189741775284628122108616308163944603159379644055218513870468039077686784428877419874607307337219280185143806709236848930746983574950790244275305213230399943395595051754844682845327122355008211566618212884349737156922950489373962062028918905125946220573410719147066255949470524468798087180794685887285179556748576685799373289178130286835072462442442372596493560649923889539442658503407670001336207415488292798147968722541618082413453862117708452182104241757468082027481959556949788397344707148631505964659260313887757896270262372503979575663555243565261396398375641933841484921624486805851874590416761501127617783910002901047445008552280213247510675743665833372200192935522213116075364495206392557687461181487818639375433569614381782266146713057901684586709415713368070192855225052799799853603178645681874982856497120062817664083095054281692007648931369200167915449024269727620279489088100213578265589624623345990452102069675161724187930673649261640293172349579415876697406285239985924448558786127398825388516876995648254632522301275757418056004613410113442553687682058133134963966441748296981888276241688112558491547794119952129324391475888014787690309009893999501303876675503985308901312366902245498142203920173882115341519605633294058544234595727724624400839667698178472021423453891315774582584597372134405695407734360806977360399530078803222500517092845756235058845963510748263332582405865121382232225842208215842629397632559923904946090614240490898393446373123329500788445479892264211704064288389108307999749321803753075582271192449042415849173085502414865631370991092525619256194742757961241528021926572677104276951598457661566076706735731894578266413112560337224616614800734387936745285326359825866450130080723403753865373601221899666918768394337997706848160472117879006163099755557069456832533080409564535346599656870685497247578055298806769446804847640046899642492362096152776897011315321523910050653518215379291489408543013771994418604862524102211848472674620547682144451711186175236534671610328810448758443402147621566671876285277131909950370063580254814150210790457887738916766695484808889250663266810905984213464381602126742041981603741567541987711419760842064680927080259439485855518933053924116889918381539806033108366825743547009896989452290447006730861049100599910632839291032980261137504417386535081693182808405177846216418707523737439846017730651412110491391908419861576704544102679274598665919231919687315805007410999648837721550567665189877794303774103891005800775982427690427099427357597990506554747735987475333045550232565043019365002652649995112861103135978202830073790718015799122394846129765034291354584131216783034526864477017932680392223640653027157697615229937410743247006157055705914466273965587661145910444932282787042353772842173332388798057860075923102859119069057891242357406233203890141860134474926538999517057825499650850249584249492053546103292973231761501964102769015200692350464899248973765387595963963346396641041177606378180926844829341674872328333016816042234542196435991987757979372074496292002799320552060831754191406724622262953779548353593728811243950844798284034914246008296689744006521804232032992841156922804902889086657519262531596247058106470584268978560974747694619156654247721815572725343193477248887588204433778800235423069361028555943286549958462795224520769810082686722872949462540165450063464508882520383448265574570815219589724195745324286579825654907410605250922077454288201595503051787414174878641782858497307555999958938509571194229228105468369283294877871390618160882718964942764059774889962087863383584386099232426500399330602747825531684880664883679199019515379298033091298583004729706743058050613957705868490229141972328204954918592567736259377760109184158953496978125325452052876864779038045665634173699654320206151830838785649342622067008389543036594804876974613674360002052692151360793673591077741979033121938171755963420979961077520913669343382669186779003111946096032116850312177213078328714245697955929558429318398247912961738412321881417007004614215382463238344153631423733199512321368695916685763619857680126483378466707455661535067016377461573636986505463676070099734606973927354820107803120661525328478676810005242383775415241173615930656117421368736755039300388085394031744932315889331792755379844361535770341964165339948743532527178615335109163914631811487541190572028438574481255675595740965896236345939900142573994053264829769432634298818197385732062846425803311604052256519911595080789251269447918080393913351946630965506772892082036020410591241117019817903124663045568066952792105417845614500024734262854306307877434213261811051507647432341721567447867949495937325978337479104697003108192924764197875286524081291281168766982111596152235888004942274871537400040223429065955741297249954975788559040399997498030965249055450587400052403151343775766443374275749401600948787967252993860710027782717884935578763026078779959115889532073921407487294592221322053465423931821807395111876495358808035279477522489638852688795490769859881529680315883631755924243395934014517873586272092797072134062401409592497690022532331140220666316782408478741087261019500697254227402693933863176898534040128035531863085977281547514702575129745221382599103772177748272146780523843461930185576342818311014793206653780845175754946905282758787784365095870413500856029031434518219893018308898974225698783693668219995220650165630500816581630137306675285193852190386366677852846237624285001126067290977567208516584233176575666652139125728783714305174602559268656145450317416897124093241261220911438798724764192050494748634160306920213984603014148232966323731253043075093444230630853983544005330254102277443422875396528555243128284913107775064509564225059711931124299386573411760278453576610718462540138642054112805023448952755164722678733639246075722862342652969273005480135003414115489741932780298224479888419240471500837561512950667646460907650851457895788082809869103640733225445189959249483946719027057360526187270359024900533725797684555038171429339765099059917292605675601718256645481715774439266211466793399855990232833016547927922481172162010356438066154183673541824896606154119809344692171285010229473579524052694049024047456185555997145368420961338236978809821426899124152173008177302890391846594827216231281160173578104951326038826326641253212405271887927942827097353600994858744337725937180825155614325356946583449672246385384819951953103425629743624596215864805020458605670167484291174769366788938297470033906344114969660122478054654856708413930766210765059902245160112626883701645800101335375584597719526119170497801241260217192317404830509273846828715455648535663412568299689460331108077593363350416966207394166918501118362790071985437065320888905107089859204392249457831010716797178778188657140957148450188808471361208301114707234658362546863034940065301368980474117382949693150717815807384431677423745154559845218262363630758188746025619928641994593229767399486648921792593882172235151114000959398069457773262057915995636735256440273251959174406835035244287270739850051910940716571395300095137893777006880666716128733154028111601351700920678204138515383470018723437477420495766626064358872587231290496815808977494306132327702256341999784659166685182714377446712798819332903894937139624861762968579801965446382712139799184869121101307168463167013398497693459960437381398271399385552131091319239833995907648100899234858057986342414230840250919080229889748742185422455247538419883679640768629642221202759387351536662254154084412033215383125396777525350840709019689180762665967658556945723365792235314785229099526527678724957854673380457439562870737445181164340380663230369018590109058464243534800576885533184983486910319865860028083152404787384900629997088161025053896609396622898556475775783386963122487908135195021748612128376999992138853554550039767358310618564192681718478809789213090029785889298147219903014244044288506873375421182557716863579043288954197134270424895809528893788476744714945788614511357515398987225162972525922935491904155122060734972868636454260715798921482300285727952144248379241985136134720977529232623650793153171900848479482675266749534051098850590507977332696326109714626264476490064538701496667207408285434903347540687471505170120460532772411063686254865228307601182102247216852148301567105457131687882438834958278659566200454997829140013863196335176679088478209835854725375622875063275940085041787720264598460505061892094497775100958301021926872390696703366689677745487696177074567250806419937013117624962305290006329080424251247142589001678481308146282662024249418416459234507324322479202767674233070137343895072440748212903461142011965195369028440090889757398270061086882780282908433306603799852257868876713413419777562956664767325828840150823319699994305921042569848654273795744956121113812028742908970944326923577589716587653553719698644153560599038505989470443821367159386153190605284856838602504470669392543309104139397503231811291217057597008498129335292507216659415654389034046043589165648913573910799580611387232484772631637807134328600836162871477883881534302049120429163496144945429876403753304423627783807671255792521573157521443525576347501353962312993088515427039960750887694744354867066248347370654359268418624314170766665904899572855062610428917213668519941019261452438477255614437170890572060506296488466329683284201459254659907102727554894243442821144209768764897012690811592883068398456492299985554558654200209585920474959057871056896646326341271324054848801406386368824473279378974424773559685961169293645128960127806512330087184372536616206322603019351289800590349039709072810145438835112059996839934279854541764276169692737804472885525063425854991910179139563919587173301518695585726334151605129253130949061606122925407552470006902439882336864698997635326814810523176271569787950753647255051219573745540970409466103007111667754870783268444966335441221610603468434641079647975429477670479150398168185573201764693538497258293410178691777860460559229987777108084476693966204176035507330881252908941723978077551676475539772649981047908015495681167085094312094279477500318315402923141245199363136019217541676012012471112763158876532988075932099491717310715130626518065428951904079464836646674462959498794140350675217187608807241313019288742577884216664729725788134676578115915179277934872065390694678397475564598013631062041897863171473889969412452876180301046921728321748371063499131939332261206173759828979458092126661205173423876128905649268143327205139625497007351734838914943349935330821190908039080381541382393567380499844982357340316820391885242467478785694783112941136934130769971691456182609167618159848446159082282478493982886034814270882163201162536398621293357395234863313002318498907700156007995678331925398547797987439020208808816200510705947205038729367580475244745871526524385733778977355985540806415594478589917981235411077645465459386180243799943236184681027794681387280783408465412268241618513169932161867031640243125076036249627425618508456044461284931174516177831278112604960643753980690287603970885554954869531650120553863580998255541311267931828682662316267860408516463623471336102675333779812114660828984373417549626365340521853264619821721639503301981458302820087197848036318002275635693803397108622016829208501605843551743554876008343916746952673960084786846894188169460619187685924718883886450275499896820717132777993109153038034153462465661242419900155323334312615930619456444408162323734544224942059066548990308143033664949091132956838029043124972400272767582254120248147589673566546534918611703837443805425990101760431755207878879442445775752580515249754634649546533768412929948124398098049449987822658384603131253179078339824761476156529397464553409084103327317769568472081854942457944622945050305851594111105345096502631135317744580581722130252526848492143524562509106427432284932952702624970158126869981840832508768093859484337241227908809605455675957718583475106045292285314229815469173110783359801021157547158624110903000103360603011792433602768170269634112816903243864054376936566643555010794452717701984739615025979340635258639887221200265527049707854298933600635689833795524367860915354550372791408168656808559405215996647650860462002110427491000272795732397017558783789336233029678000325260286741128139492934376649264907073160798711834302078723940808731170004747004685303043314510263079701135728488738546027461342534953392732673900585160934700519092927422837576828653922179392211557310411174615414652449923033742384805939814663980814555923156980492982262926128336021219413930966221217520419744227766347390216593829629908418395410438871888034448750004756307607843352805395529364255497510031008047773012150482893277098422549347551100938323903683017510961045856591622602098522692894733608735456843382222324698823931409670931819864223285069118718401359187635305603836692811146837299341264879363699937258211809497637606604414076285853236496303171462970003905352566319531363904358943717037868543532901910287300334843948451878276958820180961391443658636463514570707104671331498647980828549058009167496891662282465844271968806715666538588657531443730515425302681690842156807918912038475697341812132388551869934993108151123220332813387706917975219136218585052550857582016634417067656953333991091705753381481517433586586312318873612218678877701080414353254299130567639145327127398281917811306095300877090055747058290608721431737046072882421647907732136829313965150825321965787466080122096813632591358435633492283771758644181976412976951566648906536552505417498454571410319546516558669547483388724697990341984022582634676665119595702347280007629856935655931183567140708925779424522843636683334807052433243767237513221541496940522934430137389811926308015998307710929952659756480631344544256494363228415827721367531504705230759163202815709373451867910990960309605413956649819903495879886623221298894176186903593146922721309616394518449620065013579138276716188162974869642590179997203505945815276716610196422236967565317744084239761438869254976514471502574848177076606078625064495055112563027442125469329314577314720086569032293363413875433814722304780923347290143939314022103265768157811261535041522826896200969605932092820294215498460951074031484351120993673135361120142750767453369932881680070754912919812545841400700337849724871285570069844475220823046047026454780551681898970859991419826914070787728013282196023479245005879997344365290580136747119179162307582134668120199467947438576485058954724858050467550678572290345825850291430642777691859355971288786480869677257418494331697579175957584150450569259262710800964533852923592315932153517606202718951637479986965731105682156746649756427395366547609465844603514425409081332817744530574756282067043661936227947628675357336310113900577704338430840325687842429603598119407018914097820339037125852513071770379782542648098144362122373952759290233974241192123158857907998894005322088922630825651905827364451116592812695043712474130727759126352847595414232319150803675197407907057741737966483804612928859146579781058655363318687935490260752461399374912953579866931206055028901395145113042536037151382512967463739782258268478874438504331617326321982967470004677536925470308840191736799110171691612213351401583376638276256075901574865159039424064617983011129674111550967315678115355015208138116732224213454409969357838430333080320473495243422275901999905573452003065111235947573138972207401811502610777175100820184822636116459592333165627349006289024771694250791190119462569696928871087458536384105608759423914938316996978939843174292827602636674606412712366883140420340317374224186906446904701112450213853640585011961968120443775187513557209766985538659785399689439771823290600588802382271852310814501665016027815020278769595732235787463759114945495182680170429352619646601369313213905893117587508429516546139995128102238178122413180562741604032107242224310813228552893166393220929107777585386591095568970011972007227014511789110823587475733490660965790534287596095833119816030678222108189262552946006024005710450919750696159373544917669010748179144341048943728427138154699102013165127753099670229199246801798899200584561492315601106705105023310611136669760983216037217734152772597299557893785508279811871638375449743828071216070624536599519602532385516038050018334414945985625065889498855510887611984859932691871301575553174953855494829619726583115705311355703811419313498559404972107357686525533818172353480951849463203442181196881814067861033191927188537849577478955313232687929003698308618475689163611748052508113721611431082100260359281962205839133637924637101570858991223837231251768210543125061310268623501335251811161008997955751659970051121284055553057680547756872004812617534382333236871655502583801493252553232570172068102130404813732164887815930965967506873722254145116553995560186776911736857539730703475046076366900968873464790995983529551795784776069264333823757439721708777347786744155317730582830629519417773965931869337658902344857427259016957009155305834555997366465956856312690338843982249911750857981458342217156013337183744555089146835200941414478823853763257184396311145486871664902817372781993205936761297066121852436028253514070385138302022912154144127039731426252130217939447062049358114615721877715738974823145519920824466372264280657465120773479154162230589018770458351623540133896046952781925677134040296162088373906441593273282302112963222262844640340152541975416311196220172286700204562085264602699893442870523053377138165366404880820555231002702699347475638475534939457090565391491793373947999324398048554489379520522281341420743151338224097392323382714023479567808127863821793257824344211470410422007846069155824169999963280560919334456452449735160808130548341441879073080360094381573381847571296551337748763228935089177511696684816923010861936048085951883643275401228030622295134199848697375613928609277789399118081820303532854170204731177493427004133117197384908433966152536062268866251215464506408321468863648724085877007398284801207721567861347470306075509062272436151782349059006895093040170992103621753343195354635942847484700814988022342843980441270232885166055350679201649595203786708832792272566773455395062603202798242728184985795889071395354820564860006354686861461174290104354148130588980214515629282788782965198178043138059599503581190354405259923766796835168652108880212725602292096193592643073173854007956909684067965781223326572076683848271054515621430601477780388007273870657094803172283126273674022244552077308842496529563001142575234077917139010182533534085652850642856550109128849334769831085358918468793410830800403229644367369091572761059185606296040883643736562839809158018892204515381166036301413552847719917482212290843680081371528124051125002107110784027088394112285345671705937705449258688263177003470730522519765113331447559103310016208536163533529509197015161036828826516580720146352767969315369787791791983644605784921759754093097406838994124899162845839042842097904997693863792892476441149764772016856163688081139472492041303596458496648060599744002925744649302440872911009574158948632326823279489592933903381666982613198138762641454382212951250667169714565006941206333629174378977763900848049439721491291448725973657338517025580217012546591556731699055611709894426280386021072243347070583366103973196391187881498792199070239234350459569208351716962099552855700726767583801693444637338217341947217043534724449958515581234941658373626003420939570462873529801483590183094853322775192547333925193747396653647997197747170384602175849919578111231338305035205672007102070434466001711131770769877293383836603218518168311158008159400149076514265052493906214202675854767622167166571962148256723495054188275468639590822024666648045115431036999545201206837032119400746676462357659642210975601139429530397119213262572754825311466534642922669990228607677471063444219950817266572460046712202165788727165628674422776816326275373318360854873684116179509449099246202431166033014783958769050575780034109678264122932304537819847782465667618514889420551412124006102243521406756776947619937761377712308548311306547480223736402249673968731978892603478512189733540300386712532524743964656003802442302094131999475996737387993876154752803967379780574498709839115037299954335534813196645444338853163596756083718868653585150207229681209687452151511116892606075340753531960518934111004198565782266739946520474895255987890700540307602780347035248242816839487768302154768499569250075615620234305164636875698436915931123166993499860423582501020692972983933486953745178642451032274899796917044491683804856260918621937174451678944482762758404516532772086762170521922496198749690743124215287881971052252533759442047047835338970629816823649749249333597529148039529326154810912336146253172093166965995945421196190148882260087349675246636756800043038030517792539677136571280127188773636741978445456748090607474370100075503429669096539414326509753951454601774221269626074675264055629686004666613379294345802096047145283951418152471074158728518725604247153461643572412866426136608093392177712766789946132968505739673321335441660773639951273865529191846378480904201434183480676724068516887042822051780519341207088411440297592581957155361890735386204399008330158883614866122536320024612859149958449955751958048609158497486959692951632563262808692303769748943261795302094742362986262857842878959610905077497840639901809671585389642367981253369185313146085255127885086594987642851639367437469778608670206046899220994249888321651080833383700504084758890343166933335815862192098660786988610734001152342662909747588419003317571584832727715638716460253260485991672551664560633388839185863859201292067143662346733613578935926214664129110652717656314515796835133154964453147306713292196287533732414384557376202879160292298807516119075627502123213063401356324022243219601674236260761313164638256646708130195825606286550059787733917505182898650405831372881001826517632043353983498798868446605299638524283680070719201984053939035937639850149097515407507141532883679444137666421203979712407965387264552561042736484796917799316533765760610187374612973605222979778269742339768230275365290459815899283911766355015454205751381905976800342241256203962066250030258313546042325240700561367235457693366602341197844638040425962839526123411322129827577310471265434352755152958147435532684872969827776724929577684665810502220321260804969322780098731015092655325696558437833690365783621025386776782167781014646084709471486190062282469400666703350609792572649374134301312234897702233579367603972976296109178318161627367115154744847103543763357494009951833737434184654853455576437392575707371802894994069042579472782723071925729174961958522936766394032847590153094959775072700414895737550115156137308918245180340008539958922540875407858185842617478792992591217827142575114549748897918009818979648203138684377406713052507263168844277268136154397494814252351610920498849262352486872081550597647271789429044274642273702744311929896723366538746069144085213167304233895974297378039372687309893318468073396744522114692563669833885760555580383740609412628039782721174682237860737445511458165045588697508430182608078975691886064217263888561994999663640494822636378915402066199652383346573789090220684467845116732741524821394516151001285180431991333609858777250056479763818398113134249162961727395963547926903761420349051855435903978810286796290564966235333012551122715678566544494926705328253753697787920538202111503531638028679193364483073518975442427293368678166286010785733498577747952145735198370225147261243847395814880942937362141687173482663895595870321188382088067214125546858121579715023573809909821248146573254074790642619535871690390255938673926943305545581822915361231292402838647605328567704815943748409043389971412301236575364236337974925761687898442822057770655022833112127513911570615888602840479331895084246789293512949343962663377794563152083536371094916294619908219782684921378190216751688952961642592909497672001012195992078658499395066261063245309256810864328648577983139794729918352133443568102667038844273024254086408542913161654663950782437509932735016449988033022287879917376436411883695774808896823563956806028396901607110522233082863246353675671307604488540383161587285871875479492441681855535987820283913560675207772027019774431501217075374635861104447260282270852427207547437668993819493746836439495911640130795772938924383252050837506660769441970018134950379169223523740031325219369193548415578471650629779237244083699491622264301616690289403631981164004409201663249184770043849843142481790725886534778445623347630260394791289362060417865653846833078326554114060027570752014227250747424488285693999002780578621534962352593200187643358374373273032349943376775567745078268160822928865536281083626839853230788817663580410433396107165488794662875383542000332283286739350760344101567124587453354831098147659679877686260598682464997614551288385384285815616535370826695539915640614263921528469071265498891235087410462826666943254624969920572433805409694827504227378164931637378835543439945089028596797877041769311096004108876192407695605389898279651337317568179075596867672294679796904114500524650079649405424644804423698609694649784380005999610678887465032409194362102311789502420400162636191371902468565925451596543749984185131904910205413968706275206425857160234568246723804325954766751042377928593264109791726881497419646051801714310306044409698106850138452908868068118116550473480073800440885605543370606395222064445944261839335265078147169932636968661058955702297152755551775755239600443180823876806169840980519548247463665937697496983380653325950223971747749104885479800601115856861704234203124846697199949033894078977298525705118773395637841653784928038569454392810407592860034996927352409846565243530374892123873949664409427491703266916084307215690203329084969236603936677022290991773766567610436763490855523100775271592707569533088161243673644408852431809829328942731355367835292727199133263176170556579534917279512489223345793208613841477491523695619325777196581348664112897014681718852266156529510837194419972146147052946671052571020997618275399530782959824176958489215213971741694042998146663841354223465786481175366163580749963968035105180020400881487402056904026962727304621775510914850801125058035387412349219628369485560245243408760807065958817955914028859178072614788699143755804229088576723645822781945436546154504629091296665109301336087493838199670794709008405899458825789446068311031213261400486142440385346024451897327864494334415866495187479453810461118253392464110291273003835524884906374286914218981323198741150003196294135277387969347968998904662530638147112893820992214504595986226727238104382267376788256105469070848335501270683732907517112550241296485907566102318763558032923858364614159123061736283859411124435470907040025762738065514652507186842442517182423851342634555354253403860976668508313938754539455270044079937191671974190525253309806491373502217971201658439246363920083754631964267043592664108358138323317519620462813476549863188557338542505397131750089832690687377314008984835927111342275709451019932215564849099018748815672564717908307237339313862051153031154951804559313213853247276466609777616407461122793733658988803627041754494284391000433157456450857178163369968158074063478322145135707977356606996256360630321126798869854649256642708555998534442624864597462062773543995950960036154712815424567758138039690110847673109335112342043421026434116191532171720003678274331844793609285949827110609628368880127313727346326247272127412027172033363724102808143487467724126316600358182051491296312812804675652152127450352430254787368191803304081051563344081580799173672584734073972348000078431538397494839161195211857882187576516375864712193761885066483283849784183273395426179778721308544752400440114859984524975158523537228870879882219447084378490931479346502112941817316900924279350950858273643422634642876575349578869315672675561114818386152149160864249521479133381998974734614275155737165110259885621385954214084869710656398734916441683319015337888167312011303799957526392120200132228517754866436273965582657929073724828881610854374219188835491530964111975276979833203449893039526739043985992131533652491809203112900030770682503793788741623735324993860464130513220424686854864978775485481147002060165851004073028362572552432611934700198377367336807002699589861770033159730424771295343287196925739493398710048945461295244467306718926119847072581369362693093176296967762739365306131430159695107829171158787957402700902386091047252479810811551359125371402883700837946696101063003942672922084034264089545603414789889670964363784372376049054671073285844797333422904414465749432366487579321920039485971891000605105345290338446598944570797431298684239814967518352039239503469576666986867609609980810969744810568745297403612926001806138926344360963443433315024787549915338049169358719447852720308009146097877459957072613703547012336260544550530596549164057732494127862481544534484357771606059866146594146080107608905888153638712975880253089156393849316821126022833248890625311565350592616595760305398891306404968865007512922784359749401683512373290970949201752443686228946925607815760687261083246882049730600081484732624166525250848660820273068834211116494108986054250293616869581143333077391349138923963967421759222882792939689442168183334575381454863524856879867202579331953198120217835000604544628109336866976936976990346043447580241057950892924236369663125550245808724377330588881369278800317891525582866249271312296544349899978140816593635682880350447858491987954713432102413358621166986611965878244216961712609746233986332939440760472624779733450206706506748286254380134543527139276667419044067275529987402738576532166882281455541458721711594307861094942494395200796364588445368743164721829135155751035184150913200312646792777660924866728867548819637632102253321273797841862016225735957168016542119279799412416779282423256389318820098391652302377482970096020115887190459341958980172785599074946323902551020924674753076564363575585936428375977800842879973976804132935322516490348172109967219914698779333927550039019477688091255797310063164390443623554238957842067299929113924807667615142215507516581235265585852207860031669639094071112966399991410278744602051509293484154341822355800783913954437277307216873058196755810643070610523286295259409057819422144106595169752629487924310046018962625275029028285949847967080062029163385545143723392061446230923321352363271434909036834165117401621689027103949323736253837200699044751938463433783752060223080232694292932283300860500945803672518126535245725979202227726957897912658521701032729829608062840058169621408616456281860084911895582415132251964041829523225533326220407942182747083766351474451569265228320605412141587873434236633635791887310028787916468806292920414030209618570721379483744509332180861393551525081395570452589920364276400119299212488388703588938463846881400606760110557834408597327158189605919432761976806119199549037716044292078599687786533641741069942730092116980099008293017521302523252112527059248323588498940462489636283680826617080224965467505639546563154157400350128331647957963694946854790020761274338670227416899571736222309705263299965526670259487480415931203403109527490916502023749669698843274694567882497942500802635440847426332685626353603537555934828099114206810786902409766985636155442323829617385545011142628537371507967688929414189777421113008433096148121422903576442208495862950271307543522979403968080471039695738295732458006060894936876288945545817421502256056580255861720968135794402135301961498055105058780128565266254446312210000202320863109651173432909137831953677640848764006109388030802257056628116168447233768575776202548578597463481236081049438480000950506445731371705726295008886589072813037419493790860163340710555832417028999162136120191295564189532788333570496662274469965138904763451062907694140989436394892481009230849824508988047673554418163105603487162828199482661151207590267921266338861068224155234358007624003666918009490001869148778651209436266139849276010383143224082805684655778702349763273081156766229725282906822857537293129799725695276173022058897395720623705132486546004915806120967799833291213423734207524457462637772897494105640132301749736291860598188435443931800172630419710399976103822833272970019903921220222011997582338738527168057655610444539482141751614012111945791626599562412353023879958568170130674132961872388131488929854434916478270019580222755465472557508133013057511647692203952502631435473406460400135739424589010534592871470311093576294583165751269862408491582606496080845960196829535002029854872433813360892172766056171575273056606678579027761022743442274021835113095346637480454540604544086307593257063982281195225055479590853573912869759099386538697066870111638505900823899053222507811133299526232452437940836664797488448156622437696965226207477811032283274649209239333687607806426918190277602644865093496310090239946621047286532028464755409581838603770071548566870144401868122546130772122484979793449599308682218020408413371134018089773269602203786508395500062486482816197924843625081907229236239361967126616388932822030573484557023917582520390892494545396358861216889711307057705993035810356198044784000581846264489945547173618468342925112441403887026156759272100224942279670168067377595827538648365421406414893548032882497236922447775133855294894597848650256974917353581501487699893915607288512810487807399809645378976474536788806482726893194217972462250103658176880491993196482568861425539580190733663601145065119256259305685586951807520836822288892577444331637818952868348049076768459974893321249503056729167601682694876709835641358760721617432208668807957782765266002385158362187325240589068947019690575893468183765741969164062568577115795949260802721904239407639523506210234752796805774024196045612599916367948448611252744628269665609708024336160195369263407018158972803035002471837810344726874668879917875488370843088322968442409058609990149462340240712322426087236420652279834256587087921419084637571717734457602289064644985905750304880078439618588138836053297547034687396722076056978335325197541955601575613188004703615051206247723921723807334817380883517568189670912727540462960763856838622941052963286045099921663629837551192455323751741433729343722634742361870430307007469966761312825109590981574142290794287961376934567618112044584487312805581692387333321397615436762750784205274867773957931115599467097723549257209127001003344800039388105054679933786383634595589626721507928213654465033274819137376472198243497987148064984133946315777421510399408706775677150579693487382087124255548753626787992853583380351350694413345066028469395301085521591492607122873772026992985621797291115840606982967374357501554529509949245158624554571478362961567196565401699730694088293839985880001923541471204165287430684451539712926689417825901498496475242079636764998073817179960605239093980816975617522102959869929443260962383963505056562654488134766611223374403030514134500967548094970302884047410887288463407736988250627459370253298778442628393269587547214365084992456922952832372077299399885449223724022863118817119935317043024781828084518532326532420375863960825216651966903327378795439227258774088946786721021347305969800292538436003273619905888176331185151421821491165384576414480306919314483919136252417693349846496636518199795032341895352960805710771707540243119540714153151971000228884774025805548554479142558948163713178341161519290360766938317761633657881347236527145633246058387168111974051326133724763647600642737172635875443933923343657786390058850232080645246454166805951585426860768092839659403226387997116858730589620398929945261851575608227393466158234568990448726058251839655195831313513905661744309127395159131485922428621791302300717411480208167841625371297644817466947703848839872494595483569414370444940369956220040800568713663031019512536819784249988610488399632920003243525968518866421033979472092665737491231006760025090952459069132144309699740195521523941081495388127916906109209098611479666479708716342895046169771808951467414799255389311935180784495772408146875613887282836575070834381938602871468516280338687916436587417582638573803731045853936004571788513857741420135947852792160523906245431762012170780532322314887788892323488969863297976345938772513099643109263086746104911053378130334029289866215461412923344328386332270891817240707901052538853838956657660749710398250258171016373147519825436130885998251609666542731275320053060265507413042728361092347998225662899700672450808844998888209148900372971500819370219216960789503079581574012780211878680870360001143410522065087123021264100559597832781098175160767942427100102813178016736162628690127206250753154262565021730608730621898042611517257407686970320740390907637333546991033651113969267128214031738749955813362327731227623285172267971386757706629440421945217408509193301338941205729669210960400148375364320115724259418363285840462836612706246065827380536621440011519372204057146559986931972328919734815672889525221555185577459094376092806492014976869208886976450855053474404190986780443343690542944177362141028613409310927829928804153589116609872483373973558560924712061209922256154220416924093681940539976838210914665522023372105377509505232172792950569956558806038013708229992355964471610433936973546815917145161051117549081601317773626687953259047301068319111223329262996097469034622632282102418017816120899080492607883803756134848961811092155395346386027322272532597628285315094043050280591022720181464969404450969245346721129059281072071085480462603567433741683953324498354498565505505947942547897535730319296152105797499443060823425822634879218126339313996468153454116281506900221418582201638484384091918000709474932649406529880930421741134883592780147694210152506392433263734917950532319058244099331260640311987456482248611226561881341941494046872944216435254202543624683927384429508293816880847538672210245570370666271086045077302967161115117610104670246135010304284689319317851931227235182644049470193810373520865318751294652099164251872850600491302391955362044065352199746469807284274124155711143946237108146757592313923280115860580362509826508349905274942814369942942429242416409035068290972178794888309784425668659155620007757583832521077774110826918365541869311222037089231352972477739008142572973509694678840879644658909846775678043587634800721785218326966176221224197000031258644618585952293180537053136372151467664178945755876219170178384778826540585057762099295514836182384570012771933165252727911618465963517166622752188155275603275353592543643434857092945332929333099256007925649890405547847534795104117437881245648379134707464900137788570303268640258834896434564420939558325918277272612274223876019889934504684832054947018786893318553022208838196345046733722853439900035578888383380782512861225062121983234072802806419891421818811744695447780363349975571904754426491978490758295490531963546472540327934699756901051258595184095376364868615643952800840441602329387973597125006733851445469892884429570122929416828590756178837190360865988135014722888702655633763720083920634951475978657779147706915921824517321773750785822562623137955662138285488587838261105445210846299593730798863018171619253642352695401930873217945954659154064014579723571213200799830488347552482832153065950990716441817513012863125927265268772071676895783258745024623215642664596902722815850060532343253423157986669913234767481736329797814087881844646223109785359006094842217123135966952913037493098350992707976997654247186677868386739429840330115259410007771339566857670083566744948482283986608457549929100440732574731348593115938854570188204729776666164883893082355891191088345777607166587158247434466735660205904051148348074314742198559320952887799096548230121704810879407456743690906322884576908565707147413548536351354696988918297573050904159851549646512645334431640446766598602142903095572317365417241991476551353979592926247677350479765659919324048918197383997426576811159947987846425675771880407633159001083031819028016051699156189049700000934089246210590239920761279623022410280482737191376642311574666409882035598871364320868887354054499965675743802594688168058161177246597409780296710270677114092106291693161478136664130199023391458571592607646635727489189460750783729975658688505299693392381230182787043314650327512197882093283486355702994234350986929215189515747473585830667671498359088957541632139575276488498599033859865496214261508135725773850560394005795262366424578932264644402902240629899266760493154738851564173138453135385748840562193394057434042903194058759575022626158203287651287842938571653681910339556627232291395493304655226244166390960007333103809840722328251547522070551620653217360994314191411735853527086535603514781155242165257018528693716811941345603721669697829583602787962930977994151765027821639112830456236909607429569562793899982909502106614957567494649817997978283740378033223759998829275993697549714218375606070910174446606600151615213422362798263325511689025203509436280852681538498359252769014418692871824868560707861663867839709709744041831913921252564569629248646059854407264067535378581262526624627689657796283692356303528212857604545569403688294229939501598513673800370066556911698563637701734811818127712649424313792731370444951359013128263067095652871402038899460873465169767103794828222222498233051649645455263237355974505529976945890675656868743804653884627714784292891301036777434675004492470373521707812325963711907981314120100525716593225651010695249376749059594857286376517669269130681961753433095818017329170978150559706603909071217959967232924598942052046492782461092199218059073067711988257324957413749540632102097666110729393407782158279884412594388222456995711072838944497932213358657743680146797743306065040847447060610117271918787922266197815700680163515948910498260359915025865608425643316643644435492443182487181333955788101299187694009837332348209577056278852658317102102726406897095866305330490485198620855395808849385809079737694581401443648004351975276637406838438439188751776890163786298362423176208274759723278556151232619520795823119447418271423020078353529024818566658275589249701481075414593580057809932070011334537655562791521351829206315500780928016924448042445195546408631159842131766355072418654486141649008511392017123432353579776772939406786923590456176687222915351765563414883423558813725370126110744769799127566309746960266228786579562925068620138897792898864763404387242508816358405229173550635347772969723533973739940507333448521994486536554734964768361302309950899099183038829506632268132293442465643166929539765731209035548430331571588007011741724178148299228860097631383274763384742254530742841814760486058865952427304860998761813120959062991987967082180266556019695595544015943824363208325389931719129863446345421450925097964470794819643233700387369707314188926258868325817754949781089249427252747164373310648473093082434705062359927839715465048556196871692579389874883129259769253064590775602263525040625960874104779703519529372779641800840811967804581646965430071663867574531140990062084693321355331863324887012875510645466758586525281337467521687904315984380710336185146377535115333823347378051701542536956211054422575942414897463507569000012049903152790315567544254619936470214174078310470340557989534790285696596459909100582317990943536822796989081701959106580899744026793439377631588818613179342260581955821432876376084181728886629374069287506617135383647019201214310226713811002078642211592266467979251867561732241676674063800319414780949389584662169315680535366733114244946066431836303490972557127054352104173381198497628019269560371566507539957032068215438904148764177530584368578285030849323086115085511333698271882903939950416664937754285062056964986602572771741567402889007234796010400117244128757969827436967149652918064932054036798332810478209621517053536193814809134970115973615172616811948896880555062873376336445469989393778482745485448847820308362140092400721482288346720224056659134069729135933594830916817569202135857559703714950507905021019202974531308239344519958818936704781154122488304645985313656085475685976370302099258153284437307798690076343379623180241676329973325253518092011249850269212788816807503870274934282426938628362103206388949101385059707626711095040050751291975353325582746838372996083571075044490248938842900046062187474518866216473250085939725229819953338907276404028835775196402231946372344153272263018330877440777984698904661264020889556752496344966736693075866108383522743427829446980532867195048286830707037292674552349496749264565094900699688064871266500472564550813302831713823606247832825354362705961293362486203291442059523878378319292429080326168283551114042781077994470596529872353906512792632508456323155450889425029739770205501307994049606821407564942441523162982723414504060383403794048409960760848134340755644313398413303266057560500533250303588108178000555658659616670976137726258161508284311542148340696828336480476140314772812559408171187873106975497249386174500668293752548202077658047178946315619715184986662919382298452109276905540284784716789543951125488136304499771882549903727704973855533695462782907499864611552445341102421678994559778538645021063428360580514966093956316212631749380995921134594243906971812563442873459443064612569281430110357125445225240123996176069053792308108786185683763953516503865586519496002836314376261481611715884471603536457049391174030708381782462362702458123935693466217165841182799884003222833090186191467961902437860298963460364809532391569861155501649756706296443622883996351011071223186865842666809920777909150750078554564366213121392680835520261687318314915470280828822583410866461343377051970838891636670365178427110905518797710169308955687933430546999553921637542670266762308111185212804894158151515994521650390965736599658343041315296246005179682951650279390685146657978545889531270946542705746462036092516130862827079093286478755811651146910646099240097006660238874663262644253765560512469825839702840391839266798809677765945632576693356846685476530245781989343584916217255747619002723726583173339800328265053664123015611327125875608553806397882522736992109150115184711810066554971365487407126109108498628198195054642156847432424246175965417672111901303790083190625060796115653958736070367771483556065937573700616860437718878788360761827385619508919048091170442992062522891068937416719541988160805341407166486900179736839683862776770301292300287884552233294373461770681558841149028417379189031322603779236235592932321313709138942375544210030778215945837985992019966419153940362636346066248880054128721226111669862439944896990515592485753865629782898662779874008620988028152222640157768507079129970869336373052541920237007966587224888979302299685629406371711546879861357024989306755234986871878281274453412360233136034136283340459060402996109376312932410052776816314769845131378778049325567056544563864222591744991408571556558932977846325842083229612252505949471609477079372066561444416958533239411220362656831755517968261197185175670029437495183939327923157781683075120573778173242611656933470040028686560623787579175141576060709874976530930532826194335193365094079422573372719582101518464958068752637960657352105463897193637482828012533016874740583707508915072026760824387736191010912386627241368895693412265027012657363066911715648637370778968820197889101073016076806475482770528347668495055808682349561558443806339839114867185553385466030369150240948367281058024789471829068726657796701299197019749666693856134006441426569454822210226685031280359326682532539165841712239481212154281565217510357037102522736988470672116346728119641063595238628201026673776956320542002316660370063948194543171875737683166437574342734424724557678989801593383310220091717883960660118534671312355602429504635970181483108067293755958255033768183403166980844516755564356679023463477217703354584062979792618259898026349097268556088925304520792406778656568692330568112756322762392004947400413252339529026660047999670792639916664046949964037723800713312435432999161736730294497060310075571802793317144522494955590798455037089371450753204522550009272061504230559289530106743794467704827162409476041147546066408289710434997353625695674548033939031646450165569607988238747507559722185434543105234086385302632189748146261918932723342758918178414453719367449177912613144954350195284131277103383776724462135435389283193117529887585503974190786742353641183402902714288855489620377465664038881394383981200841973444141325443204120957712861523430671071939807183756782460869392585183984995785402134841614045025885462076891258377556419610646027673225428689430609011442344292430672230079687371359330819379915237764089720831511132681386113875841896551085303015590706686885758797030294534016891984658738731460128651824375267099377689122870574719359490417432120870616265403243425904680421337101939053780700337655955087482569444599730324316354856687084891170108941108503596852635853473402323743277858299314886579646498345756515822485716664590481419760899312994705053206892148958217885729065522424253991926743309955496301503485644701861213629491382018161520201935887837383797351513495824484645356417300580595122061472665557675273763107471825083054165366190133579841641043829481806742774508416605330930388017968233176825811895013868055212765046580986639572288706520476105742542562847352712159958791139870594244320168044958035633109798316117136789877250883758266151553175370497676258762323135306313468755934856489451519645857446281973557815855425228966514676913545800059042597733021824414079998945801696008775402574799842948467575262953828919949380318124738985941311882882046233876710220008942284459496428900547901833070996840699324138331031890749656928324300780909449092103427089603641222807963348242057198448519453830780807003578819025897439469301034775292817572496555895667079293325239176184894421258455162794655772946543504347294811981662006615514805746080860811096202537842144364721956259826819870652612365037200778613471584162162265314105447872966598680085994128705951846203963020688215422866403887983109990242104217439336201384879973431534571897815071948792542723656124975595910670610600805627721507818200571536037818147545117855909185691069025971952530220149572019601580479427936914157955303757967320213433002296695076395709712503872786178876055218757607498362288419047558392284115457585768717495011556812211767093048117401848107327913809227097462511831760760912259038881407389139603745721773017102987017812255800954571434700931500451116677469522956721504580110256976961917128063795474428253708691730364656352429660575688709360835269339120891588739465699098584612061730247720419643854229116778384126310564346586311963609332113554322597705816372131680558310489909091883223401311344052096611960928644364203712070330964544659701191442292935023451472203778786456952381891650431316983362933596801480902785367413582194190734880268529835063298682916518506155652890227547402621005123698227005024670806107592241959290580695320424924151148838412595299823202258969896875425027705042030568266091611219886141669091099659025972778447685083344376070526732781330794142219472902073917636904238014432971846095200972594104003644719118032307333210450425006714255034355126468099988595230593301100925319186823016866592497780614546287559059683938785998994619843094510824183553039245901204446191952238637282373342070562067176377664942135161553082711308254127601693156405133193099207258152700681768984754822409641500261541109414961838602818152288857694504499880710907433292799782033446969246186109871871651053536767150716084545166162929964096496405217909191061666936814879517209245642226337935629628024799952326327586800778849791129368701746909928897324909238042188795273805955128047972433151667951123104220544845726067240161276160277336103365329291260367265569072376324177849622647259100340543045521029235601905210120975768058080334709563172777128603098699802036146919921963805256963609122177028815504276333629324738414146107827739366198103544898422001062356043584131361311050251537136403405308503254001329152521976203702495001589901535966958105108031643130246720239218754936104553624109072622116608822442002428708766173661081440683700424967439511469689605176333729885145297314685852600019281041771988488274369128978492498811186062063258421190310038599872494329882751880490490427355156080434689249202179767540895342408056225282475222501605293316570166535473949073150663246807936935633636311779291496754998542955898122546528736110591138277066399335240722022036825458564931089538752095711591076249680908720108766282886327236733160223346841155143583910378065928818784735594820213870144090452606398721262039610463351652827047716178114224670694683028756636608711449907139693148825892736852113717930052536553965162363937507424902073731393494878492906165524691776325838550953291651155312980001761829913614980439616476946483418221642458350358272946467525690671694177470540431867298041450878656468189115856084146597792079475552727258276186945745277418833122774969390762723685758002721341957868846329844144620025903173437293192433498019438656937324284212903588132505214140827367688227914416630894206874967036059710351797454413315192298455857116382345578808315451177368674230486567428533940109997904439841210306057019241892275312288554164579779538926122403523826861828789638033240723669503796340527426675685569707758047688644906009781888067217761097969404127887568439430982577879603786387423565021351901505929959781465292896832155394973314024912503478281413760090455131227497505744487907634532039503199746781540558262305059879817003093706514299469522180912223831986878511058010395332671874541660488629066888650350801529642846999314267633406655775649228569957517180282058011610783916367523367894716463787432060653421315820668264847371399102524661300201700482696324138413716313429098734539732642382734998816139707031294154983293795557842575839657692222146038567930225679292321980228439803165081943032015574017915035007925774991324446307306999952738103912246959530166476975610559509554024101154862446680141317616038482500922566344555220222462072486724977320459787367655103771400591085688450016945353472363297796860685951652091636358372808961013669770914591862841137679444576587660943377723200531788894445390078468203444164414285707861232835305458324800098257559766027051194480865609435101752554905530971794016498918133237580270665213903484120767374564630937406787235147255600816633591282135503378774436640137748868746515396371912573685448688247887586268901833030754112693085880644762995754200948373662042827808342540445093677642428764293177174197118816467171150166559226320222352900651296858320188035634944981347766069861058669691964197126344074592071923390412840574444216804247402768118190612954248525748585742582430114119921674508808112275126625020274174371214232717464390413117200086033216562893763088536188568448924204964565118880646536982792463466631709810693808166808458059297547740315157938238256347679281462154767902279340541806412312543441034543861362125000911141351636756228389441117384193782237301282861244346897817442596355616711272548131367043451284813939141096256742614405218946874789468943437548048182014984841277272635494446452249852935988243563548519796545617736733147888676008655186408276836798953720453651454769860507817668571947995475002098209019997497177646584958794899929013713725142840346270094736227155731865667297818829239890047516782457581875093269242825143916618960325973016630028945643093939716712777034356695496606574388268446415487804189577365703103840446266368920979411935130109021972248789764957749438723118496514177040807338432305830019783435059341522905786205087264951509769880153473595089167806954529779161672466938711842549873228748799641619151277487166545226033295656346006940240332567620519715065994486891161086744296397403878368589060870829403571395905495920705664984465899587681978105144358011281390176393437320231164531249706424988438598927979703501481449741812136389083600012094454266784745104847130081999760694770602320747084406983522456289939459327726181095430109833243534766202894720890212543844691733825249194229159231382013443259544227775360123692326444407196239078565957763083226081653204564420271513158557337971678662477100237461373866758417150259493266797191967674064617832362218521451401846651814129695076450694459327181677401982733204100390217484045777286493643891038750648081641182725502929414261038706557840107188769113351307287626356698605354896935495954960456933479714483047942738214928913930293191604675516834197358844280982846907542180340724070323554444210276672469365093093204107693113642464776628719362132384269655695100279731233162428955212515731348808718218831047667855321739452321925154557148832861021986257812631057649176961737843853066314023485429413910764262596981587357745757159775544587264499591515099428144341300522324257732392675766536119803111942567475472289834455910016160341090407779472184212188445559644038039545585215148903070498760532047211877882372477674525106343598282513784176318352318747610147527910741555408810220137560678749984134984533331387731839840311317260796083420148724216125148343360145233325583678678307218388597370307705387097333173988224484288569164558097790710177816716936402208836000168967202779226546923670467171916089019821187697011141200334402305835128466342760841813929484991287476296234901242432419712060211280234351313619898799314957288729596406328551221545985315353251274032920813345707775798814083649333502305763739914423694889186961263731311484035370293175715174517233962052344063724278095508717467090245189746805808201431680405525078690776862638713667101369339851791243741240155016096421626284669591004998932392458138678868792087699414752821109811290344877623630921455316871027348888109429227180326083459007487158003596420405108852959614955579112948987061114793748565559743623178907774559897373338459447939089425813632707558630112379577760855030846520289991998444249122956138319255339536259573062221733937734865919553097747672444223866993328149245552191615845808145242838857183905822008790987488201226532357441977922664163766855655718430018310271892448439549793027261113416012625602596549422431017643338370895185626764371017817317971375365899484941655735847372078927390319205693171941699099276980522375824234608649596250564144356097845603784831708007944541392686440739526921525465133555905326219779661043043005237155534616986252309468804795943431296101793628936935399685111853022194905633126864902678184750163292179670520972305216130132182459462763756546018009693435368404110682014517033106955070442363418808440940254125014730158210628043565774228626840737120981017423192986779593898076255333393826992421327423135390832775355731689550641383546544982832168896074238356931574142158870736152227078242106376713479450477811452576246368319518540767191416828787569186630432014287148692197126384797035712601234834494730195326380573332668114992569142983273954883376770611393549151522471918791298790618992194082597195393686555968626391294735019457743616724457379419838734640194446170621640515304638573180637426202861823684491219982611245281453634082866386994618976567938229467410523370426108190298426566243406786796238669628855550125782117008636902502627602858121892568389287662516314424002329407344396968335296728929775667877155468163294508291444161172808031371399297496950173952870724378099844260915053177937436648314476832291327304047294565779514166838178911673927563934630386621024972880277088626777107777446115413807820992185816114801462075733694811948112517487199709803634651054210133889729467813602617897582660777369196354870674296917889401524700419220856810437630575775233759491531903623107253977512227231452591005628697491739917710172960274935181518800367199731835932747169947354544068538616097141303367130158577387364936427108311267827489177483355686862802654905612821069874757410563133756360864244753828078752277746262451078900179186399855292185080626596625365757384468009742982026458359019896364461752168743000714935902496626074738038085292439911888018028088271305606185567799839457099803878773866988219153344027608597925145538068814599638166033780985598828229039732443413448498344426860552159934769350386162221345464919675335511871108249995408927810673105230294920937744168747758973727468811068055808275932332161261531476285316007564629249301340645641167597231392496234089553384184053071064581510999972500999563147111439318919023212857819737856587918597632668935231112683671995377282133509893436445486512011269182415169471362411247170106884675294182257943528459542369117713107157186166930696552294081141896955377886334535665617316913516651384172840849635239665541903630156489456968017801398543930252020103925438243267810153096388580667018843538205867573883007497164327414885592848841393093184770233133978106625170074588985079802166362289389657058007877705000239492521214359129539306129251997472230434578981614810360422829438514449598166934579377563257392997356445924634218142532402179730512544145707402905304707570625956077450720348596046386276444734631669686816051155341860291285632923286794277931748716734124861812983323338611421120716692531257288109659814407717780339611974284709109702254096081859122925550728326827110540791544870080085062829633346231139814005505421905624787155909011581765923056860559820019614430932284108773618532967166392343577945268563740115839365304269033562553405501691445871603071776168634588741975787868293810353704887340712666628667189234175452808445218904343910228195804660821045380872288643220097956602205550352392332024987934986806584011185782978971175032826866754957867691681757069458142025633782964641867944546513451669076054336119046517225579518097254750251203491092583863068019339258592488626097807707126416541709957187307764806302758314466605767241424536155201786389393481672532720910365636390794555529485163922870816709718399867056710809319300391898361434238948770572583079917133052719043771175176940078718425309608967432054251346912507992627460052310451206891065855053892813153003962299593674616291542518838541373215389729360355449840564376253849117950635691834487297436349575770859011920950204908487814374794734349864828406470137032191296390742450843772048838843863974141695586632164154063041287154097195015888941585527363379138958810397180449346561772141220557257783798671476221433392136901766159612407610441736592228015154248875733286227874660562016339095395389724661248538532386508925778469638750701227762370548900296183508298264087811494896159667629965241245406006758544649712728993135311274179824920714242253503631584799069695605012781974573255953288970288903505611203947650540804024139620597987457050766432842296523055264846384867955977669636344902830282515343820161473977583637179854949764655550879058942276227141104611589747043385979659400718854224273928393865258269210450416508241427153117703390747469078906513358328316887081299072021805435980174377310872501905086038116420791221340418118875195121094009088886096160623640280436911177357046427319235337818099743522274297745465181771637538345527431548867018113895107753413751559715486316805106390165879729502407737023592978511613070808542430130263307856096672816239204303951566184750265551350725963781447302884502452564609672988811639241982695188388170074085774057943704042648300959935383927535375214112978938370506738627405684546266758541346706623724380641176848053949752451770340218623187291723506109574160109539952827188743302107521356119067983793100926860577873203629407969778560386975874503896055171784328808908499461668263487234895556923066428152494490349195158034873710842176522157778326746796342063126735223012140738634547611449875237468416931949256797898710137942193476859074093820197563277675978828634377043418033319794278803298173528871090199716962366688072816582206211249847502607300986670680981404507160827488437298488921375689531904206578453850166525071636531340824674895906758125418026050441540012082892280631470454887033003975721063212410172096864094123842275923917038098885172227505987734338053999100690303066067429600265879891110429486744672348369090789674806170255380858000989150673451936483296205688074256498693309445559448964582035580002815097741668540834402284262706875630266594319884542434199212899593236129787021384740455682633660559297974152962713986677265954012255033641766309415419092905268603239598022780535873913295216226272291943307802614120606514753835466665944094057377871956113748497764279571861265017249443723342417457653199554016404110659484007907771473460845592446671586738747854804178568172874536238085030796321478740999505302828981980716329609960573772275611238245876945740752679582589461516521237552302191198824467470970130222856472077652285712368365477562267989492378419232467571777797147287949612001143255418857194198886100086973127106811274164514208711146536996901004430817431165386947733459232054154209457550790258976823692246622062184170733759661238744767082552355791801256445460041954504374569820193459231754252040619033450825341376824137610423512248407562311714877408660373263320429095212790703722454183877468096529164937084237131839395851199814117840078722395639356920756489594241459223260485688847629536424298735968396052939861687796539074075572226793475146806662928393984137020431674791531270924724736629098762540312939387206246495623779446133663099378159996000051745017101526942412780286829787916693490103962556137328065223316758456790070801422421621821190195889845609303416721754129951987775159108995265760923252934623142524709009662048032878863371519795841909164024942291698665361111022541805227262737599548959703807778354920235261516340732113758983400291960447092340026535198988649100486085755250130006073184168192645166222332279624991016994649591966374482734291386814938239884554290447127853156017149105931356149150218252320196663800990512177264467458805559235139022018993642823439211733707354581527416218566889082507115518267493596163754350155600233414289527523519055986877478239700736498581499487803108683593401042982037760603782000716369344313074193076147413559895014748960850809058740654377521252917936759848809649027752124456576828404904597379269367524083183337064940295820301633544166561299197528096115167619607777872677996564350976888835439826206829893975913221119217907230612899414986706560273939113997560702291840477951792378993360728530161632348838311708548674747504905262348015479910956325934387454027418373991506290429187628288708197902448783251278711001833027978321374507323911631095013077305133141354963598846382427034170553903115311016308657591710460749908846758342275735801109872125198778316417293249097037930598368728152421067809273106656983408226365028110269368422048743025752068877007680341652107640065534448330854114312498125119794299499630811365394453261916876757973177858523062351994806480143494826807009856736214110006703400956405040646118258439160513335825398494524726036772877443478129963984372364342483598037562904240162516508367555993975273606731690542276064253274356240169925823965048538048524208520685185176266103340857986248608654285334416949313591460205337277158113002127982177752864603021640271895924045918139817723300077272592987450970243249565148153056917718923899099841686954987751256749494782735932756142393455455374125432848753364922255618983168171481798840910094506590816267090343211841988886558242463337999338936993492386082907920118846453287210110212908384967169843236419514470661516256371792471550711216167519860206389717627028833148713396521704640120847526670768113937021538552037008460101937857848068648053220756933755226034382341714698187594119369115164198989227777917591094135261477133922572317365227292248937087641485959050021901426768041466911629986467358010688997705341733623038764771997092147383683316882988867614782707298926644746078321159745960236086175439796886847688056324044472543754101567632747127245546989329377455915716225953979708543824699197722736778581586851686946568135404492454900762186525889671869637958408487452492420861982748142274991919872342526862039680252338720121664941522930382574320268300397176300370680155550093490432615016744709315084857189286263440863428719268468217856763603716292520238640655751517165850447495537298588715251774648978533253227596618299088826864650874366666940601540463852990159289651587125924257643665656842066227376475383741168403904813889022087763784813210031397972096962643802637513840564632750162117701740551558248356714382785796630998245445399671003218598113014516925380295025302916508400279922789319044255492521606898932822009177110511966710869640312931559140332510125046273714885274982645234999337103792149452995412217001096843359660799720837197104196162409102876815931387853139589936822777627982934208147094498071340866542525851827676761975884858529215455932106317239173259473030387653312985076385045186458284629311857847757960660253437612680806092435285973433551639832445078916800118627034244695457247920829769223314326973344032951065638725692874239000296703097114370956244746663258386689652218387106011765556291964854789646077239307994409715028815481075319574905729549251800625676063441810600290796112789025751008444547238848548011263201906847036857748452250386034909031505121379246346718470956250149641866193577292314842399256240770452195523158506263635192221983487342054155004768692497597655221189309480607553709340953042499965589011322238997534445359566678121296501132967253359336600986541076331453268453079360542239928242001357411092169757407061046863109596676208599263700320599217912859822732900493727888313659741645326952831478189698310691929374787460977394126020538820484528900589944983363320884459340066544588669545195363446020961743697829870151062800325425357494437359210751336117223141708152081112201080917283956486084789214377644509665218462442655033488283097210746622394213269470653005266526404942098331760377428789971091626208757802345572289522311652234803567210731376127019701451265055174159855000658717088417648996231740322120123484110241249429809765225267924753117648405437135656482727972930007436332310031062971508879521988533183612557690894947208328116652050574047081225919844012281705521898293171503271986002416222793861330484139482497671231646733364244722445448476988144181103085105299486780330662574484948602277209721641183514149600882868069528404563213473919672987850507210789543270506348838625336073221289004103662485444936485350580991650590529815863629771691608265967862267085769804185796179928472221327445400769165598001182652472749976029717772082786828302468980171650161419667439559351755642311705142519797435397434922850553479477218721641688111903795581225219599231804985033177643518621600476085221354151186012282852878909457727871587819089819111368105116270557848044948499703024487907975920756939968156194712838970339863189572627628988289210457745107553423513752688049825178081223489879475823769391286646102959946136251812990813167570175289363721953938958161215260946486884008483484685792653763987663387406461083996211420076384378083997273660783232170726634754876158817910463580954615261843812184166186309303672993847564400878235233236787472959607147781813881451733591107881670555472888760434387846952709263680049166475275105604538428008015789930602722971313594455311523454138511252279162277203666564173395579892071172496890060905362044674330695533971891418263174379951656589165509679015001969033533714121553649514439389662741962060938883810156795769621953215019096605486805099283827041210446829836513944127640051417568855545078027585280048045232278383406619470410413381029251169366304831986251457904160732582989835544918895932634947850874597791847563669410173117440483130095338397275762234003219507471140824183384061773758759195165030621054510869522763328471092377152255652533755896089759114124298288406163224423998854130827924012523371935965925520366127060340867220698189897671357823005801117897766335182999950521922941007948015326877584997720379060588649194760627173063513045116009997713674992975187548992820307210930475152056143010452208431862201574810017540359597019770529326161952838846729608742967472389804454648207581561636051902045997267453417715091143414215395850848290166323486098351140318314810239351832647634066877206913851477884465468948505939131905800013250531208864532667852230891837669652855556319073353498578768944942301702741803128092381639327240077513251331884505965342504044370428411240691312416882985139133004173894565019561352892046591424578574304447863559022472622383302639839192584412951970238760888314800448361123368309690301400828645121672237622960388533537531982316619538316192884226063788716039264962238550926823829716770214456717470233186546922574315230589816160191062664951431087729539608876136737408551511537233254711463921377083590679748087192296033177441452876816976984544219671679991987276988270376089657080804800165961828492573233487101666361120667685570442784727278371950134838181331926780336162551716766762390795010758579681099334807858044037552080453278461336028622928311991856196966904182131400809657043987771954696805351075453621580271491435096059751368392183027015767149761211259895961178926948939893396084225588494723038739131252170798493993575967676547252626031784017782639975606216353363277980238764757833500591423495577996755402273434797588762842947497515897284656319404733669790883889757641604431654797755573250575738854689675624062059132092170116874610687026137878186722317213113830626034400360931240356560976099610272622437668171954291465505422234770765747741100098585460905391098172454276922943106229865905402931607663553052402975889236039601322373209556284042623114934011803338357899146061382107013162396275424210319409281137054804380733522622688157660943686946819340438775568154655076054969476750452487624715308814360498491115088809693127475230158401666203759034929298062658654173047690186632630914943276674382162042135339152905458545140489122313177336622150593492857552732801380840318834987454401790709258594934568718297058312597201976717738414120067759978753594264377472837538499628811260407340682428486329705382078006785923011869228530793161193669759779500237900470059967332401343969832995947212376875191250513063078531614831467908588966330974184073275763112797635212373693424572643008154721241696709992019756289743941721007901327918822005731762683591262927312759085783925614364516823268918259206424410523385130418078960637229385265411849954896598819406176970937898845472122691293122955735038387937401791588700410508604667304640927867326946682394138559906346298335156329723861844756235632058194393911969343819479136261034831490851837743591701744797359102002109435728806247684624422746673890465101388126388395914019745739825080616334878642338956067573915113742864145047286231253225194823594871921866704860432859909178134455795462670377146655263979195110582182540012892436849302035051752518311203756782351948597604249487395304906782277900626697645517764539448922826030169618111559318366880931870806166604015311437882771184129229545403299601787305302801777319137020513794646081830794378497086176712472854773259806730721850239343451135855759137488147959500269691776118504381484698762124090831845586834725950322795633172434317797138660791494259891593261774065900001539731012409867440405058359809811184286595016447469871363753588378886200346376329801015722111339583980354311759276411576473932929085989813902713434109932936222018096282480346102945959725114075262331854959297290934908040269682653397483405179373344788282198837906095073734058670768265420924442184111679697829597019502890275779766433602857764193561749442792860896017945193625903141609630440076480029319960333638554647037274119034686940754997385313969731670486556314765600797643964066006035876109040123594225605994785890525631720352864946348899596806918080673603798645921712860855062457554033465655315284245196767399131818767086000994433606187827291076635696089398683196023894055367711901157566668852327689790169932462146406248023320712568579176801851897655865959811510915892338484453876478884112016485377026335786177943380798376477199602249280874288114005744958837688393531714057594866431540555508977794635518495108046128648024591141411364672263425685691182608961326053480820934077909524243953615638496590566394248987002213375226098410735158883208379094692824409112683686714709899134037888794740162057852891398646009961652644696602529769117459228846739796817427045807385007572984301641365239674546055531154831392632237866279554429922226208582687737100803939717470074264175554629141260031992612961439106693029421370033959254134603790195611860071782116381722938233410015351602711198236949480904911684457325055897940060621788939255132797043514777636861512658763717204198294786565589340543977199546428469200474110418242878205829889474134084890287660814351657805199874579786626412757778749874803517252602034905580443780756427490126305189614214502142806826469624509534012094437111462132342929940643951440645244597246587147932115314640570732234399845709757607357868179449936205639137016148603088918022770555529433314807983855751910032807200376835059266736874878418141013806464078510514149194313341216494439862374626355191003746919857128196223825155242131981863987121937956990227010099971835390413858222422003522009158679054973172745147651911390593254050542938517907990151171259406690283577142371632727727387022892203884202947386108721233023050384713512194479007298283241875031004214221966320566298093245060120191753449784785394793672236836432480510659700567084208176686115348196585925688329640719049841487119980994307498227701259817900487403308396719568470074169131496659149037495876864411137850263744489204221526027469308485912681598334756615652741528420274736573477343999487933925870586114302302379043456276364615717170389761704053398801995018126972485239976979425467476467670975150875704798348047152945440764182341578044744590930472407645524545657002150280537396690897732661338939254844019080911359013899269519453859933408713450585289342201033962960721086732494169096533638329751433386535287932851602350144216864794135911708682732055582041739113296167656077696132720065978602824952435016326881000301625958599441469005793577233276446390871912003397264126813282452565468356715283129160189796635776011608695820890828244263146332136035157422846980277591910573800041104403290656951911024154892644407025473985390973011835243794212248221920857846660110518079830007574757718564288264033540089796080737945615170436291897617742580199020547027827948348918312468651994409898396278323611618559727688456325977300777295028093512740839080726938940203656289997108025112300213056325028358698398689001762423528246208611823364576986968321193545928292609338983348398536846015691437072341001004047614740365795873319033877402777771539005165617045797949206214977296631674144244027889717337030944488150259857414993069372928630478987831042715689861825861103584763682484000778463719136504220066578010454837594991168841722479849507290507308930841914243420321692706326558469142649061222041515368870664131457117053802076884350632367632681396956546360318098131746419598112244471531994327101729600538424536968541902646910326978350342571332927352282701827296379191016688731118717988511467733889831161098307205326421162471311082102132436722394443409629951274573124248840552042345246164359826810165892851557688660285372362666207049865254561402615260733212160967410907246728569184396589300139725927230994523568043419388221731461828309982703585542174476679313395997022574504891288033306167123999230056353245179325415232753036121461249831290125739798665389167564274728526436865261222440085937672625272215206246290489950007985472804866757419869003760197641046558151075094584427389013354111154810593085413477473906030606109208079524678474637159570530385488822795233290099831299956073552997256699396335507356630221928531835881950147730438292617489986749550921606034850701708399671026228143605631793989987134986771735810786003537197615407246434403125425123038988413319037048334081649000744598930660173117626923533219108917576574796716040750277119800989899410424741939262378025913940826979018745566621763154971746683655584833955451744325196204398671618086772977324703885281108172410003361300075959026332569506255442352914763021029988397689598128303211592348912460067226783302808105523954292393604657947289829915851545837308895097906076798695948051546238044030843412386726579355154336832421602014997858297976948490099214360464533885248742080309560412990047510716868235237074905543543357507951688442477776664362679538758040918218335126000087406717355110706056172986342113004765635430196695702385241138823850492861815418154610109920680767274389852526955783068819927790832359737952900048009134241464867458039270566804707886567594169627651501905339495792476928373727120893542193761126074965573605863830117039353479448115578739827528324852949898978220082669849096582431944757050106312142553392776983169801310332660264934113174801496960564991088683469221233658141932359805382474023886695922476561160491592073629797507364288926257660054985781140611378026415000648142310922551885045484176687786916702852872105463166118734912117003337270560657070337790650652096995752902064136491827505495249503121735335079227089515992604265778317696149731652220009371992023873773056019770064704048138354788552239853469731144921845726946057152595147230371036493708491630327226408816642865988832633146062029929261894303084731775815825659648102967122603844259649223145700482151176296751264061622629610229050861668341619040278613905703294653034268469847423711037380351816468529045785532711307795900511859215714638551934899282432864959881718304080598538829735379942550401494651587188785553050333502401268675873634485408708630241057841329682627325200601505574869698181748382741890536404403166962482960630491760839540062788904988074374614878732686661967177239490030462899251008005058827782249361999871732186575109398027209202471396500550482961320672733767370356851467325591551239051298705816921254728304955481450965947412740375619430199531626737558522682834995948600429347165723076327447127865572967829898457284921407027847673501739279283835525543670965295298177527961456018751553024209433569499381356613387826975949880061090859501745155129566329321740031515817206079222235119747293563442786044622796112619567478710149788272546995593775200387233184014293738907924943225842698223572576897686135202825878147209615311527396959688610743419370621618254941674281276611055866449372610789141357004047750618835835781716095350631574625435961177545491575459052625094324437909705756800647767298009702197381464136708092517805224337534365407412147642284383623075773563737487417071208811979184316274609463045870752528884133983779956803348597087207203795314379366369100525835431606645405427892512750514567929939695691758995989938077710379556395927934666742455413721741224045086652448548078140077684486468932348570966166079044864920360010167116711842937835302541480050256984069674672131995960223642124280894785179804815750030325372267736773164517892210065055928031393178146427845061369369102822016043915308548590254214641693858863224689714753814188988861936919161094113799858146563876998942484321545435110054832102443745098426758938999124147287289598503334009603607830409999878660790151300436323055086750802640768161168002283165853969539862401271632180699229708347151557881365466528964385529330024571729338409899436051232481169010152657762521003997408866637762095172594000198916197805620740652552486364263991507418109637364228854446734824605600518011231005799223087490817840939373581651431388489493581947181375146549680057680969778171119177005143723230209713365390116225003758520293813881447179806306918361382948447661786945429517739156275522841488795821829396266316436554203620496624270023119017508520290029570719105677593574765015855660564719962935503063922156988356109030060980131913081242489895338008055606688678493778133143713533364899898394758067045589183384994041929894990421416188635871293996131143226853366856783832651818206662205090452609347758453411899888634307610207495514013260380990970547109964529204945772863727978383790054245454329850344272230950357612688475333445347152796346640262321341663358966848512330273733299672700841320874731309545302409043103932091547936557757751188777242013553558649818310736823228747925734618131660957004023217281046746726806989145960889665598392902948071550690744760619044805624506850256308368421961250651043815095518834903858477060392165989700755770269084290651709907039353982800404149911153241697113088279471222252844000717080680625550725076414823821966691599237934178667417140650777661999895863201976849743705851748279111132534891180730419495049845147608269658270189677469554453401667174875244273691973991360797722496938590677049550601751578897412189981444005466807020637485660173497179933911500466024575453181081716365186769652483073656515570788776381300441646968811674771375598351421914369730257082865688470582705841638583383443163944204862479214011802054644735970660120034534901968415667192603042599983336912930575604691920498762463283215281710371112144043726749152138503862968458006269227849166631826261490965716637162198998607110861521553421691114561010764502950678055973856493031645616825112392013557527470570377523582392867944866952488170129582629641604090214031402030978068397149033766002842338243662246827635592483766090539769182447207287308445138136259420183199244023985164443318903815581442663943740601482867665271709518049707935213304096403846360759514622290885670934921779467330818896416033648540973226297919029108855141937285867724782899375192620334548959797077967058306848788049504023251770643940395147836664214023742060401722302879048824812644910228637417532077967876839420409253954410824604145452094635919774793288130006954895085065526463576489496962803606891079781234814990776039689623238442810053797567846586255264805166480184431752173638103318254192517338348855660679611210589042507583057772030263625625306142772737291325468927897328367211992677675210173335482514544418678522405746489777682894164689429053405179053133388233118262178674754741327255239438750424310536361756293689068482744571822514811155297844942025580740209232964640259331782104724415747219325892119020116476540541775870734896020230868112837370923643116976973180418748039194007496524491547343152240471777224411907612858115911940145461094735666802267664439625738434939889881067820660184303468589286496019482864881335610966374628593357272964408249689811983305503074186407105502142692129570228320074082456551228742392674851551263184095446489931494410625485074152720820469560424964188112003026149983190074438405972611500434113310451260935504430294829455271826423193385448253478679547007832125295337183297987367782346903162084204780717497093632944311121957881143759061328108300125792199667226061961404123561692541833542778182848411585180717069558178188632533805464356095749767003211632462474721325638624815436882049833032298103921749678352474256141701038451933069139359782895938945722971993317804005259752830360436616915415335119389176685307999573109915088008572561048700913680818424448720312759186439129890185191181513351341688224692101030392677611115819734227794857353466760955095210728003876558876094106954793678792681806077072841518114635872578624862098015418698226143524204984524297167608233202930036460199424154927638158346514061733330967191898005269447537552236839628081188044025523344420912888596372813785038099944494686748771314278455247472599155659035866832708133198569911266827700776965402293028682388964718665354922557858176388731513724474055413286802275568289264534637871909082181941918338971831491394753920579524288480727115675606231125981708447885624153957891385147118399484816133049338442584111167726874950968855202308111631876795780763994816648233290250450913567256764852182236980028371961898012583408912672772072535525651302220778493805930824907572217707876534826953219420060332306576600089686009390950441999434423014251270076406662776775058153424078839150527745667298395888707888606340376202986738110183749377801644746800949326711412880431288939442751281627414254597744940583350876049868041481114960614035849472104532547235426238163797911785429265361761485465184629968795887730432595247042685328625986921441241059298226699410362138416959840349301120891387575547059289071725254860729805163929888292460682485638475021502177211352919197341169725140774203946980717926708587751093976992438017360593204332020740959341504471673100789773922120922996541403676161347568579341991336689119537734065328434292188108715532155701343519435764539247123061047238990204988486893132963460717964623007090642311757179608051786504862324093076768109687692470017799733156624825439963660007419534215253874809402846155367677038126768874386129751478576996800772366768931364697932820868923360160936150266693026967706077984042970944906390058952574425841622481160946021597004916820720008310440729942599942099282396640324308200532409318077362218352364812090092012166730610497484933703278969053039975482975228706762033939205067260920898530891109443166039333810240649679189145955829555745991930711505325080831515828150518101923109356293440822899486320814871324960177699815250835587254474729240531464154247670072735813828482882570568268812794456990844093159828286987859090109218016530038213044754192031819235705252090143133590804863531764490681651639165505069296444750788231347704028525945792027666321113648876989810823281279172358255412646933115655840891508510748345663481718415466637651271439200708740512320891602559553830152680768838961365889541041889799304961132826271886030886979942953717431290706608577646136441631842768840470884128736321168269767244735949187260637382034598362987340907040332484551395617781819270519310371340336987860445755725866547885013293462714659283197133938021124416133083689726369227685041929099808704730403690258021555334472603961115928558644266953198180668529564255155309502737052380122316035142505281681786633706165450185553911085089707798971493509851171936918703656460612030061734081303001828102952108312461743112085287193169754079506386434602103463106122554483131045190670618867149327207642687773869477802417514925354730440106317867768715625642306440504233515311636273272965533746218950024341765564163908258532666268086143225443755604792862502224772088146860201493222781229390711257163466445376123821725022397505508699589091204270794941671636164558247946887400729516501652401636829371360224026790163186333741283147324613910781693954749676606611037043208879554457892593323478657376405517090309413745815592205428633401681466013471950800926837777115940432196627912970013127292804158177320652771795623229267872705669351772904981824362907583531094866790445781251773040906344914762166160706872776128906970278412255963525524281238980302323067832173244880622830378318567536656074188073880008751148385747517488589898970042588176352051479408270524348214145221572118922430445573981928880279852556939020871554454798205324066204623963783929617193416908605690801183280743785205202759975444628684600684349566447916530423638264009969287990959531072384698510435714524135802625460441125354637157742834498318955226772857945994914668769648979119446199076990879264207055191654752527154469110569569644711120529231851593474753465226299881530827952819961396597318351700230849565429864455129231138335846060119482404239798786899011234592707396876181040680174720277825748618889785924642103686044741158353745124354926516633990238514700215381213201391109598312218177250404525528604200536677914802626702557838636431980329370515903452256018242842669453614247712460372377077886641081093632264037559233901954476538550692438797919901172580932524327794778964916457085490036724000408401740285746300420527658159597809540950611565222406399441329730542184389378800276644631424503473423768920846961844639833196895666332001101680499163553811444511464641953886004371912755026359073683636685195211263939607622337298349243657044137332361929759498478036338453479841914603155562795673333854830439814619107227119510171124587725028918930139007782370449431033668172681634392248585950249758186641895634576882063705216492601817501211469848476107282662506437446493303481008142559503258665667701695471023916871100738701897514559221151846031810946462190863436441169608125472188578506252090260591379107263896675765983970520160820807640982163367253263126668193761519931781507217624058409642490542077003341594659950874217135085648011841210865160411374425032167667635651796153619662466986333123779307961448587657648313427984716944956228229965031009384033710786259272684329955314559449490786708291038304373427244506620924380624883307840032066810998486828353766324888161695120101508846361019011285100897674760849036499400964714213451044174657712251445919149299835210681736918108389168649183403353054222057271840158802532373307277774029460825728478191457590754359172626915600313311791289219924728753253422230497052902743197269040471743453174747020236560719394516890521541872954776022810955559059891135247847079728294160624364716513383615967738169748073739243576125800573852858554083457762791216309933617508761593486176928520466942840955368950701566847556847406123060134871396756088036010102999540457205173126720616902144330312004153435350919355411610590917593527813272011796630742964992243745983575603630098805742391660342777639003325977530605213792272991149078794418306248431146862488796872450041888930977866722519186567580280788566299520979911662259576420181126926158542165342771773090287305466319700299039609242797201506448591583703897850940582984780370076523438324633416964015172331448835909299039857543751298602026182389252174210800890588852579461554136534212968509322096837029783107848438189172155516450134453080646312178136616109758332632939186127707154147899163957446655551068991017681358014187765049313883040023177346340418642683306636795340670852236758074111253116369711793057194980505800289498018156834338883725244108874548398317523994365082236398103068166045757786091383224813036178196041869800899761861030223495212427577036045313061898535872052239111555225367726884897175401964799641577886774048814192929221404994280684353223277443528659471695801962451441460709430152042209646851843829913936619517093202168311612503511901284863091706470628295219649868183773946209449805326458766475555867861497832429732696118985939008699729931459124916282494331546136175690209136960251799748873348547212393597578514352713354045267844775173779180681888995945309606957663078151104487070254964979905911421943862629292606315659598822303065000224758853449178430281150253101802582754799876402809644589997909135392787745584291058002899076312671340378290518030047252443438559174297828281642555309873108003277452615919233923635823308918258787836473599967145792600163788653363345674832957808568006100924491924697574067451210037539454505255342571950312101968266076647050751972171916562756286764483697089882784120439278743493209402487307885628120706266042232107113745406150616226953785452334886391957990859252140024939461447343151655551688589319790665684695603050810756691210827275191085379182813998902401146580443175734503632192959665140037279388064549647774872155357076875001174267253028172861606590347058015234677800791730590735923043369432371977146817420357329624203047143053051060584210626600159220195321943164189393573903807476850934696956315897481472974775586908679940925261576936680142472084667996219597263907138893269608744282134188471718641952031219305054886527743961880284552898680149002399777448483128613244409092756456048149739928822964866404887447235091597182999387557944787816625337076854848742628925519780821620836051381573601356264650096332839533797348794979313653935610555651197612348843978305373203339359358839013602401254205181626091937586026528280231830215560919461863877718800949044098907269660574819018933126914051557156265447482270829968006661093500967050457695032774664083074826480235643898183431407308532155757253838125995478089862110771271081598432266260616120725089434939913165744527465974046566491465580213856759207389288392985314170173301259724259478237369634658478151351927677297865096790697065987919915308742140577832072831203410850726870935556579990941123907148864568663254656335695395096671852175445851918969454496095428970698732091883846137007288920961040779126198817000628561958927742394000714695785567473492553573523939803059745925304115697101849951765363559440298710388699058700418750983829102858891972458132173165863147147553284894106995067185089930800802119521306735216742746460452611135989267830453346855538095370044982546919598930183396292731209832405431514169987354867490332678383630851305771379167566516194327351574313399807847791739066736020269296376492040032378748453988546837711514480238981642520731470557346338732952188809844386273582518034379110740351867811134026101889460493118160651533626536491279048792278854861052344635852913839078760833530821655193973900979017471878818038807151957092119400198697148412902304909196202315933637335621219722388631685489433146987238187551446680983037833089449648728772736864204616257200394486365244605220048635180012768812182467681720814112834813405797973432713508295576291271758915603806583435934349687617189765167549570615616509637840395966953960815068878395953769176585675483310180178216734748327668900074124017110420067877591241785354457826508750505475127445998987053099339553977555294397088024834038557997849619614356965030510558241778762785072533935836184318405043612863341666946883137962484520949761507145187691415434660583738832343606367804995344185120445061968442881106742794556644789812133275886499203983194932427468218979800946463117639014409345969265175429847487443839263070607571042479091365234637202584627259913948230438289461005686677999327986942876301350211670580429799653935828835216976072720015601735357591987987930407355154511272006036426690790444614443820066997810342837334722805137565044277894422657367599785643893427861956939664023849156470608671418034816278283200840291902448559445272969515538801150926647447214683017625206596349832610598572088000805570261402368303925650970772734312050396386151262514737450846870986819269242134433198132934422372654954154967980693467270439109834384387079903909089853066281543763427607752431105667894246404873337622652331121160648347774527228044742937573626613486618352344625222167387423204434418675072060300474051386065148820982454213836813670410170495395759569568978819873406150715669821440106819888091540492083694884100472333577628162452627044587927574282516991757151673654621054406714464943336335982351621398610228912580527340094046698605510494335783807680370595838661965393205341422157502095408535466204297621707572457931796570534157883611716203608008896782222297841501902655526052018263847620245092092384985326540992093576360431686674940879206815914896108167940282969581451441132488183214127899070335509295938103706664524429836426951845600691492689276775142682678355316914355119127441902098602339485918803921363840585232805154054396240761344896568531120078932252087121933679113562782937309123069362000924871399417255153041931064697049631724704970723348615500518978481752576805145572929458356498958051964989780918213199562112210990266985280721753154051310465136755229824263742124322417301531559199217501321699818125491618432034727915030464262687088264500729569083916786241913241268623502697681891370250300040009839192162758435518234692115293434643544607915826424381793381296512354320929003463329443090698832905747898641398518704385615233415210201074493775633544919544028487479349407757738310740225168405804307201848844568635184008285926061704120657843510750230812941834117841394889766744123579462632841256637304378402284000974834206740436283999470931279639060393395930623222670969779900992786205770198735112780125810964949590316072843313365246063039362739359805928961864805755203483330117011127960921787106107295743621100417242763155989634781506966571270531241476093713059413541310160863526510240601894424607842596214107690378076293917988380946523215859544431623219038902600203328011384866313171056099154331624322794077261523221982443503833138389045300958638165025483786761345804153250155127944465780952530637416912226524424337001687112333137076862250704904289681267767091824160856216339848503742946799092529004901780198265558649177658898029900654617579093420541609869166833840196425516707869636628363112831873731517703827421087837065196695815805980114687802394991177072605848537495596839424809472907325713033538164075699751098478266143976083298465016153971411057528764965793758581583150098468993785023001562138570538180616562336468222644254440779717714065863059744252248564063896647781590191155273092679080497843164438391442332133681465837287313779503931028907571082298634988679161682900224338241960002852843435393999594133697471278544617623080553160526035075279948422279712142629666014347348903476432644391939955872091037658349808892043717773708995704017676055465575432220914687386393862504723107655615768074582052220459086732070411173427706486705966156192765981010954547865402852465544827645093414837030748154891078426790164174572368083365331209396963889097232286383608487412244134394884330783628050162436685432999744330026931693469038756186756523303577758097352864733832607057727385669635763274674903216245334282389232651652364255938351333396206175406919622296586862533859367160391427174786834931319394325956318941866813561633072490636382503586719237655094511427884076529757608835842656180346333105402719981257837132138072678975708486055258172140280233434958644808412278483123875456074044819558727249599450184025628589213944917162861829592926883760505225489361049997328227975607175252415448243521725168779920283043533646408899850025749907482431664131922815505956228369109991797886355834352327126364506584395740135777822495735799634991688124277068411119364672132083731332259959397431184490964184707783072719407374805771967403204034598797554967573804116595479131202387384862345378825416464924864154996332352388485708878782017090580033533841871636555738776267899363347523770230946332928077703929304903206187366925056728764520805715329482882707263149316425410522181549763304586618984697160863381194697768265254716262568583085032678638386022174309844778699178305916247033427451518448009863673475774850578509576134736797361757770548284790124846439423906736996786994738709586186378711016491582752012684708267680953542767602445701305733106503518576280995509950681405968443382930335803239689532574020637694833447801685891047689923000082898389057168952902394759578033510365270028401057146522884840708258995065587574098561702154267290834040642151130026320775857019103625518804201634105453466765738963719345688429676319355858728500006789467146158429129027566591194102067640911126199184640821932452823749442077463507353032743515601218419523417879404719079567105880867473955981216803050850012287473424124550544775199959979896036057885993570954221716533787007386889221555614047035801480638655087870553876441005263454746521049284952279106803780399954169737901808763006443809331790459925475850335601416763033098276071809079098495252205703131445837442803935902330555799491266907053209376247487682730628454503529937154318959836454738003002327616054897703154356940627869788986846999451642609336635550213980745360299875063416922919925495044399238965110357764948688654645937170226136894381137380401931866433697867976348328478009411417626190897100093858761816270633595870129672212486027781273632372296377051427690947345616675348203356891685258806508243554700680767994065643242007449278161221734425406758364360579832453646898470801530393972750555665974430097975719241510188599973223935541664360495768366554736666545091878701688984183335810038626274667518949305109815817016606946664024595010986487884142270125437616449031086101010654680664494634573663883055660780742681764261536531800505288412416853837254836743244402120004766550234341593798935508790156422089645983959589894249732174482414486424748702199064558446136664101636692970646645612184371514120851052535987948218458268144967079887121388257813184038005758005916945975870600300899035784546944171584169025361648026009061366566232452469517823268928533359901640054003937402002206617435758371022680689278458567979553793516125439879753823058555253421037718138703049749631942660025046811486105942997906619574486254205726293167098901695291547965484520630494425556680412060667291377970067830552891323469271918910721776121711205153795184789906154049906269481396581817018595180162529634947038608724117571433069103155509233648679251617294980572516491573926190281306811714687727866618965604529947237531320694433643913015295477631602338708853895158545524753603704002021489043218492529220259384210489936798997813712684832512327332430065488080486022206073633694360220907551441144096059557353940621102723323866573148643427438097164333330849097539370565615620432574644553589192200723733444710617002017807323230831345966665304097335510112727772149791223107093100974172164668655458020579612520978386869526833467700908762894624571703326394334770640134048560071070346488105073715737038422786473702438565205924567459588631787119094842018537093415262117520663795846837849785280308938849426339262172748478937631104162653753348037580246702024760487103212691913743106552974304492137318395422650566882624029934578437072191650641758581284535216582440254732291931415798916757949341853506361577846719091517353040062735325873295525187123799513085486379745260359059704591067194969303307227707244721704665094741917969947673307808504989998465936263927882389716814917828214778045925841227890991857433606621307253021589036144543446180082159270157751936525216545378246856030808677324169337509681806395513421108979470742726346601302001839300379737363136981619835619908809058890053105501135236375914727939683136755581304501684282117507645886702844374719503697873811589796410655913827798441107063777539515726304047199455459855900839448096622955700760387043846612155831015464074588895009369834389978495571422320208766172874689058501590721743907612316646481720173958682322331742204377174905883566722479529656497867301135092045956595623741845383870700430629875390053168679149919646896146584545570032052912998117137053142677455596504687694650099817885947850700918513045845105362264937274953823786689689256832580380167764648167122421159059249188286846302184970253715630143712815910621824028078618884656201855266450252672136376775275685643142921451634839111646318447327884609472156228834208108139671685601196271915917973214736856346562020900127424048193992515643242173707990234102100316028899958755054565205597152592664322738140720460326732266391594385430763984219258363936057012670825288210254349155766440045354354976415070419135337260974528513289667956727989710994107685820035884134868280689840041299408995625434922442581555346581129572142763787773932594882838936792284805481062267824096274681088675973081120111683188551269870372479444198529049824016625121040746183825848554502043848370579243236422147383530443232632780704758380349780509046167571685154019983952021748916177817904177680355670476533813942312414155378123868076311819703719070663519215526301285760674115711834299172827737621011857862103109265209052070354076607271302910436410971980359078558431745311641870391040955805111975862051723175880273104177358281467775506527330171873666920715912305558805523999669537190224698269858707798510106507225683424033380699052547357063654492125361332798536449052102738172364432343339209198714495987388571331934293764764757945917805516694263662111515548927703284047241022980709692154429482052545430551223539505204212162598280926678990431407000571181694867581548589357703925548691561514340520108525125754968509054702835567467777725393516686688831596416975938043405727287319592633597507751090185729399199243537467479544809932545579671955667444626544863520982389794408307341010549143682842641650296111249966137835557870535905622609933433119836863830756627896897471009617645985515686765757148135700168723815588044372533837448682804670648743993169079430810272570793254075643148512995158982913289723686446525152580093877377387674055265226718000199339282490257018306682796114511635115151722439539371308118785662455194828423024009087837107213486264346918218031232499952320643135601425422579220005852140271128392914053820437457854981506576685125176620533092053586627323122679532071326003804274034428210210507771570738119866747331277537811444963153859899325369940781384148917306634884847972782549543374591695290220736384320494045686163379159686854603503455466663265955976515352985713001745871151701654512676180119509277925285974284236660178116472632665602552865991356442874891795028965997423651962746634908520311306863706787864583137890264532044960554163785941691960202529053798777565095217423805052575143092130300142945916163171880832169596822227426513023111061319839469159812599794565854341348620347023970387796830216453048046698861744623720865894068801786366115527258110744505445183073494745237429386013041783253693875860302685318140969519105330846946244354837091029736171875236809022784283878735462209312378372288330008580054103142013281246626303926213751225018189169681714030508508024124665753599535694096859961203309017196031926741206080061326085394842175571931641338335718429183631589197905703184536701565704879024869019817098250678293812412697953967928326367987954693525810490776684296331695291989406032035994511610994275260853694405683237545542592670722628834030775234912879845208926993783354910127060441975203122636956580246188924764861487220556136796152000613067177111801168981970972386979387972601243556922776755579335791887445328137316849216217915485500125103595117757930045393730883111604951726595135375016461595031415749327566577964079399856048808716572499995377171583616671993396991137956115110418108169560859345191591629225219786942557184524503474653545447313392740596143949778845239424623719222397310823617705310985153118090039456916227322711053864045191985936239229823849676580097839539105889220826445022952405729882407871407122753889881433631216942640790380595472252497634813495191061174832076527685557265891851004438223210489573875404097835884263960963881643982975043420830435059875649692888896203011816186932641343048394590707102691647473418806671948531377027255713631720667360753021404282700723147006767848014122129064995585216850793928968715019241559530693809479676805990394268764044779129958118365690077461157703940372200956699661664128040685547397460844820765760927194944036969655107981019149021302882450793495538476311404077685758828410973482927371783352985464637453594562415035951900099714565478578507036217497181521717202790136539892809459870939470550420241079983320167908169387664375676913818801883656689492900816435590555866160934344650935385470410454477686224025415946759905089055281219064415685271722438552026638208133049542629848750722818669585195826890779774948671773758954722420191868922918526900688624253219551136505274304335974279215567267849557007784354017729423433956496659186234822045254707087227298559431587533070762823546589225654018666996333454179760072296978798318962052956974304743337508050635663318536835251216774266065951700215374235485928068698970920806023822805681612235945880431578158536503611914258115922132523628539563325705953753343442997392808164130005489810059897949876438836978657207353836846235352720511640389701853368864479717349184124832083977183213458720902946380528798428490094529037001896226370687306800414573486928362391448488723185377108281668659778894473344570744699851409241978220288547743976784261640780310194827663818699205356168078438486727794634783048853476275045660569468522258617920821161438652688513502790566771960090434378290970128563894222437751874165447164155939131769030674901961034361417299614037681366391341598202327226664066546608301936780461206910410699810382006653187382552069234275614903308369856554948735040252152749589732554657404228839881214520474959595209908147219626243780263396753603434710221348851333913389916524396529148675913939955831011803074457625054501348253070742009081094536828063475138180182126195107816305193424524959581208062267177498903184544248190708304558931363127981251773653339833993027373346440037586295077728356066557922165791076464938396513509274719607267817820595981919117624008468417196402084898630372761261842353034647519366884933605375503237668957920115314756447708903197104222515850910647440918152594503294283518932643870194402408837442757789106099868534171599307591309736936020202789954629082052509654535540407257835470052780270897916586276853126844205555745987221495756838111870996643932688980115961439134733372439893859639844046866888013446485345512384373567793571656915406861842176285949353514325624938787507427341286383197961918821296722327249057979460670699060590005565608266946573284390869650058478766386572892780709444168619216555511199106727231625407114544812623802520150070101144241246201341690153538734161400682484221461700338663544414945554601157311745580353508498314741675261038077832288524509958159700250546854714581772143295179064680864125304601899865715265185866226993534335200393785929696251194651342160744859515674165953572829720720483319500330948544434498877631458886887092646764527255420865092986392167411869616240772558677073299391774431196042531084690250550301777080288869352690968094952640623388331371072038269648308189748992352074691647090481669521632628289257842974460816680448406241250775188898513419747212238671723190353450338496155600766817946895190867199944070525657696588417753621001735611143162006874083035204589426373278762742005758383791372154181555492600190186845435229623624547886521831784707866130766677775890561982560062671146889131507367471171584927082461492669883623972323827294429584945695138681909657288369503659004046069298040423487233744483110125579176158846806528540965828731167647672277021185483620145737910730695507041013896562249387925248736226492882975461519725632339448355281850193043955347057899575786230178740715871748920987017952688305833838058116905483575291657389264772827210714173283673884243445759938857223905704123521739279257656316108597999824269261272130359475494865809985934514523013283924968942729093467074926779412912322494933148695383601923933321401811752361016076989176395234748372517240040483598380310552812751207606270637138315291560782878125339368184891473029075519043956530361093985890037728114473554176862409479781617453827256268458655520015159064892452338344869936752042345178571379525156478275915856559158502335555334176332639847076264632794021736856544848955202961781724593884993528796785197991383063639619083987731495074648656350323902240668274509656913049461762290085550203015513027658931032099570431076726573410004856389759213104861948814966058861531115345457292550634544964597477271285304821793318762823133609593055155129103751307747235289444945778205511423786968715230812347361288075180312299970023154939586527562688612954203219420127116472301984747840733794951146790018178118117717095162866642372699346949063572535465488298620020824303302016291784133012844799162327416898332677489289797549639034327381614461876628134611139635318773060404237713910575208932014501477048196084114393879708628662287315726142644302952042220187541025206863498116130686014178780992852937969506875247795114900484715304630636944300190954177244798885499085799977221863888967302387700396016138103206003060823137525214164302808740974181818384376600511285589684370632241381133090051978897466772626956770016301339269241177923402440533357727739943635949827400826762966633307902654751523045347635961773271896990125379030393584636691438048190367957624431833848101891951240464870452403853811823703588790891552424634874700450104345539479185528862576106950750211506764448922313911707095865691584733017407082434195902207517591484691520990279272005609765592611232522296348711012133333630601204591136225948286230441598530893720659340959834065623099333224750984281785012344750298647700362353144861980001590001771719283576262394021115688339124019894045139605510814535134755463662910126653424521052737441566597632455089789307488200676219783480399293230244017252928136703586594690206979620226522227388635963835217799613602773312169838252525023141651727589115695759405729524201652391572829476481763630625025847367190688169802572112137300349423381780968339750434546700311880612101554319184157849488667993690923211170303874299423414594044220000583218445453085651795460479324850210428412225139968526150625204473597282292623042052024470499582149965689868938795323895462425342550065878131456997676835919553875944695684806441876096172186492793070242683076312335498862388716495496258671455237977563301955588791437284798313690121272683576103729260014292433876487128260742072698487309721681652909101110617008311057906385767769539658700481563097824914366287983917822256223847109495153805556164171222879197975979240836734066900254212212344712790888433897307299448931492810352948269607013806886763959602188186111893230189633253754149627891873700669377954314740886274647204859885788847968325387720927338590510303601390968074054513136725908281604731690647421110169426428758118557491500940986675766862217931678327733258269567456351999332524651522472081624175953543498933372728471350896382154275842020493042414440301243348590186177452149820066594707671484271525537501826248928757663665284152437177722363797178568648217604392403839761743774846093931212914154005499331052230225490997610341005727985638281869361493053641440465069845743113321806921408931465397916019772439636660866643969036627065084790204835102001887621318267001010978851921725782672223306102074961959581665770936472831801981867052985030973140421183603856971997346371199355204634283021267220486328313664984380135710763145678609582562816329365872278898979442765486053993240938725982714362337412220723969384924651581221629806828970907184231386799934061840710095030792614407489912829372647786522263888325743262799247460242918945631582730715412099654752230050085888651715600608671278244643743373858143292582938665777389118933591547755713075978447000651665656038590092358261889782190858256031511034807017332940425307506357558781395518817271036783694635503358189017180305477175553124999771005771297428349030808159995558179941856040733662747871363631812611276644415849194918850924657217470569447068994974378267636903794813171703782563862202312730919920040323201053196358506186911612790049995948061950636534048903950352331348081467565761473294936961215160932149469509510586023873023446799516499580735849018501962661390520138935849636310668735434674786460217881149169132485364662022553953944212259820709273611523470635231312770108420402526381032444464377871377722218654129411801069553124545841362248601828966309484530757039042834121943482785800556083839077747253954548484835355171388873149367108875881923909916318928312884765367827850885768451903941379188609475895339796391815019176677460300299398310905332144737516746895746006391429659912379758587764457993904159981405612638384763649056477790840636403183137353390031064261207642701681034366954946638435598495209843363478498537602488608836094394698482103939408379920274013491981862627358143438232176661173077461881935835025374639749560006911276369019510351370406058322903692331900139173790388185691287659150607882862380790006836484165256783297142560872977311712194626476381011508087519477943512001786582562988684281468729778360872149920427454324129889713748662451131471764677249037879605086226586886826311686338933549608597793077381660297328181720074901151879203261312389712250828372733767090313488058349719867218200566600086936074921881603914645608965138549528739149766519067953306151882904924507440735650211236162006678025811786552065630027149051408077152805089517766962901875652267466637151056798968554110605327681640135962412847728121232726069710928616969815047140664810417983005511240512438706274931173330752696934123926420432714080483268443255642041627024772150814670058950032185252064245882290642778763745237526467237033003118999087908618683723122468029623461836463440601272302705747060017328285228139648492028389435771393290158537073774109072386571657219795475104759481983767220626442434189263541928474626914821697701713114788544724035031296378299706565898344881154681565340391738089223126160079118956094964726416276870775645953601250367968743075780959983666981171349792235915445586811365769985956974830976522207884660351889107360633726734113976008062933028706794970979880078709112789196783086214311306493481827901108389193148434186358676321045596888878443311786887877955659869335942128709826331748401167709192157845107009393755682003564850781210541616905846108769264020032266920902284941970877138064721053931708529904179661786184695168930601671871577712399401484106111167861462623512515257075838512081343482607132567128372045581981255812054606043276580020234068322013770961901870050830507017230373498342436146839104799458212241691462531547380750110012837113621078800160101071517920009910675308579437431581980652613984158465824693427492054863211230198696939783513718409900914227218048549967965349744601569251550693907401328124145655728600163263299779043358649699757065297470680926817294087409262222919747655114538031400159580668543585318122967301619789098677227366055496074376214149577648831205989551356688317239431945282327804263906073346759344195246745637591982267329154329587422811171011997197560827455123054776599525512411817613047668958383438746217726462137629793648495637313173223712441574069968214881524898524850259678941847731397753786871513236165468254020595554005889059333075564691167433643579151121763994352869706408827258557861252321954627347884325397249825624216468605846653142899078583982098451512397178022935606581668855442031249901297330123332394840107326008569998121355713557993054601478991881082284716148303656977425930733215332546148505527883959160495500671552350580072811142114702750981935487277542643067117681368331856899067646869426080805022928357857916135704511057160394662127985638260330040012706327459918284789756348163836190878561892377975265781843743068756829337843599365378960910224776725878024568155354992984052107228670367898930250783186849446708528001078187312892853961343918927860244536477477018008243092953952666327447948252724903710405169768208019891484748827683834432535890629689190890053939269362009161542966746172524582332859069767606368330407148331372317318773586845281178896024250921094109142479774910032973700595716681637061840774596554299479522439964121525751937140951421589809044520826085488562192917064288504539815084898739616198071200709945502802729122320636387124065190813605046209979396649006047936005429066271882786528293116351065083015772714566067013074595172173685455660117303528559006947757602444199124397207250722482588570740901748964497881860847532807387013801191061168066208315757709034042057424124686795054237085785707389528837975858721052037911824010344807029702003932200720480930628474674577343676244384841426338241641444732116869880405533436735290652673266826785337863603383628453861603282944857919824448855429593752152614114836553046006896050091723121277741629385005470001197113651879254946294879363249861138617549133712431877336055078821191104826231845684018967129700374835860267162166391790813504081551520755747905483729398001649623261194902452052684583786692139071870501956049519589187528268011811826741301089981896623656474565126977457883092735467471428394460833665217939985870003752693583751357107594032840689427494872084228995797942756426440717721256440009296799357154727435955200547940478459862882157819658377689872817639437640353963010504082377413832691972615321550415972460101340494869105541852871051021734498433612309309460386986923373086211168998638070152200189204724092593908315061881248016645996344067767758374796323276890969372474667627128075868084654625928237464193039783553475280955732448970924294017098572051900335488604914800317241671582700988194502686367556970646314129465468545576077651970469867212039263405178030939588451245365953405197748946393765493876046432696562628895362154338196720989233275485111013077051745697715991499388627772342964128455478643032757276686419355574112539381289008177603758302340512098305069175244382478055155511462104802503873131033045110810663373702029485109169510802529292801750677674850514311468806869060411658368904158474059226729011803246026937467776362670871269093504048725547206194324131003965653749248464644619215326420683135044088114847643890365825032962598125676845946487586760963192593562746964571104748018236517617583261404647684173403322651292121359265325776450245396542618460618047481900815792547119715344272678554569378961758798347155173687765492536645253342650154055106081750149702824981288369199048296417442248298679501455488745804168972001603731924246464975243386399352971134738533604037432237974115582757228323608790529669145030275391089286864271263989691562036086140644531625995962215069166134636583212337504575546347855721030446827307855971736743245005752231804672742127463868457563348510190147995248345143539858782167701631281453904228566516988153625391069914379549136757331975288521157723573910633686395255833133480234092779790968597003001317482842954877066166632312123907382834122779851189220225721691289963418923662921180446072061610966360254429225053577212285761493474163451507827723948178892444810126230475775269040596253310169503350059182976252931799512312491076437110271004431769702629985027473283028740883596768364257286649074065421836555390402386209549368328046645960268362088393996833242263669299537457971604404736898205990217812792525676594007349239598574272693077350309620010525065665297774477401944542095670799864772197581368165429504472674774724722925570037542888973656441992564800086014837749085034414798922648089837756009966790458269194616049366506227336171561222508247885889277712691218146791993351757448369077358094236117687471537663684000449086368125158430893351562099298248002779924697204747607113533097809734379411583129989860278573078959011018465228668676047553852282597085036606019288859829268425054024838814064383855383133617073086808874068806016878720140204007793758443799984545037678388459640031458649571955907855374063764708821035712853292523812806728174224190390145285710563724411450603321188788119070489844111874375784306727593361782959933260242928912212224874101385890323776461283508726498772093438494654027839465597726364426177931210629805802423831500691891233735780121463687703866978869581158938102512179165287632437576478375790085672572038982821486215620537157492917862176686727244140188298643007596093391751263316198370183636861750593396270787826930689503986346207566965537740232772572571110322079878821126703810309933019474409312815539689057516337020501227617597312154798799249365250253790702856101760082269322789581144905717748194358306371224012568896413576973581435291916444473090997693189712603515858206485403322223876993446544931313381657549692342792176575892403607813287650490118752345277387670430095583175668965728621403443281698858415158977753825326179021916937942556231409622716099675909025567860693982138627602978981888582347599193983530151367886381606485829299211134474353133286999931649701200883632139439890410715035584239342189721056324404502341971421327604872991936248721548418258126740971560078894286113534237386720820601245144792237847883039391343233079542363692240881819127087563302252391443520774001368102973511339229424197812406761673880661753929471486820481378973134815577606109063413000260643503112692756400515694294809477794072983871133420652914275866057279326917029310275800294157398669377455353459641130217617239858807228700500883449078146325114296094120696637330417033269209131514179847935439199976000173113717749263616788659758093313275996881814657753541976445435493219806029860705264269912884490393104096802510739490358953636461320545384728132700028386728856503354858781066579888298216610485317214715147635374891087855441326865271769831391823066537580128460426266530871991599053423223767561872671331346561811297552378967139293174243241667446492123058576831839027633056637454290227323597735832224261574520200375412311390493784802979487705765056738716280427900399789485424275018087082763293665265411412999676848403577324391738023376409496312538148509408167250003062822940722030292806121527588053031546067129552477649864507288182194379379389284971653892463025728003320800530490462647978543226000473852366764656757359563914794736927540069434919443013885796978368984584717876356277934896918073402983760293852707168905764380973024198185164309402597558020561056548775163159781884164234281625132257101076645565115010718458150487141152331343737558235963915546205358235899149654534035103594884564555147577388242288507854050209294989142605684965021865281590002382379316552014058323041298159385031062668470702839249991976022414124528100746340554894824707359786462300992075239787480671068111585626161400300150104799390292635237163722163583480728339204824760740476665471362746009303659238498649845176315869387604977248861690383568243167692432804609728392497842292563591379797700124824853232938091421589961666453620450120965194993972813485685733093625181801415333749828368014045872666057871801530962027878546161567145572920064080255596282821919024645802171465539785984790328826440706186895974070794821201155433964800639853863478526407827887104381684642943622118134448950408384653823298397516426690054894816485850234963695528202935899997010665171191738118414122564060004228994958390128783957975193837767586763075824908961100669763668906666818043443391391068788222060401885587317333220631570002708829013271977202290954436623249790680096000382970260046247586829813015443571176524077483765052763409343417106534041137549910019506374001687419391782583195888297561312135964956741996550218564654186919356089679153737820443949774823392499546247237242940008684731045198388576046103732418979831349954070428069612456925396107714143034007435693380316681506879185156926736702365830828590512119199018938141658008953589268778050103108750584644104854532074249694762236951460042925793009860707625570832108571014351732552415594809620263171218530594501520906484682806630068236239578425548070596614269932446956167672748386363396981976687998496315635156572527523858958787715964662521313961963039588169449596012008141307797929063301336951582889013059855901482416782307899645579391865000918276378689022038724775846745591683934061508303823180038873614963696851147700687484192062592946713777265888971723714369963361424450350613357284248197965151654321598846049489321956401920746421591455192290287552490915631429720360436173811797198557181825890737849923856771997779285100641760821329797095158791155772368294911688671612320849048221507567254671218082453263822897885959844115793498053168480622571611041092347899896320732022617565040275132806289296680987680113680825500970637465690137096854381343104640019363008419084636454411040268837591417647086331304506390400374364762731092936464098374054098280831530297712621667841089698049364380417798836237259917428075200852755106839642045070061219988956885934037492423741135470405219700594004871408621147655865464078802969198028325105250675382275064344328370218949732104307260639254039518295370268428201812778341489116139016397215810954402593166910138113026310673376512750901517950856153735912477395809329251627548426921472423764505221506587445117973811686685792857973686516312981451643863389137345819878209988611856539930648380038252610864542260961935877583419746279044310009024270029496542676219076907225408673585193244720118477303124986790346454334716426976262775071337577871722403640543037294255473910321474619762787774028865597322921985133068673627763400802633906363885033003339667405129506534372840813426843350408738297780774216047661061087337649400964476449747787305796301879550806381968658738405760041992359729160711076363852953319372533752089583365034697920072691377873315907166547639321859367651666037093970439515226495618763252982606201148611682849447549479780431856669169670941070321050673706380988097876525474317641203821354473279582548405353723628560318672648151334274356621990382033546076515788041337392852573005487744913402773710841796482080844351097371425810910870019361903685849852448567791571254756670909561595344382543052481333114247416623538090477618285610641377215583826377365896287978174641702243689484713379529381093981060213798864206386136772670651440255221164306760253843563576548987071528660062000931677943903028811688140950667932644222187729138904183282165955409188370980788850646871998680872592272346458832567909267163643534050967589236522651469417999413370141979386311790954793925987464001027360066827651114339526539726269639035989445902716400806902359961824986468058391651083992659733660079051278122541153606542917623827906116599817008798585517910730248320679565064646075822805447444659539591572823450021326334326284395583377962928236501905021329478424241950977254009560887132980225444246491678724776857889838565406576757623650485761885618181231134754479616437477513274544765144130178202288418638279319370634269806208209382211723570512538153805292348368254329455130666329338099139561422794482978209516896694455483176112075276982403587108871421408775902453619775133440404478189551389618658872281449166195184736939774338663371623182690811891023629948952909838867260581012206534941455736271536641101512864852622851633848386414377759573557039742603834893577513341501819235417936636986003354962374803034312396030529579091219071981566033232581637060747951487794703329232180935244324216335858513043477230151085913632311504831351542490216024264480664550334254867258433982190509847630495239720798305926495135436710843335943916998981190114442091821946194036192359400309430629838731117540218198281180040934157420813996061480131300176604418734746718434254510907814389530795237490626588018386156746713781369378446191064196852462244454035395099315407465846237445647073060955990946079498370049014746240620011220096178437081909255757869691458065557378321316056522229487210086479619270198579606508327351012704813605974102937783511284077738256565493959124612358649429587386980495805446697148255899405607195324362687163475438184968303375626264524350170862692320537893304884827172300381816870856850887915242667428527104099413059244621759635213139222648872084400525328218354617056395634646269239103354567746253179557556136412892926189266362210162091196696780147298893143049468139802957258759222004328711031430451911470105394678379525787408852127084703978365980328513068871947942108122596563877851710289320423418218849965784364032777105971685483085986985671911444847609398768827524346731963163249040369539743765592874685523669168576105517046998751290864142732528994490454861775455540770322772548595157285569545781339680651058853685702487433881760049924754791061013705710792605673809190107541671182724625175167436813890641509129647276052592971161021948061237880908021096044688249979972064076759008225083845636313561540904044810943263849552922562614209224707965073335508998468099566845749453702290126423340151243787505567270022884707948294147058621582946311949825347929836410352400977851927504478172632910680429206381210274639704452502770751648765634379009645218893601300061881305681504616171462526411426368003399691293839674653462336026486547005154346509516533766127169618799804710362491994285439721117507300484015776844078435509036898852319780448167445725274742269680803404894065462715813694440623587849879847257157570244591282285984481146196909256965592795148992512422203034744190274626916012432654512723980953301127203999187166532595827751989918146958026826393823351125886208403559179654432187906136353022259622924704690848591478220115130212028661253347289377052287195892164979472195801756006388145285542516160849386353241091319060402284962138302125561150159432058929634259620943435483448318578268134914437097052752401143885334726010725283286741050706252659818551137132042945361800281155524380361414631614210339637707501879527119878149495201805767241538712617927051403590991686544189280290250801778986685779969992012575148536843995415221767110717302553141668631779860699856961203936170901740186229626337674637909549641418992951201138316564707867504236560847602629869332009493501311002481606226653662059833701388610801917523628411767696314294626403469222318836318250097530217883148156490853249476791467983665471241222114907949459477893753510590248375320441581283880084149879339336243432102057020086293215106570408436031850188470359621204476024280820971187697099465196935615598975883335195071420866845606484049808221668256736214104169695520280439747621853728528909910945532488848373133479869996634849367789559277184927058581818062815298152125491653112588202832739957906936551424250911397053514853620773356566656800415474914101107100429373900958894558415672998827697523494457537898142034087058569784355392530302837176207873285129704658134603420093822304228664157770362258760765029083436556943889144909828309103442787778168724731337697038777721763036669824700281898241056765284605000992529359286316164648701363921529294188947227022213635550057196456790393698785314002068612908818900027337446337342351502765257908093861751944960008834004153112688348148037239425749384481303519894234088418156127886133033912016200164155798641103470754675403912002710232362455855567791907429119968513377905525191287789630686924105475347433626494153776503522109781063168800946762690271731431068423216750326485788311300257715457029876702717324248894651475306317917418005467037018994523779756721075180635127603456602706305847116522428066870829075302541767465860375892762813229792150965230223369324871228281284427692335615818259383533856304628462940256627174795612137457254333884033339115020317051337815363810802710499576767367752144363270070789212331405495162358010146299464455062065967898843570044394207144492096983795459184760431554589633101239672323206343443826494089331384267009491246674215564620269153341276910953386911063461336342326558674288681528094059437322304382955584046241154516641804120035470099874608957805584131821818758796398194046910460711905334143493297248980178689668571303717980562646404460514418246298101244267331118123645970366930312732974622364322612944632962628622252891357460204544873104107623230342504741883957609646649308604177074735851347197998849091396731035046400207022553811702113557477418305175489614648523153585631816483622572179968773062478935428191337337633135459876891481115464711790148433818724295350776314440527798971687654205999204807376993413900345027884352733610261137076834025368292325572379316177476204662208778566981011405289240335973864931412926651864910767385859641567883922355027877177096784302346655333142798836507972300469144757367001792265652927695109971104328360873787273213989287523373215057659795395882104100173460681790422041288293647268999370681602027029947319598554707298354804125616444002596106087275969774525637360724746907149601959968632833913299889182881686849430127917898822825149207250426512217577561505169611008681112805278146303408489822097385584194953973388791747690971434353415193680886167348827137299899782112303226062947273999426182853972969270148572043418581491718189217239744041538164108801760491959749671091457687048752117023550661355189756664392376563603728857958746210994121931088224543205302867925760353339389301847126600133968640724323790879504064921742228651243364543287935298944290261147510591418514409967903536035515789956607956509237770423151416823485380889635482392055896202223846644527775897170251933955458681493703932860200527143767361545032199010837076375751253830256732841685640119905004848474094833646632405652877633323394638742359466506010693017422768390837109116634938024597015489304139087628776320413117286365303783757132141470369851477152377354750880389069293267661673219692654059716726543380126973112639630542982708168376236728343901476191258358584413080444038894455530590830156415577562680235786936183330895087891165756717111579260654996906985641196049398721700430851925929142675393908224124807806648497038438511491296834547600743911343826741510890256365882122265524675039356570969881248136838622307624560049317965125099387273346762048766322953227205384708035158169196577398181769046186456798776531495467723535014071404286633215847400954957224369562004491463473575739303028211250458397065357094417120129831587835209530458559831007097432723727499266014900913515579908114146145282936109463473197937971941968222997066389945196438151846338913046103953668710433913720405460466713383984452865343101324732221761994540479554438491202071548111041804493434980603295031274558312520487536519441639980682164366370449488193010478821290429007097342640193944379043606935517739634884198947799255338149778984756163081719095781022804542251191951610048032233867592472452062683006188071018883486008527100009695194257351371682874972927743111883730491586903636965687625968806939807736044325834010581367550426790620284923146859800268965097148858581663535368967459287578711311666809391451815456674785098669575951767987612732056887832884829112599719133482693588766555521365637691575982833132413643279541069124308295967142404794219682751533037000231443763055125484782069902028686670236950289397672018859239504583044619290202338696685910316179434875735357395847297829083820484899594284801724781256927155372204950611252124138752410120854655035377970000093377474979474875006455416112464062186507491792281395082293904572443947016692402670127511131294422560652501822249435282786323209153907330001168765620367268334633092881928068248734955824785869434884083137790319023992895550556799912306485759243338587440970881344764189236911097426523673170039624659218321633329061923300103365269422175483444509766397257809089107230150970504448449506214610782432245884827654745482562043890041062081668712775213220842350007832397551196888912550290955509430399281264532490144546878762706398526188676105951583315359556884169027035753606548182192162909530028714718541428780769680784685348233259179506987147149508037184883302926736901661716056034775742599155692521556513188861882466491078068177763445333774934313920162681099402282672742519712181187937905347264148780298618805998212618615950612348243879236260856880806491853289486442115522802757743545930330818891970889198275744660283384059998899447112997169493663609415741237745808689567496680630364243382170788539868529632833906686330310062351710932569539345619467958590201659354009833705159167156083786979171697986387934866811819458670390260251221685443381856634498945924790127141676485829250870930461040661414187711828525268882550110854230027285948532604312265276062225709674616745000053078367431597001662498887573489394567938200043743605817142395539890243309441658709480730028065932359140194242241334775670199174195876076131958900608220120434202653576799821019459572575091773259086219416287773012703835627506126517316649002490920315198928554808179842708014415422085800752946112230681059349847414548549219571181973848340503784501356843246945213531160327811326780599178449398537085455265134594090869516100304719279555010347780476264604692049842794778876292116626252986690107750654863070947234458885186073131189096073482953967462341800136167874612358094790789090421862956425387497585814019810289627393310385317714702066599186172305833134625510072862680670664694227845438677542100037354533383152711863782126999355176415606511707794509579327565103473609745927813484436330072812589433410432595818341148028490082983193543151767928860068336536744777176330849790171064517921253715338582091294721386037310110568673369499071123539797472871282296158215781499219443499538943506717989756400709824421548425417186487955929061864610907537887683754077840430377140992309881504594156976495047558145133492249248204416297923016733019737441651232587100336431309889399822316806162543386049616666364672564229636886791350888584504168576621649000495261784385042523771558119431468056349039322160461642853468583639197334241953539827766080676886300988032751660914233075042356381755359211118720011050994552345878874212291148499883675781410649978041960980269035814332848673413423330504098342308436998871815352076331556330567654508501938587358977103984028129493160578329034304364639232207999267386147280638153954235771002842088072327778756259150658844148591729902081321098108955601460041314951971733757184190733632126305194380434209476009135578746577667664941429712777581413566000675806901258918294211654200791842196187667230533169226697806465590713355717834481894893338250474430455639510910826205315089632144729164834481549739813746639719667876752594292288165287471872639977097745139795440921220324124692655661044926350096914693694342518565030160551990217142748549373606908297193631161330393711595032642181723682471126455099974964487549427246002999797255640483612299403604465245146474050743853538755571309572895657074197826402480846128207324927395303215929305026114110550877086539461398600761089295477919679319363431109535707456126035856771165257998942164939471817632065026429662720653026178536227264468806381680009054532629235279993312276624906674182679519581607799268866039383215528841521320157609118662777375924129886030055268905925917293219169385632230268796729252852712249425096997569388874412717735564552140394614668662955947996927305011546084080999511618434949505074133336815253997721438862406803818612021692364171891515609091824468360403069471956267944845985184237356912244734676953496253559627862588451637115872536156380293562441192735766169754592543397698083709281118831906665860719171397894994672900959928280379826919895545547099925877524066879931501480599992368295881962531036240687728094408137843650113537661728793367054063246351193068873992409151054953638292277328041223211889184676251587391382683780853252437140666046441513562458442611063826048194036741447178418636497489258811439731277142800742112438127078006744954886415406328230562958476691383611827877445641446778051094111625708233267099303759549508919932308461771406164145054305693838583930161617024339629221405085919379545700636371187904579407117244748418466313110877058370776299722097789503483596456599633197140307076340557152141728347220963021698363026504552476710756177984493997559590598080498662860426003971489258956161181672251821422740221304265089923255753324861267471331790918076929850666708495959200909015722201234605636035698139458940414751973530375997473403599244257362305154435363584672395103424819165840301440419570841147511607472826243681326663106685608611509703261916917370797483682589309390382056932605653568538813542529289341484208836965661453170492600675526108659883344232810997683662986026891157427091690491804933803358290838353603397786801182265042057627734679132000433932563252308765762418101840585252432090019995170268084038723147466194281368837996472396205157641150405402261115240690095868784637575605537112009417976545222164741993846351099756971936397168049967442602145991751086079129428092263955335296725064079437483012217646286902555608312752623971300301746881099158444685834098669776918488444470423792648241306303211882094942400931515543526661509273335663332830425019678222597700486264931596535344750892229106477556137045569925799428256851033645200836831519222171324793311617286897695483126845954416450384872628263139440680162464430147082557978642517645157921701494658800439738741360802080663354902443039078655763119074706610605642245214064232035346197101656873338475706133252674817984837615353101746192244757733419083823754357468010634411078110143750854940119941067146412933753579527358778973614031907307266033452992860380620322789667312326532317057469611031208764304285284881721209663897858134038837162778232176723509128087824334487598086747429474096713257330666306389599321257166830875160991917142081573681005042234652389738210531194130683776270562321399467273629985343462601087289117091882335747828387010479587305526470229151748108126465321137201539976065686341859525000282094404274489179872488175495908220573086649124267872432728120842718025865589689459099946776866924820925085732437034092194690227632190723523722248359375241183809090873332887720695525530501411030056519321539771060454573518219453574876161108689396317907898260080348401298804513478511432249878727427906800785183799999020046857300662144793543446429840922876498226945981625780800129162247798550811871407745164581840418369087948476285270400275066838988658057810006410881550291124060394858039880799223775094158225582061109151574293178405219224632496736618502803504483908884204928482419863041344335872367853972741864075693916302381402975204170747683425798468889844583727706380358604545591247782763310484504301701008211422487719210487743655473547457229101306357393302786829115397817140159501869925790788326365893795471600286370612106286026679012382262886492533153944727776445544474971425541570069845907548795522576698965621110734216359873599027092069847086727118781762670885002125293621122334717097003330170449858367542633040195928202803082382293647012146469402717678840103677590647213332462382383850791044997874264568461681028871233636818475560007388942229187558680141933616690657501578103011888436386176191962604480736708579372203034192360204529378757613745327381522468561755123784857371218227886144390282728078138199898733012908315932146503443034988294276294998351731908285316600286735301574864947178260202696177809927160735575514940413246460776297549474266671689897286679294960674259086167838377207875187312756928905684023975222992122329123539961512278807314444987032102222810265369495996903368899565293029394932034334479700589879569971235216944642374368143917337165998607480387733963483308666190342011289833741610083705772693337815105711071965019586475269622849957039822300618861420450044688357508927539647024280749771479682799235770333298015512957758954477840028985466846298769424353966508798423533384780072887220869517067435164924464812495736643621590098114366479686301152406138758500244314449516534599392613979908655120991507510957301568664342626574287456504147119491795970707022637611706240246152022324626910962716547789463884863602486200685972202837342422731939855451596344092157007872398705361461928604172495051690724550548385429705929109886950356501986967652007958794757345866404974578615351575091859345054529044342708190306285886928511658914158811240976524714925524770252689057231629213609817265193902450853192042710667204343425857981173122633158073788991162318121944800400410322561735411495423575168918480906376688104178266284677659617894229403360343138332684000015631695668994107283571358413867093544618486265798476041966414395184205353129165673334972824349890359390674050230787887362601768073110582616916576986290091368276122930743191604045144594349303453998855925315426983510418737300967665175068939737110672422710549076523222882859312325961185166054721317140409121268593508659950289806204759035628907541673092551630403647892479360587853103971477223450456461009541227387129361784514707045997734388733417785336010330544242272377622834031132327433848842013439453192392444177559919868715486739926573739528184795454570965787769750118222683000594778216316304332182544733487029051995559972224722994474128840073182772134070230109397969247185400231002980653897716281934047095581784029680549070470274865834192049352539367006818622754983392224665231571671270331361753099005152639326383367167360417044260537781644179072003098498471598521655886482678915184417049767061308311153146257338644752212969606491852847498979851032471121596517696956761746600869852259684901396276849857486077717561900382164958363512132447914414669123171052398645016312241782212870699201906722921660825688400639195751241746927960144205019948456232848507410423899723059117013018061043837824146251604669248157638296571246137203298003847854766219114107751820901704905341205028364911686771430381754409239965154914683075943270001242948811107091464676427401832838339020152248737393017354581156547363497890281202019987377793364817363309133832380338656574167802814249306269561969258614864679439939127203402310910279503897687400704774257168228824309221688923237279923015149531977816068302536146103551167935053120774386357594167335180364879978176754210799269704348664059933406262620382645390861537550962528879081889208348767228000960935176440886235144002057892428937898696437602418763482785945970217870781599866147475308538947168988881894423372075199566636744000891700830391341951199855607963220398338661356437438376632619706030952681517881317586289294595922481284941899262513559240088990574760799827237176723728030173485948527271458544804874954774699484956974023501085182518843307724000524577888320982867489784626002112214417494032680505497433946890801918136000407615350683700699513569102866242248467168150633474564375193603968166903035625261240988539167760182094563096917611628829038379505457250195128548178854172992340061816787606280747324534087660981676018592014697851894318505353313851717557129118789568926948866329519418576279417882668363972655493723935809484687653688450118370584302183437522978591847669562453221536562082187251508174372430487539327822053555883901431132617601462149461007579583381901916743996047236373207831071125992063734726660152258214170927270009551237921013896272112073931406005434357375360143088951431194072783679703320254826773400976446273183447781483133247056510950635321528420025890056119713879006856979214736532058046883215446362393754605340968127684912532541255628675922296872506839598417390040351518237363002097803182273064442078041602576890861303382382034695210222370875948317159544619683723099680519353868594682519008027919166086486474267605933139670672972479181346082697552116188348211635496550095851321244522176492641659498567074337852817453120419825602974090724925022185913489377046695540200803907287818784044240255937993739712490737427534184106929661183537836252702802327996817505259003838185125841071726593792125347238689948693342478469446094102771926274362355726234438027728056671107479040571459643515473714101263807953549136914991523846181379135853434301954399595611351655999433559557094393037863102143403125634470834955266849284918573636151616024889128314159863728500082171317412745373651637997964829449248930179066671381590881808159498113496755613033457437609747244608603744356906522188433999046965547309311350593252394333990755859452340589799467072090194190664026403949648483103625207864141869696080903565264619232221478607128002089629719779713552598548013058748882848261332117209097655463404839366197363333947571762330782360801737021099167330154327431254139537771703646941377496152503352499122485620800636621731906551144699682297747696010827578500236301140952974383278528135043957417162491953671519101235288451931007941967292390722448382197136489895929945417780986455239660658652783882808807629037245598956947564604201062224648308108630948464586324680375331785346103307106633250513447393501092525465408245951846233593065201546436508096116254348079096781974984765538028431929178058452662969647018695440936351833696459357544547011852044527847813009383641185740493146504413741564003334328577041131747955923922200865750495074712040582126727670683884536713601736686818613088183534820074948579397924802593488604273481499828058125060140338679905423417429725559114156040150132825831219891916281506104794719100134742234922093988305608661025767319107571009825092386243331845901980098781104438465845996947767896968570177536328111941404714922878247283693073250539678584476855056518310206760186314909553006337012424288537303143439740213428761202895926608544497336024742627223562330644794592731440507651807022950644421346660512711331896371943219484027038063569557317372487253951024195486915070731745577090925262691047192269576282484219394536278979701287845144018321753570543773380946606073518545892933267736488310912871702783134671348476806995595510428503527842855282397186985527159003916027780018632131906934694743136877851902428605960123029805928302053393787711172502530282800882281702878380361539936660858298344590681166995065578565020237888604549741468478137832678318186009149476111021055794379343107662978626356542756313354486563676968697916815875206039982122037462196337734629398301250703970886601781934260105708485387912001098844743651246953847204012495828159323450661898908538810962121078445874356801540059073896220045235616994764408712915728233579045330499373214677345183545761648566744737752926752007553166000200442750938715225375473579232027526363791431208574727354605687028063808834627116331751461456696786521438679588808571817179163112429177553026841621275648074699727720925893927173844808707569204618185528139778043407497722855989312723107249691544940066193142369637511626978343571692530868835221464095373732365388142384386316209825473672882963277731413532189233585445086109402784376732951529826582378507220039931602302276720156406225001760017120188253820675494635193243935191483310333042226563897747712453724476836990775605353552429691670378932474258429267866940445351231438161647792632206389230067042374743047628906095249629686627235311291779081777472522279480923884375528811257352118297653882216669056311405114698369181557459448378506060238291948493216955599751624159297303313504721259002306491819048777187592016480900598798410867875659106609238511189115289483580193224041199129829603497167125078591093311274352334692810463384020010000982388422213585246649999208005463408848275100434733957060341361102358501322511242252134141084858417281581650552440303698981224272117395480345490538550816370019195387692994688580677757310160025220169473556138256332859581456159529781000678432123529575284915520818670303305723969089451057583353099111798002357466134180474778646297104406879101133268988304491457177102245690935282854182434223826850883018091145627496674187596920008044323616642497398235860812589726121118176849399495393247562160992115702143223721438235896850309231982679119206296005958381694130133150414540569612538225905120361206897322906400353482064003679754538554337391119505209947224043419990755730493895067256658709650838693052148965339375441392852390860251026676811884903512160867964541106825060036207037611866088711082743280148868462776026279319104271789603339284883294832372855960810799157465077626030484893909567463366752801110109667656111319108739332510361654488913480507843831545865388083391013750537321310371383885417397315610371586810458039423162087881079955910366631642259082257149316567639080755986506659865025678454139899188832728297873365991420481957358498215617841535524207112916859854297106394844836042373268247371735055012043112479377782942207249785737415005289291462132141152501888648856296421116376641672731097714358402329533857609810590642869112919912097408849220041838461290990211287445319127420697293208440425686645724790871165053998701787472487949825491928824567523658511253583217949906991616731328244709331473597158311700042175462300706688368151132691181991010164300116745890509381860349378260543364932934696844889349247470769099392693542557230111035577768828959540695498215045152922656135999299796127793610504953944078266738385530946913702467639485900152352179600458447507279959572747597325350682301745419478317571430285604595904172460417581630255494783308245853279272223464047964251323751960834663864782090898544002498367827316728227436367123848181719085778635655537965134957219285592369335782643437006977830326294335247360007185730691959205832814309571797617015948372532729152615093665821995957195312914010714343904352561194335340471590079064158020921871720415903334181016811524876254431347569718556593305157799390571287559711779482260324203514710002144353405947433726706431471821266301364061846844064412508179632786678728711513844709710311312134762032017021476220476527380700210890249087689474300108524496081259498306413764017217953225698677480339394013684302737469523025878874785459057979290356546448721877138242246861066343958484697044644980190087844817435410447999341734575047388225246778218088041779780171740871466901604033637495042224355456789138186603932748836100001459389421388522963052643923658224122299359878077024740974304244747902946525904787397127552929020949345679145987292492713847409315022022468275792755093162625931264624586253573086014081608295743312057009663606578139029720973261854357397750703576124922290068805116537486501299063267006842420975762414242381266383331187176020221034329102808930913022394386071537740051508993923179361768997502995445235546692279442381676416834710197079786369866272994023366665878886642536953289400457707814133554260598714323253657938521517314991669455528696443737436370172818315398889491998906828128381461897704730878738142409585024967907596068103847978775495781216558069972704236641613416629697067565042923949847162760322816012900720638039528686045102940450746165746522546639589791914523349657939200214155291609715582625715390184867334812427784603391302190354018123701681281213795059719387881417113164479616834207323404672361417430121027948521770640190003478112480404213842052779590058586813564489118594676735542334883384026995952716896462444201218399343881932743684956058122464768148149082605501888692164689626504251490650835476360512634156442891852711383879816440453165281321350381479290353687890880077339516275273857311406592769824686691688213707571512920248409663241556503304044543370384081270926901109956166874997960806661145251083578361065892790328613752538884368138928268896581734370293878776854081382895357547414764325452591396543913034659545190655331832275576253155086534416007025698420627607212336326028109641532008054799893126585264468566564176764723692056648940678877144532053016991268440587190687839865413152004204700130260937012587113777766773742077580271067380960804075606447945099800320870215725905081233718462994961569811398784339362454991022767814766975430039870626187655285246619385115462027516312284620545847179986429087504764703317826691430630938516078759691630817856548217971872602190523646616262701657230205898370075050145257823177545224484955491898612776647330286234490991165611492697511126628174667001228450991999873372611647115869142931084266738144168646503634461106384350151232798565268818993225006378671497667844283359606071504710401635379292394629490830153214559148840380323319944464563007000010759959979402121853433310428200154212499001628034841920833944431664727873587491290746640370179116295607697566693346269033530852511568729224500352756326141230412560128841037977178809992560652339794750287639019110607741574426411502835362168616380254793314735655275821110619285318953228258600433015372400354005005882394679610818540850067164790207842756614600695759324938185009870326642484110575357017230232792343444338769236993082397672960183976231375846267731439591439470062940577246204161908940599842417176436812311268681427039209879586022085662371693184914767755517434544439956267128278556104925566287608058712554494918954338346575676337193459571248981452570551917303960981178542879674651418805290398992125300348738120482925291363562120047342994746939921677001727162176154685664905669254291639347395063937705194101924740138847074543231829351746530919761147303743239248702207382367192686863183079447114348226488520499627754133031896802354713447879749102033711444280654817991279386804635590305661226323187672214802499402991673950524822705950729198304607988285926426918191304158994715381032392122487906713445852406960359234460989963504381438383473312192690264262155999596702940670908207108829993166643007707159379063898231569363980694029627719792558048707674042382031621991652543823802458482651075654574172888692102566144329000859882303475765716336777104126792220512937318413241920482865783282550537466538845157940984932476848172965102861820976413876606264400756826362300778655419277244272268467438301906149484508888759143219069009213370822075092451211579845243579806653974975239512184053066939608915975152779079686799238211522472379558163163602248082750081156374777335438955475372500238880940733039730839276256030800812104461403948822204413108528421539738471131042006816333489100840600029248664596785175260259081020695881043116757510975645377940379787503010364098984782484772058650089049712768196089178735710388612370814556891130068730972057223353245659985740935336026204808553912275176980299033184224565626463203908578016458856277681491028534155923164849113011404043954824709379755469302734934198857082420688318380346187317684209394678502612966587499083509108176927704355592048871780057724258333311843745630948610323805128266278484325845375836850472919422772727088876876724612950018154534781753329961084025565836330899110896622374368585574528943498743562939397702632297247732776777334505023592596232537131631158592050466225758668472668283746176167547006460675072628597742034166023794144935697760416472737637686407617513378581666593133594832557441191785980408447356344804362801309252184336407289073830998548495129252421508013613527262434998900798586455071677113572702847602231254653587568677936805247267868026921996671150626761680429988808077585027214997914804572148356220722962755793598733385372890521507877995398974984289723071106720588826806620527880625075129350816417219575723865074653786231634347188064427366137307039049045493806847386270433056159464332316594538408879463434982075146809625217541579471575757705416775351012305529422915992590292915231551006472564946215786485837055266691147450171517748388413105066553584237903310269828082380746612832697466340924069372673308356956379767630598051732674931327259253012502119426799164003480597499844040437994088383890266527275451806171969520457147530928562528223130067364082225977128401418965818143019782667098166991280233774330843321656073903252921021832008343717436071911469546352293846113121115554325064134488213009950205056221818372375284295759184189147906441980516712813101157036067243842893186139511329375598131923180727906861650211972729291372450846696730895097736453465852458027890216812584703707699830146381939213049369439285395893311581292926687175490489415582851596546994780991733099984904893337846389625260183547587796991432739186200324605919971951988906995276156737254919906982148205324667642899170610566537598454557129407999231004610998892718236081827054542972005872462346867211402143199421991672428457813926939696400626510152297035729539430002135999489184215275533500541832792672584345789554900179308489506913553262396739040052049555993668344740879057116074971425963158224280821492858754748803398126199909873491711868803704049737262204722350702998938743282983238901854766115567904859589155966000059813028311836802257475453524148208099533399638669970585329209947999627584143844611899488217254648067981927769411344180461336152759931443710603052268355405391693543415857209882740699082713360609494977664374481363670429865096275598335135165488930162582240947290585657430121902242795458091497833230860929079428567579468138578279861470100175115161935564412311438410077160203754927462518280740331129006832082460050465939899882567874156423462684636245032148583811089022037266492561768800407905372079024244012653398823706411075144152175892493087226525568062496260819595801314691937685093879881795467741362386529208643820106182217676961749295759492925958952488774658390234998491881593107184802209188457135696623891311293856546116296828136308418109727378006322943633958488105931965330735346827771389043861868746274539892474878004508711348931378225647771031292690326846795294563146015656810931630696602704571370066801218118778858496022543965633895224157144148693596178053594283459874949978724045705126076504061036572402098439450126370348113546102144505522293006825262466345894777441548809371941943436706976596351038190557082360895546199454267642114663945005583289102639998962376826367715902054082333506804224776464383143436611899092016143700429420667484946650320890155418299310869099456256038597101039057729915203069591090932520322979680456973727388693647842669877240017129106388097221370805437250365829511073699874274372342021811030050339442661492433219503082243798405034971990034211092032126830026030202553674943448760134149199562916335071063678287424750579767880207222219043079111360500086602991784599254415627480171468343625533808969062340448965528938729401123715417427448678736320176079408097270476771207542226296653321003505362076047669573323460400377665611979376612629834390212222469690069970275863014130749343845510106202326778070106024819089383338073661572959199015063940357676337010874753406975305961324793349787163245189200736885653388723578930257435335578006212012045367840268007859513431879157366524840848778430812682279631743875109026607040986168607259486793123234481563840680352308381558341136606113577760339345466131801260564948350194552015613469566919431161336705783925939924981628864040142705598167052242503748909058798592648542376026548977361250297806792065334363274041224542958769849746831972190636466166759867057451314362227734174177900223809180965128630873965727593250223917814188244494375132820352952779963147051311269690648330660188029708641129033072109009347055193298370412093005249623331002015197473796657093378669061089550433030736650913801873730518111428869934719094109185451802006631852151168393279697159402219978978304840616028819071842727574413453680016877373087997632659356731356263642315110864147316727034417028175381206531068103974755667294373299400757753797390564709467731763899016525595045902812116299805514283481111863110040548769286975663155162619382409962971094530215095498743169646646094742158737217925969187392130269326650400776762559515344303169163685818814255051819484056458722868236758637197678301005113790804793936570786032546688006545067399998949730426603782704688797606636629513066211255555653277802323152978999723721280218754074167626038291284703118042536225685633202331028254661102353535881470055701798278166998432329165960162235224310436407734299480712761730601920665290802611635019295962137208472040662473985076163462967918544612658301857589354952117048389750420505174648875681763310705382144239459570932862470642199087546673160778139476912127668873128153775749837712494767867885876316420857394591349580502073757320046331570203905131722191420522617887404711857695343566838924306246619861969300321516668791997470948958503328730277338922088356609509040647596094255932565699941651823679636960689769492907236854544837689343709605981305603498436995788529114191897608473042499248606251667623825720168717045418042064422621486209696127257213601877988033630842489005290349803646722841786795341262008096864403407428939296709256186751406963885281338226912890663705017073054476337467547317945837410307487895916088580778384367813475335708078329772099739825062428931361227752025225269667314519848842598906387659804449829976752397200811287328610209478109464706653418181732920555249878894488228660854672112930144053978673218378970825986912634951227508163180139060562759832481219209348389038273010946891059080457407264595462384452889938653981158575169927367947163880710300857445667382985997890664020438589583162222297096966233152353911322647857025446640582673030011550857694478669955075300019402874031486797452012242463942162779670628446824867857014810828356895229620621519292020245966212493610292791850332837228278885064699358829556541797837212076957824922308826407120999764829972250550143016323185701989827146767925427670668650256668215867163054427782642600799358188859705594478477049933790536400333469888304932286344659713378067042845997695669847308171187278324093867457668730999379641161493137450555891079121525978803387744072730201025643927964258102195451135755861082558262699721053323969975718559798939581783254345097996377526174002788596216077994606958562914491451446375367984023664265961560383249939592596746921956293159451680256933951161407955107000455887016648888134556375020404053603902469533474861180731418618452298245896437691698868031099688801609836131666637820708955095669435843618821974579373849585112558597714345818510762180414622989554500870083920671596979838079012391263557820784265763508264712742056074100503418402703830598689372182463633634742270694899081648835535488610522104497357550967700708496137207482541807439637377629305455250769613968417015901778526571422932813952721452138586380752826162004123048143804181569745931042687932198251877769290104795747357682234529702714761876993412435729022009842505516631377527004496663139808953776360661002860475956251240593113204891179724124123887689499201038823584189155492437466999913891959787174409602670930537315079724764269055780298250443704895723730339135516929229012753708476715151307291568231578826756050499363979456588512300505004728267625958477501480678117223821844131911634467873050429605058646942389082926573301115280071053448589243457133613234213771217301257698219363334686439036247355907447464238507460945133690867598446979533607701868451306802476769405232617620977552611596410747993729060276788892318490796725231009207067082379975637968567935935449024636811021453895575783186202865531307934028865516049835338686126467970874435961522897841774389017216542335582855632179486450593043141182832098324921183253851835931302941690172508594347110947258303300707381680452379303996466079086870622132745165519997004369629932897968988380825092787765993175940245091282546891289815091154062887547246598648314841306852750199123549856833839127105949579391150599338284151143833027996143141455703014261593901812594252657687849702834269122683499086074917635347781901562283772212586094099729741560256648025763966688148128532012171466477545119418492223065636243265295315222524463939573724990422790805357558105120469344742994663274068107809642704463301381522677534415237551837119457454297079096021796341273975569734310658420121268202899913616015525977144460733424200817041444153754330011712040356509885332059128131050053367743601598371273215122221917274851697415666399614624476200238805994407842449660831994445573181442791797036890445333087135394120382942126294765286446559565179912632500056896387549513103844361315992698291212776681473491152966870683683422022395720251594873831982353525855096169774588947604282382930427395285567709520534888583614801985866716011152100036353658245494512636460000092682640433248029713210939231844034995193224994393864894913910681636910251469345438077314122300935816449420328119336878789791601767119934412348898312843045463549889228919153333301317949682025835119151545367750777616571269487292332410728729541041492957458151295009452111738352996146042049228188294665995962870637651180294730677353706461753336080408983162282241750792820283169993097890506498147709384481778326743728902375020746615685244943154865929571090972201941997165634993973905713929559129710223446885111576512850195698916053397785540753832245953871777342176802101577760894808748889540927596831150655568688317855713315346879724544246235948766878239742282570914258533863977368888618307622419497860535539020038307416099656210402169555656627483144056344532907477487979095179710983697012400471314446793046152289365519151674970132550131290738883259783282035402468538078288684244485948721159414610195395581096343125277179198676438331073848997012231969888267649777019234993762398680293020783357852371197840321949799319571289167854891833511810057191411996640949479393253265549644162228895905258478843166102016599025549376660219384223314708209590324223186677544516961294771128125975909626948603129642569260596864340597873708339731030466501421397067328504282447533608688949962613534164976361463017500404985754220728127964704949576602607891554498774779048769770101967469830536184584586101506919340575198920744474386890620407696329263362325046592145249634343376408086741572546815901140995806571659928189163963168767765763981765370789146332726386998105864686696613775090886125057548022252007729077075802892217736395302918046603493683639488926055466682959674473650442940025661160777497625958834479279216252448982202304797730927514665445959456941168037145883355880877818425263205839936121758187132486485571020743996448120504699295611336621111985377832516897824810129773544568083975077395611689049072240678911411867941486712861197872195631528765159321716628203114016387103467885964319400034324388142682814647672533338302597665896768687559626432457265341153180242621354468633763200790879151566296516645426399062112490095077276291616259169733674621809833774242333413068600934703431858847477299069752810676537545848565549292786114962461501927760877501194730958212669679521382258600199656781565557637524383471735460252902390637425008391106656719104824032633050243077535557571735901939582238453741224845778378719383839797425307617797983829781839638244047412006939663900712550087197232094174213526348632799087574936729300998987002187854458544949205422205227079281154736819668954572199911543271098402847594819780227852740543257158940071755244555085417857639614297635404468819563882741302504808462586270237481420254959224993034078266462846252848206988708210535216782461980612510087054187454433268032401880122112957486114323271425147370877703961326819725948698891763635117343226308302702502795258700731970733161390368206128552321172777107407497475181759679439908959606765658075456914116603533236819962010054574355964979650217195889596438951114731397406470151023729622839738388899731957478928876360712009683546664540391543517894378489662479852916009323612860120749181612513018346247351958716602668111017364724099272378168644263427818931068042080893069913837212964283310217985408106430862799565219017915426624655061767846812141146800773282778928064358948618708058431758133466108455105907588346235999479322700680294876446002202558460424870382927561768089384773308804764823008892858849590232952183103646404769116297687798702989852912227169934108811595376105481738356358431972732470983806863263930470272499640216450573101296770313823667766302752000569794758224517231560902057218548846571307749932920770890800740010235343209924317847672970343441830517970925140358848375675033417697397349286922713349697886026225369194641145479862482947220550033721119567208102901252478100045316442655327072144266826927548885992764185170858333373056379178303982734054033611483480529120036159874045672193264417682253159951334264253704936785748810369434418047221904141176382175500394125960324493295358365113151793989514025776930592485855283023872352123771799470540978383101425361807397182729607739852679000931877642917751016562432509808585970948352765933261802668931620470435940541568116256092926842749416168369028293873888602782165593430553505272803608530677392358708365751715733391507638019117135058415329974142342354130830646210678839996630539069290082489400838526419333334770415349262499380149824876209619590361874336472629555804216693206933190640087702183563906958611705028254830043679573588333813839414073846456647442560465472727536412300437126192364954140105442572795655957990752209300011668220787372592859531226047312535539273779744237143584108062942985343923331311947403901076037913073166821242436460302966711978040207403672805973624980054316095814183810226726536979890442376203086547954212564651139886411413401860713519535529365020541446649373035322220044340107304461930591197647900411829756123979247889965761014216424940434316031755726144964593736827923655861132155272168256089281457046141934403323454059556905615754068279411818764536970356152361970887496533823126167453600309117283072318936963940173666120234915523179997024328284203363386519759711601674156821672041788638473863401878649262018617790014841983191027227461691621135295106372368399844988296279703816017973842270765054232342198838093945908262511510898558402216876915128617294714765832168720237241887094389475525384683332462377533370960100816629942373240987857122765412254699097641710853464833142043283425523881083766247755437033483163638754454587999685197539330284484500006747342892108110626388258217324427052282408293114372343581383074879881116591403353777730246374487421437206162186465482065451041546426774679159345504608725687961672224961548896619038614359191828893495882319753582855163171362474364674534361022393198130310391093816222047814724457364839543484226759665027012273692626285083124902316242054558575303661919880792425139263235608576571205867476887799508762014409076556368008279713120373542874407340234106005942632796558931877947673911140444380040632077418199899554134994213811874122511660720467178532074252666814899919803953868450706273741808684975397251752058005595891630920443770044048137835746832485464779166220410022710911048764684186199783884042673511029970741606729698716556527343427988952212301120205270677423579004194930770442996209036809454406237134013842621145632109092904475760968692750997902729138003698809428364138657726521819839400328419032259195807075509495878377948867887638534573159453093874144404106270706297619067583959456743813323685584627655210878819697210438276404712059592368217111953703889558960615253119071713628809319184291045571787554286248236654600144657909964976902966632902341812682869421268144494714791053590158002134564699961137139343728268030861738284361791758381360623007094962596397862958512002389630983297838293106132904676926791165490409390884041343217294681421405664661700337187222415715450399666431228125048874415638890374706047382389719124263558259610209767488529866915332009687697330521484233768309882798165839880035580319714407363199405861260765483804445055187306306073747508699851625076918920546671087635621457329305949285204340749010092155003555624979926514693603043784903918585178331714957966799939853786448432891122575159899772686565870149858119621867020703159285696730132902139839869485083035334927108699368982147299762505994699183330366760839180487527834549371593930131136407652763605517390380727814522208062341882148719880846008039137781373408799931818597595313666430332554275832077245352762974502981558120773789662643916411151867704834072342484883658454341772618891900800640269607457610797073548253450566563330490880729463582195111822336402443477674851101026212546163698086814273358285522388736241839954623485731365158007367054333101999285308792723524610187456092586301457471778577100447468616770931894517526899904140479561869117915911263080065676197649100021269730367787187801738331997986079683689115173548956429906902441270072056338869125228685439896794259879299072060365849420305074344769863075268028214265225446537072111098517744341234717162963696072338680364283268968262581274864064605942885939616762099942332118564174750510174020409169231498810650742526790451607505495512236753825343148893770386132131689181912056497355397960267960520086357997350564928415727155082550796852791024682444519741255712921270515274583268866247489607726925677760080121228130117060971846561698946207236446513522039359825059048737175481389624363567125766492414761548656954994338656231756028644391126596154104008199464205739703576209620161478087181577541582770414034344528223774913072698568428857940197957516290666435923339451542088620840488825183693490598879824660277209970149401952403900896625366943875495168474809155772206207185010019757000249790724816936234478775811715781566533840544493196742928883182656483041990662116325892364718881425907623753324654341671474149016889201279495237856375524630836255972324243260006239750676848162463802856257206364433318434954180592292246648863744021866906769552109824507382187407298705368444522664300336441054248752043682147729227646771403819484743363134369338002048896018490318356066524466391663645662751381717333503715084358833197269970144544609035665299096302049313758090649298429438877964075991283520274842381769589611856255890618784530651974431454827753398035846017326769313768263610447176274995971507180593231149691344919348123326061700149487444555218099485594405959050172683663223449942560522958150850197000859849344660152160413866079143515851461188108514292719837020384707770729076928288173182780377497456433670293109627232844184216445763225110946736753607334364114985482375136024019834741005182561214701362809233441183488182198232694956870150935384303269738922641553716283165715784364025209201047764128408828660209594819273104923702213141756322481201949906333294821275981245894229709932264069874079698586584776589206435038891990773865412677141214237922532271755107238493044983602531128469947331101583647423247219370751120939606151116806628666295545660730818365357148447186761104634804407770089447468346246232037081739888477688031287009232872011454514473004035911038366500170475908779155432074485945954780199248072835278142195234788800685167631196065608680350706922643718693468499112283412088141612264822755842739305221263453199029563246912059101290844648952296491450442480463343461466608231863076853675938506677723618279793808076347142301105649948618846704067226867553535652895328028708864236277222346638247035117194824120856658750628787961841103686989268789736462226575213380370434808906589391607673125464599588280149734926832624677720452915032136451953321334728719931898221499792605905946156594477107454859387655509262042696484432101333310382454163213796736336351097185649352977078262910815900946493505903316948270435036756831528867345830597702698021363240862973471742987231857605382024505234943329560372841391092750118145280506323189200623137280263096557730440828045188380678745549051464299460602310079895068368614939098154485141977574263920498977179656647670792140285802714891678371709116363680725724157858032383793183518673159829145891311652804776952816423128136515436714202283990555612201936409880116803383563425643517554181088814257739796960690966018384883514894904634794405474773345939197894125110240997682064575478356833386267697124691916996342795073967195066518774471373116399173010233283745079946810698792758110180591537973276071724112135518934107467141798694489425901184813803661471400764608545305568192361769409416074991229493582557247854851788566072307565675310809866941359515843875095777545135827931218277663735990392427245980029886341078852354668446956977553733592965090712708052991918308276933713223887817362367631416002591333909225175397624367082953123796164164689891737367298704482587259946601110680392636862624152731421744144328735566738030078833107725243986044386093307243035387450515472779891740319542677304490043384149260810168846115738175563868566271023765329738049924927260406376363724107282204386727019456156231676515772360009642218653018542957752072454279010192675504784709792159094241732900868228616748922698455062550501331168159708922791096566017233920208983395530306722792464083321666007149929322519365438787906435299281110993238311086377966680839754600635076442417230235753286052778302013314335615908210110308754480593860605570812936467348904799583709481733229804575887507771068345852346194545956824644103558821317947895047038178725338720498001110349215350079974732421831074022236556437469935556382810575565692609517426165759661647010378820792101934459281528125677787003045958893380137955976785988779978069881223993526243325844933140728814671440946860889327200135604564481034797924209018771607138004114361220976937905434516031385737315721963378808710847786685385493166924779662555134015763763204363909521097377859813743266576189339300558865573229779775354136528211654133730010158588336435456337044348130912099884953299160552291404180396039886728697975725460910460453754773889499823751819314400465416863473494169471147862426327846906344647816649732930185182051560724743824200274499228149569791009915189438495051389449466992591105536581255924446458319615421210957874884957032555912058537889049665400489534550232128333297238137001351719440791079467786947667107605204038872919654694054832730301986280024224755097027645353211384990870521486056207047904045988399348287213229084282968138126931565630398725763411007461000115372527625293873353940510295820078053515563091206547369856028754146099732133947445252289028999132819159244961288757098753233329764654614332701133696828321920648939857645936582028038917500079795428987578414537848933016179650318754680370843461110914273927325006976479180628029619767980450359476109817365788728139598067708669655180292324129140320991880453209454128190354162874611696698208454462601546129935788605720431781057647043358078420199355776146169828700596179664008919689920989001674366292135043323394393176749115890704387962888620666840685690267553015374517800677380392393033852716535682532521674442237506855773062623658218258343182324853325579561197740261904300644689684845183807254238740285927803111448244282561861392341830393051538611666857091957434617941653762968975719722923403002886251828010128162182952028266156195260359036967950128436139553960237143805995681534926632763679259526750787432801544335530284069033729196178158430278238076499102377612686164375527052164549463742282619931799281639836957963294015857732462506339193522423569939156361580964116460797113381035301280430521816547604757577676211823531115387338265262124465723167321815340613663325723250282389945132364503249055220962148876645004248030246022036108363621954574624939771687021491084012509291202502937288963856960227347672403305228291028408044317890162358965625941189712076954189364546438973718225708755313466051059918538437879163812328996271918110315390816369886154789212262056981627727387406759563538929625319891779186393429130090835453414151863260970452971026471120216975043176910062576683656673059862794658980314019402454932820390210171101317753653137261754790290127097073561064679609520009886742825176348426310554773044567670169001041781613337346169972475547957540441509013989459653848323114042193593544617168724003779711855618022901092405758003050123668572175237271535779193587805018740082407196397429728331099968887129910161924980342069092308594892198502101083042726970872563349087322143749280545133931510825127048677301251959449982308110291357916681434521634211663001279646829887156882684991675386104097383911825274919498267618778187318041101773724548611381485495970281114171103531532681210803253340222476610010827117264264621862180116866521377712978216800824210227335893742784030832909743545128677987240335353571201837808552928871985234410944066472474040513450870425272994899297473061584615554325260220140822044604377934304591334683723773910172007458340865286579495339498268289231252068955043999450547986558470397599502569035466306414899062387755636166390804969620022671253928678378254884053096808887376633485350880887097019400881114583084989214397981810243778452598694368238377145310173213869180240346370135668025049684689462249267421425647000589356994488689950060147296174740698175039250687628125673398608880744238449473741469076810019175909296683558699859640758259385451903351917148068148659922970496110240645330299695202472101605233532797167359184997723153770770693218515150088322310448975318157411745852699334706427030144407916567295538140275884565585231327742697648912853012265579061862778546127009057319838019504975088401236404077126849221972972892636612631664327602600669785250911697434333325604394884473309091891995236334221619740698955471256636031691787096000606230309062552609411910990345542888722609154581280677926720167874779005474709595633210270253744968371266266537001784293795832004679554459811551278404288563686047452603161171144854548262437027682409305731544767502917247596936396466963083222475